diff --git a/app/Services/DashboardService.php b/app/Services/DashboardService.php index eeefaab..2443207 100644 --- a/app/Services/DashboardService.php +++ b/app/Services/DashboardService.php @@ -3,7 +3,9 @@ namespace Modules\Lpj\Services; use Modules\Lpj\Models\Laporan; - +use Modules\Lpj\Models\Noc; +use Modules\Lpj\Models\Permohonan; + use Illuminate\Support\Facades\DB; class DashboardService { public function getDashboardData($start_date, $end_date) @@ -11,11 +13,13 @@ class DashboardService $countLpjInternal = $this->getTotalLpjInternal($start_date, $end_date); $countLpjExternal = $this->getTotalLpjEksternal($start_date, $end_date); $countResume = $this->getResumeCabang($start_date, $end_date); + $countPendapatan = $this->getPendapatanAppraisal($start_date, $end_date); return [ 'count_lpj_internal' => $countLpjInternal, 'count_lpj_eksternal' => $countLpjExternal, - 'count_resume' => $countResume + 'count_resume' => $countResume, + 'count_pendapatan' => $countPendapatan ]; } @@ -43,12 +47,16 @@ class DashboardService $totalLaporan = Laporan::whereBetween('created_at', [$start_date, $end_date]) ->count(); + $totalDebitur = Permohonan::whereBetween('created_at', [$start_date, $end_date]) + ->where('status', 'done') + ->distinct() + ->count('debiture_id'); $data[$month][$region] = [ 'total_laporan' => $totalLaporan, - 'total_debiture' => 20, + 'total_debiture' => $totalDebitur, ]; } } @@ -58,11 +66,37 @@ class DashboardService - public function getPendapatanAppraisal() - { - + public function getPendapatanAppraisal($start_date, $end_date) +{ + $months = $this->getMonthly(); + $data = []; + + foreach ($months as $index => $month) { + $monthNumber = $index + 1; + + if ($monthNumber > now()->month) { + // Bulan belum terjadi + $data[$month] = [ + 'total_jumlah' => 0, + 'total_akumulasi' => 0, + ]; + } else { + // Hitung jumlah nominal_bayar pada bulan ini + $totalJumlah = Noc::whereYear('tanggal_pembayaran', now()->year) + ->whereMonth('tanggal_pembayaran', $monthNumber) + ->sum('nominal_bayar'); + + + $data[$month] = [ + 'total_jumlah' => $totalJumlah, + 'total_akumulasi' => $totalJumlah, + ]; + } } + return $data; +} + public function getResumeCabang($start_date, $end_date) { $regions = $this->getRegion(); @@ -72,7 +106,12 @@ class DashboardService foreach ($status as $item) { $data[$item] = []; foreach ($regions as $region) { - $totalLaporan = Laporan::where('created_at', '>=', $start_date)->where('created_at', '<=', $end_date)->count(); + $totalLaporan = DB::table('laporan') + ->join('permohonan', 'laporan.permohonan_id', '=', 'permohonan.id') + ->where('permohonan.status', $item) + ->whereBetween('laporan.created_at', [$start_date, $end_date]) + ->count(); + $data[$item][$region] = [ 'count_report' => $totalLaporan, ]; @@ -95,9 +134,15 @@ class DashboardService ]; } else { $totalLaporan = Laporan::where('created_at', '>=', $start_date)->where('created_at', '<=', $end_date)->count(); + + $totalDebitur = Permohonan::whereBetween('created_at', [$start_date, $end_date]) + ->where('status', 'done') + ->distinct() + ->count('debiture_id'); + $data[$month] = [ 'total_laporan' => $totalLaporan, - 'total_debiture' => 20, + 'total_debiture' => $totalDebitur, ]; } } diff --git a/module.json b/module.json index 3b35f65..fc81e7f 100644 --- a/module.json +++ b/module.json @@ -129,7 +129,7 @@ ] }, { "title": "Laporan Biaya Lpj", - "path": "", + "path": "laporan-biaya", "icon": "ki-filled ki-filter-tablet text-lg text-primary", "classes": "", "attributes": [], @@ -179,6 +179,58 @@ ] } ] + },{ + "title": "Laporan Debitur", + "path": "laporan-debiture", + "icon": "ki-filled ki-filter-tablet text-lg text-primary", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "senior-officer" + ] + }, + { + "title": "Laporan User", + "path": "laporan-user", + "icon": "ki-filled ki-filter-tablet text-lg text-primary", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "senior-officer" + ] + }, + { + "title": "Laporan Monitoring so", + "path": "laporan-monitoring", + "icon": "ki-filled ki-filter-tablet text-lg text-primary", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "senior-officer" + ] + }, + { + "title": "Laporan SLA Penilai", + "path": "laporan-sla-penilai", + "icon": "ki-filled ki-filter-tablet text-lg text-primary", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "pemohon-ao", + "pemohon-eo", + "admin", + "DD Appraisal", + "EO Appraisal", + "senior-officer" + ] } ], "otorisator": [ diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php index 8fb0a68..5b71ae7 100644 --- a/resources/views/dashboard/index.blade.php +++ b/resources/views/dashboard/index.blade.php @@ -18,7 +18,9 @@ - + @@ -100,7 +102,45 @@
- + + + + + + + + + + @foreach ($dashboard['count_pendapatan'] as $month => $data) + + + + + + + + + + + @endforeach + + +
+ Bulan + + Jumlah + + Akumulasi +
+ {{ ucfirst($month) }} + + {{ $data['total_jumlah'] ?? '-' }} + + {{ $data['total_akumulasi'] ?? '-' }} +
@@ -249,121 +289,5 @@ } - @endsection diff --git a/resources/views/laporan-debiture/index.blade.php b/resources/views/laporan-debiture/index.blade.php index f6577c3..3b36763 100644 --- a/resources/views/laporan-debiture/index.blade.php +++ b/resources/views/laporan-debiture/index.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{-- {{ Breadcrumbs::render('laporan-hasil-penilaian-jaminan-internal-external') }} --}} + {{ Breadcrumbs::render('laporan-debiture') }} @endsection @section('content') diff --git a/resources/views/laporan-monitoring/index.blade.php b/resources/views/laporan-monitoring/index.blade.php index e1ebf08..95ad19e 100644 --- a/resources/views/laporan-monitoring/index.blade.php +++ b/resources/views/laporan-monitoring/index.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{-- {{ Breadcrumbs::render('laporan-hasil-penilaian-jaminan-internal-external') }} --}} + {{ Breadcrumbs::render('laporan-monitoring') }} @endsection @section('content') diff --git a/resources/views/laporan-monitoring/show.blade.php b/resources/views/laporan-monitoring/show.blade.php index fad82ae..ca836b7 100644 --- a/resources/views/laporan-monitoring/show.blade.php +++ b/resources/views/laporan-monitoring/show.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{-- {{ Breadcrumbs::render('laporan-hasil-penilaian-jaminan-internal-external') }} --}} + {{ Breadcrumbs::render(request()->route()->getName()) }} @endsection @section('content') diff --git a/resources/views/laporan-sla-penilai/index.blade.php b/resources/views/laporan-sla-penilai/index.blade.php index 09a9b90..1515a15 100644 --- a/resources/views/laporan-sla-penilai/index.blade.php +++ b/resources/views/laporan-sla-penilai/index.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{-- {{ Breadcrumbs::render('laporan-penilaian-jaminan') }} --}} + {{ Breadcrumbs::render('laporan-sla-penilai') }} @endsection @section('content') diff --git a/resources/views/laporan-user/index.blade.php b/resources/views/laporan-user/index.blade.php index a9a9771..5f2e629 100644 --- a/resources/views/laporan-user/index.blade.php +++ b/resources/views/laporan-user/index.blade.php @@ -1,7 +1,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{-- {{ Breadcrumbs::render('laporan-hasil-penilaian-jaminan-internal-external') }} --}} + {{ Breadcrumbs::render('laporan-user') }} @endsection @section('content') diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 57a0d01..cb3e4b0 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -761,5 +761,26 @@ Breadcrumbs::for('rekap-harian-so', function ($trail) { $trail->push('Rekap Harian'); }); + +Breadcrumbs::for('laporan-user', function ($trail) { + $trail->push('Laporan User Pemohonan', route('laporan-user.index')); +}); + +Breadcrumbs::for('laporan-monitoring', function ($trail) { + $trail->push('Laporan Monitoring', route('laporan-monitoring.index')); +}); + +Breadcrumbs::for('laporan-monitoring.show', function ($trail) { + $trail->parent('laporan-monitoring'); + $trail->push('Detail'); +}); + +Breadcrumbs::for('laporan-debiture', function ($trail) { + $trail->push('Laporan Debiture', route('laporan-debiture.index')); +}); + +Breadcrumbs::for('laporan-sla-penilai', function ($trail) { + $trail->push('Laporan SLA Penilai', route('laporan-sla-penilai.index')); +}); // add andy require __DIR__ . '/breadcrumbs_registrasi.php'; diff --git a/routes/web.php b/routes/web.php index 16b56c0..76e0df1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -46,6 +46,12 @@ 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\LaporanUserController; +use Modules\Lpj\Http\Controllers\LaporanSLAPenilaiController; + + // use Modules\Lpj\Http\Controllers\ActivityController; @@ -725,13 +731,40 @@ Route::middleware(['auth'])->group(function () { Route::get('/', [LaporanHasilPenilaianJaminanInternalExternalController::class, 'index'])->name('index'); }); + // rekap harian so Route::resource('rekap-harian-so', RekapHarianSoController::class); + // laporan biaya Route::prefix('laporan-biaya')->name('laporan-biaya.')->group(function () { Route::get('internal', [LaporanBiayaInternalExternalController::class, 'showLaporanBiayaInternal'])->name('internal.index'); Route::get('external', [LaporanBiayaInternalExternalController::class, 'showLaporanBiayaExternal'])->name('external.index'); -}); + }); + // laporan user + Route::prefix('laporan-user')->name('laporan-user.')->group(function () { + Route::get('/', [LaporanUserController::class, 'index'])->name('index'); + Route::get('api/user-pemohon', [LaporanUserController::class, 'searchUserPemohon'])->name('api.user-pemohon'); + Route::get('datatables', [LaporanUserController::class, 'dataTableForUserPemohon'])->name('datatables'); + }); + + // laporan monitoring + Route::prefix('laporan-monitoring')->name('laporan-monitoring.')->group(function () { + Route::get('/', [LaporanMonitoringSoController::class, 'index'])->name('index'); + Route::get('/{id}/detail', [LaporanMonitoringSoController::class, 'show'])->name('show'); + Route::get('datatables/{id}', [LaporanMonitoringSoController::class, 'dataForDatatablePenilai'])->name('datatables'); + }); + + // laporan debiture + Route::prefix('laporan-debiture')->name('laporan-debiture.')->group(function () { + Route::get('/', [LaporanDebitureController::class, 'index'])->name('index'); + Route::get('datatables', [LaporanDebitureController::class, 'dataTableForDebiture'])->name('datatables'); + }); + + // laporan sla + Route::prefix('laporan-sla-penilai')->name('laporan-sla-penilai.')->group(function () { + Route::get('/', [LaporanSLAPenilaiController::class, 'index'])->name('index'); + Route::get('datatables', [LaporanSLAPenilaiController::class, 'dataForDatatableSLaPenilai'])->name('datatables'); + }); });