first push message

This commit is contained in:
2026-07-01 14:41:49 +07:00
parent 6667dec2bf
commit 58b5f46cc4
2951 changed files with 316619 additions and 0 deletions
@@ -0,0 +1,278 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Asset Form View -->
<record model="ir.ui.view" id="account_asset_asset_view_form">
<field name="name">account.asset.asset.view.form</field>
<field name="model">account.asset.asset</field>
<field name="arch" type="xml">
<form string="Asset">
<header>
<button name="validate" invisible="state != 'draft'" string="Confirm" type="object"
class="oe_highlight"/>
<button type="object" name="compute_depreciation_board" string="Compute Depreciation"
invisible="state != 'draft'"/>
<button name="set_to_close" invisible="state != 'open'" string="Sell or Dispose" type="object"
class="oe_highlight"/>
<button name="action_save_model" invisible="state != 'open' or category_id" string="Save as model" type="object"
/>
<button name="action_cancel_assets" string="Cancel Asset" type="object"
invisible="state != 'open'"/>
<button name="set_to_draft" string="Set to Draft" type="object"
invisible="state != 'cancelled'"/>
<button name="%(action_asset_modify)d" invisible="state != 'open'" string="Modify Depreciation"
type="action"/>
<field name="state" widget="statusbar" statusbar_visible="draft,open"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button class="oe_stat_button" name="open_entries" type="object" icon="fa-pencil">
<field string="Items" name="entry_count" widget="statinfo"/>
</button>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name" placeholder="e.g. Laptop iBook"
readonly="state != 'draft'"/>
</h1>
</div>
<group>
<group>
<field name="category_id" domain="[('type', '=', 'purchase')]"
context="{'default_type': 'purchase'}"
help="Category of asset" readonly="state != 'draft'"/>
<field name="code" readonly="state != 'draft'"/>
<field name="date" help="Date of asset"/>
<field name="type" invisible="1"/>
</group>
<group>
<field name="currency_id" groups="base.group_multi_currency" readonly="state != 'draft'"/>
<field name="company_id" options="{'no_create': True}"
groups="base.group_multi_company" readonly="state != 'draft'"/>
<field name="value" widget="monetary"
options="{'currency_field': 'currency_id'}"
help="Gross value of asset"
readonly="state != 'draft'"/>
<field name="salvage_value" widget="monetary"
options="{'currency_field': 'currency_id'}"
readonly="state != 'draft'"
invisible="type in 'sale'"/>
<field name="value_residual" widget="monetary" options="{'currency_field': 'currency_id'}"/>
<field name="partner_id" string="Vendor" readonly="state != 'draft'"
domain="[('supplier_rank', '>', 0)]"/>
<field name="invoice_id" string="Invoice"
options="{'no_create': True}"
readonly="state != 'draft'"/>
</group>
</group>
<notebook colspan="4">
<page string="Assets">
<group>
<group>
<field name="type" invisible="1"/>
<field name="company_id" options="{'no_create': True}" readonly="state != 'draft'"/>
</group>
<group string="Journal Entries">
<field name="journal_id" readonly="state != 'draft'"/>
<div>
<label for="account_asset_id" invisible="type != 'purchase'"/>
<label for="account_asset_id" string="Deferred Revenue Account"
invisible="type != 'sale'"/>
</div>
<field name="account_asset_id" nolabel="1" invisible="not type" readonly="state != 'draft'"/>
<div>
<label for="account_depreciation_id" invisible="type != 'purchase'"/>
<label for="account_depreciation_id" string="Recognition Income Account"
invisible="type != 'sale'"/>
</div>
<field name="account_depreciation_id" nolabel="1" readonly="state != 'draft'"/>
<div>
<label for="account_depreciation_expense_id" invisible="type != 'purchase'"/>
<label for="account_depreciation_expense_id" string="Recognition Account"
invisible="type != 'sale'"/>
</div>
<field name="account_depreciation_expense_id" nolabel="1" readonly="state != 'draft'"/>
<field name="account_analytic_id" readonly="state != 'draft'"/>
</group>
<group string="Periodicity">
<field name="method_time" string="Time Method Based On" widget="radio"
invisible="type != 'purchase'" readonly="state != 'draft'"/>
<field name="method_number" string="Number of Entries"
invisible="method_time != 'number' and not type"
required="method_time in 'number'" readonly="state != 'draft'"/>
<label for="method_period" string="One Entry Every"/>
<div>
<field name="method_period" nolabel="1" invisible="not type" class="oe_inline" readonly="state != 'draft'"/>
months
</div>
<field name="method_end"
required="method_time in 'end'"
invisible="method_time != 'end'" readonly="state != 'draft'"/>
</group>
<group string="Additional Options">
<field name="open_asset" readonly="state != 'draft'"/>
<field name="group_entries" readonly="state != 'draft'"/>
</group>
<group invisible="type in 'sale'" string="Depreciation Method">
<field name="method" readonly="state != 'draft'"/>
<field name="method_progress_factor"
invisible="method in 'linear'"
required="method in 'degressive'" widget="percentage" readonly="state != 'draft'"/>
<field name="prorata"
invisible="method in 'end'" readonly="state != 'draft'"/>
</group>
</group>
</page>
<page string="Depreciation Board" invisible="not depreciation_line_ids">
<field name="depreciation_line_ids" mode="list"
readonly="state not in ['draft', 'open']"
options="{'reload_whole_on_button': true}">
<list string="Depreciation Lines" decoration-info="(move_check == False)" create="0"
editable="top">
<field name="depreciation_date" readonly="1"/>
<field name="depreciated_value" readonly="1"/>
<field name="amount" widget="monetary" string="Depreciation" readonly="1"/>
<field name="remaining_value" readonly="1" widget="monetary" string="Residual"/>
<field name="move_check" widget="deprec_lines_toggler"
invisible="parent_state != 'open'"/>
<field name="move_posted_check" invisible="1"/>
<field name="parent_state" invisible="1"/>
</list>
<form string="Depreciation Lines">
<group>
<group>
<field name="parent_state" invisible="1"/>
<field name="name"/>
<field name="sequence"/>
<field name="move_id"/>
<field name="move_check"/>
<field name="parent_state" invisible="1"/>
</group>
<group>
<field name="amount" widget="monetary"/>
<field name="depreciation_date"/>
<field name="depreciated_value"/>
<field name="remaining_value"/>
</group>
</group>
</form>
</field>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<!--Asset Kanban View-->
<record model="ir.ui.view" id="account_asset_asset_view_kanban">
<field name="name">account.asset.asset.view.kanban</field>
<field name="model">account.asset.asset</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile">
<field name="name"/>
<field name="category_id"/>
<field name="date"/>
<field name="state"/>
<templates>
<t t-name="card">
<div t-attf-class="oe_kanban_global_click">
<div class="row mb4">
<div class="col-xs-6">
<strong>
<span>
<t t-esc="record.name.value"/>
</span>
</strong>
</div>
<div class="col-xs-6 pull-right text-right">
<strong>
<t t-esc="record.date.value"/>
</strong>
</div>
</div>
<div class="row">
<div class="col-xs-6 text-muted">
<span>
<t t-esc="record.category_id.value"/>
</span>
</div>
<div class="col-xs-6">
<span class="pull-right text-right">
<field name="state" widget="label_selection"
options="{'classes': {'draft': 'primary', 'open': 'success', 'close': 'default'}}"/>
</span>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!--Asset Tree View-->
<record model="ir.ui.view" id="account_asset_asset_view_tree">
<field name="name">account.asset.asset.view.tree</field>
<field name="model">account.asset.asset</field>
<field name="arch" type="xml">
<list string="Assets" decoration-info="(state == 'draft')" decoration-muted="(state == 'close')">
<field name="name"/>
<field name="category_id"/>
<field name="date"/>
<field name="partner_id" string="Vendor"/>
<field name="value"/>
<field name="value_residual" widget="monetary"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"/>
</list>
</field>
</record>
<!--Asset Search View-->
<record id="account_asset_asset_view_search" model="ir.ui.view">
<field name="name">account.asset.asset.view.search</field>
<field name="model">account.asset.asset</field>
<field name="arch" type="xml">
<search string="Asset Account">
<field name="name" string="Asset"/>
<field name="date"/>
<filter name="state" string="Current" domain="[('state','in', ('draft','open'))]"
help="Assets in draft and open states"/>
<filter name="state" string="Closed" domain="[('state','=', 'close')]" help="Assets in closed state"/>
<field name="category_id"/>
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<group>
<filter name="date" string="Month" domain="[]" context="{'group_by':'date'}"/>
<filter name="category_id" string="Category" domain="[]" context="{'group_by':'category_id'}"/>
</group>
</search>
</field>
</record>
<!--Asset Action-->
<record model="ir.actions.act_window" id="action_account_asset_asset_form">
<field name="name">Assets</field>
<field name="res_model">account.asset.asset</field>
<field name="view_mode">list,kanban,form</field>
<field name="view_id" ref="account_asset_asset_view_tree"/>
<field name="domain">[('category_id.type', '=', 'purchase')]</field>
</record>
<!--Asset MenuItem-->
<menuitem parent="account.menu_finance_entries"
id="management_menu"
name="Management"
sequence="101" groups="account.group_account_user"/>
<menuitem parent="base_accounting_kit.management_menu"
id="menu_action_account_asset_asset_form"
action="action_account_asset_asset_form"
sequence="101" groups="account.group_account_user"/>
<!-- <menuitem parent="base_accounting_kit.management_menu"-->
<!-- id="menu_act_budget_view"-->
<!-- name="Budgets"-->
<!-- action="base_account_budget.act_budget_view" sequence="60"-->
<!-- groups="account.group_account_user"/>-->
<!-- Configuration -->
<menuitem id="menu_finance_config_assets"
name="Assets and Revenues"
parent="account.menu_finance_configuration"
sequence="25"/>
</odoo>
@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Asset Category Form View -->
<record model="ir.ui.view" id="account_asset_category_view_form">
<field name="name">account.asset.category.view.form</field>
<field name="model">account.asset.category</field>
<field name="arch" type="xml">
<form string="Asset category">
<sheet>
<group>
<div class="oe_title">
<label for="name" string="Asset Type"
class="oe_edit_only"
invisible="type != 'purchase'"/>
<label for="name" string="Deferred Revenue Type"
class="oe_edit_only"
invisible="type in 'purchase'"/>
<h1>
<field name="name" placeholder="e.g. Computers"/>
</h1>
</div>
<group>
<field name="type" invisible="1"/>
<field name="company_id" options="{'no_create': True}"/>
<field name="price"/>
</group>
<group string="Journal Entries">
<field name="journal_id"/>
<div>
<label for="account_asset_id" invisible="type != 'purchase'"/>
<label for="account_asset_id" string="Deferred Revenue Account" invisible="type != 'sale'"/>
</div>
<field name="account_asset_id" nolabel="1" invisible="not type"/>
<div>
<label for="account_depreciation_id" invisible="type != 'purchase'"/>
<label for="account_depreciation_id" string="Recognition Income Account" invisible="type != 'sale'"/>
</div>
<field name="account_depreciation_id" nolabel="1" />
<div>
<label for="account_depreciation_expense_id" invisible="type != 'purchase'"/>
<label for="account_depreciation_expense_id" string="Recognition Account" invisible="type != 'sale'"/>
</div>
<field name="account_depreciation_expense_id" nolabel="1"/>
<field name="account_analytic_id"/>
</group>
<group string="Periodicity">
<field name="method_time" string="Time Method Based On" widget="radio" invisible="type != 'purchase'"/>
<field name="method_number" string="Number of Entries"
invisible="method_time != 'number' and not type"
required="method_time in 'number'"/>
<label for="method_period" string="One Entry Every"/>
<div>
<field name="method_period" nolabel="1" invisible="not type" class="oe_inline"/>
months
</div>
<field name="method_end"
required="method_time in 'end'"
invisible="method_time != 'end'"/>
</group>
<group string="Additional Options">
<field name="open_asset"/>
<field name="group_entries"/>
</group>
<group invisible="type in 'sale'" string="Depreciation Method">
<field name="method"/>
<field name="method_progress_factor"
invisible="method in 'linear'"
required="method in 'degressive'" widget="percentage"/>
<field name="prorata"
invisible="method in 'end'"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- Asset Category Kanban View -->
<record id="account_asset_category_view_kanban" model="ir.ui.view">
<field name="name">account.asset.category.view.kanban</field>
<field name="model">account.asset.category</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile">
<field name="name"/>
<field name="journal_id"/>
<field name="method"/>
<templates>
<t t-name="card">
<div t-attf-class="oe_kanban_card oe_kanban_global_click">
<div class="row mb4">
<div class="col-xs-6">
<strong><span><t t-esc="record.name.value"/></span></strong>
</div>
<div class="col-xs-6 text-right">
<span class="badge"><strong><t t-esc="record.method.value"/></strong></span>
</div>
</div>
<div> <t t-esc="record.journal_id.value"/></div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Asset Category Tree View -->
<record model="ir.ui.view" id="account_asset_category_view_tree">
<field name="name">account.asset.category.view.tree</field>
<field name="model">account.asset.category</field>
<field name="arch" type="xml">
<list string="Asset category">
<field name="name"/>
<field name="journal_id"/>
<field name="method"/>
<field name="company_id" groups="base.group_multi_company"/>
</list>
</field>
</record>
<!-- Asset Category Search View -->
<record model="ir.ui.view" id="account_asset_category_view_search">
<field name="name">account.asset.category.view.search</field>
<field name="model">account.asset.category</field>
<field name="arch" type="xml">
<search string="Search Asset Category">
<filter name="type" string="Sales" domain="[('type','=', 'sale')]" help="Deferred Revenues"/>
<filter name="type" string="Purchase" domain="[('type','=', 'purchase')]" help="Assets"/>
<field name="name" string="Category"/>
<field name="journal_id"/>
<group>
<filter name="type" string="Type" domain="[]" context="{'group_by':'type'}"/>
</group>
</search>
</field>
</record>
<!-- Asset Category Action -->
<record model="ir.actions.act_window" id="action_account_asset_asset_list_normal_purchase">
<field name="name">Asset Types</field>
<field name="res_model">account.asset.category</field>
<field name="domain">[('type', '=', 'purchase')]</field>
<field name="view_mode">list,kanban,form</field>
<field name="context">{'default_type': 'purchase'}</field>
</record>
<!-- Asset Category MenuItem -->
<menuitem parent="account.account_account_menu"
id="menu_action_account_asset_asset_list_normal_purchase"
action="action_account_asset_asset_list_normal_purchase"
sequence="6"/>
</odoo>
@@ -0,0 +1,287 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Account Bank Statement Line Search View-->
<record id="account_bank_statement_line_view_search" model="ir.ui.view">
<field name="name">account.bank.statement.line.view.search</field>
<field name="model">account.bank.statement.line</field>
<field name="priority">999</field>
<field name="arch" type="xml">
<search>
<field name="name" string="Transaction"/>
<field name="payment_ref"/>
<field name="date"/>
<field name="statement_id"/>
<field name="partner_id"/>
<field name="journal_id"/>
<field name="narration" string="Notes"/>
<field name="amount"/>
<field name="move_id" string="Journal Entry"/>
<separator/>
<filter name="deposits" string="Deposits"
domain="[('amount','>',0.0)]"/>
<filter name="payments" string="Payments"
domain="[('amount','&lt;',0.0)]"/>
<separator/>
<filter name="no_statement" string="No Statement"
domain="[('statement_id','=',False)]"/>
<filter name="invalid_statement" string="Invalid Statement"
domain="[('statement_complete','=',False)]"/>
<separator/>
<filter name="matched" string="Matched"
domain="[('is_reconciled','=',True)]"/>
<filter name="not_matched" string="Not Matched"
domain="[('is_reconciled','=',False)]"/>
<filter name="to_check" string="To Check"
domain="[('to_check','=',True)]"/>
<separator/>
<filter name="date" string="Date" date="date"/>
</search>
</field>
</record>
<!-- Kanban view on statement line injected inside the form (view_bank_reconcile_widget) -->
<record id="account_bank_statement_line_view_kanban" model="ir.ui.view">
<field name="name">account.bank.statement.line.view.kanban</field>
<field name="model">account.bank.statement.line</field>
<field name="arch" type="xml">
<kanban js_class="custom_kanban"
on_create="base_accounting_kit.action_bank_statement_line_form_bank_reconcile_widget">
<field name="id" invisible="1"/>
<field name="state" invisible="1"/>
<field name="statement_complete" invisible="1"/>
<field name="statement_valid" invisible="1"/>
<field name="sequence" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="journal_id" invisible="1"/>
<field name="statement_id" invisible="1"/>
<field name="is_reconciled" invisible="1"/>
<field name="to_check" invisible="1"/>
<field name="partner_bank_id" invisible="1"/>
<field name="currency_id" invisible="1"/>
<field name="foreign_currency_id" invisible="1"/>
<field name="statement_line_id" invisible="1"/>
<field name="lines_widget_json" invisible="1"/>
<templates>
<t t-name="card">
<div t-attf-class="oe_kanban_card oe_kanban_global_click o_bank_reconcile_st_line_kanban_card"
t-att-data-oe-id="record.id">
<t t-set="text_amount_class" t-value="record.amount &lt; 0.0 and 'text-danger'"/>
<!-- Statement Button -->
<div t-if="!record.statement_complete.raw_value" class="statement_button text-center mb-2">
<a role="button"
class="btn btn-secondary btn-sm statement"
tabindex="-1" type="action"
name="%(base_accounting_kit.action_bank_statement_create_form_bank_reconcile_widget)d">
Statement
</a>
</div>
<!-- Main Content -->
<div class="container-fluid p-0">
<!-- First Row -->
<div class="row g-0 align-items-center mb-1">
<div class="col-auto pe-2">
<strong class="bold_date">
<field name="date" class="d-inline"/>
</strong>
</div>
<div class="col text-truncate">
<em>
<field name="partner_id" class="d-inline"/>
</em>
</div>
<div t-if="record.statement_id.raw_value" class="col-auto ms-auto">
<div t-attf-class="text-truncate {{!(record.statement_complete.raw_value and record.statement_valid.raw_value) and 'text-danger' or ''}}">
<field name="statement_id" class="d-inline"/>
</div>
</div>
<div class="col-auto">
<strong t-att-class="text_amount_class">
<field name="amount" class="d-inline"/>
</strong>
</div>
</div>
<!-- Second Row -->
<div class="row g-0 align-items-center">
<div class="col text-truncate pe-2">
<field name="payment_ref" class="d-inline"/>
</div>
<div class="col-auto">
<div class="o_field_many2manytags o_field_widget d-flex flex-wrap gap-1">
<span t-if="record.to_check.raw_value"
class="badge text-bg-warning fw-normal to_check">
To Check
</span>
<div t-if="record.is_reconciled.raw_value"
class="badge text-bg-success fw-normal">
<i class="fa fa-check me-1"></i>
Matched
</div>
</div>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Account Bank Statement Line Tree View -->
<record id="account_bank_statement_line_view_tree" model="ir.ui.view">
<field name="name">account.bank.statement.line.view.tree</field>
<field name="model">account.bank.statement.line</field>
<field name="arch" type="xml">
<list editable="top">
<field name="statement_complete" column_invisible="1"/>
<field name="statement_valid" column_invisible="1"/>
<field name="state" column_invisible="1"/>
<field name="is_reconciled" column_invisible="1"/>
<field name="to_check" column_invisible="1"/>
<field name="country_code" column_invisible="1"/>
<field name="currency_id" column_invisible="1"/>
<field name="sequence" widget="handle" column_invisible="1"/>
<field name="date"
readonly="is_reconciled == True and amount != 0"
options="{'datepicker':{'warn_future':true}}"/>
<field name="payment_ref" string="Label"/>
<field name="partner_id" string="Partner"/>
<field name="amount"
readonly="is_reconciled == True and amount != 0"/>
<field name="running_balance" string="Running Balance"/>
<field name="statement_id" string="Statement"/>
</list>
</field>
</record>
<!-- Account Bank Statement Line Form View -->
<record id="account_bank_statement_line_view_form"
model="ir.ui.view">
<field name="name">account.bank.statement.line.view.form</field>
<field name="model">account.bank.statement.line</field>
<field name="arch" type="xml">
<form string="Add a Transaction">
<field name="state" invisible="1"/>
<field name="statement_complete" invisible="1"/>
<field name="statement_valid" invisible="1"/>
<field name="is_reconciled" invisible="1"/>
<field name="suitable_journal_ids" invisible="1"/>
<field name="currency_id" invisible="1"/>
<group>
<group>
<field name="date"
readonly="is_reconciled == True and amount != 0"/>
<field name="payment_ref" required="1"
readonly="is_reconciled == True and amount != 0"/>
<field name="partner_id"
readonly="is_reconciled == True and amount != 0"/>
</group>
<group>
<field name="amount"
readonly="is_reconciled == True and amount != 0"/>
<field name="foreign_currency_id"
groups="base.group_multi_currency"
domain="[('id', '!=', currency_id)]"
options="{'no_open': True, 'no_create': True}"
readonly="is_reconciled == True and amount != 0"/>
<field name="amount_currency"
groups="base.group_multi_currency"
invisible="foreign_currency_id == False"
readonly="is_reconciled == True and amount != 0"/>
<field name="journal_id"
domain="[('type', 'in', ['bank', 'cash'])]"
readonly="context.get('default_journal_id') and is_reconciled == True and amount != 0"/>
</group>
</group>
</form>
</field>
</record>
<!-- Action Account Statement Line -->
<record id="action_bank_statement_line_form_bank_reconcile_widget"
model="ir.actions.act_window">
<field name="name">Add a Transaction</field>
<field name="res_model">account.bank.statement.line</field>
<field name="view_mode">form</field>
<field name="view_id"
ref="account_bank_statement_line_view_form"/>
<field name="target">new</field>
</record>
<!--Account Bank Statement Line Form View-->
<record id="view_bank_reconcile_widget_form" model="ir.ui.view">
<field name="name">account.bank.statement.line.view.form</field>
<field name="model">account.bank.statement.line</field>
<field name="arch" type="xml">
<form class="form_bank">
<field name="to_check" invisible="1"/>
<field name="state" invisible="1"/>
<field name="bank_state" invisible="1"/>
<div class="o_bank_reconcile_stats_buttons">
<div class="o_statusbar_buttons o_bank_reconcile_status_buttons_aside_left">
<button name="button_validation"
string="Validate" type="object"
class="btn btn-primary" id="validationButton"
invisible="bank_state != 'valid'"/>
<button string="Validate"
class="btn btn-secondary text-muted"
invisible="bank_state != 'invalid'"/>
<button name="button_reset"
invisible="bank_state != 'reconciled'"
string="Reset" type="object"/>
<button name="button_to_check"
string="To Check" type="object"
class="btn btn-secondary"
invisible="to_check == True"/>
<button name="button_set_as_checked"
string="Set as Checked"
type="object"
invisible="to_check == False"/>
</div>
<div class="bank_reconcile_models"
style="margin-left: 880px;margin-top: 10px;"
invisible="bank_state not in ('valid','invalid')">
</div>
</div>
<field name="lines_widget"
widget="bank_reconcile_widget_lines_widget"
class="w-100"/>
<notebook name="bank_reconcile_widget_notebook">
<page string="Match Existing Entries"
invisible="bank_state == 'reconciled'">
<widget name="form_list_view"
resModel="account.move.line"/>
</page>
<page name="manual_operations_tab"
string="Manual Operations"
invisible="bank_state == 'reconciled'">
<group>
<group>
<field name="partner_id"
string="Partner"/>
<field name='account_id' string="Account"/>
<field name="tax_ids" string="Taxes"
widget="many2many_tags"/>
<field name="analytic_distribution"
widget="analytic_distribution"/>
</group>
<group>
<field name="payment_ref" string="Label"
id="payment_form"/>
<field name="amount" string="Amount"/>
<div class="d-flex">
<span class="ml4 mr4">in</span>
<field name="company_currency_id"
style="width:120px"/>
</div>
</group>
</group>
</page>
<page name="discuss_page" string="Discuss">
<div class="bank_reconcile_widget_discuss_anchor">
<chatter/>
</div>
</page>
</notebook>
</form>
</field>
</record>
</odoo>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Account Bank Statement Form View -->
<record id="account_bank_statement_view_form"
model="ir.ui.view">
<field name="name">account.bank.statement.view.form</field>
<field name="model">account.bank.statement</field>
<field name="priority">100</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name" required="1"/>
<field name="balance_start"/>
<field name="balance_end_real"/>
<field name="attachment_ids" widget="many2many_binary"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Action Account Bank Statement -->
<record id="action_bank_statement_create_form_bank_reconcile_widget"
model="ir.actions.act_window">
<!-- Binding removed since the same can be achieved with multi-edit -->
<field name="name">Create Statement</field>
<field name="res_model">account.bank.statement</field>
<field name="view_mode">form</field>
<field name="view_id"
ref="account_bank_statement_view_form"/>
<field name="target">new</field>
</record>
</odoo>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!--Inheriting account form view-->
<record id="view_account_form" model="ir.ui.view">
<field name="name">account.account.view.form.inherit.base.accounting.kit</field>
<field name="model">account.account</field>
<field name="inherit_id" ref="account.view_account_form"/>
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='active']" position="after">
<field name="cash_flow_type" widget="selection"/>
</xpath>
</data>
</field>
</record>
</odoo>
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- FollowUp View Form -->
<record id="account_followup_view_form" model="ir.ui.view">
<field name="name">account.followup.view.form</field>
<field name="model">account.followup</field>
<field name="arch" type="xml">
<form string="Follow-up">
<h1><field name="name"/></h1>
<label for="company_id" groups="base.group_multi_company"/>
<field name="company_id" options="{'no_create': True}" class="oe_inline"
groups="base.group_multi_company"/>
<p class="oe_grey">
To remind customers of paying their invoices, you can
define different actions depending on how severely
overdue the customer is. These actions are bundled
into follow-up levels that are triggered when the due
date of an invoice has passed a certain
number of days. If there are other overdue invoices for the
same customer, the actions of the most
overdue invoice will be executed.
</p>
<field name="followup_line_ids"/>
</form>
</field>
</record>
<!-- FollowUp View Tree -->
<record id="account_followup_view_tree" model="ir.ui.view">
<field name="name">account.followup.view.tree</field>
<field name="model">account.followup</field>
<field name="arch" type="xml">
<list string="Follow-up">
<field name="company_id" />
</list>
</field>
</record>
<!-- FollowUp Search View -->
<record id="account_followup_view_search" model="ir.ui.view">
<field name="name">account.followup.view.search</field>
<field name="model">account.followup</field>
<field name="arch" type="xml">
<search string="Search Follow-up">
<field name="company_id" groups="base.group_multi_company"/>
</search>
</field>
</record>
<!-- FollowUp Kanban View -->
<record id="account_followup_view_kanban" model="ir.ui.view">
<field name="name">account.followup.view.kanban</field>
<field name="model">account.followup</field>
<field name="arch" type="xml">
<kanban>
<field name="name"/>
<templates>
<t t-name="card">
<div t-attf-class="oe_kanban_global_click">
<div>
<strong><i class="fa fa-building" role="img" aria-label="Enterprise"/> <t t-esc="record.name.value"/></strong>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Action FollowUp -->
<record id="action_account_followup_definition_form" model="ir.actions.act_window">
<field name="name">Payment Follow-ups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.followup</field>
<field name="search_view_id" ref="account_followup_view_search"/>
<field name="view_mode">list,kanban,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Define follow-up levels and their related actions
</p>
<p>
For each step, specify the actions to be taken and delay in days. It is
possible to use print and e-mail templates to send specific messages to
the customer.
</p>
</field>
</record>
<!-- FollowUp MenuItem -->
<menuitem action="action_account_followup_definition_form" id="account_followup_menu"
parent="account.account_account_menu" name="Follow-up Levels"
groups="base_accounting_kit.group_account_chief" sequence="2"/>
</odoo>
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Account Group Form View -->
<record id="account_group_view_form" model="ir.ui.view">
<field name="name">account.group.view.form</field>
<field name="model">account.group</field>
<field name="arch" type="xml">
<form string="Account Groups">
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name"/>
</h1>
</div>
<group>
<group>
<field name="code_prefix_start"/>
<field name="code_prefix_end"/>
<field name="company_id"/>
</group>
</group>
</sheet>
<chatter/>
</form>
</field>
</record>
<!-- Account Group Tree View -->
<record id="account_group_view_tree" model="ir.ui.view">
<field name="name">account.group.view.tree</field>
<field name="model">account.group</field>
<field name="arch" type="xml">
<list string="Account Groups">
<field name="name"/>
<field name="code_prefix_start"/>
<field name="code_prefix_end"/>
<field name="company_id"/>
</list>
</field>
</record>
<!--Account Groups Action-->
<record id="action_account_group" model="ir.actions.act_window">
<field name="name">Account Groups</field>
<field name="res_model">account.group</field>
<field name="view_mode">list,form</field>
</record>
<!--Account Groups MenuItem-->
<menuitem id="menu_account_group" name="Account Groups"
action="action_account_group" sequence="10"
parent="account.account_account_menu"/>
</odoo>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!--Inheriting Account Journal Kanban View-->
<record id="account_journal_dashboard_kanban_view" model="ir.ui.view">
<field name="name">account.journal.view.kanban.inherit.base.accounting.kit</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.account_journal_dashboard_kanban_view" />
<field name="arch" type="xml">
<xpath
expr="//kanban/templates//div[@id='dashboard_bank_cash_left']"
position="inside">
<!-- <t t-if="dashboard.number_to_reconcile > 0">-->
<!-- <button class="btn btn-primary"-->
<!-- type="object"-->
<!-- name="action_open_reconcile">-->
<!-- <t t-esc="dashboard.number_to_reconcile"/> to Reconcile-->
<!-- </button>-->
<!-- </t>-->
<t t-if="journal_type == 'bank'">
<a name="action_import_wizard" type="object"
class="oe_inline"
groups="account.group_account_invoice">Import
</a>
</t>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Account Move Line Tree View -->
<record id="account_move_line_view_tree"
model="ir.ui.view">
<field name="name">account.move.line.view.tree</field>
<field name="model">account.move.line</field>
<field name="priority">999</field>
<field name="arch" type="xml">
<list edit="false"
create="false"
limit="40"
count_limit="40"
js_class="account_move_line_list_controller">
<field name="company_id" column_invisible="1"/>
<field name="payment_id" column_invisible="1"/>
<field name="currency_id" column_invisible="1"/>
<field name="company_currency_id" column_invisible="1"/>
<field name="account_id"/>
<field name="journal_id" optional="hidden"/>
<field name="partner_id" optional="show"/>
<field name="date"/>
<field name="move_id"/>
<field name="name"/>
<field name="date_maturity" optional="hidden"/>
<field name="ref" optional="hidden"/>
<field name="analytic_distribution"
widget="analytic_distribution"
optional="hidden"/>
<field name="amount_residual_currency"
decoration-danger="amount_residual_currency &lt; 0"
string="Open Amount In Currency"/>
<field name="amount_residual"
decoration-danger="amount_residual &lt; 0"
string="Open Amount"/>
<button name="action_open_business_doc"
type="object"
string="View"
class="btn btn-sm btn-secondary"/>
</list>
</field>
</record>
</odoo>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Add "Asset Category" to supplier invoices -->
<record model="ir.ui.view" id="view_move_form">
<field name="name">account.move.view.form.inherit.base.accounting.kit</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_move_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='invoice_line_ids']/list/field[@name='account_id']" position="before">
<field string="Asset Category" column_invisible="parent.move_type != 'in_invoice'"
name="asset_category_id" domain="[('type','=','purchase')]" context="{'default_type':'purchase'}"/>
</xpath>
<!-- <xpath expr="//field[@name='line_ids']/list/field[@name='account_id']" position="after">-->
<!-- <field string="Asset Category" name="asset_category_id" invisible="1"/>-->
<!-- </xpath>-->
<xpath expr="//field[@name='ref']" position="after">
<field name="has_due" invisible="1"/>
<field name="is_warning" invisible="1"/>
</xpath>
<xpath expr="//header" position="after">
<div class="alert alert-info" role="alert" style="height: 40px; margin-bottom:10px;"
invisible="not has_due or move_type not in ['out_invoice','out_refund','out_receipt']">
This Customer's due amount is <strong><field name="due_amount"/></strong>.
</div>
</xpath>
<xpath expr="//sheet/div[@name='button_box']" position="after">
<div role="alert" class="alert alert-danger" style="height: 40px; margin-bottom:10px;"
invisible="not is_warning or move_type not in ['out_invoice','out_refund','out_receipt']">
This customer's <strong>warning limit</strong> has been crossed.
</div>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Inheriting Account Payment Form View -->
<record id="view_account_payment_form" model="ir.ui.view">
<field name="name">account.payment.view.form.inherit.base.accounting.kit</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='button_box']" position="after">
<widget name="web_ribbon" title="Sent"
invisible="is_sent != True"/>
</xpath>
<xpath expr="//button[@name='action_post']" position="before">
<button name="print_checks" class="oe_highlight"
invisible="payment_method_code not in ['check_printing','pdc'] or state != 'posted'"
string="Print Check" type="object"/>
<button name="unmark_as_sent"
invisible="payment_method_code not in ['check_printing','pdc'] or state != 'sent'"
string="Unmark Sent" type="object"/>
</xpath>
<xpath expr="//div[@name='amount_div']" position="after">
<field name="check_amount_in_words"
invisible="payment_method_code not in ['check_printing','pdc'] or state != 'draft'"
groups="base.group_no_one"/>
</xpath>
<!-- <xpath expr="//field[@name='ref']" position="after">-->
<xpath expr="//field[@name='date']" position="after">
<field name="check_manual_sequencing" invisible="1"/>
<field name="check_number"
invisible="payment_method_code not in ['check_printing','pdc'] or check_number == 0"/>
</xpath>
<xpath expr="//field[@name='date']" position="after">
<field name="effective_date"
invisible="payment_method_code != 'pdc'"
required="payment_method_code in 'pdc'"
readonly="state not in ('draft')"/>
<field name="bank_reference"/>
<field name="cheque_reference" readonly="state != 'draft'"/>
</xpath>
</field>
</record>
<record id="view_bank_statement_line_tree" model="ir.ui.view">
<field name="name">account.bank.statement.line.view.tree</field>
<field name="model">account.bank.statement.line</field>
<field name="priority">8</field>
<field name="arch" type="xml">
<list string="Statement lines" create="false"
default_order="date desc, statement_id desc, sequence desc, id desc">
<!-- Invisible fields -->
<field name="state" column_invisible="1"/>
<field name="sequence" readonly="1" column_invisible="1"/>
<field name="company_id" column_invisible="1"/>
<field name="journal_id" column_invisible="1"/>
<field name="is_reconciled" column_invisible="1"/>
<field name="partner_bank_id" column_invisible="1"/>
<field name="currency_id" column_invisible="1"/>
<!-- Displayed fields -->
<field name="statement_id" optional="hide"/>
<field name="move_id"/>
<field name="date"/>
<field name="payment_ref"/>
<field name="partner_id"/>
<field name="ref" groups="base.group_no_one" optional="hidden"/>
<field name="narration" string="Notes" optional="hidden"/>
<field name="transaction_type" optional="hidden"/>
<field name="amount_currency" optional="hidden" groups="base.group_multi_currency"/>
<field name="foreign_currency_id" optional="hidden" groups="base.group_multi_currency"/>
<field name="amount"/>
<field name="account_number" optional="hidden"/>
</list>
</field>
</record>
<!-- For multiple payments -->
<record model="ir.ui.view" id="view_account_payment_register_form">
<field name="name">account.payment.register.view.form.base.accounting.kit</field>
<field name="model">account.payment.register</field>
<field name="inherit_id" ref="account.view_account_payment_register_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_date']" position="after">
<field name="effective_date"/>
<field name="bank_reference"/>
<field name="cheque_reference"/>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!--Recurring Templates Form view-->
<record id="account_recurring_payments_view_form" model="ir.ui.view">
<field name="name">account.recurring.payments.view.form</field>
<field name="model">account.recurring.payments</field>
<field name="arch" type="xml">
<form string="Recurring Template">
<header>
<field name="state" widget="statusbar" options="{'clickable': '1'}"/>
</header>
<sheet>
<group>
<group>
<field name="name"/>
<field name="pay_time"/>
</group>
<group>
<field name="recurring_period"/>
<field name="recurring_interval" class="o_address_zip"/>
</group>
<group>
<field name="partner_id" invisible="pay_time != 'pay_later'"/>
<field name="company_id" invisible="1"/>
</group>
<group>
<field name="date"/>
<field name="next_date"/>
<field name="amount"/>
</group>
</group>
<notebook>
<page name="accounting_info" string="Accounting Info">
<group>
<group>
<field name="credit_account"/>
<field name="debit_account"/>
</group>
<group>
<field name="journal_id"/>
<field name="journal_state"/>
</group>
</group>
<group>
<group>
<field name="analytic_account_id"/>
</group>
</group>
</page>
<page name="other_info" string="Other Info">
<group>
<field name="description" placeholder="Description..." nolabel="1" colspan="4"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!--Recurring Templates Tree View-->
<record id="account_recurring_payments_view_tree" model="ir.ui.view">
<field name="name">account.recurring.payments.view.tree</field>
<field name="model">account.recurring.payments</field>
<field name="arch" type="xml">
<list string="Recurring Templates">
<field name="name"/>
<field name="partner_id"/>
<field name="debit_account"/>
<field name="credit_account"/>
<field name="journal_id"/>
<field name="date"/>
<field name="amount"/>
<field name="state"/>
</list>
</field>
</record>
<!--Action for Recurring Templates-->
<record id="action_account_recurring_payments_view" model="ir.actions.act_window">
<field name="name">Recurring Templates</field>
<field name="res_model">account.recurring.payments</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">list,form</field>
<field name="view_id" ref="account_recurring_payments_view_tree"/>
<field name="target">current</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">Click to create new recurring payment template</p>
</field>
</record>
<!--Action for Recurring Templates MenuItem-->
<menuitem id="account_recurring_payments_child1"
name="Recurring Templates" groups="account.group_account_user"
action="action_account_recurring_payments_view"
parent="account.root_payment_menu"/>
</odoo>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Change invoicing menu to Accounting -->
<record model="ir.ui.menu" id="account.menu_finance">
<field name="name">Accounting</field>
</record>
<!-- Menu Generic Statements-->
<menuitem id="account_reports_generic_statements" sequence="1"
name="Generic Statements"
parent="account.menu_finance_reports"/>
<menuitem id="account_reports_daily_reports" sequence="2"
name="Daily Reports" parent="account.menu_finance_reports"/>
<menuitem id="account_reports_partner" sequence="3"
name="Partner Reports" parent="account.menu_finance_reports"/>
<menuitem id="account_reports_audit" sequence="4"
name="Audit Reports" parent="account.menu_finance_reports"/>
</odoo>
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Partner View Form Inherited -->
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.view.form.inherit.base.accounting.kit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='accounting']" position="inside">
<group string="Credit Limit" invisible="not enable_credit_limit">
<group>
<field name="active_limit"/>
<field name="enable_credit_limit" invisible="1"/>
<field name="warning_stage" invisible="not active_limit"/>
<field name="blocking_stage" invisible="not active_limit"/>
</group>
</group>
</xpath>
</field>
</record>
<!-- Sale Order Form View Inherited -->
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.view.form.inherit.base.accounting.kit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='payment_term_id']" position="after">
<field name="has_due" invisible="1"/>
<field name="is_warning" invisible="1"/>
</xpath>
<xpath expr="//header" position="after">
<div class="alert alert-info" role="alert" style="height: 40px; margin-bottom:10px;"
invisible="not has_due">
This Customer's due amount is <strong><field name="due_amount"/></strong>.
</div>
</xpath>
<xpath expr="//sheet/div[@name='button_box']" position="after">
<div role="alert" class="alert alert-danger" style="height: 40px; margin-bottom:10px;"
invisible="not is_warning">
This customer's <strong>warning limit</strong> has been crossed.
</div>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- FollowUp Line Tree View -->
<record id="followup_line_view_tree" model="ir.ui.view">
<field name="name">followup.line.view.tree</field>
<field name="model">followup.line</field>
<field name="arch" type="xml">
<list string="Follow-up Steps" >
<field name="name"/>
<field name="delay"/>
</list>
</field>
</record>
<!-- FollowUp Line Form View -->
<record id="followup_line_view_form" model="ir.ui.view">
<field name="name">followup.line.view.form</field>
<field name="model">followup.line</field>
<field name="arch" type="xml">
<form string="Follow-up Steps">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
<div class="oe_inline">
After <field name="delay" class="oe_inline"/> days overdue, do the following actions:
</div>
</form>
</field>
</record>
</odoo>
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Res Partner FollowUp Form View-->
<record id="res_partner_followup_view_form" model="ir.ui.view">
<field name="name">res.partner.followup.view.form</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<form string="report" create="false" edit="false">
<header>
<field name="followup_status" widget="statusbar"/>
</header>
<div class="alert alert-info" role="alert"
style="font-size: 15px;display: inline-block; margin-top:10px;margin-left: 201px;">
<span>Wonder how to Send Followup mails and Print Followup Reports ? Download our
<a target="_blank"
href="https://apps.odoo.com/apps/modules/16.0/customer_followup_community">
<b>Customer Followup</b>
</a>
Module !
</span>
</div>
<sheet>
<div class="oe_title">
<h1>
<field name="name" readonly="1"/>
</h1>
</div>
<br/>
<div class="alert alert-warning o_account_reports_followup-no-action"
invisible="invoice_list != []"
id='no-action' role="alert">
<p>
<strong>
<field name="name"/>
</strong>
has no due amount.
</p>
</div>
<div invisible="invoice_list != []">
<group>
<field name="next_reminder_date"/>
</group>
<notebook colspan="4">
<page string="Invoice Details">
<field name="invoice_list"/>
</page>
</notebook>
</div>
<group class="oe_subtotal_footer oe_right" colspan="2" name="sale_total">
<field name="total_due" class="oe_subtotal_footer_separator" widget="monetary"/>
<div class="oe_subtotal_footer_separator oe_inline o_td_label">
<label for="total_overdue"/>
</div>
<field name="total_overdue" nolabel="1" class="oe_subtotal_footer_separator"
widget="monetary"/>
</group>
</sheet>
<chatter/>
</form>
</field>
</record>
<!-- Res Partner Statements Form View-->
<record id="res_partner_statements_view_tree" model="ir.ui.view">
<field name="name">res.partner.statements.view.tree</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<list string="Follow-up Reports Tree View" create="false" import="false" delete="false">
<field name="currency_id" invisible="1"/>
<field name="name"/>
<field name="total_due" widget="monetary" options="{'currency_field': 'currency_id'}" sum="Total"/>
<field name="total_overdue" widget="monetary" options="{'currency_field': 'currency_id'}"
sum="Total"/>
<field name="followup_status"/>
</list>
</field>
</record>
<!--Res Partner Search View Inherit-->
<record id="view_res_partner_filter" model="ir.ui.view">
<field name="name">res.partner.view.search.inherit.base.accounting.kit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<filter name="supplier" position="after">
<separator/>
<filter string="Overdue Invoices"
name="filter_with_overdue_invoices"
domain="[('followup_status', '=', 'with_overdue_invoices')]"/>
<filter string="In need of action"
name="filter_in_need_of_action"
domain="[('followup_status', '=', 'in_need_of_action')]"/>
<filter string="No action needed"
name="filter_no_action_needed"
domain="[('followup_status', '=', 'no_action_needed')]"/>
<separator/>
</filter>
</field>
</record>
<!--Action follow-up report -->
<record id="action_view_list_customer_statements" model="ir.actions.act_window">
<field name="name">Follow-up Reports</field>
<field name="res_model">res.partner</field>
<field name="view_mode">list,form</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'list', 'view_id': ref('res_partner_statements_view_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('res_partner_followup_view_form')})]"/>
<field name="context">{'search_default_filter_in_need_of_action':1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No follow-up to send!
</p>
</field>
</record>
<!--Follow-up Reports MenuItem-->
<menuitem id="customer_statements_menu" name="Follow-up Reports"
parent="account.menu_finance_receivables"
action="action_view_list_customer_statements" sequence="20"
groups="account.group_account_user"/>
</odoo>
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Account Journal Form View Inherit-->
<record id="view_account_journal_form" model="ir.ui.view">
<field name="name">account.journal.view.form.inherit.base.accounting.kit</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form" />
<field name="arch" type="xml">
<page name="advanced_settings" position="inside">
<group string="Multiple Invoice Copies" invisible="type not in ['sale', 'purchase']">
<field name="multiple_invoice_type" style="width: 40%"/>
</group>
<group invisible="type not in ['sale', 'purchase']">
<div class="mt8">
<button name="%(base_accounting_kit.action_multiple_invoice_layout_configurator)d" string="Configure Copy Layout" type="action" class="oe_link" icon="fa-arrow-right"/>
</div>
</group>
<group>
<group invisible="type not in ['sale', 'purchase']">
<div>
<field name="multiple_invoice_ids" widget="one2many" nolabel="1">
<list editable="bottom">
<field name="sequence" widget="handle"/>
<field name="copy_name" style="width: 75"/>
</list>
</field>
</div>
</group>
</group>
</page>
</field>
</record>
</odoo>
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Multiple Invoice Layout Form View -->
<record id="multiple_invoice_layout_view_form" model="ir.ui.view">
<field name="name">multiple.invoice.layout.view.form</field>
<field name="model">multiple.invoice.layout</field>
<field name="arch" type="xml">
<form class="o_document_layout">
<group>
<group class="o_document_layout_company">
<field name="company_id" invisible="1"/>
<field name="journal_id" invisible="1"/>
<field name="multiple_invoice_type"/>
<field name="text_position" widget="selection"
invisible="multiple_invoice_type != 'text'"
/>
<field name="body_text_position" widget="radio"
invisible="multiple_invoice_type != 'text' or text_position != 'body'"/>
<field name="text_align" widget="radio" string="Text Align"
invisible="multiple_invoice_type != 'text' or text_position not in ['header', 'footer']"/>
</group>
<div>
<field name="preview" widget="iframe_wrapper" />
</div>
</group>
<footer>
<button string="Save" class="btn-primary" type="object" name="document_layout_save"/>
<button special="cancel" string="Cancel" />
</footer>
</form>
</field>
</record>
<!-- Action Multiple Invoice Layout -->
<record id="action_multiple_invoice_layout_configurator" model="ir.actions.act_window">
<field name="type">ir.actions.act_window</field>
<field name="name">Configure Copy layout</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="res_model">multiple.invoice.layout</field>
<field name="view_id" ref="base_accounting_kit.multiple_invoice_layout_view_form"/>
</record>
</odoo>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Product Template -->
<record id="product_template_form_view" model="ir.ui.view">
<field name="name">product.template.view.form.inherit.base.accounting.kit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<field name="property_account_expense_id" position="after">
<field name="asset_category_id"
domain="[('type', '=', 'purchase')]"
context="{'default_type': 'purchase'}"
groups="account.group_account_user"/>
</field>
</field>
</record>
</odoo>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Product Template -->
<record id="view_product_template_form_inherit" model="ir.ui.view">
<field name="name">product.template.view.form.inherit.base.accounting.kit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="account.product_template_form_view"/>
<field name="arch" type="xml">
<field name="property_account_expense_id" position="after">
<field name="asset_category_id"
domain="[('type', '=', 'purchase')]"
context="{'default_type': 'purchase'}"
groups="account.group_account_user"/>
</field>
</field>
</record>
</odoo>
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- Account Financial Report Form View -->
<record id="account_financial_report_view_form" model="ir.ui.view">
<field name="name">account.financial.report.view.form</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
<form string="Account Report">
<group col="4">
<field name="name"/>
<field name="parent_id"/>
<field name="sequence"/>
<field name="type"/>
<field name="sign"/>
<field name="style_overwrite"/>
</group>
<notebook invisible="type not in ['accounts','account_type', 'account_report']">
<page string="Report">
<group>
<field name="display_detail"
invisible="type not in ['accounts','account_type']"/>
<field name="account_report_id"
invisible="type not in ['accounts','account_report']"/>
</group>
<field name="account_ids" invisible="type != 'accounts'"/>
<field name="account_type_ids" invisible="type != 'account_type'"/>
</page>
</notebook>
</form>
</field>
</record>
<!-- Account Financial Report Tree View -->
<record id="account_financial_report_view_tree" model="ir.ui.view">
<field name="name">account.financial.report.view.tree</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
<list string="Account Report">
<field name="name"/>
<field name="parent_id" invisible="1"/>
<field name="type"/>
<field name="account_report_id"/>
</list>
</field>
</record>
<!-- Account Financial Report Search View -->
<record id="account_financial_report_view_search" model="ir.ui.view">
<field name="name">account.financial.report.view.search</field>
<field name="model">account.financial.report</field>
<field name="arch" type="xml">
<search string="Account Report">
<field name="name" string="Account Report"/>
<field name="type"/>
<field name="account_report_id"/>
<field name="parent_id"/>
<group>
<filter string="Parent Report"
name="group_by_parent_rep"
context="{'group_by':'parent_id'}"/>
<filter string="Report Type"
name="group_by_rep_type"
context="{'group_by':'type'}"/>
</group>
</search>
</field>
</record>
<!-- Action Account Financial Report -->
<record id="action_account_financial_report_tree"
model="ir.actions.act_window">
<field name="name">Financial Reports</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.financial.report</field>
<field name="view_mode">list,form</field>
<field name="search_view_id"
ref="account_financial_report_view_search"/>
<field name="view_id" ref="account_financial_report_view_tree"/>
</record>
<!-- Account Financial Report MenuItem -->
<menuitem id="menu_account_financial_reports_tree"
name="Account Reports" parent="account.account_account_menu"
action="action_account_financial_report_tree"/>
</odoo>
@@ -0,0 +1,39 @@
<odoo>
<!--Res Config Settings Form View-->
<record id="res_config_settings_view_form_base_accounting_kit" model="ir.ui.view">
<field name="name">res.config.view.inherited.base.accounting.kit</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="30"/>
<field name="inherit_id" ref="account.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//block[@id='invoicing_settings']" position="inside">
<setting id="customer_credit" help="Enable credit limit for customers">
<field name="customer_credit_limit" on_change="1"/>
</setting>
</xpath>
<!-- Remove the enterprise budget option -->
<xpath expr="//setting[@id='account_budget']" position="replace"/>
<xpath expr="//block[@id='bank_cash']" position="inside">
<setting id="anglo_saxon" help="It will record the cost of good sold">
<field name="use_anglo_saxon_accounting"/>
</setting>
</xpath>
<setting id="fiscalyear" position="replace">
<setting id="fiscalyear">
<div class="o_setting_right_pane">
<separator string="Fiscal Year"/>
<div class="content-group">
<div class="row mt16">
<label for="fiscalyear_last_month" string="Last Day"
class="col-lg-3 o_light_label"/>
<field name="fiscalyear_last_month" style="width: 100px; margin-right: 8px;"/>
<field name="fiscalyear_last_day" class="oe_inline"/>
</div>
</div>
</div>
</setting>
</setting>
</field>
</record>
</odoo>
@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<!-- Customer and vendor statements -->
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.view.form.inherit.base.account.report
</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='sales_purchases']" position="after">
<page name="customer_statement_page"
string="Customer Statement">
<button name="action_print_pdf" type="object"
class="btn-secondary">
Print PDF
</button>
<button name="action_print_xlsx" type="object"
class="btn-secondary">
Print Excel
</button>
<button name="action_share_pdf" type="object"
class="btn-secondary">
Sent PDF By Email
</button>
<button name="action_share_xlsx" type="object"
class="btn-secondary">
Sent Excel By Email
</button>
<br/>
<br/>
<field name="customer_report_ids">
<list create='false' delete="false">
<field name="currency_id" column_invisible="1"/>
<field name="invoice_date"
string="Invoice Date"/>
<field name="name" string="Invoice No."/>
<field name="invoice_date_due"/>
<field name="amount_total_signed"
sum="Total Amount" string="Total Amount"
widget="monetary"
options="{'currency_field': 'currency_id'}"/>
<field name="amount_residual_signed"
string="Amount Due" widget="monetary"
options="{'currency_field': 'currency_id'}"/>
<field name="amount_residual" sum="Balance Due"
string="Balance" widget="monetary"
options="{'currency_field': 'currency_id'}"/>
</list>
</field>
</page>
<!-- <page name="supplier_statement"-->
<!-- string="Supplier Statement">-->
<!-- <button name="action_vendor_print_pdf" type="object"-->
<!-- class="btn-secondary">-->
<!-- Print PDF-->
<!-- </button>-->
<!-- <button name="action_vendor_print_xlsx" type="object"-->
<!-- class="btn-secondary">-->
<!-- Print Excel-->
<!-- </button>-->
<!-- <button name="action_vendor_share_pdf" type="object"-->
<!-- class="btn-secondary">-->
<!-- Sent PDF By Email-->
<!-- </button>-->
<!-- <button name="action_vendor_share_xlsx" type="object"-->
<!-- class="btn-secondary">-->
<!-- Sent Excel By Email-->
<!-- </button>-->
<!-- <br/>-->
<!-- <br/>-->
<!-- <field name="vendor_statement_ids">-->
<!-- <list create="false" delete="false">-->
<!-- <field name="currency_id" column_invisible="1"/>-->
<!-- <field name="invoice_date" string="Bill Date"/>-->
<!-- <field name="name" string="Bill No."/>-->
<!-- <field name="invoice_date_due"/>-->
<!-- <field name="amount_total_signed"-->
<!-- sum="Total Amount" string="Total Amount"-->
<!-- widget="monetary"-->
<!-- options="{'currency_field': 'currency_id'}"/>-->
<!-- <field name="amount_residual_signed"-->
<!-- string="Amount Due" widget="monetary"-->
<!-- options="{'currency_field': 'currency_id'}"/>-->
<!-- <field name="amount_residual" sum="Balance Due"-->
<!-- string="Balance" widget="monetary"-->
<!-- options="{'currency_field': 'currency_id'}"/>-->
<!-- </list>-->
<!-- </field>-->
<!-- </page>-->
</xpath>
</field>
</record>
</odoo>