[FIX] website_sale: order data refresh problem
bzr revid: dle@openerp.com-20140404102512-72x74ys4k6whk8ss
This commit is contained in:
parent
effa87f794
commit
368afae722
|
@ -58,20 +58,18 @@ class sale_order(osv.Model):
|
|||
result.update(carrier_id=order.carrier_id.id)
|
||||
return result
|
||||
|
||||
def _delivery_unset(self, cr, uid, order, context=None):
|
||||
line_ids = [line.id for line in order.order_line if line.is_delivery]
|
||||
self.pool['sale.order.line'].unlink(cr, uid, line_ids, context=context)
|
||||
order.refresh()
|
||||
return True
|
||||
def _delivery_unset(self, cr, uid, ids, context=None):
|
||||
sale_obj = self.pool['sale.order.line']
|
||||
line_ids = sale_obj.search(cr, uid, [('order_id', 'in', ids), ('is_delivery', '=', True)],context=context)
|
||||
sale_obj.unlink(cr, uid, line_ids, context=context)
|
||||
|
||||
def delivery_set(self, cr, uid, ids, context=None):
|
||||
line_obj = self.pool.get('sale.order.line')
|
||||
grid_obj = self.pool.get('delivery.grid')
|
||||
carrier_obj = self.pool.get('delivery.carrier')
|
||||
acc_fp_obj = self.pool.get('account.fiscal.position')
|
||||
|
||||
self._delivery_unset(cr, uid, ids, context=context)
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
self._delivery_unset(cr, uid, order, context=context)
|
||||
grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id)
|
||||
if not grid_id:
|
||||
raise osv.except_osv(_('No Grid Available!'), _('No grid matching for this carrier!'))
|
||||
|
|
|
@ -604,9 +604,8 @@ class Ecommerce(http.Controller):
|
|||
else:
|
||||
shipping_partner_id = order.partner_invoice_id.id
|
||||
|
||||
values = {
|
||||
'order': sale_order_obj.browse(cr, SUPERUSER_ID, order.id, context=context)
|
||||
}
|
||||
values = {}
|
||||
values['website_sale_order'] = values['order'] = sale_order_obj.browse(cr, SUPERUSER_ID, order.id, context=context)
|
||||
values['errors'] = sale_order_obj._get_errors(cr, uid, order, context=context)
|
||||
values.update(sale_order_obj._get_website_data(cr, uid, order, context=context))
|
||||
|
||||
|
|
|
@ -885,7 +885,7 @@
|
|||
<h1 class="mb32">Validate Order</h1>
|
||||
<t t-foreach="errors" t-as="error">
|
||||
<div class="alert alert-danger" t-if="error">
|
||||
<h3><t t-esc="error[0]"/></h3>
|
||||
<h4><t t-esc="error[0]"/></h4>
|
||||
<t t-esc="error[1]"/>
|
||||
</div>
|
||||
</t>
|
||||
|
|
|
@ -64,15 +64,16 @@ class SaleOrder(orm.Model):
|
|||
return False
|
||||
if all(line.product_id.type == "service" for line in order.website_order_line):
|
||||
order.write({'carrier_id': None}, context=context)
|
||||
self.pool['sale.order']._delivery_unset(cr, SUPERUSER_ID, order, context=context)
|
||||
self.pool['sale.order']._delivery_unset(cr, SUPERUSER_ID, [order.id], context=context)
|
||||
return True
|
||||
else:
|
||||
carrier_id = force_carrier_id or order.carrier_id.id
|
||||
if force_carrier_id or not carrier_id or not carrier_id in self._get_delivery_methods(cr, uid, order, context=context):
|
||||
self.pool['sale.order']._delivery_unset(cr, SUPERUSER_ID, order, context=context)
|
||||
carrier_ids = self.pool.get('delivery.carrier').search(cr, uid, [('website_published','=',True)], context=context)
|
||||
if force_carrier_id:
|
||||
carrier_ids.insert(0, force_carrier_id)
|
||||
carrier_ids = self._get_delivery_methods(cr, uid, order, context=context)
|
||||
if carrier_id not in carrier_ids:
|
||||
carrier_id = False
|
||||
else:
|
||||
carrier_ids.insert(0, carrier_ids.pop(carrier_id))
|
||||
if force_carrier_id or not carrier_id or not carrier_id in carrier_ids:
|
||||
for delivery_id in carrier_ids:
|
||||
grid_id = carrier_obj.grid_get(cr, SUPERUSER_ID, [delivery_id], order.partner_shipping_id.id)
|
||||
if grid_id:
|
||||
|
@ -81,6 +82,8 @@ class SaleOrder(orm.Model):
|
|||
order.write({'carrier_id': carrier_id}, context=context)
|
||||
if carrier_id:
|
||||
order.delivery_set(context=context)
|
||||
else:
|
||||
order._delivery_unset(context=context)
|
||||
|
||||
return bool(carrier_id)
|
||||
|
||||
|
|
Loading…
Reference in New Issue