solve filter jumlah lahan dan tanaman

This commit is contained in:
2026-09-23 14:52:30 +07:00
parent 02eed6da34
commit fef5358402
2 changed files with 40 additions and 8 deletions
@@ -63,9 +63,8 @@ class PetaniController extends Controller
])
->orderBy('created_at', 'desc');
if ($request->filled('search')) {
$search = Str::lower($request->search);
$search = $request->filled('search') ? Str::lower($request->search) : null;
if ($search) {
$query->where(function ($query) use ($search) {
$query->whereRaw('lower(nama) like ?', ["%{$search}%"])
->orWhereRaw('lower(ktp) like ?', ["%{$search}%"]);
@@ -111,9 +110,42 @@ class PetaniController extends Controller
$desaOptions = $request->filled('kecamatan_id')
? DesaKelurahan::select('id', 'nama')->where('kecamatan_id', $request->kecamatan_id)->orderBy('nama')->get()
: collect();
$totalLahan = Lahan::count();
$totalLuasLahan = Lahan::sum('luas_lahan');
$totalTanaman = Tanaman::count();
$lahanSummaryQuery = Lahan::query()
->when($request->filled('komoditas_id'), function ($query) use ($request) {
$query->where('komoditas_id', $request->komoditas_id);
})
->when($filters['kabupaten_kota_id'], function ($query) use ($filters) {
$query->whereHas('desaKelurahan.kecamatan', function ($kecamatan) use ($filters) {
$kecamatan->where('kabupaten_kota_id', $filters['kabupaten_kota_id']);
});
})
->when($request->filled('kecamatan_id'), function ($query) use ($request) {
$query->whereHas('desaKelurahan', function ($desa) use ($request) {
$desa->where('kecamatan_id', $request->kecamatan_id);
});
})
->when($request->filled('desa_kelurahan_id'), function ($query) use ($request) {
$query->where('desa_kelurahan_id', $request->desa_kelurahan_id);
})
->when($request->filled('search'), function ($query) use ($search) {
$query->whereHas('petani', function ($petani) use ($search) {
$petani->whereRaw('lower(nama) like ?', ["%{$search}%"])
->orWhereRaw('lower(ktp) like ?', ["%{$search}%"]);
});
})
->when($userRole === 'fasilitator', function ($query) {
$query->whereHas('petani', function ($petani) {
$petani->where('created_by', auth()->id());
});
});
$totalLahan = (clone $lahanSummaryQuery)->count();
$totalLuasLahan = (clone $lahanSummaryQuery)->sum('luas_lahan');
$totalTanaman = Tanaman::whereIn('lahan_id', (clone $lahanSummaryQuery)->select('id'))
->when($request->filled('komoditas_id'), function ($query) use ($request) {
$query->where('komoditas_id', $request->komoditas_id);
})
->count();
$case = "
CASE
@@ -106,8 +106,8 @@
<div class="w-25">
<x-summary-card
title="Segmentasi"
count="{{ $skor->where('segmen', 'Penggerak')->count() }} Penggerak"
subtitle="{{ $skor->where('segmen', 'Perintis')->count() }} Perintis, {{ $skor->where('segmen', 'Pemerhati')->count() }} Pemerhati, {{ $skor->where('segmen', 'Pemula')->count() }} Pemula"
count="{{ number_format((int) ($skor->firstWhere('segmen', 'Penggerak')->total ?? 0), 0, ',', '.') }} Penggerak"
subtitle="{{ number_format((int) ($skor->firstWhere('segmen', 'Perintis')->total ?? 0), 0, ',', '.') }} Perintis, {{ number_format((int) ($skor->firstWhere('segmen', 'Pemerhati')->total ?? 0), 0, ',', '.') }} Pemerhati, {{ number_format((int) ($skor->firstWhere('segmen', 'Pemula')->total ?? 0), 0, ',', '.') }} Pemula"
icon="star"
color="info"
/>