diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index af6a7380995..658a0e6024c 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -218,7 +218,7 @@ class Ecommerce(http.Controller):
obj_data = request.registry.get('ir.model.data')
# check values
- json = {'error': []}
+ json = {'error': [], 'validation': False}
required_field = ['phone', 'zip', 'email', 'street', 'city', 'name', 'country_id']
for key in required_field:
if not post.get(key):
@@ -235,11 +235,6 @@ class Ecommerce(http.Controller):
company_id = company_ids and company_ids[0] or None
if not company_id:
company_id = partner_obj.create(cr, uid, {'name': post['company'], 'is_company': True})
- if 'shipping_name' in post and post['shipping_company']:
- company_ids = partner_obj.search(cr, uid, [("name", "ilike", post['shipping_company']), ('is_company', '=', True)])
- shipping_company_id = company_ids and company_ids[0] or None
- if not company_id:
- shipping_company_id = partner_obj.create(cr, uid, {'name': post['shipping_company'], 'is_company': True})
partner_value = {
'fax': post['fax'],
@@ -258,8 +253,8 @@ class Ecommerce(http.Controller):
else:
partner_id = partner_obj.create(cr, uid, partner_value)
+ shipping_id = None
if 'shipping_name' in post:
- shipping_category_id = obj_data.get_object_reference(cr, uid, 'website_sale', 'shipping_address')[1]
shipping_value = {
'fax': post['shipping_fax'],
'phone': post['shipping_phone'],
@@ -267,28 +262,24 @@ class Ecommerce(http.Controller):
'street': post['shipping_street'],
'city': post['shipping_city'],
'name': post['shipping_name'],
- 'parent_id': shipping_company_id,
- 'category_id': [(4, shipping_category_id)],
+ 'type': 'delivery',
+ 'parent_id': partner_id,
'country_id': post['shipping_country_id'],
'state_id': post['shipping_state_id'],
}
- shipping_ids = partner_obj.search(cr, uid, [("parent_id", "=", partner_id), ("category_id", "=", shipping_category_id)])
- shipping_id = shipping_ids and shipping_ids[0] or None
- if shipping_id:
- partner_obj.write(cr, uid, [shipping_id], shipping_value)
- else:
- partner_obj.create(cr, uid, shipping_value)
+ shipping_id = partner_obj.create(cr, uid, shipping_value)
+ values = self.get_values()
+ values['order'].write({
+ 'state': 'progress',
+ 'partner_id': partner_id,
+ 'partner_invoice_id': partner_id,
+ 'partner_shipping_id': shipping_id or partner_id
+ })
+ request.httprequest.session['ecommerce_partner_id'] = False
+ request.httprequest.session['ecommerce_order'] = None
+
+ json['validation'] = True
return simplejson.dumps(json)
- cr, uid, partner_id = self.get_cr_uid()
- if uid == 1:
- return customer()
- values = self.get_values()
- values['order'].write({'state': 'progress'})
- values['partner'] = request.registry.get('res.partner').browse(cr, uid, partner_id)
- html = request.registry.get("ir.ui.view").render(cr, uid, "website_sale.thanks", values)
- request.httprequest.session['ecommerce_order'] = None
- return html
-
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/website_sale/static/src/js/ecommerce.js b/addons/website_sale/static/src/js/ecommerce.js
index 8184ee7b193..4d672c81a01 100644
--- a/addons/website_sale/static/src/js/ecommerce.js
+++ b/addons/website_sale/static/src/js/ecommerce.js
@@ -38,8 +38,10 @@ $(document).ready(function () {
$inputs = $checkout.find("input[name='" + result.error.join("'], input[name='") + "']");
$inputs.css("border", "1px solid #dd0000");
$inputs.first().focus();
- } else {
+ }
+ if (result.validation) {
var $form = $(e.currentTarget).parent().find("input[name='submit']").click();
+ window.location.href = "/shop";
}
});
});
diff --git a/addons/website_sale/views/ecommerce.xml b/addons/website_sale/views/ecommerce.xml
index d7b88a7d1cf..fd8d4f9a819 100644
--- a/addons/website_sale/views/ecommerce.xml
+++ b/addons/website_sale/views/ecommerce.xml
@@ -233,7 +233,6 @@
-