StoreStockOrderRequest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Http\Requests;
  4. use App\Models\StockOrder;
  5. use Illuminate\Foundation\Http\FormRequest;
  6. use Illuminate\Validation\Rule;
  7. class StoreStockOrderRequest extends FormRequest
  8. {
  9. public function authorize(): bool
  10. {
  11. return true;
  12. }
  13. /** @return array<string, mixed> */
  14. public function rules(): array
  15. {
  16. /** @var StockOrder|null $stockOrder */
  17. $stockOrder = $this->route('stockOrder');
  18. return [
  19. 'common_catalog_item_id' => ['required', 'integer', 'exists:common_catalog_items,id'],
  20. 'order_number' => [
  21. 'required',
  22. 'string',
  23. 'max:255',
  24. Rule::unique('stock_orders', 'order_number')
  25. ->where('common_catalog_item_id', $this->integer('common_catalog_item_id'))
  26. ->withoutTrashed()
  27. ->ignore($stockOrder),
  28. ],
  29. 'status' => ['required', Rule::in(array_keys(StockOrder::STATUS_NAMES))],
  30. 'ordered_quantity' => ['required', 'integer', 'min:1'],
  31. 'note' => ['nullable', 'string', 'max:2000'],
  32. ];
  33. }
  34. }