update jumlah tanaman
This commit is contained in:
@@ -11,6 +11,7 @@ use App\Models\User;
|
|||||||
use App\Models\Pertanian\Petani;
|
use App\Models\Pertanian\Petani;
|
||||||
use App\Models\Pertanian\Komoditas;
|
use App\Models\Pertanian\Komoditas;
|
||||||
use App\Models\Pertanian\Lahan;
|
use App\Models\Pertanian\Lahan;
|
||||||
|
use App\Models\Pertanian\Tanaman;
|
||||||
use App\Models\Pertanian\SurveyPelatihan;
|
use App\Models\Pertanian\SurveyPelatihan;
|
||||||
use App\Models\Pertanian\SurveySertifikasi;
|
use App\Models\Pertanian\SurveySertifikasi;
|
||||||
|
|
||||||
@@ -146,21 +147,26 @@ class SurveyPetaniController extends Controller
|
|||||||
$totalLuasLahan = ((float) Lahan::query()
|
$totalLuasLahan = ((float) Lahan::query()
|
||||||
->sum('luas_lahan')) / 10000;
|
->sum('luas_lahan')) / 10000;
|
||||||
|
|
||||||
$totalJumlahTanaman = (int) Lahan::query()
|
|
||||||
->sum('jumlah_tanaman');
|
|
||||||
|
|
||||||
// Jumlah tanaman berdasarkan komoditas petani
|
// Jumlah tanaman berdasarkan komoditas petani
|
||||||
|
|
||||||
$tanamanPerKomoditasCollection = DB::table("{$lahanTable} as l")
|
$tanamanTable = (new Tanaman())->getTable();
|
||||||
|
|
||||||
|
$tanamanPerKomoditasCollection = DB::table("{$tanamanTable} as t")
|
||||||
|
->join("{$lahanTable} as l", 'l.id', '=', 't.lahan_id')
|
||||||
->join("{$petaniTable} as p", 'p.id', '=', 'l.petani_id')
|
->join("{$petaniTable} as p", 'p.id', '=', 'l.petani_id')
|
||||||
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 'p.komoditas_id')
|
->leftJoin("{$komoditasTable} as k", 'k.id', '=', 't.komoditas_id')
|
||||||
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as label")
|
->selectRaw("COALESCE(k.nama, 'Belum ditentukan') as label")
|
||||||
->selectRaw('COALESCE(SUM(l.jumlah_tanaman), 0) as total')
|
->selectRaw('COUNT(t.id) as total')
|
||||||
->where('k.is_utama', true)
|
->where('k.is_utama', true)
|
||||||
|
->whereNull('t.deleted_at')
|
||||||
|
->whereNull('l.deleted_at')
|
||||||
|
->whereNull('p.deleted_at')
|
||||||
->groupBy('k.id', 'k.nama')
|
->groupBy('k.id', 'k.nama')
|
||||||
->orderByDesc('total')
|
->orderByDesc('total')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
$totalJumlahTanaman = (int) $tanamanPerKomoditasCollection->sum('total');
|
||||||
|
|
||||||
$tanamanPerKomoditas = $tanamanPerKomoditasCollection
|
$tanamanPerKomoditas = $tanamanPerKomoditasCollection
|
||||||
->map(function ($item, $index) use ($colors, $totalJumlahTanaman) {
|
->map(function ($item, $index) use ($colors, $totalJumlahTanaman) {
|
||||||
$color = $colors[$index % count($colors)];
|
$color = $colors[$index % count($colors)];
|
||||||
|
|||||||
@@ -50,14 +50,14 @@ class PetaniController extends Controller
|
|||||||
$query->where('created_by', auth()->user()->id);
|
$query->where('created_by', auth()->user()->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$summaryPetaniIds = (clone $query)->pluck('id');
|
||||||
$petani = $query->paginate($request->per_page ?? 10);
|
$petani = $query->paginate($request->per_page ?? 10);
|
||||||
|
|
||||||
$komoditas = Komoditas::where('is_utama', true)->get();
|
$komoditas = Komoditas::where('is_utama', true)->get();
|
||||||
$lahan = Lahan::whereIn('petani_id', $petani->pluck('id'))
|
$lahan = Lahan::whereIn('petani_id', $summaryPetaniIds)
|
||||||
->whereIn('komoditas_id', $komoditas->pluck('id'))
|
->whereIn('komoditas_id', $komoditas->pluck('id'))
|
||||||
->get();
|
->get();
|
||||||
$tanaman = Tanaman::whereIn('lahan_id', $lahan->pluck('id'))
|
$tanaman = Tanaman::whereIn('lahan_id', $lahan->pluck('id'))
|
||||||
->whereIn('lahan_id', $lahan->pluck('id'))
|
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$case = "
|
$case = "
|
||||||
@@ -70,7 +70,7 @@ class PetaniController extends Controller
|
|||||||
END
|
END
|
||||||
";
|
";
|
||||||
$skor = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total")
|
$skor = SkorPetani::selectRaw("$case AS segmen, COUNT(*) AS total")
|
||||||
->whereIn('petani_id', $petani->pluck('id'))
|
->whereIn('petani_id', $summaryPetaniIds)
|
||||||
->groupByRaw($case)
|
->groupByRaw($case)
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,12 @@
|
|||||||
: collect();
|
: collect();
|
||||||
$totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
|
$totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
|
||||||
$totalLuasLahanHa = $totalLuasLahan / 10000;
|
$totalLuasLahanHa = $totalLuasLahan / 10000;
|
||||||
$totalTanaman = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('jumlah_tanaman') : 0;
|
$lahanKomoditasUtamaIds = $petani
|
||||||
|
? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id')
|
||||||
|
: collect();
|
||||||
|
$totalTanaman = $petani && \Illuminate\Support\Facades\Schema::hasTable('map_tanaman')
|
||||||
|
? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count()
|
||||||
|
: 0;
|
||||||
$pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null;
|
$pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null;
|
||||||
|
|
||||||
@endphp
|
@endphp
|
||||||
|
|||||||
Reference in New Issue
Block a user