diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index c6738ee82747eb3d627cb7ff9c490cf8e2e22a0d..ec6a7914f805d36b72f277090f2149a5568a5c2a 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -112,7 +112,6 @@ class PosOrder(models.Model): :type existing_order: pos.order. :returns number pos_order id """ - to_invoice = order['to_invoice'] if not draft else False order = order['data'] pos_session = self.env['pos.session'].browse(order['pos_session_id']) if pos_session.state == 'closing_control' or pos_session.state == 'closed': @@ -138,7 +137,7 @@ class PosOrder(models.Model): except Exception as e: _logger.error('Could not fully process the POS Order: %s', tools.ustr(e)) - if to_invoice: + if pos_order.to_invoice and pos_order.state == 'paid': pos_order.action_pos_order_invoice() pos_order.account_move.sudo().with_context(force_company=self.env.user.company_id.id).post() diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index 142e82b454ca275b36b52175791e17f6c7a773b2..e89e167365a432485cef852c6d2ae9a834c3d929 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -2388,6 +2388,7 @@ exports.Order = Backbone.Model.extend({ creation_date: this.validation_date || this.creation_date, // todo: rename creation_date in master fiscal_position_id: this.fiscal_position ? this.fiscal_position.id : false, server_id: this.server_id ? this.server_id : false, + to_invoice: this.to_invoice ? this.to_invoice : false, }; if (!this.is_paid && this.user_id) { json.user_id = this.user_id; diff --git a/addons/point_of_sale/tests/common.py b/addons/point_of_sale/tests/common.py index 98e5eda1125fc67902ee6413e297c2e3ba8428a5..38e4de65f6ce57f1880fdc4f54b2af161db38517 100644 --- a/addons/point_of_sale/tests/common.py +++ b/addons/point_of_sale/tests/common.py @@ -389,6 +389,7 @@ class TestPoSCommon(TransactionCase): 'statement_ids': payments, 'uid': uid, 'user_id': self.pos_manager.id, + 'to_invoice': is_invoiced, }, 'id': uid, 'to_invoice': is_invoiced,