mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[12.0][IMP] - extend contract line at renewal
This commit is contained in:
committed by
Francisco Ivan Anton Prieto
parent
becaad164f
commit
57f5df2a03
@@ -1188,6 +1188,12 @@ class ContractLine(models.Model):
|
|||||||
new_line._onchange_date_start()
|
new_line._onchange_date_start()
|
||||||
return new_line
|
return new_line
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def _renew_extend_line(self, date_end):
|
||||||
|
self.ensure_one()
|
||||||
|
self.date_end = date_end
|
||||||
|
return self
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def renew(self):
|
def renew(self):
|
||||||
res = self.env['contract.line']
|
res = self.env['contract.line']
|
||||||
@@ -1197,7 +1203,7 @@ class ContractLine(models.Model):
|
|||||||
if company.create_new_line_at_contract_line_renew:
|
if company.create_new_line_at_contract_line_renew:
|
||||||
new_line = rec._renew_create_line(date_start, date_end)
|
new_line = rec._renew_create_line(date_start, date_end)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
new_line = rec._renew_extend_line(date_end)
|
||||||
res |= new_line
|
res |= new_line
|
||||||
msg = _(
|
msg = _(
|
||||||
"""Contract line for <strong>{product}</strong>
|
"""Contract line for <strong>{product}</strong>
|
||||||
|
|||||||
@@ -1669,7 +1669,7 @@ class TestContract(TestContractBase):
|
|||||||
self.assertTrue(line_3.successor_contract_line_id)
|
self.assertTrue(line_3.successor_contract_line_id)
|
||||||
self.assertFalse(line_4.successor_contract_line_id)
|
self.assertFalse(line_4.successor_contract_line_id)
|
||||||
|
|
||||||
def test_renew(self):
|
def test_renew_create_new_line(self):
|
||||||
date_start = self.today - relativedelta(months=9)
|
date_start = self.today - relativedelta(months=9)
|
||||||
date_end = (
|
date_end = (
|
||||||
date_start + relativedelta(months=12) - relativedelta(days=1)
|
date_start + relativedelta(months=12) - relativedelta(days=1)
|
||||||
@@ -1694,6 +1694,31 @@ class TestContract(TestContractBase):
|
|||||||
new_line.date_end, date_end + relativedelta(months=12)
|
new_line.date_end, date_end + relativedelta(months=12)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_renew_extend_original_line(self):
|
||||||
|
self.contract.company_id.create_new_line_at_contract_line_renew = False
|
||||||
|
date_start = self.today - relativedelta(months=9)
|
||||||
|
date_end = (
|
||||||
|
date_start + relativedelta(months=12) - relativedelta(days=1)
|
||||||
|
)
|
||||||
|
self.acct_line.write(
|
||||||
|
{
|
||||||
|
'is_auto_renew': True,
|
||||||
|
'date_start': date_start,
|
||||||
|
'recurring_next_date': date_start,
|
||||||
|
'date_end': self.today,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.acct_line._onchange_is_auto_renew()
|
||||||
|
self.assertEqual(self.acct_line.date_end, date_end)
|
||||||
|
self.acct_line.renew()
|
||||||
|
self.assertTrue(self.acct_line.is_auto_renew)
|
||||||
|
self.assertEqual(
|
||||||
|
self.acct_line.date_start, date_start
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
self.acct_line.date_end, date_end + relativedelta(months=12)
|
||||||
|
)
|
||||||
|
|
||||||
def test_cron_recurring_create_invoice(self):
|
def test_cron_recurring_create_invoice(self):
|
||||||
self.acct_line.date_start = '2018-01-01'
|
self.acct_line.date_start = '2018-01-01'
|
||||||
self.acct_line.recurring_invoicing_type = 'post-paid'
|
self.acct_line.recurring_invoicing_type = 'post-paid'
|
||||||
|
|||||||
Reference in New Issue
Block a user