You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

52 lines
1.8 KiB

# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.addons.contract.tests.test_contract import TestContractBase
class TestContractSaleMandate(TestContractBase):
@classmethod
def setUpClass(cls):
super(TestContractSaleMandate, cls).setUpClass()
cls.partner_bank = cls.env['res.partner.bank'].create({
'acc_number': '1234',
'partner_id': cls.partner.id,
})
cls.mandate = cls.env['account.banking.mandate'].create({
'partner_id': cls.partner.id,
'partner_bank_id': cls.partner_bank.id,
'signature_date': '2017-01-01',
})
cls.product1 = cls.env.ref('product.product_product_1')
cls.contract_template1 = cls.env['contract.template'].create(
{'name': 'Template 1'}
)
cls.product1.write(
{
'is_contract': True,
'default_qty': 12,
'recurring_rule_type': "monthlylastday",
'contract_template_id': cls.contract_template1.id,
}
)
cls.sale = cls.env.ref('sale.sale_order_2')
cls.sale.mandate_id = cls.mandate
cls.order_line1 = cls.sale.order_line.filtered(
lambda l: l.product_id == cls.product1
)
def test_01(self):
"""
Data:
- A sale order with a mandate
Test case:
- Confirm the sale order
Expected result:
- The mandate of the sale order is copied on the generated
contract
"""
self.order_line1.onchange_product()
self.sale.action_confirm()
contracts = self.sale.order_line.mapped('contract_id')
self.assertEqual(len(contracts), 1)
self.assertEqual(contracts[0].mandate_id, self.mandate)