diff --git a/shopinvader_schema_sale/__init__.py b/shopinvader_schema_sale/__init__.py index a51a83a6f8..c4def59b59 100644 --- a/shopinvader_schema_sale/__init__.py +++ b/shopinvader_schema_sale/__init__.py @@ -1 +1,2 @@ from . import schemas +from . import models diff --git a/shopinvader_schema_sale/models/__init__.py b/shopinvader_schema_sale/models/__init__.py new file mode 100644 index 0000000000..8eb9d1d404 --- /dev/null +++ b/shopinvader_schema_sale/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order_line diff --git a/shopinvader_schema_sale/models/sale_order_line.py b/shopinvader_schema_sale/models/sale_order_line.py new file mode 100644 index 0000000000..4f5c872735 --- /dev/null +++ b/shopinvader_schema_sale/models/sale_order_line.py @@ -0,0 +1,22 @@ +# Copyright 2024 Akretion (https://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class SaleOrderLine(models.Model): + _inherit = "sale.order.line" + + visible_in_shopinvader_api = fields.Boolean( + compute="_compute_visible_in_shopinvader_api", store=True + ) + + def _is_visible_in_shopinvader_api(self): + self.ensure_one() + return True + + @api.depends("product_id") + def _compute_visible_in_shopinvader_api(self): + for record in self: + record.visible_in_shopinvader_api = record._is_visible_in_shopinvader_api() diff --git a/shopinvader_schema_sale/schemas/sale.py b/shopinvader_schema_sale/schemas/sale.py index 0b0fa195ec..01c9c216b8 100644 --- a/shopinvader_schema_sale/schemas/sale.py +++ b/shopinvader_schema_sale/schemas/sale.py @@ -40,7 +40,11 @@ def from_sale_order(cls, odoo_rec): client_order_ref=odoo_rec.client_order_ref or None, date_order=odoo_rec.date_order, date_commitment=odoo_rec.commitment_date or None, - lines=[SaleLine.from_sale_order_line(line) for line in odoo_rec.order_line], + lines=[ + SaleLine.from_sale_order_line(line) + for line in odoo_rec.order_line + if line.visible_in_shopinvader_api + ], amount=SaleAmount.from_sale_order(odoo_rec), delivery=DeliveryInfo.from_sale_order(odoo_rec), invoicing=InvoicingInfo.from_sale_order(odoo_rec),