docs: update AGENT.md, CLIENT_DELIVERY.md, README.md, IFNEX_Pro_Backlog.md for phase 3.7
Phase 3.7 (Currency refactor + Manual invoices) is now complete. Update all project documentation to reflect: - AGENT.md 1.4: add IRR-only architecture section (4.13), wallet-centric architecture section (4.14), manual invoices (4.14), 4-quadrant rates (4.15). Add currency red lines to section 7. Restructure section 9 (remaining work) into 3.6 (done), 3.7 (done), 3.8 (future). - CLIENT_DELIVERY.md: header updated to phase 3.7 complete. Add section 15.2 with all phase 3.7 deliverables. Update 15.3 remaining list with future Pro features. - README.md: add IRR-only, 4-quadrant, manual invoices to key features. Add phase 3.7 section (100% complete). - IFNEX_Pro_Backlog.md: add summary table for 5 Pro features, plus prerequisites section for configurable base currency. Wallet-centric architecture confirmed: all 4 payment paths (order, invoice, credit settlement, deposit) flow through the wallet, with 6 transaction types. Race conditions handled with lockForUpdate.
This commit is contained in:
parent
7fe368bc46
commit
cf7b76b707
@ -3,6 +3,32 @@
|
||||
> این فایل شامل فیچرهایی است که برای نسخه Pro (پولی) برنامهریزی شدهاند.
|
||||
> هر مورد با برچسب نسخه و اولویت مشخص شده است.
|
||||
> تاریخ ایجاد: ۲۰۲۶-۱۰-۲۹
|
||||
> آخرین بهروزرسانی: ۲۰۲۶-۱۰-۳۰
|
||||
|
||||
---
|
||||
|
||||
## 📝 خلاصه وضعیت (۲۰۲۶-۱۰-۳۰)
|
||||
|
||||
فاز ۳.۷ پایه (IRR-only) کامل شد. فیچرهای زیر برای **نسخه Pro** نگه داشته شدهاند:
|
||||
|
||||
| # | فیچر | اولویت | وابستگی |
|
||||
|---|---|---|---|
|
||||
| ۱ | ارز مرجع قابل تنظیم | 🔴 بالا | بازنویسی ExchangeRateService و PriceCalculatorService |
|
||||
| ۲ | دفترچه آدرس (Address Book) | 🟡 متوسط | مدل + API + UI وردپرس |
|
||||
| ۳ | پلاگین SMS بهصورت ماژول | 🟡 متوسط | منتظر پنل SMS مشتری |
|
||||
| ۴ | سیستم لایسنس (Domain Lock) | 🔴 بالا | سرور لایسنس مرکزی |
|
||||
| ۵ | بروزرسانی خودکار از گیت | 🟡 متوسط | نسخهبندی SemVer |
|
||||
|
||||
### پیشنیاز ارز مرجع قابل تنظیم (مهمترین فیچر Pro)
|
||||
|
||||
برای پیادهسازی این فیچر، باید:
|
||||
1. فیلد `base_currency` در System Settings اضافه شود
|
||||
2. ستون `rate_to_rial` در `currencies` به `rate_to_base` تغییر نام کند
|
||||
3. ستون `currency` در `rate_entries` به ارز مرجع تغییر کند
|
||||
4. `ExchangeRateService` و `PriceCalculatorService` بازنویسی شوند
|
||||
5. PDF فاکتورها بر مبنای ارز مرجع نمایش داده شوند
|
||||
|
||||
بیشترین کار روی **Models/Services** و **Migrations** خواهد بود. UI تقریباً تغییر نمیکند چون همه چیز از قبل IRR-only شده.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -114,4 +114,4 @@ return new class extends Migration
|
||||
{
|
||||
Schema::dropIfExists('manual_invoices');
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
178
AGENT.md
178
AGENT.md
@ -1,18 +1,18 @@
|
||||
# راهنمای ایجنت — پروژهٔ IFNEX Logistics
|
||||
|
||||
> **تاریخ:** ۲۰۲۶-۱۰-۰۴
|
||||
> **نسخه:** ۱.۳
|
||||
> **تاریخ:** ۲۰۲۶-۱۰-۳۰
|
||||
> **نسخه:** ۱.۴
|
||||
> **تهیهکننده:** VernaSoft Group — Kazem Alghasi
|
||||
|
||||
---
|
||||
|
||||
## ۱. خلاصهٔ پروژه
|
||||
|
||||
سیستم مدیریت لجستیک بینالمللی با معماری Headless: **Laravel 11** بهعنوان بکاند، **WordPress** بهعنوان فرانتاند و **Filament 3.3** بهعنوان پنل مدیریت. این سیستم جایگزین فرآیندهای دستی مبتنی بر اکسل شده و از Multi-Package، فاکتور گمرکی، کیف پول دیجیتال، درگاه پرداخت Zarinpal، تولید PDF با بارکد، فلوی تأیید سفارش، تعهدنامه، SMS کاوهنگار، سیستم اعتبار چندارزی و رهگیری پیشرفته پشتیبانی میکند.
|
||||
سیستم مدیریت لجستیک بینالمللی با معماری Headless: **Laravel 11** بهعنوان بکاند، **WordPress** بهعنوان فرانتاند و **Filament 3.3** بهعنوان پنل مدیریت. این سیستم جایگزین فرآیندهای دستی مبتنی بر اکسل شده و از Multi-Package، فاکتور گمرکی، کیف پول دیجیتال، درگاه پرداخت Zarinpal، تولید PDF با بارکد، فلوی تأیید سفارش، تعهدنامه، SMS کاوهنگار، سیستم اعتبار چندارزی، رهگیری پیشرفته، **سیستم ۴-رُبعی نرخها** و **فاکتورهای دستی مدیر** پشتیبانی میکند.
|
||||
|
||||
### وضعیت فعلی
|
||||
|
||||
فازهای ۰، ۱، ۲، ۳ و ۳.۵ تکمیل شدهاند. فاز ۳.۶ (اصلاحات جلسهٔ کارفرما) حدود ۹۵٪ انجام شده است:
|
||||
فازهای ۰، ۱، ۲، ۳، ۳.۵ و ۳.۶ تکمیل شدهاند. فاز ۳.۷ (اصلاحات ارزی و فاکتور دستی) تکمیل شد:
|
||||
|
||||
- [x] فلوی کامل سفارش (ثبت ← تأیید ← تعهدنامه ← پرداخت) — تست End-to-End
|
||||
- [x] بازطراحی داشبورد و Login پنل Filament (هویت بصری navy + amber)
|
||||
@ -25,9 +25,55 @@
|
||||
- [x] نمایش بدهی ارزی در پورتال مشتری وردپرس
|
||||
- [x] استایلدهی صفحهٔ پروفایل مشتری در وردپرس
|
||||
- [x] پاکسازی کد (حذف فایلهای تستی، تأیید تمیزی `opcache_reset` / `dd` / `dump`)
|
||||
- [x] **سیستم ۴-رُبعی نرخها** (Export/Import × Doc/Parcel) با ایمپورت از اکسل
|
||||
- [x] **معماری IRR-only** — ارز مبنا = ریال ایران؛ تبدیل ارز در زمان ایمپورت
|
||||
- [x] **فاکتورهای دستی مدیر** — صدور، پرداخت از کیف پول، اعلان خودکار به مشتری
|
||||
|
||||
چندزبانه (i18n) همچنان به زمان دیپلوی موکول است.
|
||||
|
||||
### معماری ارزی (Currency Architecture)
|
||||
|
||||
> **قاعده طلایی:** ارز مبنا در کل سیستم = **ریال ایران (IRR)**. هیچ واحد دیگری (تومان، درهم، دلار، یورو) در نمایش قیمتهای داخلی یا ذخیرهسازی استفاده نمیشود.
|
||||
|
||||
| نوع داده | ارز ذخیره | تبدیل |
|
||||
|---|---|---|
|
||||
| نرخهای حمل (`rate_entries`) | IRR | در زمان ایمپورت با نرخ روز |
|
||||
| فاکتورهای دستی (`manual_invoices`) | IRR | مستقیم |
|
||||
| تراکنشهای کیف پول (`wallet_transactions`) | IRR | مستقیم |
|
||||
| **بدهیهای ارزی مشتری** (`customer_credits`) | **ارز خارجی** | در زمان تسویه با نرخ روز |
|
||||
|
||||
**نرخهای ارز** از جدول `currencies` خوانده میشوند. مدیر بهصورت دستی یا از API (Exir.io، موقتاً غیرفعال) نرخ را بهروز میکند. API نرخها با وضعیت `pending` ذخیره میشوند و مدیر باید تأیید کند (`approved`).
|
||||
|
||||
**تفاوت نرخهای حمل و بدهی ارزی:**
|
||||
- نرخهای حمل به IRR ذخیره میشوند (در زمان ایمپورت با نرخ روز تبدیل میشوند) — تغییرات نرخ روز روی نرخهای ذخیرهشده اثر ندارد.
|
||||
- بدهی ارزی به ارز خارجی ذخیره میشود — در زمان تسویه با نرخ روز محاسبه میشود.
|
||||
|
||||
### فیچر فاکتورهای دستی مدیر (Manual Invoices)
|
||||
|
||||
مدیر میتواند برای هر مشتری فاکتور صادر کند (برای خدمات خارج از سفارش: انبارداری، مشاوره تلفنی، هزینههای جانبی و...).
|
||||
|
||||
- **پنل ادمین:** `Manual invoices` (گروه «مالی»)
|
||||
- **مدل:** `ManualInvoice` + `ManualInvoiceService` + `CustomerInvoiceController`
|
||||
- **جریان:**
|
||||
1. مدیر فاکتور صادر میکند → `status = 'pending_payment'`
|
||||
2. اعلان خودکار به مشتری ارسال میشود (`ManualInvoiceCreatedNotification`)
|
||||
3. مشتری در پورتال وردپرس فاکتور را میبیند (تب «فاکتورهای دستی»)
|
||||
4. با کلیک روی «پرداخت از کیف پول»، مبلغ از کیف پول کسر میشود
|
||||
5. تراکنش با نوع `invoice_payment` در `wallet_transactions` ثبت میشود
|
||||
- **شماره فاکتور:** فرمت `INV-YYYY-NNNNNN` (مثلاً `INV-2026-000001`)
|
||||
- **وضعیتها:** `pending_payment` / `paid` / `cancelled` / `expired`
|
||||
- **اعلام در پورتال:** badge قرمز در منوی سایدبار + اعلان در تب اعلانها + ویجت داشبورد + تفکیک در وضعیت مالی
|
||||
|
||||
### خط قرمزهای معماری ارزی
|
||||
|
||||
| ❌ هرگز | ✅ همیشه |
|
||||
|---|---|
|
||||
| ذخیره نرخها به AED/USD | ذخیره به IRR |
|
||||
| نمایش قیمت به «درهم» در فرم/پورتال | نمایش به «ریال» |
|
||||
| تبدیل در زمان محاسبه قیمت | تبدیل در زمان ایمپورت |
|
||||
| وجود fallback عددی برای نرخ ارز | خطای واضح اگه نرخ تنظیم نشده |
|
||||
| استفاده از «تومان» در کد/UI | فقط «ریال» |
|
||||
|
||||
---
|
||||
|
||||
## ۲. تکنولوژیها و نسخهها
|
||||
@ -42,7 +88,7 @@
|
||||
| پرداخت | Zarinpal + Mock Gateway (تست) | کلید sandbox برای تست لوکال |
|
||||
| PDF و بارکد | Dompdf + picqer/php-barcode-generator | AWB، Invoice، Label، فاکتور واردات |
|
||||
| پیامک | Kavenegar | تأیید موبایل + اعلان وضعیت سفارش |
|
||||
| اکسل | maatwebsite/excel | Import / Export نرخها و دادههای تاریخی |
|
||||
| اکسل | maatwebsite/excel + PhpSpreadsheet | Import / Export نرخها و دادههای تاریخی |
|
||||
| تاریخ و زمان | morilog/jalali + Carbon | تاریخ شمسی در نمایش، میلادی در DB |
|
||||
| دیتابیس | MySQL | 8.0+ (تستها با SQLite) |
|
||||
| صف | Redis (ترجیحی) / Database | برای پردازشهای سنگین |
|
||||
@ -183,6 +229,75 @@ IFNEX-Logistics/
|
||||
- trait `App\Traits\Auditable` روی مدلهای اصلی (User، Shipment، Wallet و…) اعمال شده و در `AuditLogResource` قابل مشاهده است.
|
||||
- `ShipmentStatusHistory` دارای ستونهای `from_status` / `to_status` / `reason` بههمراه نام کاربر تغییردهنده است.
|
||||
|
||||
### ۴.۱۳ معماری کیفپولمحور (Wallet-Centric Architecture)
|
||||
|
||||
سیستم مالی IFNEX بر مبنای **کیف پول مشتری** کار میکند. همه پرداختها از کیف پول عبور میکنند.
|
||||
|
||||
#### ساختار کیف پول:
|
||||
|
||||
- هر کاربر یک **کیف پول** دارد (`wallets` table)
|
||||
- موجودی کیف پول به **ریال (IRR)** است
|
||||
- تراکنشها در `wallet_transactions` ثبت میشوند با نوعهای:
|
||||
- `deposit` — شارژ کیف پول (از درگاه یا دستی توسط ادمین)
|
||||
- `withdrawal` — برداشت/کسر
|
||||
- `order_payment` — پرداخت سفارش
|
||||
- `refund` — بازگشت وجه
|
||||
- `credit_settlement` — تسویه بدهی ارزی (با نرخ روز)
|
||||
- `invoice_payment` — پرداخت فاکتور دستی
|
||||
|
||||
#### جریان پرداخت (همه از کیف پول میگذرند):
|
||||
|
||||
| سناریو | مسیر |
|
||||
|---|---|
|
||||
| شارژ کیف پول | درگاه Zarinpal → `walletService->completeDeposit()` → افزایش موجودی |
|
||||
| پرداخت سفارش | `OrderPaymentService->payFromWallet()` → کسر از کیف پول + ثبت `order_payment` |
|
||||
| پرداخت فاکتور دستی | `ManualInvoiceService->payFromWallet()` → کسر از کیف پول + ثبت `invoice_payment` |
|
||||
| تسویه بدهی ارزی | `CustomerCreditService->settle()` (with `$fromWallet=true`) → کسر از کیف پول + ثبت `credit_settlement` |
|
||||
|
||||
#### مزایای این معماری:
|
||||
|
||||
- ✅ همه پرداختها در یک جدول (`wallet_transactions`) ثبت میشوند — تاریخچه واحد
|
||||
- ✅ موجودی کیف پول منهای بدهیها = مانده حساب واقعی مشتری
|
||||
- ✅ مدیر میتواند موجودی را بهصورت دستی تنظیم کند (`manualDeposit` / `manualWithdrawal`)
|
||||
- ✅ قفل کیف پول (`freeze`) در همه پرداختها اعمال میشود
|
||||
- ✅ Race condition با `lockForUpdate()` در پرداختهای همزمان مدیریت میشود
|
||||
|
||||
#### ویژگیهای کلیدی مدل Wallet:
|
||||
|
||||
```php
|
||||
$wallet->balance // موجودی فعلی (ریال)
|
||||
$wallet->isFrozen() // آیا مسدود است؟
|
||||
$wallet->hasSufficientBalance($amount) // آیا موجودی کافی است؟
|
||||
$wallet->freeze($reason, $admin) // مسدود کردن توسط ادمین
|
||||
$wallet->unfreeze($admin) // رفع مسدودیت
|
||||
```
|
||||
|
||||
#### قاعده طلایی:
|
||||
> هیچ پرداختی بدون عبور از کیف پول ثبت نمیشود. اگه در آینده درگاه جدیدی اضافه شود (مثلاً Stripe)، باید مبلغ ابتدا به کیف پول واریز شود (`deposit`) و سپس از کیف پول کسر شود (`order_payment` / `invoice_payment`).
|
||||
|
||||
### ۴.۱۴ فاکتورهای دستی مدیر (Manual Invoices)
|
||||
|
||||
مدیر میتواند برای هر مشتری فاکتور صادر کند (خدمات خارج از سفارش). مشتری در پورتالش فاکتور را میبیند و از کیف پول پرداخت میکند.
|
||||
|
||||
- **مدل:** `ManualInvoice` + `ManualInvoiceService` + `CustomerInvoiceController`
|
||||
- **پنل ادمین:** `ManualInvoiceResource` در گروه «مالی»
|
||||
- **پورتال وردپرس:** تب «فاکتورهای دستی» با badge قرمز برای فاکتورهای pending
|
||||
- **شماره فاکتور:** `INV-YYYY-NNNNNN` (مثلاً `INV-2026-000001`)
|
||||
- **وضعیتها:** `pending_payment` / `paid` / `cancelled` / `expired`
|
||||
- **اعلان خودکار:** `ManualInvoiceCreatedNotification` به مشتری ارسال میشود
|
||||
- **پرداخت:** از کیف پول مشتری (کسر + ثبت تراکنش `invoice_payment`)
|
||||
|
||||
### ۴.۱۵ نرخهای حمل و سیستم ۴-رُبعی
|
||||
|
||||
نرخهای حمل در جدول `rate_entries` بهصورت **۴-رُبعی** ذخیره میشوند:
|
||||
- جهت: `import` / `export`
|
||||
- نوع سرویس: `document` / `parcel`
|
||||
- وزن × زون: ماتریس
|
||||
|
||||
نگاشت زونها در `country_zones` (هر کشور میتواند زون متفاوت برای Doc و Parcel داشته باشد).
|
||||
|
||||
> **نکته مهم:** `DOC_ECONOMY` فعلاً به همان نرخ `DOC_NORMAL` محاسبه میشود. برای تفکیک کامل، باید `service_type` در `rate_entries` به ۳ مقدار گسترش پیدا کند.
|
||||
|
||||
---
|
||||
|
||||
## ۵. دستورات روزمره
|
||||
@ -290,6 +405,11 @@ WALLET_AUTO_CREATE=true
|
||||
| متدهای نوتیفیکیشن بیرون از کلاس | داخل کلاس `IFNEX_User_Bridge` |
|
||||
| روت staff/admin بدون چک نقش | چک نقش یا مالکیت در middleware یا ابتدای کنترلر |
|
||||
| هدایت مستقیم سفارش به درگاه پس از ثبت | فلوی `pending_approval` ← `approved` ← پرداخت |
|
||||
| **ذخیره نرخها به AED/USD** | **ذخیره به IRR (تبدیل در ایمپورت)** |
|
||||
| **نمایش قیمت به «درهم» در UI** | **نمایش به «ریال»** |
|
||||
| **استفاده از «تومان» در کد/UI** | **فقط «ریال»** |
|
||||
| **fallback عددی برای نرخ ارز** | **خطای واضح اگه نرخ تنظیم نشده** |
|
||||
| **تغییر `customer_credits` به IRR** | **بدهی ارزی به ارز خارجی، تسویه با نرخ روز** |
|
||||
|
||||
---
|
||||
|
||||
@ -325,20 +445,45 @@ WALLET_AUTO_CREATE=true
|
||||
|
||||
---
|
||||
|
||||
## ۹. کارهای باقیمانده (فاز ۳.۶)
|
||||
## ۹. کارهای باقیمانده
|
||||
|
||||
### فاز ۳.۶ (اصلاحات جلسه کارفرما) — ✅ تکمیل (۲۰۲۶-۱۰-۰۴)
|
||||
|
||||
| # | کار | وضعیت |
|
||||
|---|-----|--------|
|
||||
| ۱ | تست انتهای فلوی سفارش: آپلود تعهدنامه ← تأیید کارمند ← پرداخت کیف پول یا درگاه | ✅ انجام شد (۲۰۲۶-۱۰-۰۴) |
|
||||
| ۲ | امنیت: چک نقش `/staff/*`، چک مالکیت PDF و تعهدنامه، محدودسازی discount-codes، rate limiting | ✅ انجام شد (۲۰۲۶-۱۰-۰۴) |
|
||||
| ۳ | بازطراحی سیستم اعتبار چندارزی + نمایش در پورتال مشتری + ویجت هشدار داشبورد | ✅ انجام شد (۲۰۲۶-۱۰-۰۴) |
|
||||
| ۴ | چکلیست خودکار کارمند پس از تأیید سفارش | ✅ انجام شد (`instantiateChecklist()` در `approve()`) |
|
||||
| ۵ | سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما) | ⏳ موکول به آینده |
|
||||
| ۶ | پاکسازی: فایلهای تستی، cache-busterها، `!important`ها | ✅ انجام شد (۲۰۲۶-۱۰-۰۴) |
|
||||
| ۷ | نمایش وزن واقعی و حجمی در خلاصهٔ قیمت وردپرس | ✅ در API موجود است (`weight` + `volumetric_weight` در پاسخ) |
|
||||
| ۸ | چندزبانه (i18n) | ⏳ موکول به زمان دیپلوی |
|
||||
| ۱ | تست انتهای فلوی سفارش: آپلود تعهدنامه ← تأیید کارمند ← پرداخت کیف پول یا درگاه | ✅ |
|
||||
| ۲ | امنیت: چک نقش `/staff/*`، چک مالکیت PDF و تعهدنامه، محدودسازی discount-codes، rate limiting | ✅ |
|
||||
| ۳ | بازطراحی سیستم اعتبار چندارزی + نمایش در پورتال مشتری + ویجت هشدار داشبورد | ✅ |
|
||||
| ۴ | چکلیست خودکار کارمند پس از تأیید سفارش | ✅ (`instantiateChecklist()` در `approve()`) |
|
||||
| ۶ | پاکسازی: فایلهای تستی، cache-busterها، `!important`ها | ✅ |
|
||||
| ۷ | نمایش وزن واقعی و حجمی در خلاصهٔ قیمت وردپرس | ✅ (در API موجود است) |
|
||||
|
||||
**وضعیت کلی فاز ۳.۶:** حدود ۹۵٪ تکمیل. تنها موارد باقیمانده: i18n (زمان دیپلوی) و سند پیشنهادی مالی (آینده).
|
||||
### فاز ۳.۷ (اصلاحات ارزی و فاکتور دستی) — ✅ تکمیل (۲۰۲۶-۱۰-۳۰)
|
||||
|
||||
| # | کار | وضعیت |
|
||||
|---|-----|--------|
|
||||
| ۱ | **سیستم ۴-رُبعی نرخها** (Export/Import × Doc/Parcel) با ایمپورت از اکسل | ✅ |
|
||||
| ۲ | **معماری IRR-only** — ارز مبنا = ریال ایران، حذف جفتارز | ✅ |
|
||||
| ۳ | **ایمپورت فایل اکسل اصلی مشتری** + قالب جدید `IFNEX_Rate_Template.xlsx` | ✅ |
|
||||
| ۴ | **حذف تمام «تومان» و «درهم» از نمایش قیمتهای داخلی** | ✅ |
|
||||
| ۵ | **فاکتورهای دستی مدیر** (صدور + پرداخت از کیف پول + اعلان خودکار) | ✅ |
|
||||
| ۶ | **تب «فاکتورهای دستی» در پورتال وردپرس** (لیست + جزئیات + پرداخت) | ✅ |
|
||||
| ۷ | **اضافه شدن فاکتورها به وضعیت مالی و داشبورد مشتری** | ✅ |
|
||||
| ۸ | **فرمت هزارگان در فیلدهای عددی فرم فاکتور ادمین** | ✅ |
|
||||
|
||||
### فاز ۳.۸ (موکول به آینده)
|
||||
|
||||
| # | کار | وضعیت | اولویت |
|
||||
|---|-----|--------|---------|
|
||||
| ۱ | چندزبانه (i18n) | ⏳ موکول به زمان دیپلوی | متوسط |
|
||||
| ۲ | سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما) | ⏳ موکول به آینده | پایین |
|
||||
| ۳ | پلاگین SMS (بهصورت ماژول قابل فعالسازی) | ⏳ منتظر پنل SMS مشتری | متوسط |
|
||||
| ۴ | لاین واردات از چین (ماژول مجزا) | ⏳ مطالعاتاتی | پایین |
|
||||
| ۵ | دفترچه آدرس (Address Book) مشتری | 📋 مطرحشده | متوسط |
|
||||
| ۶ | **ارز مرجع قابل تنظیم** (نسخه Pro) | 📋 مطرحشده — `01_Documents/IFNEX_Pro_Backlog.md` | پایین (نسخه Pro) |
|
||||
| ۷ | سیستم بروزرسانی + لایسنس (Domain Lock) | 📋 مطرحشده — `01_Documents/IFNEX_Pro_Backlog.md` | پایین (نسخه Pro) |
|
||||
| ۸ | favicon و صفحه `/` سفارشی لاراول | 📋 | پایین |
|
||||
| ۹ | بازطراحی صفحه لاگین لاراول | 📋 | پایین |
|
||||
|
||||
---
|
||||
|
||||
@ -352,8 +497,9 @@ WALLET_AUTO_CREATE=true
|
||||
| `01_Documents/IFNEX_File_Map.md` | نقشهٔ ۱۰۰+ فایل پروژه |
|
||||
| `01_Documents/IFNEX_I18N_Strategy.md` | استراتژی چندزبانه (برای زمان دیپلوی) |
|
||||
| `01_Documents/IFNEX_Commercial_Model.md` | مدل تجاری و پلنهای فروش |
|
||||
| `01_Documents/IFNEX_Pro_Backlog.md` | فیچرهای نسخه Pro (ارز مرجع قابل تنظیم، لایسنس، آپدیت) |
|
||||
| `01_Documents/DESIGN_SYSTEM.md` | رنگها، تایپوگرافی، فاصلهگذاری |
|
||||
| `DEPLOYMENT.md` | راهنمای کامل استقرار روی سرور |
|
||||
| `DEPLOYMENT.md` | راهنمای ایمپورت نرخها (سیستم ۴-رُبعی) |
|
||||
| `DEPLOYMENT_HANDOFF.md` | تحویل استقرار به تیم IT کارفرما |
|
||||
| `04_Laravel/README.md` | راهنمای بکاند |
|
||||
| `CLIENT_DELIVERY.md` | چکلیست وضعیت تحویل مشتری (منبع اصلی وضعیت تحویل) |
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
# IFNEX — چکلیست تحویل به مشتری
|
||||
|
||||
> **وضعیت:** آماده برای دیپلوی (۹۵٪ تکمیل)
|
||||
> **فاز جاری:** فاز ۳.۶ — اصلاحات جلسهٔ کارفرما
|
||||
> **تاریخ آخرین بهروزرسانی:** ۲۰۲۶-۱۰-۰۴
|
||||
> **وضعیت:** آماده برای دیپلوی (فاز ۳.۷ تکمیل شد)
|
||||
> **فاز جاری:** فاز ۳.۷ — اصلاحات ارزی و فاکتور دستی (تکمیل)
|
||||
> **تاریخ آخرین بهروزرسانی:** ۲۰۲۶-۱۰-۳۰
|
||||
> **مخزن:** [git.vernahost.ir/gitmodir110/ifnex](https://www.git.vernahost.ir/gitmodir110/ifnex)
|
||||
|
||||
> ⚠️ این فایل فقط برای مدیریت تعهدات، تست و تحویل نسخهٔ فعلی مشتری است و جایگزین `AGENT.md` یا `IFNEX_Roadmap.md` نیست.
|
||||
@ -501,11 +501,11 @@ Create Import Order
|
||||
|
||||
# ۱۵. خلاصهٔ وضعیت تحویل
|
||||
|
||||
**وضعیت فعلی:** آماده برای دیپلوی (۹۵٪ تکمیل)
|
||||
**وضعیت فعلی:** آماده برای دیپلوی (فاز ۳.۷ تکمیل شد)
|
||||
|
||||
**آخرین کامیت بازبینیشده:** ۲۰۲۶-۱۰-۰۴ — شامل بازطراحی PDF، صفحهٔ وضعیت مالی مشتری، Rate Limiting و سیستم اعتبار چندارزی کامل.
|
||||
**آخرین کامیت بازبینیشده:** ۲۰۲۶-۱۰-۳۰ — شامل سیستم ۴-رُبعی نرخها، معماری IRR-only، و فیچر فاکتورهای دستی مدیر.
|
||||
|
||||
## ۱۵.۱ تکمیلشده در این دوره
|
||||
## ۱۵.۱ تکمیلشده در فاز ۳.۶ (۲۰۲۶-۱۰-۰۴)
|
||||
|
||||
- [x] فلوی پذیرش End-to-End (کیف پول + درگاه پس از تأیید تعهدنامه)
|
||||
- [x] بازطراحی داشبورد و صفحهٔ Login (پنل Filament)
|
||||
@ -521,12 +521,34 @@ Create Import Order
|
||||
- [x] استایلدهی صفحهٔ پروفایل مشتری در وردپرس
|
||||
- [x] پاکسازی کد (حذف فایلهای تستی، تأیید تمیزی کد)
|
||||
|
||||
## ۱۵.۲ باقیمانده
|
||||
## ۱۵.۲ تکمیلشده در فاز ۳.۷ (۲۰۲۶-۱۰-۳۰)
|
||||
|
||||
- [x] **سیستم ۴-رُبعی نرخها** (Export/Import × Doc/Parcel) با ایمپورت از اکسل
|
||||
- [x] **معماری IRR-only** — ارز مبنا = ریال ایران، حذف جفتارز و تبدیل در زمان ایمپورت
|
||||
- [x] **ایمپورت فایل اصلی مشتری** + قالب جدید `IFNEX_Rate_Template.xlsx`
|
||||
- [x] **حذف تمام «تومان» و «درهم» از نمایش قیمتهای داخلی** در همه UIها
|
||||
- [x] **فاکتورهای دستی مدیر** — صدور، پرداخت از کیف پول، اعلان خودکار
|
||||
- [x] **تب «فاکتورهای دستی» در پورتال وردپرس** (لیست + جزئیات + پرداخت)
|
||||
- [x] **اضافه شدن فاکتورها به وضعیت مالی و داشبورد مشتری**
|
||||
- [x] **فرمت هزارگان** در فیلدهای عددی فرم فاکتور ادمین
|
||||
- [x] آپدیت خط قرمزها برای معماری ارزی
|
||||
|
||||
## ۱۵.۳ باقیمانده
|
||||
|
||||
- [ ] i18n (موکول به زمان دیپلوی)
|
||||
- [ ] تست نهایی UAT کارفرما
|
||||
- [ ] دیپلوی روی سرور Production
|
||||
- [ ] سند پیشنهادی سیستم مالی (درخواست ۱۳ کارفرما — موکول به آینده)
|
||||
- [ ] پلاگین SMS (منتظر تحویل پنل SMS مشتری)
|
||||
- [ ] دفترچه آدرس (Address Book) مشتری — مطرحشده، آینده
|
||||
- [ ] favicon و صفحه `/` سفارشی لاراول — اولویت پایین
|
||||
- [ ] بازطراحی صفحه لاگین لاراول — اولویت پایین
|
||||
|
||||
### باقیمانده برای نسخه Pro (آینده)
|
||||
|
||||
- [ ] ارز مرجع قابل تنظیم (IRR/EUR/USD/AED) — `01_Documents/IFNEX_Pro_Backlog.md`
|
||||
- [ ] سیستم لایسنس با Domain Lock + Feature Flags
|
||||
- [ ] بروزرسانی خودکار از گیت
|
||||
|
||||
---
|
||||
|
||||
|
||||
23
README.md
23
README.md
@ -28,21 +28,23 @@
|
||||
|
||||
### ✨ امکانات کلیدی
|
||||
|
||||
- **موتور قیمتگذاری هوشمند** با ۴ زون مجزا (Export/Import × Parcel/Doc) و ۳ نوع سرویس (`DOC_NORMAL`، `DOC_ECONOMY`، `PARCEL`)
|
||||
- **معماری ارزی IRR-only** — ارز مبنا = ریال ایران؛ تبدیل ارز در زمان ایمپورت، نه محاسبه
|
||||
- **موتور قیمتگذاری هوشمند** با ۴-رُبعی (Export/Import × Doc/Parcel) و ایمپورت از اکسل
|
||||
- **فاکتورهای دستی مدیر** — صدور فاکتور برای خدمات خارج از سفارش + پرداخت از کیف پول + اعلان خودکار
|
||||
- **ثبت سفارش آنلاین چندمرحلهای** با Wizard و محاسبهٔ لحظهای قیمت
|
||||
- **پشتیبانی چندبستهای** (Multi-Package) در یک سفارش با محاسبهٔ خودکار وزن حجمی
|
||||
- **تولید خودکار اسناد** (AWB، Invoice، Label، فاکتور واردات) با بارکد Code-128 و پشتیبانی کامل از زبان انگلیسی
|
||||
- **پورتال مشتری کامل** با کیف پول، پرداخت آنلاین، تراکنشها، اعلانها و رهگیری مرسوله
|
||||
- **پورتال مشتری کامل** با کیف پول، پرداخت آنلاین، فاکتورهای دستی، تراکنشها، اعلانها و رهگیری مرسوله
|
||||
- **فلوی تأیید سفارش** با مسیر `pending_approval → approved → paid → processed`
|
||||
- **چرخهٔ تعهدنامه** با فلوی کامل End-to-End (دانلود قالب ← آپلود امضاشده ← تأیید یا رد ادمین ← اعلان مشتری)
|
||||
- **سیستم اعتبار چندارزی** — بدهی به همان ارز ثبت میشود، تسویه با نرخ روز
|
||||
- **مانده حساب** با نمایش موجودی کیف پول منهای بدهیهای تأییدشده
|
||||
- **مانده حساب** با نمایش موجودی کیف پول منهای بدهیهای تأییدشده (سفارشات + فاکتورهای دستی)
|
||||
- **وضعیت مالی مشتری** — صفحهٔ جامع در پنل ادمین (۴ KPI + بدهیهای ارزی + سفارشها و تراکنشها)
|
||||
- **ویجت هشدار بدهیهای ارزی** روی داشبورد بههمراه badge روی منو
|
||||
- **چکلیست خودکار کارمند** — نمونهسازی از قالب پس از تأیید سفارش
|
||||
- **ایمپورت گروهی وضعیت ترکینگ** با فایل CSV در پنل مدیریت
|
||||
- **سیستم Audit Log** برای ثبت لاگ تغییرات مدیر
|
||||
- **پنل مدیریت قدرتمند Filament** شامل مدیریت مرسولهها، نرخها، ارزها، کاربران و گزارشها
|
||||
- **پنل مدیریت قدرتمند Filament** شامل مدیریت مرسولهها، نرخها، ارزها، فاکتورهای دستی، کاربران و گزارشها
|
||||
- **سیستم ترکینگ** با مهاجرت دادههای تاریخی و تایملاین کامل
|
||||
- **اعلانهای دیتابیس** برای ادمین و مشتری با badge unread در سایدبار
|
||||
- **Rate Limiting** روی همهٔ APIها (۶ لایه: auth / sms / public / customer / wallet / staff)
|
||||
@ -207,7 +209,7 @@ IFNEX-Logistics/
|
||||
- اصلاحات فنی (Enum casts، migration، model)
|
||||
- پشتیبانی چندزبانه (i18n) — منتقل شد به زمان دیپلوی
|
||||
|
||||
### فاز ۳.۶ — اصلاحات جلسهٔ کارفرما ✅ (۹۵٪)
|
||||
### فاز ۳.۶ — اصلاحات جلسهٔ کارفرما ✅ (۱۰۰٪)
|
||||
|
||||
- [x] فلوی تأیید سفارش `pending_approval → approved → پرداخت → processed` — تست End-to-End
|
||||
- [x] تعهدنامهها با فلوی کامل (دانلود قالب ← آپلود امضاشده ← تأیید/رد ادمین ← اعلان مشتری)
|
||||
@ -227,6 +229,17 @@ IFNEX-Logistics/
|
||||
- [x] استایلدهی صفحهٔ پروفایل مشتری در وردپرس
|
||||
- [x] پاکسازی کد — حذف فایلهای تستی، تأیید تمیزی `opcache_reset` / `dd` / `dump`
|
||||
|
||||
### فاز ۳.۷ — اصلاحات ارزی و فاکتور دستی ✅ (۱۰۰٪)
|
||||
|
||||
- [x] **سیستم ۴-رُبعی نرخها** (Export/Import × Doc/Parcel) با ایمپورت از اکسل
|
||||
- [x] **معماری IRR-only** — ارز مبنا = ریال ایران، حذف جفتارز و تبدیل در زمان ایمپورت
|
||||
- [x] **ایمپورت فایل اصلی مشتری** + قالب جدید `IFNEX_Rate_Template.xlsx`
|
||||
- [x] **حذف تمام «تومان» و «درهم» از نمایش قیمتهای داخلی** در همه UIها
|
||||
- [x] **فاکتورهای دستی مدیر** — صدور، پرداخت از کیف پول، اعلان خودکار
|
||||
- [x] **تب «فاکتورهای دستی» در پورتال وردپرس** (لیست + جزئیات + پرداخت)
|
||||
- [x] **اضافه شدن فاکتورها به وضعیت مالی و داشبورد مشتری**
|
||||
- [x] **فرمت هزارگان** در فیلدهای عددی فرم فاکتور ادمین
|
||||
|
||||
### فاز ۴ (آینده) — سیستم نمایندگی 📋
|
||||
|
||||
- مدل نمایندگی کامل با کمیسیون و پنل جداگانه
|
||||
|
||||
Loading…
Reference in New Issue
Block a user