Initial commit
This commit is contained in:
60
Fusion Accounting/models/chart_template.py
Normal file
60
Fusion Accounting/models/chart_template.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# Fusion Accounting - Chart Template Post-Load Hook
|
||||
# Configures tax periodicity and generates initial tax-closing reminders
|
||||
|
||||
from odoo import fields, models, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class FusionChartTemplatePostLoad(models.AbstractModel):
|
||||
"""Runs post-installation configuration after chart-of-accounts
|
||||
data is loaded: sets the tax periodicity journal, enables the
|
||||
totals-below-sections option, and schedules the first tax-closing
|
||||
reminder activity."""
|
||||
|
||||
_inherit = 'account.chart.template'
|
||||
|
||||
def _post_load_data(self, template_code, company, template_data):
|
||||
"""Apply Fusion Accounting defaults after chart template data
|
||||
has been loaded for *company*."""
|
||||
super()._post_load_data(template_code, company, template_data)
|
||||
|
||||
target_company = company or self.env.company
|
||||
|
||||
# Locate the default miscellaneous journal
|
||||
misc_journal = self.env['account.journal'].search([
|
||||
*self.env['account.journal']._check_company_domain(target_company),
|
||||
('type', '=', 'general'),
|
||||
], limit=1)
|
||||
|
||||
if not misc_journal:
|
||||
raise ValidationError(
|
||||
_("No miscellaneous journal could be found for the active company.")
|
||||
)
|
||||
|
||||
target_company.update({
|
||||
'totals_below_sections': target_company.anglo_saxon_accounting,
|
||||
'account_tax_periodicity_journal_id': misc_journal,
|
||||
'account_tax_periodicity_reminder_day': 7,
|
||||
})
|
||||
misc_journal.show_on_dashboard = True
|
||||
|
||||
# Determine the appropriate tax report (country-specific or generic)
|
||||
generic_report = self.env.ref('account.generic_tax_report')
|
||||
country_report = self.env['account.report'].search([
|
||||
('availability_condition', '=', 'country'),
|
||||
('country_id', '=', target_company.country_id.id),
|
||||
('root_report_id', '=', generic_report.id),
|
||||
], limit=1)
|
||||
effective_report = country_report or generic_report
|
||||
|
||||
# Schedule the initial tax-closing reminder activity
|
||||
_start, period_end = target_company._get_tax_closing_period_boundaries(
|
||||
fields.Date.today(), effective_report,
|
||||
)
|
||||
existing_activity = target_company._get_tax_closing_reminder_activity(
|
||||
effective_report.id, period_end,
|
||||
)
|
||||
if not existing_activity:
|
||||
target_company._generate_tax_closing_reminder_activity(
|
||||
effective_report, period_end,
|
||||
)
|
||||
Reference in New Issue
Block a user