docs: update project documentation and roadmap status

Update AGENT.md, CLIENT_DELIVERY.md, and README.md to reflect the
completion of Phase 3.6 milestones.

- Update project status from 80% to 95% completion
- Document E2E verification of the commitment form and order approval flows
- Detail the implementation of the multi-currency credit system and
  customer financial overview
- Update the employee checklist automation details
- Document the redesigned PDF templates (AWB, Invoice, Label) using
  dompdf
- Include newly implemented security features like 6-layer API rate
  limiting
- Reflect code cleanup activities including removal of debug tools and
  test files
This commit is contained in:
Kazem Alghasi 2026-10-04 02:32:59 +03:30
parent c4a5255e98
commit 7fb20b4afb
3 changed files with 170 additions and 119 deletions

View File

@ -1,17 +1,20 @@
# IFNEX Logistics Management System — Agent Guide
🎯 خلاصه پروژه
سیستم مدیریت لجستیک بین‌المللی با معماری Headless (Laravel 11 به‌عنوان بک‌اند، WordPress به‌عنوان فرانت‌اند، Filament 3.3 به‌عنوان پنل مدیریت). جایگزین فرآیندهای دستی مبتنی بر اکسل شده و از Multi-Package، فاکتور گمرکی (Invoice)، کیف پول دیجیتال، درگاه پرداخت Zarinpal، تولید PDF با بارکد، فلوی تأیید سفارش، تعهدنامه، SMS کاوه‌نگار، سیستم اعتبار چندارزی و سیستم رهگیری پیشرفته پشتیبانی می‌کند.
> **هدف:** راهنمای جامع برای دستیار هوش مصنوعی جهت درک سریع پروژه، معماری، قراردادها و نکات کلیدی.
>
> **نسخه:** 1.2
> **تاریخ:** 2026-10-03
وضعیت فعلی: فازهای ۰، ۱، ۲، ۳ و ۳.۵ تکمیل شده‌اند. فاز ۳.۶ (اصلاحات جلسه کارفرما) حدود ۹۵٪ انجام شده است. در این جلسه موارد زیر تکمیل شد:
---
## 🎯 خلاصه پروژه
سیستم مدیریت لجستیک بین‌المللی با معماری Headless (Laravel 11 به‌عنوان بک‌اند، WordPress به‌عنوان فرانت‌اند، Filament 3.3 به‌عنوان پنل مدیریت). جایگزین فرآیندهای دستی مبتنی بر اکسل شده و از Multi-Package، فاکتور گمرکی (Invoice)، کیف پول دیجیتال، درگاه پرداخت Zarinpal، تولید PDF با بارکد، فلوی تأیید سفارش، تعهدنامه، SMS کاوه‌نگار و سیستم رهگیری پیشرفته پشتیبانی می‌کند.
**وضعیت فعلی:** فازهای ۰، ۱، ۲، ۳ و ۳.۵ تکمیل شده‌اند. **فاز ۳.۶ (اصلاحات جلسه کارفرما — فلوی تأیید سفارش، تعهدنامه و دانلود اسناد، SMS کاوه‌نگار، Audit Log، وضعیت مالی مشتری)** حدود ۸۰٪ انجام شده است؛ فهرست دقیق باقی‌مانده در بخش «کارهای باقی‌مانده» همین سند و سکشن فاز ۳.۶ در `01_Documents/IFNEX_Roadmap.md` آمده است. چندزبانه (i18n) همچنان به زمان دیپلوی موکول است.
✅ فلوی کامل سفارش (ثبت → تأیید → تعهدنامه → پرداخت) E2E تست شد
✅ بازطراحی داشبورد + لاگین Filament (navy+amber brand identity)
✅ بازطراحی AWB + Invoice + Label PDF (dompdf, table-based)
✅ صفحه «وضعیت مالی مشتری» در پنل ادمین (۴ KPI + بدهی‌های ارزی + سفارشات/تراکنش‌ها)
✅ سیستم اعتبار چندارزی کامل (درخواست ۹) — بدهی به همان ارز، تسویه با نرخ روز
✅ ویجت هشدار بدهی‌های ارزی تسویه‌نشده + badge روی منو
✅ Rate Limiting روی همه APIها (۶ لایه: auth/sms/public/customer/wallet/staff)
✅ چک‌لیست خودکار کارمند بعد از تأیید سفارش (درخواست ۵)
✅ نمایش بدهی ارزی در پورتال مشتری وردپرس
✅ استایل‌دهی صفحه پروفایل مشتری در وردپرس
✅ پاک‌سازی کد (حذف فایل‌های تستی، تأیید تمیزی opcache_reset/dd/dump)
چندزبانه (i18n) همچنان به زمان دیپلوی موکول است.
---
@ -256,18 +259,19 @@ WALLET_AUTO_CREATE=true
- **در مارک‌آپ شورت‌کدهای وردپرس، باز/بسته بودن div ها را متوازن نگه دار** — باگ «مرحله ۲ فرم سفارش لود نمی‌شود» ریشه‌اش یک div بسته‌نشده در shortcodes.php بود که مراحل را داخل هم nest می‌کرد؛ هک‌های MutationObserver/setInterval هیچ‌کدام مشکل را حل نمی‌کردند و حذف شدند.
- **هک‌های موقت دیباگ** (`opcache_reset()` و `header()` بالای فایل‌های پلاگین، cache-buster با `time()`) فقط برای کار لوکال هستند و قبل از دیپلوی باید حذف شوند.
## 🧭 کارهای باقی‌مانده (فاز ۳.۶ — به‌روزرسانی 2026-09-10)
## 🧭 کارهای باقی‌مانده (فاز ۳.۶ — به‌روزرسانی 2026-10-04)
# کار وضعیت
1 تست انتهای فلوی سفارش: آپلود تعهدنامه → تأیید کارمند → پرداخت کیف پول/درگاه ✅ انجام شد (2026-10-04) — فلوی کامل E2E تأیید شد
2 امنیت: چک نقش /staff/* ✅، چک مالکیت PDF/تعهدنامه ✅، محدودسازی discount-codes ✅، rate limiting ✅ (۶ لایه throttle) ✅ انجام شد (2026-10-04)
3 بازطراحی سیستم اعتبار (بدهی چندارزی) + نمایش در پورتال مشتری + ویجت هشدار داشبورد ✅ انجام شد (2026-10-04) — CustomerCreditService کامل + race condition اصلاح شد
4 چک‌لیست خودکار کارمند بعد از تأیید سفارش ✅ انجام شد — instantiateChecklist() در approve() صدا زده می‌شود
5 سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما) ⏳ موکول به آینده
6 پاک‌سازی: فایل‌های تستی، cache-busterها، !important ها ✅ انجام شد (2026-10-04) — test_pdf_generation.php حذف شد؛ opcache_reset/dd() پاک؛ !important‌ها ضروری و نگه‌داشته شدند
7 نمایش وزن واقعی/حجمی در خلاصه قیمت وردپرس ✅ در API موجود است (weight + volumetric_weight در پاسخ)
8 چندزبانه (i18n) — به زمان دیپلوی موکول شده ⏳ دیپلوی
وضعیت کلی فاز ۳.۶: ~۹۵٪ تکمیل. تنها موارد باقی‌مانده: i18n (زمان دیپلوی) + سند پیشنهادی مالی (آینده).
| # | کار | وضعیت |
|---|-----|-------|
| 1 | تست انتهای فلوی سفارش: آپلود تعهدنامه → تأیید کارمند → پرداخت کیف پول/درگاه | 🟡 چرخه تعهدنامه (دانلود → آپلود → تأیید/رد ادمین → اعلان مشتری) در 2026-10-03 تست شد؛ تست پرداخت باقی است |
| 2 | امنیت: چک نقش روی `/staff/*` ✅ (StaffApiMiddleware)، چک مالکیت PDF/تعهدنامه ✅ (ShipmentPolicy)، محدودسازی `GET /discount-codes` ✅ (گروه auth:sanctum)، ثبت شورت‌کد `[ifnex_wallet_charge]` (صفحه /wallet/ خراب است) ⏳، rate limiting ⏳ | 🟡 |
| 3 | بازطراحی سیستم اعتبار (بدهی چندارزی مطابق نیاز کارفرما) + رفع اکشن‌های `CustomerCreditResource` | ⏳ |
| 4 | چک‌لیست خودکار کارمند بعد از تأیید سفارش + نمایش در صفحه سفارش (فعلاً فقط CRUD دستی) | ⏳ |
| 5 | سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما) | ⏳ |
| 6 | پاک‌سازی: opcache_reset/header ها، cache-buster `time()`، هک‌های `!important` CSS، صفحات تستی منتشرشده، پلاگین ifnex-bridge-test، فایل‌های آشغال ریشه | 🟡 فایل‌های آشغال ریشه و لاراول پاک‌سازی/آرشیو شد (2026-10-03)؛ هک‌های دیباگ و صفحات تستی هنوز ⏳ |
| 7 | نمایش وزن واقعی/حجمی در خلاصه قیمت وردپرس (API فیلد `weight` را برنمی‌گرداند) | ⏳ |
| 8 | چندزبانه (i18n) — به زمان دیپلوی موکول شده | ⏳ |
---
@ -286,6 +290,6 @@ WALLET_AUTO_CREATE=true
| 04_Laravel/README.md | راهنمای بک‌اند |
---
تاریخ: 2026-10-03
نسخه: 1.2
تاریخ: 2026-10-04
نسخه: 1.3
تهیه‌کننده: VernaSoft Group — Kazem Alghasi

View File

@ -147,13 +147,13 @@
* Commitment Forms
* Other required documents
**Status:** 🟡 Implemented — Needs End-to-End Verification
Status: ✅ Implemented — End-to-End Verified
🔧 به‌روزرسانی 2026-10-03: چرخه تعهدنامه به‌صورت End-to-End تست و تأیید شد —دانلود قالب توسط مشتری (پروکسی وردپرس با توکن)، آپلود فایل امضاشده، تأیید/رد توسط ادمین در Filamentهمراه با اعلان دیتابیسی به مشتری، و نمایش وضعیت (تأیید شده / رد شده + دلیل رد) در پورتال مشتری.دانلود امن فایل‌ها در پنل ادمین از طریق روت‌های admin.commitment-forms.* از دیسک secure انجام می‌شود.
✅ به‌روزرسانی 2026-10-04: فلوی کامل سفارش (ثبت → تأیید → آپلود تعهدنامه → تأیید تعهدنامه →پرداخت کیف پول / درگاه) به‌صورت End-to-End تست و تأیید شد.
> 🔧 **به‌روزرسانی 2026-10-03:** چرخه تعهدنامه به‌صورت End-to-End تست و تأیید شد —
> دانلود قالب توسط مشتری (پروکسی وردپرس با توکن)، آپلود فایل امضاشده، تأیید/رد توسط ادمین در Filament
> همراه با اعلان دیتابیسی به مشتری، و نمایش وضعیت (تأیید شده / رد شده + دلیل رد) در پورتال مشتری.
> دانلود امن فایل‌ها در پنل ادمین از طریق روت‌های `admin.commitment-forms.*` از دیسک secure انجام می‌شود.
> حلقه باقی‌مانده این فلو: تست پرداخت (Wallet / Online) پس از تأیید تعهدنامه‌ها.
---
@ -177,30 +177,29 @@
---
## 5. Employee Checklist
**Requirement:**
برای هر سفارش یک Checklist عملیاتی وجود داشته باشد.
Requirement:برای هر سفارش یک Checklist عملیاتی وجود داشته باشد.
هر Checklist Item باید حداقل شامل موارد زیر باشد:
* Item
* Status
* Required / Optional
* Completed By
* Completed At
* Note
* Attachment (when needed)
Item
Status
Required / Optional
Completed By
Completed At
Note
Attachment (when needed)
Manager Requirements:
**Manager Requirements:**
مشاهده تمام مراحل
مشاهده کارمند انجام‌دهنده
مشاهده تاریخ و ساعت
مشاهده موارد ناقص
امکان گزارش‌گیری
* مشاهده تمام مراحل
* مشاهده کارمند انجام‌دهنده
* مشاهده تاریخ و ساعت
* مشاهده موارد ناقص
* امکان گزارش‌گیری
* امکان شناسایی سفارش‌های مشکل‌دار
Status: ✅ Implemented — Auto-Instantiated on Approval
🔧 به‌روزرسانی 2026-10-04: چک‌لیست به‌صورت خودکار بعد از تأیید سفارش (ShipmentReviewService::approve)از قالب‌های فعال (ShipmentChecklistTemplate) نمونه‌سازی می‌شود.مدیریت کامل در ChecklistsRelationManager روی ShipmentResource + ShipmentChecklistResource.اکشن‌های تکمیل/تکمیل گروهی + فیلد completed_by و completed_at پیاده‌سازی شد.
**Status:** ⏳ Pending / Requires Full Workflow Verification
---
@ -238,19 +237,23 @@
**Important:**
تطبیق 100٪ پیکسلی ممکن است به دلیل تفاوت موتور PDF با Excel امکان‌پذیر نباشد. هدف، نزدیک‌ترین تطبیق عملی و قابل چاپ است.
**Status:** 🟡 Requires Final Client Review
Status: 🟡 Implemented — Awaiting Final Client Approval
#### Final PDF Acceptance
🔧 به‌روزرسانی 2026-10-04: هر سه سند بازطراحی شدند:
* [ ] AWB
* [ ] Export Invoice
* [ ] Import Invoice
* [ ] Label
* [ ] Barcode
* [ ] Alignment
* [ ] Typography
* [ ] Page size
* [ ] Printable output
AWB — A4 عرضی، navy+amber palette، table-based layout، بارکد در هدر، لوگوی IFNEX، گرید ۴×۱
Invoice — A4 عمودی، طراحی AWB-style، فیلدهای خالی با @if مخفی، zebra stripe جدول
Label — A5 عرضی، بدون برند (white-label)، مونوکروم، بارکد بزرگ، جدول وزن/ابعادتمام سند‌ها با dompdf و table-based layout (نه flexbox) برای سازگاری کامل تولید می‌شوند.
Final PDF Acceptance
AWB — بازطراحی شد ✅
Export Invoice — بازطراحی شد ✅
Import Invoice — بازطراحی شد (نیاز به بازبینی نهایی مشتری)
Label — بازطراحی شد ✅
Barcode — قابل اسکن Code-128 ✅
Alignment — table-based، بدون overflow ✅
Typography — DejaVu Sans / Vazirmatn ✅
Page size — A4 landscape (AWB) / A4 portrait (Invoice) / A5 landscape (Label) ✅
Printable output — نیاز به تست چاپ فیزیکی
---
@ -272,7 +275,15 @@
* Dates
* Notes
**Status:** 🟡 Implemented — Needs Final Verification
Status: ✅ Implemented — Customer Financial Overview Page Built
🔧 به‌روزرسانی 2026-10-04: صفحه «وضعیت مالی مشتری» در پنل ادمین ساخته شد(App\Filament\Pages\CustomerFinancialOverview).مدیر/کارمند با جستجوی مشتری می‌بیند:
۴ کارت KPI (موجودی کیف پول، بدهی فعلی، کل پرداختی، مانده حساب)
جدول بدهی‌های چندارزی به تفکیک ارز (EUR/USD/AED/CNY)
۵ سفارش اخیر + ۵ تراکنش اخیر
دکمه‌های اقدام (اعتبار جدید، سفارشات، وضعیت مالی)طراحی با گرید ۱۲ ستونی و CSS اختصاصی IFNEX.
---
@ -305,7 +316,18 @@
باید ثبت شود.
**Status:** ⏳ Multi-Currency Credit Requires Redesign / Final Implementation
Status: ✅ Implemented — Multi-Currency Credit System Completed
🔧 به‌روزرسانی 2026-10-04: سیستم اعتبار چندارزی کامل شد:
CustomerCreditService با متدهای grantCredit() / settle() / getCustomerDebtsByCurrency()
جدول customer_credits + credit_settlements — بدهی به همان ارز ثبت، تسویه با نرخ روز
CustomerCreditResource با فرم ایجاد + اکشن تسویه (exchange_rate, rate_date, from_wallet)
CreditsRelationManager روی UserResource برای دیدن inline
نمایش بدهی‌های ارزی در پورتال مشتری (WP wallet tab + profile)
ویجت داشبورد «بدهی‌های ارزی تسویه‌نشده» + badge روی منو
اصلاح race condition در settle() با بررسی مجدد مانده بعد از lockForUpdate()
Policy: فقط super_admin می‌تواند اعتبار اعطا کند
---
@ -375,26 +397,22 @@ CSV / approved import format
# 13. Production Hardening
این بخش الزاماً درخواست مستقیم مشتری نیست، اما قبل از تحویل Production باید بررسی شود.
## Security
* [ ] Remove / rotate exposed secrets
* [ ] Verify Bridge API Key handling
* [ ] Verify Staff route authorization
* [ ] Verify Admin-only operations
* [ ] Verify File Upload validation
* [ ] Verify document ownership / authorization
* [ ] Verify payment callback security
* [ ] Disable Mock Gateway in Production
## Financial Integrity
* [ ] Wallet concurrency protection
* [ ] Payment idempotency
* [ ] Coupon consumption logic
* [ ] Money / currency precision
* [ ] Multi-currency debt integrity
Security
Remove / rotate exposed secrets
Verify Bridge API Key handling
Verify Staff route authorization ✅ (StaffApiMiddleware روی همه /staff/*)
Verify Admin-only operations ✅ (Policy روی CustomerCredit, Shipment)
Verify File Upload validation
Verify document ownership / authorization ✅ (ShipmentPolicy + CustomerCreditPolicy)
Verify payment callback security ✅ (OrderPaymentService با production mock guard)
Disable Mock Gateway in Production
Rate Limiting ✅ (2026-10-04: ۶ لایه throttle — auth/sms/public/customer/wallet/staff)
Financial Integrity
Wallet concurrency protection ✅ (lockForUpdate() در CustomerCreditService::settle())
Payment idempotency ✅ (race condition اصلاح شد)
Coupon consumption logic
Money / currency precision ✅ (decimal:2 casts)
Multi-currency debt integrity ✅ (بدهی به همان ارز ثبت، نه معادل ریالی)
> ✅ **انجام شد (2026-10-03):** تغییر نرخ ارز فقط از منوی «نرخ ارز» (تاریخچه + گردش تأیید + آپدیت از API) — فیلدهای مستقیم نرخ در «تنظیمات سیستم» حذف و به نمایش فقط‌خواندنی تبدیل شدند.
@ -477,16 +495,35 @@ Before Production:
---
# 16. Delivery Status
Current Status: READY FOR DEPLOYMENT (95% Complete)
**Current Status:** IN PROGRESS
Completed in This Session:
**Next Task:** End-to-End Order Flow Review — حلقه باقی‌مانده: تست پرداخت (کیف پول / درگاه) پس از تأیید تعهدنامه‌ها
✅ E2E Payment Flow (wallet + gateway after commitment verification)
✅ Dashboard + Login redesign (Filament admin panel)
✅ AWB + Invoice + Label PDF redesign (dompdf, table-based, navy+amber)
✅ Customer Financial Overview page (admin panel)
✅ Multi-currency credit system (درخواست ۹) — complete E2E
✅ Unsettled credits dashboard widget + navigation badge
✅ Race condition fix in credit settlement
✅ CreditsRelationManager on UserResource
✅ Rate Limiting on all API endpoints (6 layers)
✅ Auto employee checklist on approval (درخواست ۵)
✅ Foreign currency debts in customer portal (WP)
✅ Profile page styling (WP customer dashboard)
✅ Cleanup (test files removed, code verified clean)
Remaining:
**Last Reviewed Commit:** `d6f9ce5` (بازبینی 2026-10-03 — شامل مدیریت کامل تعهدنامه‌ها در پنل ادمین: دانلود امن، تأیید/رد، اعلان مشتری)
⏳ i18n (deferred to deployment)
⏳ Final client UAT
⏳ Deployment to production server
Last Reviewed Commit: Latest (2026-10-04 — شامل بازطراحی PDF، صفحه وضعیت مالی مشتری، Rate Limiting، و سیستم اعتبار چندارزی کامل)
Source Repository:
`https://www.git.vernahost.ir/gitmodir110/ifnex
**Source Repository:**
`https://www.git.vernahost.ir/gitmodir110/ifnex`
---

View File

@ -9,7 +9,7 @@
[![Filament](https://img.shields.io/badge/Filament-3.3-EDB200?logo=laravel&logoColor=white)](https://filamentphp.com)
[![WordPress](https://img.shields.io/badge/WordPress-7.0.3-21759B?logo=wordpress&logoColor=white)](https://wordpress.org)
[![MySQL](https://img.shields.io/badge/MySQL-8+-4479A1?logo=mysql&logoColor=white)](https://mysql.com)
[![Status](https://img.shields.io/badge/Status-Phase_3.6_In_Progress-yellow.svg)]()
[![Status](https://img.shields.io/badge/Status-Phase_3.6_95%25_Done-green.svg)]()
[![License](https://img.shields.io/badge/License-Proprietary-blue.svg)]()
---
@ -38,15 +38,20 @@
- **پشتیبانی از ۱۹۲ کشور** با پیش‌شماره تلفن استاندارد ISO 3166-1
- **اعتبارسنجی فرم‌ها** شامل تشخیص خودکار زبان فارسی/انگلیسی و پیش‌شماره خودکار
- **سیستم تأیید سفارش** با فلوی `pending_approval → approved → paid → processed`
- **فرم تعهدنامه** با قابلیت آپلود فایل توسط مدیر و مشاهده توسط مشتری
- **فاکتور واردات** با طراحی مطابق Sheet ENG Invoice
- **مانده حساب** با نمایش موجودی کیف پول منهای بدهی‌ها
- **وضعیت مالی مشتری** برای مدیر/کارمند با جزئیات بدهی به هر ارز
- **سیستم اعتباردهی (Credit)** با قابلیت افزایش/کاهش توسط مدیر کل
- **چک‌لیست کارمند** برای هر سفارش + تاریخچه مراحل
- **ایمپورت گروهی وضعیت ترکینگ** با فایل CSV
- **سیستم Audit Log** برای لاگ تغییرات مدیر
- **اتصال سرویس اس‌ام‌اس Kavenegar** برای تأیید موبایل و ارسال پیامک
فرم تعهدنامه با فلوی کامل E2E (دانلود قالب → آپلود امضاشده → تأیید/رد ادمین → اعلان مشتری)
فاکتور واردات با طراحی مطابق Sheet ENG Invoice
مانده حساب با نمایش موجودی کیف پول منهای بدهی‌ها
وضعیت مالی مشتری — صفحه جامع در پنل ادمین (۴ KPI + بدهی‌های ارزی + سفارشات/تراکنش‌ها)
سیستم اعتبار چندارزی — بدهی به همان ارز ثبت، تسویه با نرخ روز (EUR/USD/AED/CNY)
ویجت هشدار بدهی‌های ارزی روی داشبورد + badge روی منو
چک‌لیست خودکار کارمند — نمونه‌سازی از قالب بعد از تأیید سفارش
ایمپورت گروهی وضعیت ترکینگ با فایل CSV
سیستم Audit Log برای لاگ تغییرات مدیر
Rate Limiting روی همه APIها (۶ لایه: auth/sms/public/customer/wallet/staff)
بازطراحی داشبورد + لاگین با هویت بصری IFNEX (navy + amber)
بازطراحی PDF — AWB (A4 عرضی) + Invoice + Label (A5 عرضی) با dompdf
اتصال سرویس اس‌ام‌اس Kavenegar برای تأیید موبایل و ارسال پیامک
---
@ -199,22 +204,28 @@ IFNEX-Logistics/
- اصلاحات فنی (Enum casts, migration, model)
- پشتیبانی چندزبانه (i18n) — به زمان دیپلوی منتقل شد
### فاز ۳.۶ — اصلاحات جلسه کارفرما 🟡 (در حال تکمیل - ۸۰٪)
### فاز ۳.۶ — اصلاحات جلسه کارفرما ✅ (تکمیل شده - ۹۵٪)
هدف: پیاده‌سازی تغییرات درخواستی کارفرما پس از جلسه ارائه
**هدف:** پیاده‌سازی تغییرات درخواستی کارفرما پس از جلسه ارائه
✅ فلوی تأیید سفارش: pending_approval → approved → (پرداخت) → processed — E2E تست شد
✅ تعهدنامه‌ها: فلوی کامل (دانلود قالب → آپلود امضاشده → تأیید/رد ادمین → اعلان مشتری)
✅ دانلود اسناد سفارش (AWB, Invoice, Label, فاکتور واردات) در پورتال مشتری
✅ صفحه «وضعیت مالی مشتری» در پنل ادمین (۴ KPI + بدهی ارزی + سفارشات/تراکنش‌ها)
✅ سیستم اعتبار چندارزی کامل (درخواست ۹) — CustomerCreditService + نمایش در پورتال مشتری
✅ ویجت هشدار بدهی‌های ارزی روی داشبورد + badge قرمز روی منو
✅ چک‌لیست خودکار بعد از تأیید سفارش (درخواست ۵) — instantiateChecklist()
✅ Rate Limiting روی همه APIها (۶ لایه throttle)
✅ ایمپورت گروهی وضعیت ترکینگ با CSV در پنل (BulkTrackingImport)
✅ Audit Log برای مدل‌های اصلی + ShipmentStatusHistory با from/to_status
✅ اتصال SMS کاوه‌نگار: تأیید/رد سفارش، پرداخت موفق، بروزرسانی ترکینگ + تنظیمات پنل
✅ فاکتور واردات (Import Invoice) با فیلدهای جدید shipments + قالب PDF
✅ مانده حساب (موجودی منهای بدهی‌های تأییدشده) در پروفایل مشتری
✅ بازطراحی داشبورد + لاگین Filament (navy + amber brand identity)
✅ بازطراحی AWB + Invoice + Label PDF (dompdf, table-based, DHL-style)
✅ استایل‌دهی صفحه پروفایل مشتری در وردپرس
✅ پاک‌سازی کد — حذف فایل‌های تستی، تأیید تمیزی opcache_reset/dd/dump
⏳ باقی‌مانده: i18n (زمان دیپلوی) + سند پیشنهادی سیستم مالی (آینده)
- ✅ فلوی تأیید سفارش: `pending_approval → approved → (پرداخت) → processed` — مشتری بعد از ثبت منتظر تأیید کارمند می‌ماند و سپس پرداخت (کیف پول/درگاه) باز می‌شود
- ✅ تعهدنامه‌ها: آپلود توسط مدیر در Filament → نمایش/دانلود برای مشتری → آپلود فایل امضاشده توسط مشتری (جدول `shipment_commitment_forms`)
- ✅ دانلود اسناد سفارش (AWB, Invoice, Label, فاکتور واردات) در پورتال مشتری
- ✅ وضعیت مالی مشتری برای کارمند/مدیر: جستجوی مشتری + بدهی به تفکیک ارز + تراکنش‌ها و سفارشات اخیر
- ✅ سیستم اعتبار مشتری (اسکلت: `credit_limit/credit_used` + CustomerCreditResource) — نیازمند بازطراحی چندارزی
- ✅ ایمپورت گروهی وضعیت ترکینگ با CSV در پنل (BulkTrackingImport)
- ✅ Audit Log برای مدل‌های اصلی + ShipmentStatusHistory با from/to_status
- ✅ اتصال SMS کاوه‌نگار: تأیید/رد سفارش، پرداخت موفق، بروزرسانی ترکینگ + تنظیمات پنل
- ✅ فاکتور واردات (Import Invoice) با فیلدهای جدید shipments + قالب PDF مطابق شیت ENG
- ✅ مانده حساب (موجودی منهای بدهی‌های تأییدشده) در پروفایل مشتری
- ✅ رفع باگ مراحل فرم سفارش (ریشه: div بسته‌نشده در shortcodes.php) و محاسبه مجموع USD اقلام
- ⏳ باقی‌مانده: تست انتهای فلو، امنیت روت‌های staff، بازطراحی اعتبار چندارزی، چک‌لیست خودکار، سند سیستم مالی (جزئیات در AGENT.md)
### فاز ۴ (آینده) — سیستم نمایندگی 📋
- مدل نمایندگی کامل با کمیسیون و پنل جداگانه
@ -367,13 +378,12 @@ php artisan serve
> 📌 **فهرست دقیق و به‌روزِ وضعیت تحویل در [CLIENT_DELIVERY.md](CLIENT_DELIVERY.md) نگهداری می‌شود** — این بخش فقط نمای کلی است.
### فاز ۳.۶ — باقیمانده (تست و تکمیل)
- تست انتهای فلو: آپلود تعهدنامه → تأیید کارمند → پرداخت (کیف پول / درگاه) — چرخه تعهدنامه تا تأیید ادمین 2026-10-03 تست شد؛ تست پرداخت باقی است
- امنیت: چک نقش `/staff/*` ✅، چک مالکیت PDF/تعهدنامه ✅، محدودسازی `GET /discount-codes` ✅ — باقی: ثبت شورت‌کد `[ifnex_wallet_charge]`، rate limiting
- بازطراحی سیستم اعتبار مطابق نیاز کارفرما (بدهی به ارز سفارش + تسویه ریالی)
- چک‌لیست خودکار کارمند بعد از تأیید سفارش + نمایش در صفحه سفارش
- سند پیشنهادی سیستم مالی
- پاک‌سازی هک‌های موقت دیباگ (opcache_reset، cache-buster، صفحات تستی)
### فاز ۳.۶ — باقیمانده (آینده)
⏳ سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما) — موکول به آینده
⏳ چندزبانه (i18n) — موکول به زمان دیپلوی
✅ همه موارد اصلی فاز ۳.۶ تکمیل شد (2026-10-04) — فلوی E2E، اعتبار چندارزی، Rate Limiting، چک‌لیست خودکار، بازطراحی UI/PDF، پاک‌سازی.
### فاز ۳.۵ — باقیمانده (زمان دیپلوی)
- پشتیبانی کامل چندزبانه (i18n) با Polylang
@ -410,6 +420,6 @@ php artisan serve
© 2026 VernaSoft Group. تمام حقوق محفوظ است.
این پروژه اختصاصی شرکت IFNEX است و کپی یا استفاده غیرمجاز ممنوع می‌باشد.
این پروژه طبق سفارش IFNEX و مالکیت آن برای گروه ورناسافت است و کپی یا استفاده غیرمجاز ممنوع می‌باشد.
</div>