'exists:kjpp,id', 'tujuan_penilaian_kjpp_id' => 'required', 'jenis_laporan_id' => 'required', 'start_date' => 'required', 'end_date' => 'required', 'catatan' => 'nullable' ]; // if ($this->method() == 'PUT') { // $rules['code'] = 'required|max:50'; // } else { // $rules['code'] = 'required|max:50|unique:penawaran,code'; // } return $rules; } /** * Determine if the user is authorized to make this request. */ public function authorize(): bool { return true; } public function messages(): array { return [ 'code.required' => 'Kode Penawaran Wajib diisi!', 'code.max' => 'Kode Penawaran maksimal 255 huruf!', 'code.unique' => 'Kode Penawaran tidak boleh sama!', 'tujuan_penilaian_kjpp_id.required' => 'Tujuan Penilaian KJPP Wajib diisi!', 'jenis_laporan_id.required' => 'Jenis Laporan Wajib diisi!', 'start_date.required' => 'Tanggal Awal Wajib diisi!', 'end_date.required' => 'Tanggal Akhir Wajib diisi!', ]; } public function withValidator($validator) { $validator->after(function ($validator) { $startDate = strtotime($this->input('start_date')); $endDate = strtotime($this->input('end_date')); $today = strtotime(date('Y-m-d')); // Jika dalam keadaan tambah penawaran maka munculkan pesan ini // if ($this->method() !== 'PUT') { // if ($startDate < $today) { // $validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.'); // } // } if ($endDate < $startDate) { $validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.'); } // Validasi minimal 3 pilihan pada nama_kjpp $namaKjpp = $this->input('kjpp', []); // jika nama KJPP itu kosong if (empty($namaKjpp)) { $validator->errors()->add('kjpp', 'Nama KJPP wajib diisi.'); } // jika terisi kurang dari 3 item elseif (is_array($namaKjpp) && count($namaKjpp) < 3) { $validator->errors()->add('kjpp', 'Nama KJPP minimal 3 pilihan.'); } }); } }