Ujjvala Collins (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-pos_review_screen_layout-uco into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-pos_review_screen_layout-uco/+merge/75170
[IMP] point_of_sale, account:
-------------------------------------------------
Point 2: Review screen layout
* Usability improvements under:
Point of Sale / Daily Operations / Sales Order : form views, menus and
wizards
Point of Sale / Cash Register / Cash Registers : form view, demo data.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-pos_review_screen_layout-uco/+merge/75170
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-pos_review_screen_layout-uco.
=== modified file 'account/account_cash_statement.py'
--- account/account_cash_statement.py 2011-07-01 23:41:24 +0000
+++ account/account_cash_statement.py 2011-09-13 13:14:14 +0000
@@ -258,7 +258,7 @@
if end[2]['pieces'] == dict_val['pieces']:
end[2]['number'] += dict_val['number']
vals.update({
-# 'ending_details_ids': open_close['start'],
+ 'ending_details_ids': open_close['start'],
'starting_details_ids': open_close['end']
})
else:
=== modified file 'account/account_view.xml'
--- account/account_view.xml 2011-09-12 14:49:25 +0000
+++ account/account_view.xml 2011-09-13 13:14:14 +0000
@@ -2562,35 +2562,7 @@
</group>
<notebook colspan="4">
- <page string="Cash Transactions" attrs="{'invisible': [('state','=','draft')]}">
- <field colspan="4" name="line_ids" nolabel="1">
- <tree editable="bottom" string="Statement lines">
- <field name="sequence" invisible="1"/>
- <field name="date" groups="base.group_extended"/>
- <field name="name"/>
- <field name="ref"/>
- <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
- <field name="type" on_change="onchange_type(partner_id, type)"/>
- <field domain="[('journal_id','=',parent.journal_id), ('company_id', '=', parent.company_id)]" name="account_id"/>
- <field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]" groups="analytic.group_analytic_accounting" />
- <field name="amount"/>
- </tree>
- <form string="Statement lines">
- <field name="date"/>
- <field name="name"/>
- <field name="ref"/>
- <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
- <field name="type" on_change="onchange_type(partner_id, type)"/>
- <field domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view'), ('company_id', '=', parent.company_id)]" name="account_id"/>
- <field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]" groups="analytic.group_analytic_accounting" />
- <field name="amount"/>
- <field name="sequence"/>
- <separator colspan="4" string="Notes"/>
- <field colspan="4" name="note" nolabel="1"/>
- </form>
- </field>
- </page>
- <page string="CashBox">
+ <page string="Cash Control">
<group col="2" colspan="2" expand="1">
<field name="starting_details_ids" nolabel="1" colspan="2" attrs="{'readonly':[('state','!=','draft')]}">
<tree string = "Opening Balance" editable="bottom">
@@ -2620,6 +2592,34 @@
</field>
</group>
</page>
+ <page string="Cash Transactions" attrs="{'invisible': [('state','=','draft')]}">
+ <field colspan="4" name="line_ids" nolabel="1">
+ <tree editable="bottom" string="Statement lines">
+ <field name="sequence" invisible="1"/>
+ <field name="date" groups="base.group_extended"/>
+ <field name="name"/>
+ <field name="ref"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
+ <field name="type" on_change="onchange_type(partner_id, type)"/>
+ <field domain="[('journal_id','=',parent.journal_id), ('company_id', '=', parent.company_id)]" name="account_id"/>
+ <field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]" groups="analytic.group_analytic_accounting" />
+ <field name="amount"/>
+ </tree>
+ <form string="Statement lines">
+ <field name="date"/>
+ <field name="name"/>
+ <field name="ref"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
+ <field name="type" on_change="onchange_type(partner_id, type)"/>
+ <field domain="[('journal_id', '=', parent.journal_id), ('type', '<>', 'view'), ('company_id', '=', parent.company_id)]" name="account_id"/>
+ <field name="analytic_account_id" domain="[('company_id', '=', parent.company_id), ('type', '<>', 'view')]" groups="analytic.group_analytic_accounting" />
+ <field name="amount"/>
+ <field name="sequence"/>
+ <separator colspan="4" string="Notes"/>
+ <field colspan="4" name="note" nolabel="1"/>
+ </form>
+ </field>
+ </page>
<page string="Journal Entries" attrs="{'invisible': [('state','!=','confirm')]}">
<field colspan="4" name="move_line_ids" nolabel="1" string="Journal Entries"/>
</page>
=== modified file 'point_of_sale/point_of_sale.py'
--- point_of_sale/point_of_sale.py 2011-07-08 09:22:32 +0000
+++ point_of_sale/point_of_sale.py 2011-09-13 13:14:14 +0000
@@ -242,7 +242,7 @@
return r
_columns = {
- 'name': fields.char('Order Description', size=64, required=True,
+ 'name': fields.char('Order Number', size=64, required=True,
states={'draft': [('readonly', False)]}, readonly=True),
'company_id':fields.many2one('res.company', 'Company', required=True, readonly=True),
'num_sale': fields.char('Internal Note', size=64),
@@ -290,7 +290,7 @@
'note_2': fields.char('Customer Note', size=64),
'type_rec': fields.char('Type of Receipt', size=64),
'remboursed': fields.boolean('Remboursed'),
- 'contract_number': fields.char('Contract Number', size=512, select=1),
+ 'contract_number': fields.char('External Reference', size=512, select=1),
'journal_entry': fields.boolean('Journal Entry'),
}
@@ -535,20 +535,11 @@
args = {
'amount': data['amount'],
}
- if 'payment_date' in data.keys():
- args['date'] = data['payment_date']
if 'payment_name' in data.keys():
args['name'] = data['payment_name'] + ' ' + order.name
account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context)
args['account_id'] = order.partner_id and order.partner_id.property_account_receivable \
and order.partner_id.property_account_receivable.id or account_def.id or curr_c.account_receivable.id
- if data.get('is_acc', False):
- args['is_acc'] = data['is_acc']
- args['account_id'] = prod_obj.browse(cr, uid, data['product_id'], context=context).property_account_income \
- and prod_obj.browse(cr, uid, data['product_id'], context=context).property_account_income.id
- if not args['account_id']:
- raise osv.except_osv(_('Error'), _('Please provide an account for the product: %s')% \
- (prod_obj.browse(cr, uid, data['product_id'], context=context).name))
args['partner_id'] = order.partner_id and order.partner_id.id or None
args['ref'] = order.contract_number or None
=== modified file 'point_of_sale/point_of_sale_demo.xml'
--- point_of_sale/point_of_sale_demo.xml 2011-05-20 10:16:07 +0000
+++ point_of_sale/point_of_sale_demo.xml 2011-09-13 13:14:14 +0000
@@ -7,7 +7,7 @@
<record id="account.cash_journal" model="account.journal">
<field eval="[(6, 0, [ref('base.user_root')])]" name="journal_users"/>
</record>
-
+
<record id="product_product_putmoneyforchange0" model="product.product">
<field name="supply_method">buy</field>
<field name="uom_id" ref="product.product_uom_unit"/>
@@ -16,7 +16,7 @@
<field name="name">Cash In</field>
<field eval="1" name="income_pdt"/>
</record>
-
+
<record id="product_product_putmoneyforchange1" model="product.product">
<field name="supply_method">buy</field>
<field name="uom_id" ref="product.product_uom_unit"/>
@@ -107,12 +107,11 @@
<field eval="[(6,0,[])]" name="move_ids"/>
<field name="date" eval="time.strftime('%Y-%m-%d')"/>
<field eval="450.0" name="amount"/>
- <field eval="0" name="is_acc"/>
<field eval="0" name="am_out"/>
<field name="name">Payment POS/019</field>
-
+
</record>
-
+
<record id="stock_picking_out0" model="stock.picking">
<field name="origin">POS/019</field>
<field model="pos.order" name="pos_order" search="[('name', '=', u'POS/019')]"/>
@@ -159,9 +158,9 @@
<field eval="1.0" name="qty"/>
<field name="name">Order Line/07</field>
</record>
-
+
<!--Resource: pos.order-->
-
+
<record id="order_pos1" model="pos.order">
<field model="sale.shop" name="shop_id" search="[]"/>
<field model="res.users" name="user_salesman_id" search="[]"/>
@@ -170,7 +169,7 @@
<field name="price_type">tax_excluded</field>
<field model="product.pricelist" name="pricelist_id" search="[]"/>
</record>
-
+
<record id="order_pos2" model="pos.order">
<field model="sale.shop" name="shop_id" search="[]"/>
<field model="res.users" name="user_salesman_id" search="[]"/>
@@ -179,9 +178,9 @@
<field name="price_type">tax_excluded</field>
<field model="product.pricelist" name="pricelist_id" search="[]"/>
</record>
-
+
<!--Resource: pos.order.line-->
-
+
<record id="line1_pos" model="pos.order.line">
<field name="order_id" ref="order_pos1"/>
<field name="date_planned" eval="time.strftime('%Y-%m-%d')"/>
@@ -193,7 +192,7 @@
<field name="qty">2</field>
<field name="notice">No Discount</field>
</record>
-
+
<record id="line12_pos" model="pos.order.line">
<field name="order_id" ref="order_pos1"/>
<field name="date_planned" eval="time.strftime('%Y-%m-%d')"/>
@@ -205,7 +204,7 @@
<field name="qty">2</field>
<field name="notice">No Discount</field>
</record>
-
+
<record id="line2_pos" model="pos.order.line">
<field name="order_id" ref="order_pos2"/>
<field name="date_planned" eval="time.strftime('%Y-%m-%d')"/>
@@ -218,6 +217,6 @@
<field name="discount">0.10</field>
<field name="notice">Discount Applied</field>
</record>
-
+
</data>
</openerp>
=== modified file 'point_of_sale/point_of_sale_view.xml'
--- point_of_sale/point_of_sale_view.xml 2011-08-25 04:10:37 +0000
+++ point_of_sale/point_of_sale_view.xml 2011-09-13 13:14:14 +0000
@@ -18,7 +18,6 @@
<field name="date_order"/>
<field name="shop_id" widget="selection"/>
<field name="partner_id" on_change="onchange_partner_pricelist(partner_id)" groups="base.group_extended"/>
- <field name="contract_number" groups="base.group_extended"/>
</group>
<notebook colspan="4">
<page string="Sale Order">
@@ -29,8 +28,7 @@
<field name="price_ded" on_change="onchange_ded(price_ded, price_subtotal_incl,price_unit)" invisible="1"/>
<field name="price_unit"/>
<field name="discount" on_change="onchange_discount(discount,price_unit)" />
- <field name="price_subtotal" />
- <field name="price_subtotal_incl" sum="Subtotal"/>
+ <field name="price_subtotal_incl"/>
</tree>
<form string="Order lines">
<field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)" width="275"/>
@@ -53,11 +51,8 @@
<group colspan="4" col="8">
<field name="state" />
<button name="%(action_add_product)d" string="Add product" type="action" icon="gtk-ok" states="advance" groups="base.group_extended"/>
- <button name="%(action_pos_payment)d" string="Make Payment" icon="terp-dolar" type="action" states="draft,advance" />
+ <button name="%(action_pos_payment)d" string="Make Payment" icon="terp-camera_test" type="action" states="draft,advance" />
<button name="%(action_report_pos_receipt)d" string="Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
- <button name="set_to_draft" string="Set to draft" states="paid" icon="gtk-execute" type="object" />
- <button name="%(action_view_pos_return)d" string="Return Picking" type="action" icon="gtk-ok" states="paid"
- attrs="{'invisible':[('state','!=','paid'),('state','!=','invoiced')]}" context="{'return':'return'}" />
</group>
</page>
<page string="Payment">
@@ -78,9 +73,10 @@
<group colspan="2" col="2" name="Type">
<separator string="Other Information" colspan="4"/>
<field name="user_salesman_id" />
+ <field name="user_id" string="Salesman" groups="base.group_extended"/>
+ <field name="contract_number" groups="base.group_extended"/>
<field name="company_id" groups="base.group_multi_company"/>
- <field name="price_type" />
- <field name="user_id" string="Salesman" groups="base.group_extended"/>
+ <field name="pricelist_id" domain="[('type','=','sale')]" widget="selection"/>
</group>
<group colspan="2" col="2" name="Type">
<separator string="Dates" colspan="4"/>
@@ -89,7 +85,6 @@
</group>
<group colspan="4">
<field name="sale_journal" domain="[('type','=','sale')]" widget="selection" invisible="1"/>
- <field name="pricelist_id" domain="[('type','=','sale')]" widget="selection" invisible="0"/>
</group>
</page>
<page string="Notes" >
=== modified file 'point_of_sale/test/point_of_sale_test.yml'
--- point_of_sale/test/point_of_sale_test.yml 2011-07-21 13:07:28 +0000
+++ point_of_sale/test/point_of_sale_test.yml 2011-09-13 13:14:14 +0000
@@ -271,7 +271,7 @@
categ_id: product_category_computer0
cost_method: standard
mes_type: fixed
- list_price: 1000.0
+ list_price: 1000.0
name: HP Pavilion Desktop PCs
procure_method: make_to_stock
seller_ids:
@@ -290,7 +290,7 @@
!record {model: pos.order, id: pos_order_pos0}:
company_id: base.main_company
date_order: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- date_validity: !eval "(datetime.now() + timedelta(6*1)).strftime('%Y-%m-%d')"
+ date_validity: !eval "(datetime.now() + timedelta(6*1)).strftime('%Y-%m-%d')"
lines:
- company_id: base.main_company
name: Order Line/01
@@ -305,27 +305,27 @@
sale_journal: account.sales_journal
shop_id: sale.shop
user_salesman_id: base.user_root
--
- I add discount.
--
+-
+ I add discount.
+-
!record {model: pos.discount, id: pos_discount_0}:
discount: 5.0
discount_notes: More then 5 product
--
- I Apply the discount.
--
+-
+ I Apply the discount.
+-
!python {model: pos.discount}: |
self.apply_discount(cr, uid, [ref("pos_discount_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz": False, "active_id":
ref("pos_order_pos0"), })
--
+-
I open the register.
--
+-
!record {model: pos.open.statement, id: pos_open_statement_0}:
{}
--
+-
I open the statement.
--
+-
!python {model: pos.open.statement}: |
jou_obj = self.pool.get('account.journal')
statement_obj = self.pool.get('account.bank.statement')
@@ -339,19 +339,18 @@
"ir.ui.menu", "active_ids": [ref("point_of_sale.menu_open_statement")], "tz":
False, "active_id": ref("point_of_sale.menu_open_statement"), })
-
- I click on the "Make Payment" wizard.
--
+ I click on the "Make Payment" wizard.
+-
!record {model: pos.make.payment, id: pos_make_payment_0}:
amount: 1615.0
journal: 7
- payment_date: !eval time.strftime("%Y-%m-%d")
payment_name: Payment
product_id: product_product_hppaviliondesktoppcs0
pricelist_id: product.list0
partner_id: base.res_partner_agrolait
--
+-
I make the payment.
--
+-
!python {model: pos.make.payment}: |
self.check(cr, uid, [ref("pos_make_payment_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("point_of_sale.pos_order_pos0")], "tz":
@@ -361,92 +360,91 @@
-
!python {model: pos.order}: |
order=self.browse(cr,uid,ref("pos_order_pos0"))
- assert(order.statement_ids!=[]), "Statement lines not created"
+ assert(order.statement_ids!=[]), "Statement lines not created"
-
When I click on Return picking button , I get three option.
-
1. Cancel 2.Return Goods and Exchange 3.Return without Refund
-
- When I click on Return Goods and Exchange.
--
- Then it allows me to define the quantity of products, which will return to the stock.
--
+ When I click on Return Goods and Exchange.
+-
+ Then it allows me to define the quantity of products, which will return to the stock.
+-
I click on Return Picking button.
--
+-
!record {model: pos.return, id: pos_return_0}:
pos_moves_ids:
- product_id: product_product_hppaviliondesktoppcs0
quantity: 5.0
--
+-
I Return the product.
--
+-
!python {model: pos.return}: |
self.create_returns(cr, uid, [ref("pos_return_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("point_of_sale.pos_order_pos0")], "tz":
False, "active_id": ref("point_of_sale.pos_order_pos0"), })
--
+-
Then it allows me to define the quantity of products, which will return to the stock.
-
- I select the HP Pavilion Desktop PCs for exchange.
--
+ I select the HP Pavilion Desktop PCs for exchange.
+-
!record {model: pos.add.product, id: pos_add_product_0}:
product_id: product_product_hppaviliondesktoppcs0
quantity: 5.0
--
+-
I click on close button.
--
+-
!python {model: pos.add.product}: |
return_obj = self.pool.get('pos.return')
- context['active_ids'] = [ref("pos_order_pos0")]
+ context['active_ids'] = [ref("pos_order_pos0")]
return_obj.view_init(cr, uid, [],context=context)
self.close_action(cr, uid, [ref("pos_add_product_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz": False, "active_id": ref("pos_order_pos0"),
})
--
+-
I create payment.
--
+-
!record {model: pos.make.payment, id: pos_make_payment_1}:
amount: 680.0
journal: 7
- payment_date: !eval time.strftime("%Y-%m-%d")
payment_name: Payment
product_id: product_product_hppaviliondesktoppcs0
pricelist_id: product.list0
partner_id: base.res_partner_agrolait
--
- For payment, I click on Make Payment.
--
+-
+ For payment, I click on Make Payment.
+-
!python {model: pos.make.payment}: |
self.check(cr, uid, [ref("pos_make_payment_1")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz":
- False, "active_id": ref("pos_order_pos0"), })
--
+ False, "active_id": ref("pos_order_pos0"), })
+-
To check the Return without Refund . I click button "Return without Refund ".
--
+-
!record {model: pos.return, id: pos_return_0}:
{}
-
The quantity which is selected in Return lines wizard is refunded.
--
+-
!python {model: pos.return}: |
self.create_returns2(cr, uid, [ref("pos_return_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz":
False, "active_id": ref("pos_order_pos0"), })
--
+-
To Close order, I use the wizard "Sale Confirm".
--
+-
!record {model: pos.confirm, id: pos_confirm_0}:
{}
--
+-
I close this order.
--
+-
!python {model: pos.confirm}: |
self.action_confirm(cr, uid, [ref("pos_confirm_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz": False, "active_id": ref("pos_order_pos0"),
})
--
+-
I check order state is done.
--
+-
!python {model: pos.order}: |
- order=self.browse(cr,uid,ref("pos_order_pos0"))
- assert(order.state=='done'), "Order is not done"
+ order=self.browse(cr,uid,ref("pos_order_pos0"))
+ assert(order.state=='done'), "Order is not done"
=== modified file 'point_of_sale/wizard/pos_box_entries.xml'
--- point_of_sale/wizard/pos_box_entries.xml 2011-01-14 00:11:01 +0000
+++ point_of_sale/wizard/pos_box_entries.xml 2011-09-13 13:14:14 +0000
@@ -20,7 +20,7 @@
<button icon="gtk-stop" special="cancel"
string="Cancel" />
<button name="get_in" string="Put Money"
- colspan="1" type="object" icon="terp-dolar_ok!" />
+ colspan="1" type="object" icon="terp-camera_test" />
</group>
</form>
</field>
=== modified file 'point_of_sale/wizard/pos_box_out.xml'
--- point_of_sale/wizard/pos_box_out.xml 2011-01-14 00:11:01 +0000
+++ point_of_sale/wizard/pos_box_out.xml 2011-09-13 13:14:14 +0000
@@ -20,7 +20,7 @@
<button icon="gtk-stop" special="cancel"
string="Cancel" />
<button name="get_out" string="Take Money"
- colspan="1" type="object" icon="terp-dolar" />
+ colspan="1" type="object" icon="terp-camera_test" />
</group>
</form>
</field>
=== modified file 'point_of_sale/wizard/pos_payment.py'
--- point_of_sale/wizard/pos_payment.py 2011-03-16 10:27:06 +0000
+++ point_of_sale/wizard/pos_payment.py 2011-09-13 13:14:14 +0000
@@ -70,8 +70,6 @@
res.update({'amount': amount})
if 'invoice_wanted' in fields:
res.update({'invoice_wanted': invoice_wanted_checked})
- if 'payment_date' in fields:
- res.update({'payment_date': current_date})
if 'payment_name' in fields:
res.update({'payment_name': 'Payment'})
if 'partner_id' in fields:
@@ -151,8 +149,6 @@
data = self.read(cr, uid, ids, context=context)[0]
for m2o_field in ['product_id','pricelist_id','partner_id']:
data[m2o_field] = data.get(m2o_field, False) and data[m2o_field][0] or False
- if data['is_acc']:
- amount = self.pool.get('product.product').browse(cr, uid, data['product_id'], context=context).list_price
if amount != 0.0:
order_obj.write(cr, uid, [active_id], {'invoice_wanted': data['invoice_wanted'], 'partner_id': data['partner_id']}, context=context)
@@ -220,14 +216,12 @@
}
_columns = {
- 'journal': fields.selection(pos_box_entries.get_journal, "Cash Register", required=True),
+ 'journal': fields.selection(pos_box_entries.get_journal, "Payment Method", required=True),
'product_id': fields.many2one('product.product', "Advance"),
'amount': fields.float('Amount', digits=(16,2), required= True),
'payment_name': fields.char('Payment name', size=32, required=True),
- 'payment_date': fields.date('Payment date', required=True),
- 'is_acc': fields.boolean('Advance'),
'invoice_wanted': fields.boolean('Invoice'),
- 'num_sale': fields.char('Num.File', size=32),
+ 'num_sale': fields.char('Reference', size=32),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist'),
'partner_id': fields.many2one('res.partner', 'Customer'),
}
=== modified file 'point_of_sale/wizard/pos_payment.xml'
--- point_of_sale/wizard/pos_payment.xml 2011-01-14 00:11:01 +0000
+++ point_of_sale/wizard/pos_payment.xml 2011-09-13 13:14:14 +0000
@@ -17,15 +17,10 @@
<newline/>
<group colspan="6">
<field name="journal"/>
- <field name="payment_date"/>
<field name="num_sale" />
<field name="amount" />
<!--field name="payment_name" /-->
<field name="invoice_wanted" />
- <field name="is_acc" />
- </group>
- <group attrs="{'invisible':[('is_acc','=',False)]}" colspan="3" >
- <field name="product_id" attrs="{'required':[('is_acc', '=', True)]}" domain="[('type','=','service')]" on_change="onchange_product_id(product_id, amount)"/>
</group>
<newline/>
<group attrs="{'invisible':[('invoice_wanted','=',False)]}" colspan="3">
@@ -38,7 +33,7 @@
<group colspan="2"/>
<group colspan="2">
<button icon="gtk-stop" special="cancel" string="Cancel"/>
- <button name="check" string="Make Payment" colspan="1" type="object" icon="terp-dolar"/>
+ <button name="check" string="Make Payment" colspan="1" type="object" icon="terp-camera_test"/>
</group>
</group>
</group>
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp