update field sosial ekonomi

This commit is contained in:
2026-07-09 18:13:53 +07:00
parent 3464a802e2
commit bfabab96c5
3 changed files with 175 additions and 0 deletions
@@ -235,6 +235,8 @@ class SosialEkonomiController extends Controller
private function validateData(Request $request, ?int $id = null): array
{
$this->normalizeCurrencyInput($request);
$section = $request->input('form_section');
$rules = [
@@ -530,6 +532,51 @@ class SosialEkonomiController extends Controller
return $request->validate($rules, $this->validationMessages(), $this->validationAttributes());
}
private function normalizeCurrencyInput(Request $request): void
{
$data = $request->all();
$currencyFields = [
'total_estimasi_biaya_kebun_per_musim',
'estimasi_tabungan_per_bulan',
'total_hutang_rupiah',
];
foreach ($currencyFields as $field) {
if (array_key_exists($field, $data)) {
$data[$field] = $this->currencyDigits($data[$field]);
}
}
if (isset($data['pendapatan_komoditas']) && is_array($data['pendapatan_komoditas'])) {
foreach ($data['pendapatan_komoditas'] as $index => $item) {
if (is_array($item) && array_key_exists('pendapatan', $item)) {
$data['pendapatan_komoditas'][$index]['pendapatan'] = $this->currencyDigits($item['pendapatan']);
}
}
}
if (isset($data['pendapatan_luar_pertanian']) && is_array($data['pendapatan_luar_pertanian'])) {
foreach ($data['pendapatan_luar_pertanian'] as $index => $item) {
if (is_array($item) && array_key_exists('estimasi_per_bulan', $item)) {
$data['pendapatan_luar_pertanian'][$index]['estimasi_per_bulan'] = $this->currencyDigits($item['estimasi_per_bulan']);
}
}
}
$request->merge($data);
}
private function currencyDigits(mixed $value): ?string
{
if (is_null($value) || $value === '') {
return null;
}
$digits = preg_replace('/\D/', '', (string) $value);
return $digits === '' ? null : $digits;
}
private function sosialEkonomiPayload(array $validated, ?SosialEkonomi $sosialEkonomi = null): array
{
$payload = collect($validated)