solve sosial ekonomi
This commit is contained in:
@@ -154,8 +154,7 @@ class SosialEkonomiController extends Controller
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!$request->expectsJson()) {
|
if (!$request->expectsJson()) {
|
||||||
return redirect()
|
return $this->redirectToEditSection($sosialEkonomi, $request)
|
||||||
->route('petani.sosial-ekonomi.edit', [$sosialEkonomi->petani_id, $sosialEkonomi->id])
|
|
||||||
->with('success', 'Data sosial ekonomi berhasil disimpan.');
|
->with('success', 'Data sosial ekonomi berhasil disimpan.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,8 +205,7 @@ class SosialEkonomiController extends Controller
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (!$request->expectsJson()) {
|
if (!$request->expectsJson()) {
|
||||||
return redirect()
|
return $this->redirectToEditSection($sosialEkonomi, $request)
|
||||||
->route('petani.sosial-ekonomi.edit', [$sosialEkonomi->petani_id, $sosialEkonomi->id])
|
|
||||||
->with('success', 'Data sosial ekonomi berhasil diperbarui.');
|
->with('success', 'Data sosial ekonomi berhasil diperbarui.');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,6 +216,18 @@ class SosialEkonomiController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function redirectToEditSection(SosialEkonomi $sosialEkonomi, Request $request): RedirectResponse
|
||||||
|
{
|
||||||
|
$url = route('petani.sosial-ekonomi.edit', [$sosialEkonomi->petani_id, $sosialEkonomi->id]);
|
||||||
|
$fragment = $request->input('redirect_fragment');
|
||||||
|
|
||||||
|
if (is_string($fragment) && preg_match('/^[A-Za-z0-9_-]+$/', $fragment)) {
|
||||||
|
$url .= '#' . $fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->to($url);
|
||||||
|
}
|
||||||
|
|
||||||
public function destroy(string $id): JsonResponse
|
public function destroy(string $id): JsonResponse
|
||||||
{
|
{
|
||||||
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||||
@@ -589,6 +599,14 @@ class SosialEkonomiController extends Controller
|
|||||||
|
|
||||||
$payload = $this->normalizeSkorPayload($payload);
|
$payload = $this->normalizeSkorPayload($payload);
|
||||||
|
|
||||||
|
if (array_key_exists('ada_sengketa', $payload) && !filter_var($payload['ada_sengketa'], FILTER_VALIDATE_BOOLEAN)) {
|
||||||
|
$payload['keterangan_sengketa'] = null;
|
||||||
|
$payload['pihak_membantu_konflik'] = null;
|
||||||
|
$payload['pihak_membantu_konflik_nama'] = null;
|
||||||
|
$payload['tahun_bantuan_konflik'] = null;
|
||||||
|
$payload['status_konflik'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (($payload['pihak_membantu_konflik'] ?? null) === PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value) {
|
if (($payload['pihak_membantu_konflik'] ?? null) === PihakMembantuKonflik::TIDAK_ADA_SELESAIKAN_SENDIRI->value) {
|
||||||
$payload['pihak_membantu_konflik_nama'] = null;
|
$payload['pihak_membantu_konflik_nama'] = null;
|
||||||
$payload['tahun_bantuan_konflik'] = null;
|
$payload['tahun_bantuan_konflik'] = null;
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
|
|
||||||
|
@push('scripts-head')
|
||||||
|
<style>
|
||||||
|
#section-utama,
|
||||||
|
#section-sosial-budaya,
|
||||||
|
#section-keanggotaan-kelompok,
|
||||||
|
#section-akses-keuangan,
|
||||||
|
#section-keterikatan-hutang {
|
||||||
|
scroll-margin-top: 96px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@endpush
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
@if (session('success'))
|
@if (session('success'))
|
||||||
@@ -1062,6 +1074,20 @@
|
|||||||
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
||||||
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
||||||
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
||||||
|
const sectionAnchors = {
|
||||||
|
utama: 'section-utama',
|
||||||
|
sosial_budaya: 'section-sosial-budaya',
|
||||||
|
keanggotaan_kelompok: 'section-keanggotaan-kelompok',
|
||||||
|
akses_keuangan: 'section-akses-keuangan',
|
||||||
|
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||||
|
};
|
||||||
|
const nextSectionAnchors = {
|
||||||
|
utama: 'section-sosial-budaya',
|
||||||
|
sosial_budaya: 'section-keanggotaan-kelompok',
|
||||||
|
keanggotaan_kelompok: 'section-akses-keuangan',
|
||||||
|
akses_keuangan: 'section-keterikatan-hutang',
|
||||||
|
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||||
|
};
|
||||||
const fieldExamples = {
|
const fieldExamples = {
|
||||||
jumlah_tanggungan: 'Contoh: 4',
|
jumlah_tanggungan: 'Contoh: 4',
|
||||||
anak_masih_sekolah: 'Contoh: 2',
|
anak_masih_sekolah: 'Contoh: 2',
|
||||||
@@ -1399,7 +1425,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function syncPihakMembantuFields() {
|
function syncPihakMembantuFields() {
|
||||||
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||||
|
const isTidakAda = !isAdaSengketa || $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||||
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||||
|
|
||||||
$fields.prop('disabled', isTidakAda);
|
$fields.prop('disabled', isTidakAda);
|
||||||
@@ -1409,6 +1436,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function syncSengketaFields() {
|
||||||
|
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||||
|
const $fields = $('#keterangan-sengketa, #pihak-membantu, #status-konflik');
|
||||||
|
const $assistanceFields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||||
|
|
||||||
|
$fields.prop('disabled', !isAdaSengketa);
|
||||||
|
|
||||||
|
if (!isAdaSengketa) {
|
||||||
|
$fields.add($assistanceFields).val('');
|
||||||
|
$fields.filter('select').trigger('change.select2');
|
||||||
|
}
|
||||||
|
|
||||||
|
syncPihakMembantuFields();
|
||||||
|
}
|
||||||
|
|
||||||
function syncPernahJualHargaLebihTinggiFields() {
|
function syncPernahJualHargaLebihTinggiFields() {
|
||||||
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
||||||
const $field = $('#penyebab-harga-lebih-tinggi');
|
const $field = $('#penyebab-harga-lebih-tinggi');
|
||||||
@@ -1601,6 +1643,37 @@
|
|||||||
clearPendapatanRowValidation($row);
|
clearPendapatanRowValidation($row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupSectionAnchors() {
|
||||||
|
$('input[name="form_section"]').each(function () {
|
||||||
|
const section = this.value;
|
||||||
|
const anchor = sectionAnchors[section];
|
||||||
|
const nextAnchor = nextSectionAnchors[section] || anchor;
|
||||||
|
const $form = $(this).closest('form');
|
||||||
|
|
||||||
|
if (anchor) {
|
||||||
|
$form.find('> .card').first().attr('id', anchor);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nextAnchor && !$form.find('input[name="redirect_fragment"]').length) {
|
||||||
|
$('<input>', {
|
||||||
|
type: 'hidden',
|
||||||
|
name: 'redirect_fragment',
|
||||||
|
value: nextAnchor
|
||||||
|
}).appendTo($form);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (window.location.hash) {
|
||||||
|
const target = document.getElementById(window.location.hash.substring(1));
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
setTimeout(function () {
|
||||||
|
target.scrollIntoView({ block: 'start' });
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
||||||
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
||||||
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
||||||
@@ -1636,6 +1709,7 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
||||||
|
$('input[name="ada_sengketa"]').on('change', syncSengketaFields);
|
||||||
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
||||||
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
||||||
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
||||||
@@ -1650,10 +1724,12 @@
|
|||||||
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
||||||
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
||||||
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
||||||
|
setupSectionAnchors();
|
||||||
applySosialEkonomiExamples();
|
applySosialEkonomiExamples();
|
||||||
syncKomoditasLainnyaOptions();
|
syncKomoditasLainnyaOptions();
|
||||||
setupAllPendapatanRows();
|
setupAllPendapatanRows();
|
||||||
syncPihakMembantuFields();
|
syncPihakMembantuFields();
|
||||||
|
syncSengketaFields();
|
||||||
syncPernahJualHargaLebihTinggiFields();
|
syncPernahJualHargaLebihTinggiFields();
|
||||||
syncPanutanFields();
|
syncPanutanFields();
|
||||||
syncTerdaftarKelompokFields();
|
syncTerdaftarKelompokFields();
|
||||||
|
|||||||
@@ -1,5 +1,17 @@
|
|||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
|
|
||||||
|
@push('scripts-head')
|
||||||
|
<style>
|
||||||
|
#section-utama,
|
||||||
|
#section-sosial-budaya,
|
||||||
|
#section-keanggotaan-kelompok,
|
||||||
|
#section-akses-keuangan,
|
||||||
|
#section-keterikatan-hutang {
|
||||||
|
scroll-margin-top: 96px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@endpush
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
@if (session('success'))
|
@if (session('success'))
|
||||||
@@ -1058,6 +1070,20 @@
|
|||||||
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
const pinjamanTokohAdatAda = @json($pinjamanTokohAdatAdaValue);
|
||||||
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
const tekananJualSegeraAda = @json($tekananJualSegeraAdaValue);
|
||||||
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
const kebebasanMemilihPembeliCukupBebas = Number(@json($kebebasanMemilihPembeliCukupBebasValue));
|
||||||
|
const sectionAnchors = {
|
||||||
|
utama: 'section-utama',
|
||||||
|
sosial_budaya: 'section-sosial-budaya',
|
||||||
|
keanggotaan_kelompok: 'section-keanggotaan-kelompok',
|
||||||
|
akses_keuangan: 'section-akses-keuangan',
|
||||||
|
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||||
|
};
|
||||||
|
const nextSectionAnchors = {
|
||||||
|
utama: 'section-sosial-budaya',
|
||||||
|
sosial_budaya: 'section-keanggotaan-kelompok',
|
||||||
|
keanggotaan_kelompok: 'section-akses-keuangan',
|
||||||
|
akses_keuangan: 'section-keterikatan-hutang',
|
||||||
|
keterikatan_hutang: 'section-keterikatan-hutang'
|
||||||
|
};
|
||||||
const fieldExamples = {
|
const fieldExamples = {
|
||||||
jumlah_tanggungan: 'Contoh: 4',
|
jumlah_tanggungan: 'Contoh: 4',
|
||||||
anak_masih_sekolah: 'Contoh: 2',
|
anak_masih_sekolah: 'Contoh: 2',
|
||||||
@@ -1395,7 +1421,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function syncPihakMembantuFields() {
|
function syncPihakMembantuFields() {
|
||||||
const isTidakAda = $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||||
|
const isTidakAda = !isAdaSengketa || $('#pihak-membantu').val() === pihakMembantuTanpaBantuan;
|
||||||
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||||
|
|
||||||
$fields.prop('disabled', isTidakAda);
|
$fields.prop('disabled', isTidakAda);
|
||||||
@@ -1405,6 +1432,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function syncSengketaFields() {
|
||||||
|
const isAdaSengketa = $('input[name="ada_sengketa"]:checked').val() === '1';
|
||||||
|
const $fields = $('#keterangan-sengketa, #pihak-membantu, #status-konflik');
|
||||||
|
const $assistanceFields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||||
|
|
||||||
|
$fields.prop('disabled', !isAdaSengketa);
|
||||||
|
|
||||||
|
if (!isAdaSengketa) {
|
||||||
|
$fields.add($assistanceFields).val('');
|
||||||
|
$fields.filter('select').trigger('change.select2');
|
||||||
|
}
|
||||||
|
|
||||||
|
syncPihakMembantuFields();
|
||||||
|
}
|
||||||
|
|
||||||
function syncPernahJualHargaLebihTinggiFields() {
|
function syncPernahJualHargaLebihTinggiFields() {
|
||||||
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
const isPernah = $('#pernah-jual-harga-lebih-tinggi').val() === pernahJualHargaLebihTinggiPernah;
|
||||||
const $field = $('#penyebab-harga-lebih-tinggi');
|
const $field = $('#penyebab-harga-lebih-tinggi');
|
||||||
@@ -1597,6 +1639,37 @@
|
|||||||
clearPendapatanRowValidation($row);
|
clearPendapatanRowValidation($row);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setupSectionAnchors() {
|
||||||
|
$('input[name="form_section"]').each(function () {
|
||||||
|
const section = this.value;
|
||||||
|
const anchor = sectionAnchors[section];
|
||||||
|
const nextAnchor = nextSectionAnchors[section] || anchor;
|
||||||
|
const $form = $(this).closest('form');
|
||||||
|
|
||||||
|
if (anchor) {
|
||||||
|
$form.find('> .card').first().attr('id', anchor);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (nextAnchor && !$form.find('input[name="redirect_fragment"]').length) {
|
||||||
|
$('<input>', {
|
||||||
|
type: 'hidden',
|
||||||
|
name: 'redirect_fragment',
|
||||||
|
value: nextAnchor
|
||||||
|
}).appendTo($form);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (window.location.hash) {
|
||||||
|
const target = document.getElementById(window.location.hash.substring(1));
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
setTimeout(function () {
|
||||||
|
target.scrollIntoView({ block: 'start' });
|
||||||
|
}, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
$(document).on('change', '.sosial-ekonomi-komoditas-utama', syncKomoditasLainnyaOptions);
|
||||||
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
$(document).on('input change', '.pendapatan-row input, .pendapatan-row select', function () {
|
||||||
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
clearPendapatanRowValidation($(this).closest('.pendapatan-row'));
|
||||||
@@ -1632,6 +1705,7 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
||||||
|
$('input[name="ada_sengketa"]').on('change', syncSengketaFields);
|
||||||
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
$('#pernah-jual-harga-lebih-tinggi').on('change', syncPernahJualHargaLebihTinggiFields);
|
||||||
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
$('input[name="panutan_petani_sukses"]').on('change', syncPanutanFields);
|
||||||
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
$('input[name="terdaftar_kelompok_tani"]').on('change', syncTerdaftarKelompokFields);
|
||||||
@@ -1646,10 +1720,12 @@
|
|||||||
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
$('#total-hutang-tidak-bersedia').on('change', syncTotalHutangFields);
|
||||||
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
$('input[name="tekanan_jual_segera"]').on('change', syncTekananJualFields);
|
||||||
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
$('input[name="kebebasan_memilih_pembeli"]').on('change', syncKebebasanPembeliFields);
|
||||||
|
setupSectionAnchors();
|
||||||
applySosialEkonomiExamples();
|
applySosialEkonomiExamples();
|
||||||
syncKomoditasLainnyaOptions();
|
syncKomoditasLainnyaOptions();
|
||||||
setupAllPendapatanRows();
|
setupAllPendapatanRows();
|
||||||
syncPihakMembantuFields();
|
syncPihakMembantuFields();
|
||||||
|
syncSengketaFields();
|
||||||
syncPernahJualHargaLebihTinggiFields();
|
syncPernahJualHargaLebihTinggiFields();
|
||||||
syncPanutanFields();
|
syncPanutanFields();
|
||||||
syncTerdaftarKelompokFields();
|
syncTerdaftarKelompokFields();
|
||||||
|
|||||||
Reference in New Issue
Block a user