From 8736a37b60b4ea74b602d6b42133d422e03eea74 Mon Sep 17 00:00:00 2001 From: "atp (Open ERP)" Date: Thu, 5 Aug 2010 17:15:52 +0530 Subject: [PATCH] [IMP]: Add gross margin function bzr revid: atp@tinyerp.co.in-20100805114552-xsmnf6jf413eeuap --- addons/auction/auction.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/addons/auction/auction.py b/addons/auction/auction.py index 6daed23..7a84147 100644 --- a/addons/auction/auction.py +++ b/addons/auction/auction.py @@ -293,7 +293,16 @@ class auction_lots(osv.osv): elif name == "net_revenue": if lot.auction_id: result = lot.buyer_price - lot.seller_price - lot.costs - + + elif name == "gross_margin": + if ((lot.obj_price==0) and (lot.state=='draft')): + amount = lot.lot_est1 + else: + amount = lot.obj_price + if amount > 0: + result = (lot.gross_revenue * 100) / amount + result = round(result,2) + elif name == "net_margin": if ((lot.obj_price==0) and (lot.state=='draft')): amount = lot.lot_est1 @@ -301,6 +310,7 @@ class auction_lots(osv.osv): amount = lot.obj_price if amount > 0: result = (lot.net_revenue * 100) / amount + result = round(result,2) elif name == "costs": # costs: Total credit of analytic account # objects sold during this auction (excluding analytic lines that are in the analytic journal of the auction date) @@ -391,7 +401,7 @@ class auction_lots(osv.osv): 'buyer_price': fields.function(_getprice, method=True, string='Buyer price', store=True, multi="buyer_price", help="Buyer Price"), '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="Buyer Price - Seller Price"), - 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="Gross Income Divided by Net Sales"), + 'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"), '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="Bank statement Line For Given Buyer"), 'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"), -- 1.7.10.4