Attached Files | 0001-Issue-46180-19Q3-POS.patch [^] (11,281 bytes) 2021-04-21 17:20 [Show Content] [Hide Content]From fc909a2a2e2ae47cc219407e94d405c3154322d6 Mon Sep 17 00:00:00 2001
From: Rafael Queralta <rafaelcuba81@gmail.com>
Date: Wed, 21 Apr 2021 11:17:15 -0400
Subject: [PATCH] Issue 46180-19Q3-POS
---
.../js/model/order.js | 204 +++++++++---------
.../js/utils/ticketCloseUtils.js | 36 ++++
2 files changed, 134 insertions(+), 106 deletions(-)
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
index 57296a663..ff64ba22b 100644
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -8806,9 +8806,102 @@
});
return index;
},
+ markOrderAsDeleted: function(model, orderList, callback) {
+ var creationDate, i;
+ if (model.get('creationDate')) {
+ creationDate = new Date(model.get('creationDate'));
+ } else {
+ creationDate = new Date();
+ }
+ model.setIsCalculateGrossLockState(true);
+ model.set('creationDate', creationDate);
+ model.set('timezoneOffset', creationDate.getTimezoneOffset());
+ model.set('created', creationDate.getTime());
+ model.set('obposCreatedabsolute', OB.I18N.formatDateISO(creationDate));
+ model.set('obposIsDeleted', true);
+ OB.info(
+ 'markOrderAsDeleted has set order with documentNo ' +
+ model.get('documentNo') +
+ ' and id ' +
+ model.get('id') +
+ ' as obposIsDeleted to true'
+ );
+ model.set('obposAppCashup', OB.MobileApp.model.get('terminal').cashUpId);
+ for (i = 0; i < model.get('lines').length; i++) {
+ model
+ .get('lines')
+ .at(i)
+ .set('obposIsDeleted', true);
+ model
+ .get('lines')
+ .at(i)
+ .set('listPrice', 0);
+ model
+ .get('lines')
+ .at(i)
+ .set('standardPrice', 0);
+ model
+ .get('lines')
+ .at(i)
+ .set('grossUnitPrice', 0);
+ model
+ .get('lines')
+ .at(i)
+ .set('lineGrossAmount', 0);
+ }
+ model.get('approvals').forEach(function(approval) {
+ if (typeof approval.approvalType === 'object') {
+ approval.approvalMessage = OB.I18N.getLabel(
+ approval.approvalType.message,
+ approval.approvalType.params
+ );
+ approval.approvalType = approval.approvalType.approval;
+ }
+ });
+ OB.Dal.transaction(function(tx) {
+ OB.UTIL.HookManager.executeHooks(
+ 'OBPOS_PreSyncReceipt',
+ {
+ receipt: model,
+ model: model,
+ tx: tx
+ },
+ function(args) {
+ model.set('json', JSON.stringify(model.serializeToSaveJSON()));
+ model.set('hasbeenpaid', 'Y');
+ OB.MobileApp.model.updateDocumentSequenceWhenOrderSaved(
+ model.get('documentnoSuffix'),
+ model.get('quotationnoSuffix'),
+ model.get('returnnoSuffix'),
+ function() {
+ OB.Dal.saveInTransaction(tx, model, function() {
+ if (
+ orderList &&
+ model.get('session') === OB.MobileApp.model.get('session')
+ ) {
+ var orderListModel = _.find(orderList.models, function(m) {
+ return m.get('id') === model.get('id');
+ });
+ if (orderListModel) {
+ orderList.saveCurrent();
+ orderList.load(orderListModel);
+ }
+ orderList.deleteCurrent();
+ orderList.synchronizeCurrentOrder();
+ }
+ model.setIsCalculateGrossLockState(false);
+ if (callback && callback instanceof Function) {
+ callback();
+ }
+ });
+ },
+ tx
+ );
+ }
+ );
+ });
+ },
deleteOrder: function(context, callback) {
- var i;
-
function removePayments(receipt, callback) {
var payments = receipt.get('payments');
if (receipt.get('isEditable') && payments && payments.length > 0) {
@@ -8862,107 +8955,6 @@
}
}
- function markOrderAsDeleted(model, orderList, callback) {
- var creationDate;
- if (model.get('creationDate')) {
- creationDate = new Date(model.get('creationDate'));
- } else {
- creationDate = new Date();
- }
- model.setIsCalculateGrossLockState(true);
- model.set('creationDate', creationDate);
- model.set('timezoneOffset', creationDate.getTimezoneOffset());
- model.set('created', creationDate.getTime());
- model.set('obposCreatedabsolute', OB.I18N.formatDateISO(creationDate));
- model.set('obposIsDeleted', true);
- OB.info(
- 'markOrderAsDeleted has set order with documentNo ' +
- model.get('documentNo') +
- ' and id ' +
- model.get('id') +
- ' as obposIsDeleted to true'
- );
- model.set(
- 'obposAppCashup',
- OB.MobileApp.model.get('terminal').cashUpId
- );
- for (i = 0; i < model.get('lines').length; i++) {
- model
- .get('lines')
- .at(i)
- .set('obposIsDeleted', true);
- model
- .get('lines')
- .at(i)
- .set('listPrice', 0);
- model
- .get('lines')
- .at(i)
- .set('standardPrice', 0);
- model
- .get('lines')
- .at(i)
- .set('grossUnitPrice', 0);
- model
- .get('lines')
- .at(i)
- .set('lineGrossAmount', 0);
- }
- model.get('approvals').forEach(function(approval) {
- if (typeof approval.approvalType === 'object') {
- approval.approvalMessage = OB.I18N.getLabel(
- approval.approvalType.message,
- approval.approvalType.params
- );
- approval.approvalType = approval.approvalType.approval;
- }
- });
- OB.Dal.transaction(function(tx) {
- OB.UTIL.HookManager.executeHooks(
- 'OBPOS_PreSyncReceipt',
- {
- receipt: model,
- model: model,
- tx: tx
- },
- function(args) {
- model.set('json', JSON.stringify(model.serializeToSaveJSON()));
- model.set('hasbeenpaid', 'Y');
- OB.MobileApp.model.updateDocumentSequenceWhenOrderSaved(
- model.get('documentnoSuffix'),
- model.get('quotationnoSuffix'),
- model.get('returnnoSuffix'),
- function() {
- OB.Dal.saveInTransaction(tx, model, function() {
- if (
- orderList &&
- model.get('session') === OB.MobileApp.model.get('session')
- ) {
- var orderListModel = _.find(orderList.models, function(
- m
- ) {
- return m.get('id') === model.get('id');
- });
- if (orderListModel) {
- orderList.saveCurrent();
- orderList.load(orderListModel);
- }
- orderList.deleteCurrent();
- orderList.synchronizeCurrentOrder();
- }
- model.setIsCalculateGrossLockState(false);
- if (callback && callback instanceof Function) {
- callback();
- }
- });
- },
- tx
- );
- }
- );
- });
- }
-
function removeOrder(receipt, callback) {
var orderList = OB.MobileApp.model.orderList;
var isPaidQuotation =
@@ -9003,7 +8995,7 @@
receipt.setIsCalculateReceiptLockState(false);
receipt.setIsCalculateGrossLockState(false);
receipt.calculateReceipt(function() {
- markOrderAsDeleted(receipt, orderList, callback);
+ receipt.markOrderAsDeleted(receipt, orderList, callback);
});
});
} else {
@@ -9020,7 +9012,7 @@
// isCalculateReceiptLockState and isCalculateGrossLockState properties must be initialized
receipt.setIsCalculateReceiptLockState(false);
receipt.setIsCalculateGrossLockState(false);
- markOrderAsDeleted(receipt, orderList, callback);
+ this.markOrderAsDeleted(receipt, orderList, callback);
} else {
removeReceiptFromDatabase(receipt, callback);
}
@@ -9038,7 +9030,7 @@
) {
receipt.setIsCalculateReceiptLockState(true);
receipt.setIsCalculateGrossLockState(true);
- markOrderAsDeleted(receipt, orderList, callback);
+ this.markOrderAsDeleted(receipt, orderList, callback);
} else {
removeReceiptFromDatabase(receipt, callback);
}
diff --git a/web/org.openbravo.retail.posterminal/js/utils/ticketCloseUtils.js b/web/org.openbravo.retail.posterminal/js/utils/ticketCloseUtils.js
index 7315cf3bb..42c58fb93 100644
--- a/web/org.openbravo.retail.posterminal/js/utils/ticketCloseUtils.js
+++ b/web/org.openbravo.retail.posterminal/js/utils/ticketCloseUtils.js
@@ -327,6 +327,42 @@
});
};
+ OB.UTIL.TicketCloseUtils.removeOrder = function(
+ receipt,
+ orderList,
+ triggerClosedCallback
+ ) {
+ var execution = OB.UTIL.ProcessController.start('deleteCurrentOrder');
+ receipt.prepareToSend(function() {
+ receipt.set('skipApplyPromotions', true);
+ receipt.set('skipCalculateReceipt', true);
+ receipt.set('preventServicesUpdate', true);
+ _.each(receipt.get('lines').models, function(line) {
+ line.set('obposQtyDeleted', line.get('qty'));
+ line.set('obposIsDeleted', true);
+ line.set('qty', 0, {
+ silent: true
+ });
+ });
+ if (receipt.get('hasServices')) {
+ receipt.unset('hasServices');
+ }
+ receipt.unset('preventServicesUpdate');
+ receipt.set('skipCalculateReceipt', false);
+ receipt.setIsCalculateReceiptLockState(false);
+ receipt.setIsCalculateGrossLockState(false);
+ receipt.calculateReceipt(function() {
+ receipt.markOrderAsDeleted(receipt, orderList, function() {
+ OB.UTIL.ProcessController.finish('deleteCurrentOrder', execution);
+ OB.MobileApp.model.runSyncProcess();
+ if (triggerClosedCallback instanceof Function) {
+ triggerClosedCallback();
+ }
+ });
+ });
+ });
+ };
+
OB.UTIL.TicketCloseUtils.paymentDone = function(
receipt,
callbackPaymentAccepted,
--
2.28.0
0001-Issue-46180-19Q3-SCO.patch [^] (1,491 bytes) 2021-04-21 17:21 [Show Content] [Hide Content]From 8a5b05c142aa164fbb99a8e285903584926058de Mon Sep 17 00:00:00 2001
From: Rafael Queralta <rafaelcuba81@gmail.com>
Date: Wed, 21 Apr 2021 11:16:58 -0400
Subject: [PATCH] Issue 46180-19Q3-SCO
---
.../source/models/orderAPI.js | 29 ++++++++++++++-----
1 file changed, 22 insertions(+), 7 deletions(-)
diff --git a/web/org.openbravo.retail.selfcheckout/source/models/orderAPI.js b/web/org.openbravo.retail.selfcheckout/source/models/orderAPI.js
index b19b907..c1c9786 100644
--- a/web/org.openbravo.retail.selfcheckout/source/models/orderAPI.js
+++ b/web/org.openbravo.retail.selfcheckout/source/models/orderAPI.js
@@ -167,13 +167,28 @@ OB.POS.ORDER.remove = function(data) {
if (OB.UTIL.RfidController.isRfidConfigured()) {
OB.UTIL.RfidController.eraseEpcOrder(data.order);
}
- OB.Dal.remove(
- data.order,
- function() {
- resolve(data);
- },
- reject
- );
+ if (OB.MobileApp.model.hasPermission('OBPOS_remove_ticket', true)) {
+ var DummyList = Backbone.Collection.extend({
+ deleteCurrent: function() {},
+ synchronizeCurrentOrder: function() {}
+ });
+
+ OB.UTIL.TicketCloseUtils.removeOrder(
+ data.order,
+ new DummyList(),
+ function() {
+ resolve(data);
+ }
+ );
+ } else {
+ OB.Dal.remove(
+ data.order,
+ function() {
+ resolve(data);
+ },
+ reject
+ );
+ }
});
};
--
2.28.0
|