get(); $provinces = Province::all(); return view('master-data.lahan.index', compact('lands', 'provinces')); } public function store(Request $request) { $customMessage = [ 'owner.required' => 'Nama pemilik wajib diisi', 'owner.max' => 'Nama pemilik maksimal 25 karakter', 'owner.string' => 'Nama pemilik harus berupa string', 'nohp.required' => 'Nomor HP wajib diisi', 'nohp.min' => 'Nomor HP minimal 10 karakter', 'nohp.max' => 'Nomor HP maksimal 13 karakter', 'nohp.string' => 'Nomor HP harus berupa string', 'rental_price.required' => 'Harga sewa wajib diisi', 'rental_price.numeric' => 'Harga sewa harus berupa angka', 'rental_start.required' => 'Tanggal mulai sewa wajib diisi', 'rental_start.date' => 'Tanggal mulai sewa harus berupa tanggal', 'rental_start.after_or_equal' => 'Tanggal mulai sewa harus hari ini atau setelahnya', 'rental_until.required' => 'Tanggal sampai sewa wajib diisi', 'rental_until.date' => 'Tanggal sampai sewa harus berupa tanggal', 'rental_until.after_or_equal' => 'Tanggal sampai sewa harus sama atau lebih besar dari tanggal mulai sewa', 'land_name.required' => 'Nama lahan wajib diisi', 'land_name.max' => 'Nama lahan maksimal 25 karakter', 'land_name.string' => 'Nama lahan harus berupa string', 'province_id.required' => 'Provinsi wajib diisi', 'province_id.exists' => 'Provinsi tidak ditemukan', 'regency_id.required' => 'Kota wajib diisi', 'regency_id.exists' => 'Kota tidak ditemukan', 'district_id.required' => 'Kecamatan wajib diisi', 'district_id.exists' => 'Kecamatan tidak ditemukan', 'address.required' => 'Alamat wajib diisi', 'address.max' => 'Alamat maksimal 100 karakter', 'address.string' => 'Alamat harus berupa string', 'lat.required' => 'Latitude wajib diisi', 'lat.numeric' => 'Latitude harus berupa angka', 'lng.required' => 'Longitude wajib diisi', 'lng.numeric' => 'Longitude harus berupa angka', ]; $request->merge([ 'rental_price' => str_replace('.', '', $request->rental_price), ]); $validator = Validator::make($request->all(), [ 'owner' => 'required|string|max:25', 'nohp' => 'required|string|min:10|max:13', 'rental_price' => 'required|numeric', 'rental_start' => 'required|date|after_or_equal:today', 'rental_until' => 'required|date|after_or_equal:rental_start', 'land_name' => 'required|string|max:25', 'province_id' => 'required|exists:provinces,id', 'regency_id' => 'required|exists:regencies,id', 'district_id' => 'required|exists:districts,id', 'address' => 'required|string|max:100', 'lat' => 'required|numeric', 'lng' => 'required|numeric', ], $customMessage); if ($validator->fails()) { toast($validator->messages()->all()[0], 'error')->position('top')->autoclose(3000); return redirect()->back()->withInput(); } $land = new Land(); $land->owner = $request->owner; $land->no_hp = $request->nohp; $land->rental_price = $request->rental_price; $land->rental_start = $request->rental_start; $land->rental_until = $request->rental_until; $land->land_name = $request->land_name; $land->province_code = $request->province_id; $land->regency_code = $request->regency_id; $land->district_code = $request->district_id; $land->address = $request->address; $land->latitude = $request->lat; $land->longitude = $request->lng; try { $land->save(); toast('Data berhasil disimpan', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { dd($th->getMessage()); toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } public function update(Request $request, $id) { $customMessage = [ 'owner.required' => 'Nama pemilik wajib diisi', 'owner.max' => 'Nama pemilik maksimal 25 karakter', 'owner.string' => 'Nama pemilik harus berupa string', 'nohp.required' => 'Nomor HP wajib diisi', 'nohp.min' => 'Nomor HP minimal 10 karakter', 'nohp.max' => 'Nomor HP maksimal 13 karakter', 'nohp.string' => 'Nomor HP harus berupa string', 'rental_price.required' => 'Harga sewa wajib diisi', 'rental_price.numeric' => 'Harga sewa harus berupa angka', 'rental_start.required' => 'Tanggal mulai sewa wajib diisi', 'rental_start.date' => 'Tanggal mulai sewa harus berupa tanggal', 'rental_start.after_or_equal' => 'Tanggal mulai sewa harus hari ini atau setelahnya', 'rental_until.required' => 'Tanggal sampai sewa wajib diisi', 'rental_until.date' => 'Tanggal sampai sewa harus berupa tanggal', 'rental_until.after_or_equal' => 'Tanggal sampai sewa harus sama atau lebih besar dari tanggal mulai sewa', 'land_name.required' => 'Nama lahan wajib diisi', 'land_name.max' => 'Nama lahan maksimal 25 karakter', 'land_name.string' => 'Nama lahan harus berupa string', 'province_id.required' => 'Provinsi wajib diisi', 'province_id.exists' => 'Provinsi tidak ditemukan', 'regency_id.required' => 'Kota wajib diisi', 'regency_id.exists' => 'Kota tidak ditemukan', 'district_id.required' => 'Kecamatan wajib diisi', 'district_id.exists' => 'Kecamatan tidak ditemukan', 'address.required' => 'Alamat wajib diisi', 'address.max' => 'Alamat maksimal 100 karakter', 'address.string' => 'Alamat harus berupa string', 'lat.required' => 'Latitude wajib diisi', 'lat.numeric' => 'Latitude harus berupa angka', 'lng.required' => 'Longitude wajib diisi', 'lng.numeric' => 'Longitude harus berupa angka', ]; $request->merge([ 'rental_price' => str_replace('.', '', $request->rental_price), ]); $validator = Validator::make($request->all(), [ 'owner' => 'required|string|max:25', 'nohp' => 'required|string|min:10|max:13', 'rental_price' => 'required|numeric', 'rental_start' => 'required|date|after_or_equal:today', 'rental_until' => 'required|date|after_or_equal:rental_start', 'land_name' => 'required|string|max:25', 'province_id' => 'required|exists:provinces,id', 'regency_id' => 'required|exists:regencies,id', 'district_id' => 'required|exists:districts,id', 'address' => 'required|string|max:100', 'lat' => 'required|numeric', 'lng' => 'required|numeric', ], $customMessage); if ($validator->fails()) { toast($validator->messages()->all()[0], 'error')->position('top')->autoclose(3000); return redirect()->back()->withInput(); } $land = Land::find($id); $land->land_name = $request->land_name; $land->owner = $request->owner; $land->no_hp = $request->nohp; $land->rental_price = $request->rental_price; $land->rental_start = $request->rental_start; $land->rental_until = $request->rental_until; $land->province_code = $request->province_id; $land->regency_code = $request->regency_id; $land->district_code = $request->district_id; $land->address = $request->address; $land->latitude = $request->lat; $land->longitude = $request->lng; try { $land->save(); toast('Data berhasil diubah', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } public function destroy($id) { $land = Land::find($id); try { $land->delete(); toast('Data berhasil dihapus', 'success')->position('top-right')->autoclose(3000); return redirect()->back(); } catch (\Throwable $th) { toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); return redirect()->back(); } } }