Replaces Enterprise's hr_payroll_account with a Fusion-native bridge: - Adds account_debit / account_credit / fusion_analytic_account_id / not_computed_in_net to hr.salary.rule (company-dependent GL mapping) - Adds move_id + move_state + journal_id + _fusion_create_account_move to hr.payslip (validated payslip -> balanced account.move) - Adds move_id + move_state + action_open_move to hr.payslip.run - Adds journal_id (company-dependent) to hr.payroll.structure - Adds is_payroll_journal flag to account.journal - Adds payslip_ids / payslip_count + action_open_payslip on account.move - Adds payslip_id reverse link on account.move.line - Adds move_line_id reverse link on hr.payslip.line - Adds fusion_payroll_journal_id + fusion_payroll_auto_post to res.company (with res.config.settings exposure) Coexistence: detects Enterprise hr_payroll_account at runtime via ir.module.module and yields move creation to it while both modules are installed, so payslips do not get duplicate entries. Once the Enterprise module is uninstalled, this module owns the bridge. Auto-installs whenever both hr_payroll and fusion_accounting_core are present on the database. 10 smoke tests verifying field surface + bridge entrypoints all pass on westin-v19. Full payslip-to-move integration test deferred (needs seeded payroll structure). Removes Westin's last payroll-accounting dependency on Enterprise's accountant umbrella module (Phase 6b of the Fusion Accounting suite). Made-with: Cursor
35 lines
1.4 KiB
XML
35 lines
1.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!--
|
|
Bridge defaults from the Enterprise hr_payroll_account module.
|
|
Wrapped in noupdate="1" so re-running -u does not overwrite a
|
|
customer's account mapping on these rules.
|
|
|
|
Each <record> uses xmlid_lookup="ignore" through optional `forcecreate="0"`
|
|
semantics so that the load is silently skipped when the referenced
|
|
upstream rule is not present (e.g. on a database without the
|
|
Enterprise default payroll structures).
|
|
-->
|
|
<data noupdate="1">
|
|
<record id="hr_payroll.default_deduction_salary_rule" model="hr.salary.rule" forcecreate="0">
|
|
<field name="not_computed_in_net" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll.default_attachment_of_salary_rule" model="hr.salary.rule" forcecreate="0">
|
|
<field name="not_computed_in_net" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll.default_assignment_of_salary_rule" model="hr.salary.rule" forcecreate="0">
|
|
<field name="not_computed_in_net" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll.default_child_support" model="hr.salary.rule" forcecreate="0">
|
|
<field name="not_computed_in_net" eval="True"/>
|
|
</record>
|
|
|
|
<record id="hr_payroll.default_reimbursement_salary_rule" model="hr.salary.rule" forcecreate="0">
|
|
<field name="not_computed_in_net" eval="True"/>
|
|
</record>
|
|
</data>
|
|
</odoo>
|