# 📅 به‌روزرسانی Datepicker ها به تقویم شمسی ## ✅ فایل‌های به‌روزرسانی شده تمام datepicker های سیستم به Persian Date Picker تبدیل شدند: ### 1. **public/js/app.js** - `.start-date-picker`: برای تاریخ شروع - `#user_dob`: برای تاریخ تولد کاربر - `.dob-date-picker`: برای تاریخ تولد در modal ### 2. **public/js/common.js** - تنظیمات پیش‌فرض datepicker - datetimepicker پشتیبانی از تقویم شمسی ### 3. **public/js/opening_stock.js** - `.os_exp_date`: برای تاریخ انقضای موجودی اولیه - datepicker های داینامیک در modal ### 4. **public/js/login.js** - `.start-date-picker`: برای تاریخ شروع کسب‌وکار در صفحه ثبت‌نام ### 5. **public/js/labels.js** - `.label-date-picker`: برای تاریخ در برچسب‌های محصول ### 6. **public/js/purchase.js** - `.expiry_datepicker`: برای تاریخ انقضای محصولات در خرید - پشتیبانی از متد `update` و `clear` برای Persian Date Picker ### 7. **public/js/purchase_return.js** - `.expiry_datepicker`: برای تاریخ انقضای محصولات در برگشت خرید ### 8. **public/js/report.js** - `#exp_date_expiry_modal`: برای تاریخ انقضا در modal گزارش‌ها ### 9. **public/js/pos.js** - `.os_exp_date`: برای تاریخ انقضای موجودی در صفحه POS ## 🔄 نحوه کار همه datepicker ها به صورت خودکار بررسی می‌کنند که: 1. آیا زبان فارسی فعال است؟ (`is_persian_lang`) 2. آیا Persian Date Picker موجود است؟ (`$.fn.persianDatepicker`) در صورت مثبت بودن هر دو، از Persian Date Picker استفاده می‌کند، در غیر این صورت از datepicker معمولی استفاده می‌کند. ## 📝 مثال کد ```javascript // بررسی و استفاده از Persian Date Picker if (typeof is_persian_lang !== 'undefined' && is_persian_lang && typeof $.fn.persianDatepicker !== 'undefined') { $('.date-picker').persianDatepicker({ calendarType: 'persian', format: datepicker_date_format, autoClose: true }); } else { $('.date-picker').datepicker({ autoclose: true, format: datepicker_date_format, }); } ``` ## 🎯 ویژگی‌ها - ✅ تمام datepicker ها به صورت خودکار به تقویم شمسی تبدیل می‌شوند - ✅ پشتیبانی از update و clear برای Persian Date Picker - ✅ سازگاری با datepicker های قدیمی (fallback) - ✅ استفاده از فرمت تاریخ مناسب (`YYYY/MM/DD` برای فارسی) ## 🔧 تنظیمات فرمت تاریخ پیش‌فرض در `resources/views/layouts/partials/javascripts.blade.php` تنظیم شده است: ```php // برای فارسی $datepicker_date_format = 'yyyy/mm/dd'; ``` ## ⚠️ نکات مهم 1. **متدهای Persian Date Picker:** - `setDate()` به جای `datepicker('update', date)` - `clear()` به جای `datepicker('update', '')` 2. **فرمت تاریخ:** - Persian Date Picker از فرمت `YYYY/MM/DD` استفاده می‌کند - نه `dd-mm-yyyy` یا فرمت‌های دیگر 3. **کتابخانه‌های مورد نیاز:** - `persian-datepicker` (CSS و JS) - `persian-date` (برای کار با تاریخ‌های شمسی) - `moment-jalaali` (برای moment.js) ## ✅ چک‌لیست تست - [ ] تمام datepicker ها تقویم شمسی را نمایش می‌دهند - [ ] تاریخ‌های انقضا به درستی انتخاب می‌شوند - [ ] تاریخ تولد کاربر با تقویم شمسی کار می‌کند - [ ] تاریخ شروع کسب‌وکار در ثبت‌نام شمسی است - [ ] تاریخ‌های موجودی اولیه شمسی هستند - [ ] تاریخ‌های خرید و برگشت خرید شمسی هستند --- **نکته:** پس از تغییرات، حتماً Cache مرورگر را پاک کنید تا تغییرات JavaScript اعمال شوند.