update field sosial ekonomi
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user