feat(nexa_coa_setup): module skeleton with hooks stub
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
50
nexa_coa_setup/hooks.py
Normal file
50
nexa_coa_setup/hooks.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def post_init_hook(env):
|
||||
"""Imperative one-shot operations after module data is loaded.
|
||||
|
||||
Each helper is idempotent — safe to re-run on -u.
|
||||
"""
|
||||
_logger.info("nexa_coa_setup: post_init_hook starting")
|
||||
_normalize_company_hst_number(env)
|
||||
_archive_unused_l10n_ca_accounts(env)
|
||||
_rename_legacy_accounts(env)
|
||||
_lock_fiscal_year_2025(env)
|
||||
_logger.info("nexa_coa_setup: post_init_hook complete")
|
||||
|
||||
|
||||
def _normalize_company_hst_number(env):
|
||||
"""Convert '741224877' to '741224877 RT0001' if not already in full form."""
|
||||
company = env.ref("base.main_company", raise_if_not_found=False)
|
||||
if not company:
|
||||
return
|
||||
vat = (company.partner_id.vat or "").strip()
|
||||
if vat == "741224877":
|
||||
company.partner_id.vat = "741224877 RT0001"
|
||||
_logger.info("nexa_coa_setup: normalized HST# to '741224877 RT0001'")
|
||||
|
||||
|
||||
def _archive_unused_l10n_ca_accounts(env):
|
||||
"""Stub — filled in Phase 4. Archives ~370 unused accounts."""
|
||||
pass
|
||||
|
||||
|
||||
def _rename_legacy_accounts(env):
|
||||
"""Stub — filled in Phase 4. Renames the 14xx/15xx legacy accounts."""
|
||||
pass
|
||||
|
||||
|
||||
def _lock_fiscal_year_2025(env):
|
||||
"""Set fiscalyear_lock_date = 2025-12-31 on main company."""
|
||||
from datetime import date
|
||||
company = env.ref("base.main_company", raise_if_not_found=False)
|
||||
if not company:
|
||||
return
|
||||
target = date(2025, 12, 31)
|
||||
if not company.fiscalyear_lock_date or company.fiscalyear_lock_date < target:
|
||||
company.fiscalyear_lock_date = target
|
||||
_logger.info("nexa_coa_setup: fiscalyear_lock_date set to 2025-12-31")
|
||||
Reference in New Issue
Block a user