[IMP] Purchase: Optimize purchase_order_cancel_draft yml
[odoo/odoo.git] / addons / purchase / test / purchase_order_cancel_draft.yml
1 -
2   In order to test to Cancel purchase order from Approved State,I start by creating a new product 'Pen Drive1'
3 -
4  !record {model: product.product, id: product_product_pendrive1}:
5     categ_id: 'product.product_category_3'
6     cost_method: standard
7     mes_type: fixed
8     name: Pen Drive
9     price_margin: 1.0
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
14     seller_delay: '1'
15     standard_price: 500.0
16     supply_method: buy
17     type: product
18     uom_id: product.product_uom_unit
19     uom_po_id: product.product_uom_unit
20     volume: 0.0
21     warranty: 0.0
22     weight: 0.0
23     weight_net: 0.0
24 -
25   Create second  new product 'Pen Drive2'
26 -
27  !record {model: product.product, id: product_product_pendrive2}:
28     categ_id: 'product.product_category_3'
29     cost_method: standard
30     mes_type: fixed
31     name: Pen Drive 2
32     price_margin: 1.0
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
37     seller_delay: '1'
38     standard_price: 500.0
39     supply_method: buy
40     type: product
41     uom_id: product.product_uom_unit
42     uom_po_id: product.product_uom_unit
43     volume: 0.0
44     warranty: 0.0
45     weight: 0.0
46     weight_net: 0.0
47 -
48   In order to test the  purchase order flow,I create a new record where "invoice_method" is From Order.
49 -
50   I create first purchase order for Pen Drive1.
51 -
52   !record {model: purchase.order, id: purchase_order_pendrive1}:
53     company_id: base.main_company
54     date_order: !eval time.strftime('%Y-%m-%d')
55     invoice_method: order
56     location_id: stock.stock_location_stock
57     order_line:
58       - date_planned: !eval time.strftime('%Y-%m-%d')
59         name: Pen Drive
60         price_unit: 100.0
61         product_id: 'product_product_pendrive1'
62         product_qty: 10.0
63         product_uom: product.product_uom_unit
64         state: draft
65     partner_address_id: base.res_partner_address_7
66     partner_id: base.res_partner_4
67     pricelist_id: purchase.list0
68 -
69   Initially  purchase order is in the draft state.
70 -
71   !assert {model: purchase.order, id: purchase_order_pendrive1}:
72     - state == 'draft'
73 -
74   I test onchanged on Wharehouse ,Product, Uom, Destination Address .
75 -
76   !python {model: purchase.order}: |
77     from tools.translate import _
78     ids = []
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])
96 -
97   I confirm the purchase order for Pen Drive1.
98 -
99   !workflow {model: purchase.order, action: purchase_confirm, ref: purchase_order_pendrive1}
100 -
101   I check that the order which was initially in the draft state has transmit to confirm state.
102 -
103   !assert {model: purchase.order, id: purchase_order_pendrive1}:
104     - state == 'approved'
105 -
106   I have to first cancel Picking of Approved Perchase order .
107 -
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)
114 -
115   Now I have to cancel confirm  purchase order for Pen Drive1.
116 -
117   !python {model: purchase.order}: |
118     from tools.translate import _
119     self.action_cancel(cr, uid, [ref("purchase_order_pendrive1")])
120 -
121   I check that the order which was in approved state has transmit to cancel state.
122 -
123   !assert {model: purchase.order, id: purchase_order_pendrive1}:
124     - state == 'cancel'
125 -
126   Now again set purchase order for Pen Drive1 to draft state.
127 -
128   !python {model: purchase.order}: |
129     from tools.translate import _
130     self.action_cancel_draft(cr, uid, [ref("purchase_order_pendrive1")])   
131 -
132   I check that the order which was in cancel state has transmit to draft state.
133 -
134   !assert {model: purchase.order, id: purchase_order_pendrive1}:
135     - state == 'draft'
136 -
137   I test for Copy and Delete Perchase order in Draft state.
138 -
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")])   
143