Merge lp:~camptocamp/openobject-addons/7.0-fix-1025703_delivery_chained_pickings-AFE into lp:openobject-addons/7.0

Proposed by Alexandre Fayolle - camptocamp
Status: Needs review
Proposed branch: lp:~camptocamp/openobject-addons/7.0-fix-1025703_delivery_chained_pickings-AFE
Merge into: lp:openobject-addons/7.0
Diff against target: 91 lines (+64/-1)
3 files modified
delivery/__openerp__.py (+3/-1)
delivery/stock.py (+11/-0)
delivery/test/delivery_chained_pickings.yml (+50/-0)
To merge this branch: bzr merge lp:~camptocamp/openobject-addons/7.0-fix-1025703_delivery_chained_pickings-AFE
Reviewer Review Type Date Requested Status
OpenERP R&D Addons Team 2 Pending
OpenERP Core Team Pending
Review via email: mp+171260@code.launchpad.net

Description of the change

Propagate delivery specific fields on chained pickings

To post a comment you must log in.
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

tests are green on runbot

Unmerged revisions

9268. By Alexandre Fayolle - camptocamp

[FIX] delivery: propagate additional fields in chained pickings

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'delivery/__openerp__.py'
--- delivery/__openerp__.py 2012-11-29 22:26:45 +0000
+++ delivery/__openerp__.py 2013-06-25 10:08:55 +0000
@@ -41,7 +41,9 @@
41 'delivery_data.xml'41 'delivery_data.xml'
42 ],42 ],
43 'demo': ['delivery_demo.xml'],43 'demo': ['delivery_demo.xml'],
44 'test': ['test/delivery_cost.yml'],44 'test': ['test/delivery_cost.yml',
45 'test/delivery_chained_pickings.yml',
46 ],
45 'installable': True,47 'installable': True,
46 'auto_install': False,48 'auto_install': False,
47 'images': ['images/1_delivery_method.jpeg','images/2_delivery_pricelist.jpeg'],49 'images': ['images/1_delivery_method.jpeg','images/2_delivery_pricelist.jpeg'],
4850
=== modified file 'delivery/stock.py'
--- delivery/stock.py 2012-12-18 08:59:14 +0000
+++ delivery/stock.py 2013-06-25 10:08:55 +0000
@@ -167,6 +167,17 @@
167 }167 }
168 return res168 return res
169169
170 def _prepare_chained_picking(self, cr, uid, picking_name, picking, picking_type, moves_todo, context=None):
171 values = super(stock_move, self)._prepare_chained_picking(cr, uid, picking_name, picking, picking_type, moves_todo, context=context)
172 if picking.carrier_id:
173 values['carrier_id'] = picking.carrier_id.id
174 values['volume'] = picking.volume
175 values['weight'] = picking.weight
176 values['weight_net'] = picking.weight_net
177 values['carrier_tracking_ref'] = picking.carrier_tracking_ref
178 values['number_of_packages'] = picking.number_of_packages
179 return values
180
170 _columns = {181 _columns = {
171 'weight': fields.function(_cal_move_weight, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',182 'weight': fields.function(_cal_move_weight, type='float', string='Weight', digits_compute= dp.get_precision('Stock Weight'), multi='_cal_move_weight',
172 store={183 store={
173184
=== added file 'delivery/test/delivery_chained_pickings.yml'
--- delivery/test/delivery_chained_pickings.yml 1970-01-01 00:00:00 +0000
+++ delivery/test/delivery_chained_pickings.yml 2013-06-25 10:08:55 +0000
@@ -0,0 +1,50 @@
1-
2 I setup product and locations
3-
4 !record {model: stock.location, id: dest_chained_location}:
5 name: DestChainedLocation
6 usage: internal
7-
8 !record {model: stock.location, id: source_chained_location}:
9 name: Source Chained Location
10 chained_auto_packing: auto
11 chained_location_type: fixed
12 usage: internal
13 chained_location_id: dest_chained_location
14-
15 I create a picking to location_convenience_shop, which is chained with location_refrigerator
16-
17 !record {model: stock.picking, id: shipment_with_delivery}:
18 type: internal
19 carrier_id: delivery.delivery_carrier
20 volume: 42
21 carrier_tracking_ref: FDX123
22 number_of_packages: 7
23-
24 I add a move in the picking
25-
26 !record {model: stock.move, id: icecream_move}:
27 picking_id: shipment_with_delivery
28 product_id: product_product_delivery
29 product_uom: product.product_uom_kgm
30 product_qty: 130.0
31 location_id: stock.stock_location_suppliers
32 location_dest_id: source_chained_location
33-
34 I confirm the picking
35-
36 !workflow {model: stock.picking, action: button_confirm, ref: shipment_with_delivery}
37-
38 I check that the delivery fields have been propagated to the chained picking
39-
40 !python {model: stock.move}: |
41 original_move = self.browse(cr, uid, ref('icecream_move'), context=context)
42 original_picking = original_move.picking_id
43 chained_move = original_move.move_dest_id
44 chained_picking = chained_move.picking_id
45 assert chained_picking.carrier_tracking_ref == original_picking.carrier_tracking_ref, 'no propagation of carrier_tracking_ref'
46 assert chained_picking.carrier_id == original_picking.carrier_id, 'no propagation of carrier_id'
47 assert chained_picking.volume == original_picking.volume, 'no propagation of volume'
48 assert chained_picking.weight == original_picking.weight, 'no propagation of weight'
49 assert chained_picking.weight_net == original_picking.weight_net, 'no propagation of weight'
50