[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:
@@ -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'),
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user