diff --git a/pos_order_mgmt/models/pos_order.py b/pos_order_mgmt/models/pos_order.py index f3793749..59f0e612 100644 --- a/pos_order_mgmt/models/pos_order.py +++ b/pos_order_mgmt/models/pos_order.py @@ -104,7 +104,7 @@ class PosOrder(models.Model): def _prepare_done_order_payment_for_pos(self, payment_line): self.ensure_one() return { - 'statement_id': payment_line.statement_id.id, + 'journal_id': payment_line.journal_id.id, 'amount': payment_line.amount, } diff --git a/pos_order_mgmt/readme/CONTRIBUTORS.rst b/pos_order_mgmt/readme/CONTRIBUTORS.rst index efd51b1e..bdac6f44 100644 --- a/pos_order_mgmt/readme/CONTRIBUTORS.rst +++ b/pos_order_mgmt/readme/CONTRIBUTORS.rst @@ -1,3 +1,4 @@ * David Vidal * Sylvain LE GAL (https://twitter.com/legalsylvain) +* Carlos Martínez * Pierrick Brun diff --git a/pos_order_mgmt/static/src/js/widgets.js b/pos_order_mgmt/static/src/js/widgets.js index 5080d69b..ce696308 100644 --- a/pos_order_mgmt/static/src/js/widgets.js +++ b/pos_order_mgmt/static/src/js/widgets.js @@ -208,26 +208,7 @@ odoo.define('pos_order_mgmt.widgets', function (require) { } // Set order lines var orderLines = order_data.line_ids || order_data.lines || []; - _.each(orderLines, function (orderLine) { - var line = orderLine; - // In case of local data - if (line.length === 3) { - line = line[2]; - } - var product = self.pos.db.get_product_by_id(line.product_id); - // Check if product are available in pos - if (_.isUndefined(product)) { - self.unknown_products.push(String(line.product_id)); - } else { - // Create a new order line - order.add_product(product, { - price: line.price_unit, - quantity: order_data.return ? line.qty * -1 : line.qty, - discount: line.discount, - merge: false, - }); - } - }); + self._prepare_orderlines_from_order_data(order, order_data, orderLines); if (order_data.return) { order.return = true; // A credit note should be emited if there was an invoice @@ -235,6 +216,7 @@ odoo.define('pos_order_mgmt.widgets', function (require) { // We'll refunded orders once they are synced order.returned_order_id = order_data.id || order_data.name; order.origin_name = order_data.pos_reference || order.returned_order_id; + order.trigger('change'); return order; } if (order_data.returned_order_id) { @@ -250,7 +232,7 @@ odoo.define('pos_order_mgmt.widgets', function (require) { line = line[2]; } _.each(self.pos.cashregisters, function (cashregister) { - if (cashregister.id === line.statement_id) { + if (cashregister.journal.id === line.journal_id) { if (line.amount > 0) { // If it is not change order.add_paymentline(cashregister); @@ -261,6 +243,28 @@ odoo.define('pos_order_mgmt.widgets', function (require) { }); return order; }, + _prepare_orderlines_from_order_data: function(order, order_data, orderLines) { + var self = this; + _.each(orderLines, function(line) { + // In case of local data + if (line.length === 3) { + line = line[2]; + } + var product = self.pos.db.get_product_by_id(line.product_id); + // Check if product are available in pos + if (_.isUndefined(product)) { + self.unknown_products.push(String(line.product_id)); + } else { + // Create a new order line + order.add_product(product, { + price: line.price_unit, + quantity: order_data.return ? line.qty * -1 : line.qty, + discount: line.discount, + merge: false, + }); + } + }); + }, load_order: function (order_id, action) { this.unknown_products = []; @@ -270,7 +274,7 @@ odoo.define('pos_order_mgmt.widgets', function (require) { method: 'load_done_order_for_pos', args: [order_id], }).then(function (order_data) { - self.gui.show_screen('orderlist'); + self.gui.back(); var correct_order_print = true; if (action === 'return') { order_data.return = true;