32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import models
|
|
|
|
|
|
class AccountMove(models.Model):
|
|
_inherit = 'account.move'
|
|
|
|
def _get_name_invoice_report(self):
|
|
if self.company_id.account_fiscal_country_id.code == 'AU':
|
|
return 'l10n_au.report_invoice_document'
|
|
return super()._get_name_invoice_report()
|
|
|
|
def _get_automatic_balancing_account(self):
|
|
""" Override to manage the DGST use case.
|
|
We want the automatic line to balance the DGST account to itself, as we only want the tax lines to have a real
|
|
impact.
|
|
"""
|
|
# OVERRIDE account
|
|
self.ensure_one()
|
|
|
|
# We only consider moves comprised of a single DGST line. (one invoice line, one tax)
|
|
has_single_line = len(self.invoice_line_ids) == 1 and len(self.invoice_line_ids.tax_ids) == 1
|
|
if has_single_line and self.move_type == 'entry':
|
|
# We identify that it is DGST based on a tag on the account.
|
|
# This is the simplest solution to keep it configurable while avoiding a new setting for a niche feature.
|
|
# At worse, they don't get the correct account assigned automatically and need manual adjustment.
|
|
with_dgst_account = self.invoice_line_ids.account_id.tag_ids == self.env.ref("l10n_au.account_tag_dgst")
|
|
if with_dgst_account:
|
|
# In this case, we want the balancing line to balance IN THE SAME ACCOUNT.
|
|
return self.invoice_line_ids.account_id.id
|
|
return super()._get_automatic_balancing_account()
|