isMethod('POST') ? Permission::PURCHASES_CREATE : Permission::PURCHASES_UPDATE; return $this->user()?->can($permission->value) ?? false; } /** * @return array */ public function rules(): array { $rules = [ 'supplier_id' => ['required', 'integer', Rule::exists('suppliers', 'id')->whereNull('deleted_at')], 'discount' => ['nullable', 'integer', 'min:0'], 'notes' => ['nullable', 'string', 'max:100'], ...$this->photoRules(), ]; if ($this->isMethod('PUT') || $this->isMethod('PATCH')) { $rules['items'] = ['required', 'array', 'min:1']; $rules['items.*.raw_material_price_id'] = [ 'required', 'integer', Rule::exists('raw_material_prices', 'id')->whereNull('deleted_at'), ]; $rules['items.*.quantity'] = ['required', 'numeric', 'decimal:0,4', 'gt:0']; } return $rules; } /** * @return array */ public function attributes(): array { return [ 'supplier_id' => 'supplier', 'discount' => 'diskon', 'notes' => 'keterangan', 'items' => 'bahan baku', 'items.*.raw_material_price_id' => 'bahan baku', 'items.*.quantity' => 'jumlah', ...$this->photoUploadAttributes('bukti transaksi'), ]; } }