diff --git a/account_fiscal_position_partner_type/__manifest__.py b/account_fiscal_position_partner_type/__manifest__.py index e1dc166a7..347c817a7 100644 --- a/account_fiscal_position_partner_type/__manifest__.py +++ b/account_fiscal_position_partner_type/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Account Fiscal Position Partner Type", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "category": "Accounting & Finance", "website": "https://github.com/OCA/account-fiscal-rule", "author": "Sygel Technology," "Odoo Community Association (OCA)", diff --git a/account_fiscal_position_partner_type/models/account_fiscal_position.py b/account_fiscal_position_partner_type/models/account_fiscal_position.py index 2d2715e22..e907e9ac7 100644 --- a/account_fiscal_position_partner_type/models/account_fiscal_position.py +++ b/account_fiscal_position_partner_type/models/account_fiscal_position.py @@ -15,11 +15,11 @@ class AccountFiscalPosition(models.Model): ) @api.model - def search(self, args, offset=0, limit=None, order=None, count=False): + def search(self, domain, offset=0, limit=None, order=None, count=False): if self.env.context.get("fiscal_position_type"): - args = expression.AND( + domain = expression.AND( ( - args, + domain, [ ( "fiscal_position_type", @@ -30,21 +30,20 @@ def search(self, args, offset=0, limit=None, order=None, count=False): ) ) return super().search( - args, offset=offset, limit=limit, order=order, count=count + domain, offset=offset, limit=limit, order=order, count=count ) @api.model - def get_fiscal_position(self, partner_id, delivery_id=None): + def _get_fiscal_position(self, partner, delivery=None): fiscal_type = False - if partner_id: - delivery = self.env["res.partner"].browse(delivery_id or partner_id) + if partner: + delivery = delivery or partner # Only type has been configured if ( delivery.fiscal_position_type and not delivery.property_account_position_id ): fiscal_type = delivery.fiscal_position_type - fp_id = super( + return super( AccountFiscalPosition, self.with_context(fiscal_position_type=fiscal_type) - ).get_fiscal_position(partner_id=partner_id, delivery_id=delivery_id) - return fp_id + )._get_fiscal_position(partner=partner, delivery=delivery) diff --git a/account_fiscal_position_partner_type/models/res_partner.py b/account_fiscal_position_partner_type/models/res_partner.py index cca22e141..3e5b3600b 100644 --- a/account_fiscal_position_partner_type/models/res_partner.py +++ b/account_fiscal_position_partner_type/models/res_partner.py @@ -20,4 +20,4 @@ def _selection_fiscal_position_type(self): @api.model def _commercial_fields(self): - return super(ResPartner, self)._commercial_fields() + ["fiscal_position_type"] + return super()._commercial_fields() + ["fiscal_position_type"] diff --git a/account_fiscal_position_partner_type/tests/test_account_fiscal_position_partner_type.py b/account_fiscal_position_partner_type/tests/test_account_fiscal_position_partner_type.py index 1031c28ce..b1c14c92c 100644 --- a/account_fiscal_position_partner_type/tests/test_account_fiscal_position_partner_type.py +++ b/account_fiscal_position_partner_type/tests/test_account_fiscal_position_partner_type.py @@ -6,17 +6,18 @@ class TestAccountFiscalPositionPartnerType(common.TransactionCase): - def setUp(self): - super(TestAccountFiscalPositionPartnerType, self).setUp() + @classmethod + def setUpClass(cls): + super().setUpClass() # MODELS - self.res_partner_model = self.env["res.partner"] - self.fiscal_position_model = self.env["account.fiscal.position"] + cls.res_partner_model = cls.env["res.partner"] + cls.fiscal_position_model = cls.env["account.fiscal.position"] # INSTANCES # Company - self.company_main = self.env.ref("base.main_company") - self.company_main.default_fiscal_position_type = "b2b" + cls.company_main = cls.env.ref("base.main_company") + cls.company_main.default_fiscal_position_type = "b2b" # Fiscal Positions - self.fiscal_position_test = self.fiscal_position_model.create( + cls.fiscal_position_test = cls.fiscal_position_model.create( { "name": "Test", "auto_apply": False, @@ -24,7 +25,7 @@ def setUp(self): "sequence": 1, } ) - self.fiscal_position_empty = self.fiscal_position_model.create( + cls.fiscal_position_empty = cls.fiscal_position_model.create( { "name": "Empty", "auto_apply": True, @@ -32,7 +33,7 @@ def setUp(self): "sequence": 2, } ) - self.fiscal_position_b2c = self.fiscal_position_model.create( + cls.fiscal_position_b2c = cls.fiscal_position_model.create( { "name": "b2c", "auto_apply": True, @@ -40,7 +41,7 @@ def setUp(self): "sequence": 3, } ) - self.fiscal_position_b2b = self.fiscal_position_model.create( + cls.fiscal_position_b2b = cls.fiscal_position_model.create( { "name": "b2b", "auto_apply": True, @@ -49,21 +50,21 @@ def setUp(self): } ) # Partners - self.partner_01 = self.env.ref("base.res_partner_1") - self.partner_01.write({"fiscal_position_type": False}) - self.partner_02 = self.env.ref("base.res_partner_2") - self.partner_02.write({"fiscal_position_type": "b2c"}) - self.partner_03 = self.env.ref("base.res_partner_3") - self.partner_03.write({"fiscal_position_type": "b2b"}) - self.partner_04 = self.env.ref("base.res_partner_4") - self.partner_04.write( + cls.partner_01 = cls.env.ref("base.res_partner_1") + cls.partner_01.write({"fiscal_position_type": False}) + cls.partner_02 = cls.env.ref("base.res_partner_2") + cls.partner_02.write({"fiscal_position_type": "b2c"}) + cls.partner_03 = cls.env.ref("base.res_partner_3") + cls.partner_03.write({"fiscal_position_type": "b2b"}) + cls.partner_04 = cls.env.ref("base.res_partner_4") + cls.partner_04.write( { "fiscal_position_type": "b2b", - "property_account_position_id": self.fiscal_position_test.id, + "property_account_position_id": cls.fiscal_position_test.id, } ) - self.partner_05 = self.env.ref("base.res_partner_10") - self.partner_05.write({"fiscal_position_type": "b2b"}) + cls.partner_05 = cls.env.ref("base.res_partner_10") + cls.partner_05.write({"fiscal_position_type": "b2b"}) def _invoice_sale_create(self, partner): invoice_form = Form(