penggabungan feature Data Penawaran ke dalam feature Proses Penawaran. Dan merapihkan tampilan index

This commit is contained in:
Andy Chaerudin
2024-11-20 14:49:48 +07:00
parent 38a8fb2d7d
commit 5aaecb5c4f
17 changed files with 726 additions and 74 deletions

View File

@@ -0,0 +1,85 @@
<?php
namespace Modules\Lpj\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ProsesPenawaranRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
$rules = [
'kjpp.*' => '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.');
}
});
}
}