feat(sync-logs): tambahkan fitur download file CSV

- Tambahkan tombol download file di modal detail sinkronisasi.
- Implementasikan pengecekan dan mekanisme download file di `SyncLogsController`.
- Tambahkan route baru untuk mendukung proses download file.
- Perbarui tampilan dan logika modal untuk mendukung fitur download.
- Pastikan validasi file sebelum proses download dan berikan pesan error jika file tidak ditemukan.

Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
Daeng Deni Mardaeni
2025-05-10 15:36:16 +07:00
parent e1e52f78fb
commit e1a0167c78
3 changed files with 54 additions and 5 deletions

View File

@@ -123,4 +123,32 @@ class SyncLogsController extends Controller
return response()->json($syncLog, 200, ['Content-Type' => 'application/json'], JSON_PRETTY_PRINT);
}
/**
* Download file
*/
public function downloadFile($id)
{
$log = KartuSyncLog::findOrFail($id);
// Periksa apakah file sudah dibuat
if (!$log->is_csv || !$log->file_name) {
return redirect()->back()->with('error', 'File CSV belum dibuat');
}
// Periksa apakah file ada di lokasi yang ditunjukkan
if ($log->file_path && File::exists($log->file_path)) {
return response()->download($log->file_path, $log->file_name);
}
// Jika tidak ada di path spesifik, coba cari di direktori umum
$path = storage_path('app/biaya_kartu/' . $log->file_name);
if (File::exists($path)) {
return response()->download($path, $log->file_name);
}
// Jika masih tidak ditemukan, beri pesan error
return redirect()->back()->with('error', 'File tidak ditemukan di server');
}
}