diff --git a/addons/account/models/account_account_tag.py b/addons/account/models/account_account_tag.py index fb0326d3baa..94366f9a115 100644 --- a/addons/account/models/account_account_tag.py +++ b/addons/account/models/account_account_tag.py @@ -8,7 +8,7 @@ class AccountAccountTag(models.Model): _description = 'Account Tag' name = fields.Char('Tag Name', required=True) - applicability = fields.Selection([('accounts', 'Accounts'), ('taxes', 'Taxes')], required=True, default='accounts') + applicability = fields.Selection([('accounts', 'Accounts'), ('taxes', 'Taxes'), ('products', 'Products')], required=True, default='accounts') color = fields.Integer('Color Index') active = fields.Boolean(default=True, help="Set active to false to hide the Account Tag without removing it.") tax_report_line_ids = fields.Many2many(string="Tax Report Lines", comodel_name='account.tax.report.line', relation='account_tax_report_line_tags_rel', help="The tax report lines using this tag") diff --git a/addons/account/models/account_partial_reconcile.py b/addons/account/models/account_partial_reconcile.py index 4885e649797..07f807e710d 100644 --- a/addons/account/models/account_partial_reconcile.py +++ b/addons/account/models/account_partial_reconcile.py @@ -232,6 +232,9 @@ class AccountPartialReconcile(models.Model): account = base_line.company_id.account_cash_basis_base_account_id or base_line.account_id tax_ids = base_line.tax_ids.filtered(lambda x: x.tax_exigibility == 'on_payment') is_refund = base_line.belongs_to_refund() + tax_tags = tax_ids.get_tax_tags(is_refund, 'base') + product_tags = base_line.tax_tag_ids.filtered(lambda x: x.applicability == 'products') + all_tags = tax_tags + product_tags return { 'name': base_line.move_id.name, @@ -242,7 +245,7 @@ class AccountPartialReconcile(models.Model): 'partner_id': base_line.partner_id.id, 'account_id': account.id, 'tax_ids': [Command.set(tax_ids.ids)], - 'tax_tag_ids': [Command.set(tax_ids.get_tax_tags(is_refund, 'base').ids)], + 'tax_tag_ids': [Command.set(all_tags.ids)], 'tax_tag_invert': base_line.tax_tag_invert, } @@ -277,7 +280,8 @@ class AccountPartialReconcile(models.Model): ''' tax_ids = tax_line.tax_ids.filtered(lambda x: x.tax_exigibility == 'on_payment') base_tags = tax_ids.get_tax_tags(tax_line.tax_repartition_line_id.refund_tax_id, 'base') - all_tags = base_tags + tax_line.tax_repartition_line_id.tag_ids + product_tags = tax_line.tax_tag_ids.filtered(lambda x: x.applicability == 'products') + all_tags = base_tags + tax_line.tax_repartition_line_id.tag_ids + product_tags return { 'name': tax_line.name, diff --git a/addons/account/models/product.py b/addons/account/models/product.py index 87f02749c38..9ae864be1b1 100644 --- a/addons/account/models/product.py +++ b/addons/account/models/product.py @@ -39,7 +39,7 @@ class ProductTemplate(models.Model): account_tag_ids = fields.Many2many( string="Account Tags", comodel_name='account.account.tag', - domain="[('tax_report_line_ids', '=', False), ('applicability', '=', 'taxes')]", + domain="[('applicability', '=', 'products')]", help="Tags to be set on the base and tax journal items created for this product.") def _get_product_accounts(self): diff --git a/addons/account/views/account_account_views.xml b/addons/account/views/account_account_views.xml index c89bf16a764..49d826c320b 100644 --- a/addons/account/views/account_account_views.xml +++ b/addons/account/views/account_account_views.xml @@ -61,7 +61,7 @@ - + diff --git a/addons/account/views/account_chart_template_views.xml b/addons/account/views/account_chart_template_views.xml index 6aa16900233..fa0fb6d410c 100644 --- a/addons/account/views/account_chart_template_views.xml +++ b/addons/account/views/account_chart_template_views.xml @@ -86,7 +86,7 @@ - + diff --git a/addons/l10n_eu_oss/data/account_account_tag.xml b/addons/l10n_eu_oss/data/account_account_tag.xml index 7783c129262..46046cbb356 100644 --- a/addons/l10n_eu_oss/data/account_account_tag.xml +++ b/addons/l10n_eu_oss/data/account_account_tag.xml @@ -9,7 +9,7 @@ non-EU origin - taxes + products