2 In order to test the sale_mrp module in OpenERP,I start by creating a new product 'Slider Mobile'
4 I define product category Mobile Products Sellable.
6 !record {model: product.category, id: product_category_allproductssellable0}:
7 name: Mobile Products Sellable
9 I define product category Mobile Services.
11 !record {model: product.category, id: product_category_services0}:
14 I define product template for Slider Mobile.
16 !record {model: product.template, id: product_template_slidermobile0}:
17 categ_id: product_category_allproductssellable0
22 procure_method: make_to_order
24 supply_method: produce
26 uom_id: product.product_uom_unit
27 uom_po_id: product.product_uom_unit
29 I define a product Slider Mobile
31 !record {model: product.product, id: product_product_slidermobile0}:
32 categ_id: product_category_allproductssellable0
37 procure_method: make_to_order
41 name: base.res_partner_agrolait
45 supply_method: produce
47 uom_id: product.product_uom_unit
48 uom_po_id: product.product_uom_unit
50 I create a Bill of Material record for Slider Mobile
52 !record {model: mrp.bom, id: mrp_bom_slidermobile0}:
53 company_id: base.main_company
55 product_efficiency: 1.0
56 product_id: product_product_slidermobile0
58 product_uom: product.product_uom_unit
63 I create a sale order for product Slider mobile
65 !record {model: sale.order, id: sale_order_so0}:
66 client_order_ref: ref1
67 date_order: !eval time.strftime('%Y-%m-%d')
68 invoice_quantity: order
73 product_uom: product.product_uom_unit
74 product_uom_qty: 500.0
77 product_id: product_product_slidermobile0
78 product_uos_qty: 500.0
81 partner_id: base.res_partner_4
82 partner_invoice_id: base.res_partner_address_7
83 partner_order_id: base.res_partner_address_7
84 partner_shipping_id: base.res_partner_address_7
85 picking_policy: direct
86 pricelist_id: product.list0
89 I confirm the sale order
91 !workflow {model: sale.order, action: order_confirm, ref: sale_order_so0}
93 I verify that a procurement has been generated for sale order
95 !python {model: procurement.order}: |
96 from tools.translate import _
97 sale_order_obj = self.pool.get('sale.order')
98 so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
99 proc_ids = self.search(cr, uid, [('origin','=',so.name)])
100 assert proc_ids, _('No Procurements!')
102 Then I click on the "Run Procurement" button
104 !python {model: procurement.order}: |
105 sale_order_obj = self.pool.get('sale.order')
106 so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
108 wf_service = netsvc.LocalService("workflow")
109 proc_ids = self.search(cr, uid, [('origin','=',so.name)])
110 for proc in proc_ids:
111 wf_service.trg_validate(uid, 'procurement.order',proc,'button_check', cr)
113 I verify that a procurement state is "running"
115 !python {model: procurement.order}: |
116 sale_order_obj = self.pool.get('sale.order')
117 so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
118 proc_ids = self.search(cr, uid, [('origin','=',so.name) and ('state','=','running')])
119 assert proc_ids, _('Procurement is not in the running state!')
121 I verify that a manufacturing order has been generated
123 !python {model: sale.order}: |
124 so = self.browse(cr, uid, ref("sale_order_so0"))
125 mnf_obj=self.pool.get('mrp.production')
126 mnf_id=mnf_obj.search(cr, uid, [('origin','=',so.name)])
127 assert mnf_id, _('Manufacturing order has not been generated')
129 I verify that a 'Sale Name' field of Manufacturing order gets bind with the value
131 !python {model: sale.order}: |
132 so = self.browse(cr, uid, ref("sale_order_so0"))
133 mnf_obj=self.pool.get('mrp.production')
134 mnf_id=mnf_obj.search(cr, uid, [('sale_name','=',so.name)])
135 assert mnf_id, _('Sale Name is not bind with the value')
137 I verify that a 'Sale Reference' field of Manufacturing order gets bind with the value
139 !python {model: sale.order}: |
140 so = self.browse(cr, uid, ref("sale_order_so0"))
141 mnf_obj=self.pool.get('mrp.production')
142 mnf_id=mnf_obj.search(cr, uid, [('sale_ref','=',so.client_order_ref)])
143 assert mnf_id, _('Sale Reference is not bind with the value')