solve filter jumlah lahan dan tanaman
This commit is contained in:
@@ -63,9 +63,8 @@ class PetaniController extends Controller
|
|||||||
])
|
])
|
||||||
->orderBy('created_at', 'desc');
|
->orderBy('created_at', 'desc');
|
||||||
|
|
||||||
if ($request->filled('search')) {
|
$search = $request->filled('search') ? Str::lower($request->search) : null;
|
||||||
$search = Str::lower($request->search);
|
if ($search) {
|
||||||
|
|
||||||
$query->where(function ($query) use ($search) {
|
$query->where(function ($query) use ($search) {
|
||||||
$query->whereRaw('lower(nama) like ?', ["%{$search}%"])
|
$query->whereRaw('lower(nama) like ?', ["%{$search}%"])
|
||||||
->orWhereRaw('lower(ktp) like ?', ["%{$search}%"]);
|
->orWhereRaw('lower(ktp) like ?', ["%{$search}%"]);
|
||||||
@@ -111,9 +110,42 @@ class PetaniController extends Controller
|
|||||||
$desaOptions = $request->filled('kecamatan_id')
|
$desaOptions = $request->filled('kecamatan_id')
|
||||||
? DesaKelurahan::select('id', 'nama')->where('kecamatan_id', $request->kecamatan_id)->orderBy('nama')->get()
|
? DesaKelurahan::select('id', 'nama')->where('kecamatan_id', $request->kecamatan_id)->orderBy('nama')->get()
|
||||||
: collect();
|
: collect();
|
||||||
$totalLahan = Lahan::count();
|
$lahanSummaryQuery = Lahan::query()
|
||||||
$totalLuasLahan = Lahan::sum('luas_lahan');
|
->when($request->filled('komoditas_id'), function ($query) use ($request) {
|
||||||
$totalTanaman = Tanaman::count();
|
$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 = "
|
||||||
CASE
|
CASE
|
||||||
|
|||||||
@@ -106,8 +106,8 @@
|
|||||||
<div class="w-25">
|
<div class="w-25">
|
||||||
<x-summary-card
|
<x-summary-card
|
||||||
title="Segmentasi"
|
title="Segmentasi"
|
||||||
count="{{ $skor->where('segmen', 'Penggerak')->count() }} Penggerak"
|
count="{{ number_format((int) ($skor->firstWhere('segmen', 'Penggerak')->total ?? 0), 0, ',', '.') }} Penggerak"
|
||||||
subtitle="{{ $skor->where('segmen', 'Perintis')->count() }} Perintis, {{ $skor->where('segmen', 'Pemerhati')->count() }} Pemerhati, {{ $skor->where('segmen', 'Pemula')->count() }} Pemula"
|
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"
|
icon="star"
|
||||||
color="info"
|
color="info"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user