git mv preserves history. fusion_accounting/ retains only __manifest__.py, __init__.py, CLAUDE.md, and docs/ — the meta-module shell. All Python, data, views, security, services, static, tests, wizards, report move to fusion_accounting_ai/. Manifest data list updated; security.xml move to _core deferred to Task 12. Made-with: Cursor
84 lines
3.8 KiB
XML
84 lines
3.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo noupdate="1">
|
|
<!-- Session name sequence -->
|
|
<record id="seq_fusion_accounting_session" model="ir.sequence">
|
|
<field name="name">Fusion AI Session</field>
|
|
<field name="code">fusion.accounting.session</field>
|
|
<field name="prefix">FAS/%(year)s/</field>
|
|
<field name="padding">5</field>
|
|
</record>
|
|
|
|
<!-- Daily audit scan: expire stale pending approvals -->
|
|
<record id="cron_fusion_audit_scan" model="ir.cron">
|
|
<field name="name">Fusion AI: Periodic Audit Scan</field>
|
|
<field name="model_id" ref="model_fusion_accounting_match_history"/>
|
|
<field name="state">code</field>
|
|
<field name="code">
|
|
cutoff = datetime.datetime.now() - datetime.timedelta(days=30)
|
|
stale = model.search([('decision', '=', 'pending'), ('proposed_at', '<', cutoff.strftime('%Y-%m-%d %H:%M:%S'))])
|
|
stale.write({'decision': 'rejected', 'rejection_reason': 'Auto-expired after 30 days'})
|
|
</field>
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
|
|
<!-- Weekly tier promotion check -->
|
|
<record id="cron_fusion_tier_promotion" model="ir.cron">
|
|
<field name="name">Fusion AI: Tier Promotion Check</field>
|
|
<field name="model_id" ref="model_fusion_accounting_rule"/>
|
|
<field name="state">code</field>
|
|
<field name="code">
|
|
for rule in model.search([('active', '=', True), ('approval_tier', '=', 'needs_approval')]):
|
|
rule._check_promotion()
|
|
</field>
|
|
<field name="interval_number">7</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
|
|
<!-- Weekly recurring pattern rebuild -->
|
|
<record id="cron_fusion_recurring_patterns" model="ir.cron">
|
|
<field name="name">Fusion AI: Rebuild Recurring Patterns</field>
|
|
<field name="model_id" ref="model_fusion_recurring_pattern"/>
|
|
<field name="state">code</field>
|
|
<field name="code">model._rebuild_all_patterns(min_occurrences=3)</field>
|
|
<field name="interval_number">7</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
|
|
<!-- Daily auto-reconcile inter-account transfers (CC payments) -->
|
|
<record id="cron_fusion_transfer_reconcile" model="ir.cron">
|
|
<field name="name">Fusion AI: Auto-Reconcile Inter-Account Transfers</field>
|
|
<field name="model_id" ref="model_fusion_accounting_agent"/>
|
|
<field name="state">code</field>
|
|
<field name="code">model._cron_reconcile_transfers()</field>
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
|
|
<!-- Daily auto-reconcile payroll cheques against open liability entries -->
|
|
<record id="cron_fusion_payroll_cheque_reconcile" model="ir.cron">
|
|
<field name="name">Fusion AI: Reconcile Payroll Cheques</field>
|
|
<field name="model_id" ref="model_fusion_accounting_agent"/>
|
|
<field name="state">code</field>
|
|
<field name="code">model._reconcile_payroll_cheques()</field>
|
|
<field name="interval_number">1</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
|
|
<!-- Weekly vendor tax profile rebuild -->
|
|
<record id="cron_fusion_vendor_profiles" model="ir.cron">
|
|
<field name="name">Fusion AI: Rebuild Vendor Tax Profiles</field>
|
|
<field name="model_id" ref="model_fusion_vendor_tax_profile"/>
|
|
<field name="state">code</field>
|
|
<field name="code">model._rebuild_all_profiles(min_bills=3)</field>
|
|
<field name="interval_number">7</field>
|
|
<field name="interval_type">days</field>
|
|
<field name="active">True</field>
|
|
</record>
|
|
</odoo>
|