diff --git a/src/components/ADempiere/Field/FieldNumber.vue b/src/components/ADempiere/Field/FieldNumber.vue
index 279178e6..304410e3 100644
--- a/src/components/ADempiere/Field/FieldNumber.vue
+++ b/src/components/ADempiere/Field/FieldNumber.vue
@@ -1,17 +1,23 @@
-
+
+
+
+
diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldContextInfo.vue b/src/components/ADempiere/Field/popover/contextInfo.vue
similarity index 100%
rename from src/components/ADempiere/Field/fieldPopovers/fieldContextInfo.vue
rename to src/components/ADempiere/Field/popover/contextInfo.vue
diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldDocumentStatus.vue b/src/components/ADempiere/Field/popover/documentStatus.vue
similarity index 100%
rename from src/components/ADempiere/Field/fieldPopovers/fieldDocumentStatus.vue
rename to src/components/ADempiere/Field/popover/documentStatus.vue
diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldOperatorComparison.vue b/src/components/ADempiere/Field/popover/operatorComparison.vue
similarity index 100%
rename from src/components/ADempiere/Field/fieldPopovers/fieldOperatorComparison.vue
rename to src/components/ADempiere/Field/popover/operatorComparison.vue
diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldTranslated.vue b/src/components/ADempiere/Field/popover/translated.vue
similarity index 100%
rename from src/components/ADempiere/Field/fieldPopovers/fieldTranslated.vue
rename to src/components/ADempiere/Field/popover/translated.vue
diff --git a/src/store/modules/ADempiere/data.js b/src/store/modules/ADempiere/data.js
index 7c9f15e2..075dfdd4 100644
--- a/src/store/modules/ADempiere/data.js
+++ b/src/store/modules/ADempiere/data.js
@@ -290,11 +290,13 @@ const data = {
value: valueGetDisplayColumn
})
.then(responseLookup => {
- dispatch('addDisplayColumn', {
- containerUuid,
- columnName: itemField.columnName,
- displayColumn: responseLookup.label
- })
+ if (responseLookup) {
+ dispatch('addDisplayColumn', {
+ containerUuid,
+ columnName: itemField.columnName,
+ displayColumn: responseLookup.label
+ })
+ }
})
})
}
@@ -626,12 +628,14 @@ const data = {
value: valueToReturn.key
})
.then(responseLookup => {
- valueToReturn.label = responseLookup.label
- dispatch('addDisplayColumn', {
- containerUuid: field.containerUuid,
- columnName: field.columnName,
- displayColumn: responseLookup.label
- })
+ if (responseLookup) {
+ valueToReturn.label = responseLookup.label
+ dispatch('addDisplayColumn', {
+ containerUuid: field.containerUuid,
+ columnName: field.columnName,
+ displayColumn: responseLookup.label
+ })
+ }
})
}
resolve(valueToReturn)
diff --git a/src/store/modules/ADempiere/panel.js b/src/store/modules/ADempiere/panel.js
index 765932b2..cadc5398 100644
--- a/src/store/modules/ADempiere/panel.js
+++ b/src/store/modules/ADempiere/panel.js
@@ -407,22 +407,24 @@ const panel = {
value: newValues[actionField.columnName]
})
.then(response => {
- dispatch('notifyFieldChange', {
- isSendToServer,
- isSendCallout,
- isAdvancedQuery,
- panelType,
- parentUuid,
- containerUuid,
- columnName: actionField.columnName,
- displayColumn: response.label,
- newValue: newValues[actionField.columnName],
- valueTo: newValues[`${actionField.columnName}_To`],
- fieldList,
- field: actionField,
- withOutColumnNames,
- isChangedOldValue: true // defines if set oldValue with newValue instead of current value
- })
+ if (!isEmptyValue(response)) {
+ dispatch('notifyFieldChange', {
+ isSendToServer,
+ isSendCallout,
+ isAdvancedQuery,
+ panelType,
+ parentUuid,
+ containerUuid,
+ columnName: actionField.columnName,
+ displayColumn: response.label,
+ newValue: newValues[actionField.columnName],
+ valueTo: newValues[`${actionField.columnName}_To`],
+ fieldList,
+ field: actionField,
+ withOutColumnNames,
+ isChangedOldValue: true // defines if set oldValue with newValue instead of current value
+ })
+ }
})
} else {
newValues[`DisplayColumn_${actionField.columnName}`] = lookup.label
diff --git a/src/utils/ADempiere/globalMethods.js b/src/utils/ADempiere/globalMethods.js
index 3d4b14f7..0c3f7ee8 100644
--- a/src/utils/ADempiere/globalMethods.js
+++ b/src/utils/ADempiere/globalMethods.js
@@ -2,5 +2,7 @@
export {
isEmptyValue,
zeroPad,
- tagStatus
+ tagStatus,
+ calculationValue,
+ clearVariables
} from '@/utils/ADempiere/valueUtils.js'
diff --git a/src/utils/ADempiere/valueUtils.js b/src/utils/ADempiere/valueUtils.js
index 218e7071..427b80b6 100644
--- a/src/utils/ADempiere/valueUtils.js
+++ b/src/utils/ADempiere/valueUtils.js
@@ -415,3 +415,30 @@ export function tagStatus(tag) {
}
return type
}
+
+let partialValue = ''
+export function calculationValue(value, event) {
+ const VALIDATE_EXPRESSION = /[^\d\/.()%\*\+\-]/gim
+ if (!this.isEmptyValue(event) && !VALIDATE_EXPRESSION.test(event.key)) {
+ partialValue += event.key
+ const operation = String(value) + partialValue
+ if (!isEmptyValue(operation)) {
+ try {
+ // eslint-disable-next-line no-eval
+ return eval(operation) + ''
+ } catch (error) {
+ return null
+ }
+ }
+ } else {
+ if (value.key === 'Backspace') {
+ partialValue = partialValue.slice(0, -1)
+ } else {
+ return null
+ }
+ }
+}
+
+export function clearVariables() {
+ partialValue = ''
+}