akses pasar
This commit is contained in:
@@ -100,18 +100,20 @@ class PetaniLahanController extends Controller
|
||||
$lahanCount = Lahan::where('petani_id', $petaniId)
|
||||
->count();
|
||||
|
||||
$lahanUid = strtoupper(Str::random(10));
|
||||
$lahan = Lahan::create([...$validated,
|
||||
'nama' => 'Lahan ' . $komoditas->nama . ' #' . ($lahanCount + 1),
|
||||
'uid' => 'LHN-' . $petani->uid . '-' . strtoupper(Str::random(10)),
|
||||
'uid' => 'LHN-' . $petani->uid . '-' . $lahanUid,
|
||||
'petani_id' => $petaniId,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id()]
|
||||
);
|
||||
|
||||
if ($lahan) {
|
||||
$data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas) {
|
||||
$data = collect(range(1, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) {
|
||||
return [
|
||||
'lahan_id' => $lahan->id,
|
||||
'uid' => 'TNM-' . $lahanUid . '-' . strtoupper(Str::random(10)),
|
||||
'komoditas_id' => $lahan->komoditas_id,
|
||||
'jenis_komoditas_id' => $lahan->jenis_komoditas_id,
|
||||
'varietas_id' => $lahan->varietas_id,
|
||||
@@ -121,7 +123,11 @@ class PetaniLahanController extends Controller
|
||||
'kondisi_tanaman' => $lahan->kondisi_tanaman,
|
||||
'serangan_hama' => $lahan->serangan_hama,
|
||||
'penyakit_tanaman' => $lahan->penyakit_tanaman,
|
||||
'keparahan_serangan' => $lahan->keparahan_serangan
|
||||
'keparahan_serangan' => $lahan->keparahan_serangan,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
];
|
||||
});
|
||||
|
||||
@@ -209,20 +215,33 @@ class PetaniLahanController extends Controller
|
||||
|
||||
$lahan->update([...$validated,
|
||||
'nama' => 'Lahan ' . $komoditas->nama . ' #' . ($lahanCount + 1),
|
||||
'uid' => 'LHN-' . $petani->uid . '-' . strtoupper(Str::random(10)),
|
||||
'petani_id' => $petaniId,
|
||||
'updated_by' => auth()->id()]
|
||||
);
|
||||
|
||||
$lahanUid = $lahan->uid;
|
||||
$lahanUidParts = explode('LHN-', $lahanUid);
|
||||
$lahanUid = end($lahanUidParts);
|
||||
|
||||
if ($lahan) {
|
||||
$data = collect(range($lahanCount, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas) {
|
||||
$data = collect(range($lahanCount, $lahan->jumlah_tanaman))->map(function ($i) use ($lahan, $komoditas, $lahanUid) {
|
||||
return [
|
||||
'lahan_id' => $lahan->id,
|
||||
'komoditas_id' => $lahan->komoditas_id,
|
||||
'jenis_komoditas_id' => $lahan->jenis_komoditas_id,
|
||||
'varietas_id' => $lahan->varietas_id,
|
||||
'petani_id' => $lahan->petani_id,
|
||||
'uid' => 'TMN-' . $lahanUid . '-' . strtoupper(Str::random(10)),
|
||||
'nama' => 'Tanaman ' . $komoditas->nama . ' #' . $i,
|
||||
'umur_tanaman' => $lahan->umur_tanaman,
|
||||
'kondisi_tanaman' => $lahan->kondisi_tanaman,
|
||||
'serangan_hama' => $lahan->serangan_hama,
|
||||
'penyakit_tanaman' => $lahan->penyakit_tanaman,
|
||||
'keparahan_serangan' => $lahan->keparahan_serangan,
|
||||
'created_by' => auth()->id(),
|
||||
'updated_by' => auth()->id(),
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
];
|
||||
});
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ use App\Models\Pertanian\Lahan;
|
||||
use App\Models\Pertanian\Tanaman;
|
||||
|
||||
use App\Enums\KondisiTanaman;
|
||||
use App\Enums\SeranganHama;
|
||||
use App\Enums\PenyakitTanaman;
|
||||
use App\Enums\KeparahanSerangan;
|
||||
|
||||
class PetaniLahanTanamanController extends Controller
|
||||
{
|
||||
@@ -68,12 +71,24 @@ class PetaniLahanTanamanController extends Controller
|
||||
$lahan = Lahan::where('petani_id', $petaniId)->findOrFail($lahanId);
|
||||
$lahanTanaman = Tanaman::where('lahan_id', $lahanId)->findOrFail($id);
|
||||
|
||||
$validated = $request->validate([
|
||||
$validator = Validator::make($request->all(), [
|
||||
'latitude' => ['nullable', 'numeric', 'between:-90,90', 'required_with:longitude'],
|
||||
'longitude' => ['nullable', 'numeric', 'between:-180,180', 'required_with:latitude'],
|
||||
'kondisi_tanaman' => ['nullable', 'string', new Enum(KondisiTanaman::class)],
|
||||
'serangan_hama' => ['nullable', 'string', new Enum(SeranganHama::class)],
|
||||
'penyakit_tanaman' => ['nullable', 'string', new Enum(PenyakitTanaman::class)],
|
||||
'keparahan_serangan' => ['nullable', 'string', new Enum(KeparahanSerangan::class)],
|
||||
]);
|
||||
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'Validasi gagal',
|
||||
'errors' => $validator->errors()
|
||||
], 422);
|
||||
}
|
||||
|
||||
$validated = $validator->validated();
|
||||
$lahanTanaman->update([...$validated, 'updated_by' => auth()->id()]);
|
||||
|
||||
return response()->json([
|
||||
@@ -94,7 +109,7 @@ class PetaniLahanTanamanController extends Controller
|
||||
|
||||
$petani = Petani::findOrFail($petaniId);
|
||||
$lahan = Lahan::where('petani_id', $petaniId)->findOrFail($lahanId);
|
||||
$lahanTanaman = LahanTanaman::where('lahan_id', $lahanId)->findOrFail($id);
|
||||
$lahanTanaman = Tanaman::where('lahan_id', $lahanId)->findOrFail($id);
|
||||
|
||||
$lahanTanaman->updated_by = auth()->id();
|
||||
$lahanTanaman->save();
|
||||
|
||||
@@ -43,40 +43,40 @@ class SosialEkonomiController extends Controller
|
||||
}
|
||||
|
||||
public function index(Request $request, Petani $petani)
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::with([
|
||||
'pendapatanKomoditas',
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::with([
|
||||
'pendapatanKomoditas',
|
||||
'pendapatanLuarPertanian',
|
||||
])
|
||||
->where('petani_id', $petani->id)
|
||||
->first();
|
||||
|
||||
$pendapatanKomoditas = $sosialEkonomi?->pendapatanKomoditas ?? collect();
|
||||
$pendapatanKomoditasUtama = $pendapatanKomoditas->where('kategori', 'utama')->values();
|
||||
$pendapatanKomoditasLainnya = $pendapatanKomoditas->where('kategori', 'lainnya')->values();
|
||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian?->values() ?? collect();
|
||||
$komoditasPetani = $this->komoditasPetani($petani);
|
||||
|
||||
if ($request->expectsJson()) {
|
||||
return response()->json($sosialEkonomi);
|
||||
}
|
||||
|
||||
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
||||
'petani',
|
||||
'sosialEkonomi',
|
||||
'komoditasPetani',
|
||||
'pendapatanKomoditasUtama',
|
||||
'pendapatanKomoditasLainnya',
|
||||
'pendapatanLuarPertanian',
|
||||
])
|
||||
->where('petani_id', $petani->id)
|
||||
->first();
|
||||
|
||||
$komoditasPetani = collect();
|
||||
|
||||
$pendapatanKomoditasUtama = $sosialEkonomi?->pendapatanKomoditas
|
||||
->where('kategori', 'utama') ?? collect();
|
||||
|
||||
$pendapatanKomoditasLainnya = $sosialEkonomi?->pendapatanKomoditas
|
||||
->where('kategori', 'lainnya') ?? collect();
|
||||
|
||||
$pendapatanLuarPertanian = $sosialEkonomi?->pendapatanLuarPertanian ?? collect();
|
||||
|
||||
if ($request->expectsJson()) {
|
||||
return response()->json($sosialEkonomi);
|
||||
));
|
||||
}
|
||||
|
||||
return view('produktivitas.petani.sosial-ekonomi.index', compact(
|
||||
'petani',
|
||||
'sosialEkonomi',
|
||||
'komoditasPetani',
|
||||
'pendapatanKomoditasUtama',
|
||||
'pendapatanKomoditasLainnya',
|
||||
'pendapatanLuarPertanian',
|
||||
));
|
||||
}
|
||||
|
||||
public function store(Request $request): JsonResponse|RedirectResponse
|
||||
public function store(Request $request, ?Petani $petani = null): JsonResponse|RedirectResponse
|
||||
{
|
||||
if ($petani) {
|
||||
$request->merge(['petani_id' => $petani->id]);
|
||||
}
|
||||
|
||||
$validated = $this->validateData($request);
|
||||
|
||||
$sosialEkonomi = DB::transaction(function () use ($validated) {
|
||||
@@ -97,7 +97,7 @@ class SosialEkonomiController extends Controller
|
||||
|
||||
if (!$request->expectsJson()) {
|
||||
return redirect()
|
||||
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
|
||||
->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id)
|
||||
->with('success', 'Data sosial ekonomi berhasil disimpan.');
|
||||
}
|
||||
|
||||
@@ -122,9 +122,9 @@ class SosialEkonomiController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request, string $id): JsonResponse|RedirectResponse
|
||||
public function update(Request $request, Petani|string $petani, ?string $sosialEkonomiId = null): JsonResponse|RedirectResponse
|
||||
{
|
||||
$sosialEkonomi = SosialEkonomi::findOrFail($id);
|
||||
$sosialEkonomi = $this->findSosialEkonomi($petani, $sosialEkonomiId);
|
||||
$validated = $this->validateData($request, $sosialEkonomi->id);
|
||||
|
||||
$sosialEkonomi = DB::transaction(function () use ($request, $validated, $sosialEkonomi) {
|
||||
@@ -149,7 +149,7 @@ class SosialEkonomiController extends Controller
|
||||
|
||||
if (!$request->expectsJson()) {
|
||||
return redirect()
|
||||
->route('petani.sosial-ekonomi.edit', $sosialEkonomi->petani_id)
|
||||
->route('petani.sosial-ekonomi.index', $sosialEkonomi->petani_id)
|
||||
->with('success', 'Data sosial ekonomi berhasil diperbarui.');
|
||||
}
|
||||
|
||||
@@ -306,4 +306,13 @@ class SosialEkonomiController extends Controller
|
||||
->orderBy('nama')
|
||||
->get();
|
||||
}
|
||||
|
||||
private function findSosialEkonomi(Petani|string $petani, ?string $sosialEkonomiId = null): SosialEkonomi
|
||||
{
|
||||
if ($petani instanceof Petani) {
|
||||
return SosialEkonomi::where('petani_id', $petani->id)->findOrFail($sosialEkonomiId);
|
||||
}
|
||||
|
||||
return SosialEkonomi::findOrFail($petani);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,9 @@ class Lahan extends Model
|
||||
'penyakit_tanaman',
|
||||
'keparahan_serangan',
|
||||
|
||||
'umur_tanaman',
|
||||
'umur_lahan',
|
||||
|
||||
'created_by',
|
||||
'updated_by',
|
||||
'deleted_by',
|
||||
|
||||
Reference in New Issue
Block a user