diff options
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/website_sale/models/website.py | 12 |
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 |
