Merge lp:~camptocamp/ocb-addons/ocb-7.0-595239-opw-skh+afe into lp:ocb-addons

Proposed by Alexandre Fayolle - camptocamp
Status: Merged
Merged at revision: 9919
Proposed branch: lp:~camptocamp/ocb-addons/ocb-7.0-595239-opw-skh+afe
Merge into: lp:ocb-addons
Diff against target: 74 lines (+48/-0)
3 files modified
delivery/__openerp__.py (+1/-0)
delivery/stock.py (+6/-0)
delivery/test/delivery_tracking_ref_backorder.yml (+41/-0)
To merge this branch: bzr merge lp:~camptocamp/ocb-addons/ocb-7.0-595239-opw-skh+afe
Reviewer Review Type Date Requested Status
Nicolas Bessi - Camptocamp (community) no test, code review Approve
Guewen Baconnier @ Camptocamp Approve
Holger Brunn (Therp) code review Approve
Review via email: mp+201016@code.launchpad.net

Description of the change

fix partial delivery will copy tracking number in the backorder picking (lp:1199858)

port of https://code.launchpad.net/~camptocamp/openobject-addons/7.0-595239-opw-skh-afe/+merge/201002 to ocb

To post a comment you must log in.
Revision history for this message
Holger Brunn (Therp) (hbrunn) :
review: Approve (code review)
Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) :
review: Approve
Revision history for this message
Nicolas Bessi - Camptocamp (nbessi-c2c-deactivatedaccount) wrote :

LGTM

review: Approve (no test, code review)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'delivery/__openerp__.py'
2--- delivery/__openerp__.py 2013-08-15 07:54:23 +0000
3+++ delivery/__openerp__.py 2014-01-09 14:44:47 +0000
4@@ -43,6 +43,7 @@
5 'demo': ['delivery_demo.xml'],
6 'test': ['test/delivery_cost.yml',
7 'test/delivery_chained_pickings.yml',
8+ 'test/delivery_tracking_ref_backorder.yml',
9 ],
10 'installable': True,
11 'auto_install': False,
12
13=== modified file 'delivery/stock.py'
14--- delivery/stock.py 2013-11-19 18:18:55 +0000
15+++ delivery/stock.py 2014-01-09 14:44:47 +0000
16@@ -51,6 +51,12 @@
17 result[line.picking_id.id] = True
18 return result.keys()
19
20+ def write(self, cr, uid, ids, vals, context=None):
21+ if context is None: context = {}
22+ if vals.get('backorder_id'):
23+ vals.update(carrier_tracking_ref = '')
24+ return super(stock_picking, self).write(cr, uid, ids, vals, context=context)
25+
26 _columns = {
27 'carrier_id':fields.many2one("delivery.carrier","Carrier"),
28 'volume': fields.float('Volume'),
29
30=== added file 'delivery/test/delivery_tracking_ref_backorder.yml'
31--- delivery/test/delivery_tracking_ref_backorder.yml 1970-01-01 00:00:00 +0000
32+++ delivery/test/delivery_tracking_ref_backorder.yml 2014-01-09 14:44:47 +0000
33@@ -0,0 +1,41 @@
34+-
35+ In order to partial delivery with tracking number
36+-
37+ I create an outgoing picking
38+-
39+ !record {model: stock.picking, id: outgoing_shipment}:
40+ type: out
41+ carrier_tracking_ref: ABC12345
42+ volume: 2
43+ number_of_packages: 2
44+-
45+ !record {model: stock.move, id: outgoing_move}:
46+ picking_id: outgoing_shipment
47+ product_id: product.product_product_8
48+ product_uom: product.product_uom_unit
49+ product_qty: 2
50+ location_id: stock.stock_location_stock
51+ location_dest_id: stock.stock_location_customers
52+-
53+ I confirm the picking
54+-
55+ !workflow {model: stock.picking, action: button_confirm, ref: outgoing_shipment}
56+-
57+ I make a partial delivery
58+-
59+ !python {model: stock.partial.picking}: |
60+ pick_ids = [ref("outgoing_shipment")]
61+ partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': pick_ids})
62+ partial = self.browse(cr, uid, partial_id, context=context)
63+ partial.move_ids[0].write({'quantity': 1})
64+ self.do_partial(cr, uid, [partial_id])
65+-
66+ I check backorder shipment after partial delivery.
67+-
68+ !python {model: stock.picking}: |
69+ shipment = self.browse(cr, uid, ref("delivery.outgoing_shipment"))
70+ backorder = shipment.backorder_id
71+ assert backorder, "Backorder should be created after partial shipment."
72+ assert backorder.state == 'done', "Backorder should be close after received"
73+ assert backorder.carrier_tracking_ref == 'ABC12345', 'wrong tracking ref on done picking'
74+ assert not shipment.carrier_tracking_ref, 'remaining picking must have no tracking ref'