芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/app/Http/Requests/InvoicesRequest.php
[ 'required', ], 'due_date' => [ 'nullable', ], 'customer_id' => [ 'required', ], 'invoice_number' => [ 'required', Rule::unique('invoices')->where('company_id', $this->header('company')), ], 'exchange_rate' => [ 'nullable', ], 'discount' => [ 'numeric', 'required', ], 'discount_val' => [ 'integer', 'required', ], 'sub_total' => [ 'integer', 'required', ], 'total' => [ 'integer', 'numeric', 'max:999999999999', 'required', ], 'tax' => [ 'required', ], 'template_name' => [ 'required', ], 'items' => [ 'required', 'array', ], 'items.*' => [ 'required', 'max:255', ], 'items.*.description' => [ 'nullable', ], 'items.*.name' => [ 'required', ], 'items.*.quantity' => [ 'numeric', 'required', ], 'items.*.price' => [ 'integer', 'required', ], ]; $companyCurrency = CompanySetting::getSetting('currency', $this->header('company')); $customer = Customer::find($this->customer_id); if ($customer && $companyCurrency) { if ((string) $customer->currency_id !== $companyCurrency) { $rules['exchange_rate'] = [ 'required', ]; } } if ($this->isMethod('PUT')) { $rules['invoice_number'] = [ 'required', Rule::unique('invoices') ->ignore($this->route('invoice')->id) ->where('company_id', $this->header('company')), ]; } return $rules; } public function getInvoicePayload() { $company_currency = CompanySetting::getSetting('currency', $this->header('company')); $current_currency = $this->currency_id; $exchange_rate = $company_currency != $current_currency ? $this->exchange_rate : 1; $currency = Customer::find($this->customer_id)->currency_id; return collect($this->except('items', 'taxes')) ->merge([ 'creator_id' => $this->user()->id ?? null, 'status' => $this->has('invoiceSend') ? Invoice::STATUS_SENT : Invoice::STATUS_DRAFT, 'paid_status' => Invoice::STATUS_UNPAID, 'company_id' => $this->header('company'), 'tax_per_item' => CompanySetting::getSetting('tax_per_item', $this->header('company')) ?? 'NO ', 'discount_per_item' => CompanySetting::getSetting('discount_per_item', $this->header('company')) ?? 'NO', 'due_amount' => $this->total, 'exchange_rate' => $exchange_rate, 'base_total' => $this->total * $exchange_rate, 'base_discount_val' => $this->discount_val * $exchange_rate, 'base_sub_total' => $this->sub_total * $exchange_rate, 'base_tax' => $this->tax * $exchange_rate, 'base_due_amount' => $this->total * $exchange_rate, 'currency_id' => $currency, ]) ->toArray(); } }