diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 3a1b1c7..71df00c 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -45,7 +45,17 @@ class KJPPController extends Controller // Combine KJPP number with branch code $fullKjppNumber = $kjppNumber; - return view('lpj::kjpp.create', compact('ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber')); + $emailKantor = []; + $namaPimpinan = []; + $nomorHpPimpinan = []; + $namaPicReviewer = []; + $nomorHpPicReviewer = []; + $namaPicAdmin = []; + $nomorHpPicAdmin = []; + $namaPicMarketing = []; + $nomorHpPicMarketing = []; + + return view('lpj::kjpp.create', compact('ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber', 'emailKantor', 'namaPimpinan', 'nomorHpPimpinan', 'namaPicReviewer', 'nomorHpPicReviewer', 'namaPicAdmin', 'nomorHpPicAdmin', 'namaPicMarketing', 'nomorHpPicMarketing')); } /** @@ -55,142 +65,54 @@ class KJPPController extends Controller { $validated = $request->validated(); + $validated['email_kantor'] = json_encode($validated['email_kantor']); + $validated['nama_pimpinan'] = json_encode($validated['nama_pimpinan']); + $validated['nomor_hp_pimpinan'] = json_encode($validated['nomor_hp_pimpinan']); + $validated['nama_pic_reviewer'] = json_encode($validated['nama_pic_reviewer']); + $validated['nomor_hp_pic_reviewer'] = json_encode($validated['nomor_hp_pic_reviewer']); + $validated['nama_pic_admin'] = json_encode($validated['nama_pic_admin']); + $validated['nomor_hp_pic_admin'] = json_encode($validated['nomor_hp_pic_admin']); + $validated['nama_pic_marketing'] = json_encode($validated['nama_pic_marketing']); + $validated['nomor_hp_pic_marketing'] = json_encode($validated['nomor_hp_pic_marketing']); + // Konversi array ke JSON untuk ijin_usaha_id + $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); - if ($validated) { - $detailEmailKantor = []; - $detailNamaPimpinan = []; - $detailNomorPicPimpinan = []; - $detailNamaPicReviewer = []; - $detailNomorHpPicReviewer = []; - $detailNamaPicAdmin = []; - $detailNomorHpPicAdmin = []; - $detailNamaPicMarketing = []; - $detailNomorHpPicMarketing = []; - - $emailKantor = $request->input('detail_email_kantor.email_kantor', []); - $namaPimpinan = $request->input('detail_nama_pimpinan.nama_pimpinan', []); - $nomorHpPimpinan = $request->input('detail_nomor_hp_pimpinan.nomor_hp_pimpinan', []); - $namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []); - $nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []); - $namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []); - $nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []); - $namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []); - $nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []); - - foreach ($emailKantor as $value) { - $detailEmailKantor[] = [ - 'email_kantor' => $value - ]; - } - // Encode to JSON and store - $detailEmailKantorJson = json_encode($detailEmailKantor); - - // Process detail_nama_pimpinan - foreach ($namaPimpinan as $value) { - $detailNamaPimpinan[] = [ - 'nama_pimpinan' => $value - ]; - } - $detailNamaPimpinanJson = json_encode($detailNamaPimpinan); - - // Process detail_nomor_pic_pimpinan - foreach ($nomorHpPimpinan as $value) { - $detailNomorPicPimpinan[] = [ - 'nomor_hp_pimpinan' => $value - ]; - } - $detailNomorPicPimpinanJson = json_encode($detailNomorPicPimpinan); - - // Process detail_nama_pic_reviewer - foreach ($namaPicReviewer as $value) { - $detailNamaPicReviewer[] = [ - 'nama_pic_reviewer' => $value - ]; - } - $detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer); - - // Process detail_nomor_hp_pic_reviewer - foreach ($nomorHpPicReviewer as $value) { - $detailNomorHpPicReviewer[] = [ - 'nomor_hp_pic_reviewer' => $value - ]; - } - $detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer); - - // Process detail_nama_pic_admin - foreach ($namaPicAdmin as $value) { - $detailNamaPicAdmin[] = [ - 'nama_pic_admin' => $value - ]; - } - $detailNamaPicAdminJson = json_encode($detailNamaPicAdmin); - - // Process detail_nomor_hp_pic_admin - foreach ($nomorHpPicAdmin as $value) { - $detailNomorHpPicAdmin[] = [ - 'nomor_hp_pic_admin' => $value - ]; - } - $detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin); - - // Process detail_nama_pic_marketing - foreach ($namaPicMarketing as $value) { - $detailNamaPicMarketing[] = [ - 'nama_pic_marketing' => $value - ]; - } - $detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing); - - // Process detail_nomor_hp_pic_marketing - foreach ($nomorHpPicMarketing as $value) { - $detailNomorHpPicMarketing[] = [ - 'nomor_hp_pic_marketing' => $value - ]; - } - $detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing); - + // Konversi jenis_aset_id ke JSON, dengan penanganan array kosong + $validated['jenis_aset_id'] = $validated['jenis_aset_id'] + ? json_encode($validated['jenis_aset_id']) + : json_encode([]); + // Handle file attachment + if ($request->hasFile('attachment')) { $file = $request->file('attachment'); - $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf'; + $filename = time() . '.' . $file->getClientOriginalExtension(); - if ($file) { - // Simpan file yang diunggah - $file->storeAs('public/uploads_pdf', $filename); - } else { - // Salin file default ke lokasi yang diinginkan - Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $filename); - } - - $validated['detail_email_kantor'] = $detailEmailKantorJson; - $validated['detail_nama_pimpinan'] = $detailNamaPimpinanJson; - $validated['detail_nomor_hp_pimpinan'] = $detailNomorPicPimpinanJson; - $validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson; - $validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson; - $validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson; - $validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson; - $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; - $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; - $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); - if (empty($validated['jenis_aset_id'])) { - $validated['jenis_aset_id'] = json_encode([]); - } else { - $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); - } - // Tambahkan nama file ke data yang divalidasi + // Simpan file + $file->storeAs('public/uploads_pdf', $filename); $validated['attachment'] = $filename; + } else { + // Gunakan file default jika tidak ada file yang diunggah + $defaultFilename = 'default.pdf'; + Storage::copy('public/test/default.pdf', 'public/uploads_pdf/' . $defaultFilename); + $validated['attachment'] = $defaultFilename; + } - // dd($validated); + // Hapus baris dd() sebelum membuat record + // dd($validated); - // Simpan data ke database - KJPP::create($validated); + + try { + // Buat record KJPP + $kjpp = KJPP::create($validated); return redirect() ->route('basicdata.kjpp.index') ->with('success', 'KJPP created successfully'); - } else { + } catch (\Exception $e) { + // Tangani kesalahan jika ada return redirect() ->route('basicdata.kjpp.create') - ->with('error', 'Validation failed'); + ->with('error', 'Failed to create KJPP: ' . $e->getMessage()); } } @@ -207,46 +129,18 @@ class KJPPController extends Controller $cities = City::where('code', $kjpp->city_code)->get(); $districts = District::where('code', $kjpp->district_code)->get(); $villages = Village::where('code', $kjpp->village_code)->get(); - $detailEmailKantor = json_decode($kjpp->detail_email_kantor); - $detailNamaPimpinan = json_decode($kjpp->detail_nama_pimpinan); - $detailNomorHpPimpinan = json_decode($kjpp->detail_nomor_hp_pimpinan); - $detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer); - $detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer); - $detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin); - $detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin); - $detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing); - $detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing); - $detailJoinPimpinan = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pimpinan' => $nama->nama_pimpinan, - 'nomor_hp_pimpinan' => $nomor->nomor_hp_pimpinan - ]; - }, $detailNamaPimpinan, $detailNomorHpPimpinan)); + $emailKantor = json_decode($kjpp->email_kantor); + $namaPimpinan = json_decode($kjpp->nama_pimpinan); + $nomorHpPimpinan = json_decode($kjpp->nomor_hp_pimpinan); + $namaPicReviewer = json_decode($kjpp->nama_pic_reviewer); + $nomorHpPicReviewer = json_decode($kjpp->nomor_hp_pic_reviewer); + $namaPicAdmin = json_decode($kjpp->nama_pic_admin); + $nomorHpPicAdmin = json_decode($kjpp->nomor_hp_pic_admin); + $namaPicMarketing = json_decode($kjpp->nama_pic_marketing); + $nomorHpPicMarketing = json_decode($kjpp->nomor_hp_pic_marketing); - - $detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_reviewer' => $nama->nama_pic_reviewer, - 'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer - ]; - }, $detailNamaPicReviewer, $detailNomorHpPicReviewer)); - - $detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_admin' => $nama->nama_pic_admin, - 'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin - ]; - }, $detailNamaPicAdmin, $detailNomorHpPicAdmin)); - - $detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_marketing' => $nama->nama_pic_marketing, - 'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing - ]; - }, $detailNamaPicMarketing, $detailNomorHpPicMarketing)); - - return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages', 'detailEmailKantor', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing', 'detailJoinPimpinan')); + return view('lpj::kjpp.show', compact('jenis_jaminan', 'ijin_usahas', 'ijin_usaha', 'kjpp', 'provinces', 'cities', 'districts', 'villages', 'emailKantor', 'namaPimpinan', 'nomorHpPimpinan', 'namaPicReviewer', 'nomorHpPicReviewer', 'namaPicAdmin', 'nomorHpPicAdmin', 'namaPicMarketing', 'nomorHpPicMarketing')); } /** @@ -261,49 +155,19 @@ class KJPPController extends Controller $cities = City::where('province_code', $kjpp->province_code)->get(); $districts = District::where('city_code', $kjpp->city_code)->get(); $villages = Village::where('district_code', $kjpp->district_code)->get(); - $detailEmailKantor = json_decode($kjpp->detail_email_kantor); - $detailNamaPimpinan = json_decode($kjpp->detail_nama_pimpinan); - $detailNomorHpPimpinan = json_decode($kjpp->detail_nomor_hp_pimpinan); - $detailNamaPicReviewer = json_decode($kjpp->detail_nama_pic_reviewer); - $detailNomorHpPicReviewer = json_decode($kjpp->detail_nomor_hp_pic_reviewer); - $detailNamaPicAdmin = json_decode($kjpp->detail_nama_pic_admin); - $detailNomorHpPicAdmin = json_decode($kjpp->detail_nomor_hp_pic_admin); - $detailNamaPicMarketing = json_decode($kjpp->detail_nama_pic_marketing); - $detailNomorHpPicMarketing = json_decode($kjpp->detail_nomor_hp_pic_marketing); - // dd($detailNamaPimpinan); + $emailKantor = json_decode($kjpp->email_kantor); + $namaPimpinan = json_decode($kjpp->nama_pimpinan); + $nomorHpPimpinan = json_decode($kjpp->nomor_hp_pimpinan); + $namaPicReviewer = json_decode($kjpp->nama_pic_reviewer); + $nomorHpPicReviewer = json_decode($kjpp->nomor_hp_pic_reviewer); + $namaPicAdmin = json_decode($kjpp->nama_pic_admin); + $nomorHpPicAdmin = json_decode($kjpp->nomor_hp_pic_admin); + $namaPicMarketing = json_decode($kjpp->nama_pic_marketing); + $nomorHpPicMarketing = json_decode($kjpp->nomor_hp_pic_marketing); - $detailJoinPimpinan = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pimpinan' => $nama->nama_pimpinan, - 'nomor_hp_pimpinan' => $nomor->nomor_hp_pimpinan - ]; - }, $detailNamaPimpinan, $detailNomorHpPimpinan)); - // dd($detailJoinPimpinan); - - $detailJoinPicReviewer = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_reviewer' => $nama->nama_pic_reviewer, - 'nomor_hp_pic_reviewer' => $nomor->nomor_hp_pic_reviewer - ]; - }, $detailNamaPicReviewer, $detailNomorHpPicReviewer)); - - $detailJoinPicAdmin = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_admin' => $nama->nama_pic_admin, - 'nomor_hp_pic_admin' => $nomor->nomor_hp_pic_admin - ]; - }, $detailNamaPicAdmin, $detailNomorHpPicAdmin)); - - $detailJoinPicMarketing = json_encode(array_map(function ($nama, $nomor) { - return [ - 'nama_pic_marketing' => $nama->nama_pic_marketing, - 'nomor_hp_pic_marketing' => $nomor->nomor_hp_pic_marketing - ]; - }, $detailNamaPicMarketing, $detailNomorHpPicMarketing)); - - return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages', 'detailJoinPicReviewer', 'detailJoinPicAdmin', 'detailJoinPicMarketing', 'detailEmailKantor', 'detailJoinPimpinan')); + return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages', 'emailKantor', 'namaPimpinan', 'nomorHpPimpinan', 'namaPicReviewer', 'nomorHpPicReviewer', 'namaPicAdmin', 'nomorHpPicAdmin', 'namaPicMarketing', 'nomorHpPicMarketing')); } /** @@ -313,102 +177,7 @@ class KJPPController extends Controller { $validated = $request->validated(); - // dd($validated); - if ($validated) { - $detailEmailKantor = []; - $detailNamaPimpinan = []; - $detailNomorHpPimpinan = []; - $detailNamaPicReviewer = []; - $detailNomorHpPicReviewer = []; - $detailNamaPicAdmin = []; - $detailNomorHpPicAdmin = []; - $detailNamaPicMarketing = []; - $detailNomorHpPicMarketing = []; - - $emailKantor = $request->input('detail_email_kantor.email_kantor', []); - $namaPimpinan = $request->input('detail_nama_pimpinan.nama_pimpinan', []); - $nomorHpPimpinan = $request->input('detail_nomor_hp_pimpinan.nomor_hp_pimpinan', []); - $namaPicReviewer = $request->input('detail_nama_pic_reviewer.nama_pic_reviewer', []); - $nomorHpPicReviewer = $request->input('detail_nomor_hp_pic_reviewer.nomor_hp_pic_reviewer', []); - $namaPicAdmin = $request->input('detail_nama_pic_admin.nama_pic_admin', []); - $nomorHpPicAdmin = $request->input('detail_nomor_hp_pic_admin.nomor_hp_pic_admin', []); - $namaPicMarketing = $request->input('detail_nama_pic_marketing.nama_pic_marketing', []); - $nomorHpPicMarketing = $request->input('detail_nomor_hp_pic_marketing.nomor_hp_pic_marketing', []); - - foreach ($emailKantor as $value) { - $detailEmailKantor[] = [ - 'email_kantor' => $value - ]; - } - // Encode to JSON and store - $detailEmailKantorJson = json_encode($detailEmailKantor); - - // Process detail_nama_pimpinan - foreach ($namaPimpinan as $value) { - $detailNamaPimpinan[] = [ - 'nama_pimpinan' => $value - ]; - } - $detailNamaPimpinanJson = json_encode($detailNamaPimpinan); - - // Process detail_nomor_hp_pimpinan - foreach ($nomorHpPimpinan as $value) { - $detailNomorHpPimpinan[] = [ - 'nomor_hp_pimpinan' => $value - ]; - } - $detailNomorHpPimpinanJson = json_encode($detailNomorHpPimpinan); - - // Process detail_nama_pic_reviewer - foreach ($namaPicReviewer as $value) { - $detailNamaPicReviewer[] = [ - 'nama_pic_reviewer' => $value - ]; - } - $detailNamaPicReviewerJson = json_encode($detailNamaPicReviewer); - - // Process detail_nomor_hp_pic_reviewer - foreach ($nomorHpPicReviewer as $value) { - $detailNomorHpPicReviewer[] = [ - 'nomor_hp_pic_reviewer' => $value - ]; - } - $detailNomorHpPicReviewerJson = json_encode($detailNomorHpPicReviewer); - - // Process detail_nama_pic_admin - foreach ($namaPicAdmin as $value) { - $detailNamaPicAdmin[] = [ - 'nama_pic_admin' => $value - ]; - } - $detailNamaPicAdminJson = json_encode($detailNamaPicAdmin); - - // Process detail_nomor_hp_pic_admin - foreach ($nomorHpPicAdmin as $value) { - $detailNomorHpPicAdmin[] = [ - 'nomor_hp_pic_admin' => $value - ]; - } - $detailNomorHpPicAdminJson = json_encode($detailNomorHpPicAdmin); - - // Process detail_nama_pic_marketing - foreach ($namaPicMarketing as $value) { - $detailNamaPicMarketing[] = [ - 'nama_pic_marketing' => $value - ]; - } - $detailNamaPicMarketingJson = json_encode($detailNamaPicMarketing); - - // Process detail_nomor_hp_pic_marketing - foreach ($nomorHpPicMarketing as $value) { - $detailNomorHpPicMarketing[] = [ - 'nomor_hp_pic_marketing' => $value - ]; - } - $detailNomorHpPicMarketingJson = json_encode($detailNomorHpPicMarketing); - - $file = $request->file('attachment'); $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : null; @@ -428,15 +197,16 @@ class KJPPController extends Controller $validated['attachment'] = $kjpp->attachment ?? 'default.pdf'; } - $validated['detail_email_kantor'] = $detailEmailKantorJson; - $validated['detail_nama_pimpinan'] = $detailNamaPimpinanJson; - $validated['detail_nomor_hp_pimpinan'] = $detailNomorHpPimpinanJson; - $validated['detail_nama_pic_reviewer'] = $detailNamaPicReviewerJson; - $validated['detail_nomor_hp_pic_reviewer'] = $detailNomorHpPicReviewerJson; - $validated['detail_nama_pic_admin'] = $detailNamaPicAdminJson; - $validated['detail_nomor_hp_pic_admin'] = $detailNomorHpPicAdminJson; - $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; - $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; + $validated['email_kantor'] = json_encode($validated['email_kantor']); + $validated['nama_pimpinan'] = json_encode($validated['nama_pimpinan']); + $validated['nomor_hp_pimpinan'] = json_encode($validated['nomor_hp_pimpinan']); + $validated['nama_pic_reviewer'] = json_encode($validated['nama_pic_reviewer']); + $validated['nomor_hp_pic_reviewer'] = json_encode($validated['nomor_hp_pic_reviewer']); + $validated['nama_pic_admin'] = json_encode($validated['nama_pic_admin']); + $validated['nomor_hp_pic_admin'] = json_encode($validated['nomor_hp_pic_admin']); + $validated['nama_pic_marketing'] = json_encode($validated['nama_pic_marketing']); + $validated['nomor_hp_pic_marketing'] = json_encode($validated['nomor_hp_pic_marketing']); + $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); if (empty($validated['jenis_aset_id'])) { $validated['jenis_aset_id'] = json_encode([]); @@ -444,6 +214,8 @@ class KJPPController extends Controller $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); } + // dd($validated); + // Perbarui data di database KJPP::where('id', $id)->update($validated); diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php index 4ff5821..4f77130 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -22,24 +22,43 @@ class KJPPRequest extends FormRequest 'address' => 'required', 'postal_code' => 'nullable|numeric', 'nomor_telepon_kantor' => 'nullable|numeric|digits_between:8,15', - 'email_kantor' => 'required|email', - 'detail_email_kantor' => 'nullable', - 'nama_pimpinan' => 'required|string|not_regex:/^\d+$/|max:255', - 'detail_nama_pimpinan' => 'nullable', - 'nomor_hp_pimpinan' => 'required|numeric|digits_between:10,15', - 'detail_nomor_pic_pimpinan' => 'nullable', - 'nama_pic_reviewer' => 'nullable|string|not_regex:/^\d+$/|max:255', - 'detail_nama_pic_reviewer' => 'nullable', - 'nomor_hp_pic_reviewer' => 'nullable|numeric|digits_between:10,15', - 'detail_nomor_hp_pic_reviewer' => 'nullable', - 'nama_pic_admin' => 'nullable|string|not_regex:/^\d+$/|max:255', - 'detail_nama_pic_admin' => 'nullable', - 'nomor_hp_pic_admin' => 'nullable|numeric|digits_between:10,15', - 'detail_nomor_hp_pic_admin' => 'nullable', - 'nama_pic_marketing' => 'nullable|string|not_regex:/^\d+$/|max:255', - 'detail_nama_pic_marketing' => 'nullable', - 'nomor_hp_pic_marketing' => 'nullable|numeric|digits_between:10,15', - 'detail_nomor_hp_pic_marketing' => 'nullable', + + // Validasi email kantor + 'email_kantor' => 'array', + 'email_kantor.*' => 'required|email', + + // Validasi nama pimpinan + 'nama_pimpinan' => 'array', + 'nama_pimpinan.*' => 'required|not_regex:/^\d+$/|max:255', + + // Validasi nomor HP pimpinan + 'nomor_hp_pimpinan' => 'array', + 'nomor_hp_pimpinan.*' => 'required|numeric|digits_between:10,15', + + // Validasi nama PIC Reviewer + 'nama_pic_reviewer' => 'nullable|array', + 'nama_pic_reviewer.*' => 'nullable|not_regex:/^\d+$/|max:255', + + // Validasi nomor HP PIC Reviewer + 'nomor_hp_pic_reviewer' => 'array', + 'nomor_hp_pic_reviewer.*' => 'nullable|numeric|digits_between:10,15', + + // Validasi nama PIC Admin + 'nama_pic_admin' => 'array', + 'nama_pic_admin.*' => 'nullable|not_regex:/^\d+$/|max:255', + + // Validasi nomor HP PIC Admin + 'nomor_hp_pic_admin' => 'array', + 'nomor_hp_pic_admin.*' => 'nullable|numeric|digits_between:10,15', + + // Validasi nama PIC Marketing + 'nama_pic_marketing' => 'array', + 'nama_pic_marketing.*' => 'nullable|not_regex:/^\d+$/|max:255', + + // Validasi nomor HP PIC Marketing + 'nomor_hp_pic_marketing' => 'array', + 'nomor_hp_pic_marketing.*' => 'nullable|numeric|digits_between:10,15', + 'ijin_usaha_id' => 'required|array', 'ijin_usaha_id.*' => 'exists:ijin_usaha,code', 'jenis_aset_id' => 'nullable|array', @@ -67,6 +86,45 @@ class KJPPRequest extends FormRequest public function messages(): array { return [ + // Pesan untuk email kantor + 'email_kantor.*.required' => 'Email Kantor Wajib diisi!', + 'email_kantor.*.email' => 'Email Kantor tidak valid!', + + // Pesan untuk nama pimpinan + 'nama_pimpinan.*.required' => 'Nama Pimpinan Wajib diisi!', + 'nama_pimpinan.*.not_regex' => 'Nama Pimpinan harus berupa huruf!', + 'nama_pimpinan.*.max' => 'Nama Pimpinan maksimal 255 huruf!', + + // Pesan untuk nomor HP pimpinan + 'nomor_hp_pimpinan.*.required' => 'Nomor HP Pimpinan Wajib diisi!', + 'nomor_hp_pimpinan.*.numeric' => 'Nomor HP Pimpinan harus berupa angka!', + 'nomor_hp_pimpinan.*.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!', + + // Pesan untuk nama PIC Reviewer + 'nama_pic_reviewer.*.not_regex' => 'Nama PIC Reviewer harus berupa huruf!', + 'nama_pic_reviewer.*.max' => 'Nama PIC Reviewer maksimal 255 huruf!', + + // Pesan untuk nomor HP PIC Reviewer + 'nomor_hp_pic_reviewer.*.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!', + 'nomor_hp_pic_reviewer.*.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!', + + // Pesan untuk nama PIC Admin + 'nama_pic_admin.*.not_regex' => 'Nama PIC Admin harus berupa huruf!', + 'nama_pic_admin.*.max' => 'Nama PIC Admin maksimal 255 huruf!', + + // Pesan untuk nomor HP PIC Admin + 'nomor_hp_pic_admin.*.numeric' => 'Nomor HP PIC Admin harus berupa angka!', + 'nomor_hp_pic_admin.*.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!', + + // Pesan untuk nama PIC Marketing + 'nama_pic_marketing.*.not_regex' => 'Nama PIC Marketing harus berupa huruf!', + 'nama_pic_marketing.*.max' => 'Nama PIC Marketing maksimal 255 huruf!', + + // Pesan untuk nomor HP PIC Marketing + 'nomor_hp_pic_marketing.*.numeric' => 'Nomor HP PIC Marketing harus berupa angka!', + 'nomor_hp_pic_marketing.*.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', + + // Pesan lainnya tetap sama 'code.required' => 'Kode KJPP Wajib diisi!', 'code.max' => 'Kode KJPP maksimal 255 huruf!', 'code.unique' => 'Kode KJPP tidak boleh sama!', @@ -81,22 +139,6 @@ class KJPPRequest extends FormRequest 'address.required' => 'Alamat Kantor Wajib diisi!', 'nomor_telepon_kantor.numeric' => 'Nomor Telepon Kantor harus berupa angka!', 'nomor_telepon_kantor.digits_between' => 'Nomor Telepon Kantor minimum 8 digit dan maksimum 15 digit!', - 'email_kantor.required' => 'Email Kantor Wajib diisi!', - 'email_kantor.email' => 'Email Kantor tidak valid!', - 'nama_pimpinan.required' => 'Nama Pimpinan Wajib diisi!', - 'nama_pimpinan.not_regex' => 'Nama Pimpinan harus berupa huruf!', - 'nomor_hp_pimpinan.required' => 'Nomor HP Pimpinan Wajib diisi!', - 'nomor_hp_pimpinan.numeric' => 'Nomor HP Pimpinan harus berupa angka!', - 'nomor_hp_pimpinan.digits_between' => 'Nomor HP Pimpinan minimum 10 digit dan maksimum 15 digit!', - 'nama_pic_reviewer.not_regex' => 'Nama PIC Reviewer harus berupa huruf!', - 'nomor_hp_pic_reviewer.numeric' => 'Nomor HP PIC Reviewer harus berupa angka!', - 'nomor_hp_pic_reviewer.digits_between' => 'Nomor HP PIC Reviewer minimum 10 digit dan maksimum 15 digit!', - 'nama_pic_admin.not_regex' => 'Nama PIC Admin harus berupa huruf!', - 'nomor_hp_pic_admin.numeric' => 'Nomor HP PIC Admin harus berupa angka!', - 'nomor_hp_pic_admin.digits_between' => 'Nomor HP PIC Admin minimum 10 digit dan maksimum 15 digit!', - 'nama_pic_marketing.not_regex' => 'Nama PIC Marketing harus berupa huruf!', - 'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!', - 'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', 'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!', 'attachment.mimes' => 'Attachment harus berformat pdf!', 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index 2ea3738..b8ab38c 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -30,14 +30,14 @@ class LpjDatabaseSeeder extends Seeder TeamUsersSeeder::class, JenisPenilaianSeeder::class, IjinUsahaSeeder::class, - TujuanPenilaianKJPPSeeder::class, - KJPPSeeder::class, - JenisLaporanSeeder::class, - DebitureSeeder::class, - PemilikJaminanSeeder::class, - DokumenJaminanSeeder::class, - DetailDokumenJaminanSeeder::class, - PermohonanSeeder::class, + // TujuanPenilaianKJPPSeeder::class, + // KJPPSeeder::class, + // JenisLaporanSeeder::class, + // DebitureSeeder::class, + // PemilikJaminanSeeder::class, + // DokumenJaminanSeeder::class, + // DetailDokumenJaminanSeeder::class, + // PermohonanSeeder::class, // PenawaranSeeder::class, // DetailPenawaranSeeder::class, // PenilaianSeeder::class, diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index 1bd1ff7..62da0f7 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -223,31 +223,36 @@ Email Kantor
{{ $kjpp->email_kantor }}
- @if (isset($kjpp->detail_email_kantor)) - @foreach (json_decode($kjpp->detail_email_kantor) as $detail_email_kantor) + @if (isset($emailKantor) && count($emailKantor) > 0) + @foreach ($emailKantor as $email)- {{ $detail_email_kantor->email_kantor }} + {{ $email }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nama_pimpinan }}
- @if (isset($kjpp->detail_nama_pimpinan)) - @foreach (json_decode($detailJoinPimpinan) as $detail_nama_pimpinan) + @if (isset($namaPimpinan) && count($namaPimpinan) > 0) + @foreach ($namaPimpinan as $pimpinan)- {{ $detail_nama_pimpinan->nama_pimpinan }} + {{ $pimpinan }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nomor_hp_pimpinan }}
- @if (isset($kjpp->detail_nomor_hp_pimpinan)) - @foreach (json_decode($detailJoinPimpinan) as $detail_nomor_hp_pimpinan) + @if (isset($nomorHpPimpinan) && count($nomorHpPimpinan) > 0) + @foreach ($nomorHpPimpinan as $hp_pimpinan)- {{ $detail_nomor_hp_pimpinan->nomor_hp_pimpinan }} + {{ $hp_pimpinan }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nama_pic_reviewer ?? '-' }}
- @if (isset($kjpp->detail_nama_pic_reviewer)) - @foreach (json_decode($detailJoinPicReviewer) as $detail_nama_pic_reviewer) + @if (isset($namaPicReviewer) && count($namaPicReviewer) > 0) + @foreach ($namaPicReviewer as $pic_reviewer)- {{ $detail_nama_pic_reviewer->nama_pic_reviewer }} + {{ $pic_reviewer }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nomor_hp_pic_reviewer ?? '-' }} -
- @if (isset($kjpp->detail_nomor_hp_pic_reviewer)) - @foreach (json_decode($detailJoinPicReviewer) as $detail_nomor_hp_pic_reviewer) + @if (isset($nomorHpPicReviewer) && count($nomorHpPicReviewer) > 0) + @foreach ($nomorHpPicReviewer as $hp_pic_reviewer)- {{ $detail_nomor_hp_pic_reviewer->nomor_hp_pic_reviewer }} + {{ $hp_pic_reviewer }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nama_pic_admin ?? '-' }}
- @if (isset($kjpp->detail_nama_pic_admin)) - @foreach (json_decode($detailJoinPicAdmin) as $detail_nama_pic_admin) + @if (isset($namaPicAdmin) && count($namaPicAdmin) > 0) + @foreach ($namaPicAdmin as $pic_admin)- {{ $detail_nama_pic_admin->nama_pic_admin }} + {{ $pic_admin }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nomor_hp_pic_admin ?? '-' }}
- @if (isset($kjpp->detail_nomor_hp_pic_admin)) - @foreach (json_decode($detailJoinPicAdmin) as $detail_nomor_hp_pic_admin) + @if (isset($nomorHpPicAdmin) && count($nomorHpPicAdmin) > 0) + @foreach ($nomorHpPicAdmin as $hp_pic_admin)- {{ $detail_nomor_hp_pic_admin->nomor_hp_pic_admin }} + {{ $hp_pic_admin }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nama_pic_marketing ?? '-' }}
- @if (isset($kjpp->detail_nama_pic_marketing)) - @foreach (json_decode($detailJoinPicMarketing) as $detail_nama_pic_marketing) + @if (isset($namaPicMarketing) && count($namaPicMarketing) > 0) + @foreach ($namaPicMarketing as $pic_marketing)- {{ $detail_nama_pic_marketing->nama_pic_marketing }} + {{ $pic_marketing }}
@endforeach + @else ++ - +
@endif{{ $kjpp->nomor_hp_pic_marketing ?? '-' }} -
- @if (isset($kjpp->detail_nomor_hp_pic_marketing)) - @foreach (json_decode($detailJoinPicMarketing) as $detail_nomor_hp_pic_marketing) + @if (isset($nomorHpPicMarketing) && count($nomorHpPicMarketing) > 0) + @foreach ($nomorHpPicMarketing as $hp_pic_marketing)- {{ $detail_nomor_hp_pic_marketing->nomor_hp_pic_marketing }} + {{ $hp_pic_marketing }}
@endforeach + @else ++ - +
@endif