diff --git a/app/Http/Controllers/Modals/TransferTemplates.php b/app/Http/Controllers/Modals/TransferTemplates.php new file mode 100644 index 000000000..022545ecd --- /dev/null +++ b/app/Http/Controllers/Modals/TransferTemplates.php @@ -0,0 +1,67 @@ +middleware('permission:create-settings-settings')->only('create', 'store'); + $this->middleware('permission:read-settings-settings')->only('index', 'edit'); + $this->middleware('permission:update-settings-settings')->only('update', 'enable', 'disable'); + $this->middleware('permission:delete-settings-settings')->only('destroy'); + } + + /** + * Update the specified resource in storage. + * + * @param Request $request + * + * @return Response + */ + public function update(Request $request) + { + $fields = $request->all(); + $prefix = $request->get('_prefix', 'transfer'); + $company_id = $request->get('company_id'); + + if (empty($company_id)) { + $company_id = company_id(); + } + + foreach ($fields as $key => $value) { + $real_key = $prefix . '.' . $key; + + // Don't process unwanted keys + if (in_array($key, $this->skip_keys)) { + continue; + } + + setting()->set($real_key, $value); + } + + // Save all settings + setting()->save(); + + $message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]); + + $response = [ + 'status' => null, + 'success' => true, + 'error' => false, + 'message' => $message, + 'data' => null, + 'redirect' => route('settings.invoice.edit'), + ]; + + flash($message)->success(); + + return response()->json($response); + } +} diff --git a/app/View/Components/Transfers/Script.php b/app/View/Components/Transfers/Script.php index 612334620..19df6f1a2 100644 --- a/app/View/Components/Transfers/Script.php +++ b/app/View/Components/Transfers/Script.php @@ -25,7 +25,7 @@ class Script extends Component public function __construct(string $type = '', string $scriptFile = '', string $version = '', $transfer = false) { $this->type = $type; - $this->scriptFile = ($scriptFile) ? $scriptFile : 'public/js/banling/transfers.js'; + $this->scriptFile = ($scriptFile) ? $scriptFile : 'public/js/banking/transfers.js'; $this->version = $this->getVersion($version); $this->transfer = $transfer; } diff --git a/public/img/transfer_templates/default.png b/public/img/transfer_templates/default.png new file mode 100644 index 000000000..9e360346c Binary files /dev/null and b/public/img/transfer_templates/default.png differ diff --git a/public/img/transfer_templates/second.png b/public/img/transfer_templates/second.png new file mode 100644 index 000000000..d0e92a220 Binary files /dev/null and b/public/img/transfer_templates/second.png differ diff --git a/public/img/transfer_templates/third.png b/public/img/transfer_templates/third.png new file mode 100644 index 000000000..705422f51 Binary files /dev/null and b/public/img/transfer_templates/third.png differ diff --git a/resources/assets/js/views/banking/transfers.js b/resources/assets/js/views/banking/transfers.js index 65fb2cf87..87d9bbbfa 100644 --- a/resources/assets/js/views/banking/transfers.js +++ b/resources/assets/js/views/banking/transfers.js @@ -30,6 +30,15 @@ const app = new Vue({ form: new Form('transfer'), bulk_action: new BulkAction('transfers'), show_rate: false, + + transfer_form: new Form('template'), + template: { + modal: false, + title: '', + message: '', + html: '', + errors: new Error() + }, } }, @@ -87,5 +96,35 @@ const app = new Vue({ } }); }, + + onTemplate() { + this.template.modal = true; + + this.transfer_form = new Form('template'); + + this.transfer_form.template = this.transfer_form._template; + }, + + addTemplate() { + if (this.transfer_form.template != 1) { + + this.transfer_form.submit(); + + this.template.errors = this.transfer_form.errors; + } + + this.form.loading = true; + + this.$emit("confirm"); + }, + + closeTemplate() { + this.template = { + modal: false, + title: '', + message: '', + errors: this.transfer_form.errors + }; + }, } }); diff --git a/resources/views/banking/transfers/show.blade.php b/resources/views/banking/transfers/show.blade.php index e146e282c..6503a3e11 100644 --- a/resources/views/banking/transfers/show.blade.php +++ b/resources/views/banking/transfers/show.blade.php @@ -10,6 +10,33 @@ @endsection +@push('content_content_end') + + + + + +@endpush + @push('scripts_start') diff --git a/resources/views/components/transfers/show/top-buttons.blade.php b/resources/views/components/transfers/show/top-buttons.blade.php index b06216a4c..0e2326817 100644 --- a/resources/views/components/transfers/show/top-buttons.blade.php +++ b/resources/views/components/transfers/show/top-buttons.blade.php @@ -57,9 +57,9 @@ @if (!$hideButtonTemplate) @stack('button_template_start') - + @stack('button_template_end') @endif diff --git a/resources/views/modals/settings/transfer_template.blade.php b/resources/views/modals/settings/transfer_template.blade.php new file mode 100644 index 000000000..0a36f37d8 --- /dev/null +++ b/resources/views/modals/settings/transfer_template.blade.php @@ -0,0 +1,49 @@ + diff --git a/routes/admin.php b/routes/admin.php index fa76b9325..cb14a167d 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -245,6 +245,7 @@ Route::group(['as' => 'modals.', 'prefix' => 'modals'], function () { Route::resource('vendors', 'Modals\Vendors'); Route::resource('items', 'Modals\Items'); Route::patch('invoice-templates', 'Modals\InvoiceTemplates@update')->name('invoice-templates.update'); + Route::patch('transfer-templates', 'Modals\TransferTemplates@update')->name('transfer-templates.update'); Route::get('documents/item-columns/edit', 'Modals\DocumentItemColumns@edit')->name('documents.item-columns.edit'); Route::patch('documents/item-columns', 'Modals\DocumentItemColumns@update')->name('documents.item-columns.update'); Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', ['names' => 'documents.document.transactions', 'middleware' => ['date.format', 'money', 'dropzone']]);