122 lines
7.0 KiB
XML
122 lines
7.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<record id="view_education_fee_assignment_tree" model="ir.ui.view">
|
|
<field name="name">education.fee.assignment.tree</field>
|
|
<field name="model">education.fee.assignment</field>
|
|
<field name="arch" type="xml">
|
|
<list string="Fee Invoices & Assignments">
|
|
<field name="name"/>
|
|
<field name="student_id"/>
|
|
<field name="academic_year_id"/>
|
|
<field name="semester_id"/>
|
|
<field name="fee_structure_id"/>
|
|
<field name="assignment_date"/>
|
|
<field name="due_date"/>
|
|
<field name="amount" sum="Total Invoiced"/>
|
|
<field name="amount_paid" sum="Total Paid"/>
|
|
<field name="amount_due" sum="Total Due"/>
|
|
<field name="payment_status" widget="badge" decoration-success="payment_status == 'paid'" decoration-warning="payment_status == 'partial'" decoration-danger="payment_status == 'overdue'" decoration-info="payment_status == 'unpaid'"/>
|
|
<field name="state" widget="badge" decoration-info="state == 'draft'" decoration-success="state == 'confirmed'"/>
|
|
<field name="company_id" groups="base.group_multi_company"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_education_fee_assignment_form" model="ir.ui.view">
|
|
<field name="name">education.fee.assignment.form</field>
|
|
<field name="model">education.fee.assignment</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Fee Invoice / Assignment">
|
|
<header>
|
|
<button name="action_confirm" string="Confirm & Post to Ledger" type="object" class="oe_highlight" invisible="state == 'confirmed'"/>
|
|
<button name="action_cancel" string="Cancel & Reverse Ledger" type="object" invisible="state == 'draft'"/>
|
|
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<label for="name" string="Invoice / Ref Number"/>
|
|
<h1><field name="name" readonly="1"/></h1>
|
|
</div>
|
|
<group>
|
|
<group string="Student & Academic Scope">
|
|
<field name="student_id" readonly="state == 'confirmed'"/>
|
|
<field name="academic_year_id" readonly="state == 'confirmed'"/>
|
|
<field name="academic_term_id" readonly="state == 'confirmed'"/>
|
|
<field name="semester_id" readonly="state == 'confirmed'"/>
|
|
</group>
|
|
<group string="Schedule & Financials">
|
|
<field name="fee_structure_id" readonly="state == 'confirmed'"/>
|
|
<field name="assignment_date" readonly="state == 'confirmed'"/>
|
|
<field name="due_date" readonly="state == 'confirmed'"/>
|
|
<field name="currency_id" invisible="1"/>
|
|
<field name="amount"/>
|
|
<field name="amount_paid"/>
|
|
<field name="amount_due"/>
|
|
<field name="payment_status" widget="badge" decoration-success="payment_status == 'paid'" decoration-warning="payment_status == 'partial'" decoration-danger="payment_status == 'overdue'" decoration-info="payment_status == 'unpaid'"/>
|
|
<field name="company_id" groups="base.group_multi_company"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Fee Lines Breakdown" name="lines_page">
|
|
<field name="line_ids" readonly="1">
|
|
<list string="Fee Lines">
|
|
<field name="fee_type_id"/>
|
|
<field name="amount"/>
|
|
<field name="mandatory"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
<page string="Payments Received" name="payments_page">
|
|
<field name="payment_ids" readonly="1">
|
|
<list string="Payments">
|
|
<field name="receipt_number"/>
|
|
<field name="payment_date"/>
|
|
<field name="payment_method"/>
|
|
<field name="amount"/>
|
|
<field name="status" widget="badge" decoration-success="status == 'confirmed'"/>
|
|
</list>
|
|
</field>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_education_fee_assignment_search" model="ir.ui.view">
|
|
<field name="name">education.fee.assignment.search</field>
|
|
<field name="model">education.fee.assignment</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Fee Assignments & Invoices">
|
|
<field name="name"/>
|
|
<field name="student_id"/>
|
|
<field name="fee_structure_id"/>
|
|
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]"/>
|
|
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"/>
|
|
<separator/>
|
|
<filter string="Overdue" name="overdue" domain="[('payment_status', '=', 'overdue')]"/>
|
|
<filter string="Unpaid" name="unpaid" domain="[('payment_status', 'in', ('unpaid', 'partial'))]"/>
|
|
<filter string="Paid" name="paid" domain="[('payment_status', '=', 'paid')]"/>
|
|
<group>
|
|
<filter string="Student" name="group_student" context="{'group_by': 'student_id'}"/>
|
|
<filter string="Fee Structure" name="group_structure" context="{'group_by': 'fee_structure_id'}"/>
|
|
<filter string="Payment Status" name="group_payment_status" context="{'group_by': 'payment_status'}"/>
|
|
<filter string="Status" name="group_status" context="{'group_by': 'state'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_education_fee_assignment" model="ir.actions.act_window">
|
|
<field name="name">Fee Assignments & Invoices</field>
|
|
<field name="res_model">education.fee.assignment</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="search_view_id" ref="view_education_fee_assignment_search"/>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">
|
|
Assign fee structures and generate fee obligations for students.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
</odoo>
|