header
This commit is contained in:
@@ -42,6 +42,7 @@ class AksesPasarController extends Controller
|
||||
$aksesPasarData = $this->aksesPasarPayload($validated);
|
||||
$aksesPasarData['uid'] = 'AKP-' . Str::uuid();
|
||||
$aksesPasarData['created_by'] = Auth::id();
|
||||
$aksesPasarData['updated_by'] = Auth::id();
|
||||
|
||||
$aksesPasar = AksesPasar::create($aksesPasarData);
|
||||
|
||||
@@ -59,7 +60,7 @@ class AksesPasarController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
public function update(Request $request, $petaniId, $id)
|
||||
{
|
||||
$validated = $this->validateData($request);
|
||||
|
||||
@@ -143,6 +144,38 @@ class AksesPasarController extends Controller
|
||||
'harga_jual.*.harga_panen_terakhir' => ['nullable', 'numeric', 'min:0'],
|
||||
'harga_jual.*.harga_tahun_lalu' => ['nullable', 'numeric', 'min:0'],
|
||||
'harga_jual.*.harga_dua_tahun_lalu' => ['nullable', 'numeric', 'min:0'],
|
||||
], [
|
||||
'petani_id.required' => 'Petani harus dipilih.',
|
||||
'petani_id.exists' => 'Petani tidak ditemukan.',
|
||||
'skor_pengalaman.integer' => 'Skor pengalaman harus berupa angka.',
|
||||
'skor_pengalaman.in' => 'Skor pengalaman tidak valid.',
|
||||
'alasan_berhenti.required' => 'Alasan berhenti harus diisi.',
|
||||
'alasan_berhenti.string' => 'Alasan berhenti harus berupa string.',
|
||||
'alasan_berhenti.max' => 'Alasan berhenti tidak boleh lebih dari 255 karakter.',
|
||||
'saluran_terdahulu.array' => 'Saluran terdahulu harus berupa array.',
|
||||
'saluran_terdahulu.*.string' => 'Saluran terdahulu harus berupa string.',
|
||||
'saluran_terdahulu.*.in' => 'Saluran terdahulu tidak valid.',
|
||||
'saluran_terdahulu_lainnya.required' => 'Saluran terdahulu lainnya harus diisi.',
|
||||
'saluran_terdahulu_lainnya.string' => 'Saluran terdahulu lainnya harus berupa string.',
|
||||
'saluran_terdahulu_lainnya.max' => 'Saluran terdahulu lainnya tidak boleh lebih dari 255 karakter.',
|
||||
'praktik_fermentasi.string' => 'Praktik fermentasi harus berupa string.',
|
||||
'praktik_fermentasi.in' => 'Praktik fermentasi tidak valid.',
|
||||
'proses_fermentasi.required' => 'Proses fermentasi harus diisi.',
|
||||
'proses_fermentasi.string' => 'Proses fermentasi harus berupa string.',
|
||||
'model_fermentasi_memungkinkan.required' => 'Model fermentasi memungkinkan harus diisi.',
|
||||
'model_fermentasi_memungkinkan.string' => 'Model fermentasi memungkinkan harus berupa string.',
|
||||
'skor_kesadaran_premium.integer' => 'Skor kesadaran premium harus berupa angka.',
|
||||
'skor_kesadaran_premium.in' => 'Skor kesadaran premium tidak valid.',
|
||||
'sumber_info_premium.string' => 'Sumber info premium harus berupa string.',
|
||||
'sumber_info_premium.max' => 'Sumber info premium tidak boleh lebih dari 255 karakter.',
|
||||
'harga_jual.array' => 'Harga jual harus berupa array.',
|
||||
'harga_jual.*.bentuk_produk.string' => 'Bentuk produk harus berupa string.',
|
||||
'harga_jual.*.harga_panen_terakhir.numeric' => 'Harga panen terakhir harus berupa angka.',
|
||||
'harga_jual.*.harga_tahun_lalu.numeric' => 'Harga tahun lalu harus berupa angka.',
|
||||
'harga_jual.*.harga_dua_tahun_lalu.numeric' => 'Harga dua tahun lalu harus berupa angka.',
|
||||
'harga_jual.*.harga_panen_terakhir.min' => 'Harga panen terakhir minimal 0.',
|
||||
'harga_jual.*.harga_tahun_lalu.min' => 'Harga tahun lalu minimal 0.',
|
||||
'harga_jual.*.harga_dua_tahun_lalu.min' => 'Harga dua tahun lalu minimal 0.',
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,10 @@ use Illuminate\Support\Str;
|
||||
use App\Models\User;
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\Pertanian\SkorPetani;
|
||||
use App\Enums\AksesPasar\PraktikFermentasi;
|
||||
use App\Enums\AksesPasar\SaluranTerdahulu;
|
||||
use App\Enums\AksesPasar\SkorPengalaman;
|
||||
use App\Enums\AksesPasar\SkorKesadaranPremium;
|
||||
|
||||
class AksesPasar extends Model
|
||||
{
|
||||
@@ -58,9 +62,9 @@ class AksesPasar extends Model
|
||||
]);
|
||||
}
|
||||
$skor->update([
|
||||
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda' => $aksesPasar->skor_pengalaman->value,
|
||||
'skor_d6_k4_1_kesadaran_akses_pasar_premium' => $aksesPasar->skor_kesadaran_premium->value,
|
||||
'skor_d6_k5_1_hambatan_mutu' => $aksesPasar->skor_kepercayaan_responden->value
|
||||
'skor_d6_k1_6_pengalaman_menjual_ke_saluran_berbeda' => $aksesPasar->skor_pengalaman,
|
||||
'skor_d6_k4_1_kesadaran_akses_pasar_premium' => $aksesPasar->skor_kesadaran_premium,
|
||||
'skor_d6_k5_1_hambatan_mutu' => $aksesPasar->skor_kepercayaan_responden
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,6 +11,9 @@ use App\Models\Pertanian\SurveyPanen;
|
||||
use App\Models\Pertanian\SurveyPelatihan;
|
||||
use App\Models\Pertanian\SurveyProduktivitas;
|
||||
use App\Models\Pertanian\SurveySertifikasi;
|
||||
use App\Models\Pertanian\SkorPetani;
|
||||
use App\Models\Pertanian\AksesPasar;
|
||||
use App\Models\Pertanian\HargaJualPanen;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
@@ -153,6 +156,11 @@ class Petani extends Model
|
||||
return $this->hasOne(AksesPasar::class, 'petani_id');
|
||||
}
|
||||
|
||||
public function hargaJualPanen(): HasMany
|
||||
{
|
||||
return $this->hasMany(HargaJualPanen::class, 'petani_id');
|
||||
}
|
||||
|
||||
public function skorLahanTanaman(): ?float
|
||||
{
|
||||
if (! Schema::hasTable('map_lahan')) {
|
||||
@@ -337,4 +345,27 @@ class Petani extends Model
|
||||
{
|
||||
return $value instanceof \BackedEnum ? $value->value : $value;
|
||||
}
|
||||
|
||||
public function segmen(): ?string
|
||||
{
|
||||
$skor = $this->skor;
|
||||
|
||||
if (!$skor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($skor->skor_kesiapan_adopsi >= 4.0) {
|
||||
return 'Penggerak';
|
||||
} elseif ($skor->skor_kesiapan_adopsi >= 3.0) {
|
||||
return 'Perintis';
|
||||
} elseif ($skor->skor_kesiapan_adopsi >= 2.0) {
|
||||
return 'Pemerhati';
|
||||
} elseif ($skor->skor_kesiapan_adopsi >= 1.0) {
|
||||
return 'Pemula';
|
||||
} else {
|
||||
return 'Belum tersegmentasi';
|
||||
}
|
||||
|
||||
return 'Belum tersegmentasi';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,14 +205,14 @@ class SosialEkonomi extends Model
|
||||
]);
|
||||
}
|
||||
$skor->update([
|
||||
'skor_d4_k5_1_kepemilikan_rekening' => $sosialEkonomi->status_rekening_tabungan->value,
|
||||
'skor_d4_k5_2_pengalaman_kredit_formal' => $sosialEkonomi->pengalaman_kredit_kebun->value,
|
||||
'skor_d4_k5_3_kepemilikan_aset_produktif' => $sosialEkonomi->kondisi_aset_produktif->value,
|
||||
'skor_d4_k5_4_akses_program_bantuan' => $sosialEkonomi->keterlibatan_program_keuangan_formal->value,
|
||||
'skor_d4_k5_1_kepemilikan_rekening' => $sosialEkonomi->status_rekening_tabungan?->value,
|
||||
'skor_d4_k5_2_pengalaman_kredit_formal' => $sosialEkonomi->pengalaman_kredit_kebun?->value,
|
||||
'skor_d4_k5_3_kepemilikan_aset_produktif' => $sosialEkonomi->kondisi_aset_produktif?->value,
|
||||
'skor_d4_k5_4_akses_program_bantuan' => $sosialEkonomi->keterlibatan_program_keuangan_formal?->value,
|
||||
|
||||
'skor_d4_k6_3_keberadaan_hutang_terkait_panen' => $sosialEkonomi->keterikatan_hutang_panen->value,
|
||||
'skor_d4_k6_5a_praktik_ijon' => $sosialEkonomi->praktik_ijon->value,
|
||||
'skor_d4_k6_5b_kebebasan_memilih_pembeli' => $sosialEkonomi->kebebasan_memilih_pembeli->value,
|
||||
'skor_d4_k6_3_keberadaan_hutang_terkait_panen' => $sosialEkonomi->keterikatan_hutang_panen?->value,
|
||||
'skor_d4_k6_5a_praktik_ijon' => $sosialEkonomi->praktik_ijon?->value,
|
||||
'skor_d4_k6_5b_kebebasan_memilih_pembeli' => $sosialEkonomi->kebebasan_memilih_pembeli?->value,
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user