Merge PR #1342 into 13.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2022-02-18 17:19:38 +00:00
2 changed files with 19 additions and 1 deletions

View File

@@ -67,12 +67,14 @@ class AccountMove(models.Model):
def write(self, vals):
if vals.get("state") != "posted":
return super().write(vals)
previously_validated = self.filtered(lambda m: m.name and m.name != "/")
newly_posted = self.filtered(lambda move: move.state != "posted")
res = super().write(vals)
for move in newly_posted & self.filtered("journal_id.check_chronology"):
if self.search(move._get_older_conflicting_invoices_domain(), limit=1):
move._raise_older_conflicting_invoices()
if move in previously_validated:
continue
if self.search(move._get_newer_conflicting_invoices_domain(), limit=1):
move._raise_newer_conflicting_invoices()

View File

@@ -129,3 +129,19 @@ class TestAccountInvoiceConstraintChronology(common.SavepointCase):
refund = self.AccountMove.browse(refund["res_id"])
with self.assertRaises(UserError):
refund.action_post()
def test_modify_validated_past_invoice(self):
"""We've got an invoice from yesterday that we need to modify but new ones
have been posted since. As the invoice already has a name, we should be able
to validate it"""
self.invoice_1.invoice_date = self.yesterday
self.invoice_1.action_post()
self.invoice_2.invoice_date = self.today
self.invoice_2.action_post()
self.invoice_1.button_cancel()
self.invoice_1.button_draft()
self.invoice_1.action_post()
self.invoice_1_5 = self.invoice_1.copy()
self.invoice_1_5.invoice_date = self.yesterday
with self.assertRaises(UserError):
self.invoice_1_5.action_post()