Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -272,7 +272,17 @@ class PetaniController extends Controller
|
||||
try {
|
||||
$petani = Petani::findOrFail($id);
|
||||
|
||||
if (auth()->user()->role->value === 'fasilitator' && $petani->created_by !== auth()->id()) {
|
||||
return response()->json(['message' => 'Anda tidak memiliki akses.'], 403);
|
||||
}
|
||||
|
||||
DB::transaction(function () use ($petani) {
|
||||
$petani->update([
|
||||
'deleted_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
$petani->delete();
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
|
||||
@@ -66,33 +66,11 @@
|
||||
<div class="col-md-8 d-flex flex-column">
|
||||
@php
|
||||
$skorLahanTanaman = isset($petani) ? $petani->skorLahanTanaman() : null;
|
||||
$skorPraktikBudidaya = isset($petani) ? $petani->skorPraktikBudidaya() : null;
|
||||
$skorPendidikan = isset($petani) ? $petani->skorPendidikan() : null;
|
||||
$skorSosialEkonomiSegmen = isset($petani) ? $petani->skorSosialEkonomi() : null;
|
||||
$skorAksesPasarSegmen = isset($petani) ? $petani->skorAksesPasar() : null;
|
||||
|
||||
$skorSegmenPetani = collect([
|
||||
$skorLahanTanaman,
|
||||
$skorPraktikBudidaya,
|
||||
$skorPendidikan,
|
||||
$skorSosialEkonomiSegmen,
|
||||
$skorAksesPasarSegmen,
|
||||
])->filter(fn ($value) => !is_null($value))->sum();
|
||||
|
||||
$skorSegmenPetani = $skorSegmenPetani > 0 ? round($skorSegmenPetani, 1) : null;
|
||||
$segmenPetani = is_null($skorSegmenPetani) ? null : match (true) {
|
||||
$skorSegmenPetani >= 4.0 => 'Penggerak',
|
||||
$skorSegmenPetani >= 3.0 => 'Perintis',
|
||||
$skorSegmenPetani >= 2.0 => 'Pemerhati',
|
||||
$skorSegmenPetani >= 1.0 => 'Pemula',
|
||||
default => 'Belum tersegmentasi',
|
||||
};
|
||||
|
||||
$lahanPetani = isset($petani) && \Illuminate\Support\Facades\Schema::hasTable('map_lahan')
|
||||
? $petani->lahans()->get()
|
||||
: collect();
|
||||
$totalLuasLahan = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
|
||||
$totalLuasLahanHa = $totalLuasLahan / 10000;
|
||||
$totalLuasLahanHa = $petani ? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->sum('luas_lahan') : 0;
|
||||
$lahanKomoditasUtamaIds = $petani
|
||||
? $lahanPetani->where('komoditas_id', $petani->komoditas_id)->pluck('id')
|
||||
: collect();
|
||||
@@ -100,7 +78,6 @@
|
||||
? \App\Models\Pertanian\Tanaman::whereIn('lahan_id', $lahanKomoditasUtamaIds)->count()
|
||||
: 0;
|
||||
$pendidikanLabel = isset($petani) ? $petani->pendidikan_terakhir?->label() : null;
|
||||
|
||||
@endphp
|
||||
|
||||
<div class="card mb-2 flex-grow-1">
|
||||
@@ -112,8 +89,8 @@
|
||||
<p class="mb-0 text-muted" style="font-size: 0.75rem;">Segmen Petani</p>
|
||||
<h5 class="mb-0">{{ $petani?->segmen() ?? '-' }}</h5>
|
||||
<p class="mb-0" style="font-size: 0.75rem;">
|
||||
@if(!is_null($petani?->skor))
|
||||
<span class="me-1">Skor {{ number_format($petani?->skor->skor_kesiapan_adopsi, 1) }}</span>
|
||||
@if(!is_null($petani?->skor?->skor_kesiapan_adopsi))
|
||||
<span class="me-1">Skor {{ number_format($petani->skor->skor_kesiapan_adopsi, 1, ',', '.') }}/5</span>
|
||||
@else
|
||||
<span class="me-1">Belum terisi</span>
|
||||
@endif
|
||||
@@ -187,35 +164,19 @@
|
||||
<div class="d-flex justify-content-between align-items-center card-widget-1 border-end h-100 pe-3">
|
||||
@php
|
||||
$skorPraktik = isset($petani?->skor) ? $petani?->skor->skor_d2_sistem_praktik_budidaya : null;
|
||||
if (!is_null($skorPraktik)) {
|
||||
if ($skorPraktik >= 4) {
|
||||
$praktik = 'Menjalankan GAP (' . number_format($skorPraktik, 1, ',', '.') . ')';
|
||||
} else if ($skorPraktik >= 2) {
|
||||
$praktik = 'Menjalankan sebagian GAP (' . number_format($skorPraktik, 1, ',', '.') . ')';
|
||||
} else {
|
||||
$praktik = 'Belum menjalankan GAP (' . number_format($skorPraktik, 1, ',', '.') . ')';
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
@php
|
||||
$produktivitas = isset($petani?->surveyProduktivitas) ? $petani?->surveyProduktivitas : null;
|
||||
if (!is_null($produktivitas)) {
|
||||
$produktivitas = $produktivitas->where('komoditas_id', $petani->komoditas_id);
|
||||
}
|
||||
$labelPraktik = match (true) {
|
||||
is_null($skorPraktik) => null,
|
||||
$skorPraktik >= 4 => 'Penuh GAP',
|
||||
$skorPraktik >= 2 => 'Sebagian GAP',
|
||||
default => 'Belum GAP',
|
||||
};
|
||||
@endphp
|
||||
<div>
|
||||
<p class="mb-0 text-muted" style="font-size: 0.75rem;">Praktik Budidaya</p>
|
||||
<h5 class="mb-0">
|
||||
@if($produktivitas && count($produktivitas) > 0)
|
||||
{{ number_format($produktivitas->sum('kuantitas'), 0, ',', '.') }}
|
||||
<small>{{ $produktivitas->first()->satuan == 'ha_tahun' ? 'Ha/Tahun' : 'Pohon/Tahun' }}</small>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</h5>
|
||||
<h5 class="mb-0">{{ $labelPraktik ?? '-' }}</h5>
|
||||
<p class="mb-0" style="font-size: 0.75rem;">
|
||||
@if(!is_null($skorPraktik))
|
||||
<span class="me-1">{{ $praktik }}</span>
|
||||
<span class="me-1">Skor {{ number_format($skorPraktik, 1, ',', '.') }}/5</span>
|
||||
@else
|
||||
<span class="me-1">Belum terisi</span>
|
||||
@endif
|
||||
@@ -241,13 +202,15 @@
|
||||
$pendapatanKomoditas = isset($sosialEkonomi) ? $sosialEkonomi->pendapatanKomoditas : null;
|
||||
@endphp
|
||||
@php
|
||||
$rekeningValue = $sosialEkonomi?->status_rekening_tabungan?->value;
|
||||
$kreditValue = $sosialEkonomi?->pengalaman_kredit_kebun?->value;
|
||||
$ekonomi = null;
|
||||
if ($sosialEkonomi?->status_rekening_tabungan && $sosialEkonomi?->pengalaman_kredit_kebun) {
|
||||
if ($sosialEkonomi?->status_rekening_tabungan > 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) {
|
||||
if ($rekeningValue && $kreditValue) {
|
||||
if ($rekeningValue > 1 && $kreditValue > 3) {
|
||||
$ekonomi = 'Memiliki rekening dan pengalaman kredit';
|
||||
} elseif ($sosialEkonomi?->status_rekening_tabungan > 1 && $sosialEkonomi?->pengalaman_kredit_kebun <= 3) {
|
||||
} elseif ($rekeningValue > 1 && $kreditValue <= 3) {
|
||||
$ekonomi = 'Memiliki rekening';
|
||||
} elseif ($sosialEkonomi?->status_rekening_tabungan == 1 && $sosialEkonomi?->pengalaman_kredit_kebun > 3) {
|
||||
} elseif ($rekeningValue == 1 && $kreditValue > 3) {
|
||||
$ekonomi = 'Memiliki pengalaman kredit';
|
||||
} else {
|
||||
$ekonomi = 'Tidak memiliki akses keuangan';
|
||||
@@ -257,9 +220,9 @@
|
||||
}
|
||||
@endphp
|
||||
<h5 class="mb-0">
|
||||
@if(!is_null($pendapatanKomoditas))
|
||||
{{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }}
|
||||
<small>pendapatan (Rp)</small>
|
||||
@if($pendapatanKomoditas && $pendapatanKomoditas->isNotEmpty())
|
||||
Rp {{ number_format($pendapatanKomoditas->sum('pendapatan'), 0, ',', '.') }}
|
||||
<small>/musim</small>
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
@@ -304,29 +267,34 @@
|
||||
@php
|
||||
$pengalaman = null;
|
||||
if (!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium)) {
|
||||
if($aksesPasar->skor_pengalaman > 1){
|
||||
if ($aksesPasar->skor_kesadaran_premium == 5) {
|
||||
$pengalaman = 'Akses saluran lain dan pasar premium';
|
||||
} else {
|
||||
$pengalaman = 'Akses saluran lain';
|
||||
}
|
||||
} else {
|
||||
$pengalaman = 'Belum akses';
|
||||
$pengalaman = match ($aksesPasar->skor_pengalaman) {
|
||||
1 => 'Belum pernah coba saluran lain',
|
||||
2 => 'Pernah, kini tidak ada akses',
|
||||
3 => 'Pernah, sempat berhenti',
|
||||
4 => 'Pernah, sesekali masih jual',
|
||||
5 => 'Pernah & masih punya akses',
|
||||
default => null,
|
||||
};
|
||||
|
||||
if (!is_null($pengalaman) && $aksesPasar->skor_kesadaran_premium == 5) {
|
||||
$pengalaman .= ' · kenal pasar premium';
|
||||
}
|
||||
}
|
||||
@endphp
|
||||
<h5 class="mb-0">
|
||||
@if(!is_null($hargaJual))
|
||||
{{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }}
|
||||
<small>{{ $hargaJual->bentuk_produk }}</small>
|
||||
Rp {{ number_format($hargaJual->harga_panen_terakhir, 0, ',', '.') }}
|
||||
@else
|
||||
-
|
||||
@endif
|
||||
</h5>
|
||||
<p class="mb-0" style="font-size: 0.75rem;">
|
||||
<p class="mb-0 text-truncate" style="font-size: 0.75rem;" title="{{ $hargaJual?->bentuk_produk }} — {{ $pengalaman }}">
|
||||
@if(!is_null($hargaJual))
|
||||
<span class="me-1">{{ $hargaJual->bentuk_produk }}</span>
|
||||
@endif
|
||||
@if(!is_null($aksesPasar?->skor_pengalaman) && !is_null($aksesPasar->skor_kesadaran_premium))
|
||||
<span class="me-1">{{ $pengalaman }}</span>
|
||||
@else
|
||||
<span class="me-1">{{ $hargaJual ? '·' : '' }} {{ $pengalaman }}</span>
|
||||
@elseif(is_null($hargaJual))
|
||||
<span class="me-1">Belum terisi</span>
|
||||
@endif
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user