From 528b294d2c3857684b58fb3a80221eaa0280a631 Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 13:09:28 +0700 Subject: [PATCH 1/8] validate date --- app/Http/Controllers/Api/ProfileController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/ProfileController.php b/app/Http/Controllers/Api/ProfileController.php index f183ed5..73d8ddb 100644 --- a/app/Http/Controllers/Api/ProfileController.php +++ b/app/Http/Controllers/Api/ProfileController.php @@ -240,7 +240,7 @@ class ProfileController extends Controller } $validated = $request->validate([ - 'email_verified_at' => ['nullable', 'datetime'], + 'email_verified_at' => ['nullable', 'date'], ]); $profile = Profile::findOrFail($id); From d5407b3c293119584598a363a542e4ec0d4a3ebc Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 16:29:50 +0700 Subject: [PATCH 2/8] fasilitator --- app/Http/Controllers/Api/PanenController.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Api/PanenController.php b/app/Http/Controllers/Api/PanenController.php index 0a08a43..db23cee 100644 --- a/app/Http/Controllers/Api/PanenController.php +++ b/app/Http/Controllers/Api/PanenController.php @@ -14,7 +14,7 @@ class PanenController extends Controller { public function index(): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); $user = Auth::user(); $listPanen = Panen::where('farmer_id', $user->profile->id)->get(); @@ -24,7 +24,7 @@ class PanenController extends Controller public function store(Request $request): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); $validated = $request->validate([ 'land_id' => ['required', 'integer'], @@ -51,14 +51,14 @@ class PanenController extends Controller public function show(string $id): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); $panen = Panen::findOrFail($id); return response()->json($panen); } public function update(Request $request, string $id): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); $panen = Panen::findOrFail($id); $validated = $request->validate([ @@ -74,7 +74,7 @@ class PanenController extends Controller public function destroy(string $id): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); Panen::findOrFail($id)->delete(); return response()->json(null, 204); } @@ -84,7 +84,7 @@ class PanenController extends Controller */ public function batchUpsert(Request $request): JsonResponse { - Gate::authorize('petani'); + Gate::authorize('petani', 'fasilitator'); $profileId = Auth::user()->profile->id; $validated = $request->validate([ From 5b5d8d6017ab30a271f96679231482cdba44d549 Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 16:31:25 +0700 Subject: [PATCH 3/8] role add --- app/Http/Controllers/Api/PanenController.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Api/PanenController.php b/app/Http/Controllers/Api/PanenController.php index db23cee..3f0a6e2 100644 --- a/app/Http/Controllers/Api/PanenController.php +++ b/app/Http/Controllers/Api/PanenController.php @@ -14,7 +14,7 @@ class PanenController extends Controller { public function index(): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); $user = Auth::user(); $listPanen = Panen::where('farmer_id', $user->profile->id)->get(); @@ -24,7 +24,7 @@ class PanenController extends Controller public function store(Request $request): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); $validated = $request->validate([ 'land_id' => ['required', 'integer'], @@ -51,14 +51,14 @@ class PanenController extends Controller public function show(string $id): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); $panen = Panen::findOrFail($id); return response()->json($panen); } public function update(Request $request, string $id): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); $panen = Panen::findOrFail($id); $validated = $request->validate([ @@ -74,7 +74,7 @@ class PanenController extends Controller public function destroy(string $id): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); Panen::findOrFail($id)->delete(); return response()->json(null, 204); } @@ -84,7 +84,7 @@ class PanenController extends Controller */ public function batchUpsert(Request $request): JsonResponse { - Gate::authorize('petani', 'fasilitator'); + Gate::authorize(['petani', 'fasilitator']); $profileId = Auth::user()->profile->id; $validated = $request->validate([ From ee6e2efe17fe5a9286bb806a05f139a0917e8d17 Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 16:40:17 +0700 Subject: [PATCH 4/8] lainiii --- app/Http/Controllers/Api/PanenController.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/PanenController.php b/app/Http/Controllers/Api/PanenController.php index 3f0a6e2..8097d11 100644 --- a/app/Http/Controllers/Api/PanenController.php +++ b/app/Http/Controllers/Api/PanenController.php @@ -12,12 +12,15 @@ use App\Models\Map\Panen; class PanenController extends Controller { - public function index(): JsonResponse + public function index(Request $request): JsonResponse { Gate::authorize(['petani', 'fasilitator']); $user = Auth::user(); - $listPanen = Panen::where('farmer_id', $user->profile->id)->get(); + $profile = $user->profile; + + $profileId = $user->role === 'petani' ? $profile->id : $user->id; + $listPanen = Panen::when($profileId, fn($q,$v) => $q->where('farmer_id',$v))->get(); return response()->json($listPanen); } From 10dbb101217343a83710f865445d77e91ad154de Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 16:41:14 +0700 Subject: [PATCH 5/8] gate --- app/Http/Controllers/Api/PanenController.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/PanenController.php b/app/Http/Controllers/Api/PanenController.php index 8097d11..906765e 100644 --- a/app/Http/Controllers/Api/PanenController.php +++ b/app/Http/Controllers/Api/PanenController.php @@ -14,7 +14,9 @@ class PanenController extends Controller { public function index(Request $request): JsonResponse { - Gate::authorize(['petani', 'fasilitator']); + if (!Gate::any(['petani', 'fasilitator'])) { + abort(403); + } $user = Auth::user(); $profile = $user->profile; From a4c381c4e06b14b5de1f80e685ef879d07e37024 Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Thu, 16 Apr 2026 16:43:52 +0700 Subject: [PATCH 6/8] s --- app/Http/Controllers/Api/PanenController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Api/PanenController.php b/app/Http/Controllers/Api/PanenController.php index 906765e..bcd44de 100644 --- a/app/Http/Controllers/Api/PanenController.php +++ b/app/Http/Controllers/Api/PanenController.php @@ -21,8 +21,8 @@ class PanenController extends Controller $user = Auth::user(); $profile = $user->profile; - $profileId = $user->role === 'petani' ? $profile->id : $user->id; - $listPanen = Panen::when($profileId, fn($q,$v) => $q->where('farmer_id',$v))->get(); + $profileId = $user->role === 'petani' ? $profile->id : $request->id; + $listPanen = Panen::when($profileId, fn($q,$v) => $q->where('farmer_id',$user->id))->get(); return response()->json($listPanen); } From e1400fa382a4beee74205ad217e2352d2dfe2273 Mon Sep 17 00:00:00 2001 From: "fauzgabriel@gmail.com" Date: Fri, 17 Apr 2026 10:23:18 +0700 Subject: [PATCH 7/8] panen tanaman --- app/Models/Map/Tanaman.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Models/Map/Tanaman.php b/app/Models/Map/Tanaman.php index cd03e73..484cfab 100644 --- a/app/Models/Map/Tanaman.php +++ b/app/Models/Map/Tanaman.php @@ -36,4 +36,9 @@ class Tanaman extends Model return $this->belongsTo(Komoditas::class, 'komoditas_id'); } + public function panen() + { + return $this->hasMany(\App\Models\Map\Panen::class, 'plant_id'); + } + } From fa2d5af75202998df22ef902a683102065aae88a Mon Sep 17 00:00:00 2001 From: ahmadafriadi Date: Fri, 17 Apr 2026 10:42:34 +0700 Subject: [PATCH 8/8] Update Lahan --- .../Web/Produktivitas/LahanController.php | 173 ++++++- app/Models/Pertanian/Lahan.php | 6 + resources/views/layout/header.blade.php | 4 + .../views/produktivitas/lahan/add.blade.php | 429 ++++++++++++++++ .../views/produktivitas/lahan/edit.blade.php | 466 ++++++++++++++++++ .../views/produktivitas/lahan/index.blade.php | 335 +++++++++++++ .../views/produktivitas/lahan/view.blade.php | 223 +++++++++ routes/web.php | 8 +- 8 files changed, 1619 insertions(+), 25 deletions(-) create mode 100644 resources/views/produktivitas/lahan/add.blade.php create mode 100644 resources/views/produktivitas/lahan/edit.blade.php create mode 100644 resources/views/produktivitas/lahan/index.blade.php create mode 100644 resources/views/produktivitas/lahan/view.blade.php diff --git a/app/Http/Controllers/Web/Produktivitas/LahanController.php b/app/Http/Controllers/Web/Produktivitas/LahanController.php index b8afbc2..f9fddbf 100644 --- a/app/Http/Controllers/Web/Produktivitas/LahanController.php +++ b/app/Http/Controllers/Web/Produktivitas/LahanController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Pertanian\Lahan; use App\Models\Profile; +use App\Models\Pertanian\Adat; use App\Models\Wilayah\Provinsi; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; @@ -14,24 +15,73 @@ class LahanController extends Controller { public function index(Request $request) { - $query = Lahan::with(['profile', 'desakelurahan'])->orderBy('created_at', 'desc'); + $query = Lahan::with(['profile', 'desakelurahan.kecamatan.kabupatenkota.provinsi', 'adat']) + ->orderBy('created_at', 'desc'); if ($request->search) { - $query->where('nama', 'like', '%' . $request->search . '%') - ->orWhereHas('profile', function($q) use ($request) { - $q->where('nama', 'like', '%' . $request->search . '%'); + $query->where(function($q) use ($request) { + $q->where('nama', 'like', '%' . $request->search . '%') + ->orWhereHas('profile', function($qProfile) use ($request) { + $qProfile->where('nama', 'like', '%' . $request->search . '%'); }); + }); + } + + if ($request->filled('profile_id')) { + $query->where('profile_id', $request->profile_id); + } + if ($request->filled('status_kepemilikan')) { + $query->where('status_kepemilikan', $request->status_kepemilikan); + } + if ($request->filled('adat_pemilik_id')) { + $query->where('adat_pemilik_id', $request->adat_pemilik_id); + } + + if ($request->filled('desa_kelurahan_id')) { + $query->where('desa_kelurahan_id', $request->desa_kelurahan_id); + } elseif ($request->filled('kecamatan_id')) { + $query->whereHas('desakelurahan', function($q) use ($request) { + $q->where('kecamatan_id', $request->kecamatan_id); + }); + } elseif ($request->filled('kabupatenkota_id')) { + $query->whereHas('desakelurahan.kecamatan', function($q) use ($request) { + $q->where('kabupatenkota_id', $request->kabupatenkota_id); + }); + } elseif ($request->filled('provinsi_id')) { + $query->whereHas('desakelurahan.kecamatan.kabupatenkota', function($q) use ($request) { + $q->where('provinsi_id', $request->provinsi_id); + }); } $lahan = $query->paginate($request->per_page ?? 10); - return view('master.lahan.index', compact('lahan')); + + $provinsi = Provinsi::orderBy('nama', 'asc')->get(); + $profiles = Profile::orderBy('nama', 'asc')->get(); + $adat = Adat::orderBy('nama', 'asc')->get(); + + $kabupaten = []; + $kecamatan = []; + $desa = []; + + if ($request->filled('provinsi_id')) { + $kabupaten = KabupatenKota::where('provinsi_id', $request->provinsi_id)->orderBy('nama', 'asc')->get(); + } + if ($request->filled('kabupatenkota_id')) { + $kecamatan = Kecamatan::where('kabupatenkota_id', $request->kabupatenkota_id)->orderBy('nama', 'asc')->get(); + } + if ($request->filled('kecamatan_id')) { + $desa = DesaKelurahan::where('kecamatan_id', $request->kecamatan_id)->orderBy('nama', 'asc')->get(); + } + + return view('produktivitas.lahan.index', compact('lahan', 'provinsi', 'profiles', 'adat', 'kabupaten', 'kecamatan', 'desa')); } public function create() { $provinsi = Provinsi::orderBy('nama', 'asc')->get(); $profiles = Profile::orderBy('nama', 'asc')->get(); - return view('master.lahan.add', compact('provinsi', 'profiles')); + $adat = Adat::orderBy('nama', 'asc')->get(); + return view('produktivitas.lahan.add', compact('provinsi', 'profiles', 'adat')); } public function store(Request $request) @@ -51,22 +101,29 @@ class LahanController extends Controller return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422); } + $pathData = null; + + $keluargaPengelolaId = Profile::where('id', $request->profile_id)->value('keluarga_id'); + if ($request->filled('path')) { - json_decode($request->path); + $pathData = json_decode($request->path, true); + if (json_last_error() !== JSON_ERROR_NONE) { return response()->json(['status' => 'error', 'message' => 'Format koordinat (path) bukan JSON array yang valid.'], 422); } } - + Lahan::create([ - 'nama' => $request->nama, - 'status_kepemilikan' => $request->status_kepemilikan, - 'profile_id' => $request->profile_id, - 'desa_kelurahan_id' => $request->desa_kelurahan_id, - 'luas_lahan' => $request->luas_lahan, - 'path' => $request->path, - 'created_by' => auth()->id(), - 'updated_by' => auth()->id(), + 'nama' => $request->nama, + 'status_kepemilikan' => $request->status_kepemilikan, + 'profile_id' => $request->profile_id, + 'keluarga_pengelola_id' => $keluargaPengelolaId ?? null, + 'desa_kelurahan_id' => $request->desa_kelurahan_id, + 'adat_pemilik_id' => $request->adat_pemilik_id, + 'luas_lahan' => $request->luas_lahan, + 'path' => $pathData, + 'created_by' => auth()->id(), + 'updated_by' => auth()->id(), ]); return response()->json(['status' => 'success', 'message' => 'Lahan berhasil ditambahkan.']); @@ -74,9 +131,89 @@ class LahanController extends Controller public function show($id) { - $lahan = Lahan::with(['profile', 'desakelurahan.kecamatan.kabupatenkota.provinsi', 'tanaman.komoditas'])->findOrFail($id); + $lahan = Lahan::with(['profile', 'desakelurahan.kecamatan.kabupatenkota.provinsi', 'tanaman.komoditas', 'adat'])->findOrFail($id); - return view('master.lahan.view', compact('lahan')); + return view('produktivitas.lahan.view', compact('lahan')); + } + + public function edit($id) + { + $lahan = Lahan::with('desakelurahan.kecamatan.kabupatenkota.provinsi')->findOrFail($id); + + $provinsi = Provinsi::orderBy('nama', 'asc')->get(); + $profiles = Profile::orderBy('nama', 'asc')->get(); + $adat = Adat::orderBy('nama', 'asc')->get(); + + return view('produktivitas.lahan.edit', compact('lahan', 'provinsi', 'profiles', 'adat')); + } + + public function update(Request $request, $id) + { + $validator = Validator::make($request->all(), [ + 'nama' => ['required', 'string', 'max:255'], + 'status_kepemilikan' => ['required', 'string', 'max:255'], + 'profile_id' => ['required'], + 'keluarga_pengelola_id' => ['nullable'], + 'adat_pemilik_id' => ['nullable'], + 'desa_kelurahan_id' => ['nullable'], + 'luas_lahan' => ['nullable', 'numeric'], + 'path' => ['nullable', 'string'], + ]); + + if ($validator->fails()) { + return response()->json(['status' => 'error', 'errors' => $validator->errors()], 422); + } + + $lahan = Lahan::findOrFail($id); + + $pathData = null; + + $keluargaPengelolaId = Profile::where('id', $request->profile_id)->value('keluarga_id'); + + if ($request->filled('path')) { + $pathData = json_decode($request->path, true); + + if (json_last_error() !== JSON_ERROR_NONE) { + return response()->json(['status' => 'error', 'message' => 'Format koordinat (path) bukan JSON array yang valid.'], 422); + } + } + + $lahan->update([ + 'nama' => $request->nama, + 'status_kepemilikan' => $request->status_kepemilikan, + 'profile_id' => $request->profile_id, + 'keluarga_pengelola_id' => $keluargaPengelolaId ?? null, + 'desa_kelurahan_id' => $request->desa_kelurahan_id, + 'adat_pemilik_id' => $request->status_kepemilikan === 'adat' ? $request->adat_pemilik_id : null, + 'luas_lahan' => $request->luas_lahan, + 'path' => $pathData, + 'updated_by' => auth()->id(), + ]); + + return response()->json(['status' => 'success', 'message' => 'Data Lahan berhasil diperbarui.']); + } + + public function destroy($id) + { + try { + $lahan = Lahan::findOrFail($id); + + $lahan->deleted_by = auth()->id(); // atau auth()->user()->id + $lahan->save(); + + $lahan->delete(); + + return response()->json([ + 'status' => 'success', + 'message' => 'Data lahan berhasil dihapus.' + ]); + + } catch (\Exception $e) { + return response()->json([ + 'status' => 'error', + 'message' => 'Gagal menghapus data Lahan. Silakan coba lagi nanti.' + ], 500); + } } } diff --git a/app/Models/Pertanian/Lahan.php b/app/Models/Pertanian/Lahan.php index 9cc6d78..f4df020 100644 --- a/app/Models/Pertanian/Lahan.php +++ b/app/Models/Pertanian/Lahan.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use App\Models\Wilayah\DesaKelurahan; use App\Models\Pertanian\Tanaman; use App\Models\Profile; +use App\Models\Pertanian\Adat; use App\Enums\StatusLahan; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -46,6 +47,11 @@ class Lahan extends Model return $this->belongsTo(DesaKelurahan::class, 'desa_kelurahan_id'); } + public function adat(): BelongsTo + { + return $this->belongsTo(Adat::class, 'adat_pemilik_id'); + } + public function tanaman(): HasMany { return $this->hasMany(Tanaman::class, 'lahan_id'); diff --git a/resources/views/layout/header.blade.php b/resources/views/layout/header.blade.php index f848b9d..9cd909c 100644 --- a/resources/views/layout/header.blade.php +++ b/resources/views/layout/header.blade.php @@ -52,6 +52,10 @@ + + + + @stack('style') diff --git a/resources/views/produktivitas/lahan/add.blade.php b/resources/views/produktivitas/lahan/add.blade.php new file mode 100644 index 0000000..2b3b7f5 --- /dev/null +++ b/resources/views/produktivitas/lahan/add.blade.php @@ -0,0 +1,429 @@ +@extends('layout.main') + +@push('style') + + + + +@endpush + +@section('content') +
+
+
+
Tambah Data Lahan
+ + Kembali + +
+ +
+
+ @csrf + +
+
+
Form Info Lahan
+ +
+ + +
+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+
Lokasi Wilayah
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ + + Pastikan menggambar polygon di peta dengan menyambungkan titik akhir ke titik awal. +
+
+ +
+
+
Gambar Area Lahan
+ Gunakan tool ⬟ di kiri peta +
+ +
+
+
+ +
+
+ + +
+
+ +
+
+
+
+ + + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/produktivitas/lahan/edit.blade.php b/resources/views/produktivitas/lahan/edit.blade.php new file mode 100644 index 0000000..139de2a --- /dev/null +++ b/resources/views/produktivitas/lahan/edit.blade.php @@ -0,0 +1,466 @@ +@extends('layout.main') + +@push('style') + + + + +@endpush + +@section('content') +
+
+
+
Edit Data Lahan
+ + Kembali + +
+ +
+
+ @csrf + @method('PUT') + +
+
+
Form Info Lahan
+ +
+ + +
+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+
Lokasi Wilayah
+ + @php + $selectedDesa = $lahan->desakelurahan ?? null; + $selectedKec = $selectedDesa ? $selectedDesa->kecamatan : null; + $selectedKab = $selectedKec ? $selectedKec->kabupatenkota : null; + $selectedProv = $selectedKab ? $selectedKab->provinsi : null; + @endphp + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ + + Gunakan tombol edit (pensil) atau hapus (tong sampah) di peta untuk mengubah bentuk lahan. +
+
+ +
+
+
Gambar Area Lahan
+ Mode Edit Polygon Aktif +
+ +
+
+
+ +
+
+ Batal + +
+
+ +
+
+
+
+ + + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/produktivitas/lahan/index.blade.php b/resources/views/produktivitas/lahan/index.blade.php new file mode 100644 index 0000000..3ad52d4 --- /dev/null +++ b/resources/views/produktivitas/lahan/index.blade.php @@ -0,0 +1,335 @@ +@extends('layout.main') + +@push('style') + +@endpush + +@section('content') +
+
+
+
Data Map Lahan
+ +
+ + + Tambah Lahan + +
+
+ +
+ +
+
+
+
+ + + +
+
+
+
+ + + @if(request()->anyFilled(['search', 'provinsi_id', 'kabupatenkota_id', 'kecamatan_id', 'desa_kelurahan_id', 'profile_id', 'status_kepemilikan', 'adat_pemilik_id'])) + + @endif +
+
+
+
+ + @php + $isFilterActive = request()->anyFilled([ + 'provinsi_id', 'kabupatenkota_id', 'kecamatan_id', 'desa_kelurahan_id', + 'profile_id', 'status_kepemilikan', 'adat_pemilik_id' + ]); + @endphp + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+
+
+
+ +
+ + + + + + + + + + + + + + + @forelse($lahan as $index => $item) + + + + + + + + + + + @empty + + @endforelse + +
NoNama LahanPemilikStatusLokasiLuas (Ha/m2)GeoJSONActions
{{ $lahan->firstItem() + $index }}{{ $item->nama }}{{ $item->profile->nama ?? '-' }} + @if(trim(strtolower($item->status_kepemilikan->value)) == 'adat') + Adat: {{ $item->adat->nama ?? 'Ada' }} + @else + {{ ucfirst($item->status_kepemilikan->value) }} + @endif + + + @php + $kodeDesa = (string) ($item->desakelurahan->kode ?? ''); + $labelWilayah = 'Desa'; + if (strlen($kodeDesa) >= 4) { + $digitStatus = substr($kodeDesa, -4, 1); + if ($digitStatus === '1') { + $labelWilayah = 'Kel.'; + } elseif ($digitStatus === '2') { + $labelWilayah = 'Desa'; + } + } + @endphp + {{ $labelWilayah }} {{ $item->desakelurahan->nama ?? '-' }},
+ Kec. {{ $item->desakelurahan->kecamatan->nama ?? '-' }} +
+
{{ $item->luas_lahan ?? '-' }} + @if($item->path) + Ada + @else + Tidak Ada + @endif + +
+ + + +
+
Tidak ada data lahan ditemukan.
+
+ +
+
+@endsection + +@push('scripts') + + +@endpush \ No newline at end of file diff --git a/resources/views/produktivitas/lahan/view.blade.php b/resources/views/produktivitas/lahan/view.blade.php new file mode 100644 index 0000000..36ae944 --- /dev/null +++ b/resources/views/produktivitas/lahan/view.blade.php @@ -0,0 +1,223 @@ +@extends('layout.main') + +@push('style') + + + +@endpush + +@section('content') +
+
+
+
Detail Map Lahan
+ + Kembali + +
+ +
+
+ +
+
+
Info Lahan
+ +
+ + +
+ +
+ + +
+ +
+
+ + +
+
+ + +
+
+ + @if($lahan->status_kepemilikan->value === 'adat') +
+ + +
+ @endif + +
+
Lokasi Wilayah
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ +
+
+
Visualisasi Peta Lahan
+ +
+ + +
+
+ +
+
+ Memuat Peta... +
+
+ +
+ + +
+
+
+ +
+
+
+
+ + +@endsection + +@push('scripts') + +@endpush \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 88656f3..665381e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -80,13 +80,7 @@ Route::middleware('auth') Route::put('/profile/{id}', [App\Http\Controllers\Web\Produktivitas\ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile/{id}', [App\Http\Controllers\Web\Produktivitas\ProfileController::class, 'destroy'])->name('profile.destroy'); - Route::get('/lahan', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'index'])->name('lahan.index'); - Route::get('/lahan/add', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'create'])->name('lahan.create'); - Route::post('/lahan', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'store'])->name('lahan.store'); - Route::get('/lahan/edit/{id}', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'edit'])->name('lahan.edit'); - Route::put('/lahan/{id}', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'update'])->name('lahan.update'); - Route::delete('/lahan/{id}', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'destroy'])->name('lahan.destroy'); - Route::get('/lahan/{id}', [App\Http\Controllers\Web\Produktivitas\LahanController::class, 'show'])->name('lahan.show'); + Route::resource('lahan', App\Http\Controllers\Web\Produktivitas\LahanController::class); Route::get('/komoditas', [App\Http\Controllers\Web\Master\KomoditasController::class, 'index'])->name('komoditas.index'); Route::post('/komoditas', [App\Http\Controllers\Web\Master\KomoditasController::class, 'store'])->name('komoditas.store');