diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php
new file mode 100644
index 0000000..9d6e39a
--- /dev/null
+++ b/app/Http/Controllers/DashboardController.php
@@ -0,0 +1,36 @@
+dashboardService = $dashboardService;
+ }
+ /**
+ * Display a listing of the resource.
+ */
+ public function index(Request $request)
+ {
+ // nilai default
+ $start_date = $request->input('start_date', now()->startOfYear()->format('Y-m-d'));
+ $end_date = $request->input('end_date', now()->format('Y-m-d'));
+
+ $validate = $request->validate([
+ 'start_date' => 'nullable|date_format:Y-m-d',
+ 'end_date' => 'nullable|date_format:Y-m-d',
+ ]);
+
+ $dashboard = $this->dashboardService->getDashboardData($start_date, $end_date);
+
+ // dd($dashboard);
+ return view('lpj::dashboard.index', compact('dashboard'));
+ }
+
+}
diff --git a/app/Http/Controllers/RekapHarianSoController.php b/app/Http/Controllers/RekapHarianSoController.php
new file mode 100644
index 0000000..8d1a7ed
--- /dev/null
+++ b/app/Http/Controllers/RekapHarianSoController.php
@@ -0,0 +1,67 @@
+getTotalLpjInternal($start_date, $end_date);
+ $countLpjExternal = $this->getTotalLpjEksternal($start_date, $end_date);
+ $countResume = $this->getResumeCabang($start_date, $end_date);
+
+ return [
+ 'count_lpj_internal' => $countLpjInternal,
+ 'count_lpj_eksternal' => $countLpjExternal,
+ 'count_resume' => $countResume
+ ];
+
+ }
+
+
+
+ public function getTotalLpjInternal($start_date, $end_date)
+ {
+ $months = $this->getMonthly();
+ $regions = $this->getRegion();
+ $data = [];
+
+ foreach ($months as $index => $month) {
+ $monthNumber = $index + 1;
+ $data[$month] = [];
+
+ foreach ($regions as $region) {
+ if ($monthNumber > now()->month) {
+
+ $data[$month][$region] = [
+ 'total_laporan' => 0,
+ 'total_debiture' => 0,
+ ];
+ } else {
+
+ $totalLaporan = Laporan::whereBetween('created_at', [$start_date, $end_date])
+ ->count();
+
+
+
+ $data[$month][$region] = [
+ 'total_laporan' => $totalLaporan,
+ 'total_debiture' => 20,
+ ];
+ }
+ }
+ }
+ return $data;
+ }
+
+
+
+ public function getPendapatanAppraisal()
+ {
+
+ }
+
+ public function getResumeCabang($start_date, $end_date)
+ {
+ $regions = $this->getRegion();
+ $status = ['batal', 'done'];
+ $data = [];
+
+ foreach ($status as $item) {
+ $data[$item] = [];
+ foreach ($regions as $region) {
+ $totalLaporan = Laporan::where('created_at', '>=', $start_date)->where('created_at', '<=', $end_date)->count();
+ $data[$item][$region] = [
+ 'count_report' => $totalLaporan,
+ ];
+ }
+ }
+
+ return $data;
+
+ }
+ public function getTotalLpjEksternal($start_date, $end_date)
+ {
+ $months = $this->getMonthly();
+ $data = [];
+ foreach ($months as $index => $month) {
+ $monthNumber = $index + 1;
+ if ($monthNumber > now()->month) {
+ $data[$month] = [
+ 'total_laporan' => 0,
+ 'total_debiture' => 0,
+ ];
+ } else {
+ $totalLaporan = Laporan::where('created_at', '>=', $start_date)->where('created_at', '<=', $end_date)->count();
+ $data[$month] = [
+ 'total_laporan' => $totalLaporan,
+ 'total_debiture' => 20,
+ ];
+ }
+ }
+ return $data;
+
+
+ }
+
+ private function getMonthly()
+ {
+ return [
+ 'januari',
+ 'februari',
+ 'maret',
+ 'april',
+ 'mei',
+ 'juni',
+ 'juli',
+ 'agustus',
+ 'september',
+ 'oktober',
+ 'november',
+ 'desember',
+ ];
+ }
+
+ private function getRegion()
+ {
+ return [
+ 'jabodetabek',
+ 'non-jabodetabek',
+ ];
+ }
+}
diff --git a/module.json b/module.json
index bf9626d..221879c 100644
--- a/module.json
+++ b/module.json
@@ -115,6 +115,18 @@
"EO Appraisal",
"senior-officer"
]
+ },
+ {
+ "title": "Rekap Harian So",
+ "path": "rekap-harian-so",
+ "icon": "ki-filled ki-filter-tablet text-lg text-primary",
+ "classes": "",
+ "attributes": [],
+ "permission": "",
+ "roles": [
+ "administrator",
+ "senior-officer"
+ ]
}
],
"otorisator": [
diff --git a/resources/views/dashboard/index.blade.php b/resources/views/dashboard/index.blade.php
new file mode 100644
index 0000000..8fb0a68
--- /dev/null
+++ b/resources/views/dashboard/index.blade.php
@@ -0,0 +1,369 @@
+@extends('layouts.main')
+
+@section('content')
+
+
+
+
+
+ Dashboard
+
+
+
+ Selamat datang, {{ auth()->user()->name }}
+
+
+
+
+
+
+
+
+ @foreach ($dashboard['count_resume'] as $status => $count)
+ @php
+
+ $gradientFrom = $status === 'batal' ? 'from-red-50' : 'from-amber-50';
+ $gradientTo = $status === 'batal' ? 'to-red-100' : 'to-amber-100';
+ $borderColor = $status === 'batal' ? 'border-red-200' : 'border-amber-200';
+ $iconBg = $status === 'batal' ? 'bg-red-500' : 'bg-amber-500';
+ $iconColor = $status === 'batal' ? 'text-red-500' : 'text-amber-500';
+ $textColor = $status === 'batal' ? 'text-red-800' : 'text-amber-800';
+ $cardTitle = $status === 'batal' ? 'Batal dari Cabang' : 'Menunggu Keputusan Cabang';
+ @endphp
+
+
+
+
+
+
+
+
+
Jabodetabek
+
+ {{ $count['jabodetabek']['count_report'] ?? 0 }}
+
+
+
+
+
+
+
+
+
+
+
Luar Jabodetabek
+
+ {{ $count['non-jabodetabek']['count_report'] ?? 0 }}
+
+
+
+
+
+
+
+
+
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ Bulan
+ |
+
+ Jabodetabek
+ |
+
+ Luar Jabodetabek
+ |
+
+
+ |
+ Laporan
+ |
+
+ Debitur
+ |
+
+ Laporan
+ |
+
+ Debitur
+ |
+
+
+
+ @foreach ($dashboard['count_lpj_internal'] as $month => $regions)
+
+ |
+ {{ ucfirst($month) }}
+ |
+
+ {{ $regions['jabodetabek']['total_laporan'] ?? '-' }}
+ |
+
+ {{ $regions['jabodetabek']['total_debiture'] ?? '-' }}
+ |
+
+ {{ $regions['non-jabodetabek']['total_laporan'] ?? '-' }}
+ |
+
+ {{ $regions['non-jabodetabek']['total_debiture'] ?? '-' }}
+ |
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ Bulan
+ |
+
+ Laporan
+ |
+
+ Debitur
+ |
+
+
+
+ @foreach ($dashboard['count_lpj_eksternal'] as $month => $data)
+
+
+ |
+ {{ ucfirst($month) }}
+ |
+
+
+
+ {{ $data['total_laporan'] ?? '-' }}
+ |
+
+
+
+ {{ $data['total_debiture'] ?? '-' }}
+ |
+
+ @endforeach
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@endsection
diff --git a/resources/views/rekap-harian-so/index.blade.php b/resources/views/rekap-harian-so/index.blade.php
new file mode 100644
index 0000000..85f0930
--- /dev/null
+++ b/resources/views/rekap-harian-so/index.blade.php
@@ -0,0 +1,58 @@
+@extends('layouts.main')
+
+@section('breadcrumbs')
+ {{ Breadcrumbs::render('rekap-harian-so') }}
+@endsection
+@section('content')
+
+@endsection
diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php
index 2e9f08c..00b40c4 100644
--- a/routes/breadcrumbs.php
+++ b/routes/breadcrumbs.php
@@ -572,7 +572,7 @@ Breadcrumbs::for('otorisator.show', function (BreadcrumbTrail $trail, $id, $type
Breadcrumbs::for('laporan', function (BreadcrumbTrail $trail) {
- $trail->push('Laporan','');
+ $trail->push('Laporan', '');
});
Breadcrumbs::for('laporan.sederhana.index', function (BreadcrumbTrail $trail) {
@@ -678,10 +678,10 @@ Breadcrumbs::for('noc.edit', function (BreadcrumbTrail $trail) {
$trail->push('Proses NOC');
});
- Breadcrumbs::for('noc.penyelesaian', function (BreadcrumbTrail $trail) {
- $trail->parent('noc');
- $trail->push('Proses Memo Penyelesaian NOC');
- });
+Breadcrumbs::for('noc.penyelesaian', function (BreadcrumbTrail $trail) {
+ $trail->parent('noc');
+ $trail->push('Proses Memo Penyelesaian NOC');
+});
Breadcrumbs::for('laporan-external', function (BreadcrumbTrail $trail) {
$trail->push('Laporan External', route('laporan-external.index'));
@@ -724,11 +724,11 @@ Breadcrumbs::for('laporan-admin-kredit', function ($trail) {
$trail->push('Laporan Admin Kredit', route('laporan-admin-kredit.index'));
});
- // Laporan Admin Kredit Edit
- Breadcrumbs::for('laporan-admin-kredit-edit', function (BreadcrumbTrail $trail, $laporanAdminKredit) {
- $trail->parent('laporan-admin-kredit');
- $trail->push('Edit', route('laporan-admin-kredit.edit', $laporanAdminKredit->id));
- });
+// Laporan Admin Kredit Edit
+Breadcrumbs::for('laporan-admin-kredit-edit', function (BreadcrumbTrail $trail, $laporanAdminKredit) {
+ $trail->parent('laporan-admin-kredit');
+ $trail->push('Edit', route('laporan-admin-kredit.edit', $laporanAdminKredit->id));
+});
Breadcrumbs::for('bank-data', function ($trail) {
$trail->push('Bank Data', route('bank-data.index'));
@@ -739,20 +739,24 @@ Breadcrumbs::for('laporan-penilai-jaminan', function ($trail) {
$trail->push('Laporan Penilai Jaminan', route('laporan-penilai-jaminan.index'));
});
- Breadcrumbs::for('laporan-permohonan', function ($trail) {
- $trail->parent('laporan');
- $trail->push('Laporan Permohnan', route('laporan-permohonan.index'));
- });
+Breadcrumbs::for('laporan-permohonan', function ($trail) {
+ $trail->parent('laporan');
+ $trail->push('Laporan Permohnan', route('laporan-permohonan.index'));
+});
- Breadcrumbs::for('laporan-penilaian-jaminan', function ($trail) {
- $trail->parent('laporan');
- $trail->push('Laporan Penilaian Jaminan', route('laporan-penilaian-jaminan.index'));
- });
+Breadcrumbs::for('laporan-penilaian-jaminan', function ($trail) {
+ $trail->parent('laporan');
+ $trail->push('Laporan Penilaian Jaminan', route('laporan-penilaian-jaminan.index'));
+});
- Breadcrumbs::for('laporan-hasil-penilaian-jaminan-internal-external', function ($trail) {
- $trail->parent('laporan');
- $trail->push('Laporan Hasil Penilaian Jaminan Internal External', route('laporan-hasil-penilaian-jaminan-internal-external.index'));
- });
+Breadcrumbs::for('laporan-hasil-penilaian-jaminan-internal-external', function ($trail) {
+ $trail->parent('laporan');
+ $trail->push('Laporan Hasil Penilaian Jaminan Internal External', route('laporan-hasil-penilaian-jaminan-internal-external.index'));
+});
+
+Breadcrumbs::for('rekap-harian-so', function ($trail) {
+ $trail->push('Rekap Harian');
+});
// add andy
require __DIR__ . '/breadcrumbs_registrasi.php';
diff --git a/routes/web.php b/routes/web.php
index d04fe9a..4dfbe61 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -22,11 +22,11 @@ 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\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;
@@ -44,6 +44,7 @@ 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\ActivityController;
@@ -654,8 +655,8 @@ Route::middleware(['auth'])->group(function () {
Route::get('noc/datatables', [NocController::class, 'dataForDatatables'])
->name('noc.datatables');
- Route::get('noc/penyelesaian',[NocController::class, 'show'])->name('noc.penyelesaian');
- Route::post('noc/penyelesaian',[NocController::class, 'penyelesaian'])->name('noc.store.penyelesaian');
+ Route::get('noc/penyelesaian', [NocController::class, 'show'])->name('noc.penyelesaian');
+ Route::post('noc/penyelesaian', [NocController::class, 'penyelesaian'])->name('noc.store.penyelesaian');
Route::resource('noc', NocController::class);
@@ -680,6 +681,7 @@ Route::middleware(['auth'])->group(function () {
Route::put('{id}', [LaporanAdminKreditController::class,'update'])->name('update');
});
+
Route::name('bank-data.')->prefix('bank-data')->group(function () {
Route::get('datatables', [BankDataController::class, 'dataForDatatables'])->name('datatables');
});
@@ -692,7 +694,7 @@ Route::middleware(['auth'])->group(function () {
Route::get('export', [LaporanPenilaiJaminanController::class, 'export'])->name('export');
});
- Route::prefix('laporan-permohonan')->name('laporan-permohonan.')->group(function() {
+ Route::prefix('laporan-permohonan')->name('laporan-permohonan.')->group(function () {
Route::get('datatables', [LaporanPermohonanController::class, 'dataForDatatables'])->name('data');
Route::get('export', [LaporanPermohonanController::class, 'export'])->name('export');
Route::get('/', [LaporanPermohonanController::class, 'index'])->name('index');
@@ -705,18 +707,19 @@ Route::middleware(['auth'])->group(function () {
Route::get('/export', [LaporanPembatalanController::class, 'export'])->name('export');
});
- Route::prefix('laporan-penilaian-jaminan')->name('laporan-penilaian-jaminan.')->group(function() {
+ Route::prefix('laporan-penilaian-jaminan')->name('laporan-penilaian-jaminan.')->group(function () {
Route::get('datatables', [LaporanPenilaianJaminanController::class, 'dataForDatatables'])->name('data');
Route::get('export', [LaporanPenilaianJaminanController::class, 'export'])->name('export');
Route::get('/', [LaporanPenilaianJaminanController::class, 'index'])->name('index');
});
- Route::prefix('laporan-hasil-penilaian-jaminan-internal-external')->name('laporan-hasil-penilaian-jaminan-internal-external.')->group(function() {
+ Route::prefix('laporan-hasil-penilaian-jaminan-internal-external')->name('laporan-hasil-penilaian-jaminan-internal-external.')->group(function () {
Route::get('datatables', [LaporanHasilPenilaianJaminanInternalExternalController::class, 'dataForDatatables'])->name('data');
Route::get('export', [LaporanHasilPenilaianJaminanInternalExternalController::class, 'export'])->name('export');
Route::get('/', [LaporanHasilPenilaianJaminanInternalExternalController::class, 'index'])->name('index');
});
+ Route::resource('rekap-harian-so', RekapHarianSoController::class);
});
require __DIR__ . '/registrasi.php';