Sergi Almacellas Abellana pushed to branch branch/default at Tryton / Tryton
Commits: 46a73ccc by Sergi Almacellas Abellana at 2023-01-09T14:34:21+01:00 Update parent and replaced_by when template has no taxes Closes #11891 - - - - - 2 changed files: - modules/account/account.py - modules/account/tests/test_module.py Changes: ===================================== modules/account/account.py ===================================== @@ -1362,9 +1362,7 @@ for child in childs: if not child.template: continue - if not child.template.taxes: - continue values = {} tax_ids = [template2tax[x.id] for x in child.template.taxes if x.id in template2tax] old_tax_ids = [x.id for x in child.taxes] @@ -1367,14 +1365,14 @@ values = {} tax_ids = [template2tax[x.id] for x in child.template.taxes if x.id in template2tax] old_tax_ids = [x.id for x in child.taxes] - for tax_id in tax_ids: - if tax_id not in old_tax_ids: - values['taxes'] = [ - ('add', [template2tax[x.id] - for x in child.template.taxes - if x.id in template2tax])] - break + taxes_to_add = [x for x in tax_ids if x not in old_tax_ids] + taxes_to_remove = [x for x in old_tax_ids if x not in tax_ids] + if taxes_to_add or taxes_to_remove: + values['taxes'] = [ + ('add', taxes_to_add), + ('remove', taxes_to_remove), + ] if child.template.parent: parent = template2account[child.template.parent.id] else: ===================================== modules/account/tests/test_module.py ===================================== @@ -1608,6 +1608,12 @@ account.parent.name, account.template.parent.name) else: self.assertEqual(account.parent, None) + if account.template.replaced_by: + self.assertEqual( + account.replaced_by.name, + account.template.replaced_by.name) + else: + self.assertEqual(account.replaced_by, None) for tax_code in TaxCode.search([]): self.assertEqual(tax_code.name, tax_code.template.name) @@ -1685,6 +1691,7 @@ inactive_account = AccountTemplate(ModelData.get_id( 'account', 'account_template_expense_en')) inactive_account.end_date = datetime.date.min + inactive_account.replaced_by = new_account inactive_account.save() new_tax = TaxTemplate() new_tax.name = new_tax.description = '10% VAT' View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/46a73ccc6b68e222baa5e60218eee5ef3b6f0637 -- View it on Heptapod: https://foss.heptapod.net/tryton/tryton/-/commit/46a73ccc6b68e222baa5e60218eee5ef3b6f0637 You're receiving this email because of your account on foss.heptapod.net.