summaryrefslogtreecommitdiff
path: root/addons/website_sale/models/website.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_sale/models/website.py')
-rw-r--r--addons/website_sale/models/website.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/addons/website_sale/models/website.py b/addons/website_sale/models/website.py
index 2f8b4ec6a22..877a4afa82a 100644
--- a/addons/website_sale/models/website.py
+++ b/addons/website_sale/models/website.py
@@ -246,16 +246,28 @@ class Website(models.Model):
self.ensure_one()
partner = self.env.user.partner_id
sale_order_id = request.session.get('sale_order_id')
+ check_fpos = False
if not sale_order_id and not self.env.user._is_public():
last_order = partner.last_website_so_id
if last_order:
available_pricelists = self.get_pricelist_available()
# Do not reload the cart of this user last visit if the cart uses a pricelist no longer available.
sale_order_id = last_order.pricelist_id in available_pricelists and last_order.id
+ check_fpos = True
# Test validity of the sale_order_id
sale_order = self.env['sale.order'].with_company(request.website.company_id.id).sudo().browse(sale_order_id).exists() if sale_order_id else None
+ # Do not reload the cart of this user last visit if the Fiscal Position has changed.
+ if check_fpos and sale_order:
+ fpos_id = (
+ self.env['account.fiscal.position']
+ .with_company(sale_order.company_id.id)
+ .get_fiscal_position(sale_order.partner_id.id, delivery_id=sale_order.partner_shipping_id.id)
+ )
+ if sale_order.fiscal_position_id.id != fpos_id:
+ sale_order = None
+
if not (sale_order or force_create or code):
if request.session.get('sale_order_id'):
request.session['sale_order_id'] = None