Files
2026-09-21 10:14:57 +01:00

199 lines
12 KiB
PHP
Executable File

<?php
use Illuminate\Support\Facades\Route;
use Modules\M3\Http\Controllers\AuthController;
use Modules\M3\Http\Controllers\BoxPackToPalletController;
use Modules\M3\Http\Controllers\CarrierMaintController;
use Modules\M3\Http\Controllers\DashboardController;
use Modules\M3\Http\Controllers\ExecSummaryController;
use Modules\M3\Http\Controllers\ExecSummaryLineController;
use Modules\M3\Http\Controllers\FillBOL2Controller;
use Modules\M3\Http\Controllers\FillBOLController;
use Modules\M3\Http\Controllers\GetContentsController;
use Modules\M3\Http\Controllers\M3CallCloseAPIController;
use Modules\M3\Http\Controllers\M3DeliveryController;
use Modules\M3\Http\Controllers\MFOrdersController;
use Modules\M3\Http\Controllers\PalletQtyController;
use Modules\M3\Http\Controllers\PendingClosureController;
use Modules\M3\Http\Controllers\SentinelController;
use Modules\M3\Http\Controllers\ShipToController;
use Modules\M3\Http\Controllers\UserControlController;
use Modules\M3\Http\Controllers\UserPickingStats4;
use Modules\M3\Http\Controllers\UserPickingStats5;
// Sentinel
use Modules\M3\Http\Controllers\UserProfileController;
// Warehouse Performance
use Modules\M3\Http\Controllers\UtilitiesController;
use Modules\M3\Http\Controllers\WhsePerfController;
// Pack Box To Pallet
use Modules\M3\Http\Controllers\WhsePerfDetailsController;
use Modules\M3\Http\Controllers\WhsPerfMetrics;
// Not Used
// use Modules\M3\Http\Controllers\orderInquiryController;
// use Modules\M3\Http\Controllers\ordersOnHoldReqController;
// use Modules\M3\Http\Controllers\UserPickingStats4;
// use Modules\M3\Http\Controllers\ReplenishSettingsController;
Route::get('/assets/{path}', function (string $path) {
abort_if(str_contains($path, '..') || str_contains($path, "\0"), 404);
$root = realpath(module_path('M3', 'Resources/public'));
$file = realpath(module_path('M3', 'Resources/public/' . ltrim($path, '/')));
abort_unless($root && $file && str_starts_with($file, $root . DIRECTORY_SEPARATOR) && is_file($file), 404);
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
$contentTypes = [
'css' => 'text/css; charset=UTF-8',
'js' => 'application/javascript; charset=UTF-8',
'svg' => 'image/svg+xml',
'png' => 'image/png',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'gif' => 'image/gif',
'ico' => 'image/x-icon',
'woff' => 'font/woff',
'woff2' => 'font/woff2',
'ttf' => 'font/ttf',
];
return response(file_get_contents($file), 200, [
'Content-Type' => $contentTypes[$extension] ?? 'application/octet-stream',
'Cache-Control' => app()->environment('local') ? 'no-cache, no-store, must-revalidate' : 'public, max-age=86400',
'X-Content-Type-Options' => 'nosniff',
]);
})->where('path', '.+')->name('assets');
Route::get('/health', fn () => response()->json(['module' => 'M3', 'status' => 'ok', 'database' => config('m3.connection', 'pgsql')]))->name('health');
// Admin Panel
Route::get('/', [DashboardController::class, 'index'])->name('index');
// Utilities UtilitiesController
Route::get('/utilities', [UtilitiesController::class, 'index'])->name('utilities');
Route::get('/pdfReadWrite', [UtilitiesController::class, 'pdfReadWrite'])->name('pdfReadWrite');
Route::get('/fixICM799MSentPKR', [UtilitiesController::class, 'fixICM799MSentPKR'])->name('fixICM799MSentPKR');
Route::get('/generateGS128', [UtilitiesController::class, 'generateGS128'])->name('generateGS128');
Route::get('/miscTests', [UtilitiesController::class, 'miscTests'])->name('miscTests');
// logout
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
// orderInquiry
// Route::get('/orderInquiry', [orderInquiryController::class, 'index'])->name('orderInquiry');
// Route::post('/gotoOrder',[ordersOnHoldReqController::class, 'order'])->name('ordersOnHoldReqOrder');
// v4
Route::get('/UserPickingStats4', [UserPickingStats4::class, 'index'])->name('UserPickingStats4');
Route::post('/UserPickingStats4', [UserPickingStats4::class, 'index'])->name('UserPickingStats4');
// userControl
Route::get('/userControl', [UserControlController::class, 'index'])->name('userControl');
Route::post('/userControl', [UserControlController::class, 'index'])->name('userControl');
Route::post('/userControl/saveUserAdd', [UserControlController::class, 'saveUserAdd'])->name('saveUserAdd');
Route::post('/userControl/saveUserEdit', [UserControlController::class, 'saveUserEdit'])->name('saveUserEdit');
Route::get('/userControl/callCL', [UserControlController::class, 'callCL'])->name('callCL');
Route::post('/userControl/savePassword', [UserControlController::class, 'savePassword'])->name('savePassword');
// palletQty
Route::get('/palletQty', [PalletQtyController::class, 'index'])->name('palletQty');
Route::post('/palletQty', [PalletQtyController::class, 'index'])->name('palletQty');
Route::post('/palletQty/saveQtyAdd', [PalletQtyController::class, 'saveQtyAdd'])->name('saveQtyAdd');
Route::post('/palletQty/saveQtyAdd2', [PalletQtyController::class, 'saveQtyAdd2'])->name('saveQtyAdd2');
Route::post('/palletQty/saveQtyEdit', [PalletQtyController::class, 'saveQtyEdit'])->name('saveQtyEdit');
// carrierMaint
Route::get('/carrierMaint', [CarrierMaintController::class, 'index'])->name('carrierMaint');
Route::post('/carrierMaint', [CarrierMaintController::class, 'index'])->name('carrierMaint');
Route::post('/carrierMaint/saveCarrierAdd', [CarrierMaintController::class, 'saveCarrierAdd'])->name('saveCarrierAdd');
Route::post('/carrierMaint/saveCarrierAdd2', [CarrierMaintController::class, 'saveCarrierAdd2'])->name('saveCarrierAdd2');
Route::post('/carrierMaint/saveCarrierEdit', [CarrierMaintController::class, 'saveCarrierEdit'])->name('saveCarrierEdit');
// M3Delivery Maint
Route::get('/M3Delivery', [M3DeliveryController::class, 'index'])->name('M3Delivery');
Route::post('/M3Delivery', [M3DeliveryController::class, 'index'])->name('M3Delivery');
Route::post('/M3Delivery/saveM3DeliveryAdd', [M3DeliveryController::class, 'saveM3DeliveryAdd'])->name('saveM3DeliveryAdd');
Route::post('/M3Delivery/saveM3DeliveryEdit', [M3DeliveryController::class, 'saveM3DeliveryEdit'])->name('saveM3DeliveryEdit');
// Replenishement Settings
Route::resource('/replenishmentSettings', 'Modules\M3\Http\Controllers\ReplenishSettingsController', ['except' => ['create', 'edit', 'update', 'destroy']]); // 'store',
Route::post('/replenishmentSettingsUpdate', 'Modules\M3\Http\Controllers\ReplenishSettingsController@update')->name('replenishmentSettingsUpdate');
Route::post('/replenishmentSettingsDelete', 'Modules\M3\Http\Controllers\ReplenishSettingsController@deleteRec')->name('replenishmentSettingsDelete');
Route::post('/replenishmentSettingsExist', 'Modules\M3\Http\Controllers\ReplenishSettingsController@checkRecExit')->name('replenishmentSettingsExist');
Route::get('/replenishmentSettingsDT', 'Modules\M3\Http\Controllers\ReplenishSettingsController@datatables')->name('replenishmentSettingsDT');
// M3 Errors Display M3ErrorsDispController
Route::resource('/M3ErrorsDisplay', 'Modules\M3\Http\Controllers\M3ErrorsDispController', ['except' => ['create', 'store', 'edit', 'update', 'destroy']]);
Route::get('/M3ErrorsDisplayDT', 'Modules\M3\Http\Controllers\M3ErrorsDispController@datatables')->name('M3ErrorsDisplayDT');
Route::post('/M3ErrorsDisplay699', 'Modules\M3\Http\Controllers\M3ErrorsDispController@update699M')->name('M3ErrorsDisplay699');
Route::post('/exporttoExcel699', 'Modules\M3\Http\Controllers\M3ErrorsDispController@exporttoExcel')->name('exporttoExcel699');
// M3 Cached PDF
Route::resource('/M3GetPDFFromCache', 'Modules\M3\Http\Controllers\M3GetPDFFromCacheController', ['except' => ['create', 'store', 'edit', 'update', 'destroy']]);
Route::any('/M3GetPDFFromCache', 'Modules\M3\Http\Controllers\M3GetPDFFromCacheController@index');
// M3 Call Close API
Route::any('/M3ManifestCloseAPI', [M3CallCloseAPIController::class, 'index'])->name('M3ManifestCloseAPI');
// Closed order lines report
Route::any('/OrderLinesOfClosedOrder', 'Modules\M3\Http\Controllers\OrderLinesOfClosedOrder@index')->name('OrderLinesOfClosedOrder');
Route::post('/exporttoExcel', 'Modules\M3\Http\Controllers\OrderLinesOfClosedOrder@exporttoExcel')->name('exporttoExcel');
Route::any('/StoreExcelToDisk', 'Modules\M3\Http\Controllers\OrderLinesOfClosedOrder@StoreExcelToDisk')->name('StoreExcelToDisk');
Route::any('/downloadFiles', 'Modules\M3\Http\Controllers\OrderLinesOfClosedOrder@downloadFiles')->name('downloadFiles');
// v5
Route::get('/UserPickingStats5', [UserPickingStats5::class, 'index'])->name('UserPickingStats5');
Route::post('/UserPickingStats5', [UserPickingStats5::class, 'index'])->name('UserPickingStats5');
// 732
// pendingClosure
Route::get('/pendingClosure', [PendingClosureController::class, 'index'])->name('pendingClosure');
Route::post('/pendingClosure', [PendingClosureController::class, 'index'])->name('pendingClosure');
Route::post('/allowRetry', [PendingClosureController::class, 'allowRetry'])->name('allowRetry');
// Ship To
Route::resource('ship-to', ShipToController::class)->parameters(['ship-to' => 'austcn'])->except(['show']);
Route::get('/ship-to/{aushshzp}/{aushwhs}/edit', [ShipToController::class, 'edit'])->name('ship-to.edit');
Route::put('/ship-to/{aushshzp}/{aushwhs}', [ShipToController::class, 'update'])->name('ship-to.update');
Route::delete('/ship-to/{aushshzp}/{aushwhs}', [ShipToController::class, 'destroy'])->name('ship-to.destroy');
// MF Orders
Route::get('/MFOrders/{id}', [MFOrdersController::class, 'index'])->name('MFOrders');
// Get Contents for CloseShipment
Route::any('/GetContentsForClose', [GetContentsController::class, 'processShipment'])->name('GetContentsForClose');
// Update Profile
Route::any('/userprofile', [UserProfileController::class, 'index'])->name('userprofile');
Route::post('/userprofileupdate', [UserProfileController::class, 'updateUserProfile'])->name('userprofileupdate');
Route::any('/userprofileupdateajax', [UserProfileController::class, 'updateUserProfileAjax'])->name('userprofileupdateajax');
// Sentinel Functions
Route::any('/packSyst5Func', [SentinelController::class, 'packSyst5Func'])->name('packSyst5Func');
// Executives summary
Route::any('/execsummary', [ExecSummaryController::class, 'index'])->name('execsummary');
Route::any('/execsummaryline', [ExecSummaryLineController::class, 'index'])->name('execsummaryline');
// Warehouse Perf Metrics
Route::any('/whsePerf', [WhsePerfController::class, 'index'])->name('whsePerf');
Route::any('/whsePerfExcel', [WhsePerfController::class, 'exportTable'])->name('whsePerfExcel');
Route::any('/whsePerfShow', [WhsePerfController::class, 'displayTable'])->name('whsePerfShow');
Route::any('/whsePerfDetails', [WhsePerfDetailsController::class, 'index'])->name('whsePerfDetails');
Route::any('/downloadFilesWhs', [WhsPerfMetrics::class, 'downloadFiles'])->name('downloadFilesWhs');
// BOL PDFs
Route::any('/fillBOL', [FillBOLController::class, 'index'])->name('fillBOL');
Route::any('/fillBOLPDF', [FillBOLController::class, 'fillBOL'])->name('fillBOLPDF');
Route::any('/fillBOL2', [FillBOL2Controller::class, 'index'])->name('fillBOL2');
Route::any('/fillBOL2PDF', [FillBOL2Controller::class, 'fillBOL'])->name('fillBOL2PDF');
// Pack Box to Pallet BoxPackToPalletController
Route::any('/BoxPackToPallet', [BoxPackToPalletController::class, 'index'])->name('BoxPackToPallet');
Route::any('/BoxPackToPallet/getboxes', [BoxPackToPalletController::class, 'getBoxes'])->name('BoxPackToPallet.getboxes');
Route::any('/BoxPackToPallet/scanboxes', [BoxPackToPalletController::class, 'scanBoxes'])->name('BoxPackToPallet.scanboxes');
Route::any('/BoxPackToPallet/deletebox', [BoxPackToPalletController::class, 'deleteBox'])->name('BoxPackToPallet.deletebox');