Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/docs/BOM_FIELDS_ANALYSIS.md
2026-04-14 19:34:55 +03:30

112 lines
7.3 KiB
Markdown
Executable file

# گزارش بررسی فیلدهای BOM Editor
## 🔍 تب مواد اولیه (Items)
### فیلدهای موجود در UI:
| فیلد | کاربرد در تولید اسناد حسابداری | وضعیت | مشکل |
|------|--------------------------------|--------|------|
| **ردیف (lineNo)** | ترتیب نمایش و مرتب‌سازی | ✅ | - |
| **کالا (componentProductId)** | شناسایی کالای مصرفی برای ایجاد سطر در سند تولید (debit به حساب موجودی کالا) | ✅ | - |
| **مقدار برای 1 واحد (qtyPer)** | محاسبه مقدار واقعی مورد نیاز بر اساس مقدار تولید | ✅ | - |
| **واحد (uom)** | نمایش واحد در سند تولید | ✅ | - |
| **پرت (%) (wastagePercent)** | محاسبه مقدار اضافی برای جبران پرت در تولید | ✅ | - |
| **گروه جایگزین (substituteGroup)** | امکان جایگزینی کالاها در صورت نبود موجودی | ⚠️ | در سند تولید استفاده نمی‌شود |
### فیلدهای موجود در مدل اما **غایب در UI**:
| فیلد | کاربرد در تولید اسناد حسابداری | مشکل |
|------|--------------------------------|------|
| **isOptional (اختیاری)** | مشخص می‌کند که این ماده اولیه اختیاری است و می‌تواند در تولید استفاده نشود | ❌ **عدم نمایش در UI** - کاربر نمی‌تواند مشخص کند کدام مواد اختیاری هستند |
| **suggestedWarehouseId (انبار پیشنهادی)** | در سند تولید، انبار پیشنهادی برای برداشت مواد را مشخص می‌کند | ❌ **عدم نمایش در UI** - در `produce_draft` استفاده می‌شود اما کاربر نمی‌تواند آن را تنظیم کند |
---
## 🔍 تب خروجی‌ها (Outputs)
### فیلدهای موجود در UI:
| فیلد | کاربرد در تولید اسناد حسابداری | وضعیت | مشکل |
|------|--------------------------------|--------|------|
| **ردیف (lineNo)** | ترتیب نمایش | ✅ | - |
| **محصول خروجی (outputProductId)** | شناسایی محصول تولید شده برای ایجاد سطر در سند تولید (credit به حساب موجودی کالا) | ✅ | - |
| **نسبت (ratio)** | نسبت خروجی محصول به ازای هر واحد تولید | ✅ | - |
| **واحد (uom)** | نمایش واحد در سند تولید | ✅ | - |
### فیلدهای موجود در مدل اما **غایب در UI**:
| فیلد | کاربرد در تولید اسناد حسابداری | مشکل |
|------|--------------------------------|------|
| **ratioMainUnit (نسبت واحد اصلی)** | نسبت در واحد اصلی کالا | ⚠️ **عدم نمایش** - ممکن است برای محاسبات دقیق‌تر نیاز باشد |
| **mainUnit (واحد اصلی)** | واحد اصلی کالا | ⚠️ **عدم نمایش** - ممکن است برای محاسبات دقیق‌تر نیاز باشد |
---
## 🔍 تب عملیات (Operations)
### فیلدهای موجود در UI:
| فیلد | کاربرد در تولید اسناد حسابداری | وضعیت | مشکل |
|------|--------------------------------|--------|------|
| **ردیف (lineNo)** | ترتیب نمایش | ✅ | - |
| **نام عملیات (operationName)** | نام عملیات تولیدی | ✅ | - |
| **هزینه ثابت (costFixed)** | هزینه ثابت عملیات | ⚠️ | ❌ **عدم استفاده در تولید اسناد** - این هزینه در `produce_draft` استفاده نمی‌شود |
| **هزینه واحد (costPerUnit)** | هزینه به ازای هر واحد | ⚠️ | ❌ **عدم استفاده در تولید اسناد** - این هزینه در `produce_draft` استفاده نمی‌شود |
| **واحد هزینه (costUom)** | واحد هزینه | ⚠️ | ❌ **عدم استفاده در تولید اسناد** - این هزینه در `produce_draft` استفاده نمی‌شود |
| **ایستگاه کاری (workCenter)** | شناسایی ایستگاه کاری | ⚠️ | ❌ **عدم استفاده در تولید اسناد** - فقط برای اطلاعات است |
---
## 🚨 مشکلات کلی
### 1. فیلدهای مهم که در UI نمایش داده نمی‌شوند:
#### مواد اولیه:
- **isOptional**: کاربر نمی‌تواند مشخص کند کدام مواد اختیاری هستند
- **suggestedWarehouseId**: کاربر نمی‌تواند انبار پیشنهادی را مشخص کند (در حالی که در `produce_draft` استفاده می‌شود)
### 2. فیلدهای بدون کارایی در تولید اسناد حسابداری:
#### عملیات:
- **costFixed**: هزینه ثابت عملیات - در `produce_draft` استفاده نمی‌شود
- **costPerUnit**: هزینه واحد عملیات - در `produce_draft` استفاده نمی‌شود
- **costUom**: واحد هزینه - در `produce_draft` استفاده نمی‌شود
- **workCenter**: ایستگاه کاری - فقط برای اطلاعات است و در سند تولید استفاده نمی‌شود
#### مواد اولیه:
- **substituteGroup**: گروه جایگزین - در `produce_draft` در `extra_info` ذخیره می‌شود اما در سند تولید استفاده نمی‌شود
### 3. مشکلات فنی:
1. **عدم اعتبارسنجی**: فیلدهای عددی ممکن است مقادیر منفی یا نامعتبر داشته باشند
2. **عدم نمایش اطلاعات تکمیلی**: فیلدهای `isOptional` و `suggestedWarehouseId` در مدل وجود دارند اما در UI قابل تنظیم نیستند
3. **عدم استفاده از هزینه‌های عملیات**: فیلدهای هزینه در عملیات ذخیره می‌شوند اما در تولید سند حسابداری استفاده نمی‌شوند
---
## 💡 پیشنهادات
### 1. اضافه کردن فیلدهای غایب:
- اضافه کردن checkbox برای `isOptional` در تب مواد اولیه
- اضافه کردن dropdown برای `suggestedWarehouseId` در تب مواد اولیه
### 2. حذف یا استفاده از فیلدهای بدون کارایی:
- **گزینه 1**: حذف فیلدهای هزینه از عملیات (اگر استفاده نمی‌شوند)
- **گزینه 2**: استفاده از فیلدهای هزینه در تولید سند حسابداری (اضافه کردن سطرهای هزینه به سند)
### 3. بهبود UX:
- اضافه کردن tooltip برای توضیح کاربرد هر فیلد
- اضافه کردن validation برای فیلدهای عددی
- نمایش اطلاعات تکمیلی در tooltip
---
## 📊 خلاصه
| دسته | تعداد فیلد | فیلدهای با مشکل | فیلدهای بدون کارایی |
|------|-----------|-----------------|---------------------|
| مواد اولیه | 8 | 2 (isOptional, suggestedWarehouseId) | 1 (substituteGroup) |
| خروجی‌ها | 6 | 0 | 2 (ratioMainUnit, mainUnit) |
| عملیات | 6 | 0 | 4 (costFixed, costPerUnit, costUom, workCenter) |
| **جمع** | **20** | **2** | **7** |