Reviewers: ,
Please review this at http://codereview.tryton.org/197001/
Affected files:
M sale.py
Index: sale.py
===================================================================
--- a/sale.py
+++ b/sale.py
@@ -182,20 +182,23 @@
shipment_obj = pool.get('stock.shipment.out')
carrier_obj = pool.get('carrier')
- shipment_id = super(Sale, self).create_shipment(sale_id)
+ shipment_ids = super(Sale, self).create_shipment(sale_id)
sale = self.browse(sale_id)
- if shipment_id and sale.carrier:
- shipment = shipment_obj.browse(shipment_id)
- with Transaction().set_context(
- shipment_obj.get_carrier_context(shipment)):
- cost, currency_id =
carrier_obj.get_sale_price(sale.carrier)
- with Transaction().set_user(0, set_context=True):
- shipment_obj.write(shipment_id, {
- 'carrier': sale.carrier.id,
- 'cost': cost,
- 'cost_currency': currency_id,
- })
- return shipment_id
+ if shipment_ids and sale.carrier:
+ shipments = shipment_obj.browse(shipment_ids)
+ for shipment in shipments:
+ with Transaction().set_context(
+ shipment_obj.get_carrier_context(shipment, values={
+ 'carrier': sale.carrier.id,
+ })):
+ cost, currency_id =
carrier_obj.get_sale_price(sale.carrier)
+ with Transaction().set_user(0, set_context=True):
+ shipment_obj.write(shipment.id, {
+ 'carrier': sale.carrier.id,
+ 'cost': cost,
+ 'cost_currency': currency_id,
+ })
+ return shipment_ids
def _get_invoice_line_sale_line(self, sale):
result = super(Sale, self)._get_invoice_line_sale_line(sale)
--
[email protected] mailing list