From d8cf1b9623f159933a8562bc9ecc099a11342537 Mon Sep 17 00:00:00 2001 From: Magno Costa Date: Wed, 10 May 2023 20:08:22 -0300 Subject: [PATCH] [REF] stock_picking_invoicing: Removed unnecessary fields at the creation of Invoice and check if those fields are being filled. --- .../demo/stock_picking_demo.xml | 8 ++++++ .../tests/test_picking_invoicing.py | 8 +++++- .../wizards/stock_invoice_onshipping.py | 28 +------------------ 3 files changed, 16 insertions(+), 28 deletions(-) diff --git a/stock_picking_invoicing/demo/stock_picking_demo.xml b/stock_picking_invoicing/demo/stock_picking_demo.xml index fb18b93f865c..4e9f6557e768 100644 --- a/stock_picking_invoicing/demo/stock_picking_demo.xml +++ b/stock_picking_invoicing/demo/stock_picking_demo.xml @@ -1,5 +1,13 @@ + + + + Test - Stock Picking Invocing + + 1 + + diff --git a/stock_picking_invoicing/tests/test_picking_invoicing.py b/stock_picking_invoicing/tests/test_picking_invoicing.py index e09c41d42601..fbe23de0e9c3 100644 --- a/stock_picking_invoicing/tests/test_picking_invoicing.py +++ b/stock_picking_invoicing/tests/test_picking_invoicing.py @@ -143,15 +143,21 @@ def test_0_picking_out_invoicing(self): self.assertIn(picking, invoice.picking_ids) nb_invoice_after = self.invoice_model.search_count([]) self.assertEqual(nb_invoice_before, nb_invoice_after - len(invoice)) + assert invoice.invoice_user_id, "Error to map User in Invoice." + assert invoice.invoice_payment_term_id, "Error to map Payment Term in Invoice." + assert invoice.fiscal_position_id, "Error to map Fiscal Position in Invoice." + assert invoice.company_id, "Error to map Company in Invoice." assert invoice.invoice_line_ids, "Error to create invoice line." for inv_line in invoice.invoice_line_ids: + assert inv_line.account_id, "Error to map Account in Invoice Line." + assert inv_line.tax_ids, "Error to map Sale Tax in Invoice Line." + assert inv_line.product_uom_id, "Error to map Product UOM in Invoice Line." for mv_line in inv_line.move_line_ids: self.assertEqual( mv_line.id, new_move.id, "Error to link stock.move with invoice.line.", ) - self.assertTrue(inv_line.tax_ids, "Error to map Sale Tax in invoice.line.") def test_1_picking_out_invoicing(self): nb_invoice_before = self.invoice_model.search_count([]) diff --git a/stock_picking_invoicing/wizards/stock_invoice_onshipping.py b/stock_picking_invoicing/wizards/stock_invoice_onshipping.py index 6a712bfe1f91..0f8cd60436f6 100644 --- a/stock_picking_invoicing/wizards/stock_invoice_onshipping.py +++ b/stock_picking_invoicing/wizards/stock_invoice_onshipping.py @@ -353,12 +353,7 @@ def _build_invoice_values_from_pickings(self, pickings): partner_id = picking._get_partner_to_invoice() partner = self.env["res.partner"].browse(partner_id) inv_type = self._get_invoice_type() - if inv_type in ("out_invoice", "out_refund"): - payment_term = partner.property_payment_term_id.id - else: - payment_term = partner.property_supplier_payment_term_id.id - company = self.env.company - currency = company.currency_id + currency = self.env.company.currency_id if partner: code = picking.picking_type_id.code if partner.property_product_pricelist and code == "outgoing": @@ -369,12 +364,8 @@ def _build_invoice_values_from_pickings(self, pickings): values.update( { "invoice_origin": ", ".join(pickings.mapped("name")), - "user_id": self.env.user.id, "partner_id": partner_id, - "invoice_payment_term_id": payment_term, "move_type": inv_type, - "fiscal_position_id": partner.property_account_position_id.id, - "company_id": company.id, "currency_id": currency.id, "journal_id": journal.id, "picking_ids": [(4, p.id, False) for p in pickings], @@ -435,21 +426,8 @@ def _get_invoice_line_values(self, moves, invoice_values, invoice): name = ", ".join(moves.mapped("name")) move = fields.first(moves) product = move.product_id - fiscal_position = self.env["account.fiscal.position"].browse( - invoice_values["fiscal_position_id"] - ) partner_id = self.env["res.partner"].browse(invoice_values["partner_id"]) - categ = product.categ_id inv_type = invoice_values["move_type"] - if inv_type in ("out_invoice", "out_refund"): - account = product.property_account_income_id - if not account: - account = categ.property_account_income_categ_id - else: - account = product.property_account_expense_id - if not account: - account = categ.property_account_expense_categ_id - account = move._get_account(fiscal_position, account) quantity = 0 move_line_ids = [] for move in moves: @@ -467,19 +445,15 @@ def _get_invoice_line_values(self, moves, invoice_values, invoice): qty *= -1 quantity += qty move_line_ids.append((4, move.id, False)) - taxes = moves._get_taxes(fiscal_position, inv_type) price = moves._get_price_unit_invoice(inv_type, partner_id, quantity) line_obj = self.env["account.move.line"] values = line_obj.default_get(line_obj.fields_get().keys()) values.update( { "name": name, - "account_id": account.id, "product_id": product.id, - "product_uom_id": product.uom_id.id, "quantity": quantity, "price_unit": price, - "tax_ids": [(6, 0, taxes.ids)], "move_line_ids": move_line_ids, "move_id": invoice.id, }