mirror of
https://github.com/OCA/contract.git
synced 2025-02-13 17:57:24 +02:00
[IMP] contract: Improve partner With running contracts search view filter + contract termination
This commit is contained in:
committed by
Christopher Rogos
parent
924aae8bc6
commit
6cb0fc6ebe
@@ -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.terminate_reason = cls.env['contract.terminate.reason'].create({
|
||||
'name': 'terminate_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_terminate_contract(self):
|
||||
action = self.contract.action_terminate_contract()
|
||||
wizard = (
|
||||
self.env[action['res_model']]
|
||||
.with_context(action['context'])
|
||||
.create(
|
||||
{
|
||||
'terminate_date': '2018-03-01',
|
||||
'terminate_reason_id': self.terminate_reason.id,
|
||||
'terminate_comment': 'terminate_comment',
|
||||
}
|
||||
)
|
||||
)
|
||||
self.assertEqual(wizard.contract_id, self.contract)
|
||||
with self.assertRaises(UserError):
|
||||
wizard.terminate_contract()
|
||||
group_can_terminate_contract = self.env.ref(
|
||||
"contract.can_terminate_contract"
|
||||
)
|
||||
group_can_terminate_contract.users |= self.env.user
|
||||
wizard.terminate_contract()
|
||||
self.assertTrue(self.contract.is_terminated)
|
||||
self.assertEqual(self.contract.terminate_date, to_date('2018-03-01'))
|
||||
self.assertEqual(
|
||||
self.contract.terminate_reason_id.id, self.terminate_reason.id
|
||||
)
|
||||
self.assertEqual(self.contract.terminate_comment, 'terminate_comment')
|
||||
self.contract.action_cancel_contract_termination()
|
||||
self.assertFalse(self.contract.is_terminated)
|
||||
self.assertFalse(self.contract.terminate_reason_id)
|
||||
self.assertFalse(self.contract.terminate_comment)
|
||||
|
||||
def test_terminate_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_terminate_contract = self.env.ref(
|
||||
"contract.can_terminate_contract"
|
||||
)
|
||||
group_can_terminate_contract.users |= self.env.user
|
||||
with self.assertRaises(ValidationError):
|
||||
self.contract._terminate_contract(
|
||||
self.terminate_reason,
|
||||
'terminate_comment',
|
||||
to_date('2018-02-13'),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user