perbaikan denah bisa banyak
This commit is contained in:
@@ -226,61 +226,73 @@ class SurveyorController extends Controller
|
||||
|
||||
public function storeDenah(Request $request)
|
||||
{
|
||||
try {
|
||||
$maxSize = getMaxFileSize('Foto');
|
||||
$validationRules = [
|
||||
'luas' => 'required|numeric',
|
||||
'permohonan_id' => 'required',
|
||||
'dokument_id' => 'required'
|
||||
];
|
||||
$validator = $request->validate([
|
||||
'foto_denah.*' => 'nullable|file|mimes:jpg,jpeg,png,bmp,gif,webp,pdf',
|
||||
'nama_denah.*' => 'nullable|string|max:255',
|
||||
'luas_denah.*' => 'nullable|numeric',
|
||||
'permohonan_id' => 'required|exists:permohonan,id',
|
||||
'dokument_id' => 'required'
|
||||
]);
|
||||
if ($validator) {
|
||||
try {
|
||||
|
||||
if ($request->hasFile('foto_denah')) {
|
||||
$maxSize = getMaxFileSize('Foto');
|
||||
$validationRules['foto_denah'] = 'file|mimes:jpeg,jpg,png,pdf,svg|max:'. $maxSize;
|
||||
}
|
||||
$denahs = [];
|
||||
|
||||
$validatedData = $request->validate($validationRules);
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->permohonan_id)
|
||||
->where('dokument_id', $request->dokument_id)
|
||||
->first();
|
||||
|
||||
$formatJsonDenah = [
|
||||
'luas' => $validatedData['luas'],
|
||||
];
|
||||
$existingDenah = $inspeksi ? json_decode($inspeksi->denah_form ?? '[]', true) : [];
|
||||
$existingDenahs = $existingDenah['denahs'] ?? [];
|
||||
|
||||
if ($request->hasFile('foto_denah')) {
|
||||
$formatJsonDenah['foto_denah'] = $this->uploadFile($request->file('foto_denah'), 'foto_denah');
|
||||
}
|
||||
if ($request->has('nama_denah')) {
|
||||
foreach ($request->nama_denah as $index => $namaDenah) {
|
||||
$denahItem = [
|
||||
'nama_denah' => $namaDenah,
|
||||
'luas_denah' => $request->luas_denah[$index] ?? null
|
||||
];
|
||||
|
||||
if ($request->hasFile('foto_denah') && isset($request->file('foto_denah')[$index])) {
|
||||
$file = $request->file('foto_denah')[$index];
|
||||
$denahItem['foto_denah'] = $this->uploadFile($file, 'foto_denah');
|
||||
} elseif (isset($existingDenahs[$index]['foto_denah'])) {
|
||||
$denahItem['foto_denah'] = $existingDenahs[$index]['foto_denah'];
|
||||
}
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
|
||||
->where('dokument_id', $request->input('dokument_id'))
|
||||
->first();
|
||||
$denahs[] = $denahItem;
|
||||
}
|
||||
}
|
||||
|
||||
if ($inspeksi) {
|
||||
$existingDenah = json_decode($inspeksi->denah_form, true) ?? [];
|
||||
if (empty($denahs) && !empty($existingDenahs)) {
|
||||
$denahs = $existingDenahs;
|
||||
}
|
||||
|
||||
$updatedDenah = array_merge($existingDenah, $formatJsonDenah);
|
||||
|
||||
$inspeksi->update([
|
||||
'denah_form' => json_encode($updatedDenah)
|
||||
$inspeksi = Inspeksi::firstOrNew([
|
||||
'permohonan_id' => $request->permohonan_id,
|
||||
'dokument_id' => $request->dokument_id
|
||||
]);
|
||||
} else {
|
||||
Inspeksi::create([
|
||||
'permohonan_id' => $request->input('permohonan_id'),
|
||||
'dokument_id' => $request->input('dokument_id'),
|
||||
'denah_form' => json_encode($formatJsonDenah)
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Data berhasil disimpan',
|
||||
'data' => $formatJsonDenah
|
||||
], 200);
|
||||
} catch (Exception $e) {
|
||||
return response()->json(['success' => false, 'message' => 'Data gagal disimpan: ' . $e->getMessage()], 500);
|
||||
// Update denah_form
|
||||
$updatedDenah = ['denahs' => $denahs];
|
||||
$inspeksi->denah_form = json_encode($updatedDenah);
|
||||
$inspeksi->save();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Data berhasil disimpan',
|
||||
'data' => $updatedDenah
|
||||
], 200);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
\Log::error('Denah Store Error: ' . $e->getMessage());
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Gagal menyimpan data: ' . $e->getMessage()
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function storeFoto(Request $request)
|
||||
{
|
||||
$validatedData = $this->validateFotoRequest($request);
|
||||
@@ -291,7 +303,7 @@ class SurveyorController extends Controller
|
||||
'foto_lingkungan',
|
||||
];
|
||||
|
||||
$lainnya =[
|
||||
$lainnya = [
|
||||
'foto_rute_lainnya' => ['foto_rute_lainnya', 'name_rute_lainnya'],
|
||||
'foto_lantai_lainnya' => ['foto_lantai_lainnya', 'name_lantai_lainnya']
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user