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

137 lines
5.5 KiB
Markdown
Executable file

# گزارش بررسی پیشنهادات برای فاکتورهای باقی‌مانده
## خلاصه وضعیت
- **کل فاکتورهای باقی‌مانده**: 3,651
- **فاکتورهای بدون Business Mapping**: 3,532 (96.7%)
- **فاکتورهای با Business Mapping اما منتقل نشده**: 119 (3.3%)
---
## پیشنهاد 1: بررسی و انتقال کسب‌وکارهای باقی‌مانده
### وضعیت:
- **250 کسب‌وکار** بدون mapping
- **3,532 فاکتور** تحت تأثیر
### یافته‌ها:
1. برخی از این کسب‌وکارها دارای کاربر در سیستم جدید هستند اما کسب‌وکار ندارند:
- درمان طب (602 فاکتور) - کاربر ID: 3222
- شرکت ماشین های اداری کارو (112 فاکتور) - کاربر ID: 45
- جیکات وب (99 فاکتور) - کاربر ID: 2715
- مسجد حوری (80 فاکتور) - کاربر ID: 301
- صنایع غذایی دشت ناز مائده (78 فاکتور) - کاربر ID: 2616
2. برخی کاربر ندارند:
- اسمگ فارسی (235 فاکتور)
- متین - سینا (216 فاکتور)
- Aaaaa (104 فاکتور)
- سایت مهتاکو (102 فاکتور)
### راه‌حل:
1. برای کسب‌وکارهایی که کاربر دارند: ایجاد کسب‌وکار جدید با همان نام
2. برای کسب‌وکارهایی که کاربر ندارند: ابتدا کاربر را ایجاد/یافت کرده سپس کسب‌وکار
---
## پیشنهاد 2: بررسی فاکتورهای با mapping اما منتقل نشده
### وضعیت:
- **119 فاکتور** با business mapping اما منتقل نشده
- **9 فاکتور buy**
- **110 فاکتور sell**
### مشکلات شناسایی شده:
#### الف) فاکتورهای بدون Person ID (102 فاکتور sell):
- مشکل: فاکتورهای فروش نیاز به person_id دارند
- نمونه:
- Invoice ID: 50770 (sell)
- Invoice ID: 43141 (sell)
- Invoice ID: 43173 (sell)
#### ب) فاکتورهای بدون Product Rows (7 فاکتور sell):
- مشکل: فاکتور باید حداقل یک سطر کالا داشته باشد
- این فاکتورها قابل انتقال نیستند
#### ج) فاکتورهای بدون Row (5 فاکتور sell):
- مشکل: فاکتور بدون هیچ سطری
- این فاکتورها قابل انتقال نیستند
### راه‌حل:
1. بررسی اینکه آیا product_id و person_id در mapping هستند
2. اگر mapping دارند اما منتقل نشده‌اند، احتمالاً مشکل duplicate code یا خطای دیگر است
3. فاکتورهای بدون row/product قابل انتقال نیستند - باید رد شوند
---
## پیشنهاد 3: بررسی فاکتورهای بدون row/product/person
### وضعیت:
- **5 فاکتور** بدون row
- **7 فاکتور** بدون product rows
- **102 فاکتور** بدون person rows
### تصمیم:
- این فاکتورها قابل انتقال نیستند
- باید در لاگ به عنوان "rejected" ثبت شوند
- نیازی به تلاش مجدد نیست
---
## پیشنهاد 4: اجرای مجدد migration برای فاکتورهای با business mapping
### وضعیت:
- **119 فاکتور** با business mapping منتقل نشده‌اند
- باید علت را شناسایی کرد
### اقدامات:
1. بررسی لاگ خطاها برای این فاکتورها
2. بررسی duplicate code
3. بررسی mapping product_id و person_id
4. اجرای مجدد migration فقط برای این فاکتورها
---
## جمع‌بندی و اولویت‌بندی
### اولویت 1 (ضروری):
- **ایجاد کسب‌وکارها برای کاربران موجود**: حدود 1,071 فاکتور قابل انتقال
- **بررسی فاکتورهای با mapping اما منتقل نشده**: 119 فاکتور
### اولویت 2 (مهم):
- **ایجاد کاربران و کسب‌وکارهای باقی‌مانده**: 2,461 فاکتور
### اولویت 3 (اختیاری):
- **فاکتورهای بدون row/product/person**: 114 فاکتور - قابل انتقال نیستند
---
## اقدامات پیشنهادی
### 1. ایجاد کسب‌وکار برای کاربران موجود:
```sql
-- برای هر کسب‌وکار قدیمی که کاربر در سیستم جدید دارد:
-- ایجاد کسب‌وکار جدید با نام یکسان
```
### 2. اجرای migration برای فاکتورهای با business mapping:
```bash
# اجرای migration فقط برای فاکتورهایی که business mapping دارند
# و مشکل duplicate code یا دیگر مشکلات را بررسی می‌کند
```
### 3. ایجاد script برای کسب‌وکارهای باقی‌مانده:
- بررسی و ایجاد کاربر (در صورت نبود)
- ایجاد کسب‌وکار
- اجرای migration مجدد
---
## نتیجه‌گیری
1. **96.7% از فاکتورهای باقی‌مانده** مربوط به کسب‌وکارهایی است که mapping ندارند
2. **حدود 30% از این کسب‌وکارها** کاربر در سیستم جدید دارند - می‌توان کسب‌وکار ایجاد کرد
3. **119 فاکتور** با mapping منتقل نشده که نیاز به بررسی دقیق دارند
4. **114 فاکتور** قابل انتقال نیستند (بدون row/product/person)