diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index b5be678815b..ddcff82148f 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -1221,7 +1221,7 @@ - + Subtotal: @@ -1252,7 +1252,7 @@ }'/> - + diff --git a/addons/website_sale_delivery/models/sale_order.py b/addons/website_sale_delivery/models/sale_order.py index a6c8cc9be80..42fdb6d1240 100644 --- a/addons/website_sale_delivery/models/sale_order.py +++ b/addons/website_sale_delivery/models/sale_order.py @@ -33,6 +33,15 @@ class SaleOrder(orm.Model): res[order.id]['amount_delivery'] = currency_pool.round(cr, uid, currency, line_amount) return res + def _has_delivery(self, cr, uid, ids, field_name, arg, context=None): + result = dict.fromkeys(ids, False) + for so in self.browse(cr, uid, ids, context=context): + for line in so.order_line: + if line.is_delivery: + result[so.id] = True + break + return result + def _get_order(self, cr, uid, ids, context=None): result = {} for line in self.pool.get('sale.order.line').browse(cr, uid, ids, context=context): @@ -49,6 +58,14 @@ class SaleOrder(orm.Model): }, multi='sums', help="The amount without tax.", track_visibility='always' ), + 'has_delivery': fields.function( + _has_delivery, type='boolean', string='Has delivery', + store={ + 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), + 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), + }, + help="Has an order line set for delivery" + ), 'website_order_line': fields.one2many( 'sale.order.line', 'order_id', string='Order Lines displayed on Website', readonly=True, diff --git a/addons/website_sale_delivery/views/website_sale_delivery.xml b/addons/website_sale_delivery/views/website_sale_delivery.xml index d32ef491c0f..716e3d5401d 100644 --- a/addons/website_sale_delivery/views/website_sale_delivery.xml +++ b/addons/website_sale_delivery/views/website_sale_delivery.xml @@ -4,7 +4,7 @@ - + Delivery: