Kasir/app/Http/Requests/DetailLaporanRequest.php
2025-09-19 13:26:53 +07:00

60 lines
1.7 KiB
PHP

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class DetailLaporanRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
return [
'start_date' => 'required|date_format:Y-m-d',
'end_date' => 'required|date_format:Y-m-d|after_or_equal:start_date',
'sales_id' => 'nullable|integer|exists:sales,id',
'nampan_id' => 'nullable|integer',
'produk_id' => 'nullable|integer|exists:produks,id',
'nama_pembeli' => 'nullable|string|max:255',
'page' => 'nullable|integer|min:1',
'per_page' => 'nullable|integer|min:1|max:100',
];
}
/**
* Get custom messages for validator errors.
*/
public function messages(): array
{
return [
'end_date.after_or_equal' => 'Tanggal akhir harus sama atau setelah tanggal mulai.',
'sales_id.exists' => 'Sales tidak ditemukan',
'produk_id.exists' => 'Produk tidak ditemukan',
'nama_pembeli.max' => 'Nama pembeli maksimal 255 karakter',
'page.min' => 'Page minimal 1',
'per_page.min' => 'Per page minimal 1',
'per_page.max' => 'Per page maksimal 100',
];
}
/**
* Prepare the data for validation.
*/
protected function prepareForValidation(): void
{
$this->merge([
'page' => $this->query('page', 1),
'per_page' => $this->query('per_page', 15),
]);
}
}