From fba1860d7f7886c885a21c57e4292da73de387ee Mon Sep 17 00:00:00 2001 From: elsiosanchez Date: Fri, 20 Aug 2021 01:08:59 -0400 Subject: [PATCH] Add daily limit and limit per transaction --- .../fieldsListOverdrawnInvoice.js | 72 +------------------ .../Collection/overdrawnInvoice/index.vue | 18 ++++- .../ADempiere/Form/VPOS/Options/index.vue | 17 ++--- .../ADempiere/Form/VPOS/Order/index.vue | 2 +- .../ADempiere/Form/VPOS/posMixin.js | 52 ++++++++++++-- src/lang/ADempiere/en.js | 5 +- src/lang/ADempiere/es.js | 5 +- 7 files changed, 77 insertions(+), 94 deletions(-) diff --git a/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/fieldsListOverdrawnInvoice.js b/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/fieldsListOverdrawnInvoice.js index 528fd7baaa4..cb722eabe45 100644 --- a/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/fieldsListOverdrawnInvoice.js +++ b/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/fieldsListOverdrawnInvoice.js @@ -91,24 +91,6 @@ export default [ isMandatory: true } }, - { - tableName, - elementColumnName: 'DateTrx', - isFromDictionary: true, - overwriteDefinition: { - sequence: 5, - handleFocusGained: true, - handleFocusLost: true, - handleKeyPressed: true, - handleKeyReleased: true, - handleActionKeyPerformed: true, - handleActionPerformed: true, - size: 24, - displayLogic: `@TenderType@=='K'`, - isActiveLogics: true, - isMandatory: true - } - }, // Bank { tableName, @@ -119,60 +101,8 @@ export default [ handleActionKeyPerformed: true, handleActionPerformed: true, handleContentSelection: true, - displayLogic: `@TenderType@<>'X' & @TenderType@<>'Z'`, - size: 24, - isActiveLogics: true, - isMandatory: true - } - }, - // type credit card - { - tableName, - elementColumnName: 'CreditCardType', - columnName: 'CreditCardType', - isFromDictionary: true, - overwriteDefinition: { - sequence: 7, - defaultValue: 'M', - handleActionKeyPerformed: true, - handleContentSelection: true, - handleActionPerformed: true, - size: 24, - displayLogic: `@TenderType@=='C'`, - isActiveLogics: true, - isMandatory: true - } - }, - // number credit card - { - tableName, - elementColumnName: 'CreditCardNumber', - columnName: 'CreditCardNumber', - isFromDictionary: true, - overwriteDefinition: { - sequence: 8, - handleActionKeyPerformed: true, - handleContentSelection: true, - handleActionPerformed: true, - size: 24, - displayLogic: `@TenderType@=='C'`, - isActiveLogics: true, - isMandatory: true - } - }, - // accountno - { - tableName, - elementColumnName: 'AccountNo', - columnName: 'AccountNo', - isFromDictionary: true, - overwriteDefinition: { - sequence: 9, - handleActionKeyPerformed: true, - handleContentSelection: true, - handleActionPerformed: true, + displayLogic: `@TenderType@<>'X'|| @TenderType@<>'Z'`, size: 24, - displayLogic: `@TenderType@=='M' || @TenderType@=='D'`, isActiveLogics: true, isMandatory: true } diff --git a/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/index.vue b/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/index.vue index d785a2778ab..ecdc3621c8f 100644 --- a/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/index.vue +++ b/src/components/ADempiere/Form/VPOS/Collection/overdrawnInvoice/index.vue @@ -60,8 +60,9 @@
{{ $t('form.pos.collect.overdrawnInvoice.above') }} - - Limite Diario USD 20,00$ = Bs.S 85.000.000,00 | Disponible Bs.S 85.000.000,00 + + {{ $t('form.pos.collect.overdrawnInvoice.dailyLimit') }}: {{ formatPrice(maximumDailyRefundAllowed, currency.iSOCode) }} | {{ formatPrice(0, isoCode) }} | {{ $t('form.pos.collect.overdrawnInvoice.available') }}: {{ formatPrice(maximumDailyRefundAllowed, currency.iSOCode) }} | {{ formatPrice(0, isoCode) }}
+ {{ $t('form.pos.collect.overdrawnInvoice.customerLimit') }}: {{ formatPrice(maximumRefundAllowed, currency.iSOCode) }} | {{ formatPrice(0, isoCode) }}
@@ -222,7 +223,18 @@ export default { caseOrder() { return this.$store.state['pointOfSales/payments/index'].dialogoInvoce.type }, + isoCode() { + return this.$store.getters.posAttributes.currentPointOfSales.displayCurrency.iso_code + }, + maximumDailyRefundAllowed() { + console.log(this.$store.getters.posAttributes.currentPointOfSales.displayCurrency.iso_code) + return this.$store.getters.posAttributes.currentPointOfSales.maximumDailyRefundAllowed + }, + maximumRefundAllowed() { + return this.$store.getters.posAttributes.currentPointOfSales.maximumRefundAllowed + }, displayeCurrency() { + console.log(this.$store.getters.posAttributes.currentPointOfSales) const tenderType = this.$store.getters.getValueOfField({ containerUuid: 'OverdrawnInvoice', columnName: 'TenderType' @@ -236,7 +248,7 @@ export default { return this.fieldsList.filter(field => field.sequence <= 2) }, hiddenFieldsList() { - return this.fieldsList.filter(field => field.sequence > 4) + return this.fieldsList.filter(field => field.sequence >= 3) }, listCurrency() { return this.$store.getters.getCurrenciesList diff --git a/src/components/ADempiere/Form/VPOS/Options/index.vue b/src/components/ADempiere/Form/VPOS/Options/index.vue index 88137789fd2..3feb0148052 100644 --- a/src/components/ADempiere/Form/VPOS/Options/index.vue +++ b/src/components/ADempiere/Form/VPOS/Options/index.vue @@ -34,7 +34,7 @@


@@ -99,7 +99,7 @@ - +

- +


- Crear Nueva Orden de Devolución + {{ $t('form.pos.optionsPoinSales.salesOrder.createNewReturnOrder') }}

@@ -394,10 +394,7 @@ export default { return this.$store.getters.posAttributes.currentPointOfSales.isAllowsReturnOrder }, allowsCreateOrder() { - if (!this.isEmptyValue(this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder)) { - return this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder - } - return false + return this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder }, isShowProductsPriceList: { get() { @@ -541,7 +538,7 @@ export default { }, optionPin(action) { switch (action.label) { - case 'Crear Nueva Orden de Devolución': + case this.$t('form.pos.optionsPoinSales.salesOrder.createNewReturnOrder'): this.createNewCustomerReturnOrder() break case this.$t('form.pos.optionsPoinSales.salesOrder.completePreparedOrder'): diff --git a/src/components/ADempiere/Form/VPOS/Order/index.vue b/src/components/ADempiere/Form/VPOS/Order/index.vue index 9c1765aa3be..82335ecab29 100644 --- a/src/components/ADempiere/Form/VPOS/Order/index.vue +++ b/src/components/ADempiere/Form/VPOS/Order/index.vue @@ -94,7 +94,7 @@ - + {{ $t('form.pos.optionsPoinSales.salesOrder.newOrder') }} diff --git a/src/components/ADempiere/Form/VPOS/posMixin.js b/src/components/ADempiere/Form/VPOS/posMixin.js index 740e7df5a56..ca244016fbe 100644 --- a/src/components/ADempiere/Form/VPOS/posMixin.js +++ b/src/components/ADempiere/Form/VPOS/posMixin.js @@ -17,7 +17,8 @@ import { findProduct, updateOrderLine, - deleteOrderLine + deleteOrderLine, + processOrder } from '@/api/ADempiere/form/point-of-sales.js' import { formatDate, @@ -57,10 +58,7 @@ export default { }, computed: { allowsCreateOrder() { - if (!this.isEmptyValue(this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder)) { - return this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder - } - return false + return this.$store.getters.posAttributes.currentPointOfSales.isAllowsCreateOrder }, allowsCollectOrder() { return this.$store.getters.posAttributes.currentPointOfSales.isAllowsCollectOrder @@ -282,6 +280,8 @@ export default { showClose: true }) }) + } else if (action.type === 'maximumRefundAllowed') { + this.refundAllowed(action.posUuid, action.orderUuid, action.payments) } else if (action.type === 'actionPos') { switch (action.action) { case 'changeWarehouse': @@ -304,6 +304,44 @@ export default { this.$store.dispatch('changePopoverOverdrawnInvoice', { visible: false }) this.setDocumentType(this.currentOrder.documentType) }, + refundAllowed(posUuid, orderUuid, payments) { + this.$store.dispatch('updateOrderPos', true) + this.$store.dispatch('updatePaymentPos', true) + this.$message({ + type: 'info', + message: this.$t('notifications.processing'), + showClose: true + }) + processOrder({ + posUuid, + orderUuid, + createPayments: !this.isEmptyValue(payments), + payments: payments + }) + .then(response => { + this.$store.dispatch('reloadOrder', response.uuid) + this.$message({ + type: 'success', + message: this.$t('notifications.completed'), + showClose: true + }) + }) + .catch(error => { + this.$message({ + type: 'error', + message: error.message, + showClose: true + }) + }) + .finally(() => { + this.$store.dispatch('listOrdersFromServer', { + posUuid: this.currentPointOfSales.uuid + }) + this.$store.dispatch('updateOrderPos', false) + this.$store.dispatch('updatePaymentPos', false) + this.$store.commit('dialogoInvoce', { show: false }) + }) + }, withoutPOSTerminal() { if (this.isEmptyValue(this.currentPointOfSales)) { this.$message({ @@ -511,7 +549,7 @@ export default { }, deleteOrderLine(lineSelection) { if (this.isPosRequiredPin) { - if (this.adviserPin) { + if (this.allowsModifyQuantity) { deleteOrderLine({ orderLineUuid: lineSelection.uuid }) @@ -545,7 +583,7 @@ export default { case 'ProductValue': // this.findProduct(mutation.payload.value) // if (this.isPosRequiredPin) { - if (!this.allowsCreateOrder) { + if (this.allowsCreateOrder) { this.findProduct(mutation.payload.value) } else { const attributePin = { diff --git a/src/lang/ADempiere/en.js b/src/lang/ADempiere/en.js index 5f2abd35f57..1f80d255ff1 100644 --- a/src/lang/ADempiere/en.js +++ b/src/lang/ADempiere/en.js @@ -500,7 +500,10 @@ export default { returned: 'Your change is', coupon: 'Generate a Gift Card or Vale', returnMoney: 'Return money in another form of payment', - adjustDocument: 'You want to Adjust Document' + adjustDocument: 'You want to Adjust Document', + dailyLimit: 'Daily Limit', + customerLimit: 'Customer Limit', + available: 'Available' } }, keyLayout: { diff --git a/src/lang/ADempiere/es.js b/src/lang/ADempiere/es.js index 813f5abe103..37cc0ed76d1 100644 --- a/src/lang/ADempiere/es.js +++ b/src/lang/ADempiere/es.js @@ -476,7 +476,10 @@ export default { returned: 'Su vuelto es', coupon: 'Generar una Tarjeta de Regalo o Vale', returnMoney: 'Devolver dinero en otra forma de pago', - adjustDocument: 'Desea Ajustar Documento' + adjustDocument: 'Desea Ajustar Documento', + dailyLimit: 'Limite Diario', + customerLimit: 'Limite Cliente', + available: 'Disponible' } }, keyLayout: {