get('/login', [Auth::class, 'login'], ['filter' => 'loggedIn']); $routes->post('/login', [Auth::class, 'loginPost'], ['filter' => 'loggedIn']); $routes->get('test-email', 'TestEmail::index'); $routes->get('alerts/check', 'AlertsController::check'); $routes->get('check-deadline', 'TestDeadline::index'); /** * route to all the rest of web app * the filter do if user not connectet try to acces this route * redirect imediatly iny login */ $routes->group('', ['filter' => 'auth'], function ($routes) { /** * dashboard route */ $routes->get('/', [Dashboard::class, 'index']); $routes->get('/ventes', [Auth::class, 'ventes']); $routes->get('/ventes/(:num)', [Auth::class, 'addImage']); $routes->get('/ventes/fetchProductVente/(:num)', [Auth::class, 'fetchProductVente']); $routes->get('/ventes/show/(:num)', [Auth::class, 'getSingle']); $routes->post('/ventes/moreimage/(:num)', [Auth::class, 'uploadImagePub']); $routes->post('/ventes/moreimage/supp/(:num)', [Auth::class, 'delete']); /** * route to logout */ $routes->get('/logout', [Auth::class, 'logout']); // Route pour tester les alertes manuellement (à supprimer en production) $routes->get('test-deadline-alerts', 'AvanceController::checkDeadlineAlerts'); /** * route for the users */ $routes->group('/users', function ($routes) { $routes->get('/', [UserController::class, 'index']); $routes->get('create', [UserController::class, 'create']); $routes->post('create', [UserController::class, 'create']); $routes->get('edit/(:num)', [UserController::class, 'edit']); $routes->post('edit/(:num)', [UserController::class, 'edit']); $routes->get('delete/(:num)', [UserController::class, 'delete']); $routes->post('delete/(:num)', [UserController::class, 'delete']); $routes->get('profile', [UserController::class, 'profile']); $routes->get('fetchProfile/(:num)', [UserController::class, 'fetchProfile']); $routes->get('setting', [UserController::class, 'setting']); $routes->post('setting', [UserController::class, 'setting']); $routes->post('assign_store', [UserController::class, 'assign_store']); $routes->get('login/(:num)', [UserController::class, 'loginToOtherAccount']); $routes->get('fetchUserData', [UserController::class,'fetchUserData']); $routes->post('fetchUserForAssign', [UserController::class,'fetchUserForAssign']); }); /** * route for the groups */ $routes->group('/groups', function ($routes) { $routes->get('/', [GroupController::class, 'index']); $routes->get('create', [GroupController::class, 'create']); $routes->post('create', [GroupController::class, 'create']); $routes->get('edit/(:num)', [GroupController::class, 'edit']); $routes->post('edit/(:num)', [GroupController::class, 'edit']); $routes->get('delete/(:num)', [GroupController::class, 'delete']); $routes->post('delete/(:num)', [GroupController::class, 'delete']); }); /** * route for the brands */ $routes->group('/brands', function ($routes) { $routes->get('/', [BrandController::class, 'index']); $routes->get('fetchBrandData', [BrandController::class, 'fetchBrandData']); $routes->post('create', [BrandController::class, 'create']); $routes->post('fetchBrandDataById/(:num)', [BrandController::class, 'fetchBrandDataById']); $routes->post('update/(:num)', [BrandController::class, 'update']); $routes->post('remove', [BrandController::class, 'remove']); }); /** * route for the category */ $routes->group('/category', function ($routes) { $routes->get('/', [CategoryController::class, 'index']); $routes->get('fetchCategoryData', [CategoryController::class, 'fetchCategoryData']); $routes->post('create', [CategoryController::class, 'create']); $routes->post('fetchCategoryDataById/(:num)', [CategoryController::class, 'fetchCategoryDataById']); $routes->post('update/(:num)', [CategoryController::class, 'update']); $routes->post('remove', [CategoryController::class, 'remove']); }); /** * route for the stores */ $routes->group('/stores', function ($routes) { $routes->get('/', [StoreController::class, 'index']); $routes->get('fetchStoresData', [StoreController::class, 'fetchStoresData']); $routes->post('fetchStoresDataById/(:num)', [StoreController::class, 'fetchStoresDataById']); $routes->post('create', [StoreController::class, 'create']); $routes->post('update/(:num)', [StoreController::class, 'update']); $routes->post('remove/', [StoreController::class, 'remove']); }); /** * route for the Securite */ $routes->group('/validateSecurite', function ($routes) { $routes->get('/', [SecuriteController::class, 'index']); $routes->get('fetchSecuriteData', [SecuriteController::class, 'fetchSecuriteData']); $routes->post('fetchSecuriteDataById/(:num)', [SecuriteController::class, 'fetchSecuriteDataById']); $routes->post('update/(:num)', [SecuriteController::class, 'update']); }); /** * route for the attributes */ $routes->group('/attributes', function ($routes) { $routes->get('/', [AttribuController::class, 'index']); $routes->get('values/(:num)', [AttribuController::class, 'getValue']); $routes->get('fetchAttributeData', [AttribuController::class, 'fetchCategoryData']); $routes->get('fetchAttributeValueData/(:num)', [AttribuController::class, 'fetchCategoryValueData']); $routes->post('fetchAttributeDataById/(:num)', [AttribuController::class, 'fetchAttributeDataById']); $routes->post('fetchAttributeValueById/(:num)', [AttribuController::class, 'fetchAttributeValueById']); $routes->post('create', [AttribuController::class, 'create']); $routes->post('update/(:num)', [AttribuController::class, 'update']); $routes->post('remove', [AttribuController::class, 'remove']); $routes->post('createValue', [AttribuController::class, 'createValue']); $routes->post('updateValue/(:num)', [AttribuController::class, 'updateValue']); $routes->post('removeValue', [AttribuController::class, 'removeValue']); }); /** * route for the products */ $routes->group('/products', function ($routes) { $routes->get('/', [ProductCOntroller::class, 'index']); $routes->get('fetchProductData', [ProductCOntroller::class, 'fetchProductData']); $routes->get('create', [ProductCOntroller::class, 'create']); $routes->post('create', [ProductCOntroller::class, 'create']); $routes->get('update/(:num)', [ProductCOntroller::class, 'update']); $routes->post('update/(:num)', [ProductCOntroller::class, 'update']); $routes->post('remove', [ProductCOntroller::class, 'remove']); // $routes->get('generateqrcode/(:num)', [QrCodeController::class, 'generate']); $routes->post('assign_store', [ProductCOntroller::class, 'assign_store']); $routes->post('createByExcel', [ProductCOntroller::class, 'createByExcel']); }); /** * route for the orders */ $routes->group('/orders', function ($routes) { $routes->get('/', [OrderController::class, 'index']); $routes->get('fetchOrdersData', [OrderController::class, 'fetchOrdersData']); $routes->get('editAsNew/(:num)', 'OrderController::editAsNew/$1'); $routes->get('create', [OrderController::class, 'create']); $routes->post('create', [OrderController::class, 'create']); $routes->post('getProductValueById', [OrderController::class, 'getProductValueById']); $routes->post('getTableProductRow', [OrderController::class, 'getTableProductRow']); $routes->get('update/(:num)', [OrderController::class, 'update']); $routes->post('update/(:num)', [OrderController::class, 'update']); $routes->get('printDiv/(:num)', [OrderController::class, 'print5']); $routes->get('printDivBL/(:num)', [OrderController::class, 'print7']); $routes->get('printDivBLF/(:num)', [OrderController::class, 'print31']); $routes->post('remove', [OrderController::class, 'remove']); $routes->post('markAsDelivered', [OrderController::class, 'markAsDelivered']); // ← AJOUTEZ CETTE LIGNE ICI $routes->get('lookOrder/(:num)', [OrderController::class, 'lookOrder']); $routes->get('createFromEspace/(:num)', [OrderController::class, 'createById']); $routes->get('resrevation', [ReservationController::class, 'index']); }); /** * route for the reports */ $routes->group('/reports', function ($routes) { $routes->get('/', [ReportController::class, 'index']); $routes->post('/', [ReportController::class, 'index']); $routes->get('detail/stock', [ReportController::class, 'stockDetail']); $routes->get('detail/fetctData/(:num)', [ReportController::class, 'fetchProductSodled']); $routes->get('detail/fetctDataStock/(:num)', [ReportController::class, 'fetchProductStock']); $routes->get('detail/fetctDataStock2/(:num)', [ReportController::class, 'fetchProductStock2']); $routes->get('detail/performance', [ReportController::class, 'performancedetail']); $routes->get('detail/fetchPerformances', [ReportController::class, 'fetchPerformances']); }); /** * route for the company */ $routes->group('/company', function ($routes) { $routes->get('/', [CompanyController::class, 'index']); $routes->post('/', [CompanyController::class, 'index']); }); /** * route for the users statistic */ $routes->group('/statistic', function ($routes) { $routes->get('/', [StatistiqueController::class, 'index']); $routes->get('(:num)', [StatistiqueController::class, 'singleStat']); }); // routes for recouvrement $routes->group('/recouvrement', function ($routes) { $routes->get('/', [RecouvrementController::class, 'index']); $routes->get('fetchRecouvrementData', [RecouvrementController::class, 'fetchRecouvrementData']); $routes->get('fetchTotalRecouvrementData', [RecouvrementController::class, 'fetchTotalRecouvrementData']); $routes->get('fetchTotalData', [RecouvrementController::class, 'fetchTotal']); $routes->post('fetchRecouvrementSingle/(:num)', [RecouvrementController::class, 'fetchRecouvrementSingle']); $routes->post('create', [RecouvrementController::class, 'createRecouvrement']); $routes->post('delete', [RecouvrementController::class, 'removeRecouvrement']); $routes->post('update/(:num)', [RecouvrementController::class, 'updateRecouvrement']); // $routes->put('update/(:num)', 'RecouvrementController::updateRecouvrement/$1'); }); /** * route for the users mecanicien */ $routes->group('/mecanicien', function ($routes) { $routes->get('/', [MecanicienController::class, 'index']); $routes->get('fetchMecanicien', [MecanicienController::class, 'fetchMecanicien']); // $routes->get('fetchMecanicien_1/(:num)', [MecanicienController::class, 'fetchMecanicien_1']); $routes->post('fetchmecanicienSingle/(:num)', [MecanicienController::class, 'fetchmecanicienSingle']); $routes->post('create', [MecanicienController::class, 'create']); $routes->post('delete', [MecanicienController::class, 'delete']); $routes->post('update/(:num)', [MecanicienController::class, 'update']); $routes->get('fetchMecanicienPerformances', [MecanicienController::class, 'fetchMecanicienPerformances']); // $routes->put('update/(:num)', 'MecanicienController::update/$1'); }); $routes->group('/notifications', function ($routes) { $routes->get('/', [NotificationController::class, 'getNotification']); $routes->post('markAsRead/(:num)', [NotificationController::class, 'markAsRead']); $routes->post('markAllAsRead', [NotificationController::class, 'markAllAsRead']); }); // routes for sortie caisse $routes->group('/sortieCaisse', function ($routes) { $routes->get('/', [SortieCaisseController::class, 'index']); $routes->get('fetchSortieCaisseData', [SortieCaisseController::class, 'fetchSortieCaisseData']); $routes->get('fetchSortieCaisseData1', [SortieCaisseController::class, 'fetchSortieCaisseData1']); $routes->post('fetchSortieCaisseSingle/(:num)', [SortieCaisseController::class, 'fetchSortieCaisseSingle']); $routes->post('createSortieCaisse', [SortieCaisseController::class, 'createSortieCaisse']); $routes->post('markAsPaid/(:num)', 'SortieCaisseController::markAsPaid/$1'); $routes->post('updateSortieCaisse/(:num)', [SortieCaisseController::class, 'updateSortieCaisse']); $routes->post('validateSortieCaisse/(:num)', [SortieCaisseController::class, 'validateSortieCaisse']); // ✅ Routes d'exportation $routes->get('exportExcel', [SortieCaisseController::class, 'exportExcel']); $routes->get('exportCsv', [SortieCaisseController::class, 'exportCsv']); $routes->get('exportWithFilters', [SortieCaisseController::class, 'exportWithFilters']); }); // remise $routes->group('/remise', function ($routes) { $routes->get('', [RemiseController::class, 'index']); $routes->get('/', [RemiseController::class, 'index']); $routes->get('fetchRemiseData', [RemiseController::class, 'fetchRemiseData']); // $routes->post('delete', [RecouvrementController::class, 'removeRecouvrement']); $routes->post('updateRemise/(:num)', [RemiseController::class, 'updateRemise']); }); // avance $routes->group('/avances', function ($routes) { $routes->get('/', [AvanceController::class, 'index']); // ✅ Routes pour récupérer les données (GET) $routes->get('fetchAvanceData', [AvanceController::class, 'fetchAvanceData']); $routes->get('fetchAvanceBecameOrder', [AvanceController::class, 'fetchAvanceBecameOrder']); $routes->get('fetchExpiredAvance', [AvanceController::class, 'fetchExpiredAvance']); // Routes pour une avance spécifique $routes->get('fetchSingleAvance/(:num)', [AvanceController::class, 'fetchSingleAvance/$1']); $routes->get('getInvoicePreview/(:num)', [AvanceController::class, 'getInvoicePreview/$1']); $routes->get('getFullInvoiceForPrint/(:num)', [AvanceController::class, 'getFullInvoiceForPrint/$1']); $routes->get('printInvoice/(:num)', [AvanceController::class, 'printInvoice/$1']); // ✅ Routes POST pour modifications $routes->post('createAvance', [AvanceController::class, 'createAvance']); $routes->post('updateAvance', [AvanceController::class, 'updateAvance']); $routes->post('deleteAvance', [AvanceController::class, 'removeAvance']); $routes->post('notifyPrintInvoice', [AvanceController::class, 'notifyPrintInvoice']); // ✅ AJOUTER CETTE ROUTE MANQUANTE $routes->post('processExpiredAvances', [AvanceController::class, 'processExpiredAvances']); // ✅ Route CRON (optionnel) $routes->get('checkDeadlineAlerts', [AvanceController::class, 'checkDeadlineAlerts']); $routes->post('payAvance', 'AvanceController::payAvance'); $routes->get('forceConvertToOrder/(:num)', 'AvanceController::forceConvertToOrder/$1'); $routes->post('checkAndConvertCompleted', 'AvanceController::checkAndConvertCompleted'); }); // historique $routes->group('historique', ['filter' => 'auth'], static function ($routes) { $routes->get('/', 'HistoriqueController::index'); $routes->get('fetchHistoriqueData', 'HistoriqueController::fetchHistoriqueData'); $routes->get('export', 'HistoriqueController::export'); $routes->get('stats', 'HistoriqueController::stats'); // <-- ici $routes->get('getStats', 'HistoriqueController::getStats'); // reste pour AJAX $routes->post('clean', 'HistoriqueController::clean'); }); });