forked from hesabix/arc
4.7 KiB
Executable file
4.7 KiB
Executable file
وضعیت پیادهسازی: انتخاب کالاهای یونیک در فاکتور
تاریخ: 2024
✅ کارهای انجام شده
Backend (کامل)
-
اعتبارسنجی selected_instance_ids (
invoice_service.py)- تابع
_validate_selected_instancesایجاد شد - بررسی اینکه کالا یونیک است
- بررسی اینکه تعداد instance ها دقیقاً برابر quantity باشد
- بررسی تکرار در لیست
- بررسی دسترس بودن همه instance ها
- فقط برای فاکتور فروش و برگشت از خرید
- تابع
-
اعمال اعتبارسنجی در create_invoice
- اعتبارسنجی در زمان ذخیره فاکتور
-
اعمال اعتبارسنجی در update_invoice
- اعتبارسنجی در زمان بهروزرسانی فاکتور
-
انتقال selected_instance_ids به حواله (
warehouse_service.py)- در تابع
create_from_invoice - خواندن
selected_instance_idsازextra_infoخط فاکتور - انتقال به
instance_ids_from_lineدر حواله
- در تابع
Frontend (در حال انجام)
-
مدل InvoiceLineItem
- فیلد
selectedInstanceIdsاضافه شد - در constructor و copyWith اضافه شد
- فیلد
-
تابع فرمت ویژگیها (
attribute_formatter.dart)- تابع
formatAttributeValueبرای فرمت بر اساس data_type - پشتیبانی از text, number, date, select, boolean
- تابع
formatAttributesForDisplayبرای نمایش چند ویژگی
- تابع
-
دیالوگ انتخاب instance ها (
unique_product_instance_selector_dialog.dart)- دیالوگ کامل برای انتخاب instance ها
- بارگذاری ویژگیهای کالا با data_type
- فرمت ویژگیها برای نمایش
- جستجو و فیلتر
- اعتبارسنجی تعداد انتخاب شده
-
بهروزرسانی InvoiceLineItemsTable
- CalendarController اضافه شد به پارامترها
- Import دیالوگ اضافه شد
-
بهروزرسانی new_invoice_page
- CalendarController به InvoiceLineItemsTable ارسال شد
- در
_serializeLineItem،selected_instance_idsبه extra_info اضافه شد
-
بهروزرسانی edit_invoice_page
- CalendarController به InvoiceLineItemsTable ارسال شد
- در
_serializeLineItem،selected_instance_idsبه extra_info اضافه شد
⏳ کارهای باقیمانده
Frontend
-
بارگذاری selected_instance_ids در edit_invoice_page
- در تابع
_loadInvoice، خواندنselected_instance_idsازextra_info - افزودن به InvoiceLineItem در زمان بارگذاری
- در تابع
-
UI برای انتخاب instance ها در line_items_table
- افزودن دکمه "انتخاب کالای یونیک" در ردیفها
- فقط برای کالاهای یونیک (
inventory_mode == "unique") - فقط برای فاکتور فروش و برگشت از خرید
- باز کردن دیالوگ انتخاب
- بهروزرسانی InvoiceLineItem با selectedInstanceIds
-
نمایش instance های انتخاب شده در فاکتور
- نمایش خلاصه instance های انتخاب شده در ردیف
- نمایش سریال نامبرها یا تعداد
-
نمایش در حواله ایجاد شده از فاکتور
- در
warehouse_document_form_dialog.dart - خواندن
selected_instance_idsاز فاکتور - نمایش instance های انتخاب شده با فرمت ویژگیها
- در
📝 نکات مهم
-
فقط برای فاکتور فروش و برگشت از خرید
- این قابلیت فقط برای فاکتورهایی که حواله خارج ایجاد میکنند معنا دارد
-
اختیاری بودن انتخاب
- اگر instance انتخاب نشود، میتوان در زمان ایجاد حواله انتخاب کرد
-
اعتبارسنجی
- تعداد instance های انتخاب شده باید دقیقاً برابر quantity باشد
- همه instance ها باید در دسترس باشند (status == "available")
-
فرمت ویژگیها
- تاریخ بر اساس تقویم انتخاب شده کاربر (شمسی یا میلادی)
- عدد با جداکننده هزارگان
- select: نمایش label به جای value
🔄 مراحل بعدی
- کامل کردن UI در line_items_table
- بارگذاری selected_instance_ids در edit_invoice_page
- نمایش در حواله
- تست کامل سناریو