From ab61edceba211b5752d07ffd6c4bc2a6f99340bf Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 31 Jan 2023 12:33:40 +0100 Subject: [PATCH] [MIG] account_purchase_stock_report_non_billed: Migration to 15.0 --- .../__manifest__.py | 2 +- .../models/stock_move.py | 10 +- .../readme/CONTRIBUTORS.rst | 1 + ...ccount_purchase_stock_report_non_billed.py | 123 +++++++++--------- 4 files changed, 72 insertions(+), 64 deletions(-) diff --git a/account_purchase_stock_report_non_billed/__manifest__.py b/account_purchase_stock_report_non_billed/__manifest__.py index 910e6b56..9be88f35 100644 --- a/account_purchase_stock_report_non_billed/__manifest__.py +++ b/account_purchase_stock_report_non_billed/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Account Purchase Stock Report Non Billed", - "version": "13.0.1.1.0", + "version": "15.0.1.0.0", "license": "AGPL-3", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-financial-reporting", diff --git a/account_purchase_stock_report_non_billed/models/stock_move.py b/account_purchase_stock_report_non_billed/models/stock_move.py index 2101678f..cddeb5fb 100644 --- a/account_purchase_stock_report_non_billed/models/stock_move.py +++ b/account_purchase_stock_report_non_billed/models/stock_move.py @@ -13,7 +13,7 @@ class StockMove(models.Model): if move.purchase_line_id: move.currency_id = move.purchase_line_id.currency_id else: - super(StockMove, move)._compute_currency_id() + return super(StockMove, move)._compute_currency_id() def get_quantity_invoiced(self, invoice_lines): if self.purchase_line_id: @@ -23,8 +23,8 @@ class StockMove(models.Model): sum( invoice_lines.mapped( lambda l: l.quantity - if (l.move_id.type == "in_invoice" and not self.to_refund) - or (l.move_id.type == "in_refund" and self.to_refund) + if (l.move_id.move_type == "in_invoice" and not self.to_refund) + or (l.move_id.move_type == "in_refund" and self.to_refund) else -l.quantity ) ) @@ -70,12 +70,12 @@ class StockMove(models.Model): ) self.price_not_invoiced = (qty_to_invoice - invoiced_qty) * price_unit else: - super()._set_not_invoiced_values(qty_to_invoice, invoiced_qty) + return super()._set_not_invoiced_values(qty_to_invoice, invoiced_qty) @api.depends("purchase_line_id") @api.depends_context("date_check_invoiced_moves") def _compute_not_invoiced_values(self): - super()._compute_not_invoiced_values() + return super()._compute_not_invoiced_values() def _get_model_id_origin_document(self): if not self.purchase_line_id: diff --git a/account_purchase_stock_report_non_billed/readme/CONTRIBUTORS.rst b/account_purchase_stock_report_non_billed/readme/CONTRIBUTORS.rst index bd8c9d93..f989d22d 100644 --- a/account_purchase_stock_report_non_billed/readme/CONTRIBUTORS.rst +++ b/account_purchase_stock_report_non_billed/readme/CONTRIBUTORS.rst @@ -2,3 +2,4 @@ * Carlos Roca * Pedro M. Baeza + * Stefan Ungureanu diff --git a/account_purchase_stock_report_non_billed/tests/test_account_purchase_stock_report_non_billed.py b/account_purchase_stock_report_non_billed/tests/test_account_purchase_stock_report_non_billed.py index c105b130..3058303a 100644 --- a/account_purchase_stock_report_non_billed/tests/test_account_purchase_stock_report_non_billed.py +++ b/account_purchase_stock_report_non_billed/tests/test_account_purchase_stock_report_non_billed.py @@ -3,10 +3,11 @@ from dateutil.relativedelta import relativedelta from odoo import fields -from odoo.tests import Form, common +from odoo.tests import Form, common, tagged -class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): +@tagged("-at_install", "post_install") +class TestAccountPurchaseStockReportNonBilled(common.TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() @@ -39,9 +40,9 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): def test_02_report_move_full_invoiced(self): picking = self.get_picking_done_po() - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} @@ -58,16 +59,16 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking.action_confirm() move_done = picking.move_lines[0] move_done.quantity_done = 1.0 - picking.action_done() - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - inv = inv_form.save() - inv.action_post() + picking.button_validate() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date + invoice.action_post() # Done other moves to appear at report picking_ret = self.po.picking_ids.filtered(lambda p: p.state == "assigned") picking_ret.action_confirm() picking_ret.move_lines.quantity_done = 1.0 - picking_ret.action_done() + picking_ret.button_validate() moves_not_done = picking_ret.move_lines wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} @@ -87,9 +88,9 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking.move_lines.quantity_done = 1.0 picking.button_validate() # Create invoice - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} @@ -102,7 +103,13 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): wiz_invoice_refund = ( self.env["account.move.reversal"] .with_context(active_model="account.move", active_ids=invoice.ids) - .create({"refund_method": "cancel", "reason": "test"}) + .create( + { + "refund_method": "cancel", + "reason": "test", + "journal_id": invoice.journal_id.id, + } + ) ) wiz_invoice_refund.reverse_moves() action = wiz.open_at_date() @@ -110,10 +117,10 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): for move in picking.move_lines: self.assertIn(move.id, domain_ids) # Create invoice again - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - new_inv = inv_form.save() - new_inv.action_post() + inv_action = self.po.action_create_invoice() + new_invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + new_invoice.invoice_date = self.po.create_date + new_invoice.action_post() action = wiz.open_at_date() domain_ids = action["domain"][0][2] for move in picking.move_lines: @@ -125,12 +132,11 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking = self.po.picking_ids[0] picking.action_confirm() picking.move_lines.quantity_done = 3.0 - picking.button_validate() + res_dict = picking.button_validate() move_lines = picking.move_lines - wiz = self.env["stock.backorder.confirmation"].create( - {"pick_ids": [(4, picking.id)]} - ) - wiz.process() + self.env["stock.backorder.confirmation"].with_context( + **res_dict["context"] + ).process() picking = self.po.picking_ids.filtered(lambda p: p.state != "done") picking.action_confirm() picking.move_lines.quantity_done = 2.0 @@ -143,9 +149,9 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): domain_ids = action["domain"][0][2] for move in move_lines: self.assertIn(move.id, domain_ids) - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() action = wiz.open_at_date() domain_ids = action["domain"][0][2] @@ -158,15 +164,14 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking = self.po.picking_ids[0] picking.action_confirm() picking.move_lines.quantity_done = 3.0 - picking.button_validate() - wiz = self.env["stock.backorder.confirmation"].create( - {"pick_ids": [(4, picking.id)]} - ) - wiz.process() + res_dict = picking.button_validate() move_lines = picking.move_lines - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + self.env["stock.backorder.confirmation"].with_context( + **res_dict["context"] + ).process() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() picking = self.po.picking_ids.filtered(lambda p: p.state != "done") picking.action_confirm() @@ -181,9 +186,9 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): self.assertNotIn(move.id, domain_ids) for move in picking.move_lines: self.assertIn(move.id, domain_ids) - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() action = wiz.open_at_date() domain_ids = action["domain"][0][2] @@ -199,9 +204,9 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking.move_lines.quantity_done = 1.0 picking.button_validate() # Create invoice - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - invoice = inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date invoice.action_post() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} @@ -221,7 +226,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_id = wiz_return.create_returns()["res_id"] picking_return = self.env["stock.picking"].browse(return_id) picking_return.move_line_ids.write({"qty_done": 1}) - picking_return.action_done() + picking_return.button_validate() for move in picking_return.move_lines: self.assertNotIn(move.id, domain_ids) @@ -242,7 +247,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_id = wiz_return.create_returns()["res_id"] picking_return = self.env["stock.picking"].browse(return_id) picking_return.move_line_ids.write({"qty_done": 1}) - picking_return.action_done() + picking_return.button_validate() wiz_return_return_form = Form( self.env["stock.return.picking"].with_context( active_model="stock.picking", active_id=picking_return.id @@ -252,10 +257,11 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_return_id = wiz_return_return.create_returns()["res_id"] picking_return_return = self.env["stock.picking"].browse(return_return_id) picking_return_return.move_line_ids.write({"qty_done": 1}) - picking_return_return.action_done() - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - inv_form.save() + picking_return_return.button_validate() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date + invoice.action_post() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} ) @@ -285,7 +291,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_id = wiz_return.create_returns()["res_id"] picking_return = self.env["stock.picking"].browse(return_id) picking_return.move_line_ids.write({"qty_done": 1}) - picking_return.action_done() + picking_return.button_validate() wiz_return_return_form = Form( self.env["stock.return.picking"].with_context( active_model="stock.picking", active_id=picking_return.id @@ -295,7 +301,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_return_id = wiz_return_return.create_returns()["res_id"] picking_return_return = self.env["stock.picking"].browse(return_return_id) picking_return_return.move_line_ids.write({"qty_done": 1}) - picking_return_return.action_done() + picking_return_return.button_validate() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} ) @@ -316,9 +322,10 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking.action_confirm() picking.move_lines.quantity_done = 1.0 picking.button_validate() - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = self.po.create_date + invoice.action_post() wiz_return_form = Form( self.env["stock.return.picking"].with_context( active_model="stock.picking", active_id=picking.id, to_refund=False @@ -328,7 +335,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_id = wiz_return.create_returns()["res_id"] picking_return = self.env["stock.picking"].browse(return_id) picking_return.move_line_ids.write({"qty_done": 1}) - picking_return.action_done() + picking_return.button_validate() wiz_return_return_form = Form( self.env["stock.return.picking"].with_context( active_model="stock.picking", @@ -340,7 +347,7 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): return_return_id = wiz_return_return.create_returns()["res_id"] picking_return_return = self.env["stock.picking"].browse(return_return_id) picking_return_return.move_line_ids.write({"qty_done": 1}) - picking_return_return.action_done() + picking_return_return.button_validate() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today()} ) @@ -362,10 +369,10 @@ class TestAccountPurchaseStockReportNonBilled(common.SavepointCase): picking.move_lines.quantity_done = 1.0 picking.button_validate() # Emulate prepaying invoice - inv_action = self.po.action_view_invoice() - inv_form = Form(self.env["account.move"].with_context(**inv_action["context"])) - inv_form.date = fields.Date.today() - relativedelta(days=5) - inv_form.save() + inv_action = self.po.action_create_invoice() + invoice = self.env["account.move"].browse([(inv_action["res_id"])]) + invoice.invoice_date = fields.Date.today() - relativedelta(days=5) + invoice.action_post() wiz = self.env["account.sale.stock.report.non.billed.wiz"].create( {"date_check": fields.Date.today(), "interval_restrict_invoices": True} )