HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Requests/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Requests/ProductRequest.php
<?php

namespace App\Http\Requests;

use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Validation\ValidationException;

class ProductRequest extends FormRequest {
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize() {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules() {
        $rules = [];
        $rules['name'] = 'required|max:255';
        $rules['category_id'] = 'required';
        $rules['unit'] = 'required';
        $rules['min_qty'] = 'required|numeric';
        $rules['unit_price'] = 'required|numeric';
        if ($this->get('discount_type') == 'amount') {
            $rules['discount'] = 'required|numeric|lt:unit_price';
        } else {
            $rules['discount'] = 'required|numeric|lt:100';
        }
        $rules['current_stock'] = 'required|numeric';
        return $rules;
    }

    /**
     * Get the validation messages of rules that apply to the request.
     *
     * @return array
     */
    public function messages() {
        return [
            'name.required' => 'El Nombre del Producto es Obligatorio',
            'category_id.required' => 'La Categoría es Obligatoria',
            'unit.required' => 'El Tipo de Unidad es Obligatorio',
            'min_qty.required' => 'La Cantidad Mínima de Compra es Obligatoria',
            'min_qty.numeric' => 'La Cantidad Mínima de Compra debe ser Numérica',
            'unit_price.required' => 'El Precio del Producto es Obligatorio',
            'unit_price.numeric' => 'El Precio del Producto debe ser Numérico',
            'discount.required' => 'El Descuento es Obligatorio',
            'discount.numeric' => 'El Descuento debe ser Numérico',
            'discount.lt:unit_price' => 'El Descuento no Puede ser Mayor al Precio del Producto',
            'current_stock.required' => 'El Número de Existencias es Obligatorio',
            'current_stock.numeric' => 'El Número de Existencias debe ser Numérico',
        ];
    }

    /**
     * Get the error messages for the defined validation rules.*
     * @return array
     */
    public function failedValidation(Validator $validator) {
        // dd($this->expectsJson());
        if ($this->expectsJson()) {
            throw new HttpResponseException(response()->json([
                'message' => $validator->errors()->all(),
                'result' => false
            ], 422));
        } else {
            throw (new ValidationException($validator))
                ->errorBag($this->errorBag)
                ->redirectTo($this->getRedirectUrl());
        }
    }
}