feat(bucok)!: tambah modul Bucok end-to-end + impor updateOrCreate

- Tambah routing, breadcrumbs, menu, dan views (index + detail)
- Controller: index/show, datatables (filter multi-kolom, sorting, pagination), impor Excel (transaksi + logging)
- Import: updateOrCreate by nomor_tiket, normalisasi tanggal & numerik, statistik impor
- Migrasi: semua kolom bisnis → string untuk konsistensi input Excel; nomor_tiket unique + index
- UX: DataTable dengan filter (tahun, bulan, cost center, status), tombol import, detail tiket

BREAKING CHANGE:
- Semua kolom bisnis kini bertipe string → perlu sesuaikan casts di model Bucok & filter tanggal/numerik di controller
This commit is contained in:
Daeng Deni Mardaeni
2025-08-19 11:30:19 +07:00
parent 19fb39b02f
commit 32baffe636
9 changed files with 1381 additions and 45 deletions

View File

@@ -806,7 +806,15 @@ Breadcrumbs::for('memo.preview', function (BreadcrumbTrail $trail) {
$trail->push('Preview', route('memo.index'));
});
// Breadcrumb untuk Bucok
Breadcrumbs::for('bucok', function (BreadcrumbTrail $trail) {
$trail->push('Data Bucok', route('bucok.index'));
});
Breadcrumbs::for('bucok.show', function (BreadcrumbTrail $trail, $bucok) {
$trail->parent('bucok');
$trail->push('Detail Bucok #' . $bucok->nomor_tiket);
});
// add andy
require __DIR__ . '/breadcrumbs_registrasi.php';

View File

