49 lines
2.9 KiB
PHP
49 lines
2.9 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\Admin\DepartmentController;
|
|
use App\Http\Controllers\Admin\EmployeeController;
|
|
use App\Http\Controllers\Admin\AttendanceController;
|
|
use App\Http\Controllers\Admin\PayrollController;
|
|
use App\Http\Controllers\Admin\PositionController;
|
|
use App\Http\Controllers\Admin\UserController;
|
|
use App\Http\Controllers\DashboardController;
|
|
use Inertia\Inertia;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
// Redirect root ke halaman login
|
|
Route::get('/', function () {
|
|
return redirect('/login');
|
|
})->name('home');
|
|
|
|
Route::get('dashboard', [DashboardController::class, 'index'])
|
|
->middleware(['auth', 'verified'])
|
|
->name('dashboard');
|
|
|
|
// ADMIN
|
|
Route::middleware(['auth', 'verified', 'role:admin'])->prefix('admin')->name('admin.')->group(function () {
|
|
Route::resource('departments', DepartmentController::class);
|
|
Route::resource('positions', PositionController::class);
|
|
Route::resource('employees', EmployeeController::class);
|
|
Route::resource('attendance', AttendanceController::class)->only(['index', 'create', 'store']);
|
|
Route::resource('payrolls', PayrollController::class)->only(['index', 'create', 'store', 'show', 'edit', 'update']);
|
|
Route::patch('payrolls/{payroll}/status', [PayrollController::class, 'updateStatus'])->name('payrolls.updateStatus');
|
|
Route::get('attendances', [\App\Http\Controllers\Admin\AttendanceController::class, 'index'])->name('attendances.index');
|
|
|
|
Route::get('users', [UserController::class, 'index'])->name('users.index');
|
|
Route::get('users/create', [UserController::class, 'create'])->name('users.create');
|
|
Route::post('users', [UserController::class, 'store'])->name('users.store');
|
|
Route::patch('users/{user}', [UserController::class, 'update'])->name('users.update');
|
|
});
|
|
|
|
// KELOMPOK KARYAWAN
|
|
Route::middleware(['auth', 'verified', 'role:employee'])->group(function () {
|
|
Route::get('/employee/index', [\App\Http\Controllers\Employee\EmployeeDashboardController::class, 'index'])->name('employee.index');
|
|
|
|
Route::get('/employee/attendances', [\App\Http\Controllers\Employee\EmployeeAttendanceController::class, 'index'])->name('employee.attendances.index');
|
|
Route::post('/employee/attendances/clock-in', [\App\Http\Controllers\Employee\EmployeeAttendanceController::class, 'clockIn'])->name('employee.attendances.clock-in');
|
|
Route::post('/employee/attendances/clock-out', [\App\Http\Controllers\Employee\EmployeeAttendanceController::class, 'clockOut'])->name('employee.attendances.clock-out');
|
|
Route::post('/employee/attendances/leave', [\App\Http\Controllers\Employee\EmployeeAttendanceController::class, 'submitLeave'])->name('employee.attendances.leave');
|
|
Route::post('/employee/attendances/dispensation', [\App\Http\Controllers\Employee\EmployeeAttendanceController::class, 'submitDispensation'])->name('employee.attendances.dispensation');
|
|
});
|
|
|
|
require __DIR__.'/settings.php'; |