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.
This commit is contained in:
76
app/Http/Requests/PersetujuanPenawaranRequest.php
Normal file
76
app/Http/Requests/PersetujuanPenawaranRequest.php
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\app\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class PersetujuanPenawaranRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize()
|
||||
: bool
|
||||
{
|
||||
return true; // Adjust this based on your authorization logic
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*/
|
||||
public function rules()
|
||||
: array
|
||||
{
|
||||
return [
|
||||
'penawaran_id' => '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.',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user