From f2ed8321e1c0cd8f656c4fffe51241e037bd8299 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 20 Nov 2024 22:46:50 +0700 Subject: [PATCH] Tambah request validasi PersetujuanPenawaranRequest Menambahkan file request baru bernama PersetujuanPenawaranRequest untuk melakukan validasi terhadap data persetujuan penawaran. Meliputi aturan validasi, pesan kustom untuk kesalahan validasi, serta pengaturan otorisasi. File ini akan memastikan data yang diterima sesuai dengan yang diharapkan sebelum diproses lebih lanjut. --- .../Requests/PersetujuanPenawaranRequest.php | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/Http/Requests/PersetujuanPenawaranRequest.php diff --git a/app/Http/Requests/PersetujuanPenawaranRequest.php b/app/Http/Requests/PersetujuanPenawaranRequest.php new file mode 100644 index 0000000..b33cc7a --- /dev/null +++ b/app/Http/Requests/PersetujuanPenawaranRequest.php @@ -0,0 +1,76 @@ + 'required|exists:penawaran_tender,id', + 'nomor_proposal_penawaran' => 'nullable|string|max:255', + 'tanggal_proposal_penawaran' => 'nullable|date', + 'biaya_final' => 'nullable|numeric|min:0', + 'sla_resume' => 'nullable|date', + 'sla_final' => 'nullable|date|after_or_equal:sla_resume', + 'catatan' => 'nullable|string', + 'attachment' => 'nullable|file|mimes:pdf,doc,docx|max:10240', // Max 10MB + 'region_id' => 'nullable|exists:regions,id', + 'status' => 'nullable|boolean', + 'authorized_status' => 'nullable|boolean', + 'authorized_at' => 'nullable|date', + 'authorized_by' => 'nullable|exists:users,id', + ]; + } + + /** + * Get custom messages for validator errors. + */ + public function messages() + : array + { + return [ + 'penawaran_id.required' => 'Penawaran ID wajib diisi.', + 'penawaran_id.exists' => 'Penawaran ID tidak valid.', + 'nomor_proposal_penawaran.required' => 'Nomor proposal penawaran wajib diisi.', + 'tanggal_proposal_penawaran.required' => 'Tanggal proposal penawaran wajib diisi.', + 'tanggal_proposal_penawaran.date' => 'Tanggal proposal penawaran harus berupa tanggal yang valid.', + 'biaya_final.required' => 'Biaya final wajib diisi.', + 'biaya_final.numeric' => 'Biaya final harus berupa angka.', + 'biaya_final.min' => 'Biaya final tidak boleh kurang dari 0.', + 'sla_resume.required' => 'SLA Resume wajib diisi.', + 'sla_resume.date' => 'SLA Resume harus berupa tanggal yang valid.', + 'sla_final.required' => 'SLA Final wajib diisi.', + 'sla_final.date' => 'SLA Final harus berupa tanggal yang valid.', + 'sla_final.after_or_equal' => 'SLA Final harus sama dengan atau setelah SLA Resume.', + 'attachment.file' => 'Attachment harus berupa file.', + 'attachment.mimes' => 'Attachment harus berupa file PDF, DOC, atau DOCX.', + 'attachment.max' => 'Ukuran attachment tidak boleh lebih dari 10MB.', + 'region_id.required' => 'Region ID wajib diisi.', + 'region_id.exists' => 'Region ID tidak valid.', + 'status.required' => 'Status wajib diisi.', + 'status.boolean' => 'Status harus berupa nilai boolean.', + 'authorized_status.boolean' => 'Status otorisasi harus berupa nilai boolean.', + 'authorized_at.date' => 'Tanggal otorisasi harus berupa tanggal yang valid.', + 'authorized_by.exists' => 'ID pengguna yang mengotorisasi tidak valid.', + ]; + } + }