Detailing fungsi semua modul dari bugs error

This commit is contained in:
Iwit
2026-06-05 13:39:13 +07:00
parent 1089f60a3d
commit 6a79bc3464
31 changed files with 1927 additions and 228 deletions
+29 -23
View File
@@ -12,6 +12,7 @@ use App\Http\Controllers\Admin\ReportController;
use App\Http\Controllers\Admin\DepartmentController;
use App\Http\Controllers\Admin\PositionController;
use App\Http\Controllers\Admin\EmployeeController;
use App\Http\Controllers\Admin\SubjectController;
use App\Http\Controllers\Cbt\UserDashboardController;
/*
@@ -82,56 +83,61 @@ Route::middleware(['auth'])->group(function () {
// Dashboard Utama Admin
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::get('/api/live-exams', [DashboardController::class, 'getLiveExams'])->name('api.live-exams');
// DETAIL GRAFIK DEPARTEMEN
Route::get('/dashboard/department/{id}/fulfillment', [DashboardController::class, 'departmentFulfillment'])->name('dashboard.dept-detail');
// Modul Ujian & Bank Soal
Route::get('/question-bank', [ExamManagementController::class, 'questionBank'])->name('exams.questions');
// ================================================================
// PENAMBAHAN ROUTE UNTUK CRUD BANK SOAL
// Note: Route statis harus di atas route dinamis ({id})
// MODUL 1: BANK SOAL (QUESTIONS)
// ================================================================
Route::get('/question-bank', [ExamManagementController::class, 'questionBank'])->name('question-bank.index');
Route::delete('exams/questions/bulk-delete', [ExamManagementController::class, 'bulkDelete'])->name('exams.questions.bulkDelete');
Route::get('exams/questions/import', [ExamManagementController::class, 'importView'])->name('exams.questions.import');
Route::post('exams/questions/import', [ExamManagementController::class, 'importProcess']);
Route::get('exams/questions/create', [ExamManagementController::class, 'create'])->name('exams.questions.create');
Route::post('exams/questions', [ExamManagementController::class, 'store'])->name('exams.questions.store');
Route::get('exams/questions/{id}', [ExamManagementController::class, 'show'])->name('exams.questions.show');
Route::get('exams/questions/{id}/edit', [ExamManagementController::class, 'edit'])->name('exams.questions.edit');
Route::put('exams/questions/{id}', [ExamManagementController::class, 'update'])->name('exams.questions.update');
Route::delete('exams/questions/{id}', [ExamManagementController::class, 'destroy'])->name('exams.questions.destroy');
// PERBAIKAN: Rute 'create' WAJIB ditaruh di ATAS rute '{id}'
Route::get('exams/questions/create', [ExamManagementController::class, 'createQuestion'])->name('exams.questions.create');
Route::post('exams/questions', [ExamManagementController::class, 'storeQuestion'])->name('exams.questions.store');
// Rute yang mengandung variabel dinamis {id} ditaruh paling bawah
Route::get('exams/questions/{id}/edit', [ExamManagementController::class, 'editQuestion'])->name('exams.questions.edit');
Route::put('exams/questions/{id}', [ExamManagementController::class, 'updateQuestion'])->name('exams.questions.update');
Route::delete('exams/questions/{id}', [ExamManagementController::class, 'destroyQuestion'])->name('exams.questions.destroy');
Route::get('exams/questions/{id}', [ExamManagementController::class, 'showQuestion'])->name('exams.questions.show');
// ================================================================
// MODUL 2: MANAJEMEN SESI UJIAN (CBT EXAMS)
// ================================================================
Route::get('/exams', [ExamManagementController::class, 'index'])->name('exams.index');
Route::get('/exams/create', [ExamManagementController::class, 'create'])->name('exams.create');
Route::post('/exams', [ExamManagementController::class, 'store'])->name('exams.store');
// ----------------------------------------------------------------
// PERBAIKAN: Rute Export & Import Karyawan (Disesuaikan dengan Prefix Grup)
// ----------------------------------------------------------------
// ================================================================
// MODUL 3: EXPORT & IMPORT DATA (KARYAWAN & MASTER DATA)
// Resource diletakkan di bawah custom route agar tidak ditimpa
// ================================================================
Route::get('employees/export/excel', [EmployeeController::class, 'exportExcel'])->name('employees.export.excel');
Route::get('employees/export/pdf', [EmployeeController::class, 'exportPdf'])->name('employees.export.pdf');
Route::get('employees/import', [EmployeeController::class, 'importView'])->name('employees.import');
Route::get('employees/import/template', [EmployeeController::class, 'downloadTemplate'])->name('employees.import.template');
Route::post('employees/import/preview', [EmployeeController::class, 'importPreview'])->name('employees.import.preview');
Route::post('employees/import/process', [EmployeeController::class, 'importProcess'])->name('employees.import.process');
// Rute Export Master Data
Route::get('departments/export/excel', [DepartmentController::class, 'exportExcel'])->name('departments.export.excel');
Route::get('departments/export/pdf', [DepartmentController::class, 'exportPdf'])->name('departments.export.pdf');
Route::get('positions/export/excel', [PositionController::class, 'exportExcel'])->name('positions.export.excel');
Route::get('positions/export/pdf', [PositionController::class, 'exportPdf'])->name('positions.export.pdf');
// Master Data & Karyawan (Resources harus diletakkan di bawah rute custom export/import)
Route::resource('departments', DepartmentController::class);
Route::resource('positions', PositionController::class);
Route::resource('employees', EmployeeController::class);
Route::resource('subjects', SubjectController::class);
//Subject
Route::resource('subjects', App\Http\Controllers\Admin\SubjectController::class);
// ================================================================
// MODUL 4: MANAJEMEN DOKUMEN SOP
// ================================================================
Route::get('/sops/open/{id}', [DashboardController::class, 'openSopFile'])->name('sops.open');
Route::get('/sops', [DashboardController::class, 'sopIndex'])->name('sops.index');
});