2 In order to test anglo_saxon Configure Different Accounts.
4 !record {model: account.account, id: account_anglo_stock_valuation_fifo}:
6 name: Stock Valuation Account- (test)
9 user_type: account.data_account_type_asset
11 Configure Stock Interim account (Received).
13 !record {model: account.account, id: account_anglo_stock_input_fifo}:
15 name: Stock Interim account (Received)
16 parent_id: account.cos
18 user_type: account.data_account_type_expense
20 Configure Stock Interim account (Delivered).
22 !record {model: account.account, id: account_anglo_stock_output_fifo}:
24 name: Stock Interim account (Delivered)
25 parent_id: account.rev
27 user_type: account.data_account_type_income
29 Configure Price difference creditor Account.
31 !record {model: account.account, id: account_anglo_price_difference_fifo}:
33 name: Price difference creditor Account
34 parent_id: account.cos
36 user_type: account.data_account_type_expense
38 Configure Cash Bank Account.
40 !record {model: account.account, id: account_anglo_cash_fifo}:
42 name: Cash/Bank Account
43 parent_id: account.cash
45 user_type: account.data_account_type_asset
47 Configure Creditor Account Payable.
49 !record {model: account.account, id: account_anglo_payable_fifo}:
51 name: Creditor Account Payable
52 parent_id: account.a_pay
54 user_type: account.data_account_type_payable
56 Configure Debtor Account Receivable.
58 !record {model: account.account, id: account_anglo_receivable_fifo}:
60 name: Debtor Account Receivable
61 parent_id: account.a_recv
63 user_type: account.data_account_type_receivable
65 Configure Cost of Good sale Account.
67 !record {model: account.account, id: account_anglo_cogs_fifo}:
69 name: Cost of goods sale account
70 parent_id: account.o_expense
72 user_type: account.data_account_type_expense
74 Configure Income Account.
76 !record {model: account.account, id: account_anglo_income_fifo}:
79 parent_id: account.o_income
81 user_type: account.data_account_type_income
83 I configure the account receivable of supplier
85 !record {model: res.partner, id: base.res_partner_3}:
86 property_account_payable: account_anglo_payable_fifo
87 property_account_receivable: account_anglo_receivable_fifo
89 I configure the account receivable of Customer.
91 !record {model: res.partner, id: base.res_partner_13}:
92 property_account_payable: account_anglo_payable_fifo
93 property_account_receivable: account_anglo_receivable_fifo
95 I configure the product category with stock valuation account.
97 !record {model: product.category, id: product.product_category_4}:
98 property_stock_valuation_account_id: account_anglo_stock_valuation_fifo
100 I create a product with required accounts, and cost method average (but same applies for fifo)
102 !record {model: product.product, id: product_fifo_anglo_saxon}:
103 name: 'FIFO product for anglo saxon tests'
106 categ_id: product.product_category_4
107 valuation: 'real_time'
108 property_account_income: account_anglo_income_fifo
109 property_account_expense: account_anglo_cogs_fifo
110 property_account_creditor_price_difference: account_anglo_price_difference_fifo
111 property_stock_account_input: account_anglo_stock_input_fifo
112 property_stock_account_output: account_anglo_stock_output_fifo
113 cost_method: 'average'
115 I create a draft Purchase Order.
117 !record {model: purchase.order, id: purchase_order_001_fifo}:
118 partner_id: base.res_partner_3
119 location_id: stock.stock_location_stock
122 - product_id: product_fifo_anglo_saxon
125 date_planned: '2013-08-31'
128 I confirm the purchase order.
130 !workflow {model: purchase.order, ref: purchase_order_001_fifo, action: purchase_confirm}
132 Reception is ready for process so now done the reception.
134 !python {model: stock.picking}: |
135 picking_id = self.pool.get('purchase.order').browse(cr, uid, ref("purchase_order_001_fifo")).picking_ids[0]
136 picking_id.do_transfer(context=context)
138 I check the Stock Interim account (Received) is credit successfully.
140 !assert {model: account.account, id : account_anglo_stock_input_fifo, string : Stock Interim account (Received) is not credited successfully.}:
143 I check the Stock valuation account is debit sucessfully.
145 !assert {model: account.account, id : account_anglo_stock_valuation_fifo, string : Stock valuation account is not debited successfully.}:
148 I Validate Invoice of Purchase Order after having changed the price to 10.
150 !python {model: purchase.order}: |
151 invoice_ids = [x.id for x in self.browse(cr, uid, ref("purchase_order_001_fifo")).invoice_ids]
152 line_ids = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id', 'in', invoice_ids)])
153 self.pool.get('account.invoice.line').write(cr, uid, line_ids, {'price_unit': 10})
154 self.pool.get('account.invoice').signal_invoice_open(cr, uid, invoice_ids)
156 I check the Stock Interim account (Received) is debited sucessfully when Invoice validated.
158 !assert {model: account.account, id : account_anglo_stock_input_fifo, string : Stock Interim account (Received) is not debited successfully.}:
161 I check the Price difference creditor Account is debited sucessfully when Invoice validated.
163 !assert {model: account.account, id : account_anglo_price_difference_fifo, string : Price difference creditor Account is not debited successfully.}:
166 I check Payable(creditor) Account is Credited sucessfully when Invoice validated.
168 !assert {model: account.account, id : account_anglo_payable_fifo, string : Payable(creditor) Account is not Credited successfully.}:
173 !python {model: purchase.order}: |
174 invoice_ids = self.browse(cr, uid, ref("purchase_order_001_fifo")).invoice_ids
175 order = self.browse(cr, uid, ref("purchase_order_001_fifo"))
176 journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', order.company_id.id)], limit=1)
177 for invoice in invoice_ids:
178 invoice.pay_and_reconcile(invoice.amount_total, ref('account_anglo_cash_fifo'), ref('account.period_8'), journal_ids[0], ref('account_anglo_cash_fifo'), ref('account.period_8'), journal_ids[0], name='test')
180 I check Payable(Creditors) Account is Debited sucessfully after invoice paid.
182 !assert {model: account.account, id : account_anglo_payable_fifo, string : Payable(Creditors) Account is not Debited successfully.}:
185 I check Bank/Cash account is credited sucessfully after invoice paid.
187 !assert {model: account.account, id : account_anglo_cash_fifo, string: Bank/Cash account is not credited successfully.}:
190 I create an Outgoing Picking order
192 !record {model: stock.picking, id: stock_picking_out001_fifo}:
193 partner_id: base.res_partner_13
195 - company_id: base.main_company
196 location_id: stock.stock_location_stock
197 product_id: product_fifo_anglo_saxon
199 location_dest_id: stock.stock_location_customers
200 invoice_state: 2binvoiced
202 picking_type_id: stock.picking_type_out
204 I need to check the availability of the product, So I make my picking order for processing later.
206 !python {model: stock.picking}: |
207 self.action_confirm(cr, uid, [ref('stock_picking_out001_fifo')], context=context)
209 I check the product availability, Product is available in the stock and ready to be sent.
211 !python {model: stock.picking}: |
212 picking = self.browse(cr, uid, ref("stock_picking_out001_fifo"))
213 assert picking.state == "confirmed", "Picking should be confirmed."
214 for move_line in picking.move_lines:
215 assert move_line.state == "confirmed", "Move should be confirmed."
217 I process the delivery.
219 !python {model: stock.picking}: |
220 picking = self.pool.get('stock.picking').browse(cr, uid, ref("stock_picking_out001_fifo"))
221 picking.do_transfer(context=context)
223 I check Stock Interim account (Delivery) is debited successfully.
225 !assert {model: account.account, id : account_anglo_stock_output_fifo, string : Stock Interim account (Delivery) is not debited successfully.}:
228 I check the Stock valuation account is credited sucessfully.
230 !assert {model: account.account, id : account_anglo_stock_valuation_fifo, string : Stock valuation account is not credited successfully.}:
233 As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
235 !python {model: stock.invoice.onshipping}: |
237 wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-03-04'), 'journal_id': ref('account.sales_journal')},
238 {'active_ids': [ref("stock_picking_out001_fifo")], "active_model": "stock.picking"})
239 self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
240 "search_default_available": 1, "tz": False, "active_model": "stock.picking",
241 "contact_display": "partner", "active_ids": [ref("stock_picking_out001_fifo")], "active_id": ref("stock_picking_out001_fifo")})
243 I check that the customer invoice is created successfully.
245 !python {model: account.invoice}: |
246 partner_id = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001_fifo')).partner_id.id
247 inv_ids = self.search(cr, uid, [('type','=','out_invoice'),('partner_id','=',partner_id)])
248 assert inv_ids, 'No Invoice is generated!'
252 !python {model: stock.picking}: |
253 move_name = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001_fifo')).name
254 account_invoice = self.pool.get('account.invoice').search(cr, uid, [('origin', '=', move_name)])
255 account_invoice_line = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id', 'in', account_invoice)])
256 self.pool.get('account.invoice.line').write(cr, uid, account_invoice_line, {'invoice_line_tax_id': [(6, 0, [])]})
257 self.pool.get('account.invoice').button_reset_taxes(cr, uid, account_invoice)
258 self.pool.get('account.invoice').signal_invoice_open(cr, uid, account_invoice)
260 I check Income Account is Credited sucessfully when Invoice validated.
262 !assert {model: account.account, id : account_anglo_income_fifo, string : Income Account is not Credited successfully.}:
265 I check Cost of goods sold account for debit.
267 !assert {model: account.account, id : account_anglo_cogs_fifo, string : Cost of goods sale is not Debited successfully.}:
270 I check Stock Interim account (Delivery)
272 !assert {model: account.account, id : account_anglo_stock_output_fifo, string : Stock Interim account (Delivery) is not credited successfully.}:
275 I check Receivable(Debtor) Account for debit.
277 !assert {model: account.account, id : account_anglo_receivable_fifo, string : Receivable(Debtors) Account is not Debited successfully.}:
282 !python {model: account.invoice}: |
283 move_name = self.pool.get('stock.picking').browse(cr, uid, ref('stock_picking_out001_fifo')).name
284 account_invoice= self.pool.get('account.invoice').search(cr, uid, [('origin', '=', move_name)])
285 journal_ids = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash')], limit=1)
286 pay = self.pay_and_reconcile(cr, uid, account_invoice,
287 20.0, ref('account_anglo_cash_fifo'), ref('account.period_8'),
288 journal_ids[0], ref('account_anglo_cash_fifo'),
289 ref('account.period_8'), journal_ids[0],
290 name='Payment for test customer invoice')
291 assert (pay == True), "Incorrect Payment."
293 I check Receivable(Debtor) Account for credit.
295 !assert {model: account.account, id : account_anglo_receivable_fifo, string : Receivable(Debtors) Account is not Credited successfully.}:
298 I check Bank/Cash account is debited sucessfully after invoice paid.
300 !assert {model: account.account, id : account_anglo_cash_fifo, string: Bank/Cash account is not successfully credited.}: