lahan tanaman edit delete

This commit is contained in:
2026-07-06 11:46:02 +07:00
parent 21679486ea
commit d0e41dc1d2
7 changed files with 257 additions and 28 deletions
@@ -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();