[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.

X-original-commit: 455f49fe74611849ee1ff6addc875352d1b6c386
This commit is contained in:
Jacky (trj)
2021-05-26 09:07:17 +00:00
parent 0a96e7b90c
commit e921a2f2ce
3 changed files with 22 additions and 11 deletions
@@ -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'),
+8 -3
View File
@@ -1131,9 +1131,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
@@ -1149,6 +1148,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);
+10 -8
View File
@@ -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
*/