Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web\Produktivitas;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
|
||||
use App\Models\Pertanian\Petani;
|
||||
|
||||
class PraktikBudidayaController extends Controller
|
||||
{
|
||||
public function index($petaniId, Request $request)
|
||||
{
|
||||
if (!Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||
abort(403);
|
||||
}
|
||||
|
||||
$title = 'Petani - Praktik Budidaya';
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
|
||||
return view('produktivitas.petani.praktik-budidaya.add', compact('title', 'petani'));
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,12 @@
|
||||
namespace App\Http\Controllers\Web\Produktivitas;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Pertanian\Komoditas;
|
||||
use App\Models\Pertanian\Lahan;
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\Pertanian\SosialEkonomi;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
@@ -27,13 +30,15 @@ class SosialEkonomiController extends Controller
|
||||
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
||||
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
||||
$komoditasPetani = $this->komoditasPetani($petani);
|
||||
|
||||
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
||||
'petani',
|
||||
'sosialEkonomi',
|
||||
'pendapatanKomoditasUtama',
|
||||
'pendapatanKomoditasLainnya',
|
||||
'pendapatanLuarPertanian'
|
||||
'pendapatanLuarPertanian',
|
||||
'komoditasPetani'
|
||||
));
|
||||
}
|
||||
|
||||
@@ -56,7 +61,7 @@ class SosialEkonomiController extends Controller
|
||||
return response()->json($sosialEkonomi);
|
||||
}
|
||||
|
||||
public function store(Request $request): JsonResponse
|
||||
public function store(Request $request): JsonResponse|RedirectResponse
|
||||
{
|
||||
$validated = $this->validateData($request);
|
||||
|
||||
@@ -103,7 +108,7 @@ class SosialEkonomiController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request, string $id): JsonResponse
|
||||
public function update(Request $request, string $id): JsonResponse|RedirectResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||
$validated = $this->validateData($request, $sosialEkonomi->id);
|
||||
@@ -201,12 +206,19 @@ class SosialEkonomiController extends Controller
|
||||
|
||||
private function sosialEkonomiPayload(array $validated): array
|
||||
{
|
||||
return collect($validated)
|
||||
$payload = collect($validated)
|
||||
->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
||||
->merge([
|
||||
'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(),
|
||||
])
|
||||
->all();
|
||||
|
||||
if (($payload['pihak_membantu_konflik'] ?? null) === 'Tidak ada-selesaikan sendiri') {
|
||||
$payload['pihak_membantu_konflik_nama'] = null;
|
||||
$payload['tahun_bantuan_konflik'] = null;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
private function syncPendapatanKomoditas(SosialEkonomi $sosialEkonomi, array $items): void
|
||||
@@ -261,4 +273,23 @@ class SosialEkonomiController extends Controller
|
||||
return filled($item['jenis_pekerjaan'] ?? null)
|
||||
|| filled($item['estimasi_per_bulan'] ?? null);
|
||||
}
|
||||
|
||||
private function komoditasPetani(Petani $petani)
|
||||
{
|
||||
$komoditasIds = Lahan::query()
|
||||
->whereNotNull('komoditas_id')
|
||||
->where(function ($query) use ($petani) {
|
||||
$query->where('petani_id', $petani->id);
|
||||
|
||||
if ($petani->profile_id) {
|
||||
$query->orWhere('profile_id', $petani->profile_id);
|
||||
}
|
||||
})
|
||||
->distinct()
|
||||
->pluck('komoditas_id');
|
||||
|
||||
return Komoditas::whereIn('id', $komoditasIds)
|
||||
->orderBy('nama')
|
||||
->get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('petani.edit', $petani->id) }}">
|
||||
<a class="nav-link {{ request()->routeIs('petani.praktik-budidaya.*') ? 'active' : '' }}" href="{{ route('petani.praktik-budidaya.index', $petani->id) }}">
|
||||
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Praktik Budidaya
|
||||
</a>
|
||||
</li>
|
||||
@@ -82,7 +82,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {{ request()->routeIs('petani.sosial-ekonomi.*') ? 'active' : '' }}" href="{{ route('petani.sosial-ekonomi.edit', $petani->id) }}">
|
||||
<a class="nav-link {{ request()->routeIs('petani.sosial-ekonomi.*') ? 'active' : '' }}" href="{{ route('petani.sosial-ekonomi.index', $petani->id) }}">
|
||||
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Sosial Ekonomi
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -0,0 +1,326 @@
|
||||
@extends('layout.main')
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="row">
|
||||
|
||||
<!-- PROFIL PETANI -->
|
||||
|
||||
<div class="col-md-12">
|
||||
|
||||
@include('produktivitas.petani.header', ['petani' => $petani])
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card-body pt-12">
|
||||
<!-- INFORMASI PETANI -->
|
||||
<h5 class="pb-4 border-bottom mb-4">Persiapan Lahan & Tanaman</h5>
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="tenaga-kerja">Tenaga Kerja</label>
|
||||
<select class="form-control @error('tenaga_kerja') is-invalid @enderror" id="tenaga-kerja" name="tenaga_kerja">
|
||||
<option value="">Pilih Tenaga Kerja</option>
|
||||
</select>
|
||||
@error('tenaga_kerja')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="pb-4 border-bottom mb-4">Praktik Pemangkasan & Penyerbukan</h5>
|
||||
<div class="row border-bottom mb-4 pb-4">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="frekuensi-pemangkasan-komoditas-utama">Frekuensi Pemangkasan Komoditas Utama<span class="text-danger">*</span></label>
|
||||
<select class="form-control @error('frekuensi_pemangkasan_komoditas_utama') is-invalid @enderror" id="frekuensi-pemangkasan-komoditas-utama" name="frekuensi_pemangkasan_komoditas_utama">
|
||||
<option value="">Pilih Frekuensi Pemangkasan</option>
|
||||
<option value="1">Tidak pernah memangkas sama sekali</option>
|
||||
<option value="2">Memangkas, tapi tidak rutin dan tidak tahu tekniknya</option>
|
||||
<option value="3">Memangkas 1 kali/tahun, tahu jenis tekniknya</option>
|
||||
<option value="4">Memangkas 2 kali/tahun, tahu jenis tekniknya</option>
|
||||
<option value="5">Memangkas lebih dari 2 kali/tahun dengan teknik yang tepat dan pohon penaung juga dipangkas rutin</option>
|
||||
</select>
|
||||
@error('frekuensi_pemangkasan_komoditas_utama')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label d-block fw-medium">Teknik pemangkasan yang dilakukan<span class="text-danger">*</span></label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="bentuk"
|
||||
id="teknik-bentuk"
|
||||
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('bentuk', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="teknik-bentuk">Pemangkasan bentuk</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="produksi"
|
||||
id="teknik-produksi"
|
||||
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('produksi', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="teknik-produksi">Pemangkasan produksi</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="peremajaan"
|
||||
id="teknik-peremajaan"
|
||||
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('peremajaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="teknik-peremajaan">Pemangkasan peremajaan</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="kebiasaan"
|
||||
id="teknik-kebiasaan"
|
||||
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('kebiasaan', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="teknik-kebiasaan">Tidak tahu jenis pemangkasannya — dilakukan berdasarkan kebiasaan</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check d-flex align-items-center gap-2 mt-1">
|
||||
<input class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
|
||||
type="checkbox"
|
||||
name="teknik_pemangkasan[]"
|
||||
value="lainnya"
|
||||
id="teknik-lainnya"
|
||||
{{ (is_array(old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true))) && in_array('lainnya', old('teknik_pemangkasan', json_decode($petani->teknik_pemangkasan, true)))) ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="teknik-lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text" name="teknik_pemangkasan_lainnya" class="form-control form-control-sm w-50" value="{{ old('teknik_pemangkasan_lainnya', $petani->teknik_pemangkasan_lainnya ?? '') }}" placeholder="Sebutkan jenis pemangkasan lain...">
|
||||
</div>
|
||||
|
||||
@error('teknik_pemangkasan')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="frekuensi-pemangkasan-pohon-penaung">Frekuensi Pemangkasan Pohon Penaung<span class="text-danger">*</span></label>
|
||||
<select class="form-control @error('frekuensi_pemangkasan_pohon_penaung') is-invalid @enderror" id="frekuensi-pemangkasan-pohon-penaung" name="frekuensi_pemangkasan_pohon_penaung">
|
||||
<option value="">Pilih Frekuensi Pemangkasan</option>
|
||||
<option value="1">Tidak pernah memangkas sama sekali</option>
|
||||
<option value="2">Memangkas, tapi tidak rutin dan tidak tahu tekniknya</option>
|
||||
<option value="3">Memangkas 1 kali/tahun, tahu jenis tekniknya</option>
|
||||
<option value="4">Memangkas 2 kali/tahun, tahu jenis tekniknya</option>
|
||||
<option value="5">Memangkas lebih dari 2 kali/tahun dengan teknik yang tepat dan pohon penaung juga dipangkas rutin</option>
|
||||
</select>
|
||||
@error('frekuensi_pemangkasan_pohon_penaung')<div class="error invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label d-block fw-medium">Penyerbukan Manual<span class="text-danger">*</span></label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="penyerbukan_manual"
|
||||
value="Selalu, setiap musim berbunga"
|
||||
id="penyerbukan-selalu"
|
||||
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Selalu, setiap musim berbunga' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-selalu">Selalu, setiap musim berbunga</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="penyerbukan_manual"
|
||||
value="Kadang-kadang, tergantung kondisi"
|
||||
id="penyerbukan-kadang"
|
||||
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Kadang-kadang, tergantung kondisi' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-kadang">Kadang-kadang, tergantung kondisi</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('penyerbukan_manual') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="penyerbukan_manual"
|
||||
value="Tidak pernah"
|
||||
id="penyerbukan-tidak-pernah"
|
||||
{{ old('penyerbukan_manual', $petani->penyerbukan_manual) == 'Tidak pernah' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-tidak-pernah">Tidak pernah</label>
|
||||
</div>
|
||||
|
||||
@error('penyerbukan_manual')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label d-block fw-medium">Alasan Tidak Melakukan Penyerbukan Manual<span class="text-danger">*</span></label>
|
||||
|
||||
<div class="form-check mt-2">
|
||||
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="alasan_tidak_penyerbukan"
|
||||
value="Tidak tahu caranya"
|
||||
id="penyerbukan-tidak-tahu"
|
||||
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Tidak tahu caranya' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-tidak-tahu">Tidak tahu caranya</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="alasan_tidak_penyerbukan"
|
||||
value="Tidak ada tenaga/waktu"
|
||||
id="penyerbukan-tenaga-waktu"
|
||||
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Tidak ada tenaga/waktu' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-tenaga-waktu">Tidak ada tenaga/waktu</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="alasan_tidak_penyerbukan"
|
||||
value="Mengandalkan penyerbuk alami"
|
||||
id="penyerbukan-mengandalkan-alami"
|
||||
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'Mengandalkan penyerbuk alami' ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="penyerbukan-mengandalkan-alami">Mengandalkan penyerbuk alami</label>
|
||||
</div>
|
||||
|
||||
<div class="form-check d-flex align-items-center gap-2 mt-1">
|
||||
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
|
||||
type="radio"
|
||||
name="alasan_tidak_penyerbukan"
|
||||
value="lainnya"
|
||||
id="alasan-lainnya"
|
||||
{{ old('alasan_tidak_penyerbukan', $petani->alasan_tidak_penyerbukan) == 'lainnya' ? 'checked' : '' }}>
|
||||
|
||||
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
|
||||
|
||||
<input type="text"
|
||||
name="alasan_tidak_penyerbukan_lainnya"
|
||||
class="form-control form-control-sm w-50"
|
||||
value="{{ old('alasan_tidak_penyerbukan_lainnya', $petani->alasan_tidak_penyerbukan_lainnya ?? '') }}"
|
||||
placeholder="Sebutkan alasan lain...">
|
||||
</div>
|
||||
|
||||
@error('alasan_tidak_penyerbukan')
|
||||
<div class="error invalid-feedback d-block">{{ $message }}</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4 text-end">
|
||||
<button id="btn-profil" type="button" class="btn btn-success data-submit wave-effect wave-light">Simpan Praktik Budidaya</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
'use strict';
|
||||
$(document).ready(function () {
|
||||
|
||||
$('#edit-petani-jenis-kelamin, #edit-petani-pendidikan-terakhir, #edit-petani-pekerjaan-utama, #edit-petani-komoditas, #edit-petani-pekerjaan-sampingan, #edit-petani-komoditas-sampingan, #edit-petani-status-pernikahan, #edit-petani-status-keluarga, #edit-petani-petani-pengumpul').select2();
|
||||
|
||||
$('#edit-petani-provinsi').select2().change(function(e) {
|
||||
e.preventDefault();
|
||||
var provinsiId = $(this).val();
|
||||
$('#edit-petani-kabupaten').prop('disabled', !provinsiId).val('').trigger('change');
|
||||
$('#edit-petani-kecamatan').prop('disabled', true).val('').trigger('change');
|
||||
$('#edit-petani-desa').prop('disabled', true).val('').trigger('change');
|
||||
|
||||
if (provinsiId) {
|
||||
$.ajax({
|
||||
url: '{{ route("kabupatenkota.byprovinsi", ":id") }}'.replace(':id', provinsiId),
|
||||
method: 'GET',
|
||||
success: function(data) {
|
||||
$('#edit-petani-kabupaten').empty().append('<option value="">Pilih Kabupaten/Kota</option>');
|
||||
data.forEach(function(kabupaten) {
|
||||
$('#edit-petani-kabupaten').append('<option value="' + kabupaten.id + '">' + kabupaten.nama + '</option>');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$('#edit-petani-kabupaten').select2().change(function(e) {
|
||||
e.preventDefault();
|
||||
var kabupatenId = $(this).val();
|
||||
$('#edit-petani-kecamatan').prop('disabled', !kabupatenId).val('').trigger('change');
|
||||
$('#edit-petani-desa').prop('disabled', true).val('').trigger('change');
|
||||
|
||||
if (kabupatenId) {
|
||||
$.ajax({
|
||||
url: '{{ route("kecamatan.bykabupatenkota", ":id") }}'.replace(':id', kabupatenId),
|
||||
method: 'GET',
|
||||
success: function(data) {
|
||||
$('#edit-petani-kecamatan').empty().append('<option value="">Pilih Kecamatan</option>');
|
||||
data.forEach(function(kecamatan) {
|
||||
$('#edit-petani-kecamatan').append('<option value="' + kecamatan.id + '">' + kecamatan.nama + '</option>');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$('#edit-petani-kecamatan').select2().change(function(e) {
|
||||
e.preventDefault();
|
||||
var kecamatanId = $(this).val();
|
||||
$('#edit-petani-desa').prop('disabled', !kecamatanId).val('').trigger('change');
|
||||
|
||||
if (kecamatanId) {
|
||||
$.ajax({
|
||||
url: '{{ route("desakelurahan.bykecamatan", ":id") }}'.replace(':id', kecamatanId),
|
||||
method: 'GET',
|
||||
success: function(data) {
|
||||
$('#edit-petani-desa').empty().append('<option value="">Pilih Desa/Kelurahan</option>');
|
||||
data.forEach(function(desa) {
|
||||
$('#edit-petani-desa').append('<option value="' + desa.id + '">' + desa.nama + '</option>');
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$('#edit-petani-desa').select2();
|
||||
|
||||
|
||||
$('#editPetaniForm').validate({
|
||||
rules: {
|
||||
nama: { required: true },
|
||||
tanggal_lahir: { required: true, date: true },
|
||||
jenis_kelamin: { required: true },
|
||||
pendidikan_terakhir: { required: true },
|
||||
alamat: { required: true },
|
||||
desa_kelurahan_id: { required: true },
|
||||
status_perkawinan: { required: true },
|
||||
},
|
||||
messages: {
|
||||
nama: { required: "Nama petani wajib diisi" },
|
||||
tanggal_lahir: { required: "Tanggal lahir wajib diisi", date: "Format tanggal salah" },
|
||||
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
|
||||
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
|
||||
alamat: { required: "Alamat wajib diisi" },
|
||||
desa_kelurahan_id: { required: "Desa/Kelurahan wajib diisi" },
|
||||
status_perkawinan: { required: "Status perkawinan wajib diisi" },
|
||||
},
|
||||
errorElement: 'div',
|
||||
errorPlacement: function (error, element) {
|
||||
error.addClass('invalid-feedback');
|
||||
element.closest('.mb-6, .form-control-validation').append(error);
|
||||
},
|
||||
highlight: function (element) {
|
||||
$(element).addClass('is-invalid');
|
||||
},
|
||||
unhighlight: function (element) {
|
||||
$(element).removeClass('is-invalid');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -50,6 +50,11 @@
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan dari Komoditas Utama</h5>
|
||||
@if($komoditasPetani->isEmpty())
|
||||
<div class="alert alert-warning">
|
||||
Petani ini belum memiliki komoditas pada data lahan. Tambahkan data Lahan & Tanaman terlebih dahulu agar pilihan komoditas tersedia.
|
||||
</div>
|
||||
@endif
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered align-middle">
|
||||
<thead>
|
||||
@@ -62,13 +67,20 @@
|
||||
<tbody>
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanKomoditasUtama->get($i))
|
||||
<tr>
|
||||
<tr class="pendapatan-row" data-group="komoditas-utama" data-row-index="{{ $i }}">
|
||||
<td>
|
||||
<input type="hidden" name="pendapatan_komoditas[{{ $i }}][kategori]" value="utama">
|
||||
<input type="text" class="form-control" name="pendapatan_komoditas[{{ $i }}][komoditas]" value="{{ old("pendapatan_komoditas.$i.komoditas", $item?->komoditas) }}">
|
||||
@php($selectedKomoditas = old("pendapatan_komoditas.$i.komoditas", $item?->komoditas))
|
||||
<select class="form-control sosial-ekonomi-komoditas sosial-ekonomi-komoditas-utama pendapatan-trigger" data-kategori="utama" name="pendapatan_komoditas[{{ $i }}][komoditas]">
|
||||
<option value="">Pilih Komoditas</option>
|
||||
@foreach($komoditasPetani as $komoditas)
|
||||
<option value="{{ $komoditas->nama }}" {{ $selectedKomoditas === $komoditas->nama ? 'selected' : '' }}>{{ $komoditas->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $i }}][pendapatan]" value="{{ old("pendapatan_komoditas.$i.pendapatan", $item?->pendapatan) }}">
|
||||
@php($pendapatanValue = old("pendapatan_komoditas.$i.pendapatan", $item?->pendapatan))
|
||||
<input type="text" inputmode="numeric" class="form-control currency-input" name="pendapatan_komoditas[{{ $i }}][pendapatan]" value="{{ filled($pendapatanValue) ? number_format((int) preg_replace('/\D/', '', $pendapatanValue), 0, ',', '.') : '' }}">
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="pendapatan_komoditas[{{ $i }}][periode]">
|
||||
@@ -97,13 +109,20 @@
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanKomoditasLainnya->get($i))
|
||||
@php($index = $i + 2)
|
||||
<tr>
|
||||
<tr class="pendapatan-row" data-group="komoditas-lainnya" data-row-index="{{ $i }}">
|
||||
<td>
|
||||
<input type="hidden" name="pendapatan_komoditas[{{ $index }}][kategori]" value="lainnya">
|
||||
<input type="text" class="form-control" name="pendapatan_komoditas[{{ $index }}][komoditas]" value="{{ old("pendapatan_komoditas.$index.komoditas", $item?->komoditas) }}">
|
||||
@php($selectedKomoditas = old("pendapatan_komoditas.$index.komoditas", $item?->komoditas))
|
||||
<select class="form-control sosial-ekonomi-komoditas sosial-ekonomi-komoditas-lainnya pendapatan-trigger" data-kategori="lainnya" name="pendapatan_komoditas[{{ $index }}][komoditas]">
|
||||
<option value="">Pilih Komoditas</option>
|
||||
@foreach($komoditasPetani as $komoditas)
|
||||
<option value="{{ $komoditas->nama }}" {{ $selectedKomoditas === $komoditas->nama ? 'selected' : '' }}>{{ $komoditas->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $index }}][pendapatan]" value="{{ old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan) }}">
|
||||
@php($pendapatanValue = old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan))
|
||||
<input type="text" inputmode="numeric" class="form-control currency-input" name="pendapatan_komoditas[{{ $index }}][pendapatan]" value="{{ filled($pendapatanValue) ? number_format((int) preg_replace('/\D/', '', $pendapatanValue), 0, ',', '.') : '' }}">
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="pendapatan_komoditas[{{ $index }}][periode]">
|
||||
@@ -130,12 +149,13 @@
|
||||
<tbody>
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanLuarPertanian->get($i))
|
||||
<tr>
|
||||
<tr class="pendapatan-row" data-group="luar-pertanian" data-row-index="{{ $i }}">
|
||||
<td>
|
||||
<input type="text" class="form-control" name="pendapatan_luar_pertanian[{{ $i }}][jenis_pekerjaan]" value="{{ old("pendapatan_luar_pertanian.$i.jenis_pekerjaan", $item?->jenis_pekerjaan) }}">
|
||||
<input type="text" class="form-control pendapatan-trigger" name="pendapatan_luar_pertanian[{{ $i }}][jenis_pekerjaan]" value="{{ old("pendapatan_luar_pertanian.$i.jenis_pekerjaan", $item?->jenis_pekerjaan) }}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" class="form-control" name="pendapatan_luar_pertanian[{{ $i }}][estimasi_per_bulan]" value="{{ old("pendapatan_luar_pertanian.$i.estimasi_per_bulan", $item?->estimasi_per_bulan) }}">
|
||||
@php($estimasiValue = old("pendapatan_luar_pertanian.$i.estimasi_per_bulan", $item?->estimasi_per_bulan))
|
||||
<input type="text" inputmode="numeric" class="form-control currency-input" name="pendapatan_luar_pertanian[{{ $i }}][estimasi_per_bulan]" value="{{ filled($estimasiValue) ? number_format((int) preg_replace('/\D/', '', $estimasiValue), 0, ',', '.') : '' }}">
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
@@ -148,12 +168,12 @@
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="skor-periode-paceklik">Periode Paceklik</label>
|
||||
<select class="form-control @error('skor_periode_paceklik') is-invalid @enderror" id="skor-periode-paceklik" name="skor_periode_paceklik">
|
||||
<option value="">Pilih Skala</option>
|
||||
<option value="1" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 1 ? 'selected' : '' }}>1 - >4 bulan</option>
|
||||
<option value="2" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 2 ? 'selected' : '' }}>2 - 3-4 bulan</option>
|
||||
<option value="3" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 3 ? 'selected' : '' }}>3 - 1-2 bulan</option>
|
||||
<option value="4" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 4 ? 'selected' : '' }}>4 - Sebentar & tidak menentu</option>
|
||||
<option value="5" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 5 ? 'selected' : '' }}>5 - Tidak ada, stabil</option>
|
||||
<option value="">Pilih Periode Paceklik</option>
|
||||
<option value="1" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 1 ? 'selected' : '' }}>>4 bulan</option>
|
||||
<option value="2" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 2 ? 'selected' : '' }}>3-4 bulan</option>
|
||||
<option value="3" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 3 ? 'selected' : '' }}>1-2 bulan</option>
|
||||
<option value="4" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 4 ? 'selected' : '' }}>Sebentar & tidak menentu</option>
|
||||
<option value="5" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 5 ? 'selected' : '' }}>Tidak ada, stabil</option>
|
||||
</select>
|
||||
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
@@ -173,24 +193,26 @@
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="biaya-kebun">Total Estimasi Biaya Kebun per Musim (Rp)</label>
|
||||
<input type="number" min="0" class="form-control @error('total_estimasi_biaya_kebun_per_musim') is-invalid @enderror" id="biaya-kebun" name="total_estimasi_biaya_kebun_per_musim" value="{{ old('total_estimasi_biaya_kebun_per_musim', $sosialEkonomi?->total_estimasi_biaya_kebun_per_musim) }}">
|
||||
@php($biayaKebunValue = old('total_estimasi_biaya_kebun_per_musim', $sosialEkonomi?->total_estimasi_biaya_kebun_per_musim))
|
||||
<input type="text" inputmode="numeric" class="form-control currency-input @error('total_estimasi_biaya_kebun_per_musim') is-invalid @enderror" id="biaya-kebun" name="total_estimasi_biaya_kebun_per_musim" value="{{ filled($biayaKebunValue) ? number_format((int) preg_replace('/\D/', '', $biayaKebunValue), 0, ',', '.') : '' }}">
|
||||
@error('total_estimasi_biaya_kebun_per_musim')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="skor-menabung">Kemampuan Menabung</label>
|
||||
<select class="form-control @error('skor_kemampuan_menabung') is-invalid @enderror" id="skor-menabung" name="skor_kemampuan_menabung">
|
||||
<option value="">Pilih Skala</option>
|
||||
<option value="1" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 1 ? 'selected' : '' }}>1 - Tidak bisa sama sekali</option>
|
||||
<option value="2" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 2 ? 'selected' : '' }}>2 - Pernah tapi selalu terpakai</option>
|
||||
<option value="3" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 3 ? 'selected' : '' }}>3 - Kadang-kadang</option>
|
||||
<option value="4" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 4 ? 'selected' : '' }}>4 - Bisa tapi tidak tetap</option>
|
||||
<option value="5" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 5 ? 'selected' : '' }}>5 - Rutin & jumlah tetap</option>
|
||||
<option value="">Pilih Kemampuan Menabung</option>
|
||||
<option value="1" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 1 ? 'selected' : '' }}>Tidak bisa sama sekali</option>
|
||||
<option value="2" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 2 ? 'selected' : '' }}>Pernah tapi selalu terpakai</option>
|
||||
<option value="3" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 3 ? 'selected' : '' }}>Kadang-kadang</option>
|
||||
<option value="4" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 4 ? 'selected' : '' }}>Bisa tapi tidak tetap</option>
|
||||
<option value="5" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 5 ? 'selected' : '' }}>Rutin & jumlah tetap</option>
|
||||
</select>
|
||||
@error('skor_kemampuan_menabung')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="tabungan-bulan">Estimasi Tabungan per Bulan (Rp)</label>
|
||||
<input type="number" min="0" class="form-control @error('estimasi_tabungan_per_bulan') is-invalid @enderror" id="tabungan-bulan" name="estimasi_tabungan_per_bulan" value="{{ old('estimasi_tabungan_per_bulan', $sosialEkonomi?->estimasi_tabungan_per_bulan) }}">
|
||||
@php($tabunganValue = old('estimasi_tabungan_per_bulan', $sosialEkonomi?->estimasi_tabungan_per_bulan))
|
||||
<input type="text" inputmode="numeric" class="form-control currency-input @error('estimasi_tabungan_per_bulan') is-invalid @enderror" id="tabungan-bulan" name="estimasi_tabungan_per_bulan" value="{{ filled($tabunganValue) ? number_format((int) preg_replace('/\D/', '', $tabunganValue), 0, ',', '.') : '' }}">
|
||||
@error('estimasi_tabungan_per_bulan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
@@ -200,12 +222,12 @@
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="skor-kecukupan">Kecukupan Penghasilan untuk Keluarga</label>
|
||||
<select class="form-control @error('skor_kecukupan_penghasilan') is-invalid @enderror" id="skor-kecukupan" name="skor_kecukupan_penghasilan">
|
||||
<option value="">Pilih Skala</option>
|
||||
<option value="1" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 1 ? 'selected' : '' }}>1 - Sangat tidak cukup</option>
|
||||
<option value="2" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 2 ? 'selected' : '' }}>2 - Kurang, sering berhutang</option>
|
||||
<option value="3" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 3 ? 'selected' : '' }}>3 - Cukup pas-pasan</option>
|
||||
<option value="4" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 4 ? 'selected' : '' }}>4 - Cukup, kadang ada sisa</option>
|
||||
<option value="5" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 5 ? 'selected' : '' }}>5 - Lebih dari cukup</option>
|
||||
<option value="">Pilih Kecukupan Penghasilan</option>
|
||||
<option value="1" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 1 ? 'selected' : '' }}>Sangat tidak cukup</option>
|
||||
<option value="2" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 2 ? 'selected' : '' }}>Kurang, sering berhutang</option>
|
||||
<option value="3" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 3 ? 'selected' : '' }}>Cukup pas-pasan</option>
|
||||
<option value="4" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 4 ? 'selected' : '' }}>Cukup, kadang ada sisa</option>
|
||||
<option value="5" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 5 ? 'selected' : '' }}>Lebih dari cukup</option>
|
||||
</select>
|
||||
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
@@ -221,7 +243,7 @@
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="status-kepemilikan-lahan">Status Kepemilikan Lahan</label>
|
||||
<select class="form-control @error('status_kepemilikan_lahan') is-invalid @enderror" id="status-kepemilikan-lahan" name="status_kepemilikan_lahan">
|
||||
<option value="">Pilih Status</option>
|
||||
<option value="">Pilih Status Kepemilikan Lahan</option>
|
||||
@foreach(['Milik pribadi', 'Milik orang tua-keluarga', 'Sewa-bagi hasil', 'Lahan adat', 'Perhutanan sosial'] as $status)
|
||||
<option value="{{ $status }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan) === $status ? 'selected' : '' }}>{{ $status }}</option>
|
||||
@endforeach
|
||||
@@ -231,12 +253,12 @@
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="skor-kejelasan-lahan">Kejelasan Status Lahan</label>
|
||||
<select class="form-control @error('skor_kejelasan_status_lahan') is-invalid @enderror" id="skor-kejelasan-lahan" name="skor_kejelasan_status_lahan">
|
||||
<option value="">Pilih Skala</option>
|
||||
<option value="1" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 1 ? 'selected' : '' }}>1 - Tidak ada dokumen & ada sengketa</option>
|
||||
<option value="2" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 2 ? 'selected' : '' }}>2 - Ada dokumen tapi masih sengketa</option>
|
||||
<option value="3" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 3 ? 'selected' : '' }}>3 - Pernah sengketa, sudah selesai</option>
|
||||
<option value="4" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 4 ? 'selected' : '' }}>4 - Lahan adat/keluarga/perhutanan sosial tanpa sengketa</option>
|
||||
<option value="5" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 5 ? 'selected' : '' }}>5 - Bersertifikat & tidak ada sengketa</option>
|
||||
<option value="">Pilih Kejelasan Status Lahan</option>
|
||||
<option value="1" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 1 ? 'selected' : '' }}>Tidak ada dokumen & ada sengketa</option>
|
||||
<option value="2" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 2 ? 'selected' : '' }}>Ada dokumen tapi masih sengketa</option>
|
||||
<option value="3" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 3 ? 'selected' : '' }}>Pernah sengketa, sudah selesai</option>
|
||||
<option value="4" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 4 ? 'selected' : '' }}>Lahan adat/keluarga/perhutanan sosial tanpa sengketa</option>
|
||||
<option value="5" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 5 ? 'selected' : '' }}>Bersertifikat & tidak ada sengketa</option>
|
||||
</select>
|
||||
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
@@ -312,7 +334,110 @@
|
||||
<script>
|
||||
'use strict';
|
||||
$(document).ready(function () {
|
||||
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #ada-sertifikat, #ada-sengketa, #pihak-membantu, #status-konflik').select2();
|
||||
$('#skor-periode-paceklik, #skor-menabung, #skor-kecukupan, #status-kepemilikan-lahan, #skor-kejelasan-lahan, #ada-sertifikat, #ada-sengketa, #pihak-membantu, #status-konflik, .sosial-ekonomi-komoditas').select2();
|
||||
|
||||
function syncKomoditasLainnyaOptions() {
|
||||
const selectedUtama = $('.sosial-ekonomi-komoditas-utama')
|
||||
.map(function () {
|
||||
return $(this).val();
|
||||
})
|
||||
.get()
|
||||
.filter(Boolean);
|
||||
|
||||
$('.sosial-ekonomi-komoditas-lainnya').each(function () {
|
||||
const $select = $(this);
|
||||
const currentValue = $select.val();
|
||||
|
||||
$select.find('option').each(function () {
|
||||
const $option = $(this);
|
||||
const value = $option.val();
|
||||
|
||||
if (!value) {
|
||||
$option.prop('disabled', false);
|
||||
return;
|
||||
}
|
||||
|
||||
$option.prop('disabled', selectedUtama.includes(value));
|
||||
});
|
||||
|
||||
if (currentValue && selectedUtama.includes(currentValue)) {
|
||||
$select.val('').trigger('change.select2');
|
||||
} else {
|
||||
$select.trigger('change.select2');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function rowHasValue($row) {
|
||||
const triggerValue = $row.find('.pendapatan-trigger').first().val();
|
||||
|
||||
return Boolean(triggerValue);
|
||||
}
|
||||
|
||||
function syncPendapatanRows(group) {
|
||||
const $rows = $('.pendapatan-row[data-group="' + group + '"]');
|
||||
let previousHasValue = true;
|
||||
|
||||
$rows.each(function (index) {
|
||||
const $row = $(this);
|
||||
const currentHasValue = rowHasValue($row);
|
||||
|
||||
if (index === 0 || previousHasValue || currentHasValue) {
|
||||
$row.removeClass('d-none');
|
||||
} else {
|
||||
$row.addClass('d-none');
|
||||
}
|
||||
|
||||
previousHasValue = currentHasValue;
|
||||
});
|
||||
}
|
||||
|
||||
function syncAllPendapatanRows() {
|
||||
syncPendapatanRows('komoditas-utama');
|
||||
syncPendapatanRows('komoditas-lainnya');
|
||||
syncPendapatanRows('luar-pertanian');
|
||||
}
|
||||
|
||||
function syncPihakMembantuFields() {
|
||||
const isTidakAda = $('#pihak-membantu').val() === 'Tidak ada-selesaikan sendiri';
|
||||
const $fields = $('#pihak-membantu-nama, #tahun-bantuan');
|
||||
|
||||
$fields.prop('disabled', isTidakAda);
|
||||
|
||||
if (isTidakAda) {
|
||||
$fields.val('');
|
||||
}
|
||||
}
|
||||
|
||||
function onlyDigits(value) {
|
||||
return String(value || '').replace(/\D/g, '');
|
||||
}
|
||||
|
||||
function formatRupiah(value) {
|
||||
const digits = onlyDigits(value);
|
||||
|
||||
return digits.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||
}
|
||||
|
||||
$('.sosial-ekonomi-komoditas-utama').on('change', syncKomoditasLainnyaOptions);
|
||||
$('.pendapatan-trigger').on('change keyup', syncAllPendapatanRows);
|
||||
$('.currency-input').on('input', function () {
|
||||
const cursorAtEnd = this.selectionStart === this.value.length;
|
||||
this.value = formatRupiah(this.value);
|
||||
|
||||
if (cursorAtEnd) {
|
||||
this.setSelectionRange(this.value.length, this.value.length);
|
||||
}
|
||||
});
|
||||
$('form').on('submit', function () {
|
||||
$(this).find('.currency-input').each(function () {
|
||||
this.value = onlyDigits(this.value);
|
||||
});
|
||||
});
|
||||
$('#pihak-membantu').on('change', syncPihakMembantuFields);
|
||||
syncKomoditasLainnyaOptions();
|
||||
syncAllPendapatanRows();
|
||||
syncPihakMembantuFields();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
+4
-3
@@ -186,8 +186,9 @@ Route::middleware('auth')
|
||||
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy');
|
||||
|
||||
// Petani
|
||||
Route::get('petani/{petani}/sosial-ekonomi', [App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class, 'editByPetani'])->name('petani.sosial-ekonomi.edit');
|
||||
Route::resource('petani', App\Http\Controllers\Web\Produktivitas\PetaniController::class);
|
||||
Route::resource('sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class)->except(['create', 'edit']);
|
||||
Route::resource('petani.lahan-tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanController::class);
|
||||
Route::resource('petani.lahan-tanaman.tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanTanamanController::class)->only(['show', 'update', 'destroy']);});
|
||||
Route::resource('petani.lahan-tanaman.tanaman', App\Http\Controllers\Web\Produktivitas\PetaniLahanTanamanController::class)->only(['show', 'update', 'destroy']);
|
||||
Route::resource('petani.praktik-budidaya', App\Http\Controllers\Web\Produktivitas\PraktikBudidayaController::class);
|
||||
Route::resource('petani.sosial-ekonomi', App\Http\Controllers\Web\Produktivitas\SosialEkonomiController::class);
|
||||
});
|
||||
Reference in New Issue
Block a user