diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index e320a8db11f..8699dc0614a 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -186,7 +186,7 @@ class AccountFiscalPosition(models.Model): delivery = PartnerObj.browse(delivery_id) # If partner and delivery have the same vat prefix, use invoicing - if not delivery.vat or (partner.vat and delivery.vat[:2] == partner.vat[:2]): + if not delivery or (delivery.vat and partner.vat and delivery.vat[:2] == partner.vat[:2]): delivery = partner # partner manually set fiscal position always win diff --git a/addons/account/tests/test_fiscal_position.py b/addons/account/tests/test_fiscal_position.py index 5bcb87d1aba..7ff2401a6d5 100644 --- a/addons/account/tests/test_fiscal_position.py +++ b/addons/account/tests/test_fiscal_position.py @@ -154,3 +154,15 @@ class TestFiscalPosition(common.TransactionCase): mapped_taxes = self.fp2m.map_tax(self.src_tax) self.assertEqual(mapped_taxes, self.dst1_tax | self.dst2_tax) + + def test_30_fp_country_delivery(self): + """ + Customer is in Belgium + Delivery is in France + Check if fiscal position is France + """ + self.george.vat = False + self.assertEqual( + self.fp.get_fiscal_position(self.ben.id, self.george.id).id, + self.fr_b2c.id, + "FR B2C should be set")