2 In order to test the 'Make Invoices' wizard of sale module in the Open-ERP,
3 I create two Sale order,group them and create invoice.
5 I create a Sale Order for Slider Mobile for qty 100 having order_policy manual.
7 !record {model: sale.order, id: sale_order_so3}:
8 date_order: !eval time.strftime('%Y-%m-%d')
9 invoice_quantity: order
14 product_uom: product.product_uom_unit
15 product_uom_qty: 100.0
18 product_id: sale.product_product_slidermobile0
19 product_uos_qty: 100.0
22 partner_id: sale.res_partner_cleartrail0
23 partner_invoice_id: sale.res_partner_address_2
24 partner_order_id: sale.res_partner_address_1
25 partner_shipping_id: sale.res_partner_address_3
26 picking_policy: direct
27 pricelist_id: product.list0
30 I confirm the Sale Order.
32 !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
34 I create a Sale Order for products Slider Mobile and LG Viewty Smart for qty 100 having order_policy manual.
36 !record {model: sale.order, id: sale_order_so4}:
37 date_order: !eval time.strftime('%Y-%m-%d')
38 invoice_quantity: order
43 product_uom: product.product_uom_unit
44 product_uom_qty: 100.0
47 product_id: sale.product_product_slidermobile0
48 product_uos_qty: 100.0
50 - name: LG Viewty Smart
52 product_uom: product.product_uom_unit
53 product_uom_qty: 100.0
56 product_id: sale.product_product_lgviewtysmart0
57 product_uos_qty: 100.0
61 partner_id: sale.res_partner_cleartrail0
62 partner_invoice_id: sale.res_partner_address_2
63 partner_order_id: sale.res_partner_address_1
64 partner_shipping_id: sale.res_partner_address_3
65 picking_policy: direct
66 pricelist_id: product.list0
69 I confirm the Sale Order.
71 !workflow {model: sale.order, action: order_confirm, ref: sale_order_so4}
73 Then I click on the "Make Invoices" button
75 !record {model: sale.make.invoice, id: sale_make_invoice_1}:
77 invoice_date: !eval time.strftime('%Y-%m-%d')
79 Then I click on the "Create Invoices" button of wizard
81 !python {model: sale.make.invoice}: |
82 self.make_invoices(cr, uid, [ref("sale_make_invoice_1")], {"lang": 'en_US', "search_default_user_id":
83 1, "tz": False, "active_model": 'sale.order', "active_ids": [ref("sale_order_so4"),ref("sale_order_so3")], "active_id":
84 ref("sale_order_so4")})
86 I verify that an invoice has been created
88 !python {model: account.invoice}: |
89 inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
90 assert inv, "Invoices has not been generated"
92 I verify that an account invoice line with origin 'Test_SO004' is created
94 !python {model: account.invoice.line}: |
95 sale_order_obj = self.pool.get('sale.order')
96 acc_inv_obj = self.pool.get('account.invoice')
97 inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
98 so = sale_order_obj.browse(cr, uid, ref("sale_order_so4"))
99 inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
100 assert inv_line, "Account invoice line has not been created"
102 I verify that an account invoice line with origin 'Test_SO003' is created
104 !python {model: account.invoice.line}: |
105 sale_order_obj = self.pool.get('sale.order')
106 acc_inv_obj = self.pool.get('account.invoice')
107 inv = acc_inv_obj.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
108 so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
109 inv_line = self.search(cr, uid, [('origin','=',so.name),('name','=','Slider Mobile'),('invoice_id','=',inv)])
110 assert inv_line, "Account invoice line has not been created"
112 I open the Invoice for the SO.
114 !python {model: account.invoice}: |
116 wf_service = netsvc.LocalService("workflow")
117 inv = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|')])
119 wf_service.trg_validate(uid, 'account.invoice',id,'invoice_open', cr)
121 I assign an analytic journal to the bank journal
123 !record {model: account.journal, id: sale.account_journal_bankjournal0}:
124 analytic_journal_id: account.cose_journal_sale
128 !python {model: account.invoice}: |
129 sale_order_obj = self.pool.get('sale.order')
130 so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
131 invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
132 self.pay_and_reconcile(cr, uid, invoice_id,
133 40000.0, ref('account.cash'), ref('account.period_5'),
134 ref('sale.account_journal_bankjournal0'), ref('account.cash'),
135 ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
138 I verify the invoice is in Paid state
140 !python {model: account.invoice}: |
141 invoice_id = self.search(cr, uid, [('origin','=','Test_SO004|Test_SO003|'),('state','=','paid')])
142 assert invoice_id, "Invoice for SO is not in done state."