sosial ekonomi
This commit is contained in:
@@ -0,0 +1,264 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web\Produktivitas;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\Pertanian\SosialEkonomi;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class SosialEkonomiController extends Controller
|
||||
{
|
||||
public function editByPetani(string $petaniId)
|
||||
{
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
$sosialEkonomi = SosialEkonomi::with([
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
])
|
||||
->where('petani_id', $petaniId)
|
||||
->first();
|
||||
|
||||
$pendapatanKomoditas = $sosialEkonomi?->pendapatanKomoditas ?? collect();
|
||||
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
||||
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
||||
|
||||
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
||||
'petani',
|
||||
'sosialEkonomi',
|
||||
'pendapatanKomoditasUtama',
|
||||
'pendapatanKomoditasLainnya',
|
||||
'pendapatanLuarPertanian'
|
||||
));
|
||||
}
|
||||
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::with([
|
||||
'petani',
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
])
|
||||
->when($request->search, function ($query, $search) {
|
||||
$query->whereHas('petani', function ($petani) use ($search) {
|
||||
$petani->where('nama', 'like', "%{$search}%");
|
||||
});
|
||||
})
|
||||
->when($request->petani_id, fn ($query, $petaniId) => $query->where('petani_id', $petaniId))
|
||||
->orderBy('created_at', 'desc')
|
||||
->paginate($request->per_page ?? 10);
|
||||
|
||||
return response()->json($sosialEkonomi);
|
||||
}
|
||||
|
||||
public function store(Request $request): JsonResponse
|
||||
{
|
||||
$validated = $this->validateData($request);
|
||||
|
||||
$sosialEkonomi = DB::transaction(function () use ($validated) {
|
||||
$sosialEkonomi = SosialEkonomi::create($this->sosialEkonomiPayload($validated) + [
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
$this->syncPendapatanKomoditas($sosialEkonomi, $validated['pendapatan_komoditas'] ?? []);
|
||||
$this->syncPendapatanLuarPertanian($sosialEkonomi, $validated['pendapatan_luar_pertanian'] ?? []);
|
||||
|
||||
return $sosialEkonomi->load([
|
||||
'petani',
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
]);
|
||||
});
|
||||
|
||||
if (!$request->expectsJson()) {
|
||||
return redirect()
|
||||
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
|
||||
->with('success', 'Data sosial ekonomi berhasil disimpan.');
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data sosial ekonomi berhasil disimpan.',
|
||||
'data' => $sosialEkonomi,
|
||||
], 201);
|
||||
}
|
||||
|
||||
public function show(string $id): JsonResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::with([
|
||||
'petani',
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
])->findOrFail($id);
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'data' => $sosialEkonomi,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request, string $id): JsonResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||
$validated = $this->validateData($request, $sosialEkonomi->id);
|
||||
|
||||
$sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) {
|
||||
$sosialEkonomi->update($this->sosialEkonomiPayload($validated) + [
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
|
||||
if ($request->has('pendapatan_komoditas')) {
|
||||
$this->syncPendapatanKomoditas($sosialEkonomi, $validated['pendapatan_komoditas'] ?? []);
|
||||
}
|
||||
|
||||
if ($request->has('pendapatan_luar_pertanian')) {
|
||||
$this->syncPendapatanLuarPertanian($sosialEkonomi, $validated['pendapatan_luar_pertanian'] ?? []);
|
||||
}
|
||||
|
||||
return $sosialEkonomi->load([
|
||||
'petani',
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
]);
|
||||
});
|
||||
|
||||
if (!$request->expectsJson()) {
|
||||
return redirect()
|
||||
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
|
||||
->with('success', 'Data sosial ekonomi berhasil diperbarui.');
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data sosial ekonomi berhasil diperbarui.',
|
||||
'data' => $sosialEkonomi,
|
||||
]);
|
||||
}
|
||||
|
||||
public function destroy(string $id): JsonResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||
|
||||
DB::transaction(function () use ($sosialEkonomi) {
|
||||
$sosialEkonomi->update(['deleted_by' => auth()->id()]);
|
||||
$sosialEkonomi->delete();
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => 'Data sosial ekonomi berhasil dihapus.',
|
||||
]);
|
||||
}
|
||||
|
||||
private function validateData(Request $request, ?int $id = null): array
|
||||
{
|
||||
return $request->validate([
|
||||
'uid' => [
|
||||
'nullable',
|
||||
'string',
|
||||
'max:255',
|
||||
Rule::unique('sosial_ekonomi', 'uid')->ignore($id),
|
||||
],
|
||||
'petani_id' => ['nullable', 'exists:petani,id'],
|
||||
'jumlah_tanggungan' => ['nullable', 'integer', 'min:0'],
|
||||
'anak_masih_sekolah' => ['nullable', 'integer', 'min:0'],
|
||||
'yang_ikut_bekerja' => ['nullable', 'integer', 'min:0'],
|
||||
'skor_periode_paceklik' => ['nullable', 'integer', 'min:1', 'max:5'],
|
||||
'bulan_paceklik' => ['nullable', 'string', 'max:255'],
|
||||
'sumber_penghasilan_paceklik' => ['nullable', 'string'],
|
||||
'total_estimasi_biaya_kebun_per_musim' => ['nullable', 'integer', 'min:0'],
|
||||
'skor_kemampuan_menabung' => ['nullable', 'integer', 'min:1', 'max:5'],
|
||||
'estimasi_tabungan_per_bulan' => ['nullable', 'integer', 'min:0'],
|
||||
'skor_kecukupan_penghasilan' => ['nullable', 'integer', 'min:1', 'max:5'],
|
||||
'alasan_kecukupan_penghasilan' => ['nullable', 'string'],
|
||||
'status_kepemilikan_lahan' => ['nullable', 'string', 'max:255'],
|
||||
'skor_kejelasan_status_lahan' => ['nullable', 'integer', 'min:1', 'max:5'],
|
||||
'ada_sertifikat_dokumen' => ['nullable', 'boolean'],
|
||||
'ada_sengketa' => ['nullable', 'boolean'],
|
||||
'keterangan_sengketa' => ['nullable', 'string'],
|
||||
'pihak_membantu_konflik' => ['nullable', 'string', 'max:255'],
|
||||
'pihak_membantu_konflik_nama' => ['nullable', 'string', 'max:255'],
|
||||
'tahun_bantuan_konflik' => ['nullable', 'integer', 'digits:4'],
|
||||
'status_konflik' => ['nullable', 'string', 'max:255'],
|
||||
|
||||
'pendapatan_komoditas' => ['nullable', 'array'],
|
||||
'pendapatan_komoditas.*.kategori' => ['required_with:pendapatan_komoditas', 'string', 'in:utama,lainnya'],
|
||||
'pendapatan_komoditas.*.komoditas' => ['nullable', 'string', 'max:255'],
|
||||
'pendapatan_komoditas.*.pendapatan' => ['nullable', 'integer', 'min:0'],
|
||||
'pendapatan_komoditas.*.periode' => ['nullable', 'string', 'in:musim,tahun'],
|
||||
|
||||
'pendapatan_luar_pertanian' => ['nullable', 'array'],
|
||||
'pendapatan_luar_pertanian.*.jenis_pekerjaan' => ['nullable', 'string', 'max:255'],
|
||||
'pendapatan_luar_pertanian.*.estimasi_per_bulan' => ['nullable', 'integer', 'min:0'],
|
||||
]);
|
||||
}
|
||||
|
||||
private function sosialEkonomiPayload(array $validated): array
|
||||
{
|
||||
return collect($validated)
|
||||
->except(['pendapatan_komoditas', 'pendapatan_luar_pertanian'])
|
||||
->merge([
|
||||
'uid' => $validated['uid'] ?? 'SEK-' . Str::uuid(),
|
||||
])
|
||||
->all();
|
||||
}
|
||||
|
||||
private function syncPendapatanKomoditas(SosialEkonomi $sosialEkonomi, array $items): void
|
||||
{
|
||||
$sosialEkonomi->pendapatanKomoditas()->delete();
|
||||
|
||||
foreach ($items as $item) {
|
||||
if (!$this->hasPendapatanKomoditasValue($item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$sosialEkonomi->pendapatanKomoditas()->create([
|
||||
'uid' => $item['uid'] ?? 'PKM-' . Str::uuid(),
|
||||
'kategori' => $item['kategori'],
|
||||
'komoditas' => $item['komoditas'] ?? null,
|
||||
'pendapatan' => $item['pendapatan'] ?? null,
|
||||
'periode' => $item['periode'] ?? null,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
private function syncPendapatanLuarPertanian(SosialEkonomi $sosialEkonomi, array $items): void
|
||||
{
|
||||
$sosialEkonomi->pendapatanLuarPertanian()->delete();
|
||||
|
||||
foreach ($items as $item) {
|
||||
if (!$this->hasPendapatanLuarPertanianValue($item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$sosialEkonomi->pendapatanLuarPertanian()->create([
|
||||
'uid' => $item['uid'] ?? 'PLP-' . Str::uuid(),
|
||||
'jenis_pekerjaan' => $item['jenis_pekerjaan'] ?? null,
|
||||
'estimasi_per_bulan' => $item['estimasi_per_bulan'] ?? null,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
private function hasPendapatanKomoditasValue(array $item): bool
|
||||
{
|
||||
return filled($item['komoditas'] ?? null)
|
||||
|| filled($item['pendapatan'] ?? null)
|
||||
|| filled($item['periode'] ?? null);
|
||||
}
|
||||
|
||||
private function hasPendapatanLuarPertanianValue(array $item): bool
|
||||
{
|
||||
return filled($item['jenis_pekerjaan'] ?? null)
|
||||
|| filled($item['estimasi_per_bulan'] ?? null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PendapatanKomoditas extends Model
|
||||
{
|
||||
protected $table = 'pendapatan_komoditas';
|
||||
|
||||
protected $fillable = [
|
||||
'uid',
|
||||
'sosial_ekonomi_id',
|
||||
'kategori',
|
||||
'komoditas',
|
||||
'pendapatan',
|
||||
'periode',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'pendapatan' => 'integer',
|
||||
];
|
||||
|
||||
public function sosialEkonomi(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(SosialEkonomi::class, 'sosial_ekonomi_id');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PendapatanLuarPertanian extends Model
|
||||
{
|
||||
protected $table = 'pendapatan_luar_pertanian';
|
||||
|
||||
protected $fillable = [
|
||||
'uid',
|
||||
'sosial_ekonomi_id',
|
||||
'jenis_pekerjaan',
|
||||
'estimasi_per_bulan',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'estimasi_per_bulan' => 'integer',
|
||||
];
|
||||
|
||||
public function sosialEkonomi(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(SosialEkonomi::class, 'sosial_ekonomi_id');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class SosialEkonomi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
protected $table = 'sosial_ekonomi';
|
||||
|
||||
protected $fillable = [
|
||||
'uid',
|
||||
'petani_id',
|
||||
'jumlah_tanggungan',
|
||||
'anak_masih_sekolah',
|
||||
'yang_ikut_bekerja',
|
||||
'skor_periode_paceklik',
|
||||
'bulan_paceklik',
|
||||
'sumber_penghasilan_paceklik',
|
||||
'total_estimasi_biaya_kebun_per_musim',
|
||||
'skor_kemampuan_menabung',
|
||||
'estimasi_tabungan_per_bulan',
|
||||
'skor_kecukupan_penghasilan',
|
||||
'alasan_kecukupan_penghasilan',
|
||||
'status_kepemilikan_lahan',
|
||||
'skor_kejelasan_status_lahan',
|
||||
'ada_sertifikat_dokumen',
|
||||
'ada_sengketa',
|
||||
'keterangan_sengketa',
|
||||
'pihak_membantu_konflik',
|
||||
'pihak_membantu_konflik_nama',
|
||||
'tahun_bantuan_konflik',
|
||||
'status_konflik',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'jumlah_tanggungan' => 'integer',
|
||||
'anak_masih_sekolah' => 'integer',
|
||||
'yang_ikut_bekerja' => 'integer',
|
||||
'skor_periode_paceklik' => 'integer',
|
||||
'total_estimasi_biaya_kebun_per_musim' => 'integer',
|
||||
'skor_kemampuan_menabung' => 'integer',
|
||||
'estimasi_tabungan_per_bulan' => 'integer',
|
||||
'skor_kecukupan_penghasilan' => 'integer',
|
||||
'skor_kejelasan_status_lahan' => 'integer',
|
||||
'ada_sertifikat_dokumen' => 'boolean',
|
||||
'ada_sengketa' => 'boolean',
|
||||
'tahun_bantuan_konflik' => 'integer',
|
||||
];
|
||||
|
||||
public function petani(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(Petani::class, 'petani_id');
|
||||
}
|
||||
|
||||
public function pendapatanKomoditas(): HasMany
|
||||
{
|
||||
return $this->hasMany(PendapatanKomoditas::class, 'sosial_ekonomi_id');
|
||||
}
|
||||
|
||||
public function pendapatanLuarPertanian(): HasMany
|
||||
{
|
||||
return $this->hasMany(PendapatanLuarPertanian::class, 'sosial_ekonomi_id');
|
||||
}
|
||||
}
|
||||
@@ -82,7 +82,7 @@
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('petani.edit', $petani->id) }}">
|
||||
<a class="nav-link {{ request()->routeIs('petani.sosial-ekonomi.*') ? 'active' : '' }}" href="{{ route('petani.sosial-ekonomi.edit', $petani->id) }}">
|
||||
<i class="icon-base ti tabler-user-check me-1_5 icon-sm"></i>Sosial Ekonomi
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -0,0 +1,318 @@
|
||||
@extends('layout.main')
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
@if (session('success'))
|
||||
<div class="alert alert-success">{{ session('success') }}</div>
|
||||
@endif
|
||||
|
||||
@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">
|
||||
<div class="col-md-12">
|
||||
@include('produktivitas.petani.header', ['petani' => $petani])
|
||||
|
||||
<form method="POST" action="{{ $sosialEkonomi ? route('sosial-ekonomi.update', $sosialEkonomi->id) : route('sosial-ekonomi.store') }}">
|
||||
@csrf
|
||||
@if($sosialEkonomi)
|
||||
@method('PUT')
|
||||
@endif
|
||||
|
||||
<input type="hidden" name="petani_id" value="{{ $petani->id }}">
|
||||
|
||||
<div class="card mb-6">
|
||||
<div class="card-body pt-12">
|
||||
<h5 class="pb-4 border-bottom mb-4">Komposisi Anggota Keluarga</h5>
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="jumlah-tanggungan">Jumlah Tanggungan</label>
|
||||
<input type="number" min="0" class="form-control @error('jumlah_tanggungan') is-invalid @enderror" id="jumlah-tanggungan" name="jumlah_tanggungan" value="{{ old('jumlah_tanggungan', $sosialEkonomi?->jumlah_tanggungan) }}">
|
||||
@error('jumlah_tanggungan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="anak-masih-sekolah">Anak Masih Sekolah</label>
|
||||
<input type="number" min="0" class="form-control @error('anak_masih_sekolah') is-invalid @enderror" id="anak-masih-sekolah" name="anak_masih_sekolah" value="{{ old('anak_masih_sekolah', $sosialEkonomi?->anak_masih_sekolah) }}">
|
||||
@error('anak_masih_sekolah')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="yang-ikut-bekerja">Yang Ikut Bekerja</label>
|
||||
<input type="number" min="0" class="form-control @error('yang_ikut_bekerja') is-invalid @enderror" id="yang-ikut-bekerja" name="yang_ikut_bekerja" value="{{ old('yang_ikut_bekerja', $sosialEkonomi?->yang_ikut_bekerja) }}">
|
||||
@error('yang_ikut_bekerja')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan dari Komoditas Utama</h5>
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered align-middle">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Komoditas</th>
|
||||
<th>Pendapatan (Rp)</th>
|
||||
<th>Periode</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanKomoditasUtama->get($i))
|
||||
<tr>
|
||||
<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) }}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $i }}][pendapatan]" value="{{ old("pendapatan_komoditas.$i.pendapatan", $item?->pendapatan) }}">
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="pendapatan_komoditas[{{ $i }}][periode]">
|
||||
<option value="">Pilih</option>
|
||||
<option value="musim" {{ old("pendapatan_komoditas.$i.periode", $item?->periode) === 'musim' ? 'selected' : '' }}>Musim</option>
|
||||
<option value="tahun" {{ old("pendapatan_komoditas.$i.periode", $item?->periode) === 'tahun' ? 'selected' : '' }}>Tahun</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan dari Komoditas Lain</h5>
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered align-middle">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Komoditas</th>
|
||||
<th>Pendapatan (Rp)</th>
|
||||
<th>Periode</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanKomoditasLainnya->get($i))
|
||||
@php($index = $i + 2)
|
||||
<tr>
|
||||
<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) }}">
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" class="form-control" name="pendapatan_komoditas[{{ $index }}][pendapatan]" value="{{ old("pendapatan_komoditas.$index.pendapatan", $item?->pendapatan) }}">
|
||||
</td>
|
||||
<td>
|
||||
<select class="form-control" name="pendapatan_komoditas[{{ $index }}][periode]">
|
||||
<option value="">Pilih</option>
|
||||
<option value="musim" {{ old("pendapatan_komoditas.$index.periode", $item?->periode) === 'musim' ? 'selected' : '' }}>Musim</option>
|
||||
<option value="tahun" {{ old("pendapatan_komoditas.$index.periode", $item?->periode) === 'tahun' ? 'selected' : '' }}>Tahun</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Pendapatan di Luar Pertanian</h5>
|
||||
<div class="table-responsive mb-4">
|
||||
<table class="table table-bordered align-middle">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Jenis Pekerjaan</th>
|
||||
<th>Estimasi per Bulan (Rp)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for($i = 0; $i < 2; $i++)
|
||||
@php($item = $pendapatanLuarPertanian->get($i))
|
||||
<tr>
|
||||
<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) }}">
|
||||
</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) }}">
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Stabilitas Penghasilan</h5>
|
||||
<div class="row">
|
||||
<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>
|
||||
</select>
|
||||
@error('skor_periode_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="bulan-paceklik">Bulan Paceklik Biasanya</label>
|
||||
<input type="text" class="form-control @error('bulan_paceklik') is-invalid @enderror" id="bulan-paceklik" name="bulan_paceklik" value="{{ old('bulan_paceklik', $sosialEkonomi?->bulan_paceklik) }}">
|
||||
@error('bulan_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-4 mb-4 form-control-validation">
|
||||
<label class="form-label" for="sumber-penghasilan-paceklik">Sumber Penghasilan Saat Paceklik</label>
|
||||
<input type="text" class="form-control @error('sumber_penghasilan_paceklik') is-invalid @enderror" id="sumber-penghasilan-paceklik" name="sumber_penghasilan_paceklik" value="{{ old('sumber_penghasilan_paceklik', $sosialEkonomi?->sumber_penghasilan_paceklik) }}">
|
||||
@error('sumber_penghasilan_paceklik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Biaya Produksi dan Tabungan</h5>
|
||||
<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) }}">
|
||||
@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>
|
||||
</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) }}">
|
||||
@error('estimasi_tabungan_per_bulan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Persepsi Kecukupan Penghasilan</h5>
|
||||
<div class="row">
|
||||
<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>
|
||||
</select>
|
||||
@error('skor_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-8 mb-4 form-control-validation">
|
||||
<label class="form-label" for="alasan-kecukupan">Alasan</label>
|
||||
<textarea class="form-control @error('alasan_kecukupan_penghasilan') is-invalid @enderror" id="alasan-kecukupan" name="alasan_kecukupan_penghasilan" rows="2">{{ old('alasan_kecukupan_penghasilan', $sosialEkonomi?->alasan_kecukupan_penghasilan) }}</textarea>
|
||||
@error('alasan_kecukupan_penghasilan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="pb-4 border-bottom mb-4 mt-4">Kondisi Aset & Lahan - Kejelasan Hak Kelola</h5>
|
||||
<div class="row">
|
||||
<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>
|
||||
@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
|
||||
</select>
|
||||
@error('status_kepemilikan_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<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>
|
||||
</select>
|
||||
@error('skor_kejelasan_status_lahan')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-2 mb-4 form-control-validation">
|
||||
<label class="form-label" for="ada-sertifikat">Ada Sertifikat/Dokumen?</label>
|
||||
<select class="form-control @error('ada_sertifikat_dokumen') is-invalid @enderror" id="ada-sertifikat" name="ada_sertifikat_dokumen">
|
||||
<option value="">Pilih</option>
|
||||
<option value="0" {{ old('ada_sertifikat_dokumen', $sosialEkonomi?->ada_sertifikat_dokumen) === false || old('ada_sertifikat_dokumen', $sosialEkonomi?->ada_sertifikat_dokumen) === '0' ? 'selected' : '' }}>Tidak Ada</option>
|
||||
<option value="1" {{ old('ada_sertifikat_dokumen', $sosialEkonomi?->ada_sertifikat_dokumen) === true || old('ada_sertifikat_dokumen', $sosialEkonomi?->ada_sertifikat_dokumen) === '1' ? 'selected' : '' }}>Ada</option>
|
||||
</select>
|
||||
@error('ada_sertifikat_dokumen')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-2 mb-4 form-control-validation">
|
||||
<label class="form-label" for="ada-sengketa">Ada Sengketa?</label>
|
||||
<select class="form-control @error('ada_sengketa') is-invalid @enderror" id="ada-sengketa" name="ada_sengketa">
|
||||
<option value="">Pilih</option>
|
||||
<option value="0" {{ old('ada_sengketa', $sosialEkonomi?->ada_sengketa) === false || old('ada_sengketa', $sosialEkonomi?->ada_sengketa) === '0' ? 'selected' : '' }}>Tidak Ada</option>
|
||||
<option value="1" {{ old('ada_sengketa', $sosialEkonomi?->ada_sengketa) === true || old('ada_sengketa', $sosialEkonomi?->ada_sengketa) === '1' ? 'selected' : '' }}>Ada</option>
|
||||
</select>
|
||||
@error('ada_sengketa')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 mb-4 form-control-validation">
|
||||
<label class="form-label" for="keterangan-sengketa">Keterangan Sengketa</label>
|
||||
<textarea class="form-control @error('keterangan_sengketa') is-invalid @enderror" id="keterangan-sengketa" name="keterangan_sengketa" rows="2">{{ old('keterangan_sengketa', $sosialEkonomi?->keterangan_sengketa) }}</textarea>
|
||||
@error('keterangan_sengketa')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="pihak-membantu">Pihak yang Membantu</label>
|
||||
<select class="form-control @error('pihak_membantu_konflik') is-invalid @enderror" id="pihak-membantu" name="pihak_membantu_konflik">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Tidak ada-selesaikan sendiri" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Tidak ada-selesaikan sendiri' ? 'selected' : '' }}>Tidak ada-selesaikan sendiri</option>
|
||||
<option value="Ada" {{ old('pihak_membantu_konflik', $sosialEkonomi?->pihak_membantu_konflik) === 'Ada' ? 'selected' : '' }}>Ada</option>
|
||||
</select>
|
||||
@error('pihak_membantu_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="pihak-membantu-nama">Nama Pihak</label>
|
||||
<input type="text" class="form-control @error('pihak_membantu_konflik_nama') is-invalid @enderror" id="pihak-membantu-nama" name="pihak_membantu_konflik_nama" value="{{ old('pihak_membantu_konflik_nama', $sosialEkonomi?->pihak_membantu_konflik_nama) }}">
|
||||
@error('pihak_membantu_konflik_nama')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="tahun-bantuan">Tahun Bantuan</label>
|
||||
<input type="number" min="1900" max="2100" class="form-control @error('tahun_bantuan_konflik') is-invalid @enderror" id="tahun-bantuan" name="tahun_bantuan_konflik" value="{{ old('tahun_bantuan_konflik', $sosialEkonomi?->tahun_bantuan_konflik) }}">
|
||||
@error('tahun_bantuan_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
<div class="col-md-3 mb-4 form-control-validation">
|
||||
<label class="form-label" for="status-konflik">Status Konflik</label>
|
||||
<select class="form-control @error('status_konflik') is-invalid @enderror" id="status-konflik" name="status_konflik">
|
||||
<option value="">Pilih</option>
|
||||
<option value="Sudah selesai" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Sudah selesai' ? 'selected' : '' }}>Sudah selesai</option>
|
||||
<option value="Belum, masih berlanjut" {{ old('status_konflik', $sosialEkonomi?->status_konflik) === 'Belum, masih berlanjut' ? 'selected' : '' }}>Belum, masih berlanjut</option>
|
||||
</select>
|
||||
@error('status_konflik')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-4 text-end">
|
||||
<button type="submit" class="btn btn-success">
|
||||
<i class="icon-base ti tabler-device-floppy me-1_5 icon-sm"></i>Simpan Sosial Ekonomi
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<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();
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
+3
-2
@@ -186,7 +186,8 @@ 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']);});
|
||||
|
||||
Reference in New Issue
Block a user