diff --git a/resources/assets/js/views/estimates/Item.vue b/resources/assets/js/views/estimates/Item.vue index 1a137dcf..15a3ae1b 100644 --- a/resources/assets/js/views/estimates/Item.vue +++ b/resources/assets/js/views/estimates/Item.vue @@ -28,6 +28,7 @@ @select="onSelectItem" @deselect="deselectItem" @onDesriptionInput="$v.item.description.$touch()" + @onSelectItem="isSelected = true" /> @@ -193,13 +194,17 @@ export default { prefix: '$ ', precision: 2, masked: false - } + }, + isSelected: false } }, computed: { ...mapGetters('item', [ 'items' ]), + ...mapGetters('modal', [ + 'modalActive' + ]), ...mapGetters('currency', [ 'defaultCurrencyForInput' ]), @@ -284,6 +289,11 @@ export default { if (this.item.discount_type === 'percentage') { this.item.discount_val = (this.item.discount * newValue) / 100 } + }, + modalActive (val) { + if (!val) { + this.isSelected = false + } } }, validations () { @@ -314,7 +324,7 @@ export default { created () { window.hub.$on('checkItems', this.validateItem) window.hub.$on('newItem', (val) => { - if (this.item.item_id) { + if (!this.item.item_id && this.modalActive && this.isSelected) { this.onSelectItem(val) } }) diff --git a/resources/assets/js/views/estimates/ItemSelect.vue b/resources/assets/js/views/estimates/ItemSelect.vue index db1aa2b5..bc769c56 100644 --- a/resources/assets/js/views/estimates/ItemSelect.vue +++ b/resources/assets/js/views/estimates/ItemSelect.vue @@ -126,6 +126,7 @@ export default { this.$emit('search', val) }, openItemModal () { + this.$emit('onSelectItem') this.openModal({ 'title': 'Add Item', 'componentName': 'ItemModal' diff --git a/resources/assets/js/views/invoices/Item.vue b/resources/assets/js/views/invoices/Item.vue index c1ef3b0b..c5dab726 100644 --- a/resources/assets/js/views/invoices/Item.vue +++ b/resources/assets/js/views/invoices/Item.vue @@ -28,6 +28,7 @@ @select="onSelectItem" @deselect="deselectItem" @onDesriptionInput="$v.item.description.$touch()" + @onSelectItem="isSelected = true" /> @@ -194,13 +195,17 @@ export default { prefix: '$ ', precision: 2, masked: false - } + }, + isSelected: false } }, computed: { ...mapGetters('item', [ 'items' ]), + ...mapGetters('modal', [ + 'modalActive' + ]), ...mapGetters('currency', [ 'defaultCurrencyForInput' ]), @@ -285,6 +290,11 @@ export default { if (this.item.discount_type === 'percentage') { this.item.discount_val = (this.item.discount * newValue) / 100 } + }, + modalActive (val) { + if (!val) { + this.isSelected = false + } } }, validations () { @@ -315,7 +325,7 @@ export default { created () { window.hub.$on('checkItems', this.validateItem) window.hub.$on('newItem', (val) => { - if (this.item.item_id) { + if (!this.item.item_id && this.modalActive && this.isSelected) { this.onSelectItem(val) } }) diff --git a/resources/assets/js/views/invoices/ItemSelect.vue b/resources/assets/js/views/invoices/ItemSelect.vue index 4c66b0f4..c88a6946 100644 --- a/resources/assets/js/views/invoices/ItemSelect.vue +++ b/resources/assets/js/views/invoices/ItemSelect.vue @@ -115,6 +115,7 @@ export default { this.$emit('search', val) }, openItemModal () { + this.$emit('onSelectItem') this.openModal({ 'title': 'Add Item', 'componentName': 'ItemModal'