[IMP]: Usability Improvement

bzr revid: atp@tinyerp.co.in-20100805102619-822pt3hx06rppbn2
This commit is contained in:
atp (Open ERP) 2010-08-05 15:56:19 +05:30
parent 5b52666f71
commit 91418b7477
9 changed files with 179 additions and 140 deletions

View File

@ -289,6 +289,7 @@ class auction_lots(osv.osv):
elif name == "gross_revenue":
if lot.auction_id:
result = lot.buyer_price - lot.seller_price
elif name == "net_revenue":
if lot.auction_id:
result = lot.buyer_price - lot.seller_price - lot.costs
@ -343,39 +344,40 @@ class auction_lots(osv.osv):
_columns = {
'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'),
'auction_id': fields.many2one('auction.dates', 'Auction Date', select=1),
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True),
'name': fields.char('Short Description', size=64, required=True),
'auction_id': fields.many2one('auction.dates', 'Auctions', select=1, help="Auction For Objects"),
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Auction Deposit For Deposit Inventory"),
'name': fields.char('Title', size=64, required=True, help='Auction Objects Name'),
'name2': fields.char('Short Description (2)', size=64),
'lot_type': fields.selection(_type_get, 'Object category', size=64),
'author_right': fields.many2one('account.tax', 'Author rights'),
'lot_est1': fields.float('Minimum Estimation'),
'lot_est2': fields.float('Maximum Estimation'),
'lot_num': fields.integer('List Number', required=True, select=1),
'author_right': fields.many2one('account.tax', 'Author rights', help="Account Tax For Author Commission"),
'lot_est1': fields.float('Minimum Estimation', help="Minimum Estimate Price Of Objects"),
'lot_est2': fields.float('Maximum Estimation', help="Maximum Estimate Price Of Objects"),
'lot_num': fields.integer('List Number', required=True, select=1, help="List Number For selected Object in Deposit"),
'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
'lot_local':fields.char('Location', size=64),
'lot_local':fields.char('Location', size=64, help="Auction Location"),
'artist_id':fields.many2one('auction.artists', 'Artist/Author'),
'artist2_id':fields.many2one('auction.artists', 'Artist/Author 2'),
'artist2_id':fields.many2one('auction.artists', 'Artist/Author2'),
'important':fields.boolean('To be Emphatized'),
'product_id':fields.many2one('product.product', 'Product', required=True),
'obj_desc': fields.text('Object Description'),
'obj_num': fields.integer('Catalog Number'),
'obj_ret': fields.float('Price retired'),
'obj_ret': fields.float('Price retired', help="Objects Ret"),
'obj_comm': fields.boolean('Commission'),
'obj_price': fields.float('Adjudication price'),
'obj_price': fields.float('Adjudication price', help="Objects Price"),
'ach_avance': fields.float('Buyer Advance'),
'ach_login': fields.char('Buyer Username', size=64),
'ach_uid': fields.many2one('res.partner', 'Buyer'),
'ach_emp': fields.boolean('Taken Away', readonly=True),
'is_ok': fields.boolean('Buyer\'s payment'),
'ach_uid': fields.many2one('res.partner', 'Buyer'),
'seller_id': fields.related('bord_vnd_id','partner_id', type='many2one', relation='res.partner', string='Seller', readonly=True, help="Seller who is related to depositor Inventory"),
'ach_emp': fields.boolean('Taken Away', readonly=True, help="When This Field is True means, Objects is taken away by Buyer"),
'is_ok': fields.boolean('Buyer\'s payment', help="When Buyer Pay For Account Bank statement', This field is selected as True."),
'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}),
'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}),
'vnd_lim': fields.float('Seller limit'),
'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
'image': fields.binary('Image'),
'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd"),
'paid_ach':fields.function(_getprice, string='Buyer invoice reconciled', method=True, type='boolean', store=True, multi="paid_ach"),
'image': fields.binary('Image', help="Object Image"),
'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', This field is selected as True."),
'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', This field is selected as True."),
'state': fields.selection((
('draft', 'Draft'),
('unsold', 'Unsold'),
@ -386,14 +388,14 @@ class auction_lots(osv.osv):
\n* The \'Unsold\' state is used when object does not sold for long time, user can also set it as draft state after unsold. \
\n* The \'Paid\' state is used when user pay for the object \
\n* The \'Sold\' state is used when user buy the object.'),
'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price"),
'seller_price': fields.function(_getprice, method=True, string='Seller price', store=True, multi="seller_price"),
'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue"),
'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin"),
'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs"),
'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment'),
'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue"),
'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin"),
'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price", help="Objects Price which Buyer Given For Objects"),
'seller_price': fields.function(_getprice, method=True, string='Seller price', store=True, multi="seller_price", help="Seller Price"),
'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Revenue Minus Cost Of Objects Sold."),
'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="Gross Income Divided by Net Sales"),
'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Total credit of analytic account"),
'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Account Bank statement Line For Given Buyer"),
'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Total Revenue Minus Returns"),
'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="The ratio of net profits to revenues"),
}
_defaults = {
'state':lambda *a: 'draft',

View File

@ -111,7 +111,7 @@
<separator string="Auction Dates" colspan="4"/>
<field name="auction1" select="1"/>
<field name="auction2" select="1"/>
<label string="" colspan="4"/>
<separator string="" colspan="4"/>
<field name="state"/>
<button name="close" states="draft" string="Create Invoices" type="object" colspan="2" icon="gtk-yes"/>
</page>
@ -209,7 +209,6 @@
<menuitem name="Auctions" parent="auction_menu_root" id="auction_date_menu" sequence="1"/>
<menuitem name="Auctions" parent="auction_date_menu" id="menu_auction_dates_next1" action="action_auction_dates_next"/>
<record model="ir.ui.view" id="view_auction_lot_tree">
<field name="name">Auction lots</field>
@ -246,57 +245,90 @@
<field name="priority" eval="8"/>
<field name="arch" type="xml">
<form string="Objects">
<group colspan="4" col="4">
<group colspan="2" col="4">
<field colspan="2" name="name"/>
<field name="obj_num" select="1"/>
<field name="lot_type"/>
<field name="auction_id" select="1"/>
<field name="artist_id"/>
<field name="artist2_id"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="product_id"/>
<field name="lot_local"/>
<field name="bord_vnd_id" select="1"/>
<field name="lot_num"/>
<newline/>
</group>
<group colspan="2" col="1">
<field name="image" widget='image' nolabel="1"/>
</group>
</group>
<group colspan="4" col="8">
<field name="name" colspan="4"/>
<field name="obj_num"/>
<newline/>
<field name="auction_id"/>
<field name="lot_type"/>
<field name="lot_local"/>
</group>
<notebook colspan="4">
<page string="Buyer">
<separator string="Buyer information" colspan="4"/>
<page string="Catalog">
<separator string="Inventory" colspan="2"/>
<group colspan="4" col="6">
<field name="ach_uid" />
<field name="ach_login" select="1" />
<field name="author_right" domain="[('domain','=','sabam'),('parent_id','=',False),('type_tax_use','&lt;&gt;','sale')]"/>
<field name="obj_price"/>
<field name="obj_ret"/>
<field name="obj_comm"/>
<field name="buyer_price"/>
<field name="seller_price"/>
<field name="ach_emp"/>
<field name="gross_revenue"/>
<field name="net_revenue"/>
<field name="gross_margin"/>
<field name="net_margin"/>
<field name="costs"/>
<newline/>
<field name="ach_inv_id"/>
<field name="paid_ach"/>
<field name="is_ok"/>
<group colspan="2" col="4">
<field name="product_id" colspan="4"/>
<field name="lot_num" select="1" />
<field name="bord_vnd_id"/>
</group>
<group colspan="2" col="1">
<field name="image" widget='image' nolabel="1"/>
</group>
</group>
<group colspan="4" col="6">
<group colspan="2" col="1">
<separator string="Authors" colspan="2"/>
<field name="artist_id"/>
<field name="artist2_id"/>
<field name="author_right" domain="[('domain','=','sabam'),('parent_id','=',False),('type_tax_use','&lt;&gt;','sale')]"/>
</group>
<group colspan="2" col="1">
<separator string="Price" colspan="4"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="obj_price"/>
<field name="obj_comm"/>
</group>
<group colspan="2" col="1">
<separator string="Statistical" colspan="4"/>
<field name="gross_revenue"/>
<field name="net_revenue"/>
<field name="gross_margin"/>
<field name="net_margin"/>
<field name="costs"/>
</group>
</group>
<group colspan="4" col="4">
<separator string="Seller Information" colspan="4"/>
<field name="seller_id"/>
<field name="seller_price"/>
<newline/>
<field name="vnd_lim"/>
<field name="vnd_lim_net"/>
<field name="sel_inv_id"/>
<field name="paid_vnd"/>
<separator string="" colspan="4"/>
<field name="state" colspan="1"/>
<group col="8" colspan="2">
<button name="button_bought" string="Sold" states="draft" type="object" icon="gtk-jump-to"/>
<button name="button_not_bought" string="Not sold" states="draft" type="object" icon="gtk-undo"/>
<button name="button_taken_away" string="Taken away" states="sold" type="object" icon="gtk-goto-last"/>
<button name="button_unpaid" string="Set to draft" states="sold,unsold,paid" type="object" icon="gtk-convert"/>
</group>
</group>
</page>
<page string="Bids">
<separator string="Finalists Bid" colspan="4"/>
<group colspan="4" col="6">
<field name="ach_uid"/>
<field name="ach_login" select="1" />
<newline/>
<field name="buyer_price"/>
<field name="ach_inv_id"/>
<newline/>
<field name="is_ok"/>
<field name="paid_ach"/>
<field name="ach_emp"/>
</group>
<field name="statement_id" domain="[('state','=','draft')]" colspan="4" nolabel="1"
<field name="statement_id" domain="[('state','=','draft')]" colspan="4" nolabel="1"
widget="one2many_list">
<tree string="Payment's history">
<tree string="Buyer's Payment History">
<field name="statement_id"/>
<field name="amount"/>
<field name="date"/>
</tree>
<form string="Bank Statement">
<form string="Buyer's Payment History">
<field name="name"/>
<field name="sequence"/>
<field name="date"/>
@ -308,38 +340,14 @@
<field name="amount"/>
<field name="reconcile_amount"/>
</form>
</field>
<field name="state" colspan="1"/>
<group col="8" colspan="2">
<button name="button_bought" string="Sold" states="draft" type="object" icon="gtk-jump-to"/>
<button name="button_not_bought" string="Not sold" states="draft" type="object" icon="gtk-undo"/>
<button name="button_taken_away" string="Taken away" states="sold" type="object" icon="gtk-goto-last"/>
<button name="button_unpaid" string="Set to draft" states="sold,unsold,paid" type="object" icon="gtk-convert"/>
</group>
</page>
<page string="Seller">
<separator string="Seller information" colspan="4"/>
<field name="vnd_lim"/>
<field name="vnd_lim_net"/>
<field name="sel_inv_id"/>
<field name="paid_vnd"/>
<field name="history_ids" colspan="4" readonly="1" nolabel="1">
<tree string="History">
<field name="name"/>
<field name="lot_id"/>
<field name="auction_id"/>
<field name="price"/>
</tree>
</field>
</page>
<page string="Bids">
<field name="bid_lines" colspan="4" nolabel="1" editable="top">
<tree string="Bids" editable="top">
<field name="bid_lines" colspan="4" nolabel="1" editable="top">
<tree string="Bids Details" editable="top">
<field name="bid_id"/>
<field name="price"/>
<field name="call"/>
</tree>
<form string="Bids" >
<form string="Bids Details" >
<field name="bid_id"/>
<field name="lot_id" domain="[('auction_id','=',parent['auction_id'])]" on_change="onchange_name(lot_id)"/>
<field name="price"/>
@ -347,6 +355,16 @@
</form>
</field>
</page>
<page string="History">
<field name="history_ids" colspan="4" readonly="1" nolabel="1">
<tree string="History">
<field name="name"/>
<field name="lot_id"/>
<field name="auction_id"/>
<field name="price"/>
</tree>
</field>
</page>
<page string="Note">
<field name="obj_desc" colspan="4" nolabel="1"/>
</page>
@ -421,6 +439,14 @@
<field name="search_view_id" ref="view_auction_lots_filter"/>
<field name="context">{"search_default_draft": "1"}</field>
</record>
<!-- Action for Bids -->
<act_window name="Open Bids"
domain="[('lot_id', '=', active_id)]"
res_model="auction.bid_line"
src_model="auction.lots"
id="act_auction_lot_open_bid"/>
<menuitem name="Objects" parent="auction_menu_root" id="auction_objects_menu" sequence="2"/>
<menuitem name="Objects" action="action_all_objects" parent="auction_objects_menu" id="auction_all_objects_menu"/>
@ -684,7 +710,7 @@
<menuitem name="Reporting" id="auction_report_menu" parent="auction_menu_root" sequence="6"/>
<act_window name="Bordereau de dépôt"
<act_window name="Deposit slip"
domain="[('partner_id', '=', active_id)]"
res_model="auction.deposit"
src_model="res.partner"

View File

@ -7,16 +7,15 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Change Auction Date">
<label string="Warning, this will erase the object adjudication price and its buyer!" colspan="4"/>
<newline/>
<separator string="" colspan="4"/>
<field name="auction_id"/>
<separator string="" colspan="4" />
<label string ="Warning, This will Erase The Object Adjudication Price and Its Buyer!" colspan="4"/>
<separator string="" colspan="4"/>
<field name="auction_id"/>
<separator string="" colspan="4"/>
<group colspan="4" col="4">
<label string=" " colspan="2"/>
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-redo" string="Move to Auction date" name="auction_move_set" type="object"/>
</group>
<label string=" " colspan="2"/>
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-redo" string="Move to Auction date" name="auction_move_set" type="object"/>
</group>
</form>
</field>
</record>

View File

@ -31,7 +31,7 @@ class auction_lots_make_invoice(osv.osv_memory):
_description = "Make invoice"
_columns = {
'amount': fields.float('Invoiced Amount', required =True, readonly=True),
'amount': fields.float('Invoiced Amount', required =True, readonly=True, help="Seller Price"),
'objects':fields.integer('# of objects', required =True, readonly=True),
'number':fields.char('Invoice Number', size=64),
}

View File

@ -25,14 +25,12 @@ class auction_lots_make_invoice_buyer(osv.osv_memory):
_name = "auction.lots.make.invoice.buyer"
_description = __doc__
_columns= {
'amount': fields.float('Invoiced Amount', required =True, readonly=True),
'amount': fields.float('Invoiced Amount', required =True, readonly=True, help="Buyer Price"),
'objects':fields.integer('# of objects', required =True, readonly=True),
'number':fields.char('Invoice Number', size=64),
'buyer_id':fields.many2one('res.partner', 'Buyer', required=True),
}
_defaults={
'number': lambda *a: False,
}

View File

@ -6,16 +6,18 @@
<field name="model">auction.lots.make.invoice.buyer</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Paid">
<form string="Buyer Invoice">
<group colspan="4" >
<separator string="Create Invoices For Buyer" colspan="4"/>
<field name="amount"/>
<field name="objects"/>
<field name="number"/>
<label string="(Keep empty for automatic number)" colspan="2"/>
<field name="buyer_id"/>
</group>
<separator string="" colspan="4" />
<separator string="" colspan="4" />
<group colspan="4" col="6">
<label string=" " colspan="2"/>
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-yes" string="Create invoices" name="makeInvoices" type="object"/>
</group>

View File

@ -6,13 +6,15 @@
<field name="model">auction.lots.make.invoice</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Paid">
<form string="Seller Invoice">
<group colspan="4" >
<separator string="Create Invoices For Seller" colspan="4"/>
<field name="amount"/>
<field name="objects"/>
<field name="number" colspan="3"/>
<field name="number" colspan="1"/>
<label string="(Keep empty for automatic number)" colspan="2"/>
</group>
<separator string="" colspan="4" />
<separator string="" colspan="4"/>
<group colspan="4" col="6">
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-yes" string="Create invoices" name="makeInvoices" type="object"/>

View File

@ -28,14 +28,14 @@ class auction_pay_buy(osv.osv_memory):
_name = "auction.pay.buy"
_description = "Pay buy"
_columns= {
'amount': fields.float('Amount paid', digits= (16, 2)),
'amount': fields.float('Amount', digits= (16, 2), help="Amount For First Bank Statement"),
'buyer_id':fields.many2one('res.partner', 'Buyer'),
'statement_id1':fields.many2one('account.bank.statement', 'Statement', required=True),
'amount2': fields.float('Amount paid', digits= (16, 2)),
'statement_id2':fields.many2one('account.bank.statement', 'Statement'),
'amount3': fields.float('Amount paid', digits = (16, 2)),
'statement_id3':fields.many2one('account.bank.statement', 'Statement'),
'total': fields.float('Amount paid', digits = (16, 2), readonly =True),
'statement_id1':fields.many2one('account.bank.statement', 'Statement', required=True, help="First Bank Statement For Buyer"),
'amount2': fields.float('Amount', digits= (16, 2), help="Amount For Second Bank Statement"),
'statement_id2':fields.many2one('account.bank.statement', 'Statement', help="Second Bank Statement For Buyer"),
'amount3': fields.float('Amount', digits = (16, 2), help="Amount For Third Bank Statement"),
'statement_id3':fields.many2one('account.bank.statement', 'Statement', help="Third Bank Statement For Buyer"),
'total': fields.float('Total Amount', digits = (16, 2), readonly =True),
}
def default_get(self, cr, uid, fields, context=None):

View File

@ -7,23 +7,33 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Pay objects">
<group colspan="4" >
<separator string="Pay Objects" colspan="4" />
<field name="amount"/>
<field name="statement_id1" domain="[('state','=','draft')]"/>
<field name="amount2"/>
<field name="statement_id2" domain="[('state','=','draft')]"/>
<field name="amount3"/>
<field name="statement_id3" domain="[('state','=','draft')]"/>
<newline/>
<field name="buyer_id"/>
<field name="total"/>
</group>
<separator string="" colspan="4" />
<group colspan="4" col="6">
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-yes" string="Pay" name="pay_and_reconcile" type="object"/>
</group>
<group colspan="4" col="4" >
<separator string="Pay Objects" colspan="4" />
<field name="buyer_id"/>
<field name="total"/>
<newline/>
</group>
<separator string="Payment Lines" colspan="4"/>
<group colspan="4" col="4">
<label string="Line1"/>
<field name="amount"/>
<field name="statement_id1" domain="[('state','=','draft')]"/>
</group>
<group colspan="4" col="4">
<label string="Line2"/>
<field name="amount2"/>
<field name="statement_id2" domain="[('state','=','draft')]"/>
</group>
<group colspan="4" col="4">
<label string="Line3" />
<field name="amount3"/>
<field name="statement_id3" domain="[('state','=','draft')]"/>
</group>
<separator string="" colspan="4" />
<group colspan="4" col="6">
<button icon="gtk-close" special="cancel" string="Close"/>
<button icon="gtk-yes" string="Pay" name="pay_and_reconcile" type="object"/>
</group>
</form>
</field>
</record>