Catch up currency_id which is not passed

This commit is contained in:
David Bomba 2023-10-04 00:17:32 +11:00
parent 08f13cba2a
commit 1c906fcb52
2 changed files with 16 additions and 6 deletions

View File

@ -33,11 +33,18 @@ class StorePaymentRequest extends Request
*/
public function authorize() : bool
{
return auth()->user()->can('create', Payment::class);
/** @var \App\Models\User $user */
$user = auth()->user();
return $user->can('create', Payment::class);
}
public function prepareForValidation()
{
/** @var \App\Models\User $user */
$user = auth()->user();
$input = $this->all();
$invoices_total = 0;
@ -86,7 +93,7 @@ class StorePaymentRequest extends Request
}
if (! isset($input['date'])) {
$input['date'] = now()->addSeconds(auth()->user()->company()->timezone()->utc_offset)->format('Y-m-d');
$input['date'] = now()->addSeconds($user->company()->timezone()->utc_offset)->format('Y-m-d');
}
$this->replace($input);
@ -94,10 +101,13 @@ class StorePaymentRequest extends Request
public function rules()
{
/** @var \App\Models\User $user */
$user = auth()->user();
$rules = [
'amount' => ['numeric', 'bail', new PaymentAmountsBalanceRule(), new ValidCreditsPresentRule($this->all())],
// 'client_id' => 'bail|required|exists:clients,id',
'client_id' => 'bail|required|exists:clients,id,company_id,'.auth()->user()->company()->id.',is_deleted,0',
'client_id' => 'bail|required|exists:clients,id,company_id,'.$user->company()->id.',is_deleted,0',
'invoices.*.invoice_id' => 'bail|required|distinct|exists:invoices,id',
'invoices.*.amount' => 'bail|required',
'invoices.*.invoice_id' => new ValidInvoicesRules($this->all()),
@ -105,8 +115,8 @@ class StorePaymentRequest extends Request
'credits.*.credit_id' => new ValidCreditsRules($this->all()),
'credits.*.amount' => ['bail','required', new CreditsSumRule($this->all())],
'invoices' => new ValidPayableInvoicesRule(),
'number' => ['nullable', 'bail', Rule::unique('payments')->where('company_id', auth()->user()->company()->id)],
'idempotency_key' => ['nullable', 'bail', 'string','max:64', Rule::unique('payments')->where('company_id', auth()->user()->company()->id)],
'number' => ['nullable', 'bail', Rule::unique('payments')->where('company_id', $user->company()->id)],
'idempotency_key' => ['nullable', 'bail', 'string','max:64', Rule::unique('payments')->where('company_id', $user->company()->id)],
];

View File

@ -108,7 +108,7 @@ class PaymentRepository extends BaseRepository
$payment->is_manual = true;
$payment->status_id = Payment::STATUS_COMPLETED;
if (! $payment->currency_id && $client) {
if ((!$payment->currency_id || $payment->currency_id == 0) && $client) {
if (property_exists($client->settings, 'currency_id')) {
$payment->currency_id = $client->settings->currency_id;
} else {