Initial commit

This commit is contained in:
gsinghpal
2026-02-22 01:22:18 -05:00
commit 5200d5baf0
2394 changed files with 386834 additions and 0 deletions

View 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,
)