From 986c20607320481b31f3fa64127d4edc98f3bf43 Mon Sep 17 00:00:00 2001 From: Elsio Sanchez <45974454+elsiosanchez@users.noreply.github.com> Date: Tue, 22 Dec 2020 20:41:48 -0400 Subject: [PATCH] add validation at the time of creating the business partner (#562) * add validation at the time of creating the business partner add translation validate PriceChecking * minimal changue * Add translation --- .../ADempiere/Form/PriceChecking/index.vue | 3 + .../BusinessPartner/businessPartnerCreate.vue | 64 ++++++++++++------- .../VPOS/BusinessPartner/fieldsListCreate.js | 45 ++++++------- .../Form/VPOS/BusinessPartner/index.vue | 2 +- src/lang/ADempiere/en.js | 6 +- src/lang/ADempiere/es.js | 6 +- src/layout/components/Sidebar/index.vue | 22 ++++++- src/router/modules/ADempiere/staticRoutes.js | 2 +- src/views/ADempiere/ProcessActivity/index.vue | 6 +- 9 files changed, 100 insertions(+), 56 deletions(-) diff --git a/src/components/ADempiere/Form/PriceChecking/index.vue b/src/components/ADempiere/Form/PriceChecking/index.vue index eb6fb2e2..327ca7d9 100644 --- a/src/components/ADempiere/Form/PriceChecking/index.vue +++ b/src/components/ADempiere/Form/PriceChecking/index.vue @@ -224,6 +224,9 @@ export default { }) } } + if (mutation.type === 'changeFormAttribute') { + this.focusProductValue() + } }) }, timeMessage() { diff --git a/src/components/ADempiere/Form/VPOS/BusinessPartner/businessPartnerCreate.vue b/src/components/ADempiere/Form/VPOS/BusinessPartner/businessPartnerCreate.vue index 38011df9..5e04c751 100644 --- a/src/components/ADempiere/Form/VPOS/BusinessPartner/businessPartnerCreate.vue +++ b/src/components/ADempiere/Form/VPOS/BusinessPartner/businessPartnerCreate.vue @@ -70,6 +70,14 @@ export default { unsubscribe: () => {} } }, + computed: { + emptyMandatoryFields() { + const field = this.$store.getters.getFieldsListEmptyMandatory({ + containerUuid: this.containerUuid + }) + return field + } + }, beforeDestroy() { this.unsubscribe() }, @@ -84,33 +92,41 @@ export default { return } values = this.convertValuesToSend(values) - - this.isLoadingRecord = true - requestCreateBusinessPartner(values) - .then(responseBPartner => { - // TODO: Add new record into vuex store. - this.setBusinessPartner(responseBPartner) - this.clearValues() - this.$message({ - type: 'success', - message: 'Socio de negocio creado exitosamente', - duration: 1500, - showClose: true + if (this.isEmptyValue(this.emptyMandatoryFields)) { + this.isLoadingRecord = true + requestCreateBusinessPartner(values) + .then(responseBPartner => { + // TODO: Add new record into vuex store. + this.setBusinessPartner(responseBPartner) + this.clearValues() + this.$message({ + type: 'success', + message: this.$t('form.pos.order.BusinessPartnerCreate.businessPartner'), + duration: 1500, + showClose: true + }) }) - }) - .catch(error => { - this.showsPopovers.isShowCreate = true - this.$message({ - type: 'warning', - message: error.message, - duration: 1500, - showClose: true + .catch(error => { + this.showsPopovers.isShowCreate = true + this.$message({ + type: 'warning', + message: error.message, + duration: 1500, + showClose: true + }) + console.warn(`Error create Business Partner. Message: ${error.message}, code ${error.code}.`) }) - console.warn(`Error create Business Partner. Message: ${error.message}, code ${error.code}.`) - }) - .finally(() => { - this.isLoadingRecord = false + .finally(() => { + this.isLoadingRecord = false + }) + } else { + this.$message({ + type: 'warn', + message: this.$t('notifications.mandatoryFieldMissing') + this.emptyMandatoryFields, + duration: 1500, + showClose: true }) + } }, clearValues() { this.showsPopovers.isShowCreate = false diff --git a/src/components/ADempiere/Form/VPOS/BusinessPartner/fieldsListCreate.js b/src/components/ADempiere/Form/VPOS/BusinessPartner/fieldsListCreate.js index 7511d15c..db3d9793 100644 --- a/src/components/ADempiere/Form/VPOS/BusinessPartner/fieldsListCreate.js +++ b/src/components/ADempiere/Form/VPOS/BusinessPartner/fieldsListCreate.js @@ -1,54 +1,51 @@ // List of fields to send for create new +const tableName = 'C_BPartner' export default [ { columnName: 'Value', - // displayType: CHAR.id, - definition: { - name: 'Search Key', + tableName, + isFromDictionary: true, + overwriteDefinition: { + // name: 'Search Key', isCustomField: true, size: 24 } }, { columnName: 'Name', - // displayType: CHAR.id, - definition: { - name: 'Name', + tableName, + isFromDictionary: true, + overwriteDefinition: { + // name: 'Name', isCustomField: true, size: 24 } }, { - columnName: 'Contact', - // displayType: CHAR.id, - definition: { - name: 'Contact Name', + columnName: 'Name2', + tableName, + isFromDictionary: true, + overwriteDefinition: { + // name: 'Contact Name', isCustomField: true, size: 24 } }, { columnName: 'EMail', - // displayType: CHAR.id, - definition: { - name: 'E-Mail Address', - isCustomField: true, - size: 24 - } - }, - { - columnName: 'Postal', - // displayType: CHAR.id, - definition: { - name: 'Postal Code', + tableName: 'AD_user', + isFromDictionary: true, + overwriteDefinition: { + // name: 'E-Mail Address', isCustomField: true, size: 24 } }, { columnName: 'Phone', - // displayType: CHAR.id, - definition: { + tableName: 'AD_user', + isFromDictionary: true, + overwriteDefinition: { name: 'Phone', isCustomField: true, size: 24 diff --git a/src/components/ADempiere/Form/VPOS/BusinessPartner/index.vue b/src/components/ADempiere/Form/VPOS/BusinessPartner/index.vue index cb839f91..04192607 100644 --- a/src/components/ADempiere/Form/VPOS/BusinessPartner/index.vue +++ b/src/components/ADempiere/Form/VPOS/BusinessPartner/index.vue @@ -30,7 +30,7 @@