2 In order to test account invoice I create a new customer invoice
4 !record {model: account.invoice, id: account_invoice_customer0}:
5 account_id: account.a_recv
6 address_contact_id: base.res_partner_address_zen
7 address_invoice_id: base.res_partner_address_zen
8 company_id: base.main_company
10 date_invoice: '2010-05-26'
12 - account_id: account.a_sale
13 name: '[PC3] Medium PC'
16 product_id: product.product_product_pc3
17 uos_id: product.product_uom_unit
18 journal_id: account.sales_journal
19 partner_id: base.res_partner_3
22 I check that Initially customer invoice is in the "Draft" state
24 !assert {model: account.invoice, id: account_invoice_customer0}:
27 I change the state of invoice to "Proforma2" by clicking PRO-FORMA button
29 !workflow {model: account.invoice, action: invoice_proforma2, ref: account_invoice_customer0}
31 I check that the invoice state is now "Proforma2"
33 !assert {model: account.invoice, id: account_invoice_customer0}:
34 - state == 'proforma2'
36 I create invoice by clicking on Create button
38 !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_customer0}
40 I check that the invoice state is "Open"
42 !assert {model: account.invoice, id: account_invoice_customer0}:
45 I create a record for partial payment of 1000 EUR.
47 !record {model: account.invoice.pay, id: account_invoice_pay_first0}:
50 journal_id: account.sales_journal
51 name: First payment for [PC3] Medium PC to Distrib PC
52 period_id: account.period_5
54 I make partial payment by clicking on Partial Payment button
56 !python {model: account.invoice.pay}: |
57 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_first0")], {"lang":
58 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
59 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
62 I check that the invoice state is still open
64 !assert {model: account.invoice, id: account_invoice_customer0}:
67 I make second partial payment of 6000 EUR.
69 !record {model: account.invoice.pay, id: account_invoice_pay_second0}:
72 journal_id: account.sales_journal
73 name: Second payment for [PC3] Medium PC to Distrib PC
74 period_id: account.period_5
76 I make partial payment by clicking on Partial Payment button
79 !python {model: account.invoice.pay}: |
80 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_second0")], {"lang":
81 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
82 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
85 I make final partial payment of 2000 EUR
87 !record {model: account.invoice.pay, id: account_invoice_pay_final0}:
90 journal_id: account.sales_journal
91 name: Final payment for [PC3] Medium PC to Distrib PC
92 period_id: account.period_5
95 I make partial payment by clicking on Partial Payment button
98 !python {model: account.invoice.pay}: |
99 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_final0")], {"lang":
100 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
101 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
105 I check that the invoice state is now Done
107 !assert {model: account.invoice, id: account_invoice_customer0}:
110 I check that an payment entry gets created in the account.move.line
112 !python {model: account.invoice}: |
113 acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
114 assert(acc_id.move_id)
116 I refund the invoice Using Credit Note
118 !record {model: account.invoice.refund, id: account_invoice_refund_0}:
119 description: Refund To China Export
120 period: account.period_5
122 I clicked on refund button
124 !python {model: account.invoice.refund}: |
125 self.invoice_refund(cr, uid, [ref("account_invoice_refund_0")], {"lang": 'en_US', "tz": False, "active_model": "account.invoice", "active_ids": [ref("account.account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account.account_invoice_customer0"), })
127 I checked that a new entry with state "Draft" created in account move line