diff --git a/pos_order_mgmt/__manifest__.py b/pos_order_mgmt/__manifest__.py index d90bc1c6..b139f96e 100644 --- a/pos_order_mgmt/__manifest__.py +++ b/pos_order_mgmt/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'POS Frontend Orders Management', 'summary': 'Manage old POS Orders from the frontend', - 'version': '11.0.1.0.1', + 'version': '12.0.1.0.1', 'category': 'Point of Sale', 'author': 'GRAP, ' 'Tecnativa, ' @@ -13,7 +13,7 @@ 'website': 'https://github.com/OCA/pos', 'license': 'AGPL-3', 'depends': [ - 'pos_order_return', + 'point_of_sale', ], 'data': [ 'views/assets.xml', diff --git a/pos_order_mgmt/models/pos_order.py b/pos_order_mgmt/models/pos_order.py index c2ae6382..f3793749 100644 --- a/pos_order_mgmt/models/pos_order.py +++ b/pos_order_mgmt/models/pos_order.py @@ -2,12 +2,28 @@ # Copyright 2018 Tecnativa S.L. - David Vidal # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import api, models, fields class PosOrder(models.Model): _inherit = 'pos.order' + returned_order_id = fields.Many2one( + comodel_name='pos.order', + string='Returned Order', + readonly=True, + ) + refund_order_ids = fields.One2many( + comodel_name='pos.order', + inverse_name='returned_order_id', + string='Refund Orders', + readonly=True, + ) + refund_order_qty = fields.Integer( + compute='_compute_refund_order_qty', + string='Refund Orders Quantity', + ) + @api.model def _prepare_filter_for_pos(self, pos_session_id): return [ @@ -26,7 +42,7 @@ class PosOrder(models.Model): def _prepare_fields_for_pos_list(self): return [ 'name', 'pos_reference', 'partner_id', 'date_order', - 'amount_total', 'amount_paid', 'amount_return', 'session_id', + 'amount_total', 'amount_paid', 'amount_return', 'session_id', 'amount_tax', 'statement_ids', 'lines', 'invoice_id', 'returned_order_id', 'fiscal_position_id' ] @@ -43,9 +59,9 @@ class PosOrder(models.Model): # Search globally by criteria condition += self._prepare_filter_query_for_pos(pos_session_id, query) - fields = self._prepare_fields_for_pos_list() + field_names = self._prepare_fields_for_pos_list() return self.search_read( - condition, fields, limit=config.iface_load_done_order_max_qty) + condition, field_names, limit=config.iface_load_done_order_max_qty) @api.multi def _prepare_done_order_for_pos(self): @@ -102,9 +118,7 @@ class PosOrder(models.Model): if (not pos_order.get('return') or not pos_order.get('returned_order_id')): return super()._process_order(pos_order) - order = super(PosOrder, - self.with_context(do_not_check_negative_qty=True) - )._process_order(pos_order) + order = super(PosOrder, self)._process_order(pos_order) returned_order_id = pos_order.get('returned_order_id') if isinstance(returned_order_id, int): order.returned_order_id = self.browse(returned_order_id) diff --git a/pos_order_mgmt/views/view_pos_config.xml b/pos_order_mgmt/views/view_pos_config.xml index 391c9848..f94ac8ad 100644 --- a/pos_order_mgmt/views/view_pos_config.xml +++ b/pos_order_mgmt/views/view_pos_config.xml @@ -16,7 +16,7 @@
-