feat(memo): tambah tombol download PDF dan disable checkbox untuk memo selesai

- Menambahkan field memo_penyelesaian_pdf_path ke tabel noc untuk menyimpan path file PDF
- Membuat migrasi baru untuk menambahkan field PDF path ke tabel noc
- Menambahkan field memo_penyelesaian_pdf_path ke model Noc dalam fillable array
- Memodifikasi fungsi generatePdf di MemoController untuk menyimpan path PDF ke database
- Menambahkan route baru memo.download-pdf untuk download file PDF memo penyelesaian
- Membuat method downloadPdf di MemoController dengan validasi file dan error handling
- Memodifikasi kolom select di datatables untuk disable checkbox jika sudah ada memo
- Menambahkan tooltip pada checkbox yang disabled untuk memberikan informasi kepada user
- Memodifikasi kolom actions untuk menampilkan tombol download PDF jika memo sudah ada
- Menampilkan informasi nomor memo dan tanggal memo di kolom actions
- Memodifikasi fungsi handleCheckboxChange untuk mengabaikan checkbox yang disabled
- Menambahkan styling untuk tombol download dengan icon dan warna yang sesuai
- Menambahkan logging untuk tracking aktivitas download PDF memo penyelesaian
- Menambahkan validasi keberadaan file di storage sebelum mengizinkan download
- Menggunakan Storage facade untuk operasi file yang lebih aman dan konsisten
This commit is contained in:
Daeng Deni Mardaeni
2025-07-17 13:47:53 +07:00
parent 57dece449c
commit 4459b70271
4 changed files with 77 additions and 13 deletions

View File

@@ -404,6 +404,9 @@ Route::middleware(['auth'])->group(function () {
Route::post('total-biaya-pj', [MemoController::class, 'getTotalBiayaPJ'])->name('memo.total-biaya-pj');
Route::post('preview', [MemoController::class, 'preview'])->name('memo.preview');
Route::post('generate-pdf', [MemoController::class, 'generatePdf'])->name('memo.generate-pdf');
// Route untuk download PDF memo penyelesaian
Route::get('/memo/download-pdf/{id}', [MemoController::class, 'downloadPdf'])
->name('memo.download-pdf');
});
Route::resource('memo', MemoController::class);