46 lines
1.9 KiB
YAML
46 lines
1.9 KiB
YAML
-
|
|
In order to test Contract Recurrent Invoice I create a new Contract Template
|
|
-
|
|
!record {model: account.analytic.account, id: contract_template}:
|
|
name: Maintenance of Servers
|
|
company_id: base.main_company
|
|
partner_id: base.main_partner
|
|
type: template
|
|
recurring_invoices : 1
|
|
recurring_interval : 1
|
|
recurring_invoice_line_ids:
|
|
- quantity: 2.0
|
|
price_unit: 75.0
|
|
name: Database Administration
|
|
product_id: product.product_product_consultant
|
|
uom_id: product.product_uom_hour
|
|
-
|
|
I create a contract based on this template
|
|
-
|
|
!record {model: account.analytic.account, id: contract_main}:
|
|
partner_id: base.main_partner
|
|
template_id: account_analytic_analysis.contract_template
|
|
type: contract
|
|
-
|
|
I check that the contract inherited from data of the template
|
|
-
|
|
!python {model: account.analytic.account}: |
|
|
contract = self.browse(cr, uid, ref('account_analytic_analysis.contract_main'))
|
|
template = self.browse(cr, uid, ref('account_analytic_analysis.contract_template'))
|
|
assert template.recurring_interval == contract.recurring_interval, "The recurring interval of the contract does not match with the contract template"
|
|
assert template.recurring_invoices == contract.recurring_invoices, "Invoice method of contract does not match with the contract template"
|
|
-
|
|
I generate all invoices from contracts having recurring invoicing
|
|
-
|
|
!python {model: account.analytic.account}: |
|
|
self.recurring_create_invoice(cr, uid, [])
|
|
-
|
|
I test the generated invoice
|
|
-
|
|
!python {model: account.invoice}: |
|
|
aid = ref('account_analytic_analysis.contract_main')
|
|
ids = self.search(cr, uid, [('invoice_line.account_analytic_id','=',aid)], context=context)
|
|
assert len(ids)>=1, 'No invoice created for the contract'
|
|
for invoice in self.browse(cr, uid, ids,context=context):
|
|
assert invoice.amount_untaxed == 150.0, "The invoice total is different than 150!"
|