[FIX] sale,stock_location: Fixed runbot errors.
[odoo/odoo.git] / addons / sale / test / so_make_line_invoice.yml
1 -
2   In order to test the invoices based on sale order lines of sales module in OpenERP
3   I create a Sale Order for two products LG Viewty Smart and Slider mobile for qty 100 having order_policy manual.
4 -
5   !record {model: sale.order, id: sale_order_so3}:
6     date_order: !eval time.strftime('%Y-%m-%d')
7     invoice_quantity: order
8     name: Test_SO003
9     order_line:
10       - name: Slider Mobile
11         sequence: 1
12         price_unit: 200.0
13         product_uom: product.product_uom_unit
14         product_uom_qty: 100.0
15         state: draft
16         delay: 7.0
17         product_id: sale.product_product_slidermobile0
18         product_uos_qty: 100.0
19         type: make_to_order
20       - name: LG Viewty Smart
21         price_unit: 170.0
22         sequence: 2
23         product_uom: product.product_uom_unit
24         product_uom_qty: 100.0
25         state: draft
26         delay: 7.0
27         product_id: sale.product_product_lgviewtysmart0
28         product_uos_qty: 100.0
29         th_weight: 0.0
30         type: make_to_order
31     order_policy: manual
32     partner_id: sale.res_partner_cleartrail0
33     partner_invoice_id: sale.res_partner_address_2
34     partner_order_id: sale.res_partner_address_1
35     partner_shipping_id: sale.res_partner_address_3
36     picking_policy: direct
37     pricelist_id: product.list0
38     shop_id: sale.shop
39 -
40   I confirm the Sale Order.
41 -
42   !workflow {model: sale.order, action: order_confirm, ref: sale_order_so3}
43 -
44   I click on the "Make Invoice" button of sale order line
45 -
46   !record {model: sale.order.line.make.invoice, id: sale_order_line_make_invoice_0}:
47     {}
48 -
49   I click on the "Create Invoice" button of wizard
50 -
51   !python {model: sale.order.line.make.invoice}: |
52     sale_order_obj = self.pool.get('sale.order')
53     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
54     sol = so.order_line[0]
55     self.make_invoices(cr, uid, [ref("sale_order_line_make_invoice_0")], {"lang": "en_US",
56       "tz": False, "active_model": "sale.order.line", "active_ids": [sol.id],
57       "search_default_uninvoiced": 1, "active_id": sol.id,
58       })
59 -
60   I verify that "Invoiced" has been set to True.
61 -
62   !python {model: sale.order}: |
63     sale_id=self.browse(cr, uid, ref("sale_order_so3"))
64     sol = sale_id.order_line[0]
65     assert(sol.invoiced == True), "Invoiced has not been set to true"
66 -
67   I verify that an invoice for sale order line has been created.
68 -
69   !python {model: sale.order}: |
70     so = self.browse(cr, uid, ref("sale_order_so3"))
71     assert so.invoice_ids, "Invoices has not been generated for sale_order_so3"
72 -
73   I click on the Create button of invoice
74 -
75   !python {model: account.invoice}: |
76     sale_order_obj = self.pool.get('sale.order')
77     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
78     import netsvc
79     wf_service = netsvc.LocalService("workflow")
80     invoice_ids = so.invoice_ids
81     for invoice in invoice_ids:
82       wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
83 -
84   I verify that an invoice state has transit from draft to open state
85 -
86   !python {model: account.invoice}: |
87     sale_order_obj = self.pool.get('sale.order')
88     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
89     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
90     assert invoice_id, "Invoice is not in the open state"
91 -
92   I assign an analytic journal to the bank journal
93 -
94   !record {model: account.journal, id: sale.account_journal_bankjournal0}:
95     analytic_journal_id: account.cose_journal_sale
96 -
97   I pay the invoice
98 -
99   !python {model: account.invoice}: |
100     sale_order_obj = self.pool.get('sale.order')
101     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
102     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
103     self.pay_and_reconcile(cr, uid, invoice_id,
104         20000.0, ref('account.cash'), ref('account.period_8'),
105         ref('sale.account_journal_bankjournal0'), ref('account.cash'),
106         ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
107         name='test')
108 -
109   I verify that an invoice is in done state.
110 -
111   !python {model: account.invoice}: |
112     sale_order_obj = self.pool.get('sale.order')
113     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
114     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
115     assert invoice_id, "Invoice for SO is not in done state."
116 -
117   I verify that Paid has been set to true.
118 -
119   !python {model: sale.order}: |
120     sale_id=self.browse(cr, uid, ref("sale_order_so3"))
121     assert(sale_id.invoiced == True), "Paid has not been set to true"
122 -
123   I create an invoice for another sale order line. I click on the "Make Invoice" button of sale order line
124 -
125   !record {model: sale.order.line.make.invoice, id: sale_order_line_make_invoice_1}:
126     {}
127 -
128   I click on the "Create Invoice" button of wizard
129 -
130   !python {model: sale.order.line.make.invoice}: |
131     sale_order_obj = self.pool.get('sale.order')
132     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
133     sol = so.order_line[1]
134     self.make_invoices(cr, uid, [ref("sale_order_line_make_invoice_1")], {"lang": "en_US",
135       "tz": False, "active_model": "sale.order.line", "active_ids": [sol.id],
136       "search_default_uninvoiced": 1, "active_id": sol.id,
137       })
138 -
139   I verify that invoice for sale order line has been created.
140 -
141   !python {model: sale.order}: |
142     so = self.browse(cr, uid, ref("sale_order_so3"))
143     assert so.invoice_ids[1], "Invoices has not been generated for sale_order_so3"
144 -
145   I verify that "Invoiced" has been set to True.
146 -
147   !python {model: sale.order}: |
148     sale_id=self.browse(cr, uid, ref("sale_order_so3"))
149     sol = sale_id.order_line[1]
150     assert(sol.invoiced == True), "Invoiced has not been set to true"
151 -
152   I verify that "Paid" has been set to False.
153 -
154   !python {model: sale.order}: |
155     sale_id=self.browse(cr, uid, ref("sale_order_so3"))
156     assert(sale_id.invoiced == False), "Paid has not been set to true"
157 -
158   I open the Invoice for the SO.
159 -
160   !python {model: account.invoice}: |
161     sale_order_obj = self.pool.get('sale.order')
162     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
163     import netsvc
164     wf_service = netsvc.LocalService("workflow")
165     invoice_ids = so.invoice_ids
166     for invoice in invoice_ids:
167       wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
168 -
169   I verify that an invoice state has transit from draft to open state
170 -
171   !python {model: account.invoice}: |
172     sale_order_obj = self.pool.get('sale.order')
173     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
174     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
175     assert invoice_id, "Invoice is not in the open state"
176 -
177   Assign analytic journal into bank journal
178 -
179   !record {model: account.journal, id: sale.account_journal_bankjournal0}:
180     analytic_journal_id: account.cose_journal_sale
181 -
182   I pay the invoice
183 -
184   !python {model: account.invoice}: |
185     sale_order_obj = self.pool.get('sale.order')
186     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
187     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','open')])
188     self.pay_and_reconcile(cr, uid, invoice_id,
189         17000.0, ref('account.cash'), ref('account.period_8'),
190         ref('sale.account_journal_bankjournal0'), ref('account.cash'),
191         ref('account.period_8'), ref('sale.account_journal_bankjournal0'),
192         name='test')
193 -
194   I verify the invoice is in done state.
195 -
196   !python {model: account.invoice}: |
197     sale_order_obj = self.pool.get('sale.order')
198     so = sale_order_obj.browse(cr, uid, ref("sale_order_so3"))
199     invoice_id = self.search(cr, uid, [('origin','=',so.name),('state','=','paid')])
200     assert invoice_id, "Invoice for SO is not in done state."
201 -
202   I verify that Paid has been set to true.
203 -
204   !python {model: sale.order}: |
205     sale_id=self.browse(cr, uid, ref("sale_order_so3"))
206     assert(sale_id.invoiced == True), "Paid has not been set to true"