451 lines
23 KiB
PHP
451 lines
23 KiB
PHP
<?php
|
|
|
|
use App\Enums\Permission;
|
|
use App\Http\Controllers\Admin\Account\AppearanceController;
|
|
use App\Http\Controllers\Admin\Account\PasswordController;
|
|
use App\Http\Controllers\Admin\Account\ProfileController;
|
|
use App\Http\Controllers\Admin\DashboardController;
|
|
use App\Http\Controllers\Admin\Finance\CashController;
|
|
use App\Http\Controllers\Admin\Finance\EmployeeAdvanceController;
|
|
use App\Http\Controllers\Admin\Finance\ExpenseController;
|
|
use App\Http\Controllers\Admin\Finance\PayrollController;
|
|
use App\Http\Controllers\Admin\Finance\PayrollPeriodController;
|
|
use App\Http\Controllers\Admin\Hr\AttendanceController;
|
|
use App\Http\Controllers\Admin\Hr\EmployeeController;
|
|
use App\Http\Controllers\Admin\Hr\LeaveRequestController;
|
|
use App\Http\Controllers\Admin\Manage\CuttingController;
|
|
use App\Http\Controllers\Admin\Manage\OrderController;
|
|
use App\Http\Controllers\Admin\Manage\PurchaseController;
|
|
use App\Http\Controllers\Admin\Master\CategoryController;
|
|
use App\Http\Controllers\Admin\Master\CustomerController;
|
|
use App\Http\Controllers\Admin\Master\ProductController;
|
|
use App\Http\Controllers\Admin\Master\RawMaterialController;
|
|
use App\Http\Controllers\Admin\Master\SupplierController;
|
|
use App\Http\Controllers\Admin\System\ActivityLogController;
|
|
use App\Http\Controllers\Admin\System\SettingController;
|
|
use App\Http\Controllers\Auth\LoginController;
|
|
use App\Http\Controllers\Auth\LogoutController;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
Route::inertia('/', 'Welcome')->name('home');
|
|
|
|
Route::middleware('guest')->group(function () {
|
|
Route::get('/auth/login', [LoginController::class, 'index'])->name('login');
|
|
Route::post('/auth/login', [LoginController::class, 'store']);
|
|
});
|
|
|
|
Route::middleware(['auth', 'permission:'.Permission::DASHBOARD_VIEW->value])->group(function () {
|
|
Route::post('/auth/logout', [LogoutController::class, 'store'])->name('logout');
|
|
|
|
Route::prefix('admin')->name('admin.')->group(function () {
|
|
Route::get('/dashboard', [DashboardController::class, 'index'])
|
|
->name('dashboard');
|
|
|
|
Route::prefix('master')->name('master.')->group(function () {
|
|
Route::prefix('categories')->name('categories.')
|
|
->middleware('permission:'.Permission::CATEGORIES_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [CategoryController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [CategoryController::class, 'store'])
|
|
->middleware('permission:'.Permission::CATEGORIES_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{category}', [CategoryController::class, 'update'])
|
|
->middleware('permission:'.Permission::CATEGORIES_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{category}', [CategoryController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::CATEGORIES_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('products')->name('products.')
|
|
->middleware('permission:'.Permission::PRODUCTS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('create', [ProductController::class, 'create'])
|
|
->middleware('permission:'.Permission::PRODUCTS_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [ProductController::class, 'store'])
|
|
->middleware('permission:'.Permission::PRODUCTS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{product}/edit', [ProductController::class, 'edit'])
|
|
->middleware('permission:'.Permission::PRODUCTS_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{product}', [ProductController::class, 'update'])
|
|
->middleware('permission:'.Permission::PRODUCTS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::patch('{product}/toggle-status', [ProductController::class, 'toggleStatus'])
|
|
->middleware('permission:'.Permission::PRODUCTS_TOGGLE_STATUS->value)
|
|
->name('toggle-status');
|
|
|
|
Route::delete('{product}', [ProductController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::PRODUCTS_DELETE->value)
|
|
->name('destroy');
|
|
|
|
Route::get('/', [ProductController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('raw-materials')->name('raw-materials.')
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('create', [RawMaterialController::class, 'create'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [RawMaterialController::class, 'store'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{rawMaterial}/edit', [RawMaterialController::class, 'edit'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{rawMaterial}', [RawMaterialController::class, 'update'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::patch('{rawMaterial}/toggle-status', [RawMaterialController::class, 'toggleStatus'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_TOGGLE_STATUS->value)
|
|
->name('toggle-status');
|
|
|
|
Route::delete('{rawMaterial}', [RawMaterialController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::RAW_MATERIALS_DELETE->value)
|
|
->name('destroy');
|
|
|
|
Route::get('/', [RawMaterialController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('suppliers')->name('suppliers.')
|
|
->middleware('permission:'.Permission::SUPPLIERS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [SupplierController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [SupplierController::class, 'store'])
|
|
->middleware('permission:'.Permission::SUPPLIERS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{supplier}', [SupplierController::class, 'update'])
|
|
->middleware('permission:'.Permission::SUPPLIERS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{supplier}', [SupplierController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::SUPPLIERS_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('customers')->name('customers.')
|
|
->middleware('permission:'.Permission::CUSTOMERS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [CustomerController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [CustomerController::class, 'store'])
|
|
->middleware('permission:'.Permission::CUSTOMERS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{customer}', [CustomerController::class, 'update'])
|
|
->middleware('permission:'.Permission::CUSTOMERS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{customer}', [CustomerController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::CUSTOMERS_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
});
|
|
|
|
Route::prefix('manage')->name('manage.')->group(function () {
|
|
Route::prefix('purchases')->name('purchases.')
|
|
->middleware('permission:'.Permission::PURCHASES_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [PurchaseController::class, 'index'])->name('index');
|
|
|
|
Route::get('create', [PurchaseController::class, 'create'])
|
|
->middleware('permission:'.Permission::PURCHASES_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [PurchaseController::class, 'store'])
|
|
->middleware('permission:'.Permission::PURCHASES_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{purchase}/edit', [PurchaseController::class, 'edit'])
|
|
->middleware('permission:'.Permission::PURCHASES_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{purchase}', [PurchaseController::class, 'update'])
|
|
->middleware('permission:'.Permission::PURCHASES_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{purchase}', [PurchaseController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::PURCHASES_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('orders')->name('orders.')
|
|
->middleware('permission:'.Permission::ORDERS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [OrderController::class, 'index'])->name('index');
|
|
|
|
Route::get('create', [OrderController::class, 'create'])
|
|
->middleware('permission:'.Permission::ORDERS_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [OrderController::class, 'store'])
|
|
->middleware('permission:'.Permission::ORDERS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{order}/edit', [OrderController::class, 'edit'])
|
|
->middleware('permission:'.Permission::ORDERS_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{order}', [OrderController::class, 'update'])
|
|
->middleware('permission:'.Permission::ORDERS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::post('{order}/status', [OrderController::class, 'transitionStatus'])
|
|
->name('transition-status');
|
|
|
|
Route::delete('{order}', [OrderController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::ORDERS_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('cuttings')->name('cuttings.')
|
|
->middleware('permission:'.Permission::CUTTINGS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [CuttingController::class, 'index'])->name('index');
|
|
|
|
Route::get('create', [CuttingController::class, 'create'])
|
|
->middleware('permission:'.Permission::CUTTINGS_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [CuttingController::class, 'store'])
|
|
->middleware('permission:'.Permission::CUTTINGS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{cutting}/edit', [CuttingController::class, 'edit'])
|
|
->middleware('permission:'.Permission::CUTTINGS_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{cutting}', [CuttingController::class, 'update'])
|
|
->middleware('permission:'.Permission::CUTTINGS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::post('{cutting}/status', [CuttingController::class, 'transitionStatus'])
|
|
->name('transition-status');
|
|
|
|
Route::delete('{cutting}', [CuttingController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::CUTTINGS_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
});
|
|
|
|
Route::prefix('system')->name('system.')->group(function () {
|
|
Route::prefix('activity-logs')->name('activity-logs.')
|
|
->middleware('permission:'.Permission::ACTIVITY_LOGS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [ActivityLogController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('setting')->name('setting.')
|
|
->middleware('permission:'.Permission::SETTINGS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [SettingController::class, 'index'])->name('index');
|
|
|
|
Route::post('system', [SettingController::class, 'updateSystem'])
|
|
->middleware('permission:'.Permission::SETTINGS_UPDATE->value)
|
|
->name('system.update');
|
|
|
|
Route::put('social-media', [SettingController::class, 'updateSocialMedia'])
|
|
->middleware('permission:'.Permission::SETTINGS_UPDATE->value)
|
|
->name('social-media.update');
|
|
|
|
Route::put('marketplace', [SettingController::class, 'updateMarketplace'])
|
|
->middleware('permission:'.Permission::SETTINGS_UPDATE->value)
|
|
->name('marketplace.update');
|
|
});
|
|
});
|
|
|
|
Route::prefix('account')->name('account.')->group(function () {
|
|
Route::get('profile', [ProfileController::class, 'edit'])->name('profile');
|
|
Route::put('profile', [ProfileController::class, 'update'])->name('profile.update');
|
|
|
|
Route::get('password', [PasswordController::class, 'edit'])->name('password');
|
|
Route::put('password', [PasswordController::class, 'update'])->name('password.update');
|
|
|
|
Route::get('appearance', [AppearanceController::class, 'edit'])->name('appearance');
|
|
Route::put('appearance', [AppearanceController::class, 'update'])->name('appearance.update');
|
|
});
|
|
|
|
Route::prefix('finance')->name('finance.')->group(function () {
|
|
Route::prefix('cash')->name('cash.')
|
|
->middleware('permission:'.Permission::CASH_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [CashController::class, 'index'])->name('index');
|
|
|
|
Route::post('deposit', [CashController::class, 'deposit'])
|
|
->middleware('permission:'.Permission::CASH_DEPOSIT->value)
|
|
->name('deposit');
|
|
|
|
Route::put('transactions/{cashTransaction}', [CashController::class, 'update'])
|
|
->middleware('permission:'.Permission::CASH_UPDATE->value)
|
|
->name('transactions.update');
|
|
|
|
Route::delete('transactions/{cashTransaction}', [CashController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::CASH_DELETE->value)
|
|
->name('transactions.destroy');
|
|
});
|
|
|
|
Route::prefix('expenses')->name('expenses.')
|
|
->middleware('permission:'.Permission::EXPENSES_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [ExpenseController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [ExpenseController::class, 'store'])
|
|
->middleware('permission:'.Permission::EXPENSES_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{expense}', [ExpenseController::class, 'update'])
|
|
->middleware('permission:'.Permission::EXPENSES_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{expense}', [ExpenseController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::EXPENSES_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('employee-advances')->name('employee-advances.')
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [EmployeeAdvanceController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [EmployeeAdvanceController::class, 'store'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{employeeAdvance}', [EmployeeAdvanceController::class, 'update'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{employeeAdvance}', [EmployeeAdvanceController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_DELETE->value)
|
|
->name('destroy');
|
|
|
|
Route::post('{employeeAdvance}/approve', [EmployeeAdvanceController::class, 'approve'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_VERIFY->value)
|
|
->name('approve');
|
|
|
|
Route::post('{employeeAdvance}/reject', [EmployeeAdvanceController::class, 'reject'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_VERIFY->value)
|
|
->name('reject');
|
|
|
|
Route::post('{employeeAdvance}/pay', [EmployeeAdvanceController::class, 'pay'])
|
|
->middleware('permission:'.Permission::EMPLOYEE_ADVANCES_PAY->value)
|
|
->name('pay');
|
|
});
|
|
|
|
Route::prefix('payroll')->name('payroll.')
|
|
->middleware('permission:'.Permission::PAYROLL_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [PayrollPeriodController::class, 'index'])->name('index');
|
|
|
|
Route::post('periods/{payrollPeriod}/close', [PayrollPeriodController::class, 'close'])
|
|
->middleware('permission:'.Permission::PAYROLL_CLOSE->value)
|
|
->name('periods.close');
|
|
|
|
Route::post('{payroll}/pay', [PayrollController::class, 'pay'])
|
|
->middleware('permission:'.Permission::PAYROLL_PAY->value)
|
|
->name('pay');
|
|
|
|
Route::post('{payroll}/adjustments', [PayrollController::class, 'storeAdjustment'])
|
|
->middleware('permission:'.Permission::PAYROLL_ADJUST->value)
|
|
->name('adjustments.store');
|
|
});
|
|
});
|
|
|
|
Route::prefix('hr')->name('hr.')->group(function () {
|
|
Route::prefix('attendances')->name('attendances.')
|
|
->middleware('permission:'.Permission::ATTENDANCES_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [AttendanceController::class, 'index'])->name('index');
|
|
|
|
Route::post('check-in', [AttendanceController::class, 'checkIn'])
|
|
->middleware('permission:'.Permission::ATTENDANCES_CREATE->value)
|
|
->name('check-in');
|
|
|
|
Route::post('check-out', [AttendanceController::class, 'checkOut'])
|
|
->middleware('permission:'.Permission::ATTENDANCES_CREATE->value)
|
|
->name('check-out');
|
|
|
|
Route::delete('{attendance}', [AttendanceController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::ATTENDANCES_DELETE->value)
|
|
->name('destroy');
|
|
});
|
|
|
|
Route::prefix('employees')->name('employees.')
|
|
->middleware('permission:'.Permission::EMPLOYEES_VIEW->value)
|
|
->group(function () {
|
|
Route::post('{user}/reset-password', [EmployeeController::class, 'resetPassword'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_RESET_PASSWORD->value)
|
|
->name('reset-password');
|
|
|
|
Route::patch('{user}/toggle-status', [EmployeeController::class, 'toggleStatus'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_TOGGLE_STATUS->value)
|
|
->name('toggle-status');
|
|
|
|
Route::get('create', [EmployeeController::class, 'create'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_CREATE->value)
|
|
->name('create');
|
|
|
|
Route::post('/', [EmployeeController::class, 'store'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::get('{user}/edit', [EmployeeController::class, 'edit'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_UPDATE->value)
|
|
->name('edit');
|
|
|
|
Route::put('{user}', [EmployeeController::class, 'update'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{user}', [EmployeeController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::EMPLOYEES_DELETE->value)
|
|
->name('destroy');
|
|
|
|
Route::get('/', [EmployeeController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('leave-requests')->name('leave-requests.')
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_VIEW->value)
|
|
->group(function () {
|
|
Route::get('/', [LeaveRequestController::class, 'index'])->name('index');
|
|
|
|
Route::post('/', [LeaveRequestController::class, 'store'])
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_CREATE->value)
|
|
->name('store');
|
|
|
|
Route::put('{leaveRequest}', [LeaveRequestController::class, 'update'])
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_UPDATE->value)
|
|
->name('update');
|
|
|
|
Route::delete('{leaveRequest}', [LeaveRequestController::class, 'destroy'])
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_DELETE->value)
|
|
->name('destroy');
|
|
|
|
Route::post('{leaveRequest}/approve', [LeaveRequestController::class, 'approve'])
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_VERIFY->value)
|
|
->name('approve');
|
|
|
|
Route::post('{leaveRequest}/reject', [LeaveRequestController::class, 'reject'])
|
|
->middleware('permission:'.Permission::LEAVE_REQUESTS_VERIFY->value)
|
|
->name('reject');
|
|
});
|
|
});
|
|
});
|
|
});
|