diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py index 0ea891bb6ae..5c4aac8513d 100644 --- a/addons/delivery/__openerp__.py +++ b/addons/delivery/__openerp__.py @@ -32,7 +32,7 @@ You can define your own carrier and delivery grids for prices. When creating invoices from picking, OpenERP is able to add and compute the shipping line. """, 'author': 'OpenERP SA', - 'depends': ['sale', 'purchase', 'stock'], + 'depends': ['sale', 'stock'], 'data': [ 'security/ir.model.access.csv', 'delivery_report.xml', diff --git a/addons/delivery/sale.py b/addons/delivery/sale.py index 1b797290632..f43eb1c0a30 100644 --- a/addons/delivery/sale.py +++ b/addons/delivery/sale.py @@ -23,7 +23,15 @@ import time from openerp.osv import fields,osv from openerp.tools.translate import _ -# Overloaded sale_order to manage carriers : +class sale_order_line(osv.osv): + _inherit = 'sale.order.line' + _columns = { + 'is_delivery':fields.boolean("Is a Delivery"), + } + _defaults = { + 'is_delivery': False + } + class sale_order(osv.osv): _inherit = 'sale.order' _columns = { @@ -42,12 +50,20 @@ class sale_order(osv.osv): result.update(carrier_id=order.carrier_id.id) return result + def _delivery_unset(self, cr, uid, order, context=None): + for line in order.order_line: + if line.is_delivery: + self.pool.get('sale.order.line').unlink(cr, uid, [line.id], context=context) + return True + def delivery_set(self, cr, uid, ids, context=None): order_obj = self.pool.get('sale.order') 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') + for order in self.browse(cr, uid, ids, context=context): + self._delivery_unset(cr, uid, order, context=context) for order in self.browse(cr, uid, ids, context=context): grid_id = carrier_obj.grid_get(cr, uid, [order.carrier_id.id], order.partner_shipping_id.id) if not grid_id: @@ -70,7 +86,8 @@ class sale_order(osv.osv): 'product_id': grid.carrier_id.product_id.id, 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context), 'tax_id': [(6,0,taxes_ids)], - 'type': 'make_to_stock' + 'type': 'make_to_stock', + 'is_delivery': True }) #remove the value of the carrier_id field on the sale order return self.write(cr, uid, ids, {'carrier_id': False}, context=context) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index ad048e505e5..11ca67b162a 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -39,6 +39,10 @@ class sale_order(osv.osv): }, } + # Hook for website_sale to inherit (website_sale_delivery) + def _get_website_data(self, cr, uid, order, context): + return {} + def copy(self, cr, uid, id, default=None, context=None): if not default: default = {} diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index 0f056203da7..e811c13c5b0 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -35,10 +35,6 @@ from dateutil.relativedelta import relativedelta from openerp import tools import urllib - -Ecommerce.domain += [('product_variant_ids.event_ticket_ids', '=', False), ('event_ok', '=', False)] - - class website_event(http.Controller): @website.route(['/event/', '/event/page//'], type='http', auth="public", multilang=True) def events(self, page=1, **searches): diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 0744f2eae85..ec250ea133d 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -347,6 +347,7 @@ class Ecommerce(http.Controller): domain = [('id', 'in', ids or [0] )] + domain step = 20 + print '**', domain product_count = len(product_obj.search(request.cr, request.uid, domain, context=request.context)) pager = request.website.pager(url="/shop/", total=product_count, page=page, step=step, scope=7, url_args=post) @@ -711,8 +712,9 @@ class Ecommerce(http.Controller): values = { 'partner': False, - 'order': order + 'order': order, } + values.update( request.registry.get('sale.order')._get_website_data(request.cr, request.uid, order, request.context) ) payment_obj = request.registry.get('portal.payment.acquirer') payment_ids = payment_obj.search(request.cr, SUPERUSER_ID, [('visible', '=', True)], context=request.context) diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index c4407fc019d..0608f6dc02b 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -380,7 +380,7 @@

Shopping Cart

-
+
Your cart is empty!
@@ -473,7 +473,7 @@ Process Checkout
-
+

Policies

  • ☑ 30-days money-back guarantee
  • @@ -804,7 +804,7 @@

Validate Order

-
+
@@ -857,7 +857,7 @@ }'/> - +
Incl. Taxes:Incl. Taxes: + + + + + + + diff --git a/addons/website_sale_delivery/views/website_sale_delivery_view.xml b/addons/website_sale_delivery/views/website_sale_delivery_view.xml new file mode 100644 index 00000000000..66689449d1a --- /dev/null +++ b/addons/website_sale_delivery/views/website_sale_delivery_view.xml @@ -0,0 +1,20 @@ + + + + + + delivery.carrier.website.form + delivery.carrier + + + + + + + + + + + + +