[IMP]: auction: ADD auction data file.

[IMP]: Improve report and add search view.
[IMP]: remove unnecessary report.

bzr revid: atp@tinyerp.co.in-20100730152556-t65ue8aouwilw9ki
This commit is contained in:
atp (Open ERP) 2010-07-30 20:55:56 +05:30
parent 3b56d0d65b
commit f33ea507e4
13 changed files with 1443 additions and 1506 deletions

View File

@ -40,7 +40,7 @@
""",
'author': 'OpenERP SA',
'depends': ['base', 'account', 'hr_attendance'],
'init_xml': ['auction_sequence.xml'],
'init_xml': ['auction_sequence.xml', 'auction_data.xml'],
'update_xml': [
'security/ir.model.access.csv',
# 'wizard/auction_lots_able_view.xml',
@ -56,6 +56,8 @@
'wizard/auction_lots_buyer_map_view.xml',
'auction_view.xml',
'auction_report.xml',
'report/report_auction_view.xml',
'report/report_attendance_view.xml',
'auction_wizard.xml',
'board_auction_view.xml',
'board_auction_manager_view.xml',

View File

@ -18,15 +18,15 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from mx import DateTime
from osv import fields, osv, orm
from tools import config
from tools.translate import _
import ir
import netsvc
import os
import time
import netsvc
from osv import fields, osv, orm
import ir
from mx import DateTime
from tools.translate import _
import tools
from tools import config
#----------------------------------------------------------
# Auction Artists
@ -60,8 +60,10 @@ class auction_dates(osv.osv):
res[auction.id]=total
return res
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
def name_get(self, cr, uid, ids, context=None):
if not context:
context={}
if not ids:
return []
reads = self.read(cr, uid, ids, ['name', 'auction1'], context)
name = [(r['id'], '['+r['auction1']+'] '+ r['name']) for r in reads]
@ -86,11 +88,11 @@ class auction_dates(osv.osv):
}
_defaults = {
'state': lambda *a: 'draft',
'state': lambda *a: 'draft',
}
_order = "auction1 desc"
def close(self, cr, uid, ids, *args):
def close(self, cr, uid, ids, context=None):
"""
Close an auction date.
@ -101,6 +103,8 @@ class auction_dates(osv.osv):
"""
# objects vendus mais non factures
#TODO: convert this query to tiny API
if not context:
context={}
lots_obj = self.pool.get('auction.lots')
lots_ids = lots_obj.search(cr, uid, [('auction_id', 'in', ids), ('state', '=', 'draft'), ('obj_price', '>', 0)])
new_buyer_invoice = lots_obj.lots_invoice(cr, uid, lots_ids, {}, None)
@ -125,8 +129,10 @@ def _inv_uniq(cr, ids):
return True
class auction_deposit(osv.osv):
"""Auction Deposit Border"""
_name = "auction.deposit"
_description="Deposit Border"
_description=__doc__
_order = "id desc"
_columns = {
'transfer' : fields.boolean('Transfer'),
@ -147,8 +153,6 @@ class auction_deposit(osv.osv):
'total_neg': lambda *a: False,
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.deposit'),
}
_constraints = [
]
def partner_id_change(self, cr, uid, ids, part):
return {}
@ -159,7 +163,11 @@ auction_deposit()
# (Specific) Deposit Costs
#----------------------------------------------------------
class auction_deposit_cost(osv.osv):
"""Auction Deposit Cost"""
_name = 'auction.deposit.cost'
_description=__doc__
_columns = {
'name': fields.char('Cost Name', required=True, size=64),
'amount': fields.float('Amount'),
@ -171,59 +179,48 @@ auction_deposit_cost()
#----------------------------------------------------------
# Lots Categories
#----------------------------------------------------------
class aie_category(osv.osv):
_name="aie.category"
_order = "name"
_columns={
'name': fields.char('Name', size=64, required=True),
'code':fields.char('Code', size=64),
'parent_id': fields.many2one('aie.category','Parent aie Category'),
'child_ids': fields.one2many('aie.category', 'parent_id', help="Childs aie category")
}
def name_get(self, cr, uid, ids, context=None):
if not context:
context = {}
res = []
if not ids:
return res
reads = self.read(cr, uid, ids, ['name', 'parent_id'], context)
for record in reads:
name = record['name']
if record['parent_id']:
name = record['parent_id'][1] + ' / ' + name
res.append((record['id'], name))
return res
aie_category()
class auction_lot_category(osv.osv):
"""Auction Lots Category"""
_name = 'auction.lot.category'
_description=__doc__
_columns = {
'name': fields.char('Category Name', required=True, size=64),
'priority': fields.float('Priority'),
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the auction lot category without removing it."),
'aie_categ' : fields.selection([('41', "Unclassifieds"),
('2', "Antiques"),
('42', "Antique/African Arts"),
('59', "Antique/Argenterie"),
('45', "Antique/Art from the Ivory Coast"),
('46', "Antique/Art from the Ivory Coast/African Arts"),
('12', "Antique/Books, manuscripts, eso."),
('11', "Antique/Carpet and textilles"),
('14', "Antique/Cartoons"),
('26', "Antique/Clocks and watches"),
('31', "Antique/Collectible & art objects"),
('33', "Antique/Engravings"),
('10', "Antique/Furnitures"),
('50', "Antique/Graphic Arts"),
('37', "Antique/Jewelry"),
('9', "Antique/Lightings"),
('52', "Antique/Metal Ware"),
('51', "Antique/Miniatures / Collections"),
('53', "Antique/Musical Instruments"),
('19', "Antique/Old weapons and militaria"),
('43', "Antique/Oriental Arts"),
('47', "Antique/Oriental Arts/Chineese furnitures"),
('24', "Antique/Others"),
('8', "Antique/Painting"),
('25', "Antique/Porcelain, Ceramics, Glassmaking, ..."),
('13', "Antique/Posters"),
('56', "Antique/Religiosa"),
('54', "Antique/Scientific Instruments"),
('18', "Antique/Sculpture, bronze, eso."),
('55', "Antique/Tin / Copper wares"),
('16', "Antique/Toys"),
('57', "Antique/Verreries"),
('17', "Antique/Wine"),
('1', "Contemporary Art"),
('58', "Cont. Art/Arts"),
('27', "Cont. Art/Curiosa"),
('15', "Cont. Art/Jewelry"),
('30', "Cont. Art/Other Media"),
('3', "Cont. Art/Photo"),
('4', "Cont. Art/Painting"),
('5', "Cont. Art/Sculpture"),
('48', "Cont. Art/Shows")],
'Aie Category'),
'aie_categ': fields.many2one('aie.category', 'Category'),
}
_defaults = {
'active' : lambda *a: 1,
'aie_categ' : lambda *a:1,
}
auction_lot_category()
@ -247,27 +244,44 @@ def _inv_constraint(cr, ids):
return True
class auction_lots(osv.osv):
"""Auction Object"""
_name = "auction.lots"
_order = "obj_num,lot_num,id"
_description="Object"
_description=__doc__
def button_not_bought(self, cr, uid, ids, *a):
def button_not_bought(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'unsold'})
def button_taken_away(self, cr, uid, ids, *a):
def button_taken_away(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'taken_away'})
def button_unpaid(self, cr, uid, ids, *a):
def button_unpaid(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'draft'})
def button_draft(self, cr, uid, ids, *a):
def button_draft(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'draft'})
def button_bought(self, cr, uid, ids, *a):
def button_bought(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'state':'sold'})
def _buyerprice(self, cr, uid, ids, name, args, context):
def _buyerprice(self, cr, uid, ids, name, args, context=None):
if not context:
context={}
res={}
lots=self.pool.get('auction.lots').browse(cr, uid, ids)
lots_obj = self.pool.get('auction.lots')
lots = lots_obj.browse(cr, uid, ids, context={})
pt_tax=self.pool.get('account.tax')
for lot in lots:
amount_total=0.0
@ -287,10 +301,10 @@ class auction_lots(osv.osv):
res[lot.id] = amount_total
return res
def _sellerprice(self, cr, uid, ids, *a):
res={}
lots=self.pool.get('auction.lots').browse(cr, uid, ids)
lots_obj = self.pool.get('auction.lots')
lots=lots_obj.browse(cr, uid, ids)
pt_tax=self.pool.get('account.tax')
for lot in lots:
amount_total=0.0
@ -309,25 +323,29 @@ class auction_lots(osv.osv):
res[lot.id] = montant+amount_total
return res
def _grossprice(self, cr, uid, ids, name, args, context):
def _grossprice(self, cr, uid, ids, name, args, context=None):
"""gross revenue"""
res={}
auction_lots_obj = self.read(cr, uid, ids, ['seller_price', 'buyer_price', 'auction_id'])
for auction_data in auction_lots_obj:
if not context:
context={}
lots = self.browse(cr, uid, ids, context={})
for lot in lots:
total_tax = 0.0
if auction_data['auction_id']:
total_tax += auction_data['buyer_price']-auction_data['seller_price']
res[auction_data['id']] = total_tax
if lot.auction_id:
total_tax += lot.buyer_price - lot.seller_price
res[lot.id] = total_tax
return res
def _grossmargin(self, cr, uid, ids, name, args, context):
def _grossmargin(self, cr, uid, ids, name, args, context=None):
"""
gross Margin : Gross revenue * 100 / Adjudication
(state==unsold or obj_ret_price>0): adj_price = 0 (=> gross margin = 0, net margin is negative)
"""
res={}
for lot in self.browse(cr, uid, ids, context):
if not context:
context={}
for lot in self.browse(cr, uid, ids, context={}):
if ((lot.obj_price==0) and (lot.state=='draft')):
montant=lot.lot_est1
else:
@ -339,7 +357,9 @@ class auction_lots(osv.osv):
res[lot.id]=round(total, 2)
return res
def onchange_obj_ret(self, cr, uid, ids, obj_ret, *args):
def onchange_obj_ret(self, cr, uid, ids, obj_ret, context=None):
if not context:
context={}
if obj_ret:
return {'value': {'obj_price': 0}}
return {}
@ -351,7 +371,7 @@ class auction_lots(osv.osv):
(excluding analytic lines that are in the analytic journal of the auction date).
"""
res={}
for lot in self.browse(cr, uid, ids):
for lot in self.browse(cr, uid, ids, context={}):
som=0.0
if not lot.auction_id:
res[lot.id] = 0.0
@ -371,9 +391,11 @@ class auction_lots(osv.osv):
res[lot.id]=som/nb
return res
def _netprice(self, cr, uid, ids, name, args, context):
def _netprice(self, cr, uid, ids, name, args, context=None):
"""This is the net revenue"""
res={}
if not context:
context={}
auction_lots_obj = self.read(cr, uid, ids, ['seller_price', 'buyer_price', 'auction_id', 'costs'])
for auction_data in auction_lots_obj:
total_tax = 0.0
@ -382,26 +404,31 @@ class auction_lots(osv.osv):
res[auction_data['id']] = total_tax
return res
def _netmargin(self, cr, uid, ids, name, args, context):
def _netmargin(self, cr, uid, ids, name, args, context=None):
res={}
if not context:
context={}
total_tax = 0.0
total=0.0
montant=0.0
auction_lots_obj = self.read(cr, uid, ids, ['net_revenue', 'auction_id', 'lot_est1', 'obj_price', 'state'])
for auction_data in auction_lots_obj:
if ((auction_data ['obj_price']==0) and (auction_data['state']=='draft')):
montant=auction_data['lot_est1']
else: montant=auction_data ['obj_price']
auction_lots = self.read(cr, uid, ids, ['net_revenue', 'auction_id', 'lot_est1', 'obj_price', 'state'])
for lot in auction_lots:
if ((lot['obj_price']==0) and (lot['state']=='draft')):
montant=lot['lot_est1']
else: montant=lot['obj_price']
if montant>0:
total_tax += (auction_data['net_revenue']*100)/montant
total_tax += (lot['net_revenue']*100)/montant
else:
total_tax=0
res[auction_data['id']] = total_tax
res[lot['id']] = total_tax
return res
def _is_paid_vnd(self, cr, uid, ids, *a):
def _is_paid_vnd(self, cr, uid, ids, context=None):
res = {}
lots=self.browse(cr, uid, ids)
if not context:
context={}
lots=self.browse(cr, uid, ids, context)
for lot in lots:
res[lot.id] = False
if lot.sel_inv_id:
@ -477,7 +504,7 @@ class auction_lots(osv.osv):
_defaults = {
'state':lambda *a: 'draft',
'lot_num':lambda *a:1,
'is_ok': lambda *a: False,
'is_ok': lambda *a: False,
}
_constraints = [
# (_inv_constraint, 'Twice the same inventory number !', ['lot_num','bord_vnd_id'])
@ -486,21 +513,25 @@ class auction_lots(osv.osv):
def auction_lots_enable(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'ach_emp': False})
return self.write(cr, uid, ids, {'ach_emp': False}, context)
def auction_lots_able(self, cr, uid, ids, context=None):
if not context:
context={}
return self.write(cr, uid, ids, {'ach_emp': True})
return self.write(cr, uid, ids, {'ach_emp': True}, context)
def name_get(self, cr, user, ids, context={}):
if not len(ids):
def name_get(self, cr, user, ids, context=None):
if not context:
context={}
if not ids:
return []
result = [ (r['id'], str(r['obj_num'])+' - '+r['name']) for r in self.read(cr, user, ids, ['name', 'obj_num'])]
return result
def name_search(self, cr, user, name, args=None, operator='ilike', context={}):
if not len(args):
def name_search(self, cr, user, name, args=None, operator='ilike', context=None):
if not context:
context={}
if not args:
args = []
ids = []
if name:
@ -652,10 +683,13 @@ class auction_lots(osv.osv):
taxes_summed[key] = tax
return taxes_summed.values()
def buyer_proforma(self, cr, uid, ids, context):
def buyer_proforma(self, cr, uid, ids, context=None):
if not context:
context={}
invoices = {}
inv_ref = self.pool.get('account.invoice')
partner_r = self.pool.get('res.partner')
res_obj = self.pool.get('res.partner')
inv_line_obj = self.pool.get('account.invoice.line')
wf_service = netsvc.LocalService('workflow')
# acc_receiv=self.pool.get('account.account').search([cr,uid,[('code','=','4010')]])
@ -667,7 +701,7 @@ class auction_lots(osv.osv):
else:
partner_ref =lot.ach_uid.id
lot_name = lot.obj_num
res = partner_r.address_get(cr, uid, [partner_ref], ['contact', 'invoice'])
res = res_obj.address_get(cr, uid, [partner_ref], ['contact', 'invoice'])
contact_addr_id = res['contact']
invoice_addr_id = res['invoice']
if not invoice_addr_id:
@ -712,12 +746,14 @@ class auction_lots(osv.osv):
# creates the transactions between the auction company and the seller
# this is done by creating a new in_invoice for each
def seller_trans_create(self, cr, uid, ids, context):
def seller_trans_create(self, cr, uid, ids, context=None):
"""
Create a seller invoice for each bord_vnd_id, for selected ids.
"""
# use each list of object in turn
invoices = {}
if not context:
context={}
inv_ref=self.pool.get('account.invoice')
partner_obj = self.pool.get('res.partner')
inv_line_obj = self.pool.get('account.invoice.line')
@ -784,7 +820,7 @@ class auction_lots(osv.osv):
"""
dt = time.strftime('%Y-%m-%d')
inv_ref = self.pool.get('account.invoice')
partner_r = self.pool.get('res.partner')
res_obj = self.pool.get('res.partner')
inv_line_obj = self.pool.get('account.invoice.line')
wf_service = netsvc.LocalService('workflow')
invoices={}
@ -797,7 +833,7 @@ class auction_lots(osv.osv):
if (lot.auction_id.id, lot.ach_uid.id) in invoices:
inv_id = invoices[(lot.auction_id.id, lot.ach_uid.id)]
else:
add = partner_r.read(cr, uid, [lot.ach_uid.id], ['address'])[0]['address']
add = res_obj.read(cr, uid, [lot.ach_uid.id], ['address'])[0]['address']
if not len(add):
raise orm.except_orm(_('Missed Address !'), _('The Buyer has no Invoice Address.'))
price = lot.obj_price or 0.0
@ -861,8 +897,10 @@ auction_lots()
# Auction Bids
#----------------------------------------------------------
class auction_bid(osv.osv):
"""Bid Auctions"""
_name = "auction.bid"
_description="Bid auctions"
_description=__doc__
_order = 'id desc'
_columns = {
'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
@ -874,6 +912,7 @@ class auction_bid(osv.osv):
_defaults = {
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.bid'),
}
def onchange_contact(self, cr, uid, ids, partner_id):
if not partner_id:
return {'value': {'contact_tel':False}}
@ -887,8 +926,10 @@ class auction_bid(osv.osv):
auction_bid()
class auction_lot_history(osv.osv):
"""Lot History"""
_name = "auction.lot.history"
_description="Lot history"
_description=__doc__
_columns = {
'name': fields.date('Date', size=64),
'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
@ -932,516 +973,5 @@ class auction_bid_lines(osv.osv):
auction_bid_lines()
class report_buyer_auction(osv.osv):
_name = "report.buyer.auction"
_description = "Auction Reporting on buyer view"
_auto = False
_columns = {
'buyer_login': fields.char('Buyer Login', size=64, readonly=True, select=1),
'buyer':fields.many2one('res.partner', 'Buyer', readonly=True, select=2),
'object':fields.integer('No of objects', readonly=True, select=1),
'total_price':fields.float('Total Adj.', digits=(16, 2), readonly=True, select=2),
'avg_price':fields.float('Avg Adj.', digits=(16, 2), readonly=True, select=2),
'date': fields.date('Create Date', select=1),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
}
def init(self, cr):
cr.execute('''
create or replace view report_buyer_auction as (
select
min(al.id) as id,
al.ach_login as "buyer_login",
to_char(al.create_date, 'YYYY-MM-01') as date,
al.ach_uid as "buyer",
ad.id as auction,
count(al.id) as "object",
sum(al.obj_price) as "total_price",
(sum(al.obj_price)/count(al.id)) as "avg_price"
from
auction_lots al,
auction_dates ad
where
ad.id=al.auction_id
group by
to_char(al.create_date, 'YYYY-MM-01'),
al.ach_uid,
ad.id,
al.ach_login
)''')
report_buyer_auction()
class report_buyer_auction2(osv.osv):
_name = "report.buyer.auction2"
_description = "Auction Reporting on buyer view"
_auto = False
_columns = {
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'buyer_login': fields.char('Buyer Login', size=64, readonly=True, select=True),
'buyer':fields.many2one('res.partner', 'Buyer', readonly=True, select=2),
'sumadj':fields.float('Sum of adjustication', readonly=True),
'gross_revenue':fields.float('Gross Revenue', readonly=True),
'net_revenue':fields.float('Net Revenue', readonly=True),
'net_margin':fields.float('Net Margin', readonly=True),
'date': fields.date('Create Date', required=True)
}
def init(self, cr):
cr.execute('''
create or replace view report_buyer_auction2 as (
select
min(al.id) as id,
to_char(al.create_date, 'YYYY-MM-01') as date,
al.ach_login as "buyer_login",
al.ach_uid as "buyer",
sum(al.obj_price) as sumadj,
ad.id as auction,
sum(al.gross_revenue) as gross_revenue,
sum(al.net_revenue) as net_revenue,
avg(al.net_margin) as net_margin
from
auction_lots al,
auction_dates ad
where
al.auction_id=ad.id
group by
al.ach_uid,
al.ach_login,
ad.id,
to_char(al.create_date, 'YYYY-MM-01')
)''')
report_buyer_auction2()
class report_seller_auction(osv.osv):
_name = "report.seller.auction"
_description = "Auction Reporting on seller view"
_auto = False
_rec_name = 'date'
_columns = {
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'seller': fields.many2one('res.partner', 'Seller', readonly=True, select=1),
'object_number':fields.integer('No of Objects', readonly=True),
'total_price':fields.float('Total adjudication', readonly=True),
'avg_price':fields.float('Avg adjudication', readonly=True),
'avg_estimation':fields.float('Avg estimation', readonly=True),
'date': fields.date('Create Date', required=True, select=1),
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('sold', 'Sold')), 'State', readonly=True, select=1)
}
def init(self, cr):
cr.execute('''
create or replace view report_seller_auction as (
select
adl.id as auction,
min(al.id) as id,
to_char(adl.auction1, 'YYYY-MM-DD') as date,
ad.partner_id as seller,
count(al.id) as "object_number",
SUM(al.obj_price) as "total_price",
(SUM(al.obj_price)/count(al.id)) as avg_price,
sum(al.lot_est1+al.lot_est2)/2 as avg_estimation,
al.state
from
auction_dates adl,
auction_lots al,
auction_deposit ad
where
al.auction_id=adl.id and ad.id=al.bord_vnd_id
group by
ad.partner_id,
al.state,adl.auction1,adl.id
)''')
report_seller_auction()
class report_seller_auction2(osv.osv):
_name = "report.seller.auction2"
_description = "Auction Reporting on seller view2"
_auto = False
_rec_name = 'date'
_columns = {
'seller': fields.many2one('res.partner', 'Seller', readonly=True, select=1),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'sum_adj':fields.float('Sum Adjustication', readonly=True, select=2),
'gross_revenue':fields.float('Gross revenue', readonly=True, select=2),
'net_revenue':fields.float('Net revenue', readonly=True, select=2),
'net_margin':fields.float('Net margin', readonly=True, select=2),
'date': fields.date('Auction date', required=1),
}
def init(self, cr):
cr.execute('''create or replace view report_seller_auction2 as
(select
min(al.id) as id,
to_char(adl.auction1, 'YYYY-MM-DD') as date,
adl.id as auction,
ad.partner_id as seller,
sum(al.obj_price) as "sum_adj",
sum(al.gross_revenue) as "gross_revenue",
sum(al.net_revenue) as "net_revenue",
avg(al.net_margin) as "net_margin"
from
auction_lots al,auction_dates adl,auction_deposit ad
where
adl.id=al.auction_id and ad.id=al.bord_vnd_id
group by
al.ach_uid,adl.auction1,adl.id,ad.partner_id)
''')
report_seller_auction2()
class report_auction_view2(osv.osv):
_name = "report.auction.view2"
_description = "Auction Reporting on view2"
_auto = False
_rec_name = 'date'
_columns = {
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'sum_adj':fields.float('Sum of adjudication', readonly=True),
'obj_number':fields.integer('# of Objects', readonly=True),
'gross_revenue':fields.float('Gross revenue', readonly=True),
'net_revenue':fields.float('Net revenue', readonly=True),
'obj_margin':fields.float('Avg margin', readonly=True),
'obj_margin_procent':fields.float('Net margin (%)', readonly=True),
'date': fields.date('Auction date', required=True, select=1)
}
def init(self, cr):
cr.execute('''create or replace view report_auction_view2 as (
select
ad.id as id,
to_char(ad.auction1, 'YYYY-MM-DD') as date,
ad.id as "auction",
count(al.id) as "obj_number",
SUM(al.obj_price) as "sum_adj",
SUM(al.gross_revenue) as "gross_revenue",
SUM(al.net_revenue) as "net_revenue",
avg(al.net_revenue) as "obj_margin",
SUM(al.net_revenue)*100/sum(al.obj_price) as "obj_margin_procent"
from
auction_dates ad
left join
auction_lots al on (al.auction_id = ad.id)
group by
ad.id, ad.auction1
having
sum(al.obj_price) <> 0
)''')
report_auction_view2()
class report_auction_view(osv.osv):
_name = "report.auction.view"
_description = "Auction Reporting on view1"
_auto = False
_rec_name = 'auction_id'
_columns = {
'auction_id': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'nobjects':fields.float('No of objects', readonly=True),
'nbuyer':fields.float('No of buyers', readonly=True),
'nseller':fields.float('No of sellers', readonly=True),
'min_est':fields.float('Minimum Estimation', readonly=True, select=2),
'max_est':fields.float('Maximum Estimation', readonly=True, select=2),
'adj_price':fields.float('Adjudication price', readonly=True, select=2),
'obj_ret':fields.integer('# obj ret', readonly=True, select=2)
}
def init(self, cr):
cr.execute('''create or replace view report_auction_view as
(select
min(al.id) as id,
al.auction_id as "auction_id",
count(al.id) as "nobjects",
count(al.ach_login) as "nbuyer",
count(al.bord_vnd_id) as "nseller",
sum(al.lot_est1) as "min_est",
sum(al.lot_est2) as "max_est",
(SELECT count(1) FROM auction_lots WHERE obj_ret>0) as obj_ret,
sum(al.obj_price) as "adj_price"
from
auction_lots al
group by
al.auction_id
)''')
report_auction_view()
class report_auction_object_date(osv.osv):
_name = "report.auction.object.date"
_description = "Objects per day"
_auto = False
_columns = {
'obj_num': fields.integer('# of Objects'),
'name': fields.date('Created date', select=2),
'month': fields.date('Month', select=1),
'user_id':fields.many2one('res.users', 'User', select=1),
}
#l.create_uid as user,
def init(self, cr):
cr.execute("""create or replace view report_auction_object_date as
(select
min(l.id) as id,
to_char(l.create_date, 'YYYY-MM-DD') as name,
to_char(l.create_date, 'YYYY-MM-01') as month,
count(l.obj_num) as obj_num,
l.create_uid as user_id
from
auction_lots l
group by
to_char(l.create_date, 'YYYY-MM-DD'),
to_char(l.create_date, 'YYYY-MM-01'),
l.create_uid
)
""")
report_auction_object_date()
class report_auction_estimation_adj_category(osv.osv):
_name = "report.auction.estimation.adj.category"
_description = "comparaison estimate/adjudication "
_auto = False
_rec_name='date'
_columns = {
'lot_est1': fields.float('Minimum Estimation', select=2),
'lot_est2': fields.float('Maximum Estimation', select=2),
# 'obj_price': fields.float('Adjudication price'),
'date': fields.date('Date', readonly=True, select=1),
'lot_type': fields.selection(_type_get, 'Object Type', size=64),
'adj_total': fields.float('Total Adjudication', select=2),
'user_id':fields.many2one('res.users', 'User', select=1)
}
def init(self, cr):
cr.execute("""
create or replace view report_auction_estimation_adj_category as (
select
min(l.id) as id,
to_char(l.create_date, 'YYYY-MM-01') as date,
l.lot_type as lot_type,
sum(l.lot_est1) as lot_est1,
sum(l.lot_est2) as lot_est2,
sum(l.obj_price) as adj_total,
l.create_uid as user_id
from
auction_lots l,auction_dates m
where
l.auction_id=m.id and l.obj_price >0
group by
to_char(l.create_date, 'YYYY-MM-01'),lot_type,l.create_uid
)
""")
report_auction_estimation_adj_category()
class report_auction_adjudication(osv.osv):
_name = "report.auction.adjudication"
_description = "report_auction_adjudication"
_auto = False
_columns = {
'name': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'state': fields.selection((('draft', 'Draft'), ('close', 'Closed')), 'State', select=1),
'adj_total': fields.float('Total Adjudication'),
'date': fields.date('Date', readonly=True, select=1),
'user_id':fields.many2one('res.users', 'User', select=1)
}
def init(self, cr):
cr.execute("""
create or replace view report_auction_adjudication as (
select
l.id as id,
l.id as name,
sum(m.obj_price) as adj_total,
to_char(l.create_date, 'YYYY-MM-01') as date,
l.create_uid as user_id,
l.state
from
auction_dates l ,auction_lots m
where
m.auction_id=l.id
group by
l.id,l.state,l.name,l.create_uid,to_char(l.create_date, 'YYYY-MM-01')
)
""")
report_auction_adjudication()
class report_attendance(osv.osv):
_name="report.attendance"
_description = "Report Sign In/Out"
_auto = False
#_rec_name='date'
_columns = {
'name': fields.date('Date', readonly=True, select=1),
'employee_id' : fields.many2one('hr.employee', "Employee's Name", select=1, readonly=True),
'total_attendance': fields.float('Total', readonly=True),
}
def init(self, cr):
cr.execute("""CREATE OR REPLACE VIEW report_attendance AS
SELECT
id,
name,
employee_id,
CASE WHEN SUM(total_attendance) < 0
THEN (SUM(total_attendance) +
CASE WHEN current_date <> name
THEN 1440
ELSE (EXTRACT(hour FROM current_time) * 60) + EXTRACT(minute FROM current_time)
END
)
ELSE SUM(total_attendance)
END /60 as total_attendance
FROM (
SELECT
max(a.id) as id,
a.name::date as name,
a.employee_id,
SUM(((EXTRACT(hour FROM a.name) * 60) + EXTRACT(minute FROM a.name)) * (CASE WHEN a.action = 'sign_in' THEN -1 ELSE 1 END)) as total_attendance
FROM hr_attendance a
where name > current_date + interval '-1 day'
GROUP BY a.name::date, a.employee_id
) AS fs
GROUP BY name,fs.id,employee_id
""")
report_attendance()
class report_deposit_border(osv.osv):
_name="report.deposit.border"
_description = "Report deposit border"
_auto = False
_rec_name='bord'
_columns = {
'bord': fields.char('Depositer Inventory', size=64, required=True),
'seller': fields.many2one('res.partner', 'Seller', select=1),
'moy_est' : fields.float('Avg. Est', select=1, readonly=True),
'total_marge': fields.float('Total margin', readonly=True),
'nb_obj':fields.float('# of objects', readonly=True),
}
def init(self, cr):
cr.execute("""CREATE OR REPLACE VIEW report_deposit_border AS
SELECT
min(al.id) as id,
ab.partner_id as seller,
ab.name as bord,
COUNT(al.id) as nb_obj,
SUM((al.lot_est1 + al.lot_est2)/2) as moy_est,
SUM(al.net_revenue)/(count(ad.id)) as total_marge
FROM
auction_lots al,auction_deposit ab,auction_dates ad
WHERE
ad.id=al.auction_id
and al.bord_vnd_id=ab.id
GROUP BY
ab.name,ab.partner_id""")
report_deposit_border()
class report_object_encoded(osv.osv):
_name = "report.object.encoded"
_description = "Object encoded"
_auto = False
_columns = {
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('paid', 'Paid'), ('invoiced', 'Invoiced')), 'State', required=True, select=1),
'user_id':fields.many2one('res.users', 'User', select=1),
'estimation': fields.float('Estimation', select=2),
'date': fields.date('Create Date', required=True),
# 'gross_revenue':fields.float('Gross revenue',readonly=True, select=2),
# 'net_revenue':fields.float('Net revenue',readonly=True, select=2),
# 'obj_margin':fields.float('Net margin', readonly=True, select=2),
'obj_ret':fields.integer('# obj ret', readonly=True, select=2),
# 'adj':fields.integer('Adj.', readonly=True, select=2),
'obj_num':fields.integer('# of Encoded obj.', readonly=True, select=2),
}
def init(self, cr):
cr.execute('''create or replace view report_object_encoded as
(select min(al.id) as id,
to_char(al.create_date, 'YYYY-MM-DD') as date,
al.state as state,
al.create_uid as user_id,
(SELECT count(1) FROM auction_lots WHERE obj_ret>0) as obj_ret,
sum((100* al.lot_est1)/al.obj_price) as estimation,
COUNT(al.product_id) as obj_num
from auction_lots al
where al.obj_price>0 and state='draft'
group by to_char(al.create_date, 'YYYY-MM-DD'), al.state, al.create_uid)
''')
report_object_encoded()
class report_object_encoded_manager(osv.osv):
_name = "report.object.encoded.manager"
_description = "Object encoded"
_auto = False
_columns = {
'user_id':fields.many2one('res.users', 'User', select=True),
'estimation': fields.float('Estimation', select=True),
'date': fields.date('Create Date', required=True),
'gross_revenue':fields.float('Gross revenue', readonly=True, select=True),
'net_revenue':fields.float('Net revenue', readonly=True, select=True),
'obj_margin':fields.float('Net margin', readonly=True, select=True),
'obj_ret':fields.integer('# obj ret', readonly=True, select=True),
'adj':fields.integer('Adj.', readonly=True, select=True),
'obj_num':fields.integer('# of Encoded obj.', readonly=True, select=True),
}
def init(self, cr):
cr.execute('''create or replace view report_object_encoded_manager as
(select
min(al.id) as id,
to_char(al.create_date, 'YYYY-MM-DD') as date,
al.create_uid as user_id,
sum((100*lot_est1)/obj_price) as estimation,
(SELECT count(1) FROM auction_lots WHERE obj_ret>0) as obj_ret,
SUM(al.gross_revenue) as "gross_revenue",
SUM(al.net_revenue) as "net_revenue",
SUM(al.net_revenue)/count(al.id) as "obj_margin",
COUNT(al.product_id) as obj_num,
SUM(al.obj_price) as "adj"
from auction_lots al
where al.obj_price>0
group by to_char(al.create_date, 'YYYY-MM-DD'), al.create_uid)
''')
report_object_encoded_manager()
class report_unclassified_objects(osv.osv):
_name = "report.unclassified.objects"
_description = "Unclassified objects "
_auto = False
_columns = {
'name': fields.char('Short Description', size=64, required=True),
'obj_num': fields.integer('Catalog Number'),
'obj_price': fields.float('Adjudication price'),
'lot_num': fields.integer('List Number', required=True, select=1),
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('paid', 'Paid'), ('sold', 'Sold')), 'State', required=True, readonly=True),
'obj_comm': fields.boolean('Commission'),
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True),
'ach_login': fields.char('Buyer Username', size=64),
'lot_est1': fields.float('Minimum Estimation'),
'lot_est2': fields.float('Maximum Estimation'),
'lot_type': fields.selection(_type_get, 'Object category', size=64),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
}
def init(self, cr):
cr.execute("""create or replace view report_unclassified_objects as
(select
min(al.id) as id,
al.name as name,
al.obj_price as obj_price,
al.obj_num as obj_num,
al.lot_num as lot_num,
al.state as state,
al.obj_comm as obj_comm,
al.bord_vnd_id as bord_vnd_id,
al.ach_login as ach_login,
al.lot_est1 as lot_est1,
al.lot_est2 as lot_est2,
al.lot_type as lot_type,
al.auction_id as auction
from auction_lots al,auction_lot_category ac
where (al.lot_type=ac.name) AND (ac.aie_categ='41') AND (al.auction_id is null)
group by al.obj_price,al.obj_num, al.lot_num, al.state, al.obj_comm,al.bord_vnd_id,al.ach_login,al.lot_est1,al.lot_est2,al.lot_type,al.auction_id,al.name)
""")
report_unclassified_objects()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -6,49 +6,320 @@
<field name="code">0</field>
<field name="type">view</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" type="list">
<field name="parent_id" eval="0">
<value search="[('type','=','view')]" model="account.account"/>
</field>
<field name="user_type" ref="account.account_type_root"/>
</record>
<!-- Auction lots category data -->
<record model="aie.category" id="aie_category_anti_view">
<field name="name">Antiques</field>
<field name="code">ANTI</field>
</record>
<record model="aie.category" id="aie_category_paint_view">
<field name="name">Painting</field>
<field name="code">PAINT</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_furn_view">
<field name="name">Furnitures</field>
<field name="code">FURN</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_pcg_view">
<field name="name">Porcelain, Ceramics, Glassmaking, ...</field>
<field name="code">PCG</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_sbe_view">
<field name="name">Sculpture, bronze, eso</field>
<field name="code">SBE</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_clock_view">
<field name="name">Clocks and watches</field>
<field name="code">CLW</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_caob_view">
<field name="name">Collectible and art objects</field>
<field name="code">COAO</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_engr_view">
<field name="name">Engravings</field>
<field name="code">ENGR</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_gart_view">
<field name="name">Graphic Arts</field>
<field name="code">GART</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_light_view">
<field name="name">Lightings</field>
<field name="code">LGT</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_metal_view">
<field name="name">Metal Ware</field>
<field name="code">MW</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_mini_view">
<field name="name">Miniatures</field>
<field name="code">MAT</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_collect_view">
<field name="name">Collections</field>
<field name="code">CLT</field>
<field name="parent_id" ref="aie_category_mini_view"/>
</record>
<record model="aie.category" id="aie_category_mi_view">
<field name="name">Musical Instruments</field>
<field name="code">MI</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_owm_view">
<field name="name">Old weapons and militaria</field>
<field name="code">OWM</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_oart_view">
<field name="name">Oriental Arts</field>
<field name="code">OART</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_chf_view">
<field name="name">Chineese furnitures</field>
<field name="code">CHF</field>
<field name="parent_id" ref="aie_category_oart_view"/>
</record>
<record model="aie.category" id="aie_category_othr_view">
<field name="name">Others</field>
<field name="code">OTR</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_pst_view">
<field name="name">Posters</field>
<field name="code">PST</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_rel_view">
<field name="name">Religiosa</field>
<field name="code">REL</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_sin_view">
<field name="name">Scientific Instruments</field>
<field name="code">SIN</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_tin_view">
<field name="name">Tin</field>
<field name="code">TIN</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_cwa_view">
<field name="name">Copper wares</field>
<field name="code">CWA</field>
<field name="parent_id" ref="aie_category_tin_view"/>
</record>
<record model="aie.category" id="aie_category_ty_view">
<field name="name">Toys</field>
<field name="code">TY</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_vrs_view">
<field name="name">Verreries</field>
<field name="code">VRS</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_wne_view">
<field name="name">Wine</field>
<field name="code">WNE</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<!-- -->
<record model="aie.category" id="aie_category_con_view">
<field name="name">Contemporary Art</field>
<field name="code">CONTEM</field>
</record>
<record model="aie.category" id="aie_category_con_art_view">
<field name="name">Arts</field>
<field name="code">ARTS</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_curi_view">
<field name="name">Curiosa</field>
<field name="code">CRS</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_ome_view">
<field name="name">Other Media</field>
<field name="code">OME</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_pht_view">
<field name="name">Photo</field>
<field name="code">PHT</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_paint_view">
<field name="name">Painting</field>
<field name="code">CPAINT</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_scul_view">
<field name="name">Sculpture</field>
<field name="code">SCUL</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_con_cshe_view">
<field name="name">Shows</field>
<field name="code">CSHW</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<record model="aie.category" id="aie_category_jew_view">
<field name="name">Jewelry</field>
<field name="code">JWL</field>
<field name="parent_id" ref="aie_category_con_view"/>
</record>
<!-- -->
<record model="aie.category" id="aie_category_uncla_view">
<field name="name">Unclassifieds</field>
<field name="code">UNCLASS</field>
</record>
<record model="aie.category" id="aie_category_afrart_view">
<field name="name">African Arts</field>
<field name="code">AFART</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_argen_view">
<field name="name">Argenterie</field>
<field name="code">ARGENT</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_artfrom_view">
<field name="name">Art from the Ivory Coast</field>
<field name="code">ARTFORM</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_afrec_view">
<field name="name">African Arts</field>
<field name="code">AFRART</field>
<field name="parent_id" ref="aie_category_artfrom_view"/>
</record>
<record model="aie.category" id="aie_category_book_view">
<field name="name">Books, manuscripts, eso.</field>
<field name="code">BME</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_carpet_view">
<field name="name">Carpet and textilles</field>
<field name="code">CARPTEX</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<record model="aie.category" id="aie_category_cartoon_view">
<field name="name">Cartoons</field>
<field name="code">CATOON</field>
<field name="parent_id" ref="aie_category_anti_view"/>
</record>
<!-- End Of Auction Lots Category -->
<record model="account.account" id="auction_expense_view">
<field name="name">Auction Adjudication Expenses</field>
<field name="code">0</field>
<field name="code">1</field>
<field name="type">view</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" type="list">
<field name="parent_id" eval="0">
<value search="[('type','=','view')]" model="account.account"/>
</field>
<field name="user_type" ref="account.account_type_asset"/>
</record>
<record model="account.account" id="auction_income">
<field name="name">Auction Adjudications</field>
<field name="code">7x*</field>
<field name="type">income</field>
<!-- <field name="type">income</field> -->
<field name="type">other</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="[auction_income_view]"/>
<field name="parent_id" eval="auction_income_view"/>
<field name="user_type" ref="account.account_type_root"/>
</record>
<record model="account.account" id="auction_expense">
<field name="name">Auction Adjudication Expenses</field>
<field name="code">6x*</field>
<field name="type">expense</field>
<field name="type">other</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="[auction_expense_view]"/>
<field name="parent_id" eval="auction_expense_view"/>
<field name="user_type" ref="account.account_type_root"/>
</record>
<record model="account.account" id="auction_income_costs">
<field name="name">Auction Buyer Costs</field>
<field name="code">7x*</field>
<field name="type">tax</field>
<field name="code">8x*</field>
<field name="type">payable</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="[auction_income_view]"/>
<field name="parent_id" eval="auction_income_view"/>
<field name="user_type" ref="account.account_type_root"/>
</record>
<record model="account.account" id="auction_expense_costs">
<field name="name">Auction Seller Costs</field>
<field name="code">6x*</field>
<field name="type">tax</field>
<field name="code">9x*</field>
<field name="type">receivable</field>
<field name="currency_id" search="[('name','=','EUR')]"/>
<field name="parent_id" eval="[auction_expense_view]"/>
<field name="parent_id" eval="auction_expense_view"/>
<field name="user_type" ref="account.account_type_root"/>
</record>
<record model="account.tax" id="tax_buyer_author">
@ -77,21 +348,10 @@
<field name="account_collected_id" ref="auction_expense_costs"/>
<field name="account_paid_id" ref="auction_expense_costs"/>
</record>
<ir_set>
<field name="keys" eval="[('meta','res.partner'),('name','auction.seller.costs')]"/>
<field name="args" eval="[]"/>
<field name="name">account.seller.costs</field>
<field name="value" eval="tax_seller"/>
<field name="meta" eval="{'type':'many2one', 'string':'Seller Costs', 'relation':'account.tax'}"/>
</ir_set>
<record id="product.product_product_pc2" model="product.product">
<field name="list_price">770.0</field>
<field name="standard_price">700.0</field>
</record>
</data>

View File

@ -166,30 +166,30 @@
<record model="auction.lot.category" id="auction_cat_1">
<field name="name">painting</field>
<field name="priority">1</field>
<field name="aie_categ">8</field>
<field name="aie_categ" ref="aie_category_paint_view"/>
</record>
<record model="auction.lot.category" id="auction_cat_2">
<field name="name">Furniture</field>
<field name="priority">2</field>
<field name="aie_categ">10</field>
<field name="aie_categ" ref="aie_category_furn_view"/>
</record>
<record model="auction.lot.category" id="auction_cat_3">
<field name="name">glass</field>
<field name="priority">2</field>
<field name="aie_categ">25</field>
<field name="aie_categ" ref="aie_category_pcg_view"/>
</record>
<record model="auction.lot.category" id="auction_cat_4">
<field name="name">sculpture</field>
<field name="priority">10</field>
<field name="aie_categ">18</field>
<field name="aie_categ" ref="aie_category_sbe_view"/>
</record>
<record model="auction.lot.category" id="auction_cat_5">
<field name="name">Jawellery</field>
<field name="priority">6</field>
<field name="aie_categ">15</field>
<field name="aie_categ" ref="aie_category_jew_view"/>
</record>
<!-- end == demo data for the auction_lot_Category-->

View File

@ -207,11 +207,13 @@
xsl="auction/report/lots_bids_phone.xsl"
multi="1"/>-->
<report string="Auction's results"
model="auction.lots"
name="auction.result"
rml="auction/report/auction_result.rml"
multi="1"/>
<!-- temp -->
<!-- <report string="Auction's results"-->
<!-- model="auction.lots"-->
<!-- name="auction.result"-->
<!-- rml="auction/report/auction_result.rml"-->
<!-- multi="1"/>-->
<report string="Results with buyer"
model="auction.lots"

View File

@ -404,6 +404,7 @@
<field name="vnd_lim_net"/>
<field name="sel_inv_id"/>
<field name="paid_vnd"/>
<button name="mark_paid" string="Mark" type="object" icon="gtk-execute" attrs="{'invisible':[('paid_vnd','=', False)]}"/>
<field name="history_ids" colspan="4" readonly="1" nolabel="1">
<tree string="History">
<field name="name"/>
@ -588,18 +589,6 @@
</field>
</record>
=======================================================
Auction Management/seller
=======================================================
<record model="ir.actions.act_window" id="action_unclassified_objects">
<field name="name">Unclassified objects</field>
<field name="res_model">report.unclassified.objects</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="filter" eval="True"/>
</record>
<record model="ir.ui.view" id="v12">
<field name="name">Auction.deposit.tree</field>
<field name="model">auction.deposit</field>
@ -790,7 +779,7 @@
</field>
</record>
<menuitem name="Reporting" id="auction_report_menu" parent="auction_menu_root" sequence="6"/>
<record model="ir.ui.view" id="view_auction_bid_tree">
<field name="name">auction.bid.tree</field>
@ -823,437 +812,34 @@
<menuitem name="Bids line" parent="menu_action_bid_open" action="action_bids_form" id="menu_action_bids_form"/>
<!--start : creating auction Reporting menu for the auction by pmo-->
<record model="ir.ui.view" id="view_auction_reports_tree">
<field name="name">auction.reports.tree</field>
<field name="model">report.auction.view</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction results">
<field name="auction_id" />
<field name="nobjects" />
<field name="nbuyer" />
<field name="obj_ret" />
<field name="nseller" />
<field name="min_est" />
<field name="max_est" />
<field name="adj_price" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_auction_reports_form">
<field name="name">auction.reports.form</field>
<field name="model">report.auction.view</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auctions results">
<field name="auction_id" />
<field name="nobjects" />
<field name="nbuyer" />
<field name="nseller" />
<field name="min_est" />
<field name="max_est" />
<field name="adj_price" />
</form>
</field>
</record>
<menuitem name="Reporting" id="auction_report_menu" parent="auction_menu_root" sequence="6"/>
<record model="ir.actions.act_window" id="action_auction_report_allmonth_view1">
<field name="name">Auction report</field>
<field name="res_model">report.auction.view</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<!--field name="domain">[('auction_id','=', active_id)]</field-->
</record>
<menuitem name="Auction" id="auction_report_auction_menu" parent="auction_report_menu"/>
<menuitem name="Auction's Summary" parent="auction_report_auction_menu" action="action_auction_report_allmonth_view1" id="menu_auction_allmonth_view1"/>
<!--start : auction reporting view 2-->
<record model="ir.ui.view" id="view_auction_reports_tree2">
<field name="name">auction.reports.tree2</field>
<field name="model">report.auction.view2</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction Reporting tree view2">
<field name="date" />
<field name="auction" />
<field name="sum_adj" />
<field name="obj_number" />
<field name="gross_revenue" />
<field name="net_revenue" />
<field name="obj_margin" />
<field name="obj_margin_procent" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_auction_reports_form2">
<field name="name">Auction report</field>
<field name="model">report.auction.view2</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auctions">
<field name="auction" />
<field name="sum_adj" />
<field name="gross_revenue" />
<field name="net_revenue" />
<field name="obj_margin" />
<field name="obj_margin_procent" />
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_auction_report_thismonth_view2">
<field name="name">Auction report</field>
<field name="res_model">report.auction.view2</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<!-- <menuitem name="This Month" id="auction_report_thismonth_menu" parent="auction_report_menu"/> -->
<!-- <menuitem name="Result of Auction" action="action_auction_report_thismonth_view2" id="menu_auction_thismonth_view2" parent="auction_report_thismonth_menu"/> -->
<record model="ir.actions.act_window" id="action_auction_report_allmonth_view2">
<field name="name">Auction report</field>
<field name="res_model">report.auction.view2</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
</record>
<menuitem name="Auction's Revenues" parent="auction_report_auction_menu" action="action_auction_report_allmonth_view2" id="menu_auction_allmonth_view2"/>
<!--start : creating seller Reporting menu for the selller by pmo-->
<record model="ir.ui.view" id="view_auction_form">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auction reporting form view">
<field name="seller" select="1"/>
<field name="total_price"/>
<field name="avg_price"/>
<field name="state" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_auction_tree">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction reporting tree view">
<field name="auction" />
<!--field name="date" /-->
<field name="seller" select="1"/>
<field name="object_number"/>
<field name="total_price"/>
<field name="avg_price" />
<field name="avg_estimation" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_auction_graph">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Auction reporting graph view" orientation="vertical" type="bar">
<field name="seller" />
<!-- <field name="object_sold"/> -->
<field name="total_price" operator="+"/>
<field name="avg_price" operator="+" />
<field name="avg_estimation" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_auction_reporting1">
<field name="name">Seller's auction</field>
<field name="res_model">report.seller.auction</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.actions.act_window" id="action_auction_reporting_all1">
<field name="name">Seller's auction</field>
<field name="res_model">report.seller.auction</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
</record>
<menuitem name="Sellers" id="auction_report_seller_menu" parent="auction_report_menu"/>
<menuitem name="Seller's Summary" action="action_auction_reporting_all1" id="menu_seller_allmonth_view1" parent="auction_report_seller_menu"/>
<record model="ir.ui.view" id="view_auction_form2">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction2</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auction reporting2 form view">
<field name="auction" select="1"/>
<field name="seller" select="1"/>
<field name="sum_adj" select="1"/>
<field name="gross_revenue" select="1"/>
<field name="net_revenue" select="1"/>
<field name="net_margin" select="1" />
<field name="date" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_auction_tree2">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction2</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction reporting2 tree view">
<field name="auction" select="1"/>
<field name="seller" select="1"/>
<field name="sum_adj" select="1" sum="Sum adj"/>
<field name="gross_revenue" select="1"/>
<field name="net_revenue" select="1"/>
<field name="net_margin" select="1" sum="Sum net margin"/>
<field name="date" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_auction_graph2">
<field name="name">Seller's auction</field>
<field name="model">report.seller.auction2</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Auction seller reporting2 graph view" orientation="vertical" type="bar">
<field name="seller" />
<field name="net_revenue" operator="+"/>
<field name="gross_revenue" operator="+" />
<field name="net_margin" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_auction_reporting_all2">
<field name="name">Seller's auction</field>
<field name="res_model">report.seller.auction2</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<menuitem name="Seller's Revenues" action="action_auction_reporting_all2" id="menu_seller_allmonth_view2" parent="auction_report_seller_menu"/>
<record model="ir.ui.view" id="view_auction_buyer_form">
<field name="name">Buyer's auction</field>
<field name="model">report.buyer.auction</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auction buyer reporting form view">
<field name="buyer_login" select="1"/>
<field name="buyer" select="1"/>
<field name="object"/>
<field name="total_price"/>
<field name="avg_price"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_auction_buyer_tree">
<field name="name">Buyer's auction</field>
<field name="model">report.buyer.auction</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction buyer reporting tree view">
<field name="auction" select="1"/>
<field name="buyer_login" select="1"/>
<field name="buyer" select="1"/>
<field name="object" select="1"/>
<field name="total_price" select="1"/>
<field name="avg_price" select="1"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_auction_buyer_reporting">
<field name="name">Buyer's auction</field>
<field name="res_model">report.buyer.auction</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.ui.view" id="view_auction_buyer_form2">
<field name="name">Buyer's auction</field>
<field name="model">report.buyer.auction2</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Auction buyer reporting form view2">
<field name="buyer_login" select="1"/>
<field name="buyer" select="1"/>
<field name="sumadj" />
<field name="gross_revenue" />
<field name="net_revenue" />
<field name="net_margin" />
</form>
</field>
</record>
<record model="ir.ui.view" id="view_auction_buyer_tree2">
<field name="name">Buyer's auction</field>
<field name="model">report.buyer.auction2</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction buyer reporting tree view2">
<field name="auction" select="1"/>
<field name="buyer_login" select="1"/>
<field name="buyer" select="1"/>
<field name="sumadj" select="1" sum="Sum adj"/>
<field name="gross_revenue" select="1"/>
<field name="net_revenue" select="1"/>
<field name="net_margin" select="1" sum="Sum net margin"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_auction_buyer_reporting2">
<field name="name">Buyer's auction</field>
<field name="res_model">report.buyer.auction2</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.actions.act_window" id="action_auction_buyer_reporting_all1">
<field name="name">Buyer's auction</field>
<field name="res_model">report.buyer.auction</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
</record>
<menuitem name="Buyer" id="auction_report_buyer_menu" parent="auction_report_menu"/>
<menuitem name="Buyer's Summary" action="action_auction_buyer_reporting_all1" id="menu_buyer_allmonth_view1" parent="auction_report_buyer_menu"/>
<record model="ir.actions.act_window" id="action_auction_buyer_reporting_all2">
<field name="name">Buyer's auction for all months</field>
<field name="res_model">report.buyer.auction2</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
</record>
<menuitem name="Buyer's Revenues" action="action_auction_buyer_reporting_all2" id="menu_buyer_allmonth_view2" parent="auction_report_buyer_menu"/>
<!--end : creating buyer Reporting menu for the buyer by pmo-->
<record model="ir.ui.view" id="view_report_unplanned_object_tree">
<field name="name">Unplanned objects</field>
<field name="model">report.unplanned.object</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Unplanned Objects">
<field name="depos" select="1"/>
<field name="lot" select="1"/>
<field name="product_l" select="1"/>
<field name="lot_est1_l"/>
<field name="lot_est2_l" select="1"/>
<field name="artist_id_l" select="1"/>
<field name="name_l" select="1"/>
<field name="obj_desc_l"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_unplanned_object_form">
<field name="name">Unplanned objects</field>
<field name="model">report.unplanned.object</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Unplanned Objects">
<field name="depos" select="1"/>
<field name="lot" select="1"/>
<field name="product_l" select="1"/>
<field name="lot_est1_l" select="1"/>
<field name="lot_est2_l" select="1"/>
<field name="artist_id_l" select="1"/>
<field name="obj_desc_l" select="1"/>
<field name="name_l" select="1"/>
</form>
</field>
</record>
=============================
estimation.adj.category
==============================
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_form">
<field name="name">report.auction.estimation.adj.category.form</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Min est/Adj/Max est">
<!--field name="date" select="1"/-->
<field name="lot_type" select="1"/>
<field name="user_id" select="1"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="adj_total"/>
<field name="date" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_tree">
<field name="name">report.auction.estimation.adj.category.tree</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Min est/Adj/Max est">
<!--field name="date" select="1"/-->
<field name="user_id" select="1"/>
<field name="lot_type" select="1"/>
<field name="lot_est1" select="1"/>
<field name="lot_est2" select="1"/>
<field name="adj_total" select="1"/>
<field name="date" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_graph">
<field name="name">report.auction.estimation.adj.category.graph</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Min est/Adj/Max est" orientation="vertical" type="bar">
<!--field name="date" operator="+"/-->
<field name="lot_type" select="1"/>
<field name="lot_est1" operator="+"/>
<field name="adj_total" operator="+"/>
<field name="lot_est2" operator="+"/>
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_estimation_adj_category_manager_tree">
<field name="name">Min est/Adj/Max est</field>
<field name="res_model">report.auction.estimation.adj.category</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('date','like',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_estimation_adj_category_member_tree">
<field name="name">Min est/Adj/Max est</field>
<field name="res_model">report.auction.estimation.adj.category</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('date','like',time.strftime('%Y-%m')),('user_id','=',uid)]</field>
</record>
<menuitem name="Employees" id="auction_report_employees_menu" parent="auction_report_menu"/>
<menuitem name="Comparison of estimations" action="action_report_auction_estimation_adj_category_member_tree" id="menu_report_auction_estimation_adj_category_member" parent="auction_report_employees_menu"/>
<menuitem name="Manager" id="auction_report_manager_menu" parent="auction_report_menu"/>
<menuitem name="Comparison of estimations" action="action_report_auction_estimation_adj_category_manager_tree" id="menu_report_auction_estimation_adj_category_manager" parent="auction_report_manager_menu"/>
<!--==============================-->
<!--My Latest Objects-->
<!--==============================-->
<!-- <record model="ir.actions.act_window" id="action_report_latest_objects_tree">-->
<!-- <field name="res_model">auction.lots</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">tree,form</field>-->
<!-- <field name="domain">[('create_uid','=',uid)]</field>-->
<!-- </record>-->
<!---->
<!-- <record model="ir.actions.act_window" id="action_report_latest_objects_manager_tree">-->
<!-- <field name="res_model">auction.lots</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">tree,form</field>-->
<!-- <field name="limit" eval="80"/>-->
<!-- </record>-->
<!---->
<!--=============================-->
<!--My Latest Deposit-->
<!--==============================-->
<!---->
<!-- <record model="ir.actions.act_window" id="action_report_latest_doposit_manager_tree">-->
<!-- <field name="res_model">auction.deposit</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">tree,form</field>-->
<!-- </record>-->
<!---->
<!-- <menuitem name="Latest Deposits" action="action_report_latest_doposit_manager_tree" id="menu_report_latest_doposit_tree_manager" parent="auction_report_manager_menu"/>-->
<!--=============================
sign in sign out report by user
@ -1299,400 +885,6 @@ sign in sign out report by user
<menuitem name="Summury of Sign_in Sign_out" action="action_report_auction_sign_in_out_manager_tree" id="menu_report_auction_sign_in_out_manager_tree" parent="auction_report_manager_menu"/>
-->
<record model="ir.ui.view" id="view_report_auction_sign_in_out_tree1">
<field name="name">report attendance</field>
<field name="model">report.attendance</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="User's pointing">
<field name="employee_id" select="1"/>
<field name="name" select="1"/>
<field name="total_attendance" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_sign_in_out_graph1">
<field name="name">Graph attendance</field>
<field name="model">report.attendance</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="User's pointing" orientation="vertical" type="bar">
<field name="employee_id" select="1"/>
<field name="total_attendance" operator="+"/>
<field name="name" select="1"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_sign_in_out_member_tree1">
<field name="res_model">report.attendance</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain"> [('name','=',time.strftime('%Y-%m-%d')),('employee_id','=',uid)]</field>
<!--<field name="domain"> [('name','ilike',time.strftime('%Y-%m'))]</field>-->
</record>
<menuitem name="Attendance" action="action_report_auction_sign_in_out_member_tree1" id="menu_report_auction_sign_in_out_member_tree1" parent="auction_report_employees_menu"/>
<record model="ir.actions.act_window" id="action_report_auction_sign_in_out_manager_tree1">
<field name="res_model">report.attendance</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain"> [('name','=',time.strftime('%Y-%m-%d'))]</field>
</record>
<menuitem name="Attendance" action="action_report_auction_sign_in_out_manager_tree1" id="menu_report_auction_sign_in_out_manager_tree1" parent="auction_report_manager_menu"/>
==============================
My Latest Objects
==============================
<record model="ir.actions.act_window" id="action_report_latest_objects_tree">
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('create_uid','=',uid)]</field>
</record>
<record model="ir.actions.act_window" id="action_report_latest_objects_manager_tree">
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="limit" eval="80"/>
</record>
=============================
My Latest Deposit
==============================
<record model="ir.actions.act_window" id="action_report_latest_doposit_manager_tree">
<field name="res_model">auction.deposit</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Latest Deposits" action="action_report_latest_doposit_manager_tree" id="menu_report_latest_doposit_tree_manager" parent="auction_report_manager_menu"/>
=============================
Objects per Day
==============================
<record model="ir.ui.view" id="view_report_auction_object_date_tree">
<field name="name">Objects by date</field>
<field name="model">report.auction.object.date</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects per Day">
<field name="month" select="1" />
<field name="user_id" select="1"/>
<field name="obj_num"/>
<field name="name" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_object_date_form">
<field name="name">Object date</field>
<field name="model">report.auction.object.date</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Objects per Day">
<field name="user_id" />
<field name="name" select="1"/>
<field name="obj_num" />
<field name="month" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_object_date_graph">
<field name="name">report.auction.object.date.graph</field>
<field name="model">report.auction.object.date</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Objects per day" type="bar">
<field name="name" select="1"/>
<field name="obj_num" operator="+"/>
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_object_date_tree">
<field name="res_model">report.auction.object.date</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('month','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem
name="Encoded Objects Per Day"
action="action_report_auction_object_date_tree"
id="menu_report_auction_object_date_tree"
parent="auction_report_manager_menu"/>
<record model="ir.actions.act_window" id="view_report_object_by_auction">
<field name="name">Detailed lots</field>
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="domain">[('auction_id','=', active_id)]</field>
<field name="limit" eval="2000"/>
</record>
<record model="ir.values" id="ir_open_auction_lots">
<field name="key2">tree_but_open</field>
<field name="model">auction.dates</field>
<field name="name">Open auction</field>
<field name="value" eval="'ir.actions.act_window,%d'%view_report_object_by_auction"/>
<field name="object" eval="True"/>
</record>
<record model="ir.actions.act_window" id="auction_lots_open">
<field name="name">Simplified lots for adjudication</field>
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="domain">[('auction_id','=',active_id)]</field>
<field name="limit" eval="2000"/>
</record>
<record model="ir.actions.act_window.view" id="action_auction_lots_open_view1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="act_window_id" ref="auction_lots_open"/>
</record>
<record model="ir.actions.act_window.view" id="action_auction_lots_open_view2">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="act_window_id" ref="auction_lots_open"/>
<field name="view_id" ref="auction_lots_sell_form"/>
</record>
<record model="ir.values" id="ir_open_auction_lots_adj">
<field name="key2">tree_but_action</field>
<field name="model">auction.dates</field>
<field name="name">Open lots for adjudication</field>
<field name="value" eval="'ir.actions.act_window,%d'%auction_lots_open"/>
<field name="object" eval="True"/>
</record>
<record model="ir.actions.act_window" id="action_report_object_by_auction">
<field name="name">Auction dates</field>
<field name="res_model">auction.dates</field>
<field name="view_type">tree</field>
<field name="domain">[('state','=', 'draft')]</field>
</record>
<menuitem name="Objects by Auction"
parent="auction_objects_menu"
id="menu_auction_dates_next_by_auction"
action="action_report_object_by_auction" sequence="11"/>
<act_window name="Open lots"
domain="[('auction_id', '=', active_id)]"
res_model="auction.lots"
src_model="auction.dates"
id="act_auction_lot_line_open"/>
=============================
Auction adjudication
==============================
<record model="ir.ui.view" id="view_report_auction_adjudication_tree">
<field name="name">report.auction.adjudication.tree</field>
<field name="model">report.auction.adjudication</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('draft');black:state in ('close')" string="Total adjudication">
<field name="name" select="1"/>
<field name="adj_total" select="1"/>
<field name="state" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_adjudication_graph">
<field name="name">report.auction.adjudication.graph</field>
<field name="model">report.auction.adjudication</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Total adjudication" type="bar">
<field name="name" select="1"/>
<field name="adj_total" select="1" />
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_adjudication_tree">
<field name="res_model">report.auction.adjudication</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
</record>
<menuitem name="Adjudication by Auction" action="action_report_auction_adjudication_tree" id="menu_report_auction_adjudication_tree" parent="auction_report_manager_menu"/>
<record model="ir.ui.view" id="view_auction_deposit_tree">
<field name="name">Depositer's statistics</field>
<field name="model">report.deposit.border</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Depositer's statistics">
<field name="bord" select="1"/>
<field name="seller" select="1"/>
<field name="moy_est" select="1"/>
<field name="total_marge" select="1"/>
<field name="nb_obj" select="1"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="menu_view_auction_deposit_tree">
<field name="res_model">report.deposit.border</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
</record>
<menuitem name="Depositer's Statistics" action="menu_view_auction_deposit_tree" id="menu_report_deposit_tree_m" parent="auction_report_manager_menu"/>
<menuitem name="Depositer's Statistics" action="menu_view_auction_deposit_tree" id="menu_report_deposit_tree_member" parent="auction_report_employees_menu"/>
=============================
Object encoded
==============================
<record model="ir.ui.view" id="view_report_object_encoded_form">
<field name="name">report.object.encoded.form</field>
<field name="model">report.object.encoded</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Objects statistics">
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation"/>
<field name="obj_ret"/>
<field name="obj_num" sum="# objects"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics">
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation"/>
<field name="obj_ret"/>
<field name="obj_num"/>
</tree>
</field>
</record>
<!-- <record model="ir.ui.view" id="view_report_object_encoded_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics" >
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation" />
<field name="obj_ret" />
<field name="obj_num" />
</tree>
</field>
</record>
-->
<record model="ir.ui.view" id="view_report_object_encoded_graph">
<field name="name">report.object.encoded.graph</field>
<field name="model">report.object.encoded</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Objects statistics" type="bar">
<field name="user_id" select="1"/>
<field name="estimation" operator="+" />
<field name="obj_ret" operator="+" />
<field name="obj_num" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_object_encoded_member_tree">
<field name="res_model">report.object.encoded</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain"> [('user_id','=',uid),('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_manager_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded.manager</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics">
<field name="user_id" select="1"/>
<field name="estimation" />
<field name="obj_ret" />
<field name="obj_num" sum="# objects" select="1"/>
<field name="adj" sum="Total adj."/>
<field name="obj_margin" />
<field name="net_revenue" sum="Total net rev."/>
<field name="gross_revenue" sum="Total gross rev."/>
<field name="date" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_manager_graph">
<field name="name">report.object.encoded.graph</field>
<field name="model">report.object.encoded.manager</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Object statistic" type="bar">
<field name="user_id" select="1"/>
<field name="obj_ret" operator="+" />
<field name="obj_num" operator="+" />
<field name="obj_margin" operator="+" />
<field name="net_revenue" operator="+" />
<field name="gross_revenue" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_object_encoded_manager_tree">
<field name="res_model">report.object.encoded.manager</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.ui.view" id="view_report_unclassified_objects">
<field name="name">report.unclassified.objects</field>
<field name="model">report.unclassified.objects</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('draft','unsold');black:state in ('sold');gray:state in ('paid')" string="Unclassified objects">
<field name="obj_num" string="Ref" select="1"/>
<field name="name" select="1"/>
<field name="ach_login"/>
<field name="obj_price"/>
<field name="state" select="1"/>
<field name="obj_comm"/>
<field name="bord_vnd_id"/>
<field name="lot_num"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="lot_type" select="1"/>
<field name="auction"/>
</tree>
</field>
</record>
<act_window name="Bordereau de dépôt"
domain="[('partner_id', '=', active_id)]"
res_model="auction.deposit"
src_model="res.partner"
id="act_auction_lot_open_deposit"/>
</data>
</openerp>
</openerp>

View File

@ -5,6 +5,13 @@
<field name="name">Auction</field>
</record>
<record model="ir.actions.act_window" id="action_report_latest_objects_tree">
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('create_uid','=',uid)]</field>
</record>
<record model="ir.ui.view" id="board_auction_manager_form">
<field name="name">board.auction.manager.form</field>
<field name="model">board.board</field>
@ -58,7 +65,7 @@
<field name="usage">menu</field>
<field name="view_id" ref="board_auction_manager_form"/>
</record>
<menuitem name="Dashboard" id="menu_board_auction" parent="auction_report_menu" sequence="0"/>
<menuitem name="Dashboard" id="menu_board_auction" parent="auction.auction_report_menu" sequence="0"/>
<menuitem
name="Auction Member"
action="open_board_auction"

View File

@ -32,7 +32,8 @@ import auction_objects
import buyer_form_report
import seller_form_report
import report_auction
import report_attendance
import buyer_list

View File

@ -0,0 +1,315 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from mx import DateTime
from osv import fields, osv, orm
from tools import config
from tools.translate import _
import ir
import netsvc
import os
import time
import tools
def _type_get(self, cr, uid, context=None):
if not context:
context = {}
cr.execute('select name, name from auction_lot_category order by name')
return cr.fetchall()
class report_attendance(osv.osv):
_name="report.attendance"
_description = "Report Sign In/Out"
_auto = False
#_rec_name='date'
_columns = {
'name': fields.date('Date', readonly=True, select=1),
'employee_id' : fields.many2one('hr.employee', "Employee's Name", select=1, readonly=True),
'total_attendance': fields.float('Total', readonly=True),
}
def init(self, cr):
cr.execute("""CREATE OR REPLACE VIEW report_attendance AS
SELECT
id,
name,
employee_id,
CASE WHEN SUM(total_attendance) < 0
THEN (SUM(total_attendance) +
CASE WHEN current_date <> name
THEN 1440
ELSE (EXTRACT(hour FROM current_time) * 60) + EXTRACT(minute FROM current_time)
END
)
ELSE SUM(total_attendance)
END /60 as total_attendance
FROM (
SELECT
max(a.id) as id,
a.name::date as name,
a.employee_id,
SUM(((EXTRACT(hour FROM a.name) * 60) + EXTRACT(minute FROM a.name)) * (CASE WHEN a.action = 'sign_in' THEN -1 ELSE 1 END)) as total_attendance
FROM hr_attendance a
where name > current_date + interval '-1 day'
GROUP BY a.name::date, a.employee_id
) AS fs
GROUP BY name,fs.id,employee_id
""")
report_attendance()
class report_auction_object_date(osv.osv):
_name = "report.auction.object.date"
_description = "Objects per day"
_auto = False
_columns = {
'obj_num': fields.integer('# of Objects'),
'name': fields.date('Created date', select=2),
'month': fields.date('Month', select=1),
'user_id':fields.many2one('res.users', 'User', select=1),
}
#l.create_uid as user,
def init(self, cr):
cr.execute("""create or replace view report_auction_object_date as
(select
min(l.id) as id,
to_char(l.create_date, 'YYYY-MM-DD') as name,
to_char(l.create_date, 'YYYY-MM-01') as month,
count(l.obj_num) as obj_num,
l.create_uid as user_id
from
auction_lots l
group by
to_char(l.create_date, 'YYYY-MM-DD'),
to_char(l.create_date, 'YYYY-MM-01'),
l.create_uid
)
""")
report_auction_object_date()
class report_auction_estimation_adj_category(osv.osv):
_name = "report.auction.estimation.adj.category"
_description = "comparaison estimate/adjudication "
_auto = False
_rec_name='date'
_columns = {
'lot_est1': fields.float('Minimum Estimation', select=2),
'lot_est2': fields.float('Maximum Estimation', select=2),
# 'obj_price': fields.float('Adjudication price'),
'date': fields.date('Date', readonly=True, select=1),
'lot_type': fields.selection(_type_get, 'Object Type', size=64),
'adj_total': fields.float('Total Adjudication', select=2),
'user_id':fields.many2one('res.users', 'User', select=1)
}
def init(self, cr):
cr.execute("""
create or replace view report_auction_estimation_adj_category as (
select
min(l.id) as id,
to_char(l.create_date, 'YYYY-MM-01') as date,
l.lot_type as lot_type,
sum(l.lot_est1) as lot_est1,
sum(l.lot_est2) as lot_est2,
sum(l.obj_price) as adj_total,
l.create_uid as user_id
from
auction_lots l,auction_dates m
where
l.auction_id=m.id and l.obj_price >0
group by
to_char(l.create_date, 'YYYY-MM-01'),lot_type,l.create_uid
)
""")
report_auction_estimation_adj_category()
class report_auction_adjudication(osv.osv):
_name = "report.auction.adjudication"
_description = "report_auction_adjudication"
_auto = False
_columns = {
'name': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'state': fields.selection((('draft', 'Draft'), ('close', 'Closed')), 'State', select=1),
'adj_total': fields.float('Total Adjudication'),
'date': fields.date('Date', readonly=True, select=1),
'user_id':fields.many2one('res.users', 'User', select=1)
}
def init(self, cr):
cr.execute("""
create or replace view report_auction_adjudication as (
select
l.id as id,
l.id as name,
sum(m.obj_price) as adj_total,
to_char(l.create_date, 'YYYY-MM-01') as date,
l.create_uid as user_id,
l.state
from
auction_dates l ,auction_lots m
where
m.auction_id=l.id
group by
l.id,l.state,l.name,l.create_uid,to_char(l.create_date, 'YYYY-MM-01')
)
""")
report_auction_adjudication()
class report_deposit_border(osv.osv):
_name="report.deposit.border"
_description = "Report deposit border"
_auto = False
_rec_name='bord'
_columns = {
'bord': fields.char('Depositer Inventory', size=64, required=True),
'seller': fields.many2one('res.partner', 'Seller', select=1),
'moy_est' : fields.float('Avg. Est', select=1, readonly=True),
'total_marge': fields.float('Total margin', readonly=True),
'nb_obj':fields.float('# of objects', readonly=True),
}
def init(self, cr):
cr.execute("""CREATE OR REPLACE VIEW report_deposit_border AS
SELECT
min(al.id) as id,
ab.partner_id as seller,
ab.name as bord,
COUNT(al.id) as nb_obj,
SUM((al.lot_est1 + al.lot_est2)/2) as moy_est,
SUM(al.net_revenue)/(count(ad.id)) as total_marge
FROM
auction_lots al,auction_deposit ab,auction_dates ad
WHERE
ad.id=al.auction_id
and al.bord_vnd_id=ab.id
GROUP BY
ab.name,ab.partner_id""")
report_deposit_border()
class report_object_encoded(osv.osv):
_name = "report.object.encoded"
_description = "Object encoded"
_auto = False
_columns = {
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('paid', 'Paid'), ('invoiced', 'Invoiced')), 'State', required=True, select=1),
'user_id':fields.many2one('res.users', 'User', select=1),
'estimation': fields.float('Estimation', select=2),
'date': fields.date('Create Date', required=True),
# 'gross_revenue':fields.float('Gross revenue',readonly=True, select=2),
# 'net_revenue':fields.float('Net revenue',readonly=True, select=2),
# 'obj_margin':fields.float('Net margin', readonly=True, select=2),
'obj_ret':fields.integer('# obj ret', readonly=True, select=2),
# 'adj':fields.integer('Adj.', readonly=True, select=2),
'obj_num':fields.integer('# of Encoded obj.', readonly=True, select=2),
}
def init(self, cr):
cr.execute('''create or replace view report_object_encoded as
(select min(al.id) as id,
to_char(al.create_date, 'YYYY-MM-DD') as date,
al.state as state,
al.create_uid as user_id,
(SELECT count(1) FROM auction_lots WHERE obj_ret>0) as obj_ret,
sum((100* al.lot_est1)/al.obj_price) as estimation,
COUNT(al.product_id) as obj_num
from auction_lots al
where al.obj_price>0 and state='draft'
group by to_char(al.create_date, 'YYYY-MM-DD'), al.state, al.create_uid)
''')
report_object_encoded()
class report_object_encoded_manager(osv.osv):
_name = "report.object.encoded.manager"
_description = "Object encoded"
_auto = False
_columns = {
'user_id':fields.many2one('res.users', 'User', select=True),
'estimation': fields.float('Estimation', select=True),
'date': fields.date('Create Date', required=True),
'gross_revenue':fields.float('Gross revenue', readonly=True, select=True),
'net_revenue':fields.float('Net revenue', readonly=True, select=True),
'obj_margin':fields.float('Net margin', readonly=True, select=True),
'obj_ret':fields.integer('# obj ret', readonly=True, select=True),
'adj':fields.integer('Adj.', readonly=True, select=True),
'obj_num':fields.integer('# of Encoded obj.', readonly=True, select=True),
}
def init(self, cr):
cr.execute('''create or replace view report_object_encoded_manager as
(select
min(al.id) as id,
to_char(al.create_date, 'YYYY-MM-DD') as date,
al.create_uid as user_id,
sum((100*lot_est1)/obj_price) as estimation,
(SELECT count(1) FROM auction_lots WHERE obj_ret>0) as obj_ret,
SUM(al.gross_revenue) as "gross_revenue",
SUM(al.net_revenue) as "net_revenue",
SUM(al.net_revenue)/count(al.id) as "obj_margin",
COUNT(al.product_id) as obj_num,
SUM(al.obj_price) as "adj"
from auction_lots al
where al.obj_price>0
group by to_char(al.create_date, 'YYYY-MM-DD'), al.create_uid)
''')
report_object_encoded_manager()
class report_unclassified_objects(osv.osv):
_name = "report.unclassified.objects"
_description = "Unclassified objects "
_auto = False
_columns = {
'name': fields.char('Short Description', size=64, required=True),
'obj_num': fields.integer('Catalog Number'),
'obj_price': fields.float('Adjudication price'),
'lot_num': fields.integer('List Number', required=True, select=1),
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('paid', 'Paid'), ('sold', 'Sold')), 'State', required=True, readonly=True),
'obj_comm': fields.boolean('Commission'),
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True),
'ach_login': fields.char('Buyer Username', size=64),
'lot_est1': fields.float('Minimum Estimation'),
'lot_est2': fields.float('Maximum Estimation'),
'lot_type': fields.selection(_type_get, 'Object category', size=64),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
}
def init(self, cr):
cr.execute("""create or replace view report_unclassified_objects as
(select
min(al.id) as id,
al.name as name,
al.obj_price as obj_price,
al.obj_num as obj_num,
al.lot_num as lot_num,
al.state as state,
al.obj_comm as obj_comm,
al.bord_vnd_id as bord_vnd_id,
al.ach_login as ach_login,
al.lot_est1 as lot_est1,
al.lot_est2 as lot_est2,
al.lot_type as lot_type,
al.auction_id as auction
from auction_lots al,auction_lot_category ac
where (al.lot_type=ac.name) AND (ac.aie_categ='41') AND (al.auction_id is null)
group by al.obj_price,al.obj_num, al.lot_num, al.state, al.obj_comm,al.bord_vnd_id,al.ach_login,al.lot_est1,al.lot_est2,al.lot_type,al.auction_id,al.name)
""")
report_unclassified_objects()

View File

@ -0,0 +1,414 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_report_auction_sign_in_out_tree1">
<field name="name">report attendance</field>
<field name="model">report.attendance</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="User's pointing">
<field name="employee_id" select="1"/>
<field name="name" select="1"/>
<field name="total_attendance" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_sign_in_out_graph1">
<field name="name">Graph attendance</field>
<field name="model">report.attendance</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="User's pointing" orientation="vertical" type="bar">
<field name="employee_id" select="1"/>
<field name="total_attendance" operator="+"/>
<field name="name" select="1"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_sign_in_out_member_tree1">
<field name="res_model">report.attendance</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain"> [('name','=',time.strftime('%Y-%m-%d')),('employee_id','=',uid)]</field>
<!--<field name="domain"> [('name','ilike',time.strftime('%Y-%m'))]</field>-->
</record>
<menuitem name="Employees" id="auction_report_employees_menu" parent="auction_report_menu"/>
<menuitem name="Manager" id="auction_report_manager_menu" parent="auction_report_menu"/>
<menuitem name="Attendance" action="action_report_auction_sign_in_out_member_tree1" id="menu_report_auction_sign_in_out_member_tree1" parent="auction_report_employees_menu"/>
<record model="ir.actions.act_window" id="action_report_auction_sign_in_out_manager_tree1">
<field name="res_model">report.attendance</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="domain"> [('name','=',time.strftime('%Y-%m-%d'))]</field>
</record>
==============================
My Latest Objects
==============================
<record model="ir.actions.act_window" id="action_report_latest_objects_tree">
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('create_uid','=',uid)]</field>
</record>
<record model="ir.actions.act_window" id="action_report_latest_objects_manager_tree">
<field name="res_model">auction.lots</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="limit" eval="80"/>
</record>
=============================
My Latest Deposit
==============================
<record model="ir.actions.act_window" id="action_report_latest_doposit_manager_tree">
<field name="res_model">auction.deposit</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem name="Latest Deposits" action="action_report_latest_doposit_manager_tree" id="menu_report_latest_doposit_tree_manager" parent="auction_report_manager_menu"/>
<menuitem name="Attendance" action="action_report_auction_sign_in_out_manager_tree1" id="menu_report_auction_sign_in_out_manager_tree1" parent="auction_report_manager_menu"/>
<record model="ir.ui.view" id="view_report_object_encoded_graph">
<field name="name">report.object.encoded.graph</field>
<field name="model">report.object.encoded</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Objects statistics" type="bar">
<field name="user_id" select="1"/>
<field name="estimation" operator="+" />
<field name="obj_ret" operator="+" />
<field name="obj_num" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_object_encoded_member_tree">
<field name="res_model">report.object.encoded</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain"> [('user_id','=',uid),('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
=============================
Objects per Day
==============================
<record model="ir.ui.view" id="view_report_auction_object_date_tree">
<field name="name">Objects by date</field>
<field name="model">report.auction.object.date</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects per Day">
<field name="month" select="1" />
<field name="user_id" select="1"/>
<field name="obj_num"/>
<field name="name" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_object_date_form">
<field name="name">Object date</field>
<field name="model">report.auction.object.date</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Objects per Day">
<field name="user_id" />
<field name="name" select="1"/>
<field name="obj_num" />
<field name="month" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_object_date_graph">
<field name="name">report.auction.object.date.graph</field>
<field name="model">report.auction.object.date</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Objects per day" type="bar">
<field name="name" select="1"/>
<field name="obj_num" operator="+"/>
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_object_date_tree">
<field name="res_model">report.auction.object.date</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('month','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem
name="Encoded Objects Per Day"
action="action_report_auction_object_date_tree"
id="menu_report_auction_object_date_tree"
parent="auction_report_manager_menu"/>
=============================
estimation.adj.category
==============================
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_form">
<field name="name">report.auction.estimation.adj.category.form</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Min est/Adj/Max est">
<!--field name="date" select="1"/-->
<field name="lot_type" select="1"/>
<field name="user_id" select="1"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="adj_total"/>
<field name="date" select="1"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_tree">
<field name="name">report.auction.estimation.adj.category.tree</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Min est/Adj/Max est">
<!--field name="date" select="1"/-->
<field name="user_id" select="1"/>
<field name="lot_type" select="1"/>
<field name="lot_est1" select="1"/>
<field name="lot_est2" select="1"/>
<field name="adj_total" select="1"/>
<field name="date" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_estimation_adj_category_graph">
<field name="name">report.auction.estimation.adj.category.graph</field>
<field name="model">report.auction.estimation.adj.category</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Min est/Adj/Max est" orientation="vertical" type="bar">
<!--field name="date" operator="+"/-->
<field name="lot_type" select="1"/>
<field name="lot_est1" operator="+"/>
<field name="adj_total" operator="+"/>
<field name="lot_est2" operator="+"/>
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_estimation_adj_category_manager_tree">
<field name="name">Min est/Adj/Max est</field>
<field name="res_model">report.auction.estimation.adj.category</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('date','like',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_estimation_adj_category_member_tree">
<field name="name">Min est/Adj/Max est</field>
<field name="res_model">report.auction.estimation.adj.category</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="domain">[('date','like',time.strftime('%Y-%m')),('user_id','=',uid)]</field>
</record>
<menuitem name="Employees" id="auction_report_employees_menu" parent="auction_report_menu"/>
<menuitem name="Comparison of estimations" action="action_report_auction_estimation_adj_category_member_tree" id="menu_report_auction_estimation_adj_category_member" parent="auction_report_employees_menu"/>
<menuitem name="Manager" id="auction_report_manager_menu" parent="auction_report_menu"/>
<menuitem name="Comparison of estimations" action="action_report_auction_estimation_adj_category_manager_tree" id="menu_report_auction_estimation_adj_category_manager" parent="auction_report_manager_menu"/>
=============================
Object encoded
==============================
<record model="ir.ui.view" id="view_report_object_encoded_form">
<field name="name">report.object.encoded.form</field>
<field name="model">report.object.encoded</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Objects statistics">
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation"/>
<field name="obj_ret"/>
<field name="obj_num" sum="# objects"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics">
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation"/>
<field name="obj_ret"/>
<field name="obj_num"/>
</tree>
</field>
</record>
<!-- <record model="ir.ui.view" id="view_report_object_encoded_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics" >
<field name="date" select="1"/>
<field name="state" select="1"/>
<field name="user_id" select="1"/>
<field name="estimation" />
<field name="obj_ret" />
<field name="obj_num" />
</tree>
</field>
</record>
-->
<record model="ir.ui.view" id="view_report_object_encoded_graph">
<field name="name">report.object.encoded.graph</field>
<field name="model">report.object.encoded</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Objects statistics" type="bar">
<field name="user_id" select="1"/>
<field name="estimation" operator="+" />
<field name="obj_ret" operator="+" />
<field name="obj_num" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_object_encoded_member_tree">
<field name="res_model">report.object.encoded</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain"> [('user_id','=',uid),('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_manager_tree">
<field name="name">report.object.encoded.tree</field>
<field name="model">report.object.encoded.manager</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Objects statistics">
<field name="user_id" select="1"/>
<field name="estimation" />
<field name="obj_ret" />
<field name="obj_num" sum="# objects" select="1"/>
<field name="adj" sum="Total adj."/>
<field name="obj_margin" />
<field name="net_revenue" sum="Total net rev."/>
<field name="gross_revenue" sum="Total gross rev."/>
<field name="date" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_object_encoded_manager_graph">
<field name="name">report.object.encoded.graph</field>
<field name="model">report.object.encoded.manager</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Object statistic" type="bar">
<field name="user_id" select="1"/>
<field name="obj_ret" operator="+" />
<field name="obj_num" operator="+" />
<field name="obj_margin" operator="+" />
<field name="net_revenue" operator="+" />
<field name="gross_revenue" operator="+" />
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_object_encoded_manager_tree">
<field name="res_model">report.object.encoded.manager</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>
</record>
<record model="ir.ui.view" id="view_report_unclassified_objects">
<field name="name">report.unclassified.objects</field>
<field name="model">report.unclassified.objects</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('draft','unsold');black:state in ('sold');gray:state in ('paid')" string="Unclassified objects">
<field name="obj_num" string="Ref" select="1"/>
<field name="name" select="1"/>
<field name="ach_login"/>
<field name="obj_price"/>
<field name="state" select="1"/>
<field name="obj_comm"/>
<field name="bord_vnd_id"/>
<field name="lot_num"/>
<field name="lot_est1"/>
<field name="lot_est2"/>
<field name="lot_type" select="1"/>
<field name="auction"/>
</tree>
</field>
</record>
<act_window name="Bordereau de dépôt"
domain="[('partner_id', '=', active_id)]"
res_model="auction.deposit"
src_model="res.partner"
id="act_auction_lot_open_deposit"/>
=============================
Auction adjudication
==============================
<record model="ir.ui.view" id="view_report_auction_adjudication_tree">
<field name="name">report.auction.adjudication.tree</field>
<field name="model">report.auction.adjudication</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('draft');black:state in ('close')" string="Total adjudication">
<field name="name" select="1"/>
<field name="adj_total" select="1"/>
<field name="state" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_report_auction_adjudication_graph">
<field name="name">report.auction.adjudication.graph</field>
<field name="model">report.auction.adjudication</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Total adjudication" type="bar">
<field name="name" select="1"/>
<field name="adj_total" select="1" />
<field name="user_id" group="True"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction_adjudication_tree">
<field name="res_model">report.auction.adjudication</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
</record>
<menuitem name="Adjudication by Auction" action="action_report_auction_adjudication_tree" id="menu_report_auction_adjudication_tree" parent="auction_report_manager_menu"/>
</data>
</openerp>

View File

@ -0,0 +1,107 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from mx import DateTime
from osv import fields, osv, orm
from tools import config
from tools.translate import _
import ir
import netsvc
import os
import time
import tools
class report_auction(osv.osv):
"""Auction Report"""
_name = "report.auction"
_description = "Auction's Summary"
_auto = False
_columns = {
'year': fields.char('Year', size=4, readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'buyer_login': fields.char('Buyer Login', size=64, readonly=True, select=1),
'buyer':fields.many2one('res.partner', 'Buyer', readonly=True, select=2),
'seller': fields.many2one('res.partner', 'Seller', readonly=True, select=1),
'object':fields.integer('No of objects', readonly=True, select=1),
'total_price':fields.float('Total Adj.', digits=(16, 2), readonly=True, select=2),
'avg_price':fields.float('Avg Adj.', digits=(16, 2), readonly=True, select=2),
'date': fields.date('Create Date', select=1),
'auction': fields.many2one('auction.dates', 'Auction date', readonly=True, select=1),
'gross_revenue':fields.float('Gross Revenue', readonly=True),
'net_revenue':fields.float('Net Revenue', readonly=True),
'net_margin':fields.float('Net Margin', readonly=True),
'avg_estimation':fields.float('Avg estimation', readonly=True),
'user_id':fields.many2one('res.users', 'User', select=1),
'nbuyer':fields.float('No of buyers', readonly=True),
'nseller':fields.float('No of sellers', readonly=True),
'min_est':fields.float('Minimum Estimation', readonly=True, select=2),
'max_est':fields.float('Maximum Estimation', readonly=True, select=2),
'state': fields.selection((('draft', 'Draft'), ('unsold', 'Unsold'), ('sold', 'Sold')), 'State', readonly=True, select=1),
}
def init(self, cr):
tools.drop_view_if_exists(cr, 'report_auction')
cr.execute('''
create or replace view report_auction as (
select
min(al.id) as id,
al.ach_login as "buyer_login",
ad.auction1 as date,
al.state,
al.create_uid as user_id,
to_char(ad.auction1, 'YYYY') as year,
to_char(ad.auction1, 'MM') as month,
to_char(ad.auction1, 'YYYY-MM-DD') as day,
al.ach_uid as "buyer",
ade.partner_id as seller,
count(al.ach_login) as "nbuyer",
count(al.bord_vnd_id) as "nseller",
sum(al.lot_est1) as "min_est",
sum(al.lot_est2) as "max_est",
ad.id as auction,
count(al.id) as "object",
sum(al.obj_price) as "total_price",
(sum(al.obj_price)/count(al.id)) as "avg_price",
sum(al.gross_revenue) as gross_revenue,
sum(al.net_revenue) as net_revenue,
avg(al.net_margin) as net_margin,
sum(al.lot_est1+al.lot_est2)/2 as avg_estimation
from
auction_lots al,
auction_dates ad,
auction_deposit ade
where
ad.id=al.auction_id and ade.id=al.bord_vnd_id
group by
ad.auction1,
al.ach_uid,
ad.id,
al.ach_login,
ade.partner_id,
al.state,
al.create_uid
)
''')
report_auction()

View File

@ -0,0 +1,119 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_report_auction_tree">
<field name="name">Auction's Summary</field>
<field name="model">report.auction</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Auction Summary tree view">
<field name="date" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="year" invisible="1"/>
<field name="day" invisible="1"/>
<field name="month" invisible="1"/>
<field name="auction" select="1" invisible="1"/>
<field name="buyer_login" select="1" invisible="1"/>
<field name="buyer" select="1" invisible="1"/>
<field name="seller" invisible="1"/>
<field name="object" select="1" invisible="1"/>
<field name="nbuyer" />
<field name="nseller" />
<field name="min_est" />
<field name="max_est" />
<field name="avg_price" select="1"/>
<field name="gross_revenue" />
<field name="net_revenue" />
<field name="net_margin" />
<field name="total_price" select="1"/>
</tree>
</field>
</record>
<record id="view_report_auction_search" model="ir.ui.view">
<field name="name">report.auction.search</field>
<field name="model">report.auction</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Auction Summary">
<group>
<filter icon="terp-go-year" string=" 365 Days "
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Auction in last 365 days"/>
<filter icon="terp-go-month" string=" 30 Days "
name="month"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Auction in last 30 days"/>
<filter icon="terp-go-week"
string=" 7 Days "
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Auction during last 7 days"/>
<separator orientation="vertical"/>
<filter icon="terp-document-new"
string="Draft"
domain="[('state','=','draft')]"/>
<filter icon="terp-dolar"
string="Sold"
domain="[('state','=', 'sold')]"/>
<separator orientation="vertical"/>
<field name="auction"/>
<field name="user_id" widget="selection">
<filter icon="terp-personal"
string="My Auction"
help="My Auction"
domain="[('user_id','=',uid)]"/>
</field>
<field name="object"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<filter string="User" icon="terp-personal" name="User" context="{'group_by':'user_id'}"/>
<filter string="Buyer" icon="terp-personal" name="buyer" context="{'group_by':'buyer'}"/>
<filter string="Seller" icon="terp-personal" name="seller" context="{'group_by':'seller'}"/>
<separator orientation="vertical"/>
<filter string="Auction" icon="terp-product" name="auction" context="{'group_by':'auction'}"/>
<separator orientation="vertical"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
</group>
</search>
</field>
</record>
<record id="view_report_auction_graph" model="ir.ui.view">
<field name="name">report.auction.graph</field>
<field name="model">report.auction</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Auction's Summary" type="bar">
<field name="auction"/>
<field name="total_price" operator="+"/>
<field name="avg_estimation" operator="+"/>
<field name="avg_price" operator="+"/>
<field name="gross_revenue" operator="+"/>
<field name="net_revenue" operator="+"/>
<field name="net_margin" operator="+"/>
</graph>
</field>
</record>
<record model="ir.actions.act_window" id="action_report_auction">
<field name="name">Auction Summary</field>
<field name="res_model">report.auction</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<!-- <field name="domain">[('date','ilike',time.strftime('%Y-%m'))]</field>-->
<field name="search_view_id" ref="view_report_auction_search"/>
<field name="context">{'search_default_month':1}</field>
</record>
<menuitem name="Auction" id="auction_report_auction_menu" parent="auction.auction_report_menu"/>
<menuitem name="Auction's Summary" action="action_report_auction" id="menu_report_auction" parent="auction_report_auction_menu"/>
<!--end : creating buyer Reporting menu for the buyer by pmo-->
</data>
</openerp>

View File

@ -8,17 +8,5 @@
"access_auction_bid","auction.bid","model_auction_bid","base.group_user",1,1,1,1
"access_auction_bid_line","auction.bid.line","model_auction_bid_line","base.group_user",1,1,1,1
"access_auction_lot_history","auction.lot.history","model_auction_lot_history","base.group_user",1,1,1,1
"access_report_buyer_auction","report.buyer.auction","model_report_buyer_auction","base.group_user",1,0,0,0
"access_report_buyer_auction2","report.buyer.auction2","model_report_buyer_auction2","base.group_user",1,0,0,0
"access_report_seller_auction","report.seller.auction","model_report_seller_auction","base.group_user",1,0,0,0
"access_report_seller_auction2","report.seller.auction2","model_report_seller_auction2","base.group_user",1,0,0,0
"access_report_auction_view","report.auction.view","model_report_auction_view","base.group_user",1,0,0,0
"access_report_auction_view2","report.auction.view2","model_report_auction_view2","base.group_user",1,0,0,0
"access_report_auction_object_date","report.auction.object.date","model_report_auction_object_date","base.group_user",1,0,0,0
"access_report_auction_estimation_adj_category","report.auction.estimation.adj.category","model_report_auction_estimation_adj_category","base.group_user",1,0,0,0
"access_report_auction_adjudication","report.auction.adjudication","model_report_auction_adjudication","base.group_user",1,0,0,0
"access_report_auction","report.auction","model_report_auction","base.group_user",1,0,0,0
"access_report_attendance","report.attendance","model_report_attendance","base.group_user",1,0,0,0
"access_report_deposit_border","report.deposit.border","model_report_deposit_border","base.group_user",1,0,0,0
"access_report_object_encoded","report.object.encoded","model_report_object_encoded","base.group_user",1,0,0,0
"access_report_object_encoded_manager","report.object.encoded.manager","model_report_object_encoded_manager","base.group_user",1,0,0,0
"access_report_unclassified_objects","report.unclassified.objects","model_report_unclassified_objects","base.group_user",1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_auction_bid auction.bid model_auction_bid base.group_user 1 1 1 1
9 access_auction_bid_line auction.bid.line model_auction_bid_line base.group_user 1 1 1 1
10 access_auction_lot_history auction.lot.history model_auction_lot_history base.group_user 1 1 1 1
11 access_report_buyer_auction access_report_auction report.buyer.auction report.auction model_report_buyer_auction model_report_auction base.group_user 1 0 0 0
access_report_buyer_auction2 report.buyer.auction2 model_report_buyer_auction2 base.group_user 1 0 0 0
access_report_seller_auction report.seller.auction model_report_seller_auction base.group_user 1 0 0 0
access_report_seller_auction2 report.seller.auction2 model_report_seller_auction2 base.group_user 1 0 0 0
access_report_auction_view report.auction.view model_report_auction_view base.group_user 1 0 0 0
access_report_auction_view2 report.auction.view2 model_report_auction_view2 base.group_user 1 0 0 0
access_report_auction_object_date report.auction.object.date model_report_auction_object_date base.group_user 1 0 0 0
access_report_auction_estimation_adj_category report.auction.estimation.adj.category model_report_auction_estimation_adj_category base.group_user 1 0 0 0
access_report_auction_adjudication report.auction.adjudication model_report_auction_adjudication base.group_user 1 0 0 0
12 access_report_attendance report.attendance model_report_attendance base.group_user 1 0 0 0
access_report_deposit_border report.deposit.border model_report_deposit_border base.group_user 1 0 0 0
access_report_object_encoded report.object.encoded model_report_object_encoded base.group_user 1 0 0 0
access_report_object_encoded_manager report.object.encoded.manager model_report_object_encoded_manager base.group_user 1 0 0 0
access_report_unclassified_objects report.unclassified.objects model_report_unclassified_objects base.group_user 1 0 0 0