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;
|
namespace App\Http\Controllers\Web\Produktivitas;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Pertanian\Komoditas;
|
||||||
|
use App\Models\Pertanian\Lahan;
|
||||||
use App\Models\Pertanian\Petani;
|
use App\Models\Pertanian\Petani;
|
||||||
use App\Models\Pertanian\SosialEkonomi;
|
use App\Models\Pertanian\SosialEkonomi;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
@@ -27,13 +30,15 @@ class SosialEkonomiController extends Controller
|
|||||||
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
||||||
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
||||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
||||||
|
$komoditasPetani = $this->komoditasPetani($petani);
|
||||||
|
|
||||||
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
||||||
'petani',
|
'petani',
|
||||||
'sosialEkonomi',
|
'sosialEkonomi',
|
||||||
'pendapatanKomoditasUtama',
|
'pendapatanKomoditasUtama',
|
||||||
'pendapatanKomoditasLainnya',
|
'pendapatanKomoditasLainnya',
|
||||||
'pendapatanLuarPertanian'
|
'pendapatanLuarPertanian',
|
||||||
|
'komoditasPetani'
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,7 +61,7 @@ class SosialEkonomiController extends Controller
|
|||||||
return response()->json($sosialEkonomi);
|
return response()->json($sosialEkonomi);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function store(Request $request): JsonResponse
|
public function store(Request $request): JsonResponse|RedirectResponse
|
||||||
{
|
{
|
||||||
$validated = $this->validateData($request);
|
$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);
|
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||||
$validated = $this->validateData($request, $sosialEkonomi->id);
|
$validated = $this->validateData($request, $sosialEkonomi->id);
|
||||||
@@ -201,12 +206,19 @@ class SosialEkonomiController extends Controller
|
|||||||
|
|
||||||
private function sosialEkonomiPayload(array $validated): array
|
private function sosialEkonomiPayload(array $validated): array
|
||||||
{
|
{
|
||||||
return collect($validated)
|
$payload = collect($validated)
|
||||||
->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
||||||
->merge([
|
->merge([
|
||||||
'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(),
|
'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(),
|
||||||
])
|
])
|
||||||
->all();
|
->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
|
private function syncPendapatanKomoditas(SosialEkonomi $sosialEkonomi, array $items): void
|
||||||
@@ -261,4 +273,23 @@ class SosialEkonomiController extends Controller
|
|||||||
return filled($item['jenis_pekerjaan'] ?? null)
|
return filled($item['jenis_pekerjaan'] ?? null)
|
||||||
|| filled($item['estimasi_per_bulan'] ?? 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>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<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
|
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Praktik Budidaya
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<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
|
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Sosial Ekonomi
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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>
|
</div>
|
||||||
|
|
||||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan dari Komoditas Utama</h5>
|
<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">
|
<div class="table-responsive mb-4">
|
||||||
<table class="table table-bordered align-middle">
|
<table class="table table-bordered align-middle">
|
||||||
<thead>
|
<thead>
|
||||||
@@ -62,13 +67,20 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
@for($i = 0; $i < 2; $i++)
|
@for($i = 0; $i < 2; $i++)
|
||||||
@php($item = $pendapatanKomoditasUtama->get($i))
|
@php($item = $pendapatanKomoditasUtama->get($i))
|
||||||
<tr>
|
<tr class="pendapatan-row" data-group="komoditas-utama" data-row-index="{{ $i }}">
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="pendapatan_komoditas[{{ $i }}][kategori]" value="utama">
|
<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>
|
||||||
<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>
|
||||||
<td>
|
<td>
|
||||||
<select class="form-control" name="pendapatan_komoditas[{{ $i }}][periode]">
|
<select class="form-control" name="pendapatan_komoditas[{{ $i }}][periode]">
|
||||||
@@ -97,13 +109,20 @@
|
|||||||
@for($i = 0; $i < 2; $i++)
|
@for($i = 0; $i < 2; $i++)
|
||||||
@php($item = $pendapatanKomoditasLainnya->get($i))
|
@php($item = $pendapatanKomoditasLainnya->get($i))
|
||||||
@php($index = $i + 2)
|
@php($index = $i + 2)
|
||||||
<tr>
|
<tr class="pendapatan-row" data-group="komoditas-lainnya" data-row-index="{{ $i }}">
|
||||||
<td>
|
<td>
|
||||||
<input type="hidden" name="pendapatan_komoditas[{{ $index }}][kategori]" value="lainnya">
|
<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>
|
||||||
<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>
|
||||||
<td>
|
<td>
|
||||||
<select class="form-control" name="pendapatan_komoditas[{{ $index }}][periode]">
|
<select class="form-control" name="pendapatan_komoditas[{{ $index }}][periode]">
|
||||||
@@ -130,12 +149,13 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
@for($i = 0; $i < 2; $i++)
|
@for($i = 0; $i < 2; $i++)
|
||||||
@php($item = $pendapatanLuarPertanian->get($i))
|
@php($item = $pendapatanLuarPertanian->get($i))
|
||||||
<tr>
|
<tr class="pendapatan-row" data-group="luar-pertanian" data-row-index="{{ $i }}">
|
||||||
<td>
|
<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>
|
||||||
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endfor
|
@endfor
|
||||||
@@ -148,12 +168,12 @@
|
|||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="skor-periode-paceklik">Periode Paceklik</label>
|
<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">
|
<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="">Pilih Periode Paceklik</option>
|
||||||
<option value="1" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 1 ? 'selected' : '' }}>1 - >4 bulan</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' : '' }}>2 - 3-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' : '' }}>3 - 1-2 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' : '' }}>4 - Sebentar & tidak menentu</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' : '' }}>5 - Tidak ada, stabil</option>
|
<option value="5" {{ old('skor_periode_paceklik', $sosialEkonomi?->skor_periode_paceklik) == 5 ? 'selected' : '' }}>Tidak ada, stabil</option>
|
||||||
</select>
|
</select>
|
||||||
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
@@ -173,24 +193,26 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<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>
|
<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
|
@error('total_estimasi_biaya_kebun_per_musim')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="skor-menabung">Kemampuan Menabung</label>
|
<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">
|
<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="">Pilih Kemampuan Menabung</option>
|
||||||
<option value="1" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 1 ? 'selected' : '' }}>1 - Tidak bisa sama sekali</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' : '' }}>2 - Pernah tapi selalu terpakai</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' : '' }}>3 - Kadang-kadang</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' : '' }}>4 - Bisa tapi tidak tetap</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' : '' }}>5 - Rutin & jumlah tetap</option>
|
<option value="5" {{ old('skor_kemampuan_menabung', $sosialEkonomi?->skor_kemampuan_menabung) == 5 ? 'selected' : '' }}>Rutin & jumlah tetap</option>
|
||||||
</select>
|
</select>
|
||||||
@error('skor_kemampuan_menabung')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
@error('skor_kemampuan_menabung')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="tabungan-bulan">Estimasi Tabungan per Bulan (Rp)</label>
|
<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
|
@error('estimasi_tabungan_per_bulan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -200,12 +222,12 @@
|
|||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="skor-kecukupan">Kecukupan Penghasilan untuk Keluarga</label>
|
<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">
|
<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="">Pilih Kecukupan Penghasilan</option>
|
||||||
<option value="1" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 1 ? 'selected' : '' }}>1 - Sangat tidak cukup</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' : '' }}>2 - Kurang, sering berhutang</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' : '' }}>3 - Cukup pas-pasan</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' : '' }}>4 - Cukup, kadang ada sisa</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' : '' }}>5 - Lebih dari cukup</option>
|
<option value="5" {{ old('skor_kecukupan_penghasilan', $sosialEkonomi?->skor_kecukupan_penghasilan) == 5 ? 'selected' : '' }}>Lebih dari cukup</option>
|
||||||
</select>
|
</select>
|
||||||
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
@@ -221,7 +243,7 @@
|
|||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="status-kepemilikan-lahan">Status Kepemilikan Lahan</label>
|
<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">
|
<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)
|
@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>
|
<option value="{{ $status }}" {{ old('status_kepemilikan_lahan', $sosialEkonomi?->status_kepemilikan_lahan) === $status ? 'selected' : '' }}>{{ $status }}</option>
|
||||||
@endforeach
|
@endforeach
|
||||||
@@ -231,12 +253,12 @@
|
|||||||
<div class="col-md-4 mb-4 form-control-validation">
|
<div class="col-md-4 mb-4 form-control-validation">
|
||||||
<label class="form-label" for="skor-kejelasan-lahan">Kejelasan Status Lahan</label>
|
<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">
|
<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="">Pilih Kejelasan Status Lahan</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="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' : '' }}>2 - Ada dokumen tapi masih 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' : '' }}>3 - Pernah sengketa, sudah selesai</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' : '' }}>4 - Lahan adat/keluarga/perhutanan sosial tanpa sengketa</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' : '' }}>5 - Bersertifikat & tidak ada sengketa</option>
|
<option value="5" {{ old('skor_kejelasan_status_lahan', $sosialEkonomi?->skor_kejelasan_status_lahan) == 5 ? 'selected' : '' }}>Bersertifikat & tidak ada sengketa</option>
|
||||||
</select>
|
</select>
|
||||||
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
</div>
|
</div>
|
||||||
@@ -312,7 +334,110 @@
|
|||||||
<script>
|
<script>
|
||||||
'use strict';
|
'use strict';
|
||||||
$(document).ready(function () {
|
$(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>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
|
|||||||
+4
-3
@@ -186,8 +186,9 @@ Route::middleware('auth')
|
|||||||
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy');
|
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy');
|
||||||
|
|
||||||
// Petani
|
// 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('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', 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