feat(nexa_coa_setup): analytic plans + seed accounts

- 'Customer Project' plan (renamed from 'Project' to avoid duplicate with
  project module's auto-created plan) — mandatory
- 'Department' plan (mandatory) — seeded with DEPT-DEV, DEPT-SALES,
  DEPT-ADMIN, DEPT-HOSTING
- 'SR&ED Tag' plan (optional) — seeded with 7 tag values:
  SRED-T4-DEV-SALARY, SRED-SPECIFIED-EMPLOYEE,
  SRED-CONTRACTOR-CA-ARM-LENGTH, SRED-CONTRACTOR-CA-NON-ARM-LENGTH,
  SRED-MATERIALS-CONSUMED, SRED-OVERHEAD-PROXY-BASIS, NOT-ELIGIBLE

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-05-12 18:53:21 -04:00
parent 3c959771ae
commit 169e97af02
2 changed files with 88 additions and 0 deletions

View File

@@ -1,5 +1,24 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <odoo>
<data noupdate="0"> <data noupdate="0">
<!-- Named 'Customer Project' to avoid collision with the project module's
auto-created 'Project' plan. This is where customer-engagement
analytic accounts (PRJ-YYYY-CUST-NAME) live. -->
<record id="plan_project" model="account.analytic.plan">
<field name="name">Customer Project</field>
<field name="default_applicability">mandatory</field>
</record>
<record id="plan_department" model="account.analytic.plan">
<field name="name">Department</field>
<field name="default_applicability">mandatory</field>
</record>
<record id="plan_sred_tag" model="account.analytic.plan">
<field name="name">SR&amp;ED Tag</field>
<field name="default_applicability">optional</field>
</record>
</data> </data>
</odoo> </odoo>

View File

@@ -1,5 +1,74 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<odoo> <odoo>
<data noupdate="0"> <data noupdate="0">
<!-- Department analytic accounts -->
<record id="aa_dept_dev" model="account.analytic.account">
<field name="name">Development</field>
<field name="code">DEPT-DEV</field>
<field name="plan_id" ref="plan_department"/>
</record>
<record id="aa_dept_sales" model="account.analytic.account">
<field name="name">Sales &amp; Marketing</field>
<field name="code">DEPT-SALES</field>
<field name="plan_id" ref="plan_department"/>
</record>
<record id="aa_dept_admin" model="account.analytic.account">
<field name="name">Admin &amp; Operations</field>
<field name="code">DEPT-ADMIN</field>
<field name="plan_id" ref="plan_department"/>
</record>
<record id="aa_dept_hosting" model="account.analytic.account">
<field name="name">Hosting Operations</field>
<field name="code">DEPT-HOSTING</field>
<field name="plan_id" ref="plan_department"/>
</record>
<!-- SR&ED Tag analytic accounts -->
<record id="aa_sred_t4_dev" model="account.analytic.account">
<field name="name">T4 Dev Salary — full proxy</field>
<field name="code">SRED-T4-DEV-SALARY</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_specified" model="account.analytic.account">
<field name="name">Specified Employee Salary — 75% cap</field>
<field name="code">SRED-SPECIFIED-EMPLOYEE</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_contr_ca_arm" model="account.analytic.account">
<field name="name">Contractor CA Arm's Length — 80% eligible</field>
<field name="code">SRED-CONTRACTOR-CA-ARM-LENGTH</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_contr_ca_naf" model="account.analytic.account">
<field name="name">Contractor CA Non-Arm's Length</field>
<field name="code">SRED-CONTRACTOR-CA-NON-ARM-LENGTH</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_materials" model="account.analytic.account">
<field name="name">Materials Consumed in R&amp;D</field>
<field name="code">SRED-MATERIALS-CONSUMED</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_overhead_basis" model="account.analytic.account">
<field name="name">Overhead Proxy Basis (direct labour basis)</field>
<field name="code">SRED-OVERHEAD-PROXY-BASIS</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
<record id="aa_sred_not_eligible" model="account.analytic.account">
<field name="name">Not Eligible (default)</field>
<field name="code">NOT-ELIGIBLE</field>
<field name="plan_id" ref="plan_sred_tag"/>
</record>
</data> </data>
</odoo> </odoo>