TorbatYar/docs/frontend/accounting-menu-qa.md
Mortezakoohjani 7953e47f8b Ship accounting UX: Rial integers, auto doc numbers, reverse-and-edit, real reports, customers nav.
Wire DocumentNumberSequence allocator, ledger-based subsidiary/detail reports, and posted-voucher reopen flow without mock ops forms.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-26 15:52:06 +03:30

180 lines
20 KiB
Markdown

# Accounting Menu QA Progress
> Auto-generated by `scripts/accounting_fe_menu_audit.py` + manual STATUS overrides.
> Update STATUS in the script as each submenu is interactively verified.
**Generated counts:** pass=67 partial=54 review=3 fail=0 blocked=8
## Global FE standards (this pass)
- [x] `MoneyInput` thousand separators (design system) — value stays raw for API
- [x] `formatMoney` / `parseMoneyInput` / `formatMoneyGrouped` in `frontend/lib/utils.ts`
- [x] Party AJAX combobox (`PartyCombobox`) from customers/suppliers APIs
- [x] Item AJAX combobox (`ItemCombobox`) from `/ops/items`
- [x] Dialog portal `z-[100]` so create buttons open reliably
- [ ] Full interactive loop on production for every submenu (in progress)
## Menu checklist
| Group | Label | Route | Status | Wiring | Notes | page.tsx |
|-------|-------|-------|--------|--------|-------|----------|
| treasury | دریافت و پرداخت | `/accounting/treasury/receipts-payments` | **pass** | domain | ReceiptsPaymentsPage | yes |
| treasury | صندوق‌ها | `/accounting/treasury/cash-boxes` | **pass** | domain | redirect → treasury?tab=cash-boxes | yes |
| treasury | بانک‌ها | `/accounting/treasury/banks` | **pass** | domain | redirect → treasury?tab=banks | yes |
| treasury | انتقال وجه | `/accounting/treasury/transfers` | **pass** | domain | TransfersPage | yes |
| treasury | تطبیق بانکی | `/accounting/treasury/reconciliation` | **pass** | domain | ReconciliationPage | yes |
| treasury | چک‌ها | `/accounting/treasury/cheques` | **pass** | domain | ChequesPage | yes |
| treasury | ثبت چک | `/accounting/treasury/cheques/new` | **pass** | domain | ChequesPage initialOpen | yes |
| treasury | ضمانت‌ها | `/accounting/treasury/guarantees` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| treasury | تسهیلات و اعتبارات | `/accounting/treasury/facilities` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| purchase | درخواست خرید | `/accounting/purchase/requests` | **pass** | ops | OperationalDocumentPage lines+party | yes |
| purchase | سفارش خرید | `/accounting/purchase/orders` | **pass** | ops | OperationalDocumentPage lines+party | yes |
| purchase | رسید کالا | `/accounting/purchase/goods-receipts` | **pass** | ops+domain-post | OperationalDocumentPage + purchase post | yes |
| purchase | فاکتور خرید | `/accounting/purchase/invoices` | **pass** | ops+domain-post | OperationalDocumentPage + Item/Party combobox + money sep | yes |
| purchase | مرجوعی خرید | `/accounting/purchase/returns` | **pass** | ops | OperationalDocumentPage | yes |
| purchase | پیش‌پرداخت‌ها | `/accounting/purchase/prepayments` | **pass** | ops | OperationalDocumentPage | yes |
| purchase | تسویه با تأمین‌کننده | `/accounting/purchase/settlements` | **pass** | domain | SettlementsPage AR/AP | yes |
| purchase | فاکتورهای تأمین‌کننده | `/accounting/suppliers` | **pass** | domain | suppliers AR/AP | yes |
| sales | فرصت‌های فروش | `/accounting/sales/opportunities` | **pass** | ops | OperationalDocumentPage | yes |
| sales | پیش‌فاکتور | `/accounting/sales/proformas` | **pass** | ops | OperationalDocumentPage | yes |
| sales | سفارش فروش | `/accounting/sales/orders` | **pass** | ops | OperationalDocumentPage | yes |
| sales | فاکتور فروش | `/accounting/sales/invoices` | **pass** | ops+domain-post | OperationalDocumentPage + Item/Party combobox + money sep | yes |
| sales | مرجوعی فروش | `/accounting/sales/returns` | **pass** | ops | OperationalDocumentPage | yes |
| sales | پیش‌دریافت‌ها | `/accounting/sales/pre-receipts` | **pass** | ops | OperationalDocumentPage | yes |
| sales | تسویه حساب مشتریان | `/accounting/sales/settlements` | **pass** | domain | SettlementsPage AR/AP | yes |
| sales | فاکتورهای مشتریان | `/accounting/customers` | **pass** | domain | customers AR/AP | yes |
| vouchers | صدور سند | `/accounting/vouchers/new` | **pass** | domain | Posting Engine create | yes |
| vouchers | لیست اسناد | `/accounting/vouchers` | **pass** | domain | Posting Engine list | yes |
| vouchers | اسناد پیش‌نویس | `/accounting/vouchers` | **pass** | domain | Posting Engine list | yes |
| vouchers | اسناد تکراری | `/accounting/vouchers/recurring` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| vouchers | اسناد اصلاحی | `/accounting/vouchers/adjustments` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| vouchers | اسناد برگشتی | `/accounting/vouchers` | **pass** | domain | Posting Engine list | yes |
| vouchers | تأیید و ثبت اسناد | `/accounting/vouchers` | **pass** | domain | Posting Engine list | yes |
| vouchers | الگوی سند | `/accounting/vouchers/templates` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | کارمندان | `/accounting/payroll/employees` | **pass** | domain | payroll employees | yes |
| payroll | تعریف قرارداد | `/accounting/payroll/contracts` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | ساختار حقوق | `/accounting/payroll/structures` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | اقلام حقوق و مزایا | `/accounting/payroll/items` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | محاسبه حقوق | `/accounting/payroll/calculate` | **pass** | domain | redirect → payroll hub with calc | yes |
| payroll | پرداخت حقوق | `/accounting/payroll/payments` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | تسهیم هزینه حقوق | `/accounting/payroll/allocation` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| payroll | گزارش‌های حقوق | `/accounting/payroll/reports` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| assets | ثبت دارایی | `/accounting/assets` | **pass** | domain | fixed assets hub | yes |
| assets | داشبورد دارایی | `/accounting/assets/dashboard` | **pass** | domain | redirect → assets hub | yes |
| assets | محاسبه استهلاک | `/accounting/assets/depreciate` | **pass** | domain | redirect → assets hub | yes |
| assets | برنامه استهلاک | `/accounting/assets/schedule` | **pass** | domain | depreciation schedule | yes |
| assets | انتقال دارایی | `/accounting/assets/transfers` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| assets | استهلاک انباشته | `/accounting/assets/accumulated` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| assets | ارزش‌گذاری دارایی | `/accounting/assets/valuation` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| assets | معرفی و فروش دارایی | `/accounting/assets/dispose` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| inventory | کارت کالا / خدمت | `/accounting/inventory/items` | **pass** | ops | InventoryItemsPage | yes |
| inventory | گردش کالا | `/accounting/inventory/movements` | **pass** | ops | OperationalDocumentPage | yes |
| inventory | ارزش‌گذاری موجودی | `/accounting/inventory/valuation` | **pass** | domain | InventoryValuationPage | yes |
| inventory | تنظیمات انبار | `/accounting/inventory/settings` | **pass** | ops | WarehousesPage | yes |
| inventory | انتقال انبار | `/accounting/inventory/transfers` | **pass** | ops | OperationalDocumentPage | yes |
| inventory | رسید ورود و خروج | `/accounting/inventory/receipts-issues` | **pass** | ops | OperationalDocumentPage | yes |
| inventory | تعدیل موجودی | `/accounting/inventory/adjustments` | **pass** | ops | OperationalDocumentPage | yes |
| inventory | گزارش‌های انبار | `/accounting/inventory/reports` | **pass** | domain | reuses valuation | yes |
| coa | دسته‌بندی حساب‌ها | `/accounting/chart-of-accounts` | **pass** | domain | COA | yes |
| coa | حساب‌های کل | `/accounting/chart-of-accounts` | **pass** | domain | COA | yes |
| coa | حساب‌های معین | `/accounting/chart-of-accounts` | **pass** | domain | COA | yes |
| coa | حساب‌های تفصیلی | `/accounting/chart-of-accounts` | **pass** | domain | COA | yes |
| coa | مراکز هزینه | `/accounting/cost-centers` | **pass** | domain | dimensions | yes |
| coa | پروژه‌ها | `/accounting/projects` | **pass** | domain | dimensions | yes |
| coa | تنظیمات ساختار | `/accounting/chart-of-accounts` | **pass** | domain | COA | yes |
| coa | دفتر کل | `/accounting/ledger` | **pass** | domain | GL | yes |
| reports | ترازنامه | `/accounting/reports` | **pass** | domain | Report Engine | yes |
| reports | سود و زیان | `/accounting/reports` | **pass** | domain | Report Engine | yes |
| reports | جریان وجوه نقد | `/accounting/reports?type=cash-flow` | **pass** | domain | cash-flow from ledger | yes |
| reports | تغییرات حقوق صاحبان سهام | `/accounting/reports?type=equity` | **pass** | domain | equity from ledger | yes |
| reports | تراز آزمایشی | `/accounting/reports` | **pass** | domain | Report Engine | yes |
| reports | گزارش معین | `/accounting/reports?type=subsidiary` | **pass** | domain | subsidiary ledger from posted data | yes |
| reports | گزارش تفصیلی | `/accounting/reports?type=detail` | **pass** | domain | detail ledger from posted data | yes |
| reports | گزارش تحلیلی | `/accounting/reports?type=analytical` | **pass** | domain | analytical from ledger | yes |
| budget | تعریف بودجه | `/accounting/budget/definitions` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | بودجه‌ریزی عملیاتی | `/accounting/budget/operational` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | کنترل بودجه | `/accounting/budget/control` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | تحلیل انحراف بودجه | `/accounting/budget/variance` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | مقایسه عملکرد | `/accounting/budget/performance` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | پیش‌بینی مالی | `/accounting/budget/forecast` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | سناریوهای مالی | `/accounting/budget/scenarios` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| budget | گزارش بودجه | `/accounting/budget/reports` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| compliance | سیاست‌ها و قوانین | `/accounting/compliance/policies` | **pass** | domain | compliance | yes |
| compliance | گردش تأیید | `/accounting/compliance/approvals` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| compliance | تفکیک وظایف (SoD) | `/accounting/compliance/sod` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| compliance | کنترل‌های داخلی | `/accounting/compliance/controls` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| compliance | مدیریت ریسک | `/accounting/compliance/risks` | **pass** | domain | compliance | yes |
| compliance | انطباق و حسابرسی | `/accounting/audit` | **review** | domain/screen | domain/screen — needs interactive verify | yes |
| compliance | اسناد و سوابق | `/accounting/compliance/records` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| compliance | گزارش تخلفات | `/accounting/compliance/violations` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| ai | دستیار حسابداری | `/accounting/ai` | **blocked** | blocked | Phase 5.12 until AI provider Active | yes |
| ai | پرسش و پاسخ | `/accounting/ai/qa` | **blocked** | blocked | AI gated | yes |
| ai | تحلیل هوشمند | `/accounting/ai/analytics` | **blocked** | blocked | AI gated | yes |
| ai | پیش‌بینی‌ها | `/accounting/ai/forecasts` | **blocked** | blocked | AI gated | yes |
| ai | کشف ناهنجاری | `/accounting/ai/anomalies` | **blocked** | blocked | AI gated | yes |
| ai | تطبیق هوشمند | `/accounting/ai/reconciliation` | **blocked** | blocked | AI gated | yes |
| ai | تحلیل اسناد | `/accounting/ai/documents` | **blocked** | blocked | AI gated | yes |
| ai | پیشنهادهای هوشمند | `/accounting/ai/recommendations` | **blocked** | blocked | AI gated | yes |
| settings | اطلاعات شرکت | `/accounting/settings/company` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| settings | دوره‌های مالی | `/accounting/fiscal` | **pass** | domain | fiscal periods | yes |
| settings | ارزها و نرخ‌ها | `/accounting/currencies` | **pass** | domain | FX | yes |
| settings | تنظیمات حسابداری | `/accounting/settings` | **review** | domain/screen | domain/screen — needs interactive verify | yes |
| settings | تنظیمات مالیاتی | `/accounting/settings/tax` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| settings | تنظیمات عمومی | `/accounting/settings/general` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| settings | پشتیبان‌گیری | `/accounting/settings/backup` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | اتصال بانک | `/accounting/integration/bank` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | درگاه پرداخت | `/accounting/integration/gateway` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | اتصال CRM | `/accounting/integration/crm` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | اتصال انبار | `/accounting/integration/inventory` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | اتصال حقوق | `/accounting/integration/payroll` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | وب‌سرویس‌ها | `/accounting/integration/webhooks` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | ورود / خروج داده | `/accounting/integration/import-export` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| integration | گزارش یکپارچگی | `/accounting/integration/reports` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | اسناد مالی | `/accounting/documents/financial` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | اسناد خرید | `/accounting/documents/purchase` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | اسناد فروش | `/accounting/documents/sales` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | اسناد پرسنلی | `/accounting/documents/hr` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | دسته‌بندی | `/accounting/documents/categories` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | جستجوی اسناد | `/accounting/documents/search` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | نسخه‌های سند | `/accounting/documents/versions` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| documents | نگهداری | `/accounting/documents/retention` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | داشبورد نظارتی | `/accounting/monitoring` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | عملیات اخیر | `/accounting/monitoring/recent` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | هشدارها | `/accounting/monitoring/alerts` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | فعالیت کاربران | `/accounting/monitoring/activity` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | لاگ سیستم | `/accounting/audit` | **review** | domain/screen | domain/screen — needs interactive verify | yes |
| monitoring | وضعیت سرویس | `/accounting/monitoring/health` | **pass** | domain | health+setup | yes |
| monitoring | شاخص‌های کلیدی | `/accounting/monitoring/kpis` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| monitoring | عملکرد سیستم | `/accounting/monitoring/performance` | **partial** | BusinessDocsPage | BusinessDocsPage — real /ops API; domain engine N/A | yes |
| setup | دریافت/پرداخت | `/accounting/treasury/receipts-payments` | **pass** | domain | ReceiptsPaymentsPage | yes |
| setup | گزارشات | `/accounting/reports` | **pass** | domain | TB/BS/IS + ops for others | yes |
| setup | داشبورد | `/accounting` | **pass** | domain | Dashboard + setup widgets | yes |
| misc | /accounting/setup | `/accounting/setup` | **pass** | domain | setup wizard | yes |
## Status legend
- **pass** — page exists, form opens, list/create hits real API, money/party/item rules applied where relevant
- **partial** — real `/ops` CRUD (not mock), but dedicated domain engine not built yet
- **review** — page wired but needs browser verify in loop
- **fail** — missing route/page or broken primary CTA
- **blocked** — intentionally gated (AI)
## Loop procedure
1. Open sidebar group → each submenu
2. Click primary create CTA → dialog must open (portal)
3. If party/amount/lines: combobox from DB + thousand separators
4. Save → row appears from API list
5. Mark STATUS pass in script → re-run → commit doc
## Session log (2026-07-25)
- DS `MoneyInput`: live `1,500,000` separators; API keeps plain digits
- `PartyCombobox` / `ItemCombobox` on operational docs + BusinessDocs + settlements
- Purchase/sales/inventory operational forms use item+party AJAX
- BE: `q` search on customers/suppliers/items; `party_id` on ops document PATCH/read
- Treasury cash-boxes/banks deep-link via `?tab=`
- Deployed FE + accounting to prod
- Counts after this pass: see header (pass ≈67, partial ≈54 ops-backed, blocked AI=8)