From 02aef6ff11218a66d366b0fa28a114e0945f5db5 Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Mon, 19 Aug 2013 11:36:09 +0530 Subject: [PATCH 1/5] [IMP] improved according to new wms bzr revid: bde@tinyerp.com-20130819060609-blgi8tornvbfztg4 --- .../sale_stock/test/picking_order_policy.yml | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index e28b4b066d4..22e26f706b7 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -31,15 +31,15 @@ from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT order = self.browse(cr, uid, ref("sale.sale_order_6")) for order_line in order.order_line: - procurement = order_line.procurement_id - sale_order_date = self.date_to_datetime(cr, uid, order.date_order, context) - date_planned = datetime.strptime(sale_order_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) + procurements = order_line.procurement_ids + date_planned = datetime.strptime(order.date_order, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) - assert procurement.date_planned == date_planned, "Scheduled date is not correspond." - assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." - assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." - assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond." - assert procurement.procure_method == order_line.type, "Procurement method is not correspond." + for procurement in procurements: + assert procurement.date_planned == date_planned, "Scheduled date is not correspond." + assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." + assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." + assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond." + assert procurement.move_dest_id.procure_method == order_line.type, "Procurement method is not correspond." - I run the scheduler. - @@ -57,7 +57,7 @@ for picking in sale_order.picking_ids: assert picking.state == "auto" or "confirmed", "Delivery order should be in 'Waitting Availability' state." assert picking.origin == sale_order.name,"Origin of Delivery order is not correspond with sequence number of sale order." - assert picking.type == 'out',"Shipment should be Outgoing." + assert picking.picking_type_id == self.pool.get('ir.model.data').get_object(cr, uid, 'stock', 'picking_type_out', context=context),"Shipment should be Outgoing." assert picking.move_type == sale_order.picking_policy,"Delivery Method is not corresponding with delivery method of sale order." assert picking.partner_id.id == sale_order.partner_shipping_id.id,"Shipping Address is not correspond with sale order." assert picking.note == sale_order.note,"Note is not correspond with sale order." @@ -66,7 +66,7 @@ location_id = sale_order.warehouse_id.lot_stock_id.id output_id = sale_order.warehouse_id.lot_output_id.id for move in picking.move_lines: - order_line = move.sale_line_id + order_line = move.procurement_id.sale_line_id sale_order_date = self.date_to_datetime(cr, uid, sale_order.date_order, context) date_planned = datetime.strptime(sale_order_date, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) date_planned = (date_planned - timedelta(days=sale_order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) @@ -84,13 +84,12 @@ - Now, I dispatch delivery order. - - !python {model: stock.partial.picking}: | + !python {model: stock.picking}: | order = self.pool.get('sale.order').browse(cr, uid, ref("sale.sale_order_6")) for pick in order.picking_ids: data = pick.force_assign() if data == True: - partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': [pick.id]}) - self.do_partial(cr, uid, [partial_id]) + pick.do_partial(context=context) - I check sale order to verify shipment. - From 735692618065cba85e7453350d36c794402acf85 Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Mon, 19 Aug 2013 11:56:08 +0530 Subject: [PATCH 2/5] [ADD] added parameters in various methods in order to get proper output for picking-order-policy-yml test cases of sale_stock module bzr revid: bde@tinyerp.com-20130819062608-o51cjq7s4ayhsttx --- addons/sale/sale.py | 2 +- addons/stock/procurement.py | 2 ++ addons/stock/stock.py | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index b55fccc8984..f733cfd9ff1 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -658,7 +658,7 @@ class sale_order(osv.osv): for order in self.browse(cr, uid, ids, context=context): proc_ids = [] group_id = self.pool.get("procurement.group").create(cr, uid, { - 'name': order.name, 'partner_id': order.partner_shipping_id.id + 'name': order.name, 'partner_id': order.partner_shipping_id.id, 'move_type': order.picking_policy }, context=context) order.write({'procurement_group_id': group_id}, context=context) for line in order.order_line: diff --git a/addons/stock/procurement.py b/addons/stock/procurement.py index 7f36871b9d1..4eeca78e0a1 100644 --- a/addons/stock/procurement.py +++ b/addons/stock/procurement.py @@ -86,6 +86,7 @@ class procurement_order(osv.osv): 'rule_id': procurement.rule_id.id, 'origin': procurement.origin, 'picking_type_id': procurement.rule_id.picking_type_id.id, + 'price_unit': procurement.sale_line_id.product_id.standard_price } def _run(self, cr, uid, procurement, context=None): @@ -96,6 +97,7 @@ class procurement_order(osv.osv): move_obj = self.pool.get('stock.move') move_dict = self._run_move_create(cr, uid, procurement, context=context) move_id = move_obj.create(cr, uid, move_dict, context=context) + self.write(cr, uid, procurement.id, {'move_dest_id': move_id}, context=context) move_obj.action_confirm(cr, uid, [move_id], context=context) return move_id return super(procurement_order, self)._run(cr, uid, procurement, context) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 2dff89acfa2..af8e418002c 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1212,6 +1212,7 @@ class stock_move(osv.osv): 'state': 'confirmed', 'group_id': move.group_id and move.group_id.id or False, 'picking_type_id': move.picking_type_id and move.picking_type_id.id or False, + 'move_lines': [(6, 0, [move.id])] } pick = pick_obj.create(cr, uid, values, context=context) move.write({'picking_id': pick}) From 64fee2e674ac8484fc8f8e1021ee8ecb63911f3b Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Wed, 21 Aug 2013 10:55:28 +0530 Subject: [PATCH 3/5] [IMP] value of invoice.comment should be blank if value is False bzr revid: bde@tinyerp.com-20130821052528-wfo71cmpwcu1593r --- addons/sale_stock/test/picking_order_policy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index 22e26f706b7..bdad1424b2a 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -122,7 +122,7 @@ assert invoice.reference == order.client_order_ref or order.name,"Reference is not correspond." assert invoice.partner_id.id == order.partner_invoice_id.id,"Customer does not correspond." assert invoice.currency_id.id == order.pricelist_id.currency_id.id, "Currency is not correspond." - assert invoice.comment == (order.note or ''),"Note is not correspond." + assert (invoice.comment or '') == (order.note or ''),"Note is not correspond." assert invoice.journal_id.id in journal_ids,"Sales Journal is not link on Invoice." assert invoice.payment_term.id == order.payment_term.id, "Payment term is not correspond." for so_line in order.order_line: From 0d3437e753cc4b4b9a42508efc7c8ea6435d13ea Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Wed, 21 Aug 2013 11:12:53 +0530 Subject: [PATCH 4/5] [IMP] As the system creates one procurement per sale order line so checked the assert statements without for loop for procurements bzr revid: bde@tinyerp.com-20130821054253-kbtjbyosjukc9con --- addons/sale_stock/test/picking_order_policy.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index bdad1424b2a..3cefc8e2529 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -31,15 +31,14 @@ from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT order = self.browse(cr, uid, ref("sale.sale_order_6")) for order_line in order.order_line: - procurements = order_line.procurement_ids + procurement = order_line.procurement_ids[0] date_planned = datetime.strptime(order.date_order, DEFAULT_SERVER_DATETIME_FORMAT) + relativedelta(days=order_line.delay or 0.0) date_planned = (date_planned - timedelta(days=order.company_id.security_lead)).strftime(DEFAULT_SERVER_DATETIME_FORMAT) - for procurement in procurements: - assert procurement.date_planned == date_planned, "Scheduled date is not correspond." - assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." - assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." - assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond." - assert procurement.move_dest_id.procure_method == order_line.type, "Procurement method is not correspond." + assert procurement.date_planned == date_planned, "Scheduled date is not correspond." + assert procurement.product_id.id == order_line.product_id.id, "Product is not correspond." + assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." + assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond." + assert procurement.move_dest_id.procure_method == order_line.type, "Procurement method is not correspond." - I run the scheduler. - From a6cc542eef21107792c154d59903189f46a05997 Mon Sep 17 00:00:00 2001 From: "Bharat R. Devnani (OpenERP)" Date: Fri, 23 Aug 2013 15:10:20 +0530 Subject: [PATCH 5/5] [IMP] run the scheduler after picking is done bzr revid: bde@tinyerp.com-20130823094020-gacp65206rn8mxzv --- addons/sale_stock/test/picking_order_policy.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/sale_stock/test/picking_order_policy.yml b/addons/sale_stock/test/picking_order_policy.yml index 0f63a16a335..f903d160400 100644 --- a/addons/sale_stock/test/picking_order_policy.yml +++ b/addons/sale_stock/test/picking_order_policy.yml @@ -39,11 +39,6 @@ assert procurement.product_qty == order_line.product_uom_qty, "Qty is not correspond." assert procurement.product_uom.id == order_line.product_uom.id, "UOM is not correspond." assert procurement.move_ids[0].procure_method == order_line.type, "Procurement method is not correspond." -- - I run the scheduler. -- - !python {model: procurement.order}: | - self.run_scheduler(cr, uid) - I check the details of delivery order after confirmed quotation. - @@ -88,6 +83,11 @@ data = pick.force_assign() if data == True: pick.do_partial(context=context) +- + I run the scheduler. +- + !python {model: procurement.order}: | + self.run_scheduler(cr, uid) - I check sale order to verify shipment. -