This commit is contained in:
gsinghpal
2026-04-03 15:45:18 -04:00
parent 4cd7357aa0
commit c66bdf5089
71 changed files with 6721 additions and 118 deletions

View File

@@ -36,6 +36,22 @@
sequence="40"
groups="group_fusion_accounting_manager"/>
<!-- Vendor Tax Profiles -->
<menuitem id="menu_fusion_vendor_profiles"
name="Vendor Tax Profiles"
parent="menu_fusion_accounting_root"
action="action_vendor_tax_profiles"
sequence="50"
groups="group_fusion_accounting_manager"/>
<!-- Recurring Patterns -->
<menuitem id="menu_fusion_recurring_patterns"
name="Recurring Patterns"
parent="menu_fusion_accounting_root"
action="action_recurring_patterns"
sequence="55"
groups="group_fusion_accounting_manager"/>
<!-- Configuration (link to settings) -->
<menuitem id="menu_fusion_config"
name="Configuration"

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_recurring_pattern_list" model="ir.ui.view">
<field name="name">fusion.recurring.pattern.list</field>
<field name="model">fusion.recurring.pattern</field>
<field name="arch" type="xml">
<list>
<field name="name"/>
<field name="ref_keyword"/>
<field name="amount"/>
<field name="expense_account_code" string="Account"/>
<field name="has_hst"/>
<field name="partner_id"/>
<field name="reconcile_model_id"/>
<field name="occurrences"/>
<field name="last_seen"/>
</list>
</field>
</record>
<record id="view_recurring_pattern_form" model="ir.ui.view">
<field name="name">fusion.recurring.pattern.form</field>
<field name="model">fusion.recurring.pattern</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group string="Pattern">
<field name="name"/>
<field name="ref_keyword"/>
<field name="amount"/>
<field name="amount_is_fixed"/>
<field name="journal_id"/>
</group>
<group string="Coding">
<field name="expense_account_id"/>
<field name="has_hst"/>
<field name="partner_id"/>
<field name="reconcile_model_id"/>
</group>
</group>
<group string="Statistics">
<group>
<field name="occurrences"/>
<field name="first_seen"/>
<field name="last_seen"/>
</group>
<group>
<field name="company_id" groups="base.group_multi_company"/>
<field name="last_computed"/>
</group>
</group>
<group string="AI Instructions">
<field name="action_note" nolabel="1" colspan="2"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_recurring_pattern_search" model="ir.ui.view">
<field name="name">fusion.recurring.pattern.search</field>
<field name="model">fusion.recurring.pattern</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="ref_keyword"/>
<separator/>
<filter name="has_hst" string="Has HST" domain="[('has_hst', '=', True)]"/>
<filter name="no_hst" string="No HST" domain="[('has_hst', '=', False)]"/>
<filter name="has_reco_model" string="Has Reco Model" domain="[('reconcile_model_id', '!=', False)]"/>
<separator/>
<group>
<filter name="group_account" string="Account" domain="[]" context="{'group_by': 'expense_account_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_recurring_patterns" model="ir.actions.act_window">
<field name="name">Recurring Patterns</field>
<field name="res_model">fusion.recurring.pattern</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_recurring_pattern_search"/>
</record>
</odoo>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Tree View -->
<record id="view_vendor_tax_profile_tree" model="ir.ui.view">
<field name="name">fusion.vendor.tax.profile.tree</field>
<field name="model">fusion.vendor.tax.profile</field>
<field name="arch" type="xml">
<list>
<field name="partner_id"/>
<field name="tax_classification" widget="badge"
decoration-success="tax_classification == 'always_hst'"
decoration-warning="tax_classification in ('shipping_only', 'mixed')"
decoration-danger="tax_classification == 'never_hst'"
decoration-info="tax_classification == 'mostly_hst'"/>
<field name="total_bills"/>
<field name="bills_with_hst"/>
<field name="bills_zero_rated"/>
<field name="avg_tax_pct" string="Avg Tax %"/>
<field name="primary_account_code" string="Primary Account"/>
<field name="is_po_vendor"/>
<field name="po_count" optional="hide"/>
<field name="is_foreign"/>
<field name="last_computed"/>
</list>
</field>
</record>
<!-- Form View -->
<record id="view_vendor_tax_profile_form" model="ir.ui.view">
<field name="name">fusion.vendor.tax.profile.form</field>
<field name="model">fusion.vendor.tax.profile</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<group string="Vendor">
<field name="partner_id"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="is_foreign"/>
<field name="vendor_country"/>
</group>
<group string="Tax Classification">
<field name="tax_classification"/>
<field name="avg_tax_pct"/>
<field name="primary_account_id"/>
</group>
</group>
<group string="Bill Statistics">
<group>
<field name="total_bills"/>
<field name="bills_with_hst"/>
<field name="bills_zero_rated"/>
</group>
<group>
<field name="last_computed"/>
</group>
</group>
<group string="AI Tax Note">
<field name="tax_note" nolabel="1" colspan="2"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Search View -->
<record id="view_vendor_tax_profile_search" model="ir.ui.view">
<field name="name">fusion.vendor.tax.profile.search</field>
<field name="model">fusion.vendor.tax.profile</field>
<field name="arch" type="xml">
<search>
<field name="partner_id"/>
<field name="tax_classification"/>
<separator/>
<filter name="always_hst" string="Always HST" domain="[('tax_classification', '=', 'always_hst')]"/>
<filter name="never_hst" string="Never HST" domain="[('tax_classification', '=', 'never_hst')]"/>
<filter name="shipping_only" string="Shipping Only" domain="[('tax_classification', '=', 'shipping_only')]"/>
<filter name="mixed" string="Mixed" domain="[('tax_classification', 'in', ('mixed', 'mostly_hst'))]"/>
<filter name="foreign" string="Foreign Vendors" domain="[('is_foreign', '=', True)]"/>
<separator/>
<group>
<filter name="group_classification" string="Classification" domain="[]" context="{'group_by': 'tax_classification'}"/>
</group>
</search>
</field>
</record>
<!-- Action -->
<record id="action_vendor_tax_profiles" model="ir.actions.act_window">
<field name="name">Vendor Tax Profiles</field>
<field name="res_model">fusion.vendor.tax.profile</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_vendor_tax_profile_search"/>
</record>
</odoo>