From 64b640e5b380553a6c79b0ce72b8774eb8a187e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Wed, 28 Jul 2021 16:13:01 +0300 Subject: [PATCH 1/2] Transfer create and edit currency rate styling.. --- app/Http/Controllers/Banking/Transfers.php | 47 +++---- app/Models/Banking/Transfer.php | 125 +++++++++++++++++- .../views/banking/transfers/create.blade.php | 4 +- .../views/banking/transfers/edit.blade.php | 4 +- .../transfers/show/header.blade.php | 4 +- .../views/partials/form/text_group.blade.php | 6 +- 6 files changed, 152 insertions(+), 38 deletions(-) diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 0a975b60f..a5fb9aa48 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -56,15 +56,7 @@ class Transfers extends Controller $currency = Currency::where('code', setting('default.currency'))->first(); - $file_type_mimes = explode(',', config('filesystems.mimes')); - - $file_types = []; - - foreach ($file_type_mimes as $mime) { - $file_types[] = '.' . $mime; - } - - $file_types = implode(',', $file_types); + $file_types = $this->prepeareFileTypes(); return view('banking.transfers.create', compact('accounts', 'payment_methods', 'currency', 'file_types')); } @@ -148,18 +140,6 @@ class Transfers extends Controller */ public function edit(Transfer $transfer) { - $transfer['from_account_id'] = $transfer->expense_transaction->account_id; - $transfer['from_currency_code'] = $transfer->expense_transaction->currency_code; - $transfer['from_account_rate'] = $transfer->expense_transaction->currency_rate; - $transfer['to_account_id'] = $transfer->income_transaction->account_id; - $transfer['to_currency_code'] = $transfer->income_transaction->currency_code; - $transfer['to_account_rate'] = $transfer->income_transaction->currency_rate; - $transfer['transferred_at'] = Date::parse($transfer->expense_transaction->paid_at)->format('Y-m-d'); - $transfer['description'] = $transfer->expense_transaction->description; - $transfer['amount'] = $transfer->expense_transaction->amount; - $transfer['payment_method'] = $transfer->expense_transaction->payment_method; - $transfer['reference'] = $transfer->expense_transaction->reference; - $accounts = Account::enabled()->orderBy('name')->pluck('name', 'id'); $payment_methods = Modules::getPaymentMethods(); @@ -168,15 +148,7 @@ class Transfers extends Controller $currency = Currency::where('code', $account->currency_code)->first(); - $file_type_mimes = explode(',', config('filesystems.mimes')); - - $file_types = []; - - foreach ($file_type_mimes as $mime) { - $file_types[] = '.' . $mime; - } - - $file_types = implode(',', $file_types); + $file_types = $this->prepeareFileTypes(); return view('banking.transfers.edit', compact('transfer', 'accounts', 'payment_methods', 'currency', 'file_types')); } @@ -287,4 +259,19 @@ class Transfers extends Controller return $pdf->download($file_name); } + + protected function prepeareFileTypes() + { + $file_type_mimes = explode(',', config('filesystems.mimes')); + + $file_types = []; + + foreach ($file_type_mimes as $mime) { + $file_types[] = '.' . $mime; + } + + $file_types = implode(',', $file_types); + + return $file_types; + } } diff --git a/app/Models/Banking/Transfer.php b/app/Models/Banking/Transfer.php index 1b2e92f1d..72316a6f4 100644 --- a/app/Models/Banking/Transfer.php +++ b/app/Models/Banking/Transfer.php @@ -16,7 +16,20 @@ class Transfer extends Model protected $table = 'transfers'; - protected $appends = ['attachment']; + protected $appends = [ + 'attachment', + 'from_account_id', + 'from_currency_code', + 'from_account_rate', + 'to_account_id', + 'to_currency_code', + 'to_account_rate', + 'transferred_at', + 'description', + 'amount', + 'payment_method', + 'reference', + ]; /** * Attributes that should be mass-assignable. @@ -101,6 +114,116 @@ class Transfer extends Model return $value ?: 'banking.transfers.print_' . setting('transfer.template'); } + /** + * Get the current balance. + * + * @return int + */ + public function getFromAccountIdAttribute($value = null) + { + return $value ?: $this->expense_transaction->account_id; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getFromCurrencyCodeAttribute($value = null) + { + return $value ?: $this->expense_transaction->currency_code; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getFromAccountRateAttribute($value = null) + { + return $value ?: $this->expense_transaction->currency_rate; + } + + /** + * Get the current balance. + * + * @return int + */ + public function getToAccountIdAttribute($value = null) + { + return $value ?: $this->income_transaction->account_id; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getToCurrencyCodeAttribute($value = null) + { + return $value ?: $this->income_transaction->currency_code; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getToAccountRateAttribute($value = null) + { + return $value ?: $this->income_transaction->currency_rate; + } + + /** + * Get the current balance. + * + * @return date + */ + public function getTransferredAtAttribute($value = null) + { + return $value ?: $this->expense_transaction->paid_at; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getDescriptionAttribute($value = null) + { + return $value ?: $this->expense_transaction->description; + } + + /** + * Get the current balance. + * + * @return float + */ + public function getAmountAttribute($value = null) + { + return $value ?: $this->expense_transaction->amount; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getPaymentMethodAttribute($value = null) + { + return $value ?: $this->expense_transaction->payment_method; + } + + /** + * Get the current balance. + * + * @return string + */ + public function getReferenceAttribute($value = null) + { + return $value ?: $this->expense_transaction->reference; + } + /** * Create a new factory instance for the model. * diff --git a/resources/views/banking/transfers/create.blade.php b/resources/views/banking/transfers/create.blade.php index 592341aaa..3cd4b7272 100644 --- a/resources/views/banking/transfers/create.blade.php +++ b/resources/views/banking/transfers/create.blade.php @@ -24,11 +24,11 @@
{!! Form::hidden('from_currency_code', null, ['id' => 'from_currency_code', 'v-model' => 'form.from_currency_code']) !!} - {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', []) }} + {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [':disabled' => "form.from_currency_code == '" . setting('default.currency') . "'"]) }} {!! Form::hidden('to_currency_code', null, ['id' => 'to_currency_code', 'v-model' => 'form.to_currency_code']) !!} - {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', []) }} + {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [':disabled' => "form.to_currency_code == '" . setting('default.currency') . "'"]) }}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'currency' => $currency, 'dynamic-currency' => 'currency'], 0) }} diff --git a/resources/views/banking/transfers/edit.blade.php b/resources/views/banking/transfers/edit.blade.php index 14e8576ad..ef5cdf8ae 100644 --- a/resources/views/banking/transfers/edit.blade.php +++ b/resources/views/banking/transfers/edit.blade.php @@ -25,11 +25,11 @@
{!! Form::hidden('from_currency_code', $transfer->from_currency_code, ['id' => 'from_currency_code', 'v-model' => 'form.from_currency_code']) !!} - {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [], $transfer->from_account_rate) }} + {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [':disabled' => "form.from_currency_code == '" . setting('default.currency') . "'"], $transfer->from_account_rate) }} {!! Form::hidden('to_currency_code', $transfer->to_currency_code, ['id' => 'to_currency_code', 'v-model' => 'form.to_currency_code']) !!} - {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [], $transfer->to_account_rate) }} + {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [':disabled' => "form.to_currency_code == '" . setting('default.currency') . "'"], $transfer->to_account_rate) }}
{{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'currency' => $currency, 'dynamic-currency' => 'currency'], $transfer->amount) }} diff --git a/resources/views/components/transfers/show/header.blade.php b/resources/views/components/transfers/show/header.blade.php index 3e90a6816..f5dea97d5 100644 --- a/resources/views/components/transfers/show/header.blade.php +++ b/resources/views/components/transfers/show/header.blade.php @@ -35,13 +35,13 @@ @if (!$hideHeaderAmount)
- {{ trans($textHeaderAmount) }} + {{ trans($textHeaderAmount) }}
- @money($transfer->expense_transaction->amount, $transfer->from_currency_code, true) + @money($transfer->expense_transaction->amount, $transfer->expense_transaction->currency_code, true)

diff --git a/resources/views/partials/form/text_group.blade.php b/resources/views/partials/form/text_group.blade.php index 36d0cff4d..62ae866cb 100644 --- a/resources/views/partials/form/text_group.blade.php +++ b/resources/views/partials/form/text_group.blade.php @@ -2,10 +2,14 @@
@if (!empty($text)) {!! Form::label($name, $text, ['class' => 'form-control-label'])!!} From 091f3d7de5eb81c7757cdf3d0e8e8a80deb2f52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Thu, 29 Jul 2021 15:37:15 +0300 Subject: [PATCH 2/2] Transfer edit fixed currency rate #nz9k0y --- .../assets/js/views/banking/transfers.js | 27 +++++++++++++++++- .../views/banking/transfers/edit.blade.php | 28 +++++++++++++++---- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/resources/assets/js/views/banking/transfers.js b/resources/assets/js/views/banking/transfers.js index 57f74e702..a81ed42e9 100644 --- a/resources/assets/js/views/banking/transfers.js +++ b/resources/assets/js/views/banking/transfers.js @@ -30,6 +30,11 @@ const app = new Vue({ form: new Form('transfer'), bulk_action: new BulkAction('transfers'), show_rate: false, + edit: { + status: false, + form_account: false, + to_account: false, + }, transfer_form: new Form('template'), template: { @@ -48,6 +53,11 @@ const app = new Vue({ return; } + if (this.edit.status && this.edit.form_account < 2) { + this.edit.form_account++; + return; + } + let from_promise = Promise.resolve(window.axios.get(url + '/banking/accounts/currency', { params: { account_id: from_account_id @@ -77,6 +87,11 @@ const app = new Vue({ return; } + if (this.edit.status && this.edit.to_account < 2) { + this.edit.to_account++; + return; + } + let to_promise = Promise.resolve(window.axios.get(url + '/banking/accounts/currency', { params: { account_id: to_account_id @@ -126,5 +141,15 @@ const app = new Vue({ errors: this.transfer_form.errors }; }, - } + }, + + created() { + if (typeof transfer_edit !== 'undefined' && transfer_edit) { + this.show_rate = true; + + this.edit.status = true; + this.edit.form_account = 1; + this.edit.to_account = 1; + } + }, }); diff --git a/resources/views/banking/transfers/edit.blade.php b/resources/views/banking/transfers/edit.blade.php index ef5cdf8ae..4bdd61d93 100644 --- a/resources/views/banking/transfers/edit.blade.php +++ b/resources/views/banking/transfers/edit.blade.php @@ -22,15 +22,27 @@ {{ Form::selectGroup('to_account_id', trans('transfers.to_account'), 'university', $accounts, $transfer->to_account_id, ['required' => 'required', 'change' => 'onChangeToAccount']) }} -
- {!! Form::hidden('from_currency_code', $transfer->from_currency_code, ['id' => 'from_currency_code', 'v-model' => 'form.from_currency_code']) !!} + @if ($transfer->from_currency_code != $transfer->to_currency_code) +
+ {!! Form::hidden('from_currency_code', $transfer->from_currency_code, ['id' => 'from_currency_code', 'v-model' => 'form.from_currency_code']) !!} - {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [':disabled' => "form.from_currency_code == '" . setting('default.currency') . "'"], $transfer->from_account_rate) }} + {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [':disabled' => "form.from_currency_code == '" . setting('default.currency') . "'"], $transfer->from_account_rate) }} - {!! Form::hidden('to_currency_code', $transfer->to_currency_code, ['id' => 'to_currency_code', 'v-model' => 'form.to_currency_code']) !!} + {!! Form::hidden('to_currency_code', $transfer->to_currency_code, ['id' => 'to_currency_code', 'v-model' => 'form.to_currency_code']) !!} - {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [':disabled' => "form.to_currency_code == '" . setting('default.currency') . "'"], $transfer->to_account_rate) }} -
+ {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [':disabled' => "form.to_currency_code == '" . setting('default.currency') . "'"], $transfer->to_account_rate) }} +
+ @else +
+ {!! Form::hidden('from_currency_code', $transfer->from_currency_code, ['id' => 'from_currency_code', 'v-model' => 'form.from_currency_code']) !!} + + {{ Form::textGroup('from_account_rate', trans('transfers.from_account_rate'), 'sliders-h', [':disabled' => "form.from_currency_code == '" . setting('default.currency') . "'"], $transfer->from_account_rate) }} + + {!! Form::hidden('to_currency_code', $transfer->to_currency_code, ['id' => 'to_currency_code', 'v-model' => 'form.to_currency_code']) !!} + + {{ Form::textGroup('to_account_rate', trans('transfers.to_account_rate'), 'sliders-h', [':disabled' => "form.to_currency_code == '" . setting('default.currency') . "'"], $transfer->to_account_rate) }} +
+ @endif {{ Form::moneyGroup('amount', trans('general.amount'), 'money-bill-alt', ['required' => 'required', 'currency' => $currency, 'dynamic-currency' => 'currency'], $transfer->amount) }} @@ -61,5 +73,9 @@ @endsection @push('scripts_start') + + @endpush