<record id="view_voucher_filter_customer_pay" model="ir.ui.view">
<field name="name">account.voucher.customer.pay.select</field>
<field name="model">account.voucher</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Vouchers">
- <group>
- <field name="number" filter_domain="[('number','ilike',self)]" string="Voucher"/>
- <separator orientation="vertical"/>
- <field name="date"/>
- <separator orientation="vertical"/>
- <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
- <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
- <separator orientation="vertical"/>
- <filter icon="terp-gtk-jump-to-ltr" string="To Review" domain="[('state','=','posted')]" help="To Review"/>
- <separator orientation="vertical"/>
- <field name="partner_id" string="Customer"/>
- <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
- <field name="period_id"/>
- </group>
- <newline/>
+ <field name="number" string="Voucher"/>
+ <field name="date"/>
+ <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
+ <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
+ <field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
+ <field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<record id="view_voucher_filter_vendor_pay" model="ir.ui.view">
<field name="name">account.voucher.purchase.pay.select</field>
<field name="model">account.voucher</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Vouchers">
- <group>
- <field name="number" filter_domain="[('number','ilike',self)]" string="Voucher"/>
- <separator orientation="vertical"/>
- <field name="date"/>
- <separator orientation="vertical"/>
- <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
- <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
- <separator orientation="vertical"/>
- <filter icon="terp-gtk-jump-to-ltr" string="To Review" domain="[('state','=','posted')]" help="To Review"/>
- <separator orientation="vertical"/>
- <field name="partner_id" string="Supplier"/>
- <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
- <field name="period_id"/>
- </group>
- <newline/>
+ <field name="number" string="Voucher"/>
+ <field name="date"/>
+ <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
+ <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
+ <field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
+ <field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
</search>
</field>
</record>
+
+ <!-- TODO: merge the 3 voucher form views of this file into a single view -->
+ <!-- Low priority view... If we open a voucher from a m2o, for example. -->
<record model="ir.ui.view" id="view_low_priority_payment_form">
<field name="name">account.voucher.payment.low.priority.form</field>
<field name="model">account.voucher</field>
- <field name="type">form</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="Bill Payment" version="7.0">
<group col="6">
- <field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}" />
+ <field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}"/>
+ <field name="state" invisible="1"/>
+ <field name="company_id" invisible="1"/>
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
<field name="journal_id"
domain="[('type','in',['bank', 'cash'])]"
</group>
<notebook>
<page string="Payment Information">
- <field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
+ <label for="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}"/>
+ <field name="line_dr_ids" attrs="{'invisible': [('type', '=', 'receipt')]}" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="140" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Open Supplier Journal Entries" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
- domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
- />
+ domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"/>
<field name="account_id" domain="[('type','=','payable')]"/>
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="amount" sum="Total Allocation"/>
</tree>
</field>
- <field name="line_cr_ids" attrs="{'invisible': [('type', '=', 'payment')]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
+ <label for="line_cr_ids" attrs="{'invisible': [('type', '=', 'payment')]}"/>
+ <field name="line_cr_ids" attrs="{'invisible': [('type', '=', 'payment')]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Open Customer Journal Entries" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
- domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
- />
+ domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"/>
<field name="account_id" domain="[('type','=','payable')]"/>
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="narration" nolabel="1" colspan="2"/>
</group>
<group string="Other Information" col="4">
- <field name="currency_id" colspan="4"/>
- <field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
- <field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
+ <field name="currency_id" colspan="4" groups="base.group_multi_currency"/>
+ <field name="payment_rate" required="1" colspan="3" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
<field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
<field name="number" colspan="4"/>
</group>
</field>
</record>
+ <!-- Supplier Payment -->
<record model="ir.ui.view" id="view_vendor_payment_form">
<field name="name">account.voucher.payment.form</field>
<field name="model">account.voucher</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form version="7.0">
+ <form string="Voucher Payment" version="7.0">
<header>
- <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
- <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
+ <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/>
+ <button name="cancel_voucher" string="Cancel Voucher" states="draft,proforma" invisible="context.get('line_type', False)"/>
<button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
<button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
- <sheet string="Bill Payment">
- <group col="6">
- <field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/>
- <field name="amount" invisible="context.get('line_type', False)" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
- <field name="journal_id"
- domain="[('type','in',['bank', 'cash'])]"
- invisible="context.get('line_type', False)"
- widget="selection"
- on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, company_id, context)"
- string="Payment Method"/>
- <field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
- <field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/>
- <field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/>
- <field name="company_id" widget="selection" groups="base.group_multi_company"/>
- <field name="account_id"
- widget="selection"
- invisible="True"/>
- <field name="pre_line" invisible="1"/>
- <field name="type" invisible="True"/>
- <field name="currency_id" invisible="1" colspan="4"/>
+ <sheet>
+ <field name="account_id" invisible="True"/>
+ <field name="pre_line" invisible="1"/>
+ <field name="type" invisible="True"/>
+ <group>
+ <group>
+ <field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/>
+ <field name="currency_id" invisible="1"/>
+ <field name="amount" invisible="context.get('line_type', False)" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)" class="oe_inline" widget='monetary' options='{"currency_field": "currency_id"}'/>
+ <field name="journal_id"
+ domain="[('type','in',['bank', 'cash'])]"
+ invisible="context.get('line_type', False)"
+ widget="selection"
+ on_change="onchange_journal(journal_id, line_dr_ids, False, partner_id, date, amount, type, company_id, context)"
+ string="Payment Method"/>
+ </group>
+ <group>
+ <field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
+ <field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="e.g. 003/10"/>
+ <field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
+ <field name="company_id" widget="selection" groups="base.group_multi_company"/>
+ </group>
</group>
<notebook>
<page string="Payment Information">
- <field name="line_dr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}">
+ <label for="line_dr_ids"/>
+ <field name="line_dr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Supplier Invoices and Outstanding transactions" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
- required="1"
- />
+ required="1"/>
<field name="account_id" groups="base.group_no_one" domain="[('type','=','payable')]"/>
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="amount_original" readonly="1"/>
- <field name="amount_unreconciled" readonly="1"/>
- <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
+ <field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/>
+ <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
</tree>
</field>
- <field name="line_cr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}">
+ <label for="line_cr_ids" attrs="{'invisible': [('pre_line','=',False)]}"/>
+ <field name="line_cr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Credits" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
- required="1"
- />
+ required="1"/>
<field name="account_id" groups="base.group_no_one" domain="[('type','=','payable')]"/>
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
<field name="amount_original" readonly="1"/>
- <field name="amount_unreconciled" readonly="1"/>
- <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
+ <field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/>
+ <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/>
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)"/>
</tree>
</field>
<field name="narration" colspan="2" nolabel="1"/>
</group>
<group>
- <group col="4" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
- <separator string="Currency Options" colspan="4"/>
+ <group col="2" attrs="{'invisible':[('is_multi_currency','=',False)]}">
+ <separator string="Currency Options" colspan="2"/>
<field name="is_multi_currency" invisible="1"/>
- <field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
- <field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
- <field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
+ <label for="payment_rate" colspan="1"/>
+ <div>
+ <field name="payment_rate" required="1" class="oe_inline" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="payment_rate_currency_id" class="oe_inline" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
+ </div>
+ <field name="currency_help_label" colspan="2" nolabel="1" class="oe_grey"/>
+ <field name="paid_amount_in_company_currency" colspan="2" invisible="1"/>
</group>
<group col="2">
<separator string="Payment Options" colspan="2"/>
- <field name="writeoff_amount"/>
+ <field name="writeoff_amount" widget='monetary' options='{"currency_field": "currency_id"}'/>
<field name="payment_option" required="1"/>
<field name="writeoff_acc_id"
attrs="{'invisible':[('payment_option','!=','with_writeoff')], 'required':[('payment_option','=','with_writeoff')]}"
<field name="credit"/>
<field name="state"/>
<field name="reconcile_id"/>
- <field name="amount_currency"/>
- <field name="currency_id"/>
+ <field name="amount_currency" groups="base.group_multi_currency"/>
+ <field name="currency_id" groups="base.group_multi_currency"/>
</tree>
</field>
</page>
</notebook>
</sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
</form>
</field>
</record>
<record id="action_vendor_payment" model="ir.actions.act_window">
- <field name="name">Supplier Payment</field>
+ <field name="name">Supplier Payments</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','payment')]</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_voucher_filter_vendor_pay"/>
<field name="target">current</field>
- <field name="help">The supplier payment form allows you to track the payment you do to your suppliers. When you select a supplier, the payment method and an amount for the payment, OpenERP will propose to reconcile your payment with the open supplier invoices or bills.</field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to create a new supplier payment.
+ </p><p>
+ OpenERP helps you easily track payments you make and the remaining balances you need to pay your suppliers.
+ </p>
+ </field>
</record>
<record id="action_vendor_payment_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<menuitem action="action_vendor_payment" icon="STOCK_JUSTIFY_FILL" sequence="12"
id="menu_action_vendor_payment" parent="account.menu_finance_payables"/>
+ <!-- Register Payment Form (old Pay Invoice wizard) -->
+ <record model="ir.ui.view" id="view_vendor_receipt_dialog_form">
+ <field name="name">account.voucher.receipt.dialog.form</field>
+ <field name="model">account.voucher</field>
+ <field name="priority">30</field>
+ <field name="arch" type="xml">
+ <form string="Payment" version="7.0">
+ <group>
+ <group>
+ <field name="state" invisible="1"/>
+ <field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
+ <field name="currency_id" invisible="1"/>
+ <field name="amount" class="oe_inline"
+ string="Paid Amount"
+ widget='monetary' options='{"currency_field": "currency_id"}'
+ invisible="context.get('line_type', False)"
+ on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="journal_id"
+ domain="[('type','in',['bank', 'cash'])]"
+ invisible="context.get('line_type', False)"
+ widget="selection"
+ on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
+ string="Payment Method"/>
+ </group>
+
+ <group>
+ <field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
+ <field name="period_id"/>
+ <field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="e.g. 003/10"/>
+ <field name="name" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
+ <field name="company_id" widget="selection" groups="base.group_multi_company"/>
+
+ <field name="account_id"
+ widget="selection"
+ invisible="True"/>
+ <field name="pre_line" invisible="1"/>
+ <field name="type" invisible="True"/>
+ </group>
+ </group>
+ <group>
+ <group>
+ <field name="writeoff_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
+ <field name="payment_option" required="1" attrs="{'invisible':[('writeoff_amount','=',0)]}"/>
+ <field name="writeoff_acc_id"
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)], 'required':[('payment_option','=','with_writeoff')]}"
+ domain="[('type','=','other')]"/>
+ <field name="comment"
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)]}"/>
+ <field name="analytic_id"
+ groups="analytic.group_analytic_accounting"
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)]}"/>
+ </group>
+ <group>
+ </group>
+ </group>
+ <notebook invisible="1">
+ <page string="Payment Information" groups="base.group_user">
+ <label for="line_cr_ids"/>
+ <field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
+ <tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
+ <field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
+ on_change="onchange_move_line_id(move_line_id)"
+ domain="[('account_id.type','in',('receivable','payable')), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
+ required="1"
+ groups="account.group_account_user"/>
+ <field name="account_id" groups="base.group_no_one" domain="[('type','=','receivable')]"/>
+ <field name="date_original" readonly="1"/>
+ <field name="date_due" readonly="1"/>
+ <field name="amount_original" readonly="1"/>
+ <field name="amount_unreconciled" readonly="1" groups="account.group_account_user"/>
+ <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)" groups="account.group_account_user"/>
+ <field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
+ </tree>
+ </field>
+ <label for="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}"/>
+ <field name="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
+ <tree string="Credits" editable="bottom" colors="gray:amount==0">
+ <field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
+ on_change="onchange_move_line_id(move_line_id)"
+ domain="[('account_id.type','in',('receivable','payable')), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
+ required="1"/>
+ <field name="account_id" groups="base.group_no_one" domain="[('type','=','receivable')]"/>
+ <field name="date_original" readonly="1"/>
+ <field name="date_due" readonly="1"/>
+ <field name="amount_original" readonly="1"/>
+ <field name="amount_unreconciled" readonly="1"/>
+ <field name="reconcile" on_change="onchange_reconcile(reconcile, amount, amount_unreconciled, context)"/>
+ <field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
+ </tree>
+ </field>
+ <group col="3">
+ <group>
+ <field name="narration" colspan="2" nolabel="1"/>
+ </group>
+ <group col="4" attrs="{'invisible':[('is_multi_currency','=',False)]}">
+ <field name="is_multi_currency" invisible="1"/>
+ <field name="payment_rate" required="1" colspan="3" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
+ <field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
+ </group>
+ </group>
+ </page>
+ </notebook>
+ <footer>
+ <button name="button_proforma_voucher" string="Pay" class="oe_highlight" type="object"/> or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
+ </form>
+ </field>
+ </record>
+
+
+ <!-- Customer Payment -->
<record model="ir.ui.view" id="view_vendor_receipt_form">
<field name="name">account.voucher.receipt.form</field>
<field name="model">account.voucher</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form version="7.0">
- <header>
- <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)"/>
- <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/>
- <button name="cancel_voucher" string="Unreconcile" type="object" states="posted" invisible="context.get('line_type', False)" confirm="Are you sure to unreconcile and cancel this record ?"/>
- <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" invisible="context.get('line_type', False)"/>
+ <form string="Receipt" version="7.0">
+ <header invisible="context.get('line_type', False)">
+ <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/>
+ <button name="cancel_voucher" string="Cancel Receipt" states="draft,proforma"/>
+ <button name="cancel_voucher" string="Unreconcile" type="object" states="posted" confirm="Are you sure to unreconcile and cancel this record ?"/>
+ <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft"/>
<field name="state" widget="statusbar" statusbar_visible="draft,posted" statusbar_colors='{"proforma":"blue"}'/>
</header>
<sheet>
- <div class="oe_title">
- <div class="oe_edit_only">
- <label for="parter_id" />
- </div>
- <h1>
- <field name="partner_id" domain="[('customer','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
- </h1>
- </div>
- <div>
- Pay
- <field name="amount"
- invisible="context.get('line_type', False)"
- string="Paid Amount"
- class="oe_inline"
- on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
- by
- <field name="journal_id"
- domain="[('type','in',['bank', 'cash'])]"
- invisible="context.get('line_type', False)"
- widget="selection"
- class="oe_inline"
- on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
- string="Payment Method"/>
+ <h1 attrs="{'invisible': [('number','=',False)]}"><field name="number"/></h1>
+ <group invisible="context.get('line_type', False)">
+ <group>
+ <field name="partner_id" domain="[('customer','=',True)]" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
+ <field name="currency_id" invisible="1"/>
+ <field name="amount" class="oe_inline"
+ string="Paid Amount"
+ widget="monetary" options="{'currency_field': 'currency_id'}"
+ on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="journal_id"
+ domain="[('type','in',['bank', 'cash'])]"
+ widget="selection"
+ on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)"
+ string="Payment Method"/>
+ </group>
+ <group>
+ <field name="date" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
+ <field name="reference" string="Payment Ref" placeholder="e.g. 003/10"/>
+ <field name="name" colspan="2" placeholder="e.g. Invoice SAJ/0042"/>
+ <field name="company_id" widget="selection" groups="base.group_multi_company"/>
- </div>
-
- <group col="6">
- <field name="currency_id" invisible="1"/>
- <field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
- <field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="003/10"/>
- <field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="Invoice SAJ/0042"/>
- <field name="company_id" widget="selection" groups="base.group_multi_company"/>
- <field name="account_id"
- widget="selection"
- invisible="True"/>
- <field name="pre_line" invisible="1"/>
- <field name="type" invisible="True"/>
+ <field name="account_id"
+ widget="selection"
+ invisible="True"/>
+ <field name="pre_line" invisible="1"/>
+ <field name="type" invisible="True"/>
+ </group>
</group>
<notebook>
- <page string="Payment Information">
- <field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
+ <page string="Payment Information" groups="base.group_user">
+ <label for="line_cr_ids" invisible="context.get('line_type', False)"/>
+ <field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
<field name="amount" sum="Total Allocation" on_change="onchange_amount(amount, amount_unreconciled, context)" string="Allocation"/>
</tree>
</field>
- <field name="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
+ <label for="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}"/>
+ <field name="line_dr_ids" attrs="{'invisible': [('pre_line','=',False)]}" context="{'journal_id':journal_id, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, type, context)">
<tree string="Credits" editable="bottom" colors="gray:amount==0">
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
on_change="onchange_move_line_id(move_line_id)"
domain="[('account_id.type','in',('receivable','payable')), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
- required="1"
- />
+ required="1"/>
<field name="account_id" groups="base.group_no_one" domain="[('type','=','receivable')]"/>
<field name="date_original" readonly="1"/>
<field name="date_due" readonly="1"/>
</tree>
</field>
<group col="3">
- <group col="2" string="Internal Notes">
+ <group>
<field name="narration" colspan="2" nolabel="1"/>
</group>
- <group col="4" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
- <separator string="Currency Options" colspan="4"/>
+ <group col="4" attrs="{'invisible':[('is_multi_currency','=',False)]}">
<field name="is_multi_currency" invisible="1"/>
- <field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" colspan="3"/>
- <field name="payment_rate_currency_id" colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
+ <label for="payment_rate" colspan="1"/>
+ <div>
+ <field name="payment_rate" required="1" class="oe_inline" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
+ <field name="payment_rate_currency_id" class="oe_inline" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)" groups="base.group_multi_currency"/>
+ </div>
+ <field name="currency_help_label" colspan="2" nolabel="1" class="oe_grey"/>
<field name="paid_amount_in_company_currency" colspan="4" invisible="1"/>
</group>
- <group col="2">
- <separator string="Payment Options" colspan="2"/>
- <field name="writeoff_amount"/>
- <field name="payment_option" required="1"/>
+ <group>
+ <field name="writeoff_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
+ <field name="payment_option" required="1" attrs="{'invisible':[('writeoff_amount','=',0)]}"/>
<field name="writeoff_acc_id"
- attrs="{'invisible':[('payment_option','!=','with_writeoff')], 'required':[('payment_option','=','with_writeoff')]}"
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)], 'required':[('payment_option','=','with_writeoff')]}"
domain="[('type','=','other')]"/>
<field name="comment"
- attrs="{'invisible':[('payment_option','!=','with_writeoff')]}"/>
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)]}"/>
<field name="analytic_id"
- groups="analytic.group_analytic_accounting"/>
+ groups="analytic.group_analytic_accounting"
+ attrs="{'invisible':['|', ('payment_option','!=','with_writeoff'), ('writeoff_amount','=',0)]}"/>
</group>
</group>
</page>
<group col="4">
<field name="period_id"/>
<field name="audit"/>
- <field name="number"/>
</group>
<field name="move_ids" readonly="1">
- <tree string="Journal Items">
- <field name="move_id"/>
- <field name="ref"/>
- <field name="date"/>
- <field name="statement_id"/>
- <field name="partner_id"/>
- <field name="account_id"/>
- <field name="name"/>
- <field name="debit"/>
- <field name="credit"/>
- <field name="state"/>
- <field name="reconcile_id"/>
- <field name="amount_currency"/>
- <field name="currency_id"/>
- </tree>
+ <tree string="Journal Items">
+ <field name="move_id"/>
+ <field name="ref"/>
+ <field name="date"/>
+ <field name="statement_id"/>
+ <field name="partner_id"/>
+ <field name="account_id"/>
+ <field name="name"/>
+ <field name="debit"/>
+ <field name="credit"/>
+ <field name="state"/>
+ <field name="reconcile_id"/>
+ <field name="amount_currency"/>
+ <field name="currency_id" groups="base.group_multi_currency"/>
+ </tree>
</field>
</page>
</notebook>
</sheet>
+ <div class="oe_chatter" invisible="context.get('line_type', False)">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
</form>
</field>
</record>
<record id="action_vendor_receipt" model="ir.actions.act_window">
- <field name="name">Customer Payment</field>
+ <field name="name">Customer Payments</field>
<field name="res_model">account.voucher</field>
<field name="view_type">form</field>
<field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]</field>
<field name="search_view_id" ref="view_voucher_filter_customer_pay"/>
<field name="view_id" eval="False"/>
<field name="target">current</field>
- <field name="help">Sales payment allows you to register the payments you receive from your customers. In order to record a payment, you must enter the customer, the payment method (=the journal) and the payment amount. OpenERP will propose to you automatically the reconciliation of this payment with the open invoices or sales receipts.</field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to register a new payment.
+ </p><p>
+ Enter the customer and the payment method and then, either
+ create manually a payment record or OpenERP will propose to you
+ automatically the reconciliation of this payment with the open
+ invoices or sales receipts.
+ </p>
+ </field>
</record>
<record id="action_vendor_receipt_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<menuitem action="action_vendor_receipt" icon="STOCK_JUSTIFY_FILL" sequence="12"
id="menu_action_vendor_receipt" parent="account.menu_finance_receivables"/>
+
</data>
</openerp>