Co-authored-by: Juan Felipe Zapata Moreno <zapata_pipe@hotmail.com> Reviewed-on: #1
59 lines
2.1 KiB
PHP
59 lines
2.1 KiB
PHP
<?php namespace App\Http\Requests\Netbien;
|
|
/**
|
|
* @copyright (c) 2025 Notsoweb Software (https://notsoweb.com) - All Rights Reserved
|
|
*/
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
use Illuminate\Support\Str;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
/**
|
|
* Almacenar rol
|
|
*
|
|
* @author Moisés Cortés C. <moises.cortes@notsoweb.com>
|
|
*
|
|
* @version 1.0.0
|
|
*/
|
|
class SaleStoreRequest extends FormRequest
|
|
{
|
|
public function authorize(): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Get the validation rules that apply to the request.
|
|
*/
|
|
public function rules(): array
|
|
{
|
|
return [
|
|
'client_id' => ['nullable', 'integer', 'exists:clients,id'],
|
|
'client' => ['required_without:client_id', 'array'],
|
|
'client.name' => ['required_with:client', 'string'],
|
|
'client.paternal' => ['required_with:client', 'string'],
|
|
'client.maternal' => ['required_with:client', 'string'],
|
|
'client.email' => ['required_with:client', 'email'],
|
|
'client.phone' => ['nullable', 'string', 'max:10'],
|
|
|
|
'payment_method' => ['required', 'string', 'in:cash,card,transfer'],
|
|
|
|
'saleItems' => ['required', 'array', 'min:1'],
|
|
'saleItems.*.sim_card_id' => ['required', 'integer', 'exists:sim_cards,id'],
|
|
'saleItems.*.package_id' => ['required', 'integer', 'exists:packages,id'],
|
|
];
|
|
}
|
|
|
|
public function messages(): array
|
|
{
|
|
return [
|
|
'client_id.exists' => 'El cliente seleccionado no existe.',
|
|
'client.required_without' => 'Debe proporcionar un cliente existente o crear uno nuevo.',
|
|
'payment_method.required' => 'El método de pago es obligatorio.',
|
|
'payment_method.in' => 'El método de pago debe ser: efectivo, tarjeta o transferencia.',
|
|
'saleItems.required' => 'Debe agregar al menos un item a la venta.',
|
|
'saleItems.*.sim_card_id.exists' => 'Una de las SIM seleccionadas no existe.',
|
|
'saleItems.*.package_id.exists' => 'Uno de los paquetes seleccionados no existe.',
|
|
];
|
|
}
|
|
}
|