[MIG] account_purchase_stock_report_non_billed: Migration to 15.0

pull/1002/head
Stefan 2023-01-31 12:33:40 +01:00
parent 17d853ace4
commit ab61edceba
4 changed files with 72 additions and 64 deletions

View File

@ -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",

View File

@ -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:

View File

@ -2,3 +2,4 @@
* Carlos Roca
* Pedro M. Baeza
* Stefan Ungureanu

View File

@ -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}
)