"Tambah Data Pasien", "heading" => "Tambah Data Pasien", ]); } public function store(Request $request) { // Memberikan Pesan kustom $customMessages = [ 'required_if' => 'Kolom :attribute wajib diisi jika status Sudah Melahirkan.', 'required' => 'Kolom :attribute wajib diisi.', 'min' => 'Kolom :attribute minimal harus :min karakter.', 'max' => 'Kolom :attribute maksimal harus :max karakter.', 'unique' => ':attribute telah terdaftar', ]; // Untuk pengecekan validasi $validator = Validator::make( $request->all(), [ 'nama_ibu' => [ 'required', 'min:3', 'max:255', function ($attribute, $value, $fail) use ($request) { $nama_ayah = $request->input('nama_ayah'); $count = DataIbuHamil::where('nama_ibu', $value) ->where('nama_ayah', $nama_ayah) ->count(); if ($count > 0) { $fail('Nama Ibu dan Ayah sudah terdaftar'); } } ], 'nik_ibu' => ['required', 'max:255', 'unique:data_ibu_hamil'], // 'umur_ibu' => ['required', 'max:255'], 'tanggal_lahir_ibu' => ['required', 'max:255'], 'tanggal_lahir_ayah' => ['required', 'max:255'], 'nama_ayah' => ['required', 'max:255'], // 'umur_ayah' => ['required', 'max:255'], 'alamat' => ['required', 'max:255'], 'status_ayah' => ['required', 'max:255'], 'status_ibu' => ['required', 'max:255'], 'anak_ke' => ['required', 'max:255'], 'nama_balita' => ['required_if:status_ibu,Sudah Melahirkan', 'max:255'], // 'nik_balita' => ['nullable', 'required_if:status_ibu,Sudah Melahirkan', 'max:255', 'unique:data_balita'], // 'nik_balita' => ['nullable', 'required_if:status_ibu,Sudah Melahirkan', 'required_if:status_nik_balita,Memiliki NIK', 'max:255', 'unique:data_balita'], 'status_nik_balita' => ['required_if:status_ibu,Sudah Melahirkan', 'max:255'], 'nik_balita' => [ 'nullable', 'max:255', 'required_if:status_nik_balita,Memiliki NIK', 'unique:data_balita', function ($attribute, $value, $fail) use ($request) { if ($request->input('status_ibu') === 'Sudah Melahirkan' && $request->input('status_nik_balita') === 'Memiliki NIK' && empty($value)) { $fail('Kolom NIK Balita wajib diisi jika Status NIK Balita adalah Memiliki NIK.'); } } ], 'jenis_kelamin' => ['required_if:status_ibu,Sudah Melahirkan', 'max:255'], 'tanggal_lahir' => ['required_if:status_ibu,Sudah Melahirkan', 'max:255'], 'jam_lahir' => ['required_if:status_ibu,Sudah Melahirkan', 'max:255'], ], $customMessages ); // Jika validasi berhasil, lanjutkan proses penyimpanan data $validatedData = $validator->validated(); // Hitung usia ibu $tanggalLahirIbu = Carbon::parse($request->input('tanggal_lahir_ibu')); $usiaIbu = $tanggalLahirIbu->diffInYears(Carbon::now()); $tanggalLahirAyah = Carbon::parse($request->input('tanggal_lahir_ayah')); $usiaAyah = $tanggalLahirAyah->diffInYears(Carbon::now()); // $tanggalLahirAyah = Carbon::parse($request->input('tanggal_lahir_ibu')); // $usiaAyah = $tanggalLahirAyah->diffInYears(Carbon::now()); $validatedData['umur_ibu'] = $usiaIbu; $validatedData['umur_ayah'] = $usiaAyah; // $validatedData['umur_ayah'] = $usiaAyah; $newData = DataIbuHamil::create($validatedData); $newId = $newData->id; if ($validatedData['status_ibu'] === 'Sudah Melahirkan') { $nikBalita = $request->nik_balita ?? $request->status_nik_balita; DataBalita::create([ 'nik_balita' => $nikBalita, 'status_nik_balita' => $request->status_nik_balita, 'nama_balita' => $request->nama_balita, 'jenis_kelamin' => $request->jenis_kelamin, 'tanggal_lahir' => $request->tanggal_lahir, 'jam_lahir' => $request->jam_lahir, 'ibu_hamil_id' => $newId, 'lingkar_kepala_balita' => $request->lingkar_kepala_balita, 'status' => 'Sudah Dilahirkan' ]); } if ($validatedData['status_ibu'] === 'Hamil') { DataBalita::create([ 'status' => 'Belum Dilahirkan', 'ibu_hamil_id' => $newId, ]); } // Jika berhasil arahkan halaman /data_laporan return redirect('/data_pasien')->with('success', 'Data Berhasil Ditambah'); } }