2 In order to test to Cancel purchase order from Approved State,I start by creating a new product 'Pen Drive1'
4 !record {model: product.product, id: product_product_pendrive1}:
5 categ_id: 'product.product_category_3'
10 procure_method: make_to_order
11 property_stock_inventory: stock.location_inventory
12 property_stock_procurement: stock.location_procurement
13 property_stock_production: stock.location_production
18 uom_id: product.product_uom_unit
19 uom_po_id: product.product_uom_unit
25 Create second new product 'Pen Drive2'
27 !record {model: product.product, id: product_product_pendrive2}:
28 categ_id: 'product.product_category_3'
33 procure_method: make_to_order
34 property_stock_inventory: stock.location_inventory
35 property_stock_procurement: stock.location_procurement
36 property_stock_production: stock.location_production
41 uom_id: product.product_uom_unit
42 uom_po_id: product.product_uom_unit
48 In order to test the purchase order flow,I create a new record where "invoice_method" is From Order.
50 I create first purchase order for Pen Drive1.
52 !record {model: purchase.order, id: purchase_order_pendrive1}:
53 company_id: base.main_company
54 date_order: !eval time.strftime('%Y-%m-%d')
56 location_id: stock.stock_location_stock
58 - date_planned: !eval time.strftime('%Y-%m-%d')
61 product_id: 'product_product_pendrive1'
63 product_uom: product.product_uom_unit
65 partner_address_id: base.res_partner_address_7
66 partner_id: base.res_partner_4
67 pricelist_id: purchase.list0
69 Initially purchase order is in the draft state.
71 !assert {model: purchase.order, id: purchase_order_pendrive1}:
74 I test onchanged on Wharehouse ,Product, Uom, Destination Address .
76 !python {model: purchase.order}: |
77 from tools.translate import _
79 ids.append(ref("purchase_order_pendrive1"))
80 self.onchange_warehouse_id(cr, uid, ids , 1)
81 part_obj = self.pool.get('res.partner')
82 price_obj = self.pool.get('product.pricelist')
83 product_obj = self.pool.get('product.product')
84 addrss_obj = self.pool.get('res.partner.address')
85 po_line_obj = self.pool.get('purchase.order.line')
86 uom_obj = self.pool.get('product.uom')
87 price_id = price_obj.search(cr, uid, [('name','=','Default Purchase Pricelist')])
88 product_id = product_obj.search(cr, uid, [('name','=','Pen Drive 2')])
89 uom_id = uom_obj.search(cr, uid, [('name','=','PCE')])
90 part_ids = part_obj.search(cr, uid, [('name','=','Distrib PC')])
91 line_id = po_line_obj.search(cr, uid, [('order_id','=',ids[0])])
92 po_line_obj.product_id_change(cr, uid, line_id[0], price_id[0], product_id[0], 10, uom_id[0], part_ids[0])
93 po_line_obj.product_uom_change(cr, uid, line_id[0], price_id[0], product_id[0], 10, uom_id[0], part_ids[0])
94 address_id = addrss_obj.search(cr, uid, [('partner_id','=',part_ids)])
95 self.onchange_dest_address_id(cr, uid, ids, address_id[0])
97 I confirm the purchase order for Pen Drive1.
99 !workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_pendrive1}
101 I check that the order which was initially in the draft state has transmit to confirm state.
103 !assert {model: purchase.order, id: purchase_order_pendrive1}:
104 - state == 'approved'
106 I have to first cancel Picking of Approved Perchase order .
108 !python {model: stock.picking}: |
109 from tools.translate import _
110 pur_ord=self.pool.get( 'purchase.order')
111 name = pur_ord.browse(cr, uid, ref("purchase_order_pendrive1")).name
112 search_ids=self.search(cr, uid, [('origin', '=', name) ])
113 self.action_cancel(cr, uid, search_ids)
115 Now I have to cancel confirm purchase order for Pen Drive1.
117 !python {model: purchase.order}: |
118 from tools.translate import _
119 self.action_cancel(cr, uid, [ref("purchase_order_pendrive1")])
121 I check that the order which was in approved state has transmit to cancel state.
123 !assert {model: purchase.order, id: purchase_order_pendrive1}:
126 Now again set purchase order for Pen Drive1 to draft state.
128 !python {model: purchase.order}: |
129 from tools.translate import _
130 self.action_cancel_draft(cr, uid, [ref("purchase_order_pendrive1")])
132 I check that the order which was in cancel state has transmit to draft state.
134 !assert {model: purchase.order, id: purchase_order_pendrive1}:
137 I test for Copy and Delete Perchase order in Draft state.
139 !python {model: purchase.order}: |
140 from tools.translate import _
141 self.copy(cr, uid, ref("purchase_order_pendrive1"))
142 self.unlink(cr, uid, [ref("purchase_order_pendrive1")])