[ADD] Add form dirty confirmation dialog
[odoo/odoo.git] / addons / account_voucher / voucher_sales_purchase_view.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <openerp>
3     <data>
4         <record id="view_voucher_filter_vendor" model="ir.ui.view">
5             <field name="name">account.voucher.purchase.select</field>
6             <field name="model">account.voucher</field>
7             <field name="type">search</field>
8             <field name="arch" type="xml">
9                 <search string="Search Vouchers">
10                     <group col='8' colspan='4'>
11                         <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
12                         <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
13                         <separator orientation="vertical"/>
14                         <filter icon="terp-gtk-jump-to-ltr" string="To Review" domain="[('state','=','posted')]" groups="base.group_extended" help="To Review"/>
15                         <separator orientation="vertical"/>
16                         <field name="date"/>
17                         <field name="number"/>
18                         <field name="partner_id" string="Supplier"/>
19                     </group>
20                     <newline/>
21                     <group col='8' colspan='4'>
22                         <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('purchase','purchase_refund'))]"/>
23                         <field name="period_id" groups="base.group_extended"/>
24                     </group>
25                    <newline/>
26                     <group expand="0" string="Group By..." colspan="4" col="10">
27                         <filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
28                         <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
29                         <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
30                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
31                     </group>
32                 </search>
33             </field>
34         </record>
35
36         <record id="view_voucher_filter_sale" model="ir.ui.view">
37             <field name="name">account.voucher.sale.select</field>
38             <field name="model">account.voucher</field>
39             <field name="type">search</field>
40             <field name="arch" type="xml">
41                 <search string="Search Vouchers">
42                     <group col='8' colspan='4'>
43                         <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
44                         <filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
45                         <separator orientation="vertical"/>
46                         <filter icon="terp-gtk-jump-to-ltr" string="To Review" domain="[('state','=','posted')]" groups="base.group_extended" help="To Review"/>
47                         <separator orientation="vertical"/>
48                         <field name="date"/>
49                         <field name="number"/>
50                         <field name="partner_id" string="Customer"/>
51                     </group>
52                     <newline/>
53                     <group col='8' colspan='4'>
54                         <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('sale','sale_refund'))]"/>
55                         <field name="period_id" groups="base.group_extended"/>
56                     </group>
57                    <newline/>
58                     <group expand="0" string="Group By..." colspan="4" col="10">
59                         <filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
60                         <filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
61                         <filter string="Period" icon="terp-go-month" domain="[]" context="{'group_by':'period_id','visible':True}"/>
62                         <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
63                     </group>
64                 </search>
65             </field>
66         </record>
67
68         <record id="act_pay_voucher" model="ir.actions.act_window">
69             <field name="name">Customer Payment</field>
70             <field name="res_model">account.voucher</field>
71             <field name="view_type">form</field>
72             <field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)]</field>
73             <field name="context">{'type':'receipt', 'partner_id': partner_id, 'default_reference':reference}</field>
74             <field name="view_id" ref="view_vendor_receipt_form"/>
75             <field name="target">current</field>
76         </record>
77
78         <record model="ir.ui.view" id="view_sale_receipt_form">
79             <field name="name">account.voucher.sale.form</field>
80             <field name="model">account.voucher</field>
81             <field name="type">form</field>
82             <field name="arch" type="xml">
83                 <form string="Sales Receipt">
84                     <group col="6" colspan="4">
85                         <field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)" string="Customer"/>
86                         <field name="date" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date, context)"/>
87                         <field name="journal_id" domain="[('type','in',['sale','sale_refund'])]" widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, tax_id, partner_id)"/>
88                         <field name="number"/>
89                         <field name="name" colspan="2"/>
90                         <field name="company_id" select="1" widget="selection" groups="base.group_multi_company"/>
91                         <field name="type" invisible="True"/>
92                         <field name="currency_id"/>
93                     </group>
94                     <notebook colspan="4">
95                         <page string="Sales Information">
96                             <field name="line_cr_ids" on_change="onchange_price(line_cr_ids, tax_id, partner_id)" default_get="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" colspan="4" nolabel="1" height="180">
97                                 <tree string="Sales Lines" editable="bottom">
98                                     <field name="account_id" domain="[('user_type.report_type','=','income'),('type','!=','view')]" widget="selection"/>
99                                     <field name="name"/>
100                                     <field name="amount" sum="Total"/>
101                                     <field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
102                                 </tree>
103                             </field>
104                             <group col="2" colspan="3">
105                                 <separator string="Internal Notes" colspan="2"/>
106                                 <field name="narration" colspan="2" nolabel="1"/>
107                             </group>
108                             <group col="2" colspan="1">
109                                 <group col="2" colspan="1">
110                                     <separator string="Payment Options" colspan="2"/>
111                                     <field name="pay_now" on_change="onchange_payment(pay_now, journal_id, partner_id)" required="1"/>
112                                     <field name="account_id"
113                                          attrs="{'invisible':[('pay_now','!=','pay_now')]}"
114                                           domain="[('type','=','liquidity')]"/>
115                                          <!-- should select income accounts only. Or use the journal for this ? -->
116                                     <field name="reference"
117                                          attrs="{'invisible':[('pay_now','!=','pay_now')]}"
118                                     />
119                                     <field name="date_due" attrs="{'invisible':[('pay_now','=','pay_now')]}"/>
120                                 </group>
121                                 <group col="4" colspan="1">
122                                     <separator string="Total" colspan="4"/>
123                                     <field name="tax_id" on_change="onchange_price(line_cr_ids, tax_id, partner_id)" widget="selection" domain="[('type_tax_use','in',('sale','all')), ('parent_id', '=', False)]"/><field name="tax_amount" nolabel="1"/><button type="object" icon="terp-stock_format-scientific" name="compute_tax" groups="base.group_extended" string="Compute Tax" attrs="{'invisible': [('state','!=','draft')]}"/>
124                                     <label string="" colspan="1"/><field name="amount" string="Total"/>
125                                 </group>
126                             </group>
127                         </page>
128                         <page string="Journal Items" groups="base.group_extended" attrs="{'invisible': [('state','!=','posted')]}">
129                             <group col="6" colspan="4">
130                                 <field name="period_id"/>
131                                 <field name="audit"/>
132                             </group>
133                             <field name="move_ids" colspan="4" nolabel="1" readonly="1">
134                                <tree string="Journal Items">
135                                    <field name="move_id"/>
136                                    <field name="ref"/>
137                                    <field name="date"/>
138                                    <field name="statement_id"/>
139                                    <field name="partner_id"/>
140                                    <field name="account_id"/>
141                                    <field name="name"/>
142                                    <field name="debit"/>
143                                    <field name="credit"/>
144                                    <field name="state"/>
145                                    <field name="reconcile_id"/>
146                                </tree>
147                             </field>
148                         </page>
149                     </notebook>
150                     <group col="8" colspan="4">
151                         <field name="state"/>
152                         <button name="cancel_voucher" string="Cancel" states="draft,proforma"  icon="gtk-cancel"/>
153                         <button name="cancel_voucher" string="Cancel" type="object" states="posted" icon="terp-stock_effects-object-colorize" confirm="Are you sure to confirm this record ?"/>
154                         <button name="proforma_voucher" string="Validate" states="draft" icon="gtk-go-forward"/>
155                         <group attrs="{'invisible':[('state','!=','posted')]}">
156                            <button icon="terp-dolar_ok!" name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':[('pay_now','=','pay_now')]}"/>
157                         </group>
158                         <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
159                     </group>
160                 </form>
161             </field>
162         </record>
163
164         <!-- Sales Voucher -->
165         <record id="action_sale_receipt" model="ir.actions.act_window">
166             <field name="name">Sales Receipt</field>
167             <field name="res_model">account.voucher</field>
168             <field name="view_type">form</field>
169             <field name="domain">[('journal_id.type','in',['sale','sale_refund']), ('type','=','sale')]</field>
170             <field name="context">{'type':'sale'}</field>
171             <field name="view_id" eval="False"/>
172             <field name="search_view_id" ref="view_voucher_filter_sale"/>
173             <field name="target">current</field>
174             <field name="help">When you sell products to a customer, you can give him a sales receipt or an invoice. When the sales receipt is confirmed, it creates journal items automatically and you can record the customer payment related to this sales receipt.</field>
175         </record>
176         <record id="action_sale_receipt_tree" model="ir.actions.act_window.view">
177             <field eval="1" name="sequence"/>
178             <field name="view_mode">tree</field>
179             <field name="act_window_id" ref="action_sale_receipt"/>
180         </record>
181         <record id="action_sale_receipt_form" model="ir.actions.act_window.view">
182             <field eval="2" name="sequence"/>
183             <field name="view_mode">form</field>
184             <field name="view_id" ref="view_sale_receipt_form"/>
185             <field name="act_window_id" ref="action_sale_receipt"/>
186         </record>
187
188         <menuitem id="menu_action_sale_receipt" icon="STOCK_JUSTIFY_FILL"
189             action="action_sale_receipt"
190             parent="account.menu_finance_receivables"
191             groups="base.group_extended"
192             sequence="10"/>
193
194         <!--  Purchase Vouchers -->
195         <record id="act_pay_bills" model="ir.actions.act_window">
196             <field name="name">Bill Payment</field>
197             <field name="res_model">account.voucher</field>
198             <field name="view_type">form</field>
199             <field name="domain">[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','payment'), ('partner_id','=',partner_id)]</field>
200             <field name="context">{'type':'payment', 'partner_id': partner_id, 'default_reference':reference}</field>
201             <field name="view_id" ref="view_vendor_payment_form"/>
202             <field name="target">current</field>
203         </record>
204         <record model="ir.ui.view" id="view_purchase_receipt_form">
205             <field name="name">account.voucher.purchase.form</field>
206             <field name="model">account.voucher</field>
207             <field name="type">form</field>
208             <field name="arch" type="xml">
209                 <form string="Supplier Voucher">
210                     <group col="6" colspan="4">
211                         <field name="partner_id" domain="[('supplier','=',True)]" required="1" string="Supplier" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date)"/>
212                         <field name="date" string="Bill Date" select="1" on_change="onchange_date(partner_id, journal_id, amount, currency_id, type, date, context)"/>
213                         <field name="journal_id" domain="[('type','in',['purchase','purchase_refund'])]" widget="selection" select="1" on_change="onchange_journal(journal_id, line_dr_ids, tax_id, partner_id)"/>
214                         <field name="number"/>
215                         <field name="name" colspan="2"/>
216                         <field name="reference" select="1"/>
217                         <field name="company_id" select="1" widget="selection" groups="base.group_multi_company"/>
218                         <field name="account_id" domain="[('type','=','other')]"  invisible="True"/>
219                         <field name="type" invisible="True"/>
220                         <field name="currency_id"/>
221                     </group>
222                     <notebook colspan="4">
223                         <page string="Bill Information">
224                             <field name="line_dr_ids" on_change="onchange_price(line_dr_ids, tax_id, partner_id)" default_get="{'journal_id':journal_id,'partner_id':partner_id}" colspan="4" nolabel="1" height="180">
225                                 <tree string="Expense Lines" editable="bottom">
226                                     <field name="account_id" widget="selection" domain="[('user_type.report_type','=','expense'), ('type','!=','view')]"/>
227                                     <field name="name"/>
228                                     <field name="amount"/>
229                                     <field name="account_analytic_id" groups="analytic.group_analytic_accounting"/>
230                                 </tree>
231                             </field>
232                             <group col="2" colspan="3">
233                                 <separator string="Internal Notes" colspan="2"/>
234                                 <field name="narration" colspan="2" nolabel="1"/>
235                             </group>
236                             <group col="2" colspan="1">
237                                 <group col="2" colspan="1">
238                                     <separator string="Payment Terms" colspan="2"/>
239                                     <field name="date_due"/>
240                                 </group>
241                                 <group col="4" colspan="1">
242                                     <separator string="Total" colspan="4"/>
243                                     <field name="tax_id" on_change="onchange_price(line_dr_ids, tax_id, partner_id)" widget="selection" domain="[('type_tax_use','in',('purchase','all')), ('parent_id', '=', False)]"/><field name="tax_amount" nolabel="1"/><button type="object" icon="terp-stock_format-scientific" name="compute_tax" string="Compute Tax" groups="base.group_extended" attrs="{'invisible': [('state','!=','draft')]}"/>
244                                     <label string="" colspan="1"/><field name="amount" string="Total"/>
245                                 </group>
246                             </group>
247                         </page>
248                         <page string="Journal Items" groups="base.group_extended" attrs="{'invisible': [('state','!=','posted')]}">
249                             <group col="6" colspan="4">
250                                 <field name="period_id"/>
251                                 <field name="audit"/>
252                             </group>
253                             <field name="move_ids" colspan="4" nolabel="1" readonly="1">
254                                <tree string="Journal Items">
255                                    <field name="move_id"/>
256                                    <field name="ref"/>
257                                    <field name="date"/>
258                                    <field name="statement_id"/>
259                                    <field name="partner_id"/>
260                                    <field name="account_id"/>
261                                    <field name="name"/>
262                                    <field name="debit"/>
263                                    <field name="credit"/>
264                                    <field name="state"/>
265                                    <field name="reconcile_id"/>
266                                </tree>
267                             </field>
268                         </page>
269                     </notebook>
270                     <group col="10" colspan="4">
271                         <field name="state"/>
272                         <button name="cancel_voucher" string="Cancel" states="draft,proforma"  icon="gtk-cancel"/>
273                         <button name="cancel_voucher" string="Cancel" type="object" states="posted" icon="terp-stock_effects-object-colorize" confirm="Are you sure to confirm this record ?"/>
274                         <group attrs="{'invisible':[('state','!=','posted')]}">
275                             <button icon="terp-dolar_ok!" name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':[('pay_now','=','pay_now')]}"/>
276                         </group>
277                         <button name="action_cancel_draft" type="object" states="cancel" string="Set to Draft" icon="terp-stock_effects-object-colorize"/>
278                         <button name="proforma_voucher" string="Validate" states="draft" icon="gtk-go-forward"/>
279                     </group>
280                 </form>
281             </field>
282         </record>
283         <record id="action_purchase_receipt" model="ir.actions.act_window">
284             <field name="name">Purchase Receipt</field>
285             <field name="res_model">account.voucher</field>
286             <field name="view_type">form</field>
287             <field name="domain">[('journal_id.type','in',['purchase','purchase_refund']), ('type','=','purchase')]</field>
288             <field name="context">{'type':'purchase'}</field>
289             <field name="view_id" eval="False"/>
290             <field name="search_view_id" eval="view_voucher_filter_vendor"/>
291             <field name="target">current</field>
292         </record>
293         <record id="action_purchase_receipt_tree" model="ir.actions.act_window.view">
294             <field eval="1" name="sequence"/>
295             <field name="view_mode">tree</field>
296             <field name="act_window_id" ref="action_purchase_receipt"/>
297         </record>
298         <record id="action_purchase_receipt_form" model="ir.actions.act_window.view">
299             <field eval="2" name="sequence"/>
300             <field name="view_mode">form</field>
301             <field name="view_id" ref="view_purchase_receipt_form"/>
302             <field name="act_window_id" ref="action_purchase_receipt"/>
303         </record>
304
305         <menuitem id="menu_action_purchase_receipt" icon="STOCK_JUSTIFY_FILL"
306             action="action_purchase_receipt" parent="account.menu_finance_payables" sequence="10"
307             groups="base.group_extended"/>
308
309     </data>
310 </openerp>