You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1832 lines
108 KiB

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- VIEWS -->
<!-- account.move.line (Journal items) -->
<record id="account_move_line_view_form" model="ir.ui.view">
<field name="name">account.move.line.view.form</field>
<field name="model">account.move.line</field>
<field eval="2" name="priority"/>
<field name="arch" type="xml">
<form string="Journal Item" create="false">
<sheet>
<field name="company_id" invisible="1"/>
<field name="parent_state" invisible="1"/>
<group>
<field name="name"/>
<field name="partner_id"
domain="['|', ('parent_id', '=', False),
('is_company', '=', True)]"
readonly="parent_state == 'posted'"/>
</group>
<notebook colspan="4">
<page string="Information" name="information">
<group>
<group string="Amount">
<field name="account_id"
options="{'no_create': True}"
domain="[('company_ids', '=', company_id)]"
readonly="parent_state == 'posted'"/>
<field name="debit"
readonly="parent_state == 'posted'"/>
<field name="credit"
readonly="parent_state =='posted'"/>
<field name="quantity"
readonly="parent_state == 'posted'"/>
</group>
<group string="Accounting Documents">
<field name="move_id"
readonly="parent_state == 'posted'"/>
<field name="statement_id" readonly="True"
invisible="statement_id == False"/>
</group>
<group string="Dates">
<field name="date"
groups="account.group_account_readonly"/>
<field name="date_maturity"/>
</group>
<group string="Taxes"
invisible="tax_line_id == False or tax_ids == []">
<field name="tax_line_id" readonly="1"
invisible="tax_line_id == False"/>
<field name="tax_ids"
widget="many2many_tags" readonly="1"
invisible="tax_ids == []"/>
</group>
<group string="Matching"
invisible="matched_debit_ids == [] or matched_credit_ids == []">
<label for="full_reconcile_id"/>
<div>
<field name="full_reconcile_id"
invisible="full_reconcile_id == False"/>
<field name="matched_debit_ids"
invisible="1"/>
<field name="matched_credit_ids"
invisible="1"/>
<button name="open_reconcile_view"
class="oe_link"
type="object"
string="-> View partially reconciled entries"
invisible="full_reconcile_id != False or matched_debit_ids == [] and matched_credit_ids ==[]">
</button>
</div>
</group>
<group string="Currency">
<field name="currency_id" invisible="1"/>
<field name="amount_currency"/>
</group>
<group string="Product"
invisible="product_id == False">
<field name="product_id"/>
</group>
<group string="Analytic"
groups="analytic.group_analytic_accounting">
<field name="analytic_distribution"
widget="analytic_distribution"
groups="analytic.group_analytic_accounting"
readonly="1"/>
</group>
</group>
</page>
<page string="Analytic Lines" name="analytic_lines"
groups="analytic.group_analytic_accounting">
<field name="date" invisible="1"/>
<field name="analytic_line_ids"
context="{'tree_view_ref':'analytic.view_account_analytic_line_tree', 'default_general_account_id':account_id, 'default_name': name, 'default_date':date, 'amount': (debit or 0.0)-(credit or 0.0)}"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Kanban view of account.move.line-->
<record id="account_move_line_view_kanban" model="ir.ui.view">
<field name="name">account.move.line.view.kanban</field>
<field name="model">account.move.line</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile">
<field name="date_maturity"/>
<field name="move_id"/>
<field name="name"/>
<field name="partner_id"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="row mb4">
<strong class="col-6">
<span t-esc="record.move_id.value"/>
</strong>
<strong class="col-6 text-right">
<i class="fa fa-clock-o" aria-label="Date"
role="img" title="Date"/>
<field name="date_maturity"/>
</strong>
<div class="col-10">
<span t-esc="record.name.value"/>
</div>
<div class="col-2 text-right">
<img t-att-src="kanban_image('res.partner', 'image_128', record.partner_id.raw_value)"
t-att-title="record.partner_id.value"
t-att-alt="record.partner_id.value"
class="oe_kanban_avatar o_image_24_cover"/>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!--Pivot view-->
<record id="account_move_line_view_pivot" model="ir.ui.view">
<field name="name">account.move.line.view.pivot</field>
<field name="model">account.move.line</field>
<field name="arch" type="xml">
<pivot string="Journal Items" sample="1">
<field name="journal_id" type="row"/>
<field name="date" type="col"/>
<field name="balance" type="measure"/>
</pivot>
</field>
</record>
<!--Tree view-->
<record id="account_move_line_view_tree" model="ir.ui.view">
<field name="name">account.move.line.view.list</field>
<field name="model">account.move.line</field>
<field eval="100" name="priority"/>
<field name="arch" type="xml">
<list string="Journal Items" create="false" edit="false" sample="1">
<field name="date" optional="show"/>
<field name="company_id"/>
<field name="journal_id" options='{"no_open":True}'/>
<field name="move_id" optional="show"/>
<field name="account_id" options="{'no_open': True}"
groups="account.group_account_readonly"/>
<field name="partner_id" optional="show"/>
<field name="statement_id" invisible="1"/>
<field name="ref" optional="show"/>
<field name="name" optional="show"/>
<field name="tax_ids" widget="many2many_tags" width="0.5"
optional="show"/>
<field name="debit" sum="Total Debit"/>
<field name="credit" sum="Total Credit"/>
<field name="amount_currency"
optional="hide"/>
<field name="tax_tag_ids" widget="many2many_tags" width="0.5"
optional="hide"/>
<field name="matching_number" optional="show"/>
<field name="reconcile_model_id" invisible="1"/>
<field name="reconciled" invisible="1"/>
<field name="date_maturity" optional="hide"/>
<field name="currency_id" readonly="1" invisible="1"/>
<field name="company_currency_id" invisible="1"/>
<field name="parent_state" invisible="1"/>
</list>
</field>
</record>
<!-- Tree view for accounting journal items -->
<record id="view_move_line_tree_grouped" model="ir.ui.view">
<field name="name">account.move.line.list.grouped</field>
<field name="model">account.move.line</field>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<list string="Journal Items" create="false"
expand="context.get('expand', False)" multi_edit="1">
<field name="date" optional="show" readonly="1"/>
<field name="company_id"
options="{'no_create': True}"
optional="show"/>
<field name="move_id" optional="show"/>
<field name="account_id" optional="show"
options="{'no_open': True, 'no_create': True}"
domain="[('company_ids', '=', company_id)]"
groups="account.group_account_readonly"/>
<field name="statement_id" invisible="1"/>
<field name="partner_id" optional="show" readonly="1"/>
<field name="ref" optional="hide"/>
<field name="name"/>
<field name="reconciled" invisible="1"/>
<field name="matching_number" string="Matching"
optional="show"/>
<field name="reconcile_model_id" invisible="1"/>
<field name="date_maturity" optional="hide"/>
<field name="debit" sum="Total Debit" readonly="1"/>
<field name="credit" sum="Total Credit" readonly="1"/>
<field name="balance" sum="Total Balance" readonly="1"
optional="hide"/>
<field name="amount_currency" readonly="1"
groups="base.group_multi_currency"/>
<field name="currency_id" readonly="1" invisible="1"/>
<field name="company_currency_id" invisible="1"/>
<field name="parent_state" invisible="1"/>
<field name="tax_ids" widget="many2many_tags" width="0.5"
optional="hide" readonly="1"/>
<field name="tax_tag_ids" widget="many2many_tags" width="0.5"
optional="hide" string="Tax Grids"
options="{'no_open': True, 'no_create': True}"
domain="[('applicability', '=', 'taxes')]"/>
<groupby name="move_id">
<field name="state" invisible="1"/>
<button name="edit" type="edit" icon="fa-edit"
title="Edit"/>
<button name="action_post" states="draft" icon="fa-check"
title="Post" type="object"
groups="account.group_account_invoice"/>
<button name="%(account.action_view_account_move_reversal)d"
title="Reverse"
invisible="state != 'posted'"
icon="fa-refresh" type="action"
groups="account.group_account_invoice"/>
<button name="action_duplicate" icon="fa-files-o"
title="Duplicate" type="object"
groups="account.group_account_invoice"/>
</groupby>
</list>
</field>
</record>
<!--New tree view for accounting move lines,
inheriting from the existing view "account.view_move_line_tree" for sales
and purchase -->
<record id="view_move_line_tree_grouped_sales_purchases" model="ir.ui.view">
<field name="name">account.move.line.list.grouped.sales.purchase</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="date" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="move_id" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="partner_id" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="matching_number" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="tax_ids" position="attributes">
<attribute name="optional">show</attribute>
</field>
<field name="tax_tag_ids" position="attributes">
<attribute name="optional">show</attribute>
</field>
</field>
</record>
<!--Inherited tree view for account.move.line for bank cash -->
<record id="view_move_line_tree_grouped_bank_cash" model="ir.ui.view">
<field name="name">account.move.line.list.grouped.bank.cash</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="date" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="move_id" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="ref" position="attributes">
<attribute name="optional">show</attribute>
</field>
<field name="matching_number" position="attributes">
<attribute name="optional">hide</attribute>
</field>
</field>
</record>
<!--Inherited tree view for misc-->
<record id="view_move_line_tree_grouped_misc" model="ir.ui.view">
<field name="name">account.move.line.list.grouped.misc</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="date" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="move_id" position="attributes">
<attribute name="optional">hide</attribute>
</field>
</field>
</record>
<!--Inherited tree view for general-->
<record id="view_move_line_tree_grouped_general" model="ir.ui.view">
<field name="name">account.move.line.list.grouped.misc</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="account_id" position="attributes">
<attribute name="optional">hide</attribute>
<attribute name="readonly">1</attribute>
</field>
<field name="balance" position="attributes">
<attribute name="optional">show</attribute>
</field>
<field name="balance" position="after">
<field name="cumulated_balance" optional="show"/>
</field>
</field>
</record>
<record id="view_move_line_tree_grouped_partner" model="ir.ui.view">
<field name="name">account.move.line.list.grouped.partner</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="partner_id" position="attributes">
<attribute name="optional">hide</attribute>
</field>
<field name="date_maturity" position="attributes">
<attribute name="optional">show</attribute>
</field>
<field name="balance" position="attributes">
<attribute name="optional">show</attribute>
</field>
</field>
</record>
<record id="view_move_line_tax_audit_tree" model="ir.ui.view">
<field name="name">account.move.line.tax.audit.list</field>
<field name="model">account.move.line</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_move_line_tree"/>
<field name="arch" type="xml">
<field name="move_id" position="replace"/>
<field name="matching_number" position="replace">
<field name="tax_line_id" string="Tax"/>
<field name="tax_base_amount" sum="Total Base Amount"/>
<field name="move_id"/>
</field>
<field name="date_maturity" position="replace"/>
<field name="debit" position="replace"/>
<field name="credit" position="replace"/>
</field>
</record>
<!--This view inherits from the existing account.view_move_line_tree and
modifies its structure to include tax-related information in the
accounting move line tree view-->
<record id="account_move_line_graph_date" model="ir.ui.view">
<field name="name">account.move.line.view.graph</field>
<field name="model">account.move.line</field>
<field name="arch" type="xml">
<graph string="Account Statistics" type="bar" sample="1">
<field name="date"/>
<field name="balance" operator="+" type='measure'/>
</graph>
</field>
</record>
<record id="view_account_move_line_filter" model="ir.ui.view">
<field name="name">account.move.line.view.search</field>
<field name="model">account.move.line</field>
<field eval="16" name="priority"/>
<field name="arch" type="xml">
<search string="Search Journal Items">
<field name="name" string="Journal Item"
filter_domain="['|', '|', '|', ('name', 'ilike', self), ('ref', 'ilike', self), ('account_id', 'ilike', self), ('partner_id', 'ilike', self)]"/>
<field name="name"/>
<field name="ref"/>
<field name="invoice_date"/>
<field name="date"/>
<field name="date_maturity" string="Due Date"/>
<field name="discount_date" string="Discount Date"/>
<field name="balance" string="Amount"
filter_domain="['|', ('credit', '=', self), ('debit', '=', self)]"/>
<field name="account_id"/>
<field name="account_type"/>
<field name="partner_id"/>
<field name="journal_id"/>
<field name="move_id" string="Journal Entry" filter_domain="[
'|', '|', ('move_id.name', 'ilike', self), ('move_id.ref', 'ilike', self), ('move_id.partner_id', 'ilike', self)]"/>
<field name="tax_ids"/>
<field name="tax_line_id" string="Originator Tax"/>
<field name="reconcile_model_id"/>
<separator/>
<filter string="Unposted" name="unposted"
domain="[('parent_state', '=', 'draft')]"
help="Unposted Journal Items"/>
<filter string="Posted" name="posted"
domain="[('parent_state', '=', 'posted')]"
help="Posted Journal Items"/>
<separator/>
<filter string="To Check" name="checked"
domain="[('move_id.checked', '=', False)]"/>
<separator/>
<filter string="Unreconciled"
domain="[('amount_residual', '!=', 0), ('account_id.reconcile', '=', True)]"
help="Journal items where matching number isn't set"
name="unreconciled"/>
<separator/>
<filter string="Sales" name="sales"
domain="[('journal_id.type', '=', 'sale')]"
context="{'default_journal_type': 'sale'}"/>
<filter string="Purchases" name="purchases"
domain="[('journal_id.type', '=', 'purchase')]"
context="{'default_journal_type': 'purchase'}"/>
<filter string="Bank" name="bank"
domain="[('journal_id.type', '=', 'bank')]"
context="{'default_journal_type': 'bank'}"/>
<filter string="Cash" name="cash"
domain="[('journal_id.type', '=', 'cash')]"
context="{'default_journal_type': 'cash'}"/>
<filter string="Miscellaneous"
domain="[('journal_id.type', '=', 'general')]"
name="misc_filter"
context="{'default_journal_type': 'general'}"/>
<separator/>
<filter string="Payable"
domain="[('account_id.account_type', '=', 'liability_payable'), ('account_id.non_trade', '=', False)]"
help="From Trade Payable accounts"
name="trade_payable"/>
<filter string="Receivable"
domain="[('account_id.account_type', '=', 'asset_receivable'), ('account_id.non_trade', '=', False)]"
help="From Trade Receivable accounts"
name="trade_receivable"/>
<filter string="Non Trade Payable"
domain="[('account_id.account_type', '=', 'liability_payable'), ('account_id.non_trade', '=', True)]"
help="From Non Trade Receivable accounts"
name="non_trade_payable" invisible="1"/>
<filter string="Non Trade Receivable"
domain="[('account_id.account_type', '=', 'asset_receivable'), ('account_id.non_trade', '=', True)]"
help="From Non Trade Receivable accounts"
name="non_trade_receivable" invisible="1"/>
<filter string="P&amp;L Accounts"
domain="[('account_id.internal_group', 'in', ('income', 'expense'))]"
help="From P&amp;L accounts" name="pl_accounts"/>
<filter string="No Bank Transaction"
domain="[('statement_line_id', '=', False)]"
name="no_st_line_id"
invisible="1"/>
<separator/>
<filter string="Date" name="date" date="date"/>
<filter string="Invoice Date" name="invoice_date"
date="invoice_date"/>
<separator/>
<filter string="Report Dates" name="date_between"
domain="[('date', '&gt;=', context.get('date_from')), ('date', '&lt;=', context.get('date_to'))]"
invisible="1"/>
<filter string="Report Dates" name="date_before"
domain="[('date', '&lt;=', context.get('date_to'))]"
invisible="1"/>
<separator/>
<group expand="0" string="Group By">
<filter string="Journal Entry" name="group_by_move"
domain="[]"
context="{'group_by': 'move_name'}"/>
<filter string="Account" name="group_by_account" domain="[]"
context="{'group_by': 'account_id'}"/>
<filter string="Partner" name="group_by_partner" domain="[]"
context="{'group_by': 'partner_id'}"/>
<filter string="Journal" name="journal" domain="[]"
context="{'group_by': 'journal_id'}"/>
<filter string="Date" name="groupby_date" domain="[]"
context="{'group_by': 'date'}"/>
<filter string="Invoice Date" name="groupby_invoice_date"
domain="[]"
context="{'group_by': 'invoice_date'}"/>
<filter string="Taxes" name="group_by_taxes" domain="[]"
context="{'group_by': 'tax_ids'}"/>
<filter string="Tax Grid" name="group_by_tax_tags"
domain="[]"
context="{'group_by': 'tax_tag_ids'}"/>
<filter string="Matching #" name="group_by_matching"
domain="[]"
context="{'group_by': 'matching_number'}"/>
</group>
<searchpanel class="account_root">
<field name="account_root_id" icon="fa-filter"
groupby="account_id" limit="0"/>
</searchpanel>
</search>
</field>
</record>
<!--Journal entry of account.move-->
<record id="view_move_tree" model="ir.ui.view">
<field name="name">account.move.list</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<list string="Journal Entries" sample="1">
<field name="date"/>
<field name="name"/>
<field name="partner_id" optional="show"/>
<field name="ref" optional="show"/>
<field name="journal_id"/>
<field name="company_id"
optional="show"/>
<field name="amount_total_signed" sum="Total Amount"
string="Total" decoration-bf="1"/>
<field name="state" widget="badge"
decoration-info="state == 'draft'"
decoration-success="state == 'posted'"/>
<field name="currency_id" invisible="1"/>
</list>
</field>
</record>
<record id="view_invoice_tree" model="ir.ui.view">
<field name="name">account.invoice.list</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<list string="Invoices"
js_class="account_tree"
sample="1">
<header>
<button name="action_register_payment" type="object"
string="Register Payment"
groups="account.group_account_user"
invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund', 'out_receipt', 'in_invoice', 'in_refund','in_receipt')"/>
</header>
<field name="name" decoration-bf="1"/>
<field name="partner_id" invisible="1"/>
<field name="invoice_source_email" invisible="1"/>
<field name="invoice_partner_display_name"
invisible="context.get('default_move_type') not in ('in_invoice', 'in_refund','in_receipt')"
groups="base.group_user" string="Vendor"/>
<field name="invoice_partner_display_name"
invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund','out_receipt')"
groups="base.group_user" string="Student Name"/>
<field name="invoice_date" optional="show"
invisible="context.get('default_move_type') not in ('in_invoice', 'in_refund','in_receipt')"
string="Bill Date"/>
<field name="invoice_date" optional="show"
invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund','out_receipt')"
string="Invoice Date"/>
<field name="invoice_date_due" widget="remaining_days"
optional="show"
invisible="payment_state in ('paid', 'in_payment', 'reversed')"/>
<field name="invoice_origin" optional="hide"
string="Source Document"/>
<field name="payment_reference" optional="hide"
invisible="context.get('default_move_type') in ('out_invoice', 'out_refund','out_receipt')"/>
<field name="ref" optional="hide"/>
<field name="invoice_user_id" optional="hide"
invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund','out_receipt')"
string="Sales Person" widget="many2one_avatar_user"/>
<field name="activity_ids" widget="list_activity"
optional="show"/>
<field name="company_id"
options="{'no_create': True}"
optional="show"/>
<field name="is_fee" invisible="1"/>
<field name="amount_untaxed_signed" string="Tax Excluded"
sum="Total" optional="show"/>
<field name="amount_tax_signed" string="Tax" sum="Total"
optional="hide"/>
<field name="amount_total_signed" string="Total" sum="Total"
decoration-bf="1" optional="show"/>
<field name="amount_residual_signed" string="Amount Due"
sum="Amount Due" optional="hide"/>
<field name="currency_id" invisible="1"/>
<field name="company_currency_id" invisible="1"/>
<field name="state" widget="badge"
decoration-success="state == 'posted'"
decoration-info="state == 'draft'" optional="show"/>
<field name="payment_state" widget="badge"
decoration-danger="payment_state == 'not_paid'"
decoration-warning="payment_state in ('partial', 'in_payment')"
decoration-success="payment_state in ('paid', 'reversed')"
invisible="payment_state in ['invoicing_legacy']"/>
<field name="move_type"
invisible="context.get('default_move_type', True)"/>
</list>
</field>
</record>
<record id="view_out_invoice_tree" model="ir.ui.view">
<field name="name">account.out.invoice.list</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_invoice_tree"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//list" position="attributes">
</xpath>
</field>
</record>
<!--Account.move tree view-->
<record id="view_in_invoice_tree" model="ir.ui.view">
<field name="name">account.out.invoice.list</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_invoice_tree"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='ref']" position="attributes">
<attribute name="optional">show</attribute>
</xpath>
</field>
</record>
<!--Account.move kanban view-->
<record id="view_receipt_kanban" model="ir.ui.view">
<field name="name">account.move.kanban</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile" sample="1">
<field name="journal_id"/>
<field name="partner_id"/>
<field name="ref"/>
<field name="date"/>
<field name="state"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_global_click">
<div class="row mb4">
<div class="col-6 o_kanban_record_headings">
<strong>
<span>
<field name="partner_id"
invisible="partner_id == False"/>
<field name="journal_id"
invisible="partner_id != False"/>
</span>
</strong>
</div>
<div class="col-6 text-right">
<strong>
<i class="fa fa-clock-o"
aria-label="Date" role="img"
title="Date"/>
<t t-esc="record.date.value"/>
</strong>
</div>
</div>
<div class="row">
<div class="col-12">
<span>
<field name="ref"/>
</span>
</div>
</div>
<div class="row">
<div class="col-6">
<span>
<field name="amount_total"
widget='monetary'/>
</span>
<span>
<field name="currency_id"
invisible="1"/>
</span>
</div>
<div class="col-6">
<span class="float-right">
<field name="state"
widget="label_selection"
options="{'classes': {'draft': 'default', 'posted': 'success'}}"/>
</span>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<!-- Account.move receipt form-->
<record id="receipt_form" model="ir.ui.view">
<field name="name">account.move.form</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<form string="Account Entry">
<header>
<!-- Post -->
<button name="action_post" string="Post"
class="oe_highlight"
type="object" groups="account.group_account_invoice"
invisible="state != 'draft' or auto_post == True or move_type != 'entry'"/>
<button name="action_post" string="Confirm"
class="oe_highlight"
type="object" groups="account.group_account_invoice"
invisible="state != 'draft' or auto_post == True or move_type == 'entry'"/>
<!-- Send (only invoices) -->
<button name="action_invoice_sent"
type="object"
string="Send &amp; Print"
invisible="state != 'posted' or is_move_sent == True or move_type not in ('out_invoice', 'out_refund')"
class="oe_highlight"/>
<button name="action_invoice_sent"
type="object"
string="Send &amp; Print"
invisible="state != 'posted' or is_move_sent == False or move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')"/>
<!-- Register Payment (only invoices / receipts) -->
<button name="action_register_payment"
id="account_invoice_payment_btn"
type="object" class="oe_highlight"
context="{'dont_redirect_to_payments': True}"
string="Register Payment"
groups="account.group_account_invoice"
invisible="state != 'posted' or payment_state not in ('not_paid', 'partial') or move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<!-- Preview (only customer invoices) -->
<button name="preview_invoice" type="object"
string="Preview"
invisible="move_type not in ('out_invoice', 'out_refund')"/>
<!-- Reverse -->
<button name="%(account.action_view_account_move_reversal)d"
string="Reverse Entry"
type="action" groups="account.group_account_invoice"
invisible="move_type != 'entry' or state != 'posted' or payment_state == 'reversed'"/>
<button name="action_reverse" string='Add Credit Note'
type='object' groups="account.group_account_invoice"
invisible="move_type not in ('out_invoice', 'in_invoice') or state != 'posted'"/>
<!-- Cancel -->
<button name="button_cancel" string="Cancel Entry"
type="object" groups="account.group_account_invoice"
invisible="id == False or state != 'draft'"/>
<button name="button_draft" string="Reset to Draft"
type="object" groups="account.group_account_invoice"
invisible="show_reset_to_draft_button == False"/>
<field name="state" widget="statusbar"
statusbar_visible="draft,posted"/>
</header>
<!-- Invoice outstanding credits -->
<div groups="account.group_account_invoice,account.group_account_readonly"
class="alert alert-warning" role="alert"
style="margin-bottom:0px;"
invisible="state != 'draft' or tax_lock_date_message == False">
<field name="tax_lock_date_message" nolabel="1"/>
</div>
<div groups="account.group_account_invoice,account.group_account_readonly"
class="alert alert-info" role="alert"
style="margin-bottom:0px;"
invisible="move_type not in ('out_invoice', 'out_refund') or invoice_has_outstanding == False or payment_state not in ('not_paid', 'partial')">
You have
<bold>
<a class="alert-link" href="#outstanding" role="button">
outstanding payments
</a>
</bold>
for this customer. You can allocate them to mark this
invoice as paid.
</div>
<div groups="account.group_account_invoice,account.group_account_readonly"
class="alert alert-info" role="alert"
style="margin-bottom:0px;"
invisible="move_type not in ('in_invoice', 'in_refund') or invoice_has_outstanding == False or payment_state not in ('not_paid', 'partial')">
You have
<bold>
<a class="alert-link" href="#outstanding" role="button">
outstanding debits
</a>
</bold>
for this vendor. You can allocate them to mark this bill as
paid.
</div>
<div class="alert alert-info" role="alert"
style="margin-bottom:0px;"
invisible="state != 'draft' or auto_post == False">
This move is configured to be posted automatically at the
accounting date:<field name="date" readonly="1"/>.
</div>
<sheet>
<div name="button_box" class="oe_button_box">
<button name="open_reconcile_view"
class="oe_stat_button"
icon="fa-bars"
type="object"
invisible="move_type != 'entry' or id == False or has_reconciled_entries == False"
string="Reconciled Entries">
</button>
</div>
<!-- Payment status for invoices / receipts -->
<widget name="web_ribbon" title="Paid"
invisible="payment_state != 'paid' or move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<widget name="web_ribbon" title="In Payment"
invisible="payment_state != 'in_payment' or move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<widget name="web_ribbon" title="Partial"
invisible="payment_state != 'partial' or move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<widget name="web_ribbon" title="Reversed"
bg_color="bg-danger"
invisible="payment_state != 'reversed'"/>
<widget name="web_ribbon" text="Invoicing App Legacy"
bg_color="bg-info"
invisible="payment_state != 'invoicing_legacy'"
tooltip="This entry has been generated through the Invoicing app, before installing Accounting. It has been disabled by the 'Invoicing Switch Threshold Date' setting so that it does not impact your accounting."/>
<!-- Invisible fields -->
<field name="id" invisible="1"/>
<field name="show_name_warning" invisible="1"/>
<field name="posted_before" invisible="1"/>
<field name="move_type" invisible="1"/>
<field name="payment_state" invisible="1" force_save="1"/>
<field name="invoice_filter_type_domain" invisible="1"/>
<field name="suitable_journal_ids" invisible="1"/>
<field name="company_currency_id" invisible="1"/>
<field name="commercial_partner_id" invisible="1"/>
<field name="bank_partner_id" invisible="1"/>
<field name="display_qr_code" invisible="1"/>
<field name="show_reset_to_draft_button" invisible="1"/>
<field name="invoice_has_outstanding" invisible="1"/>
<field name="is_move_sent" invisible="1"/>
<field name="has_reconciled_entries" invisible="1"/>
<field name="restrict_mode_hash_table" invisible="1"/>
<field name="country_code" invisible="1"/>
<div class="oe_title">
<!-- Invoice draft header -->
<span class="o_form_label">
<field name="move_type"
invisible="move_type == 'entry'"
readonly="1" nolabel="1"/>
</span>
<h1>
<span
invisible="state != 'draft' or name != '/'">
Draft
</span>
</h1>
<!-- Number-->
<span class="text-warning"
invisible="show_name_warning == False">
The current highest number is<field
name="highest_name"/>. You might want to put a
higher number here.
</span>
<h1 class="mt0"
invisible="name == '/' or posted_before == False">
<field name="name"
readonly="state != 'draft'"
placeholder="JRNL/2016/00001"/>
</h1>
</div>
<group>
<group>
<field name="student_id"
options="{'no_create_edit': True, 'no_create': True}"
required="1"
placeholder="Search student by Name or Number"/>
<field name="class_division_id"
options="{'no_create_edit': True, 'no_create': True}"
required="1"/>
<field name="student_name" readonly="1"/>
<field name="partner_id" invisible="1"
context="{'search_default_customer':1, 'show_address': 1, 'default_company_type': 'company'}"
options='{"always_reload": True, "no_quick_create": True}'/>
</group>
<group>
<field name="fee_category_id" required="1"/>
<field name="fee_structure_id"
invisible="is_fee_structure == False"/>
</group>
<group id="header_left_group">
<div class="o_td_label">
<label for="partner_id" string="Customer"
style="font-weight:bold;"
invisible="move_type not in ('out_invoice', 'out_refund', 'out_receipt')"/>
<label for="partner_id" string="Vendor"
style="font-weight:bold;"
invisible="move_type not in ('in_invoice', 'in_refund', 'in_receipt')"/>
</div>
<field name="partner_id"
widget="res_partner_many2one" nolabel="1"
context="{
'res_partner_search_mode': (context.get('default_move_type', 'entry') in ('out_invoice', 'out_refund', 'out_receipt') and 'customer') or (context.get('default_move_type', 'entry') in ('in_invoice', 'in_refund', 'in_receipt') and 'supplier') or False,
'show_address': 1, 'default_is_company': True, 'show_vat': True}"
options='{"always_reload": True, "no_quick_create": True}'
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<label for="ref" string="Bill Reference"
invisible="move_type not in ('in_invoice', 'in_receipt', 'in_refund')"/>
<field name="ref" nolabel="1"
invisible="move_type not in ('in_invoice', 'in_receipt', 'in_refund')"/>
<field name="ref"
invisible="move_type in ('in_invoice', 'in_receipt', 'in_refund', 'out_invoice', 'out_refund')"/>
<field name="payment_reference"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"
readonly="state != 'draft'"/>
<field name="partner_bank_id"
context="{'default_partner_id': commercial_partner_id}"
domain="[('partner_id', '=', bank_partner_id)]"
invisible="move_type not in ('in_invoice', 'in_refund', 'in_receipt')"
readonly="state != 'draft'"/>
<label name="invoice_vendor_bill_id_label"
for="invoice_vendor_bill_id"
string="Auto-Complete" class="oe_edit_only"
invisible="state != 'draft' or state != 'in_invoice'"/>
<field name="invoice_vendor_bill_id" nolabel="1"
class="oe_edit_only"
invisible="state != 'draft' or move_type != 'in_invoice'"
domain="[('company_id', '=', company_id), ('partner_id','child_of', [partner_id]), ('move_type','=','in_invoice')]"
placeholder="Select an old vendor bill"
options="{'no_create': True}"
context="{'show_total_amount': True}"/>
<field name="invoice_user_id"
groups="base.group_user"
string="Responsible By"
widget="many2one_avatar_user"/>
<field name="is_fee_structure" invisible="1"/>
</group>
<group id="header_right_group">
<!-- Invoice date (only invoices / receipts) -->
<div class="o_td_label">
<label for="invoice_date" string="Receipt Date"
style="font-weight:bold;"
invisible="move_type not in ('out_invoice', 'out_refund', 'out_receipt')"/>
<label for="invoice_date" string="Bill Date"
style="font-weight:bold;"
invisible="move_type not in ('in_invoice', 'in_refund', 'in_receipt')"/>
</div>
<field name="invoice_date" placeholder="Date"
nolabel="1"
options="{'datepicker': {'warn_future': true}}"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<field name="date" string="Accounting Date"
invisible="move_type in ('out_invoice', 'out_refund', 'out_receipt')"
readonly="state != 'draft'"/>
<!-- Invoice payment terms (only invoices) + due date (only invoices / receipts) -->
<label for="invoice_payment_term_id"
string="Due Date"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<div class="d-flex"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')">
<field name="invoice_date_due" force_save="1"
placeholder="Date"
invisible="invoice_payment_term_id != False"/>
<span class="o_form_label mx-3 oe_edit_only"
invisible="state != 'draft' or invoice_payment_term_id != False">
or
</span>
<field name="invoice_payment_term_id"
invisible="1"
placeholder="Terms"/>
</div>
<label for="journal_id"
invisible="1"/>
<div name="journal_div" class="d-flex"
invisible="context.get('default_journal_id') and context.get('move_type', 'entry') != 'entry'">
<field name="journal_id" invisible="1"
options="{'no_create': True}"
readonly="posted_before == True"/>
<!-- Bigger margin on the left because in edit mode the external link button covers the text -->
<!-- <span class="oe_inline o_form_label mr-3 ml-5 oe_edit_only"-->
<!-- groups="base.group_multi_currency"> in </span>-->
<field name="currency_id" invisible="1"
readonly="posted_before == True"/>
</div>
</group>
</group>
<notebook>
<page id="invoice_tab"
string="Receipt Lines"
invisible="move_type == 'entry'">
<field name="invoice_line_ids"
widget="section_and_note_one2many"
mode="list,kanban"
context="{'default_move_type': context.get('default_move_type'), 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id or company_currency_id}">
<list editable="bottom" string="Journal Items"
default_order="sequence, date desc, move_name desc, id">
<control>
<create name="add_line_control"
string="Add a line"/>
<create name="add_section_control"
string="Add a section"
context="{'default_display_type': 'line_section'}"/>
<create name="add_note_control"
string="Add a note"
context="{'default_display_type': 'line_note'}"/>
</control>
<!-- Displayed fields -->
<field name="sequence" widget="handle"/>
<field name="move_name" invisible="1"/>
<field name="product_id"
string="Fee Name"
optional="show"
domain="
context.get('default_move_type') in ('out_invoice', 'out_refund', 'out_receipt')
and [('sale_ok', '=', True), '|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]
or [('purchase_ok', '=', True), '|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]
"/>
<field name="name" string="Description"
widget="section_and_note_text"
required="parent.move_type not in ('in_invoice', 'in_refund','in_receipt')"/>
<field name="account_id"
groups="account.group_account_readonly"
options="{'no_create': True}"
domain="[('company_ids', '=', parent.company_id), ('deprecated', '=', False)]"/>
<field name="quantity"/>
<field name="product_uom_category_id"
invisible="1"/>
<field name="product_uom_id" string="UoM"
groups="uom.group_uom"
optional="show"/>
<field name="price_unit" string="Price"/>
<field name="discount" string="Disc.%"
optional="hide"/>
<field name="tax_ids"
widget="many2many_tags"
domain="[('type_tax_use', '=?', parent.invoice_filter_type_domain), ('company_id', '=', parent.company_id)]"
context="{'append_type_to_tax_name': not parent.invoice_filter_type_domain}"
options="{'no_create': True}"
optional="show"/>
<field name="price_subtotal"
string="Subtotal"
/>
<field name="price_total"
string="Total"
/>
<!-- Others fields -->
<field name="partner_id" invisible="1"/>
<field name="amount_currency"
invisible="1"/>
<field name="currency_id" invisible="1"/>
<field name="debit" invisible="1"/>
<field name="credit" invisible="1"/>
<field name="date" invisible="1"/>
<field name="date_maturity" invisible="1"/>
<field name="tax_line_id" invisible="1"/>
<field name="tax_repartition_line_id"
invisible="1"/>
<field name="tax_tag_ids" invisible="1"/>
<field name="tax_base_amount"
invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="company_currency_id"
invisible="1"/>
<field name="display_type" force_save="1"
invisible="1"/>
<field name="account_internal_group"
invisible="1"/>
</list>
<kanban class="o_kanban_mobile">
<!-- Displayed fields -->
<field name="name"/>
<field name="product_id"/>
<field name="price_subtotal"
/>
<field name="price_total"
/>
<field name="quantity"/>
<field name="product_uom_category_id"
invisible="1"/>
<field name="product_uom_id"
groups="uom.group_uom"/>
<field name="price_unit"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_card oe_kanban_global_click {{ record.display_type.raw_value ? 'o_is_' + record.display_type.raw_value : '' }}">
<t t-if="!record.display_type.raw_value">
<div class="row">
<div class="col-2">
<img t-att-src="kanban_image('product.product', 'image_128', record.product_id.raw_value)"
t-att-title="record.product_id.value"
t-att-alt="record.product_id.value"
style="max-width: 100%;"/>
</div>
<div class="col-10">
<strong>
<span>
<t t-esc="record.product_id.value"/>
</span>
</strong>
<div class="text-muted">
Quantity:
<t t-esc="record.quantity.value"/>
<t t-esc="record.product_uom_id.value"/>
</div>
<div class="text-muted">
Unit Price:
<t t-esc="record.price_unit.value"/>
</div>
<strong>
<span class="float-right text-right">
<t t-esc="record.price_subtotal.value"
/>
<t t-esc="record.price_total.value"
/>
</span>
</strong>
</div>
</div>
</t>
<t t-if="record.display_type.raw_value === 'line_section' || record.display_type.raw_value === 'line_note'">
<div class="row">
<div class="col-12">
<span>
<t t-esc="record.name.value"/>
</span>
</div>
</div>
</t>
</div>
</t>
</templates>
<!-- Others fields -->
<field name="partner_id" invisible="1"/>
<field name="amount_currency"
invisible="1"/>
<field name="currency_id" invisible="1"/>
<field name="debit" invisible="1"/>
<field name="credit" invisible="1"/>
<field name="date" invisible="1"/>
<field name="date_maturity" invisible="1"/>
<field name="tax_line_id" invisible="1"/>
<field name="tax_repartition_line_id"
invisible="1"/>
<field name="tax_tag_ids" invisible="1"/>
<field name="tax_base_amount"
invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="company_currency_id"
invisible="1"/>
<field name="display_type" force_save="1"
invisible="1"/>
<field name="account_internal_group"
invisible="1"/>
</kanban>
<form>
<sheet>
<field name="product_uom_category_id"
invisible="1"/>
<field name="display_type"
invisible="1"/>
<field name="parent_state"
invisible="1"/>
<group>
<field name="partner_id"
invisible="1"/>
<field name="company_id"
invisible="1"/>
<field name="product_id"
widget="many2one_barcode"/>
<field name="quantity"/>
<field name="product_uom_id"
groups="uom.group_uom"/>
<field name="price_unit"/>
<field name="discount"
groups="sale.group_discount_per_so_line"/>
<field name="currency_id"
invisible="1"/>
</group>
<group>
<field name="account_id"
options="{'no_create': True}"
domain="[('company_ids', '=', company_id)]"
readonly="parent_state == 'posted'"/>
<field name="tax_ids"
widget="many2many_tags"/>
</group>
<label for="name" string="Description"
invisible="display_type != False"/>
<label for="name" string="Section"
invisible="display_type != 'line_section'"/>
<label for="name" string="Note"
invisible="display_type != 'line_note'"/>
<field name="name" widget="text"/>
</sheet>
</form>
</field>
<!-- Totals (only invoices / receipts) -->
<group class="oe_subtotal_footer oe_right"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt') or payment_state =='invoicing_legacy'">
<field name="amount_tax" invisible="1"/>
<field name="amount_untaxed"
invisible="amount_tax == 0"/>
<field name="amount_total"
invisible="amount_tax != 0"/>
<field name="amount_total"
class="oe_subtotal_footer_separator"
invisible="amount_tax == 0"/>
<field name="invoice_payments_widget"
colspan="2" nolabel="1"
widget="payment"/>
<field name="amount_residual"
class="oe_subtotal_footer_separator"
invisible="state == 'draft'"/>
</group>
<field name="narration"
placeholder="Terms and Conditions"
class="oe_inline" nolabel="1"/>
<field name="invoice_outstanding_credits_debits_widget"
class="oe_invoice_outstanding_credits_debits"
colspan="2" nolabel="1" widget="payment"
invisible="state != 'posted' or move_type in ('out_receipt', 'in_receipt')"/>
</page>
<page id="aml_tab" string="Journal Items"
groups="account.group_account_readonly">
<div class="alert alert-info text-center mb-0"
role="alert"
invisible="payment_state != 'invoicing_legacy' or move_type == 'entry'">
<span>This entry has been generated through the
Invoicing app, before installing Accounting.
Its balance has been imported separately.
</span>
</div>
<field name="line_ids"
context="{'default_move_type': context.get('default_move_type'), 'line_ids': line_ids, 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id or company_currency_id}"
invisible="payment_state == 'invoicing_legacy' or move_type != 'entry'">
<list editable="bottom" string="Journal Items"
decoration-muted="display_type in ('line_section', 'line_note')"
default_order="sequence, date desc, move_name desc, id">
<!-- Displayed fields -->
<field name="account_id"
required="display_type not in ('line_section', 'line_note')"
invisible="display_type in ('line_section', 'line_note')"
domain="[('deprecated', '=', False), ('company_ids', '=', parent.company_id)]"/>
<field name="partner_id"
domain="['|', ('parent_id', '=', False), ('is_company', '=', True)]"
column_invisible="parent.move_type != 'entry'"/>
<field name="name"
widget="section_and_note_text"
optional="show"/>
<field name="date_maturity"
optional="hide"
invisible="context.get('view_no_maturity')"
column_invisible="display_type in ('line_section', 'line_note')"/>
<field name="amount_currency"
optional="hide"/>
<field name="currency_id"
options="{'no_create': True}"
column_invisible="parent.move_type != 'entry'"/>
<field name="tax_ids"
widget="many2many_tags"
optional="hide"
domain="[('type_tax_use', '=?', parent.invoice_filter_type_domain)]"
context="{'append_type_to_tax_name': not parent.invoice_filter_type_domain}"
options="{'no_create': True}"
force_save="1"
readonly="display_type in ('line_section', 'line_note') or tax_line_id != False or parent.move_type in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt')"/>
<field name="debit"
sum="Total Debit"
invisible="display_type in ('line_section', 'line_note')"/>
<field name="credit"
sum="Total Credit"
invisible="display_type in ('line_section', 'line_note')"/>
<field name="tax_tag_ids"
widget="many2many_tags"
string="Tax Grids" optional="show"
domain="[('applicability', '=', 'taxes')]"/>
<!-- Buttons -->
<button name="action_automatic_entry"
type="object"
icon="fa-calendar"
string="Cut-Off"
aria-label="Change Period"
class="float-right"
invisible="account_internal_group not in ('income', 'expense')"
column_invisible="parent.move_type == 'entry' or parent.state != 'posted'"
context="{'hide_automatic_options': 1, 'default_action': 'change_period'}"/>
<!-- Others fields -->
<field name="payment_id" invisible="1"/>
<field name="product_id" invisible="1"/>
<field name="quantity" invisible="1"/>
<field name="product_uom_category_id"
invisible="1"/>
<field name="product_uom_id" invisible="1"/>
<field name="price_unit" invisible="1"/>
<field name="discount" invisible="1"/>
<field name="price_subtotal" invisible="1"/>
<field name="price_total" invisible="1"/>
<field name="sequence" invisible="1"/>
<field name="move_name" invisible="1"/>
<field name="date" invisible="1"/>
<field name="tax_line_id" invisible="1"/>
<field name="tax_group_id" invisible="1"/>
<field name="tax_repartition_line_id"
invisible="1" force_save="1"/>
<field name="tax_base_amount" invisible="1"
force_save="1"/>
<field name="company_id" invisible="1"/>
<field name="company_currency_id"
invisible="1"/>
<field name="display_type" force_save="1"
invisible="1"/>
<field name="account_internal_group"
invisible="1"/>
</list>
<!-- Form view to cover mobile use -->
<form>
<group>
<field name="tax_line_id"
invisible="1"/>
<field name="account_id"
domain="[('company_ids', '=', parent.company_id), ('deprecated', '=', False)]"/>
<field name="partner_id"
domain="['|', ('parent_id', '=', False), ('is_company', '=', True)]"/>
<field name="name"/>
<field name="amount_currency"
/>
<field name="company_currency_id"
invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="currency_id"
options="{'no_create': True}"/>
<field name="debit" sum="Total Debit"/>
<field name="credit"
sum="Total Credit"/>
<field name="tax_ids"
string="Taxes Applied"
widget="many2many_tags"
options="{'no_create': True}"/>
<field name="date_maturity" required="0"
invisible="context.get('view_no_maturity', False)"/>
</group>
</form>
</field>
</page>
<page string="Payments Done" name="payments_done">
<group>
<group>
<field name="payed_from_date"/>
<field name="payed_to_date"/>
</group>
</group>
<field name="payed_line_ids">
<list string="Payments" create="0">
<field name="date" string="Date"/>
<field name="receipt_no"/>
<field name="product_id" string="Fee"/>
<field name="quantity"/>
<field name="price_unit"/>
<field name="discount"/>
<field name="price_subtotal"/>
</list>
</field>
<div class="panel-footer">
<div class="row">
<div class="col-md-12 mb16 mt16">
<p>
Note: If a student selected from
admission number, all his payments
done in this academic year has been
listed here.
The list depends on above selected
category
</p>
</div>
</div>
</div>
</page>
<page id="other_tab" string="Other Info"
name="other_info"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')">
<group id="other_tab_group">
<group string="Invoice"
name="sale_info_group"
invisible="move_type not in ('out_invoice', 'out_refund')">
<label for="ref"
string="Customer Reference"/>
<field name="ref" nolabel="1"/>
<field name="invoice_user_id"
domain="[('share', '=', False)]"
widget="many2one_avatar_user"/>
<field name="invoice_origin"
string="Source Document"
force_save="1" invisible="1"/>
<field name="partner_bank_id"
context="{'default_partner_id': commercial_partner_id}"
domain="[('partner_id', '=', bank_partner_id)]"
readonly="state != 'draft'"/>
<field name="qr_code_method"
invisible="display_qr_code == False"/>
</group>
<group string="Accounting"
name="accounting_info_group"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')">
<field name="company_id"
/>
<field name="invoice_incoterm_id"/>
<field name="fiscal_position_id"/>
<field name="invoice_cash_rounding_id"
groups="account.group_cash_rounding"/>
<field name="invoice_source_email"
widget="email"
invisible="move_type not in ('in_invoice', 'in_refund') or invoice_source_email == False"/>
<field name="auto_post"
readonly="reversed_entry_id != False or state != 'draft'"/>
<field name="checked"/>
</group>
</group>
</page>
<page id="other_tab_entry" string="Other Info"
name="other_info"
invisible="move_type != 'entry'">
<group id="other_tab_entry_group">
<group name="misc_group">
<field name="auto_post"
invisible="move_type != 'entry'"
readonly="reversed_entry_id != False or state != 'draft'"/>
<field name="reversed_entry_id"
invisible="move_type != 'entry'"/>
<field name="checked"
invisible="move_type != 'entry'"/>
</group>
<group>
<field name="company_id"
required="1"/>
</group>
</group>
<!-- Internal note -->
<field name="narration"
placeholder="Add an internal note..."
nolabel="1" height="50"/>
</page>
</notebook>
</sheet>
<!-- Attachment preview -->
<div class="o_attachment_preview"
invisible="move_type not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund') or state != 'draft'"/>
<!-- Chatter -->
<chatter/>
</form>
</field>
</record>
<record id="view_account_move_filter" model="ir.ui.view">
<field name="name">account.move.select</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<search string="Search Move">
<field name="name" string="Journal Entry"
filter_domain="['|', '|', ('name', 'ilike', self), ('ref', 'ilike', self), ('partner_id', 'ilike', self)]"/>
<field name="date"/>
<field name="partner_id"/>
<field name="journal_id"/>
<filter string="Unposted" name="unposted"
domain="[('state', '=', 'draft')]"
help="Unposted Journal Entries"/>
<filter string="Posted" name="posted"
domain="[('state', '=', 'posted')]"
help="Posted Journal Entries"/>
<separator/>
<filter string="Reversed" name="reversed"
domain="[('payment_state', '=', 'reversed')]"/>
<separator/>
<filter string="To Check" name="checked"
domain="[('checked', '!=', True)]"/>
<separator/>
<filter string="Sales" name="sales"
domain="[('journal_id.type', '=', 'sale')]"
context="{'default_journal_type': 'sale'}"/>
<filter string="Purchases" name="purchases"
domain="[('journal_id.type', '=', 'purchase')]"
context="{'default_journal_type': 'purchase'}"/>
<filter string="Bank" name="bankoperations"
domain="[('journal_id.type', '=', 'bank')]"
context="{'default_journal_type': 'bank'}"/>
<filter string="Cash" name="cashoperations"
domain="[('journal_id.type', '=', 'cash')]"
context="{'default_journal_type': 'cash'}"/>
<filter string="Miscellaneous" name="misc_filter"
domain="[('journal_id.type', '=', 'general')]"
context="{'default_journal_type': 'general'}"/>
<separator/>
<filter string="Date" name="date" date="date"/>
<separator/>
<group expand="0" string="Group By">
<filter string="Partner" name="partner" domain="[]"
context="{'group_by': 'partner_id'}"/>
<filter string="Journal" name="journal" domain="[]"
context="{'group_by': 'journal_id'}"/>
<filter string="Status" name="status" domain="[]"
context="{'group_by': 'state'}"/>
<filter string="Date" name="by_date" domain="[]"
context="{'group_by': 'date'}"
help="Journal Entries by Date"/>
<filter string="Company" name="by_company" domain="[]"
context="{'group_by': 'company_id'}"
groups="base.group_multi_company"/>
</group>
</search>
</field>
</record>
<!--Filter for account.move model-->
<record id="view_account_invoice_filter" model="ir.ui.view">
<field name="name">account.invoice.select</field>
<field name="model">account.move</field>
<field name="arch" type="xml">
<search string="Search Invoice">
<field name="name" string="Invoice"
filter_domain="[
'|', '|' , '|', '|',
('name', 'ilike', self), ('invoice_origin', 'ilike', self),
('ref', 'ilike', self), ('payment_reference', 'ilike', self),
('partner_id', 'child_of', self)]"/>
<field name="journal_id"/>
<field name="partner_id" operator="child_of"/>
<field name="invoice_user_id" string="Salesperson"
domain="[('share', '=', False)]"/>
<field name="date" string="Period"/>
<filter domain="[('invoice_user_id', '=', uid)]"
name="myinvoices" help="My Invoices"/>
<separator/>
<filter name="draft" string="Draft"
domain="[('state','=','draft')]"/>
<filter name="posted" string="Posted"
domain="[('state', '=', 'posted')]"/>
<filter name="cancel" string="Cancelled"
domain="[('state', '=', 'cancel')]"/>
<separator/>
<filter string="To Check" name="checked"
domain="[('checked', '=', True)]"/>
<separator/>
<filter name="in_payment" string="In Payment"
domain="[('payment_state', '=', 'in_payment'), ('state', '=', 'posted')]"/>
<filter name="partial" string="Partially Paid"
domain="[('payment_state', '=', 'partial'), ('state', '=', 'posted')]"/>
<filter name="paid" string="Paid"
domain="[('payment_state', '=', 'paid'), ('state', '=', 'posted')]"/>
<filter name="unpaid" string="Not Paid"
domain="[('payment_state', '=', 'not_paid'), ('state', '=', 'posted')]"/>
<filter name="reversed" string="Reversed"
domain="[('payment_state', '=', 'reversed'), ('state', '=', 'posted')]"/>
<filter name="late" string="Overdue"
domain="['&amp;', ('invoice_date_due', '&lt;', time.strftime('%%Y-%%m-%%d')), ('state', '=', 'posted'), ('payment_state', 'in', ('not_paid', 'partial'))]"
help="Overdue invoices, maturity date passed"/>
<separator/>
<filter name="invoice_date" string="Invoice Date"
date="invoice_date"/>
<filter name="due_date" string="Due Date"
date="invoice_date_due"/>
<separator/>
<filter invisible="1" string="Late Activities"
name="activities_overdue"
domain="[('activity_ids.date_deadline', '&lt;', context_today().strftime('%Y-%m-%d'))]"
help="Show all records which has next action date is before today"/>
<filter invisible="1" string="Today Activities"
name="activities_today"
domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
<filter invisible="1" string="Future Activities"
name="activities_upcoming_all"
domain="[('activity_ids.date_deadline', '&gt;', context_today().strftime('%Y-%m-%d'))]"/>
<group expand="0" string="Group By">
<filter string="Salesperson" name="salesperson"
context="{'group_by':'invoice_user_id'}"/>
<filter name="status" string="Status"
context="{'group_by':'state'}"/>
<separator/>
<filter string="Invoice Date" name="invoicedate"
context="{'group_by': 'invoice_date'}"/>
<filter string="Due Date" name="duedate"
context="{'group_by': 'invoice_date_due'}"/>
</group>
</search>
</field>
</record>
<!-- ACTIONS -->
<!-- account.move.line (Journal Items) -->
<record id="action_move_line_select" model="ir.actions.act_window">
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="context">{'search_default_account_id': [active_id]}</field>
</record>
<record id="action_automatic_entry" model="ir.actions.server">
<field name="name">Automatic Entries</field>
<field name="model_id" ref="account.model_account_move_line"/>
<field name="groups_id"
eval="[(4, ref('account.group_account_user'))]"/>
<field name="binding_model_id" ref="account.model_account_move_line"/>
<field name="state">code</field>
<field name="code">action = records.action_automatic_entry()</field>
</record>
<record id="action_account_moves_all_a" model="ir.actions.act_window">
<field name="context">{'journal_type':'general',
'search_default_group_by_move': 1,
'search_default_posted':1, 'name_groupby':1, 'create':0}
</field>
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id" ref="view_move_line_tree_grouped"/>
<field name="view_mode">list,pivot,graph,form,kanban</field>
</record>
<record id="action_account_moves_journal_sales"
model="ir.actions.act_window">
<field name="context">{'journal_type':'sales',
'search_default_group_by_move': 1, 'search_default_posted':1,
'search_default_sales':1, 'name_groupby':1, 'expand': 1}
</field>
<field name="name">Sales</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id"
ref="view_move_line_tree_grouped_sales_purchases"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_journal_purchase"
model="ir.actions.act_window">
<field name="context">{'journal_type':'purchase',
'search_default_group_by_move': 1,
'search_default_posted':1, 'search_default_purchases':1,
'name_groupby':1, 'expand': 1}
</field>
<field name="name">Purchases</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id"
ref="view_move_line_tree_grouped_sales_purchases"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_journal_bank_cash"
model="ir.actions.act_window">
<field name="context">{'journal_type':'bank',
'search_default_group_by_move': 1, 'search_default_posted':1,
'search_default_bank':1, 'search_default_cash':1, 'expand': 1}
</field>
<field name="name">Bank and Cash</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id" ref="view_move_line_tree_grouped_bank_cash"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_journal_misc"
model="ir.actions.act_window">
<field name="context">{'journal_type':'general',
'search_default_group_by_move': 1,
'search_default_posted':1, 'search_default_misc_filter':1,
'name_groupby':1, 'expand': 1}
</field>
<field name="name">Miscellaneous</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id" ref="view_move_line_tree_grouped_misc"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_ledger_partner"
model="ir.actions.act_window">
<field name="context">{'journal_type':'general',
'search_default_group_by_partner': 1,
'search_default_posted':1, 'search_default_payable':1,
'search_default_receivable':1,
'search_default_unreconciled':1}
</field>
<field name="name">Partner Ledger</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="view_id" ref="view_move_line_tree_grouped_partner"/>
<field name="search_view_id" ref="view_account_move_line_filter"/>
<field name="view_mode">list,pivot,graph</field>
</record>
<record id="action_account_moves_all_tree" model="ir.actions.act_window">
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note'))]
</field>
<field name="context">{'search_default_partner_id': [active_id],
'default_partner_id': active_id,
'search_default_posted':1}
</field>
<field name="view_id" ref="account.view_move_line_tree"/>
</record>
<record id="action_account_moves_all" model="ir.actions.act_window">
<field name="context">{'journal_type':'general',
'search_default_posted':1}
</field>
<field name="name">Journal Items</field>
<field name="res_model">account.move.line</field>
<field name="domain">[('display_type', 'not in', ('line_section',
'line_note')), ('move_id.state', '!=',
'cancel')]
</field>
<field name="view_id" ref="account.view_move_line_tree"/>
<field name="view_mode">list,pivot,graph,form,kanban</field>
</record>
<!-- Journal entry for account.move -->
<record id="action_move_journal_line" model="ir.actions.act_window">
<field name="name">Journal Entries</field>
<field name="res_model">account.move</field>
<field name="view_mode">list,kanban,form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
<field name="context">{'default_move_type': 'entry',
'search_default_misc_filter':1, 'view_no_maturity':
True}
</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a journal entry
</p>
<p>
A journal entry consists of several journal items, each of
which is either a debit or a credit transaction.
</p>
</field>
</record>
<record id="action_move_out_invoice_type" model="ir.actions.act_window">
<field name="name">Fee Receipts</field>
<field name="res_model">account.move</field>
<field name="view_mode">list,kanban,form</field>
<field name="view_id" ref="view_out_invoice_tree"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="domain">[('move_type', '=', 'out_invoice'),('is_fee', '=',
True)]
</field>
<field name="context">{'default_move_type': 'out_invoice'}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Click to create a fee receipts.
</p>
<p>
Odoo's electronic fee register allows to ease and fasten the
collection of customer payments. Your students receives the
receipts by email and he can pay online and/or import it
in his own system.
</p>
<p>
The discussions with your students are automatically displayed
at
the bottom of each invoice.
</p>
</field>
</record>
<record id="action_fee_tree1_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="receipt_form"/>
<field name="act_window_id" ref="action_move_out_invoice_type"/>
</record>
<record id="action_fee_tree1_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">list</field>
<field name="view_id" ref="view_move_tree"/>
<field name="act_window_id" ref="action_move_out_invoice_type"/>
</record>
<record id="action_move_out_refund_type" model="ir.actions.act_window">
<field name="name">Student Credit Notes</field>
<field name="res_model">account.move</field>
<field name="view_mode">list,kanban,form</field>
<field name="view_id" ref="view_invoice_tree"/>
<field name="search_view_id" ref="view_account_invoice_filter"/>
<field name="domain">[('move_type', '=', 'out_refund'),('is_fee', '=',
True)]
</field>
<field name="context">{'default_move_type': 'out_refund'}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a credit note
</p>
<p>
Note that the easiest way to create a credit note is to do it
directly
from the customer invoice.
</p>
</field>
</record>
<record id="action_receipt_out_refund_form"
model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="receipt_form"/>
<field name="act_window_id" ref="action_move_out_refund_type"/>
</record>
<record id="action_receipt_out_refund_tree"
model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">list</field>
<field name="view_id" ref="view_move_tree"/>
<field name="act_window_id" ref="action_move_out_refund_type"/>
</record>
<!--Action -->
<record id="action_move_line_form" model="ir.actions.act_window">
<field name="name">Entries</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.move</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_account_move_filter"/>
</record>
<record model="ir.actions.server"
id="action_move_switch_invoice_to_credit_note">
<field name="name">Switch into refund/credit note</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="groups_id"
eval="[(4, ref('account.group_account_invoice'))]"/>
<field name="binding_model_id" ref="account.model_account_move"/>
<field name="state">code</field>
<field name="binding_view_types">form</field>
<field name="code">
if records:
action = records.action_switch_invoice_into_refund_credit_note()
</field>
</record>
<!--Server action for inalterability check-->
<record id="action_check_hash_integrity" model="ir.actions.server">
<field name="name">Data Inalterability Check</field>
<field name="model_id" ref="account.model_res_company"/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">
action = env.company._action_check_hash_integrity()
</field>
</record>
<!-- Menu item for students fee-->
<menuitem id="menu_student_fee_receipt" name="Students Fee"
parent="education_fee_menu_root"
sequence="2"/>
<!-- Menu item for invoice receipt-->
<menuitem id="menu_action_fee_receipt" action="action_move_out_invoice_type"
parent="menu_student_fee_receipt"
sequence="1"/>
<!-- Menu item for refund type receipt-->
<menuitem id="receipt_out_refund_menu_action"
action="action_move_out_refund_type"
parent="menu_student_fee_receipt"
sequence="2"/>
</odoo>