ifnex/04_Laravel
Kazem Alghasi f5917c34c2 feat(logic): integrate discount code application and wallet services
Implement the core logic for applying discount codes during price
calculation and introduce the WalletService. This includes updating
the PriceCalculatorService to validate and apply discounts,
incrementing usage counts, and adding a Filament resource for
managing discount codes via the admin panel.

Additionally, refactor TrackingDataImport to use OnEachRow for better
memory management during large Excel imports.
2026-08-05 19:16:09 +03:30
..
app feat(logic): integrate discount code application and wallet services 2026-08-05 19:16:09 +03:30
bootstrap feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
config ۱۰ مورد کامل شد (دیتابیس، مدل‌ها، API، Filament، Laravel 11، رفع باگ‌ها) 2026-08-04 01:59:08 +03:30
database feat(db): implement wallet and discount code systems 2026-08-05 17:35:58 +03:30
public refactor(import): enhance shipping rates import and refine PDF layouts 2026-08-04 09:47:22 +03:30
resources docs(pdf): add technical mapping and implementation notes to templates 2026-08-04 09:50:53 +03:30
routes refactor(import): enhance shipping rates import and refine PDF layouts 2026-08-04 09:47:22 +03:30
storage feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
tests feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
.editorconfig feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
.env.example ۱۰ مورد کامل شد (دیتابیس، مدل‌ها، API، Filament، Laravel 11، رفع باگ‌ها) 2026-08-04 01:59:08 +03:30
artisan feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
check_shipments.php feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
check_tracking.php feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
composer.json feat(shipment): implement PDF generation for AWB, invoice, and labels 2026-08-04 09:20:23 +03:30
composer.lock feat(shipment): implement PDF generation for AWB, invoice, and labels 2026-08-04 09:20:23 +03:30
debug_import2.php feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
debug_import.php feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
inspect_awb.php feat(shipment): implement PDF generation for AWB, invoice, and labels 2026-08-04 09:20:23 +03:30
package.json feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
phpunit.xml feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
README.md docs(project): update documentation and project status for phase 1 2026-08-04 09:58:33 +03:30
test_excel.php feat(console): add tracking data import functionality and utility scripts 2026-08-04 05:38:35 +03:30
test_pricing2.php refactor(api): improve shipping rate import and pricing logic 2026-08-04 07:24:23 +03:30
test_pricing.php refactor(api): improve shipping rate import and pricing logic 2026-08-04 07:24:23 +03:30
vite.config.js feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30

IFNEX Logistics — Backend (Laravel 11)

بخش بک‌اند سیستم لجستیک ایف‌نکس. این پوشه به تنهایی یک اپلیکیشن لاراول ۱۱ کامل است.


🚀 راه‌اندازی سریع

composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --force
php artisan db:seed --force
php artisan serve

📦 پکیج‌های اصلی

پکیج نسخه نقش
laravel/framework ^11.0 هسته فریم‌ورک
filament/filament 3.3.* پنل مدیریت ادمین
maatwebsite/excel ^3.1 ایمپورت اکسل
barryvdh/laravel-dompdf ^3.1 تولید PDF
dompdf/dompdf ^3.0 موتور تولید PDF
morilog/jalali ^3.0 تبدیل تاریخ شمسی/میلادی

📁 ساختار کد

04_Laravel/
├── app/
│   ├── Models/              # مدل‌های Eloquent
│   ├── Enums/               # Enumهای سفارشی
│   ├── Services/            # PriceCalculatorService, PdfService, ...
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Api/         # PricingController, TrackController
│   │   │   ├── OrderController.php
│   │   │   ├── PricingPageController.php
│   │   │   └── ShipmentPdfController.php
│   │   ├── Middleware/       # ApiKeyMiddleware
│   │   └── Requests/        # Form Request Validation
│   ├── Imports/             # ShippingRatesImport
│   ├── Console/Commands/    # ImportShippingRates
│   └── Filament/            # پنل مدیریت
│       ├── Resources/       # Country, Shipment, ShippingRate, ShipmentItem
│       └── Pages/           # Settings, Dashboard
├── database/
│   ├── migrations/          # ۷ migration فاز ۰
│   └── seeders/             # seeders داده اولیه
├── routes/
│   ├── web.php              # /order, /pricing, PDF downloads
│   └── api.php              # /api/v1/calculate, /api/v1/track/{awb}
└── config/
    ├── ifnex.php            # تنظیمات اختصاصی
    └── cors.php             # تنظیمات CORS

🔌 API Endpoints

روش مسیر توضیحات
POST /api/v1/calculate محاسبه قیمت حمل (بدون احراز هویت)
GET /api/v1/track/{awb_no} استعلام وضعیت مرسوله با API Key

درخواست نمونه محاسبه قیمت:

curl -X POST http://localhost:8000/api/v1/calculate \
  -H "Content-Type: application/json" \
  -d '{
    "direction": "Outbound",
    "type": "DOC_NORMAL",
    "country_iso": "AE",
    "weight": 1,
    "volumetric_weight": 1
  }'

🛠️ دستورات Artisan سفارشی

# ایمپورت نرخ‌های حمل از اکسل
php artisan ifnex:import:rates {path} [--clear] [--dry-run]

# ایمپورت داده‌های ترکینگ
php artisan ifnex:import:tracking {path}

🌐 صفحات عمومی

مسیر توضیحات
/ صفحه اصلی
/order فرم ثبت سفارش آنلاین
/order/success/{shipment} صفحه تایید سفارش
/pricing صفحه استعلام قیمت
/shipments/{id}/pdf/awb دانلود AWB (نیاز به لاگین)
/shipments/{id}/pdf/invoice دانلود INVOICE (نیاز به لاگین)
/shipments/{id}/pdf/label دانلود LABEL (نیاز به لاگین)

🔐 احراز هویت و دسترسی

نقش دسترسی
super_admin دسترسی کامل به همه بخش‌های Filament
tracking_operator مدیریت ترکینگ و رویدادها
data_entry وارد کردن داده‌های مرسوله
customer دسترسی محدود (در فاز بعدی)

⚠️ نکات مهم

  • Laravel 11 — با سوییچ از v12 انجام شد
  • Livewire 3.8.3 — فرم‌ها با AJAX کار می‌کنند، POST مستقیم به /admin/login ثبت نمی‌شود
  • Filament 3.3.x — پنل مدیریت در مسیر /admin
  • MySQL 8+ — الزام migrations با JSON columns
  • DomPDF — برای تولید PDFهای AWB, INVOICE, LABEL استفاده می‌شود

📚 مستندات بیشتر

برای اطلاعات کامل‌تر به پوشه 01_Documents در ریشه پروژه مراجعه کنید:

  • STATUS.md — وضعیت فعلی و گزارش پیشرفت
  • IFNEX_Phase0_Checklist.md — چک‌لیست دقیق فاز ۰
  • Phase0_Proposal.md — مرجع اصلی پروژه
  • EXCEL_ANALYSIS.md — تحلیل کامل فایل‌های اکسل عملیاتی

📜 لایسنس

© 2026 VernaSoft Group (Kazem Alghasi). All rights reserved.

این پروژه اختصاصی شرکت IFNEX است و کپی یا استفاده‌ی غیرمجاز از آن ممنوع است.