Merge PR #1075 into 17.0

Signed-off-by pedrobaeza
This commit is contained in:
OCA-git-bot
2024-04-17 19:29:42 +00:00
2 changed files with 24 additions and 0 deletions

View File

@@ -516,6 +516,7 @@ class ContractContract(models.Model):
not contract_line.is_canceled
and contract_line.recurring_next_date
and contract_line.recurring_next_date <= date_ref
and contract_line.next_period_date_start
)
lines2invoice = previous = self.env["contract.line"]

View File

@@ -2362,3 +2362,26 @@ class TestContract(TestContractBase):
action = self.contract.action_preview()
self.assertIn("/my/contracts/", action["url"])
self.assertIn("access_token=", action["url"])
def test_recurring_create_invoice(self):
self.acct_line.date_start = "2024-01-01"
self.acct_line.recurring_invoicing_type = "pre-paid"
self.acct_line.date_end = "2024-04-01"
self.contract.recurring_create_invoice()
self.assertEqual(self.acct_line.last_date_invoiced, to_date("2024-01-31"))
self.assertEqual(self.acct_line.recurring_next_date, to_date("2024-02-01"))
self.assertEqual(len(self.contract._get_related_invoices()), 1)
self.contract.recurring_create_invoice()
self.assertEqual(self.acct_line.last_date_invoiced, to_date("2024-02-29"))
self.assertEqual(self.acct_line.recurring_next_date, to_date("2024-03-01"))
self.assertEqual(len(self.contract._get_related_invoices()), 2)
self.contract.recurring_create_invoice()
self.assertEqual(self.acct_line.last_date_invoiced, to_date("2024-03-31"))
self.assertEqual(self.acct_line.recurring_next_date, to_date("2024-04-01"))
self.assertEqual(len(self.contract._get_related_invoices()), 3)
self.contract.recurring_create_invoice()
self.assertEqual(self.acct_line.last_date_invoiced, to_date("2024-04-01"))
self.assertFalse(self.acct_line.recurring_next_date)
self.assertEqual(len(self.contract._get_related_invoices()), 4)
self.contract.recurring_create_invoice()
self.assertEqual(len(self.contract._get_related_invoices()), 4)