diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index 71df00c..3a1b1c7 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -45,17 +45,7 @@ class KJPPController extends Controller // Combine KJPP number with branch code $fullKjppNumber = $kjppNumber; - $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')); + return view('lpj::kjpp.create', compact('ijin_usaha', 'jenis_aset', 'provinces', 'fullKjppNumber')); } /** @@ -65,54 +55,142 @@ 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']); - // 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([]); + 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); + - // Handle file attachment - if ($request->hasFile('attachment')) { $file = $request->file('attachment'); - $filename = time() . '.' . $file->getClientOriginalExtension(); + $filename = $file ? time() . '.' . $file->getClientOriginalExtension() : 'default.pdf'; - // Simpan file - $file->storeAs('public/uploads_pdf', $filename); + 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 $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; - } - // Hapus baris dd() sebelum membuat record - // dd($validated); + // dd($validated); - - try { - // Buat record KJPP - $kjpp = KJPP::create($validated); + // Simpan data ke database + KJPP::create($validated); return redirect() ->route('basicdata.kjpp.index') ->with('success', 'KJPP created successfully'); - } catch (\Exception $e) { - // Tangani kesalahan jika ada + } else { return redirect() ->route('basicdata.kjpp.create') - ->with('error', 'Failed to create KJPP: ' . $e->getMessage()); + ->with('error', 'Validation failed'); } } @@ -129,18 +207,46 @@ 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); - $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)); - 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')); + + $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')); } /** @@ -155,19 +261,49 @@ 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); - $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); + // dd($detailNamaPimpinan); + $detailJoinPimpinan = json_encode(array_map(function ($nama, $nomor) { + return [ + 'nama_pimpinan' => $nama->nama_pimpinan, + 'nomor_hp_pimpinan' => $nomor->nomor_hp_pimpinan + ]; + }, $detailNamaPimpinan, $detailNomorHpPimpinan)); - return view('lpj::kjpp.create', compact('kjpp', 'ijin_usaha', 'jenis_aset', 'provinces', 'cities', 'districts', 'villages', 'emailKantor', 'namaPimpinan', 'nomorHpPimpinan', 'namaPicReviewer', 'nomorHpPicReviewer', 'namaPicAdmin', 'nomorHpPicAdmin', 'namaPicMarketing', 'nomorHpPicMarketing')); + // 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')); } /** @@ -177,7 +313,102 @@ 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; @@ -197,16 +428,15 @@ class KJPPController extends Controller $validated['attachment'] = $kjpp->attachment ?? 'default.pdf'; } - $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['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['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); if (empty($validated['jenis_aset_id'])) { $validated['jenis_aset_id'] = json_encode([]); @@ -214,8 +444,6 @@ 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 4f77130..4ff5821 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -22,43 +22,24 @@ class KJPPRequest extends FormRequest 'address' => 'required', 'postal_code' => 'nullable|numeric', 'nomor_telepon_kantor' => 'nullable|numeric|digits_between:8,15', - - // 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', - + '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', 'ijin_usaha_id' => 'required|array', 'ijin_usaha_id.*' => 'exists:ijin_usaha,code', 'jenis_aset_id' => 'nullable|array', @@ -86,45 +67,6 @@ 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!', @@ -139,6 +81,22 @@ 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 1e92c0c..2ea3738 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -31,13 +31,13 @@ class LpjDatabaseSeeder extends Seeder JenisPenilaianSeeder::class, IjinUsahaSeeder::class, TujuanPenilaianKJPPSeeder::class, + KJPPSeeder::class, JenisLaporanSeeder::class, - // KJPPSeeder::class, - // DebitureSeeder::class, - // PemilikJaminanSeeder::class, - // DokumenJaminanSeeder::class, - // DetailDokumenJaminanSeeder::class, - // PermohonanSeeder::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 62da0f7..1bd1ff7 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -223,36 +223,31 @@ Email Kantor
{{ $kjpp->email_kantor }}
+ @if (isset($kjpp->detail_email_kantor)) + @foreach (json_decode($kjpp->detail_email_kantor) as $detail_email_kantor)- {{ $email }} + {{ $detail_email_kantor->email_kantor }}
@endforeach - @else -- - -
@endif{{ $kjpp->nama_pimpinan }}
+ @if (isset($kjpp->detail_nama_pimpinan)) + @foreach (json_decode($detailJoinPimpinan) as $detail_nama_pimpinan)- {{ $pimpinan }} + {{ $detail_nama_pimpinan->nama_pimpinan }}
@endforeach - @else -- - -
@endif{{ $kjpp->nomor_hp_pimpinan }}
+ @if (isset($kjpp->detail_nomor_hp_pimpinan)) + @foreach (json_decode($detailJoinPimpinan) as $detail_nomor_hp_pimpinan)- {{ $hp_pimpinan }} + {{ $detail_nomor_hp_pimpinan->nomor_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)- {{ $pic_reviewer }} + {{ $detail_nama_pic_reviewer->nama_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)- {{ $hp_pic_reviewer }} + {{ $detail_nomor_hp_pic_reviewer->nomor_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)- {{ $pic_admin }} + {{ $detail_nama_pic_admin->nama_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)- {{ $hp_pic_admin }} + {{ $detail_nomor_hp_pic_admin->nomor_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)- {{ $pic_marketing }} + {{ $detail_nama_pic_marketing->nama_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)- {{ $hp_pic_marketing }} + {{ $detail_nomor_hp_pic_marketing->nomor_hp_pic_marketing }}
@endforeach - @else -- - -
@endif