From d28c0bcab306e784f0b24fbecb62be436501cfb4 Mon Sep 17 00:00:00 2001 From: daffarahman11 Date: Mon, 21 Apr 2025 01:15:48 +0700 Subject: [PATCH] Upadate detailcuras finish, kurang tampilan --- app/Http/Controllers/CurasController.php | 48 ++++++++++++++++--- .../Controllers/DetailCuranmorController.php | 10 ++++ .../Controllers/DetailCurasController.php | 16 +++++++ .../Admin/dashboardDetailCuras.blade.php | 37 +++++++------- .../Admin/dashboardTambahCuras.blade.php | 17 +------ resources/views/{ => Admin}/welcome.blade.php | 0 routes/web.php | 8 ++-- 7 files changed, 91 insertions(+), 45 deletions(-) create mode 100644 app/Http/Controllers/DetailCuranmorController.php create mode 100644 app/Http/Controllers/DetailCurasController.php rename resources/views/{ => Admin}/welcome.blade.php (100%) diff --git a/app/Http/Controllers/CurasController.php b/app/Http/Controllers/CurasController.php index 4fa6121..d809395 100644 --- a/app/Http/Controllers/CurasController.php +++ b/app/Http/Controllers/CurasController.php @@ -5,6 +5,7 @@ use App\Models\Curas; use App\Models\Klaster; use App\Models\Kecamatan; +use App\Models\Detail_Curas; use Illuminate\Http\Request; use App\Services\KMeansService; use Illuminate\Validation\Rule; @@ -36,15 +37,48 @@ public function create() public function store(Request $request) { try{ - $validateData = $request->validate([ - 'kecamatan_id' =>'required|max:255|exists:kecamatans,id|unique:curas,kecamatan_id', - 'jumlah_curas' =>'required', - 'klaster_id' =>'required|max:255|exists:klasters,id', + $request->validate([ + 'kecamatan_id' => 'required|exists:kecamatans,id', + 'jumlah_curas' => 'required|numeric', ]); - - Curas::create($validateData); - return redirect('/dashboard/curas')->with('succes', 'Berhasil Menambahkan Data Curas Baru'); + + $kecamatan_id = $request->kecamatan_id; + $tambahan_curas = $request->jumlah_curas; + + // 2. Ambil data curas berdasarkan kecamatan_id + $curas = Curas::where('kecamatan_id', $kecamatan_id)->first(); + + if ($curas) { + // 3. Update jumlah_curas dengan nilai yang baru + $curas->jumlah_curas += $tambahan_curas; + $curas->save(); + + $curas_id = $curas->id; + } else { + // Jika belum ada, bisa insert baru dulu (optional, sesuai kebutuhan) + $curas = Curas::create([ + 'kecamatan_id' => $kecamatan_id, + 'jumlah_curas' => $tambahan_curas, + ]); + $curas_id = $curas->id; + } + + // 4. Tambah data ke tabel detail_curas + Detail_Curas::create([ + 'curas_id' => $curas_id, + 'tambahan_curas' => $tambahan_curas, + 'detailCuras_kecamatan_Id' => $kecamatan_id, + + ]); + + $service = new KMeansService(); + $hasil = $service->hitungKMeansCuras(); + + // simpan hasil ke file json + file_put_contents(storage_path('app/public/hasil_kmeans_curas.json'), json_encode($hasil)); + + return redirect('/dashboard/curas')->with('succes', 'Data curas berhasil ditambahkan.'); }catch (\Exception $e){ return redirect('/dashboard/curas')->with('error', 'Gagal Menambahkan Data Curas Baru'); } diff --git a/app/Http/Controllers/DetailCuranmorController.php b/app/Http/Controllers/DetailCuranmorController.php new file mode 100644 index 0000000..378439b --- /dev/null +++ b/app/Http/Controllers/DetailCuranmorController.php @@ -0,0 +1,10 @@ +get(); + + return view('admin.dashboardDetailCuras', compact('detail_curas')); +} +} diff --git a/resources/views/Admin/dashboardDetailCuras.blade.php b/resources/views/Admin/dashboardDetailCuras.blade.php index 5c724d5..e06e06c 100644 --- a/resources/views/Admin/dashboardDetailCuras.blade.php +++ b/resources/views/Admin/dashboardDetailCuras.blade.php @@ -27,32 +27,28 @@ - - - + + - {{-- @foreach ( $curases as $curas ) --}} + @php + $grouped = $detail_curas->groupBy(function($item) { + return $item->created_at->format('Y-m-d'); + }); + @endphp + @foreach($grouped as $tanggal => $items) + @foreach($items as $index => $detail) - - - - - + @if ($index == 0) + + @endif + + + + @endforeach + @endforeach - {{-- @endforeach --}}
-
- - -
-
No TanggalTambahan Kasus Curas Nama KecamatanTambahan CurasJumlah Curas Hapus Kasus
-
- - -
-
{{ \Carbon\Carbon::parse($tanggal)->translatedFormat('d F Y') }}{{ $detail->detailCuras_Kecamatan->nama_kecamatan }}{{ $detail->tambahan_curas }}{{ $detail->detailCuras_Curas->jumlah_curas }}
@@ -64,8 +60,9 @@
diff --git a/resources/views/Admin/dashboardTambahCuras.blade.php b/resources/views/Admin/dashboardTambahCuras.blade.php index 2775b32..c4cf6db 100644 --- a/resources/views/Admin/dashboardTambahCuras.blade.php +++ b/resources/views/Admin/dashboardTambahCuras.blade.php @@ -6,14 +6,14 @@
-

Tambah Data Kasus Pencurian Dengan Kekerasan ( CURAS )

+

Tambah Data Kasus CURAS Hari Ini

@csrf
-
+
@@ -31,18 +30,6 @@
-
-
- - -
-
diff --git a/resources/views/welcome.blade.php b/resources/views/Admin/welcome.blade.php similarity index 100% rename from resources/views/welcome.blade.php rename to resources/views/Admin/welcome.blade.php diff --git a/routes/web.php b/routes/web.php index 1843a6d..670fdda 100644 --- a/routes/web.php +++ b/routes/web.php @@ -8,17 +8,17 @@ use App\Http\Controllers\CuranmorController; use App\Http\Controllers\dashboardController; use App\Http\Controllers\KecamatanController; +use App\Http\Controllers\DetailCurasController; use App\Http\Controllers\hasilIterasiController; Route::get('/', function () { return view('landing'); }); -Route::get('/detail', function () { - return view('admin.dashboardDetailCuras'); -}); +Route::get('/detail', [DetailCurasController::class, 'index'])->name('login'); + Route::get('/blank', function () { return view('admin.dashboardBlank'); }); @@ -38,6 +38,8 @@ Route::resource('/dashboard/curas', CurasController::class)->middleware('auth'); Route::resource('/dashboard/curanmor', CuranmorController::class) ->parameters(['data-curanmor' => 'curanmor'])->middleware('auth'); Route::resource('/dashboard/klaster', KlasterController::class) ->parameters(['data-klaster' => 'klaster'])->middleware('auth'); + Route::get('/dashboard/iterasiCuras', [hasilIterasiController::class, 'iterasiCuras'])->middleware('auth'); + Route::get('/kmeans-curas', [KmeansController::class, 'KMeansCuras']); Route::get('/kmeans-curanmor', [KmeansController::class, 'KMeansCuranmor']);