- In order to test mandates in contracts, create a partner with a bank account. Then, create two mandates, and validate them. Finally, create a contract with mandate2, create a recurring invoice and check that the invoice has set the contract mandate (mandate2). Create a partner - !record {model: res.partner, id: test_partner, view: False}: name: "Contract mandate test" - Create a partner bank account - !record {model: res.partner.bank, id: test_partner_bank, view: False}: state: 'bank' acc_number: '1234' partner_id: test_partner - Create mandate1 on 1st January - !record {model: account.banking.mandate, id: test_mandate1, view: False}: partner_bank_id: test_partner_bank signature_date: "2014-01-01" - Create mandate2 on 15th February - !record {model: account.banking.mandate, id: test_mandate2, view: False}: partner_bank_id: test_partner_bank signature_date: "2015-02-15" - Validate both mandates - !python {model: account.banking.mandate}: | self.validate(cr, uid, [ref('test_mandate1')]) self.validate(cr, uid, [ref('test_mandate2')]) - Create new contract with a mandate2 - !record {model: account.analytic.account, id: test_contract}: name: Recurring with mandate company_id: base.main_company partner_id: base.main_partner type: contract recurring_invoices : 1 recurring_interval : 1 recurring_rule_type: 'monthly' recurring_next_date: '2016-02-29' recurring_invoice_line_ids: - quantity: 2.0 price_unit: 100.0 name: Database Administration 25 product_id: product.product_product_consultant uom_id: product.product_uom_hour mandate_id: test_mandate2 - Generate all invoices from contracts having recurring invoicing - !python {model: account.analytic.account}: | self.recurring_create_invoice(cr, uid, []) - Check created invoice has mandate2 - !python {model: account.invoice}: | aid = ref('test_contract') ids = self.search(cr, uid, [('invoice_line.account_analytic_id','=',aid)], context=context) assert len(ids) == 1, "Expected exactly one invoice created for the contract, got %d"%(len(ids)) for invoice in self.browse(cr, uid, ids,context=context): assert invoice.mandate_id.id == ref('test_mandate2'), "Recurring invoice has mandate id %d, but should have mandate id %d"%(invoice.mandate_id.id, ref('test_mandate2'))