From 455f49fe74611849ee1ff6addc875352d1b6c386 Mon Sep 17 00:00:00 2001 From: "Jacky (trj)" <trj@odoo.com> Date: Wed, 27 Jan 2021 15:10:36 +0000 Subject: [PATCH] [REF] point_of_sale + pos_restaurant: adjusted code for German POS localization These changes have been made to be able to add some behaviors in some specific points of the flow when overridden. --- .../js/Screens/TicketScreen/TicketScreen.js | 4 ++++ addons/point_of_sale/static/src/js/models.js | 11 ++++++++--- addons/pos_restaurant/static/src/js/floors.js | 18 ++++++++++-------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js b/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js index dd7adce4e074..f59b72d0b0a7 100644 --- a/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js +++ b/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js @@ -91,6 +91,7 @@ odoo.define('point_of_sale.TicketScreen', function (require) { if (!confirmed) return; } if (order) { + await this._canDeleteOrder(order); order.destroy({ reason: 'abandon' }); } posbus.trigger('order-deleted'); @@ -191,6 +192,9 @@ odoo.define('point_of_sale.TicketScreen', function (require) { screenToStatusMap: this._screenToStatusMap, }); } + async _canDeleteOrder(order) { + return true; + } getOrderStates() { return { AllTickets: this.env._t('All Tickets'), diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index eedae8d9a8c2..a2cd058ac068 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -1157,9 +1157,8 @@ exports.PosModel = Backbone.Model.extend({ timeout: timeout, shadow: true, }) - .then(function (ids) { - self.db.set_ids_removed_from_server(server_ids); - return server_ids; + .then(function (data) { + return self._post_remove_from_server(server_ids, data) }).catch(function (reason){ var error = reason.message; if(error.code === 200 ){ // Business Logic Error, not a connection problem @@ -1175,6 +1174,12 @@ exports.PosModel = Backbone.Model.extend({ }); }, + // to override + _post_remove_from_server(server_ids, data) { + this.db.set_ids_removed_from_server(server_ids); + return server_ids; + }, + scan_product: function(parsed_code){ var selectedOrder = this.get_order(); var product = this.db.get_product_by_barcode(parsed_code.base_code); diff --git a/addons/pos_restaurant/static/src/js/floors.js b/addons/pos_restaurant/static/src/js/floors.js index 35dfec2d9fcd..3f5b739a2603 100644 --- a/addons/pos_restaurant/static/src/js/floors.js +++ b/addons/pos_restaurant/static/src/js/floors.js @@ -168,14 +168,7 @@ models.PosModel = models.PosModel.extend({ if (orders_to_sync.length) { this.set_synch('connecting', orders_to_sync.length); this._save_to_server(orders_to_sync, {'draft': true}).then(function (server_ids) { - server_ids.forEach(function(server_id){ - table_orders.some(function(o){ - if (o.name === server_id.pos_reference) { - o.server_id = server_id.id; - o.save_to_db(); - } - }); - }); + server_ids.forEach(server_id => self.update_table_order(server_id, table_orders)); if (!ids_to_remove.length) { self.set_synch('connected'); } else { @@ -194,6 +187,15 @@ models.PosModel = models.PosModel.extend({ } }, + update_table_order: function(server_id, table_orders) { + const order = table_orders.find(o => o.name === server_id.pos_reference); + if (order) { + order.server_id = server_id.id; + order.save_to_db(); + } + return order; + }, + /** * @param {models.Order} order order to set */ -- GitLab