Skip to content

Commit

Permalink
[MRG] fix partial delivery will copy tracking number in the backorder…
Browse files Browse the repository at this point in the history
  • Loading branch information
skh-odoo authored and Stefan Rijnhart committed Jul 2, 2014
1 parent 01985ac commit 5aca747
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
1 change: 1 addition & 0 deletions addons/delivery/__openerp__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
'demo': ['delivery_demo.xml'],
'test': ['test/delivery_cost.yml',
'test/delivery_chained_pickings.yml',
'test/delivery_tracking_ref_backorder.yml',
],
'installable': True,
'auto_install': False,
Expand Down
6 changes: 6 additions & 0 deletions addons/delivery/stock.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ def _get_picking_line(self, cr, uid, ids, context=None):
result[line.picking_id.id] = True
return result.keys()

def write(self, cr, uid, ids, vals, context=None):
if context is None: context = {}
if vals.get('backorder_id'):
vals.update(carrier_tracking_ref = '')
return super(stock_picking, self).write(cr, uid, ids, vals, context=context)

_columns = {
'carrier_id':fields.many2one("delivery.carrier","Carrier"),
'volume': fields.float('Volume'),
Expand Down
41 changes: 41 additions & 0 deletions addons/delivery/test/delivery_tracking_ref_backorder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
-
In order to partial delivery with tracking number
-
I create an outgoing picking
-
!record {model: stock.picking, id: outgoing_shipment}:
type: out
carrier_tracking_ref: ABC12345
volume: 2
number_of_packages: 2
-
!record {model: stock.move, id: outgoing_move}:
picking_id: outgoing_shipment
product_id: product.product_product_8
product_uom: product.product_uom_unit
product_qty: 2
location_id: stock.stock_location_stock
location_dest_id: stock.stock_location_customers
-
I confirm the picking
-
!workflow {model: stock.picking, action: button_confirm, ref: outgoing_shipment}
-
I make a partial delivery
-
!python {model: stock.partial.picking}: |
pick_ids = [ref("outgoing_shipment")]
partial_id = self.create(cr, uid, {}, context={'active_model': 'stock.picking','active_ids': pick_ids})
partial = self.browse(cr, uid, partial_id, context=context)
partial.move_ids[0].write({'quantity': 1})
self.do_partial(cr, uid, [partial_id])
-
I check backorder shipment after partial delivery.
-
!python {model: stock.picking}: |
shipment = self.browse(cr, uid, ref("delivery.outgoing_shipment"))
backorder = shipment.backorder_id
assert backorder, "Backorder should be created after partial shipment."
assert backorder.state == 'done', "Backorder should be close after received"
assert backorder.carrier_tracking_ref == 'ABC12345', 'wrong tracking ref on done picking'
assert not shipment.carrier_tracking_ref, 'remaining picking must have no tracking ref'

0 comments on commit 5aca747

Please sign in to comment.