From 0f34bd066fe06f4405bb7a70d96e278a63380744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=BCneyt=20=C5=9Eent=C3=BCrk?= Date: Fri, 13 Mar 2020 15:45:23 +0300 Subject: [PATCH] close #1353 Fixed: Invoice item selected tax not calculate real time --- .../assets/js/components/AkauntingSelect.vue | 28 +++++++++++++------ .../js/components/AkauntingSelectRemote.vue | 24 +++++++++------- .../views/purchases/bills/item.blade.php | 5 ++-- resources/views/sales/invoices/item.blade.php | 5 ++-- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/resources/assets/js/components/AkauntingSelect.vue b/resources/assets/js/components/AkauntingSelect.vue index 21bb91cda..0ac043bd8 100644 --- a/resources/assets/js/components/AkauntingSelect.vue +++ b/resources/assets/js/components/AkauntingSelect.vue @@ -74,7 +74,7 @@ - +
@@ -147,7 +147,7 @@ - +
@@ -220,7 +220,7 @@ - +
@@ -293,7 +293,7 @@ - +
@@ -366,7 +366,7 @@ - +
@@ -549,12 +549,12 @@ export default { methods: { change() { - if (typeof(this.real_model) === 'object') { + if (typeof(this.real_model) === 'object' && typeof(this.real_model.type) !== 'undefined') { return false; } - this.$emit('change', this.real_model); this.$emit('interface', this.real_model); + this.$emit('change', this.real_model); }, async onAddItem() { @@ -679,6 +679,10 @@ export default { this.form.loading = false; if (response.data.success) { + if (!this.selectOptions.length) { + this.selectOptions = {}; + } + this.selectOptions[response.data.data[this.add_new.field.key]] = response.data.data[this.add_new.field.value]; this.new_options[response.data.data[this.add_new.field.key]] = response.data.data[this.add_new.field.value]; @@ -688,8 +692,6 @@ export default { this.real_model = response.data.data[this.add_new.field.key].toString(); } - this.change(); - this.add_new.show = false; this.add_new.html = ''; @@ -698,6 +700,10 @@ export default { if (this.multiple) { this.hide_selected = false; } + + this.$emit('new', response.data.data); + + this.change(); } }) .catch(error => { @@ -726,6 +732,10 @@ export default { this.selectOptions = options; if (Object.keys(this.new_options).length) { + if (!this.selectOptions.length) { + this.selectOptions = {}; + } + for (let [key, value] of Object.entries(this.new_options)) { if (!this.selectOptions[key]) { this.selectOptions[key] = value; diff --git a/resources/assets/js/components/AkauntingSelectRemote.vue b/resources/assets/js/components/AkauntingSelectRemote.vue index 621c09c1d..b9a78ed04 100644 --- a/resources/assets/js/components/AkauntingSelectRemote.vue +++ b/resources/assets/js/components/AkauntingSelectRemote.vue @@ -74,7 +74,7 @@ - +
@@ -147,7 +147,7 @@ - +
@@ -220,7 +220,7 @@ - +
@@ -293,7 +293,7 @@ - +
@@ -390,7 +390,7 @@ - +
@@ -634,8 +634,8 @@ export default { return false; } - this.$emit('change', this.real_model); this.$emit('interface', this.real_model); + this.$emit('change', this.real_model); this.selectOptions.forEach(item => { if (item.id == this.real_model) { @@ -687,13 +687,15 @@ export default { this.new_options[response.data.data[this.add_new.field.key]] = response.data.data; this.real_model = response.data.data[this.add_new.field.key]; - this.change(); - if (this.title) { this.$children[0].$children[0].visible = false; } else { this.$children[0].visible = false; } + + this.$emit('new', response.data.data); + + this.change(); } }) .catch(error => { @@ -804,12 +806,14 @@ export default { this.new_options[response.data.data[this.add_new.field.key]] = response.data.data[this.add_new.field.value]; this.real_model = response.data.data[this.add_new.field.key];//.toString(); - this.change(); - this.add_new.show = false; this.add_new.html = ''; this.add_new_html = null; + + this.$emit('new', response.data.data); + + this.change(); } }) .catch(error => { diff --git a/resources/views/purchases/bills/item.blade.php b/resources/views/purchases/bills/item.blade.php index 85eabcbdd..1dd723617 100644 --- a/resources/views/purchases/bills/item.blade.php +++ b/resources/views/purchases/bills/item.blade.php @@ -133,9 +133,10 @@ ] ] ])}}" - :collapse="false" + :collapse="true" @interface="row.tax_id = $event" - @change="onCalculateTotal($event)" + @change="onCalculateTotal()" + @new="taxes.push($event)" :form-error="form.errors.get('items.' + index + '.tax_id')" :no-data-text="'{{ trans('general.no_data') }}'" :no-matching-data-text="'{{ trans('general.no_matching_data') }}'" diff --git a/resources/views/sales/invoices/item.blade.php b/resources/views/sales/invoices/item.blade.php index 127b7834e..3c4ef14c8 100644 --- a/resources/views/sales/invoices/item.blade.php +++ b/resources/views/sales/invoices/item.blade.php @@ -133,9 +133,10 @@ ] ] ])}}" - :collapse="false" + :collapse="true" @interface="row.tax_id = $event" - @change="onCalculateTotal($event)" + @change="onCalculateTotal()" + @new="taxes.push($event)" :form-error="form.errors.get('items.' + index + '.tax_id')" :no-data-text="'{{ trans('general.no_data') }}'" :no-matching-data-text="'{{ trans('general.no_matching_data') }}'"