From d5fbd757cff656feebfc8ebfd95ad7a1b465f04c Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 2 Dec 2011 16:02:03 +0530 Subject: [PATCH 01/17] [ADD]procurement: Create test folder for testcases bzr revid: dbr@tinyerp.com-20111202103203-09ekd8ak3hkxq96t --- addons/procurement/test/procurement.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/procurement/test/procurement.yml diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml new file mode 100644 index 00000000000..e69de29bb2d From 710056298daeee1070ecfdff07ae26a0066b7810 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 2 Dec 2011 16:10:30 +0530 Subject: [PATCH 02/17] [IMP]procurement: Improve code bzr revid: dbr@tinyerp.com-20111202104030-m4c4g238ui3phe22 --- addons/procurement/test/procurement.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index e69de29bb2d..36d543bfab4 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -0,0 +1,25 @@ +- + For test the procurement module, First I have to check current product quantity. +- + !python {model: product.product}: | + product = self.browse(cr, uid, ref('product.product_product_cpu2')) + assert product.virtual_available < 5.0,'Virtual stock have more quantities. so, not possible to check minimum stock rule process' +- + I create minimum stock rule for product CPU2. +- + !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}: + company_id: base.main_company + location_id: stock.stock_location_stock + logic: max + name: OP/00008 + product_id: product.product_product_cpu2 + product_max_qty: 15.0 + product_min_qty: 5.0 + product_uom: product.product_uom_kgm + qty_multiple: 1 + warehouse_id: stock.warehouse0 +- + I run the scheduler. +- + !python {model: procurement.order}: | + self.run_scheduler(cr, uid) From b5041353a81f0fd8412c735b1e4005b57f6acc5a Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 2 Dec 2011 16:29:51 +0530 Subject: [PATCH 03/17] [IMP]procurement: Update __openerp__.py bzr revid: dbr@tinyerp.com-20111202105951-ghnsax9sf0avmzaa --- addons/procurement/__openerp__.py | 1 + addons/procurement/test/procurement.yml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index 87a766a009f..4659de1cb39 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -59,6 +59,7 @@ depending on the product's configuration. 'board_mrp_procurement_view.xml', ], 'demo_xml': ['stock_orderpoint.xml'], + 'test': ['test/procurement.yml'], 'installable': True, 'active': False, 'certificate': '00954248826881074509', diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index 36d543bfab4..4721d99f297 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -23,3 +23,5 @@ - !python {model: procurement.order}: | self.run_scheduler(cr, uid) + + From cb61893f4018126c872ba7a216c18e7c42a7c484 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 2 Dec 2011 17:31:34 +0530 Subject: [PATCH 04/17] [IMP]procurement: Improve test cases bzr revid: dbr@tinyerp.com-20111202120134-ifn5tckbly6btuc5 --- addons/procurement/test/procurement.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index 4721d99f297..a1d64b422c6 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -23,5 +23,18 @@ - !python {model: procurement.order}: | self.run_scheduler(cr, uid) - +- + I check that procurement order created. +- + !python {model: procurement.order}: | + proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))]) + assert proc_ids, 'No Procurement created.' + proc_order = self.browse(cr, uid, proc_ids) + assert proc_order[0].product_qty == 15.0,"Procurement order is not corresponded to product quantities" +- + I check product quantity. +- + !python {model: product.product}: | + product = self.browse(cr, uid, ref('product.product_product_cpu2')) + assert product.virtual_available >= 5.0,"After run the scheduler the product virtual stock still not update as specified in stock rule" From 60a23d43439e0b06ed96647b77ed1beb94f2cac3 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 2 Dec 2011 17:52:29 +0530 Subject: [PATCH 05/17] [IMP]procurement: Improve the statements of yml file bzr revid: dbr@tinyerp.com-20111202122229-ffw1k1u5n89n6mrg --- addons/procurement/test/procurement.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index a1d64b422c6..e69a14c5fd6 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -30,11 +30,11 @@ proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))]) assert proc_ids, 'No Procurement created.' proc_order = self.browse(cr, uid, proc_ids) - assert proc_order[0].product_qty == 15.0,"Procurement order is not corresponded to product quantities" + assert proc_order[0].product_qty == 15.0,"Procurement product quantity is not corresponded." - I check product quantity. - !python {model: product.product}: | product = self.browse(cr, uid, ref('product.product_product_cpu2')) - assert product.virtual_available >= 5.0,"After run the scheduler the product virtual stock still not update as specified in stock rule" + assert product.virtual_available >= 5.0,"After run the scheduler product's virtual stock is not updated." From e895fabfcae288a63f9bf477bed6915df73d5785 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 12 Dec 2011 11:20:44 +0530 Subject: [PATCH 06/17] [IMP]procurement: Remove StockMove class bzr revid: dbr@tinyerp.com-20111212055044-jk9mcq8refgs2agg --- addons/procurement/procurement.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 9556b1aa081..1d1fb6f012d 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -61,20 +61,6 @@ class mrp_property(osv.osv): } mrp_property() -class StockMove(osv.osv): - _inherit = 'stock.move' - - _columns= { - 'procurements': fields.one2many('procurement.order', 'move_id', 'Procurements'), - } - - def copy(self, cr, uid, id, default=None, context=None): - default = default or {} - default['procurements'] = [] - return super(StockMove, self).copy(cr, uid, id, default, context=context) - -StockMove() - class procurement_order(osv.osv): """ Procurement Orders From 8e7b9d4e335b21beda1ab08cde89db40eb70c0fc Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 12 Dec 2011 12:39:08 +0530 Subject: [PATCH 07/17] [ADD,IMP]procurement: Add new yml file for define the process of make procurement wizard. Improve the __openerp__.py for this addition. bzr revid: dbr@tinyerp.com-20111212070908-qd4889oiputnemuj --- addons/procurement/__openerp__.py | 4 +++- addons/procurement/test/procurement.yml | 3 +-- .../procurement/test/procurement_request.yml | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 addons/procurement/test/procurement_request.yml diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index 4659de1cb39..689d0d64732 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -59,7 +59,9 @@ depending on the product's configuration. 'board_mrp_procurement_view.xml', ], 'demo_xml': ['stock_orderpoint.xml'], - 'test': ['test/procurement.yml'], + 'test': ['test/procurement.yml', + 'test/procurement_request.yml' + ], 'installable': True, 'active': False, 'certificate': '00954248826881074509', diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index e69a14c5fd6..9e249040890 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -12,7 +12,7 @@ location_id: stock.stock_location_stock logic: max name: OP/00008 - product_id: product.product_product_cpu2 + product_id: product.product_product_cpu2 product_max_qty: 15.0 product_min_qty: 5.0 product_uom: product.product_uom_kgm @@ -37,4 +37,3 @@ !python {model: product.product}: | product = self.browse(cr, uid, ref('product.product_product_cpu2')) assert product.virtual_available >= 5.0,"After run the scheduler product's virtual stock is not updated." - diff --git a/addons/procurement/test/procurement_request.yml b/addons/procurement/test/procurement_request.yml new file mode 100644 index 00000000000..20ee370b976 --- /dev/null +++ b/addons/procurement/test/procurement_request.yml @@ -0,0 +1,22 @@ +- + For test the Procurement Request wizard, First I have to update product quantity. +- + !python {model: product.product}: | + mk_procure = self.pool.get('make.procurement') + procur_order = self.pool.get('procurement.order') + product = self.browse(cr, uid, ref('product.product_product_hdd3')) + + context.update({'active_model': 'product.product','active_id':ref('product.product_product_hdd3')}) + values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) + values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) + + ids = mk_procure.create(cr, uid, values, context) + procurement = mk_procure.make_procurement(cr, uid, [ids], context) + assert product.virtual_available >= 5.0,'Virtual stock should be updated' + + proc_id = procurement.get('res_id') + procurements = procur_order.browse(cr, uid, [proc_id])[0] + assert procurements.product_id.id == ref('product.product_product_hdd3'),"product is not correspond." + assert procurements.product_qty >= 5,"product Quantity is not correspond." + assert procurements.state == 'confirmed',"Procurement sytate should be in 'Confirmed'." + assert procurements.product_uom.id == ref('product.product_uom_unit'),"product's UOM is not correspond." From 59027d2042cb15f264f932993177a2c3343f075e Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 12 Dec 2011 14:48:46 +0530 Subject: [PATCH 08/17] [IMP]procurement: Improve the procurement_request.yml file. bzr revid: dbr@tinyerp.com-20111212091846-w9187iliiatgt60d --- .../procurement/test/procurement_request.yml | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/addons/procurement/test/procurement_request.yml b/addons/procurement/test/procurement_request.yml index 20ee370b976..a5a09b7e182 100644 --- a/addons/procurement/test/procurement_request.yml +++ b/addons/procurement/test/procurement_request.yml @@ -16,7 +16,21 @@ proc_id = procurement.get('res_id') procurements = procur_order.browse(cr, uid, [proc_id])[0] - assert procurements.product_id.id == ref('product.product_product_hdd3'),"product is not correspond." - assert procurements.product_qty >= 5,"product Quantity is not correspond." - assert procurements.state == 'confirmed',"Procurement sytate should be in 'Confirmed'." - assert procurements.product_uom.id == ref('product.product_uom_unit'),"product's UOM is not correspond." + assert procurements.product_id.id == ref('product.product_product_hdd3'),"Product is not correspond." + assert procurements.product_qty >= 5,"Product Quantity is not correspond." + assert procurements.state == 'confirmed',"Procurement state should be 'Confirmed'." + assert procurements.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." + context.update({'proc': proc_id}) +- + I run the scheduler. +- + !python {model: procurement.order}: | + self.run_scheduler(cr, uid) +- + I check the current state of procurement. +- + !python {model: procurement.order}: | + proc_id = context.get('proc') + proc = self.browse(cr, uid, [proc_id])[0] + assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" + From 81c58589d54830b9c56275cf99ea6f39da08a82c Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 12 Dec 2011 18:07:28 +0530 Subject: [PATCH 09/17] [IMP]procurement: Improve code bzr revid: dbr@tinyerp.com-20111212123728-s10c2tsxehi4463r --- addons/procurement/__openerp__.py | 3 +- addons/procurement/test/all_schedular.yml | 47 +++++++++++++++++++ .../procurement/test/procurement_request.yml | 11 ++++- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 addons/procurement/test/all_schedular.yml diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index 689d0d64732..484033f26aa 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -60,7 +60,8 @@ depending on the product's configuration. ], 'demo_xml': ['stock_orderpoint.xml'], 'test': ['test/procurement.yml', - 'test/procurement_request.yml' + 'test/procurement_request.yml', + 'test/all_schedular.yml' ], 'installable': True, 'active': False, diff --git a/addons/procurement/test/all_schedular.yml b/addons/procurement/test/all_schedular.yml new file mode 100644 index 00000000000..2f45c52eee6 --- /dev/null +++ b/addons/procurement/test/all_schedular.yml @@ -0,0 +1,47 @@ +- + For test the procurement module, First I have to update quantity. +- + !python {model: product.product}: | + product = self.browse(cr, uid, ref('product.product_product_pc2')) + assert product.virtual_available >= 0.0,'Virtual stock have more quantities than zero.' +- + I create minimum stock rule for product PC2. +- + !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}: + company_id: base.main_company + location_id: stock.stock_location_stock + logic: max + name: OP/000008 + product_id: product.product_product_pc2 + product_max_qty: 15.0 + product_min_qty: 5.0 + product_uom: product.product_uom_kgm + qty_multiple: 1 + warehouse_id: stock.warehouse0 +- + I run the scheduler. +- + !python {model: product.product}: | + mk_procure = self.pool.get('make.procurement') + procur_order = self.pool.get('procurement.order') + product = self.browse(cr, uid, ref('product.product_product_pc2')) + + context.update({'active_model': 'product.product','active_id':ref('product.product_product_pc2')}) + values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) + values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) + + ids = mk_procure.create(cr, uid, values, context) + procurement = mk_procure.make_procurement(cr, uid, [ids], context) + if product.virtual_available >= 5.0: + proc_id = procurement.get('res_id') + procurements = procur_order.browse(cr, uid, [proc_id])[0] + obj = self.pool.get('procurement.orderpoint.compute') + val = obj.default_get(cr, uid, ['automatic'], context) + val.update({'automatic': True}) + new_id = obj.create(cr, uid, val, context) + a = obj.procure_calculation(cr, uid, [proc_id], context) + print a + else: + pass + + diff --git a/addons/procurement/test/procurement_request.yml b/addons/procurement/test/procurement_request.yml index a5a09b7e182..a89afa0b9b3 100644 --- a/addons/procurement/test/procurement_request.yml +++ b/addons/procurement/test/procurement_request.yml @@ -33,4 +33,13 @@ proc_id = context.get('proc') proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" - +- + I compute minimum stock . +- + !python {model: procurement.orderpoint.compute}: | + proc_id = context.get('proc') + context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) + values = self.default_get(cr, uid, ['automatic'], context) + ids = self.create(cr, uid, values, context) + a = self.procure_calculation(cr, uid, [ids], context) + print"========================================",a From c8348da50c3ce0d5b8f04e1f2ee3bcc439fe5056 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 12 Dec 2011 18:10:35 +0530 Subject: [PATCH 10/17] [IMP] remove print statment bzr revid: dbr@tinyerp.com-20111212124035-50lois3646zk0x0b --- addons/procurement/test/procurement_request.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/procurement/test/procurement_request.yml b/addons/procurement/test/procurement_request.yml index a89afa0b9b3..2a72cb6974d 100644 --- a/addons/procurement/test/procurement_request.yml +++ b/addons/procurement/test/procurement_request.yml @@ -41,5 +41,4 @@ context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) values = self.default_get(cr, uid, ['automatic'], context) ids = self.create(cr, uid, values, context) - a = self.procure_calculation(cr, uid, [ids], context) - print"========================================",a + self.procure_calculation(cr, uid, [ids], context) From fde0d813ac809d97d0712e2409a72b0eb327ceab Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Wed, 14 Dec 2011 17:11:35 +0530 Subject: [PATCH 11/17] [IMP]procurement bzr revid: dbr@tinyerp.com-20111214114135-nmwsv47mu3zsaic6 --- addons/procurement/test/all_schedular.yml | 38 +++++++++++++---------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/addons/procurement/test/all_schedular.yml b/addons/procurement/test/all_schedular.yml index 2f45c52eee6..12b5af874a5 100644 --- a/addons/procurement/test/all_schedular.yml +++ b/addons/procurement/test/all_schedular.yml @@ -14,7 +14,7 @@ name: OP/000008 product_id: product.product_product_pc2 product_max_qty: 15.0 - product_min_qty: 5.0 + product_min_qty: 1.0 product_uom: product.product_uom_kgm qty_multiple: 1 warehouse_id: stock.warehouse0 @@ -28,20 +28,26 @@ context.update({'active_model': 'product.product','active_id':ref('product.product_product_pc2')}) values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) - values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) - + values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 1}) ids = mk_procure.create(cr, uid, values, context) procurement = mk_procure.make_procurement(cr, uid, [ids], context) - if product.virtual_available >= 5.0: - proc_id = procurement.get('res_id') - procurements = procur_order.browse(cr, uid, [proc_id])[0] - obj = self.pool.get('procurement.orderpoint.compute') - val = obj.default_get(cr, uid, ['automatic'], context) - val.update({'automatic': True}) - new_id = obj.create(cr, uid, val, context) - a = obj.procure_calculation(cr, uid, [proc_id], context) - print a - else: - pass - - + + assert product.virtual_available >= 1.0,'Virtual stock should be updated' + + proc_id = procurement.get('res_id') + procurements = procur_order.browse(cr, uid, [proc_id])[0] + assert procurements.product_id.id == ref('product.product_product_pc2'),"Product is not correspond." + assert procurements.product_qty >= 1,"Product Quantity is not correspond." + assert procurements.state == 'confirmed',"Procurement state should be 'Confirmed'." + assert procurements.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." + context.update({'proc': proc_id}) +- + I Compute Minimum Stock. +- + !python {model: procurement.orderpoint.compute}: | + proc_id = context.get('proc') + context.update({'active_model':'procurement.order','active_id':proc_id}) + values = self.default_get(cr, uid, ['automatic'], context) + values.update({'automatic':True}) + ids = self.create(cr, uid, values, context) + self.procure_calculation(cr, uid, [ids], context) From 2d09b6f6641df2b060c12ec124325f56c7f8a0d5 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Thu, 15 Dec 2011 12:01:48 +0530 Subject: [PATCH 12/17] [RMV,IMP] procurement: Remove procurement_request.yml Improve procurement.yml with code of procurement_request.yml Update __openerp__.py bzr revid: dbr@tinyerp.com-20111215063148-48r1v3sd368ivc4h --- addons/procurement/__openerp__.py | 3 +- addons/procurement/test/procurement.yml | 64 +++++++++++++++++-- .../procurement/test/procurement_request.yml | 44 ------------- 3 files changed, 61 insertions(+), 50 deletions(-) delete mode 100644 addons/procurement/test/procurement_request.yml diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index 6b9f441b069..4721bee26c1 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -60,8 +60,7 @@ depending on the product's configuration. ], 'demo_xml': ['stock_orderpoint.xml'], 'test': ['test/procurement.yml', - 'test/procurement_request.yml', - 'test/all_schedular.yml' + #'test/all_schedular.yml' ], 'installable': True, 'active': False, diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index 9e249040890..94b297d50f7 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -3,7 +3,7 @@ - !python {model: product.product}: | product = self.browse(cr, uid, ref('product.product_product_cpu2')) - assert product.virtual_available < 5.0,'Virtual stock have more quantities. so, not possible to check minimum stock rule process' + assert product.virtual_available <= 0.0,'Virtual stock have more quantities. so, not possible to check minimum stock rule process' - I create minimum stock rule for product CPU2. - @@ -18,6 +18,15 @@ product_uom: product.product_uom_kgm qty_multiple: 1 warehouse_id: stock.warehouse0 +- + I update product quantity and check the stock moves are properly done or not. +- + !python {model: product.product}: | + change_qty = self.pool.get('stock.change.product.qty') + product = self.browse(cr, uid, ref('product.product_product_cpu2')) + ids = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id}) + change_qty.change_product_qty(cr, uid, [ids], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]}) + assert product.qty_available == 4,"Product quantity is not updated." - I run the scheduler. - @@ -29,11 +38,58 @@ !python {model: procurement.order}: | proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))]) assert proc_ids, 'No Procurement created.' - proc_order = self.browse(cr, uid, proc_ids) - assert proc_order[0].product_qty == 15.0,"Procurement product quantity is not corresponded." + proc_order = self.browse(cr, uid, proc_ids)[0] + assert proc_order.product_qty == 11.0,"Procurement product quantity is not corresponded." - I check product quantity. - !python {model: product.product}: | product = self.browse(cr, uid, ref('product.product_product_cpu2')) - assert product.virtual_available >= 5.0,"After run the scheduler product's virtual stock is not updated." + assert product.virtual_available == 15.0,"After run the scheduler product's virtual stock is not updated." +- + For test the Procurement Request wizard, Again I have to update product quantity. +- + !python {model: product.product}: | + mk_procure = self.pool.get('make.procurement') + procur_order = self.pool.get('procurement.order') + product = self.browse(cr, uid, ref('product.product_product_cpu2')) + + context.update({'active_model': 'product.product','active_id':ref('product.product_product_cpu2')}) + values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) + values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) + + ids = mk_procure.create(cr, uid, values, context) + procurement = mk_procure.make_procurement(cr, uid, [ids], context) + assert product.virtual_available == 20.0,'Virtual stock should be updated' + + proc_id = procurement.get('res_id') + procurements = procur_order.browse(cr, uid, [proc_id]) + for procurement in procurements: + if procurement.state == 'confirmed': + assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'." + assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond." + assert procurement.product_qty == 5,"Product Quantity is not correspond." + assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." + context.update({'proc': proc_id}) +- + I compute minimum stock . +- + !python {model: procurement.orderpoint.compute}: | + proc_id = context.get('proc') + context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) + values = self.default_get(cr, uid, ['automatic'], context) + ids = self.create(cr, uid, values, context) + self.procure_calculation(cr, uid, [ids], context) +- + I run the scheduler. +- + !python {model: procurement.order}: | + self.run_scheduler(cr, uid) +- + I check the current state of procurement. +- + !python {model: procurement.order}: | + proc_id = context.get('proc') + proc = self.browse(cr, uid, [proc_id])[0] + assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" + diff --git a/addons/procurement/test/procurement_request.yml b/addons/procurement/test/procurement_request.yml deleted file mode 100644 index 2a72cb6974d..00000000000 --- a/addons/procurement/test/procurement_request.yml +++ /dev/null @@ -1,44 +0,0 @@ -- - For test the Procurement Request wizard, First I have to update product quantity. -- - !python {model: product.product}: | - mk_procure = self.pool.get('make.procurement') - procur_order = self.pool.get('procurement.order') - product = self.browse(cr, uid, ref('product.product_product_hdd3')) - - context.update({'active_model': 'product.product','active_id':ref('product.product_product_hdd3')}) - values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) - values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) - - ids = mk_procure.create(cr, uid, values, context) - procurement = mk_procure.make_procurement(cr, uid, [ids], context) - assert product.virtual_available >= 5.0,'Virtual stock should be updated' - - proc_id = procurement.get('res_id') - procurements = procur_order.browse(cr, uid, [proc_id])[0] - assert procurements.product_id.id == ref('product.product_product_hdd3'),"Product is not correspond." - assert procurements.product_qty >= 5,"Product Quantity is not correspond." - assert procurements.state == 'confirmed',"Procurement state should be 'Confirmed'." - assert procurements.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." - context.update({'proc': proc_id}) -- - I run the scheduler. -- - !python {model: procurement.order}: | - self.run_scheduler(cr, uid) -- - I check the current state of procurement. -- - !python {model: procurement.order}: | - proc_id = context.get('proc') - proc = self.browse(cr, uid, [proc_id])[0] - assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" -- - I compute minimum stock . -- - !python {model: procurement.orderpoint.compute}: | - proc_id = context.get('proc') - context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) - values = self.default_get(cr, uid, ['automatic'], context) - ids = self.create(cr, uid, values, context) - self.procure_calculation(cr, uid, [ids], context) From 26ee9109d576f0cb00d37b2335f8465d8757f62f Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Thu, 15 Dec 2011 15:20:20 +0530 Subject: [PATCH 13/17] [IMP]Procurement: Comment some code for removing the conflict commented code because move don't have procurements field. bzr revid: dbr@tinyerp.com-20111215095020-u7mo9soc2viu593u --- addons/procurement/procurement.py | 31 ++++++++++++------------- addons/procurement/test/procurement.yml | 27 +++++++++++---------- 2 files changed, 28 insertions(+), 30 deletions(-) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 1d1fb6f012d..36d3372b83d 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -457,22 +457,21 @@ class procurement_order(osv.osv): return res procurement_order() - -class StockPicking(osv.osv): - _inherit = 'stock.picking' - - def test_finished(self, cursor, user, ids): - wf_service = netsvc.LocalService("workflow") - res = super(StockPicking, self).test_finished(cursor, user, ids) - for picking in self.browse(cursor, user, ids): - for move in picking.move_lines: - if move.state == 'done' and move.procurements: - for procurement in move.procurements: - wf_service.trg_validate(user, 'procurement.order', - procurement.id, 'button_check', cursor) - return res - -StockPicking() +# Dead Code +# ========= +#class StockPicking(osv.osv): +# _inherit = 'stock.picking' +# def test_finished(self, cursor, user, ids): +# wf_service = netsvc.LocalService("workflow") +# res = super(StockPicking, self).test_finished(cursor, user, ids) +# for picking in self.browse(cursor, user, ids): +# for move in picking.move_lines: +# if move.state == 'done': +# for procurement in move.procurements: +# wf_service.trg_validate(user, 'procurement.order', +# procurement.id, 'button_check', cursor) +# return res +#StockPicking() class stock_warehouse_orderpoint(osv.osv): """ diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index 94b297d50f7..becb1392de9 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -53,33 +53,23 @@ mk_procure = self.pool.get('make.procurement') procur_order = self.pool.get('procurement.order') product = self.browse(cr, uid, ref('product.product_product_cpu2')) - + context.update({'active_model': 'product.product','active_id':ref('product.product_product_cpu2')}) values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) - + ids = mk_procure.create(cr, uid, values, context) procurement = mk_procure.make_procurement(cr, uid, [ids], context) assert product.virtual_available == 20.0,'Virtual stock should be updated' - + proc_id = procurement.get('res_id') - procurements = procur_order.browse(cr, uid, [proc_id]) - for procurement in procurements: + for procurement in procur_order.browse(cr, uid, [proc_id]): if procurement.state == 'confirmed': assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'." assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond." assert procurement.product_qty == 5,"Product Quantity is not correspond." assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." context.update({'proc': proc_id}) -- - I compute minimum stock . -- - !python {model: procurement.orderpoint.compute}: | - proc_id = context.get('proc') - context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) - values = self.default_get(cr, uid, ['automatic'], context) - ids = self.create(cr, uid, values, context) - self.procure_calculation(cr, uid, [ids], context) - I run the scheduler. - @@ -92,4 +82,13 @@ proc_id = context.get('proc') proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" +- + I compute minimum stock . +- + !python {model: procurement.orderpoint.compute}: | + proc_id = context.get('proc') + context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) + values = self.default_get(cr, uid, ['automatic'], context) + ids = self.create(cr, uid, values, context) + self.procure_calculation(cr, uid, [ids], context) From dab1295e7bdc02902e5071e77fc717f221330d33 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 16 Dec 2011 11:46:45 +0530 Subject: [PATCH 14/17] [RMV,IMP]procurement: Remove the all_schedular.yml because code include in procurement.yml Improve the test cases. bzr revid: dbr@tinyerp.com-20111216061645-guas8ryvkqvpy58u --- addons/procurement/__openerp__.py | 4 +- addons/procurement/procurement.py | 15 ------- addons/procurement/test/all_schedular.yml | 53 ----------------------- addons/procurement/test/procurement.yml | 23 +++++----- 4 files changed, 11 insertions(+), 84 deletions(-) delete mode 100644 addons/procurement/test/all_schedular.yml diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index 4721bee26c1..d10e1874d68 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -59,9 +59,7 @@ depending on the product's configuration. 'board_mrp_procurement_view.xml', ], 'demo_xml': ['stock_orderpoint.xml'], - 'test': ['test/procurement.yml', - #'test/all_schedular.yml' - ], + 'test': ['test/procurement.yml'], 'installable': True, 'active': False, 'certificate': '00954248826881074509', diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 36d3372b83d..13a1c791c5c 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -457,21 +457,6 @@ class procurement_order(osv.osv): return res procurement_order() -# Dead Code -# ========= -#class StockPicking(osv.osv): -# _inherit = 'stock.picking' -# def test_finished(self, cursor, user, ids): -# wf_service = netsvc.LocalService("workflow") -# res = super(StockPicking, self).test_finished(cursor, user, ids) -# for picking in self.browse(cursor, user, ids): -# for move in picking.move_lines: -# if move.state == 'done': -# for procurement in move.procurements: -# wf_service.trg_validate(user, 'procurement.order', -# procurement.id, 'button_check', cursor) -# return res -#StockPicking() class stock_warehouse_orderpoint(osv.osv): """ diff --git a/addons/procurement/test/all_schedular.yml b/addons/procurement/test/all_schedular.yml deleted file mode 100644 index 12b5af874a5..00000000000 --- a/addons/procurement/test/all_schedular.yml +++ /dev/null @@ -1,53 +0,0 @@ -- - For test the procurement module, First I have to update quantity. -- - !python {model: product.product}: | - product = self.browse(cr, uid, ref('product.product_product_pc2')) - assert product.virtual_available >= 0.0,'Virtual stock have more quantities than zero.' -- - I create minimum stock rule for product PC2. -- - !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}: - company_id: base.main_company - location_id: stock.stock_location_stock - logic: max - name: OP/000008 - product_id: product.product_product_pc2 - product_max_qty: 15.0 - product_min_qty: 1.0 - product_uom: product.product_uom_kgm - qty_multiple: 1 - warehouse_id: stock.warehouse0 -- - I run the scheduler. -- - !python {model: product.product}: | - mk_procure = self.pool.get('make.procurement') - procur_order = self.pool.get('procurement.order') - product = self.browse(cr, uid, ref('product.product_product_pc2')) - - context.update({'active_model': 'product.product','active_id':ref('product.product_product_pc2')}) - values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) - values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 1}) - ids = mk_procure.create(cr, uid, values, context) - procurement = mk_procure.make_procurement(cr, uid, [ids], context) - - assert product.virtual_available >= 1.0,'Virtual stock should be updated' - - proc_id = procurement.get('res_id') - procurements = procur_order.browse(cr, uid, [proc_id])[0] - assert procurements.product_id.id == ref('product.product_product_pc2'),"Product is not correspond." - assert procurements.product_qty >= 1,"Product Quantity is not correspond." - assert procurements.state == 'confirmed',"Procurement state should be 'Confirmed'." - assert procurements.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." - context.update({'proc': proc_id}) -- - I Compute Minimum Stock. -- - !python {model: procurement.orderpoint.compute}: | - proc_id = context.get('proc') - context.update({'active_model':'procurement.order','active_id':proc_id}) - values = self.default_get(cr, uid, ['automatic'], context) - values.update({'automatic':True}) - ids = self.create(cr, uid, values, context) - self.procure_calculation(cr, uid, [ids], context) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index becb1392de9..ddacfd3b2e9 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -1,11 +1,7 @@ - - For test the procurement module, First I have to check current product quantity. + For test the procurement process, First I have to apply a minimum stock rule on product - - !python {model: product.product}: | - product = self.browse(cr, uid, ref('product.product_product_cpu2')) - assert product.virtual_available <= 0.0,'Virtual stock have more quantities. so, not possible to check minimum stock rule process' -- - I create minimum stock rule for product CPU2. + I create minimum stock rule for product. - !record {model: stock.warehouse.orderpoint, id: stock_warehouse_orderpoint_op0}: company_id: base.main_company @@ -19,21 +15,23 @@ qty_multiple: 1 warehouse_id: stock.warehouse0 - - I update product quantity and check the stock moves are properly done or not. + Check product quantity and update it, if needed for apply a minimum stock rule. - !python {model: product.product}: | - change_qty = self.pool.get('stock.change.product.qty') product = self.browse(cr, uid, ref('product.product_product_cpu2')) - ids = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id}) - change_qty.change_product_qty(cr, uid, [ids], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]}) + if product.virtual_available < 5.0: + change_qty = self.pool.get('stock.change.product.qty') + ids = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id}) + change_qty.change_product_qty(cr, uid, [ids], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]}) assert product.qty_available == 4,"Product quantity is not updated." + assert product.virtual_available < 5.0,'Virtual stock have more quantities.' - I run the scheduler. - !python {model: procurement.order}: | self.run_scheduler(cr, uid) - - I check that procurement order created. + I check that procurement order is based on minimum stock rule. - !python {model: procurement.order}: | proc_ids = self.search(cr, uid, [('product_id','=', ref('product.product_product_cpu2'))]) @@ -83,7 +81,7 @@ proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" - - I compute minimum stock . + I compute minimum stock. - !python {model: procurement.orderpoint.compute}: | proc_id = context.get('proc') @@ -91,4 +89,3 @@ values = self.default_get(cr, uid, ['automatic'], context) ids = self.create(cr, uid, values, context) self.procure_calculation(cr, uid, [ids], context) - From 912c7e50225c0d907166bd0e79712323638bae0c Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 16 Dec 2011 12:14:48 +0530 Subject: [PATCH 15/17] [IMP] create a record for procurement.orderpoint.compute bzr revid: dbr@tinyerp.com-20111216064448-ytirugo54teoprh5 --- addons/procurement/test/procurement.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index ddacfd3b2e9..b4d54a81dca 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -80,12 +80,13 @@ proc_id = context.get('proc') proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" +- + I create a record for procurement orde point with automatic option. +- + !record {model: procurement.orderpoint.compute, id: proc_copute_auto}: + automatic: True - I compute minimum stock. - !python {model: procurement.orderpoint.compute}: | - proc_id = context.get('proc') - context.update({'active_model':'procurement.order','active_id':proc_id, 'automatic':True}) - values = self.default_get(cr, uid, ['automatic'], context) - ids = self.create(cr, uid, values, context) - self.procure_calculation(cr, uid, [ids], context) + self.procure_calculation(cr, uid, [ref('proc_copute_auto')], context) From 93b96cfd79b826d3fa19a961413f7dbf70c683dc Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Fri, 16 Dec 2011 15:28:11 +0530 Subject: [PATCH 16/17] [IMP]procurement: Add class StockMove & StockPicking as that was Need TO FIX : process for procure_calculation. bzr revid: dbr@tinyerp.com-20111216095811-es8zjtmsy3x71k9b --- addons/procurement/procurement.py | 29 +++++++++++++++++++++++++ addons/procurement/test/procurement.yml | 19 ++++++++-------- 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py index 13a1c791c5c..33010fef89d 100644 --- a/addons/procurement/procurement.py +++ b/addons/procurement/procurement.py @@ -61,6 +61,19 @@ class mrp_property(osv.osv): } mrp_property() +class StockMove(osv.osv): + _inherit = 'stock.move' + _columns= { + 'procurements': fields.one2many('procurement.order', 'move_id', 'Procurements'), + } + + def copy(self, cr, uid, id, default=None, context=None): + default = default or {} + default['procurements'] = [] + return super(StockMove, self).copy(cr, uid, id, default, context=context) + +StockMove() + class procurement_order(osv.osv): """ Procurement Orders @@ -458,6 +471,22 @@ class procurement_order(osv.osv): procurement_order() +class StockPicking(osv.osv): + _inherit = 'stock.picking' + + def test_finished(self, cursor, user, ids): + wf_service = netsvc.LocalService("workflow") + res = super(StockPicking, self).test_finished(cursor, user, ids) + for picking in self.browse(cursor, user, ids): + for move in picking.move_lines: + if move.state == 'done' and move.procurements: + for procurement in move.procurements: + wf_service.trg_validate(user, 'procurement.order', + procurement.id, 'button_check', cursor) + return res + +StockPicking() + class stock_warehouse_orderpoint(osv.osv): """ Defines Minimum stock rules. diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index b4d54a81dca..5d6b617c091 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -80,13 +80,12 @@ proc_id = context.get('proc') proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" -- - I create a record for procurement orde point with automatic option. -- - !record {model: procurement.orderpoint.compute, id: proc_copute_auto}: - automatic: True -- - I compute minimum stock. -- - !python {model: procurement.orderpoint.compute}: | - self.procure_calculation(cr, uid, [ref('proc_copute_auto')], context) +#TO FIX : process of procure_calculation not propar. +#- +# !record {model: procurement.orderpoint.compute, id: proc_copute_auto}: +# automatic: True +#- +# I compute minimum stock. +#- +# !python {model: procurement.orderpoint.compute}: | +# self.procure_calculation(cr, uid, [ref('proc_copute_auto')], context) From 05c361567605275b4a37603a6b913e7b51ef0fd5 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 16 Dec 2011 14:25:23 +0100 Subject: [PATCH 17/17] [IMP] procurement: small code cleanup bzr revid: rco@openerp.com-20111216132523-dvwzeuah63u7lgy0 --- addons/procurement/test/procurement.yml | 43 ++++++++++++------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/addons/procurement/test/procurement.yml b/addons/procurement/test/procurement.yml index 5d6b617c091..4c59d0c7b7c 100644 --- a/addons/procurement/test/procurement.yml +++ b/addons/procurement/test/procurement.yml @@ -20,9 +20,9 @@ !python {model: product.product}: | product = self.browse(cr, uid, ref('product.product_product_cpu2')) if product.virtual_available < 5.0: - change_qty = self.pool.get('stock.change.product.qty') - ids = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id}) - change_qty.change_product_qty(cr, uid, [ids], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]}) + change_qty = self.pool.get('stock.change.product.qty') + id = change_qty.create(cr, uid, {'location_id' : ref('stock.stock_location_stock'), 'new_quantity': 4, 'product_id': product.id}) + change_qty.change_product_qty(cr, uid, [id], {'active_model':'product.product', 'active_id': product.id, 'active_ids':[product.id]}) assert product.qty_available == 4,"Product quantity is not updated." assert product.virtual_available < 5.0,'Virtual stock have more quantities.' - @@ -53,20 +53,18 @@ product = self.browse(cr, uid, ref('product.product_product_cpu2')) context.update({'active_model': 'product.product','active_id':ref('product.product_product_cpu2')}) - values = mk_procure.default_get(cr, uid, ['qty','product_id','uom_id','warehouse_id','date_planned'], context) - values.update({'warehouse_id': ref('base.main_company'),'uom_id': ref('product.product_uom_unit'),'qty': 5}) - - ids = mk_procure.create(cr, uid, values, context) - procurement = mk_procure.make_procurement(cr, uid, [ids], context) - assert product.virtual_available == 20.0,'Virtual stock should be updated' + values = {'warehouse_id': ref('base.main_company'), 'uom_id': ref('product.product_uom_unit'), 'qty': 5} + id = mk_procure.create(cr, uid, values, context) + procurement = mk_procure.make_procurement(cr, uid, [id], context) + assert product.virtual_available == 20.0, 'Virtual stock should be updated' proc_id = procurement.get('res_id') for procurement in procur_order.browse(cr, uid, [proc_id]): - if procurement.state == 'confirmed': - assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'." - assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond." - assert procurement.product_qty == 5,"Product Quantity is not correspond." - assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." + if procurement.state == 'confirmed': + assert procurement.state == 'confirmed',"Procurement state should be 'Confirmed'." + assert procurement.product_id.id == ref('product.product_product_cpu2'),"Product is not correspond." + assert procurement.product_qty == 5,"Product Quantity is not correspond." + assert procurement.product_uom.id == ref('product.product_uom_unit'),"Product's UOM is not correspond." context.update({'proc': proc_id}) - I run the scheduler. @@ -80,12 +78,11 @@ proc_id = context.get('proc') proc = self.browse(cr, uid, [proc_id])[0] assert proc.state == 'ready' or 'exception',"Procurement should be in Ready or Exception state" -#TO FIX : process of procure_calculation not propar. -#- -# !record {model: procurement.orderpoint.compute, id: proc_copute_auto}: -# automatic: True -#- -# I compute minimum stock. -#- -# !python {model: procurement.orderpoint.compute}: | -# self.procure_calculation(cr, uid, [ref('proc_copute_auto')], context) +- + I compute minimum stock. +- + !python {model: procurement.orderpoint.compute}: | + proc_id = context.get('proc') + context.update({'active_model': 'procurement.order', 'active_id': proc_id}) + id = self.create(cr, uid, {'automatic': True}, context) + self.procure_calculation(cr, uid, [id], context)