mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
@@ -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"]
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user