ifnex/04_Laravel/routes/web.php
Kazem Alghasi c43b6b0bec fix(rate-import): fix file path resolution + redirect old import page to new 4-quadrant page
- Fix 'File not found' error in ImportRates page by using Storage facade
  to resolve the actual path on the 'local' disk (which points to
  storage/app/private, not storage/app).
- Deprecate the old ImportRatesPage (2-zone format) — hide from navigation
  and redirect anyone hitting its URL to /admin/rate-import.
- Update the template download route to serve the new 4-quadrant
  IFNEX_Rate_Template.xlsx from public/templates/ instead of the old
  ShippingRatesTemplateExport (2-zone format).
- Update rate-import.blade.php to use the named route for the download link.
- Add public/templates/IFNEX_Rate_Template.xlsx for direct web access.
2026-10-29 15:56:30 +03:30

67 lines
3.2 KiB
PHP

<?php
use App\Http\Controllers\Admin\CommitmentFileController;
use App\Http\Controllers\OrderController;
use App\Http\Controllers\PricingPageController;
use App\Http\Controllers\ShipmentPdfController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
Route::get('/pricing', PricingPageController::class)->name('pricing.index');
Route::get('/order', [OrderController::class, 'create'])->name('orders.create');
Route::post('/order', [OrderController::class, 'store'])->name('orders.store');
Route::get('/order/success/{shipment}', [OrderController::class, 'success'])->name('orders.success');
Route::middleware('auth')->group(function () {
Route::get('/shipments/{shipment}/pdf/awb', [ShipmentPdfController::class, 'awb'])->name('shipments.pdf.awb');
Route::get('/shipments/{shipment}/pdf/invoice', [ShipmentPdfController::class, 'invoice'])->name('shipments.pdf.invoice');
Route::get('/shipments/{shipment}/pdf/label', [ShipmentPdfController::class, 'label'])->name('shipments.pdf.label');
Route::get('/shipments/{shipment}/pdf/import-invoice', [ShipmentPdfController::class, 'importInvoice'])->name('shipments.pdf.import-invoice');
// دانلود امن فایل‌های تعهدنامه برای پنل ادمین (کنترل دسترسی داخل کنترلر با canAccessPanel)
Route::get('/admin/shipments/{shipment}/commitment-forms/{form}/template', [CommitmentFileController::class, 'template'])
->name('admin.commitment-forms.template');
Route::get('/admin/shipments/{shipment}/commitment-forms/{record}/signed', [CommitmentFileController::class, 'signed'])
->name('admin.commitment-forms.signed');
});
// صفحات نتیجه پرداخت
Route::get('/payment-result', function (Illuminate\Http\Request $request) {
$status = $request->input('status');
$transactionId = $request->input('transaction_id');
$refId = $request->input('ref_id');
$amount = $request->input('amount');
$message = $request->input('message');
$isSuccess = $status === 'success';
return view('payment-result', [
'status' => $status,
'isSuccess' => $isSuccess,
'transactionId' => $transactionId,
'refId' => $refId,
'amount' => $amount,
'message' => $message,
]);
})->name('payment.result');
// دانلود قالب خالی نرخ‌ها (IFNEX_Rate_Template.xlsx — فرمت ۴-رُبعی جدید)
// فایل واقعی در public/templates قرار دارد تا مستقیم از طریق وب هم قابل دسترس باشد.
Route::get('/download-rate-template', function () {
$file = public_path('templates/IFNEX_Rate_Template.xlsx');
if (! file_exists($file)) {
abort(404, 'Template file not found. Please add public/templates/IFNEX_Rate_Template.xlsx');
}
return response()->download($file, 'IFNEX_Rate_Template.xlsx', [
'Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
]);
})->name('download.rate-template');
// alias کوتاه‌تر که از صفحه /admin/rate-import لینک شده
Route::get('/admin/rate-import/template', function () {
return redirect()->route('download.rate-template');
})->name('admin.rate-import.template');