From b5833591dcf7e65cc829e080c289400b0926f2a1 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 27 May 2014 12:05:41 +0200 Subject: [PATCH 1/3] [IMP] website_sale: add vat field on checkout --- addons/website_sale/controllers/main.py | 2 +- addons/website_sale/views/templates.xml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index ff4761a848c..20900110fcf 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -310,7 +310,7 @@ class website_sale(http.Controller): return values mandatory_billing_fields = ["name", "phone", "email", "street", "city", "country_id", "zip"] - optional_billing_fields = ["street2", "state_id"] + optional_billing_fields = ["street2", "state_id", "vat"] mandatory_shipping_fields = ["name", "phone", "street", "city", "country_id", "zip"] optional_shipping_fields = ["state_id"] diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 495e540c57a..95eb089a663 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -704,6 +704,11 @@ +
+
+ + +
From 59be055c3718aede3f1d2262483a5279f52c84ba Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 27 May 2014 12:49:16 +0200 Subject: [PATCH 2/3] [IMP] website_sale: if base_vat is installed, when the use try to validate checkout, the vat is checked (VAT Information Exchange System) --- addons/website_sale/controllers/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 20900110fcf..c645943917b 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -355,6 +355,11 @@ class website_sale(http.Controller): if not data.get(field_name): error[field_name] = 'missing' + if data.get("vat") and hasattr(registry["res.partner"], "check_vat"): + vat_country, vat_number = registry["res.partner"]._split_vat(data.get("vat")) + if not registry["res.partner"].vies_vat_check(cr, uid, vat_country, vat_number, context=None): # simple_vat_check + error["vat"] = 'error' + if data.get("shipping_different"): for field_name in self.mandatory_shipping_fields: field_name = 'shipping_' + field_name From 2efb07473326d6fb1eefae00e6ebaac40cce3f5f Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 27 May 2014 14:35:07 +0200 Subject: [PATCH 3/3] [IMP] website_sale: use company vat_check_vies field to select the method to check the vat id base_vat is installed --- addons/website_sale/controllers/main.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index c645943917b..2ef442a4e3b 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -356,8 +356,14 @@ class website_sale(http.Controller): error[field_name] = 'missing' if data.get("vat") and hasattr(registry["res.partner"], "check_vat"): + if request.website.company_id.vat_check_vies: + # force full VIES online check + check_func = registry["res.partner"].vies_vat_check + else: + # quick and partial off-line checksum validation + check_func = registry["res.partner"].simple_vat_check vat_country, vat_number = registry["res.partner"]._split_vat(data.get("vat")) - if not registry["res.partner"].vies_vat_check(cr, uid, vat_country, vat_number, context=None): # simple_vat_check + if not check_func(cr, uid, vat_country, vat_number, context=None): # simple_vat_check error["vat"] = 'error' if data.get("shipping_different"):