From 2a701aced1fefd6b763148c7033b4ed1625466ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B4nio=20Neto?= Date: Tue, 17 Sep 2024 23:35:43 -0300 Subject: [PATCH] [MIG] l10n_br_sale_stock: Migration to 16.0 --- l10n_br_sale_stock/__manifest__.py | 2 +- l10n_br_sale_stock/tests/test_sale_stock.py | 4 +-- .../wizards/stock_invoice_onshipping.py | 33 +++++++++++++++++++ 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/l10n_br_sale_stock/__manifest__.py b/l10n_br_sale_stock/__manifest__.py index fc53337cccda..aa52b542b451 100644 --- a/l10n_br_sale_stock/__manifest__.py +++ b/l10n_br_sale_stock/__manifest__.py @@ -8,7 +8,7 @@ "license": "AGPL-3", "author": "Akretion, Odoo Community Association (OCA)", "website": "https://github.com/OCA/l10n-brazil", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "development_status": "Beta", "maintainers": ["renatonlima", "mbcosta"], "depends": [ diff --git a/l10n_br_sale_stock/tests/test_sale_stock.py b/l10n_br_sale_stock/tests/test_sale_stock.py index d8d6333341f8..7f08eaa88450 100644 --- a/l10n_br_sale_stock/tests/test_sale_stock.py +++ b/l10n_br_sale_stock/tests/test_sale_stock.py @@ -83,7 +83,7 @@ def test_02_sale_stock_return(self): stock_picking = self.so.picking_ids # compare sale.order.line with stock.move - stock_move = stock_picking.move_lines + stock_move = stock_picking.move_ids sale_order_line = self.so.order_line sm_fields = [key for key in self.env["stock.move"]._fields.keys()] @@ -249,7 +249,7 @@ def test_picking_sale_order_product_and_service(self): self.assertTrue( picking_devolution.fiscal_operation_id, "Missing Fiscal Operation." ) - for line in picking_devolution.move_lines: + for line in picking_devolution.move_ids: self.assertEqual(line.invoice_state, "2binvoiced") # Valida presença dos campos principais para o mapeamento Fiscal self.assertTrue(line.fiscal_operation_id, "Missing Fiscal Operation.") diff --git a/l10n_br_sale_stock/wizards/stock_invoice_onshipping.py b/l10n_br_sale_stock/wizards/stock_invoice_onshipping.py index a4a66c8a3164..683f8950fbad 100644 --- a/l10n_br_sale_stock/wizards/stock_invoice_onshipping.py +++ b/l10n_br_sale_stock/wizards/stock_invoice_onshipping.py @@ -59,3 +59,36 @@ def _build_invoice_values_from_pickings(self, pickings): ) return invoice, values + + def _get_invoice_line_values(self, moves, invoice_values, invoice): + """ + Create invoice line values from given moves + :param moves: stock.move + :param invoice: account.invoice + :return: dict + """ + + values = super()._get_invoice_line_values(moves, invoice_values, invoice) + # Devido ao KEY com sale_line_id aqui + # vem somente um registro + # Caso venha apenas uma linha porem sem + # sale_line_id é preciso ignora-la + if len(moves) != 1 or not moves.sale_line_id: + return values + + sale_line_id = moves.sale_line_id + values["sale_line_ids"] = [(6, 0, sale_line_id.ids)] + sale_line_id = moves.sale_line_id + analytic_account_id = sale_line_id.order_id.analytic_account_id.id + if sale_line_id.analytic_distribution and not sale_line_id.display_type: + values["analytic_distribution"] = sale_line_id.analytic_distribution + if analytic_account_id and not sale_line_id.display_type: + analytic_account_id = str(analytic_account_id) + if "analytic_distribution" in values: + values["analytic_distribution"][analytic_account_id] = ( + values["analytic_distribution"].get(analytic_account_id, 0) + 100 + ) + else: + values["analytic_distribution"] = {analytic_account_id: 100} + + return values