Update Praktik Budidaya
This commit is contained in:
@@ -184,6 +184,12 @@ class PraktikBudidayaController extends Controller
|
||||
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
|
||||
if (!$petani->isKomoditasVanili()) {
|
||||
$validatedData['penyerbukan_manual'] = null;
|
||||
$validatedData['alasan_tidak_penyerbukan'] = null;
|
||||
$validatedData['tingkat_keberhasilan_penyerbukan'] = null;
|
||||
}
|
||||
|
||||
$pemupukanTidakPernah = (int) ($validatedData['pemberian_pupuk'] ?? 0) === PemberianPupuk::TIDAK_PERNAH->value;
|
||||
|
||||
$praktikBudidaya = $petani->praktikBudidaya()->create([
|
||||
@@ -566,7 +572,13 @@ class PraktikBudidayaController extends Controller
|
||||
}
|
||||
|
||||
$pemupukanTidakPernah = (int) ($validatedData['pemberian_pupuk'] ?? 0) === PemberianPupuk::TIDAK_PERNAH->value;
|
||||
|
||||
|
||||
if (!$petani->isKomoditasVanili()) {
|
||||
$validatedData['penyerbukan_manual'] = null;
|
||||
$validatedData['alasan_tidak_penyerbukan'] = null;
|
||||
$validatedData['tingkat_keberhasilan_penyerbukan'] = null;
|
||||
}
|
||||
|
||||
$dataPraktikBudidaya = [
|
||||
'tenaga_kerja' => $validatedData['tenaga_kerja'],
|
||||
'frekuensi_pemangkasan_utama' => $validatedData['frekuensi_pemangkasan_komoditas_utama'],
|
||||
@@ -682,7 +694,7 @@ class PraktikBudidayaController extends Controller
|
||||
'uid' => 'SP-' . strtoupper(Str::random(10)),
|
||||
'petani_id' => $petani->id,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by_by' => auth()->id()
|
||||
'updated_by' => auth()->id()
|
||||
], $dataSurveyPanen));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,16 @@ class SurveyProduktivitasController extends Controller
|
||||
{
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
|
||||
// Baris yang benar-benar kosong dilewati (sama seperti Pendidikan & Pelatihan)
|
||||
$request->merge([
|
||||
'produktivitas_komoditas' => collect($request->input('produktivitas_komoditas', []))
|
||||
->filter(fn ($row) => filled($row['komoditas_id'] ?? null)
|
||||
|| filled($row['hasil_panen_3_musim'] ?? null)
|
||||
|| filled($row['satuan'] ?? null))
|
||||
->values()
|
||||
->all(),
|
||||
]);
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'produktivitas_komoditas' => ['required', 'array', 'min:1'],
|
||||
'produktivitas_komoditas.*.komoditas_id' => ['required', 'exists:master_komoditas,id'],
|
||||
|
||||
@@ -113,6 +113,12 @@ class Petani extends Model
|
||||
return $this->belongsTo(Komoditas::class, 'komoditas_id');
|
||||
}
|
||||
|
||||
// Pertanyaan penyerbukan manual hanya berlaku untuk petani vanili.
|
||||
public function isKomoditasVanili(): bool
|
||||
{
|
||||
return str_contains(strtolower($this->komoditas?->nama ?? ''), 'vanil');
|
||||
}
|
||||
|
||||
public function skor(): HasOne
|
||||
{
|
||||
return $this->hasOne(SkorPetani::class, 'petani_id');
|
||||
|
||||
Reference in New Issue
Block a user