summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorVictor Feyens <vfe@odoo.com>2019-11-19 18:12:25 +0000
committerVictor Feyens <vfe@odoo.com>2019-11-20 14:42:07 +0000
commit81245528d18723845f80a5e4d348d044b730b655 (patch)
tree23a59b9a2c8f992f209998ca310cc0f87463a28c /addons
parent11978215835e4ed4d5846736698ca679c211a075 (diff)
[IMP] account: get_fiscal_position returns a recordset
Diffstat (limited to 'addons')
-rw-r--r--addons/account/models/partner.py13
-rw-r--r--addons/l10n_ar/models/account_fiscal_position.py2
-rw-r--r--addons/website_sale/models/website.py3
3 files changed, 11 insertions, 7 deletions
diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py
index 40a200950c2..4dc1252eded 100644
--- a/addons/account/models/partner.py
+++ b/addons/account/models/partner.py
@@ -147,12 +147,17 @@ class AccountFiscalPosition(models.Model):
if not fpos:
# Fallback on catchall (no country, no group)
fpos = self.search(base_domain + null_country_dom, limit=1)
- return fpos or False
+ return fpos
@api.model
def get_fiscal_position(self, partner_id, delivery_id=None):
+ """
+ :return: fiscal position found (recordset)
+ :rtype: :class:`account.fiscal.position`
+ """
if not partner_id:
- return False
+ return self.env['account.fiscal.position']
+
# This can be easily overridden to apply more complex fiscal rules
PartnerObj = self.env['res.partner']
partner = PartnerObj.browse(partner_id)
@@ -165,7 +170,7 @@ class AccountFiscalPosition(models.Model):
# partner manually set fiscal position always win
if delivery.property_account_position_id or partner.property_account_position_id:
- return delivery.property_account_position_id.id or partner.property_account_position_id.id
+ return delivery.property_account_position_id or partner.property_account_position_id
# First search only matching VAT positions
vat_required = bool(partner.vat)
@@ -175,7 +180,7 @@ class AccountFiscalPosition(models.Model):
if not fp and vat_required:
fp = self._get_fpos_by_region(delivery.country_id.id, delivery.state_id.id, delivery.zip, False)
- return fp.id if fp else False
+ return fp or self.env['account.fiscal.position']
class AccountFiscalPositionTax(models.Model):
diff --git a/addons/l10n_ar/models/account_fiscal_position.py b/addons/l10n_ar/models/account_fiscal_position.py
index d2032de8f7b..82b7b7618ef 100644
--- a/addons/l10n_ar/models/account_fiscal_position.py
+++ b/addons/l10n_ar/models/account_fiscal_position.py
@@ -21,7 +21,7 @@ class AccountFiscalPosition(models.Model):
partner_id).l10n_ar_afip_responsibility_type_id.id),
('company_id', '=', company.id),
]
- return self.search(domain, limit=1).id
+ return self.search(domain, limit=1)
return super().get_fiscal_position(partner_id, delivery_id=delivery_id)
@api.onchange('l10n_ar_afip_responsibility_type_ids', 'country_group_id', 'country_id', 'zip_from', 'zip_to')
diff --git a/addons/website_sale/models/website.py b/addons/website_sale/models/website.py
index 89c7dcdcd08..147e024fd61 100644
--- a/addons/website_sale/models/website.py
+++ b/addons/website_sale/models/website.py
@@ -283,8 +283,7 @@ class Website(models.Model):
country_code = request.session['geoip'].get('country_code')
if country_code:
country_id = request.env['res.country'].search([('code', '=', country_code)], limit=1).id
- fp_id = request.env['account.fiscal.position'].sudo().with_company(request.website.company_id.id)._get_fpos_by_region(country_id)
- sale_order.fiscal_position_id = fp_id
+ sale_order.fiscal_position_id = request.env['account.fiscal.position'].sudo().with_company(request.website.company_id.id)._get_fpos_by_region(country_id)
else:
# if no geolocation, use the public user fp
sale_order.onchange_partner_shipping_id()