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 I create first purchase order for Pen Drive1 where "invoice_method" is From Order.
50 !record {model: purchase.order, id: purchase_order_pendrive1}:
51 company_id: base.main_company
52 date_order: !eval time.strftime('%Y-%m-%d')
54 location_id: stock.stock_location_stock
56 - date_planned: !eval time.strftime('%Y-%m-%d')
59 product_id: 'product_product_pendrive1'
61 product_uom: product.product_uom_unit
63 partner_address_id: base.res_partner_address_7
64 partner_id: base.res_partner_4
65 pricelist_id: purchase.list0
67 Initially purchase order is in the draft state.
69 !assert {model: purchase.order, id: purchase_order_pendrive1}:
72 I test onchanged on Wharehouse ,Product, Uom, Destination Address .
74 !python {model: purchase.order}: |
75 from tools.translate import _
76 self.onchange_warehouse_id(cr, uid, [ref("purchase_order_pendrive1")], 1)
77 part_obj = self.pool.get('res.partner')
78 price_obj = self.pool.get('product.pricelist')
79 product_obj = self.pool.get('product.product')
80 addrss_obj = self.pool.get('res.partner.address')
81 po_line_obj = self.pool.get('purchase.order.line')
82 uom_obj = self.pool.get('product.uom')
83 price_id = price_obj.search(cr, uid, [('name','=','Default Purchase Pricelist')])
84 product_id = product_obj.search(cr, uid, [('name','=','Pen Drive 2')])
85 uom_id = uom_obj.search(cr, uid, [('name','=','PCE')])
86 part_ids = part_obj.search(cr, uid, [('name','=','Distrib PC')])
87 line_id = po_line_obj.search(cr, uid, [('order_id','=',ref("purchase_order_pendrive1"))])
88 po_line_obj.product_id_change(cr, uid, line_id[0], price_id[0], product_id[0], 10, uom_id[0], part_ids[0])
89 po_line_obj.product_uom_change(cr, uid, line_id[0], price_id[0], product_id[0], 10, uom_id[0], part_ids[0])
90 address_id = addrss_obj.search(cr, uid, [('partner_id','=',part_ids)])
91 self.onchange_dest_address_id(cr, uid, [ref("purchase_order_pendrive1")], address_id[0])
93 I confirm the purchase order for Pen Drive1.
95 !workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_pendrive1}
97 I check that the order which was initially in the draft state has transmit to confirm state.
99 !assert {model: purchase.order, id: purchase_order_pendrive1}:
100 - state == 'approved'
102 I have to first cancel Picking of Approved Purchase order .
104 !python {model: stock.picking}: |
105 from tools.translate import _
106 search_ids=self.search(cr, uid, [('purchase_id', '=', ref("purchase_order_pendrive1"))])
107 self.action_cancel(cr, uid, search_ids)
109 Now I have to cancel confirm purchase order for Pen Drive1.
111 !python {model: purchase.order}: |
112 self.action_cancel(cr, uid, [ref("purchase_order_pendrive1")])
114 I check that the order which was in approved state has transmit to cancel state.
116 !assert {model: purchase.order, id: purchase_order_pendrive1}:
119 Now again set purchase order for Pen Drive1 to draft state.
121 !python {model: purchase.order}: |
122 self.action_cancel_draft(cr, uid, [ref("purchase_order_pendrive1")])
124 I check that the order is in draft state.
126 !assert {model: purchase.order, id: purchase_order_pendrive1}:
129 I test for Copy and Delete Perchase order in Draft state.
131 !python {model: purchase.order}: |
132 from tools.translate import _
133 copy_id = self.copy(cr, uid, ref("purchase_order_pendrive1"))
134 self.unlink(cr, uid, [copy_id])