5ff364477f6a5d4a4e425be806ad6507f8963b07
[odoo/odoo.git] / addons / delivery / sale.py
1 import netsvc
2 from osv import fields,osv
3
4
5 # Overloaded sale_order to manage carriers :
6 class sale_order(osv.osv):
7         _name = "sale.order"
8         _inherit = 'sale.order' 
9         _description = "Sale Order"
10
11         _columns = {
12                 'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on packings made."),
13         }
14
15         def onchange_partner_id(self, cr, uid, ids, part):
16                 result = super(sale_order, self).onchange_partner_id(cr, uid, ids, part)
17                 if part:
18                         dtype = self.pool.get('res.partner').browse(cr, uid, part).property_delivery_carrier
19                         result['value']['carrier_id'] = dtype and dtype[0]
20                 return result
21
22         def action_ship_create(self, cr, uid, ids, *args):
23                 result = super(sale_order, self).action_ship_create(cr, uid, ids, *args)
24                 for order in self.browse(cr, uid, ids, context={}):
25                         pids = [ x.id for x in order.picking_ids]
26                         self.pool.get('stock.picking').write(cr, uid, pids, {
27                                 'carrier_id':order.carrier_id.id,
28                         })
29                 return result
30 sale_order()
31
32
33
34