@@ -1,58 +1,59 @@
<?php
use Illuminate\Support\Facades\Route;
use Modules\Lpj\Http\Controllers\ActivityController;
use Modules\Lpj\Http\Controllers\ArahMataAnginController;
use Modules\Lpj\Http\Controllers\BankDataController;
use Modules\Lpj\Http\Controllers\CustomFieldController;
use Modules\Lpj\Http\Controllers\DebitureController;
use Modules\Lpj\Http\Controllers\DokumenJaminanController;
use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController;
use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
use Modules\Lpj\Http\Controllers\IjinUsahaController;
use Modules\Lpj\Http\Controllers\JenisDokumenController;
use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController;
use Modules\Lpj\Http\Controllers\JenisJaminanController;
use Modules\Lpj\Http\Controllers\JenisLampiranController;
use Modules\Lpj\Http\Controllers\JenisLaporanController;
use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController;
use Modules\Lpj\Http\Controllers\JenisPenilaianController;
use Modules\Lpj\Http\Controllers\KJPPController;
use Modules\Lpj\Http\Controllers\LampiranDokumenController;
use Modules\Lpj\Http\Controllers\LaporanAdminKreditController;
use Modules\Lpj\Http\Controllers\LaporanController;
use Modules\Lpj\Http\Controllers\LaporanExternalController;
use Modules\Lpj\Http\Controllers\LaporanHasilPenilaianJaminanInternalExternalController;
use Modules\Lpj\Http\Controllers\LaporanPembatalanController;
use Modules\Lpj\Http\Controllers\LaporanPenilaianJaminanController;
use Modules\Lpj\Http\Controllers\LaporanPermohonanController;
use Modules\Lpj\Http\Controllers\NilaiPlafondController;
use Modules\Lpj\Http\Controllers\NocController;
use Modules\Lpj\Http\Controllers\PembatalanController;
use Modules\Lpj\Http\Controllers\PemilikJaminanController;
use Modules\Lpj\Http\Controllers\PenilaianController;
use Modules\Lpj\Http\Controllers\PenilaiController;
use Modules\Lpj\Http\Controllers\PermohonanController;
use Modules\Lpj\Http\Controllers\PersetujuanPenawaranController;
use Modules\Lpj\Http\Controllers\SLAController;
use Modules\Lpj\Http\Controllers\KJPPController;
use Modules\Lpj\Http\Controllers\MemoController;
use Modules\Lpj\Http\Controllers\BucokController;
use Modules\Lpj\Http\Controllers\TeamsController;
use Modules\Lpj\Http\Controllers\RegionController;
use Modules\Lpj\Http\Controllers\ResumeController;
use Modules\Lpj\Http\Controllers\SLAController;
use Modules\Lpj\Http\Controllers\StatusPermohonanController;
use Modules\Lpj\Http\Controllers\SurveyorController;
use Modules\Lpj\Http\Controllers\TeamsController;
use Modules\Lpj\Http\Controllers\TenderController;
use Modules\Lpj\Http\Controllers\TujuanPenilaianController;
use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController;
use Modules\Lpj\Http\Controllers\LaporanPenilaiJaminanController;
use Modules\Lpj\Http\Controllers\RekapHarianSoController;
use Modules\Lpj\Http\Controllers\LaporanBiayaInternalExternalController;
use Modules\Lpj\Http\Controllers\LaporanMonitoringSoController;
use Modules\Lpj\Http\Controllers\LaporanDebitureController;
use Modules\Lpj\Http\Controllers\LaporanController;
use Modules\Lpj\Http\Controllers\PenilaiController;
use Modules\Lpj\Http\Controllers\ActivityController;
use Modules\Lpj\Http\Controllers\BankDataController;
use Modules\Lpj\Http\Controllers\DebitureController;
use Modules\Lpj\Http\Controllers\SurveyorController;
use Modules\Lpj\Http\Controllers\IjinUsahaController;
use Modules\Lpj\Http\Controllers\PenilaianController;
use Modules\Lpj\Http\Controllers\PembatalanController;
use Modules\Lpj\Http\Controllers\PermohonanController;
use Modules\Lpj\Http\Controllers\CustomFieldController;
use Modules\Lpj\Http\Controllers\LaporanUserController;
use Modules\Lpj\Http\Controllers\LaporanSLAPenilaiController;
use Modules\Lpj\Http\Controllers\JenisDokumenController;
use Modules\Lpj\Http\Controllers\JenisJaminanController;
use Modules\Lpj\Http\Controllers\JenisLaporanController;
use Modules\Lpj\Http\Controllers\NilaiPlafondController;
use Modules\Lpj\Http\Controllers\ArahMataAnginController;
use Modules\Lpj\Http\Controllers\DaftarPustakaController;
use Modules\Lpj\Http\Controllers\JenisLampiranController;
use Modules\Lpj\Http\Controllers\RekapHarianSoController;
use Modules\Lpj\Http\Controllers\DokumenJaminanController;
use Modules\Lpj\Http\Controllers\JenisPenilaianController;
use Modules\Lpj\Http\Controllers\PemilikJaminanController;
use Modules\Lpj\Http\Controllers\LampiranDokumenController;
use Modules\Lpj\Http\Controllers\LaporanDebitureController;
use Modules\Lpj\Http\Controllers\LaporanExternalController;
use Modules\Lpj\Http\Controllers\TujuanPenilaianController;
use Modules\Lpj\Http\Controllers\StatusPermohonanController;
use Modules\Lpj\Http\Controllers\LaporanPembatalanController;
use Modules\Lpj\Http\Controllers\LaporanPermohonanController;
use Modules\Lpj\Http\Controllers\LaporanSLAPenilaiController;
use Modules\Lpj\Http\Controllers\LaporanAdminKreditController;
use Modules\Lpj\Http\Controllers\LaporanMonitoringSoController;
use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController;
use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController;
use Modules\Lpj\Http\Controllers\PersetujuanPenawaranController;
use Modules\Lpj\Http\Controllers\CategoryDaftarPustakaController;
use Modules\Lpj\Http\Controllers\MemoController;
use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController;
use Modules\Lpj\Http\Controllers\LaporanPenilaiJaminanController;
use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController;
use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController;
use Modules\Lpj\Http\Controllers\LaporanPenilaianJaminanController;
use Modules\Lpj\Http\Controllers\LaporanBiayaInternalExternalController;
use Modules\Lpj\Http\Controllers\LaporanHasilPenilaianJaminanInternalExternalController;
@@ -792,6 +793,13 @@ Route::middleware(['auth'])->group(function () {
Route::resource('category-daftar-pustaka', CategoryDaftarPustakaController::class);
// Route untuk Bucok
Route::prefix('bucok')->name('bucok.')->group(function () {
Route::get('/', [BucokController::class, 'index'])->name('index');
Route::get('/datatables', [BucokController::class, 'dataForDatatables'])->name('datatables');
Route::get('/{id}', [BucokController::class, 'show'])->name('show');
Route::post('/import', [BucokController::class, 'import'])->name('import');
});
});
require __DIR__ . '/registrasi.php';