group(function () { Route::get('/', [AuthController::class, 'index'])->name('indexAuth')->middleware('guest'); Route::get('/create', [AuthController::class, 'create'])->name('registerAuth')->middleware('guest'); Route::post('/authenticate', [AuthController::class, 'authenticate'])->name('authenticateAuth'); Route::post('/store', [AuthController::class, 'store'])->name('storeAuth'); Route::post('/out-auth', [AuthController::class, 'out'])->name('outAuth'); }); //-------------------------------- DASHBOARD ----------------------------------------------- Route::middleware(['auth'])->group(function () { Route::get('/dashboard', [DashboardController::class, 'index'])->name('indexDashboard'); //-------------------------------- MANAJEMEN KARYAWAN -------------------------------------- // Route::prefix('karyawan')->middleware(['admin'])->group(function () { // Route::get('/', [KaryawanController::class, 'index'])->name('indexKaryawan'); // Route::get('/create', [KaryawanController::class, 'create'])->name('createKaryawan'); // Route::get('/edit/{id}', [KaryawanController::class, 'edit'])->name('editKaryawan'); // Route::post('/store', [KaryawanController::class, 'store'])->name('storeKaryawan'); // Route::put('/update/{id}', [KaryawanController::class, 'update'])->name('updateKaryawan'); // Menggunakan PUT // Route::delete('/delete/{id}', [KaryawanController::class, 'delete'])->name('deleteKaryawan'); // }); //-------------------------------- PRODUK ------------------------------------------------- // Route::prefix('produk')->group(function () { // Route::get('/', [ProdukController::class, 'index'])->name('produk.index'); // Route::middleware(['admin'])->group(function () { // Route::get('/create', [ProdukController::class, 'create'])->name('produk.create'); // Route::post('/', [ProdukController::class, 'store'])->name('produk.store'); // Route::get('/{id}/edit', [ProdukController::class, 'edit'])->name('produk.edit'); // Route::put('/{id}', [ProdukController::class, 'update'])->name('produk.update'); // Route::delete('/{id}', [ProdukController::class, 'destroy'])->name('produk.destroy'); // }); // }); //-------------------------------- TRANSAKSI ---------------------------------------------- Route::prefix('transaksi')->middleware(['admin'])->group(function () { Route::get('/', [TransaksiController::class, 'index'])->name('transaksi.index'); Route::get('/create', [TransaksiController::class, 'create'])->name('transaksi.create'); Route::post('/', [TransaksiController::class, 'store'])->name('transaksi.store'); Route::get('/{id}/edit', [TransaksiController::class, 'edit'])->name('transaksi.edit'); Route::put('/{id}', [TransaksiController::class, 'update'])->name('transaksi.update'); Route::delete('/{id}', [TransaksiController::class, 'destroy'])->name('transaksi.destroy'); Route::get('/export-excel', [TransaksiController::class, 'exportExcel'])->name('transaksi.export-excel'); }); //-------------------------------- TRANSAKSI DETAIL --------------------------------------- Route::prefix('transaksidetail')->middleware(['admin'])->group(function () { Route::get('/', [TransaksiDetailController::class, 'index'])->name('transaksidetail.index'); Route::get('/create', [TransaksiDetailController::class, 'create'])->name('transaksidetail.create'); Route::post('/', [TransaksiDetailController::class, 'store'])->name('transaksidetail.store'); Route::get('/{id}/edit', [TransaksiDetailController::class, 'edit'])->name('transaksidetail.edit'); Route::put('/{id}', [TransaksiDetailController::class, 'update'])->name('transaksidetail.update'); Route::delete('/{id}', [TransaksiDetailController::class, 'destroy'])->name('transaksidetail.destroy'); Route::get('/show/{id}', [TransaksiDetailController::class, 'show'])->name('transaksidetail.show'); }); //-------------------------------- POS (POINT OF SALE) ------------------------------------ Route::prefix('pos')->middleware(['admin-karyawan'])->group(function () { Route::get('/', [PosController::class, 'index'])->name('pos.index'); Route::post('/', [PosController::class, 'store'])->name('pos.store'); Route::get('/receipt/{id}', [PosController::class, 'printReceipt'])->name('pos.receipt'); Route::get('/thermal-receipt/{id}', [PosController::class, 'printThermalReceipt'])->name('pos.thermal-receipt'); Route::post('/check-availability', [PosController::class, 'checkAvailability'])->name('pos.check-availability'); }); //-------------------------------- LAPORAN PENJUALAN ------------------------------------- Route::prefix('laporan-penjualan')->middleware(['admin-karyawan'])->group(function () { Route::get('/', [LaporanPenjualanController::class, 'index'])->name('laporanpenjualan.index'); Route::get('/pdf', [LaporanPenjualanController::class, 'generatePdf'])->name('laporanpenjualan.pdf'); Route::post('/store/{tanggal}', [LaporanPenjualanController::class, 'store'])->name('laporanpenjualan.store'); }); // Profile routes Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update'); }); // Raw Materials Management Routes Route::middleware(['auth', 'admin-karyawan'])->group(function () { Route::prefix('raw-materials')->name('raw-materials.')->group(function () { Route::get('/', [RawMaterialController::class, 'index'])->name('index'); // <-- Menambahkan rute untuk index Route::get('/create', [RawMaterialController::class, 'create'])->name('create'); Route::post('/', [RawMaterialController::class, 'store'])->name('store'); Route::get('/{rawMaterial}/edit', [RawMaterialController::class, 'edit'])->name('edit'); Route::put('/{rawMaterial}', [RawMaterialController::class, 'update'])->name('update'); Route::delete('/{rawMaterial}', [RawMaterialController::class, 'destroy'])->name('destroy'); Route::post('/{rawMaterial}/adjust-stock', [RawMaterialController::class, 'adjustStock'])->name('adjust-stock'); Route::get('/low-stock', [RawMaterialController::class, 'lowStock'])->name('low-stock'); Route::get('/purchase', [RawMaterialController::class, 'purchase'])->name('purchase'); Route::post('/purchase', [RawMaterialController::class, 'storePurchase'])->name('purchase.store'); Route::get('usage', [RawMaterialController::class, 'usage'])->name('usage'); Route::post('usage', [RawMaterialController::class, 'storeUsage'])->name('usage.store'); }); }); // Admin-only routes Route::middleware(['auth', 'admin'])->group(function () { Route::get('raw-materials-report', [RawMaterialController::class, 'report'])->name('raw-materials.report'); }); // Super user routes Route::middleware(['auth', 'super'])->group(function () { Route::get('super/manage-users', [SuperController::class, 'manageUsers'])->name('super.manage-users'); Route::get('super/create-user', [SuperController::class, 'createUser'])->name('super.create-user'); Route::post('super/store-user', [SuperController::class, 'storeUser'])->name('super.store-user'); Route::get('super/edit-user/{id}', [SuperController::class, 'editUser'])->name('super.edit-user'); Route::put('super/update-user/{id}', [SuperController::class, 'updateUser'])->name('super.update-user'); Route::delete('super/delete-user/{id}', [SuperController::class, 'deleteUser'])->name('super.delete-user'); }); //-------------------------------- PRODUK ------------------------------------------------- Route::prefix('produk')->group(function () { Route::get('/', [ProdukController::class, 'index'])->name('produk.index'); Route::middleware(['admin'])->group(function () { Route::get('/create', [ProdukController::class, 'create'])->name('produk.create'); Route::post('/', [ProdukController::class, 'store'])->name('produk.store'); Route::get('/{id}/edit', [ProdukController::class, 'edit'])->name('produk.edit'); Route::put('/{id}', [ProdukController::class, 'update'])->name('produk.update'); Route::delete('/{id}', [ProdukController::class, 'destroy'])->name('produk.destroy'); }); });