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 check that there is no move attached to the invoice
38 !python {model: account.invoice}: |
39 acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
40 assert (not acc_id.move_id), "Move falsely created at pro-forma"
42 I create invoice by clicking on Create button
44 !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_customer0}
46 I check that the invoice state is "Open"
48 !assert {model: account.invoice, id: account_invoice_customer0}:
52 I check that now there is a move attached to the invoice
54 !python {model: account.invoice}: |
55 acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
56 assert acc_id.move_id, "Move not created for open invoice"
58 I create a record for partial payment of 1000 EUR.
60 !record {model: account.invoice.pay, id: account_invoice_pay_first0}:
63 journal_id: account.sales_journal
64 name: First payment for [PC3] Medium PC to Distrib PC
65 period_id: account.period_5
67 I make partial payment by clicking on Partial Payment button
69 !python {model: account.invoice.pay}: |
70 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_first0")], {"lang":
71 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
72 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
75 I check that the invoice state is still open
77 !assert {model: account.invoice, id: account_invoice_customer0}:
80 I make second partial payment of 6000 EUR.
82 !record {model: account.invoice.pay, id: account_invoice_pay_second0}:
85 journal_id: account.sales_journal
86 name: Second payment for [PC3] Medium PC to Distrib PC
87 period_id: account.period_5
89 I make partial payment by clicking on Partial Payment button
92 !python {model: account.invoice.pay}: |
93 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_second0")], {"lang":
94 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
95 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
98 I make final partial payment of 2000 EUR
100 !record {model: account.invoice.pay, id: account_invoice_pay_final0}:
103 journal_id: account.sales_journal
104 name: Final payment for [PC3] Medium PC to Distrib PC
105 period_id: account.period_5
108 I make partial payment by clicking on Partial Payment button
111 !python {model: account.invoice.pay}: |
112 self.pay_and_reconcile(cr, uid, [ref("account_invoice_pay_final0")], {"lang":
113 'en_US', "active_model": "account.invoice", "tz": False, "record_id": 3, "active_ids":
114 [ref("account_invoice_customer0")], "type": "out_invoice", "active_id": ref("account_invoice_customer0"),
118 I check that the invoice state is now Done
120 !assert {model: account.invoice, id: account_invoice_customer0}:
123 I check that an payment entry gets created in the account.move.line
125 !python {model: account.invoice}: |
126 acc_id=self.browse(cr, uid, ref("account_invoice_customer0"))
127 assert(acc_id.move_id)
129 I refund the invoice Using Refund Button
131 !record {model: account.invoice.refund, id: account_invoice_refund_0}:
132 description: Refund To China Export
133 period: account.period_5
134 filter_refund: refund
136 I clicked on refund button
138 !python {model: account.invoice.refund}: |
139 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"), })
141 I checked that a new entry with state "Draft" created in account move line