[IMP] - contract resiliation

This commit is contained in:
sbejaoui
2020-01-29 17:06:31 +01:00
parent 70525f0e23
commit 58b38490f6
13 changed files with 320 additions and 19 deletions

View File

@@ -6,7 +6,7 @@ from collections import namedtuple
from datetime import timedelta
from dateutil.relativedelta import relativedelta
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.exceptions import ValidationError, UserError
from odoo.tests import common
@@ -110,6 +110,9 @@ class TestContractBase(common.SavepointCase):
)
cls.acct_line.product_id.is_auto_renew = True
cls.contract.company_id.create_new_line_at_contract_line_renew = True
cls.resiliate_reason = cls.env['contract.resiliate.reason'].create({
'name': 'resiliate_reason'
})
class TestContract(TestContractBase):
@@ -2364,3 +2367,51 @@ class TestContract(TestContractBase):
self.assertEqual(
self.acct_line.recurring_next_date, to_date('2019-06-01')
)
def test_action_resiliate_contract(self):
action = self.contract.action_resiliate_contract()
wizard = (
self.env[action['res_model']]
.with_context(action['context'])
.create(
{
'resiliate_date': '2018-03-01',
'resiliate_reason_id': self.resiliate_reason.id,
'resiliate_comment': 'resiliate_comment',
}
)
)
self.assertEqual(wizard.contract_id, self.contract)
with self.assertRaises(UserError):
wizard.resiliate_contract()
group_can_resiliate_contract = self.env.ref(
"contract.can_resiliate_contract"
)
group_can_resiliate_contract.users |= self.env.user
wizard.resiliate_contract()
self.assertTrue(self.contract.is_resiliated)
self.assertEqual(self.contract.resiliate_date, to_date('2018-03-01'))
self.assertEqual(
self.contract.resiliate_reason_id.id, self.resiliate_reason.id
)
self.assertEqual(self.contract.resiliate_comment, 'resiliate_comment')
self.contract.action_cancel_contract_resiliation()
self.assertFalse(self.contract.is_resiliated)
self.assertFalse(self.contract.resiliate_reason_id)
self.assertFalse(self.contract.resiliate_comment)
def test_resiliate_date_before_last_date_invoiced(self):
self.contract.recurring_create_invoice()
self.assertEqual(
self.acct_line.last_date_invoiced, to_date('2018-02-14')
)
group_can_resiliate_contract = self.env.ref(
"contract.can_resiliate_contract"
)
group_can_resiliate_contract.users |= self.env.user
with self.assertRaises(ValidationError):
self.contract._resiliate_contract(
self.resiliate_reason,
'resiliate_comment',
to_date('2018-02-13'),
)