diff --git a/addons/auction/__openerp__.py b/addons/auction/__openerp__.py
index 7d96fe90aa1..29541b8b3fb 100644
--- a/addons/auction/__openerp__.py
+++ b/addons/auction/__openerp__.py
@@ -43,10 +43,8 @@
'init_xml': ['auction_sequence.xml'],
'update_xml': [
'security/ir.model.access.csv',
-# 'wizard/auction_lots_cancel_view.xml',
-# 'wizard/auction_transfer_unsold_object_view.xml',
- 'wizard/auction_lots_able_view.xml',
- 'wizard/auction_lots_enable_view.xml',
+ # 'wizard/auction_lots_able_view.xml',
+ # 'wizard/auction_lots_enable_view.xml',
'wizard/auction_lots_make_invoice_buyer_view.xml',
'wizard/auction_lots_make_invoice_view.xml',
'wizard/auction_taken_view.xml',
@@ -55,11 +53,7 @@
'wizard/auction_payer_sel_view.xml',
'wizard/auction_lots_sms_send_view.xml',
'wizard/auction_catalog_flagey_view.xml',
-# 'wizard/auction_aie_send_view.xml',
-# 'wizard/auction_aie_send_result_view.xml',
'wizard/auction_lots_buyer_map_view.xml',
-# 'wizard/auction_lots_numerotate_view.xml',
-
'auction_view.xml',
'auction_report.xml',
'auction_wizard.xml',
diff --git a/addons/auction/auction.py b/addons/auction/auction.py
index e55d999a1d1..c5572da6284 100644
--- a/addons/auction/auction.py
+++ b/addons/auction/auction.py
@@ -18,13 +18,15 @@
# along with this program. If not, see .
#
##############################################################################
-
+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
@@ -32,10 +34,10 @@ from tools.translate import _
class auction_artists(osv.osv):
_name = "auction.artists"
_columns = {
- 'name': fields.char('Artist/Author Name', size=64, required=True),
- 'pseudo': fields.char('Pseudo', size=64),
- 'birth_death_dates':fields.char('Birth / Death dates', size=64),
- 'biography': fields.text('Biography'),
+ 'name': fields.char('Artist/Author Name', size=64, required=True),
+ 'pseudo': fields.char('Pseudo', size=64),
+ 'birth_death_dates':fields.char('Birth / Death dates', size=64),
+ 'biography': fields.text('Biography'),
}
auction_artists()
@@ -43,41 +45,44 @@ auction_artists()
# Auction Dates
#----------------------------------------------------------
class auction_dates(osv.osv):
+ """Auction Dates"""
_name = "auction.dates"
-
+ _description=__doc__
+
def _adjudication_get(self, cr, uid, ids, prop, unknow_none, unknow_dict):
- tmp={}
- for id in ids:
- tmp[id]=0.0
- cr.execute("select sum(obj_price) from auction_lots where auction_id=%s", (id,))
- sum = cr.fetchone()
- if sum:
- tmp[id]=sum[0]
- return tmp
+ res={}
+ total = 0.0
+ lots_obj = self.pool.get('auction.lots')
+ for auction in self.browse(cr, uid, ids):
+ lots_ids = lots_obj.search(cr, uid, [('auction_id', '=', auction.id)])
+ for lots in lots_obj.browse(cr, uid, lots_ids):
+ total+=lots.obj_price or 0.0
+ res[auction.id]=total
+ return res
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
reads = self.read(cr, uid, ids, ['name', 'auction1'], context)
- name = [(r['id'],'['+r['auction1']+'] '+ r['name']) for r in reads]
+ name = [(r['id'], '['+r['auction1']+'] '+ r['name']) for r in reads]
return name
_columns = {
- 'name': fields.char('Auction Name', size=64, required=True),
- 'expo1': fields.date('First Exposition Day', required=True),
- 'expo2': fields.date('Last Exposition Day', required=True),
- 'auction1': fields.date('First Auction Day', required=True),
- 'auction2': fields.date('Last Auction Day', required=True),
- 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True),
- 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True),
- 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs'),
- 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs'),
- 'acc_income': fields.many2one('account.account', 'Income Account', required=True),
- 'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
- 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication',store=True),
- 'state': fields.selection((('draft','Draft'),('closed','Closed')),'State',select=1, readonly=True,
- help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
- 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
+ 'name': fields.char('Auction Name', size=64, required=True),
+ 'expo1': fields.date('First Exposition Day', required=True),
+ 'expo2': fields.date('Last Exposition Day', required=True),
+ 'auction1': fields.date('First Auction Day', required=True),
+ 'auction2': fields.date('Last Auction Day', required=True),
+ 'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True),
+ 'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True),
+ 'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs'),
+ 'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs'),
+ 'acc_income': fields.many2one('account.account', 'Income Account', required=True),
+ 'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
+ 'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True),
+ 'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True,
+ help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
+ 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
}
_defaults = {
@@ -97,26 +102,15 @@ class auction_dates(osv.osv):
# objects vendus mais non factures
#TODO: convert this query to tiny API
lots_obj = self.pool.get('auction.lots')
- cr.execute('select count(*) as c from auction_lots where auction_id IN %s and state=%s and obj_price>0', (tuple(ids),'draft',))
- cr.execute('SELECT COUNT(*) AS c '
- 'FROM auction_lots '
- 'WHERE auction_id IN %s '
- 'AND state=%s AND obj_price>0', (tuple(ids), 'draft'))
- nbr = cr.fetchone()[0]
- ach_uids = {}
- cr.execute('SELECT id FROM auction_lots '
- 'WHERE auction_id IN %s '
- 'AND state=%s AND obj_price>0', (tuple(ids), 'draft'))
- r = lots_obj.lots_invoice(cr, uid, [x[0] for x in cr.fetchall()],{},None)
- cr.execute('select id from auction_lots where auction_id IN %s and obj_price>0',(tuple(ids),))
- ids2 = [x[0] for x in cr.fetchall()]
- # for auction in auction_ids:
- c = lots_obj.seller_trans_create(cr, uid, ids2, {})
- self.write(cr, uid, ids, {'state':'closed'}) #close the auction
+ 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)
+ lots_ids2 = lots_obj.search(cr, uid, [('auction_id', 'in', ids), ('obj_price', '>', 0)])
+ new_seller_invoice = lots_obj.seller_trans_create(cr, uid, lots_ids2, {})
+ self.write(cr, uid, ids, {'state': 'closed'}) #close the auction
return True
+
auction_dates()
-
#----------------------------------------------------------
# Deposits
#----------------------------------------------------------
@@ -135,28 +129,30 @@ class auction_deposit(osv.osv):
_description="Deposit Border"
_order = "id desc"
_columns = {
- 'transfer' : fields.boolean('Transfer'),
- 'name': fields.char('Depositer Inventory', size=64, required=True),
- 'partner_id': fields.many2one('res.partner', 'Seller', required=True, change_default=True),
- 'date_dep': fields.date('Deposit date', required=True),
- 'method': fields.selection((('keep','Keep until sold'),('decease','Decrease limit of 10%'),('contact','Contact the Seller')), 'Withdrawned method', required=True),
- 'tax_id': fields.many2one('account.tax', 'Expenses'),
- 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
- 'info': fields.char('Description', size=64),
- 'lot_id': fields.one2many('auction.lots', 'bord_vnd_id', 'Objects'),
- 'specific_cost_ids': fields.one2many('auction.deposit.cost', 'deposit_id', 'Specific Costs'),
- 'total_neg': fields.boolean('Allow Negative Amount'),
+ 'transfer' : fields.boolean('Transfer'),
+ 'name': fields.char('Depositer Inventory', size=64, required=True),
+ 'partner_id': fields.many2one('res.partner', 'Seller', required=True, change_default=True),
+ 'date_dep': fields.date('Deposit date', required=True),
+ 'method': fields.selection((('keep', 'Keep until sold'), ('decease', 'Decrease limit of 10%'), ('contact', 'Contact the Seller')), 'Withdrawned method', required=True),
+ 'tax_id': fields.many2one('account.tax', 'Expenses'),
+ 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
+ 'info': fields.char('Description', size=64),
+ 'lot_id': fields.one2many('auction.lots', 'bord_vnd_id', 'Objects'),
+ 'specific_cost_ids': fields.one2many('auction.deposit.cost', 'deposit_id', 'Specific Costs'),
+ 'total_neg': fields.boolean('Allow Negative Amount'),
}
_defaults = {
# 'date_dep': lambda *a: time.strftime('%Y-%m-%d'),
- 'method': lambda *a: 'keep',
- 'total_neg': lambda *a: False,
- 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.deposit'),
+ 'method': lambda *a: 'keep',
+ '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 {}
+
auction_deposit()
#----------------------------------------------------------
@@ -165,10 +161,10 @@ auction_deposit()
class auction_deposit_cost(osv.osv):
_name = 'auction.deposit.cost'
_columns = {
- 'name': fields.char('Cost Name', required=True, size=64),
- 'amount': fields.float('Amount'),
- 'account': fields.many2one('account.account', 'Destination Account', required=True),
- 'deposit_id': fields.many2one('auction.deposit', 'Deposit'),
+ 'name': fields.char('Cost Name', required=True, size=64),
+ 'amount': fields.float('Amount'),
+ 'account': fields.many2one('account.account', 'Destination Account', required=True),
+ 'deposit_id': fields.many2one('auction.deposit', 'Deposit'),
}
auction_deposit_cost()
@@ -178,60 +174,62 @@ auction_deposit_cost()
class auction_lot_category(osv.osv):
_name = 'auction.lot.category'
_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'),
+ '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'),
}
_defaults = {
- 'active' : lambda *a: 1,
- 'aie_categ' : lambda *a:1,
+ 'active' : lambda *a: 1,
+ 'aie_categ' : lambda *a:1,
}
auction_lot_category()
-def _type_get(self, cr, uid,ids):
+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()
@@ -240,10 +238,10 @@ def _type_get(self, cr, uid,ids):
#----------------------------------------------------------
def _inv_constraint(cr, ids):
cr.execute('SELECT id, bord_vnd_id, lot_num FROM auction_lots '
- 'WHERE id IN %s',
+ 'WHERE id IN %s',
(tuple(ids),))
for datas in cr.fetchall():
- cr.execute('select count(*) from auction_lots where bord_vnd_id=%s and lot_num=%s', (datas[1],datas[2]))
+ cr.execute('select count(*) from auction_lots where bord_vnd_id=%s and lot_num=%s', (datas[1], datas[2]))
if cr.fetchone()[0]>1:
return False
return True
@@ -253,23 +251,23 @@ class auction_lots(osv.osv):
_order = "obj_num,lot_num,id"
_description="Object"
- def button_not_bought(self,cr,uid,ids,*a):
- return self.write(cr,uid,ids, {'state':'unsold'})
- def button_taken_away(self,cr,uid,ids,*a):
- return self.write(cr,uid,ids, {'state':'taken_away'})
+ def button_not_bought(self, cr, uid, ids, *a):
+ return self.write(cr, uid, ids, {'state':'unsold'})
+ def button_taken_away(self, cr, uid, ids, *a):
+ return self.write(cr, uid, ids, {'state':'taken_away'})
- def button_unpaid(self,cr,uid,ids,*a):
- return self.write(cr,uid,ids, {'state':'draft'})
+ def button_unpaid(self, cr, uid, ids, *a):
+ return self.write(cr, uid, ids, {'state':'draft'})
- def button_draft(self,cr,uid,ids,*a):
- return self.write(cr,uid,ids, {'state':'draft'})
+ def button_draft(self, cr, uid, ids, *a):
+ return self.write(cr, uid, ids, {'state':'draft'})
- def button_bought(self,cr,uid,ids,*a):
- return self.write(cr,uid,ids, {'state':'sold'})
+ def button_bought(self, cr, uid, ids, *a):
+ return self.write(cr, uid, ids, {'state':'sold'})
def _buyerprice(self, cr, uid, ids, name, args, context):
res={}
- lots=self.pool.get('auction.lots').browse(cr,uid,ids)
+ lots=self.pool.get('auction.lots').browse(cr, uid, ids)
pt_tax=self.pool.get('account.tax')
for lot in lots:
amount_total=0.0
@@ -282,7 +280,7 @@ class auction_lots(osv.osv):
taxes.append(lot.author_right)
if lot.auction_id:
taxes += lot.auction_id.buyer_costs
- tax=pt_tax.compute(cr,uid,taxes,montant,1)
+ tax=pt_tax.compute_all(cr, uid, taxes, montant, 1)['taxes']
for t in tax:
amount_total+=t['amount']
amount_total += montant
@@ -290,9 +288,9 @@ class auction_lots(osv.osv):
return res
- def _sellerprice(self, cr, uid, ids,*a):
+ def _sellerprice(self, cr, uid, ids, *a):
res={}
- lots=self.pool.get('auction.lots').browse(cr,uid,ids)
+ lots=self.pool.get('auction.lots').browse(cr, uid, ids)
pt_tax=self.pool.get('account.tax')
for lot in lots:
amount_total=0.0
@@ -305,7 +303,7 @@ class auction_lots(osv.osv):
taxes.append(lot.bord_vnd_id.tax_id)
elif lot.auction_id and lot.auction_id.seller_costs:
taxes += lot.auction_id.seller_costs
- tax=pt_tax.compute(cr,uid,taxes,montant,1)
+ tax=pt_tax.compute_all(cr, uid, taxes, montant, 1)['taxes']
for t in tax:
amount_total+=t['amount']
res[lot.id] = montant+amount_total
@@ -314,7 +312,7 @@ class auction_lots(osv.osv):
def _grossprice(self, cr, uid, ids, name, args, context):
"""gross revenue"""
res={}
- auction_lots_obj = self.read(cr,uid,ids,['seller_price','buyer_price','auction_id'])
+ auction_lots_obj = self.read(cr, uid, ids, ['seller_price', 'buyer_price', 'auction_id'])
for auction_data in auction_lots_obj:
total_tax = 0.0
if auction_data['auction_id']:
@@ -338,7 +336,7 @@ class auction_lots(osv.osv):
total=(lot.gross_revenue*100.0) /lot.obj_price
else:
total = 0.0
- res[lot.id]=round(total,2)
+ res[lot.id]=round(total, 2)
return res
def onchange_obj_ret(self, cr, uid, ids, obj_ret, *args):
@@ -346,14 +344,14 @@ class auction_lots(osv.osv):
return {'value': {'obj_price': 0}}
return {}
- def _costs(self,cr,uid,ids,context,*a):
+ def _costs(self, cr, uid, ids, context, *a):
"""
costs: Total credit of analytic account
/ # objects sold during this auction
(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):
som=0.0
if not lot.auction_id:
res[lot.id] = 0.0
@@ -362,12 +360,12 @@ class auction_lots(osv.osv):
cr.execute('select count(*) from auction_lots where auction_id=%s', (auct_id,))
nb = cr.fetchone()[0]
account_analytic_line_obj = self.pool.get('account.analytic.line')
- line_ids = account_analytic_line_obj.search(cr, uid, [('account_id', '=', lot.auction_id.account_analytic_id.id),('journal_id', '<>', lot.auction_id.journal_id.id),('journal_id', '<>', lot.auction_id.journal_seller_id.id)])
+ line_ids = account_analytic_line_obj.search(cr, uid, [('account_id', '=', lot.auction_id.account_analytic_id.id), ('journal_id', '<>', lot.auction_id.journal_id.id), ('journal_id', '<>', lot.auction_id.journal_seller_id.id)])
#indir_cost=lot.bord_vnd_id.specific_cost_ids
#for r in lot.bord_vnd_id.specific_cost_ids:
# som+=r.amount
- for line in account_analytic_line_obj.browse(cr,uid,line_ids):
+ for line in account_analytic_line_obj.browse(cr, uid, line_ids):
if line.amount:
som-=line.amount
res[lot.id]=som/nb
@@ -376,7 +374,7 @@ class auction_lots(osv.osv):
def _netprice(self, cr, uid, ids, name, args, context):
"""This is the net revenue"""
res={}
- auction_lots_obj = self.read(cr,uid,ids,['seller_price','buyer_price','auction_id','costs'])
+ 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
if auction_data['auction_id']:
@@ -389,7 +387,7 @@ class auction_lots(osv.osv):
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'])
+ 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']
@@ -401,93 +399,104 @@ class auction_lots(osv.osv):
res[auction_data['id']] = total_tax
return res
- def _is_paid_vnd(self,cr,uid,ids,*a):
+ def _is_paid_vnd(self, cr, uid, ids, *a):
res = {}
- lots=self.browse(cr,uid,ids)
+ lots=self.browse(cr, uid, ids)
for lot in lots:
res[lot.id] = False
if lot.sel_inv_id:
if lot.sel_inv_id.state == 'paid':
res[lot.id] = True
return res
- def _is_paid_ach(self,cr,uid,ids,*a):
+
+ def _is_paid_ach(self, cr, uid, ids, *a):
res = {}
- lots=self.browse(cr,uid,ids)
+ lots=self.browse(cr, uid, ids)
for lot in lots:
res[lot.id] = False
if lot.ach_inv_id:
if lot.ach_inv_id.state == 'paid':
res[lot.id] = True
return res
+
_columns = {
- 'bid_lines':fields.one2many('auction.bid_line','lot_id', 'Bids'),
- 'auction_id': fields.many2one('auction.dates', 'Auction Date', select=1),
- 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True),
- 'name': fields.char('Short Description',size=64, required=True),
- 'name2': fields.char('Short Description (2)',size=64),
- 'lot_type': fields.selection(_type_get, 'Object category', size=64),
- 'author_right': fields.many2one('account.tax', 'Author rights'),
- 'lot_est1': fields.float('Minimum Estimation'),
- 'lot_est2': fields.float('Maximum Estimation'),
- 'lot_num': fields.integer('List Number', required=True, select=1 ),
- 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
- 'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
- 'lot_local':fields.char('Location',size=64),
- 'artist_id':fields.many2one('auction.artists', 'Artist/Author'),
- 'artist2_id':fields.many2one('auction.artists', 'Artist/Author 2'),
- 'important':fields.boolean('To be Emphatized'),
- 'product_id':fields.many2one('product.product', 'Product', required=True),
- 'obj_desc': fields.text('Object Description'),
- 'obj_num': fields.integer('Catalog Number'),
- 'obj_ret': fields.float('Price retired'),
- 'obj_comm': fields.boolean('Commission'),
- 'obj_price': fields.float('Adjudication price'),
- 'ach_avance': fields.float('Buyer Advance'),
- 'ach_login': fields.char('Buyer Username',size=64),
- 'ach_uid': fields.many2one('res.partner', 'Buyer'),
- 'ach_emp': fields.boolean('Taken Away'),
- 'is_ok': fields.boolean('Buyer\'s payment'),
- 'ach_inv_id': fields.many2one('account.invoice','Buyer Invoice', readonly=True, states={'draft':[('readonly',False)]}),
- 'sel_inv_id': fields.many2one('account.invoice','Seller Invoice', readonly=True, states={'draft':[('readonly',False)]}),
- 'vnd_lim': fields.float('Seller limit'),
- 'vnd_lim_net': fields.boolean('Net limit ?',readonly=True),
- 'image': fields.binary('Image'),
+ 'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'),
+ 'auction_id': fields.many2one('auction.dates', 'Auction Date', select=1),
+ 'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True),
+ 'name': fields.char('Short Description', size=64, required=True),
+ 'name2': fields.char('Short Description (2)', size=64),
+ 'lot_type': fields.selection(_type_get, 'Object category', size=64),
+ 'author_right': fields.many2one('account.tax', 'Author rights'),
+ 'lot_est1': fields.float('Minimum Estimation'),
+ 'lot_est2': fields.float('Maximum Estimation'),
+ 'lot_num': fields.integer('List Number', required=True, select=1),
+ 'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
+ 'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
+ 'lot_local':fields.char('Location', size=64),
+ 'artist_id':fields.many2one('auction.artists', 'Artist/Author'),
+ 'artist2_id':fields.many2one('auction.artists', 'Artist/Author 2'),
+ 'important':fields.boolean('To be Emphatized'),
+ 'product_id':fields.many2one('product.product', 'Product', required=True),
+ 'obj_desc': fields.text('Object Description'),
+ 'obj_num': fields.integer('Catalog Number'),
+ 'obj_ret': fields.float('Price retired'),
+ 'obj_comm': fields.boolean('Commission'),
+ 'obj_price': fields.float('Adjudication price'),
+ 'ach_avance': fields.float('Buyer Advance'),
+ 'ach_login': fields.char('Buyer Username', size=64),
+ 'ach_uid': fields.many2one('res.partner', 'Buyer'),
+ 'ach_emp': fields.boolean('Taken Away', readonly=True),
+ 'is_ok': fields.boolean('Buyer\'s payment'),
+ 'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}),
+ 'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}),
+ 'vnd_lim': fields.float('Seller limit'),
+ 'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
+ 'image': fields.binary('Image'),
# 'paid_vnd':fields.function(_is_paid_vnd,string='Seller Paid',method=True,type='boolean',store=True),
- 'paid_vnd':fields.boolean('Seller Paid'),
- 'paid_ach':fields.function(_is_paid_ach,string='Buyer invoice reconciled',method=True, type='boolean',store=True),
+ 'paid_vnd':fields.boolean('Seller Paid'),
+ 'paid_ach':fields.function(_is_paid_ach, string='Buyer invoice reconciled', method=True, type='boolean', store=True),
'state': fields.selection((
- ('draft','Draft'),
- ('unsold','Unsold'),
- ('paid','Paid'),
- ('sold','Sold'),
- ('taken_away','Taken away')),'State', required=True, readonly=True,
+ ('draft', 'Draft'),
+ ('unsold', 'Unsold'),
+ ('paid', 'Paid'),
+ ('sold', 'Sold'),
+ ('taken_away', 'Taken away')), 'State', required=True, readonly=True,
help=' * The \'Draft\' state is used when a object is encoding as a new object. \
\n* The \'Unsold\' state is used when object does not sold for long time, user can also set it as draft state after unsold. \
\n* The \'Paid\' state is used when user pay for the object \
- \n* The \'Sold\' state is used when user buy the object.'),
- 'buyer_price': fields.function(_buyerprice, method=True, string='Buyer price',store=True),
- 'seller_price': fields.function(_sellerprice, method=True, string='Seller price',store=True),
- 'gross_revenue':fields.function(_grossprice, method=True, string='Gross revenue',store=True),
- 'gross_margin':fields.function(_grossmargin, method=True, string='Gross Margin (%)',store=True),
- 'costs':fields.function(_costs,method=True,string='Indirect costs',store=True),
- 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel','auction_id', 'statement','Payment'),
- 'net_revenue':fields.function(_netprice, method=True, string='Net revenue',store=True),
- 'net_margin':fields.function(_netmargin, method=True, string='Net Margin (%)',store=True),
+ \n* The \'Sold\' state is used when user buy the object.'),
+ 'buyer_price': fields.function(_buyerprice, method=True, string='Buyer price', store=True),
+ 'seller_price': fields.function(_sellerprice, method=True, string='Seller price', store=True),
+ 'gross_revenue':fields.function(_grossprice, method=True, string='Gross revenue', store=True),
+ 'gross_margin':fields.function(_grossmargin, method=True, string='Gross Margin (%)', store=True),
+ 'costs':fields.function(_costs, method=True, string='Indirect costs', store=True),
+ 'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment'),
+ 'net_revenue':fields.function(_netprice, method=True, string='Net revenue', store=True),
+ 'net_margin':fields.function(_netmargin, method=True, string='Net Margin (%)', store=True),
}
_defaults = {
- 'state':lambda *a: 'draft',
- 'lot_num':lambda *a:1,
- 'is_ok': lambda *a: False
+ 'state':lambda *a: 'draft',
+ 'lot_num':lambda *a:1,
+ 'is_ok': lambda *a: False,
}
_constraints = [
# (_inv_constraint, 'Twice the same inventory number !', ['lot_num','bord_vnd_id'])
]
+ def auction_lots_enable(self, cr, uid, ids, context=None):
+ if not context:
+ context={}
+ return self.write(cr, uid, ids, {'ach_emp': False})
+
+ def auction_lots_able(self, cr, uid, ids, context=None):
+ if not context:
+ context={}
+ return self.write(cr, uid, ids, {'ach_emp': True})
def name_get(self, cr, user, ids, context={}):
if not len(ids):
return []
- result = [ (r['id'], str(r['obj_num'])+' - '+r['name']) for r in self.read(cr, user, ids, ['name','obj_num'])]
+ 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={}):
@@ -495,9 +504,9 @@ class auction_lots(osv.osv):
args = []
ids = []
if name:
- ids = self.search(cr, user, [('obj_num','=',int(name))] + args)
+ ids = self.search(cr, user, [('obj_num', '=', int(name))] + args)
if not ids:
- ids = self.search(cr, user, [('name',operator,name)] + args)
+ ids = self.search(cr, user, [('name', operator, name)] + args)
return self.name_get(cr, user, ids)
def _sum_taxes_by_type_and_id(self, taxes):
@@ -528,7 +537,7 @@ class auction_lots(osv.osv):
taxes.append(lot.author_right)
elif lot.auction_id:
taxes += lot.auction_id.buyer_costs
- tax=pt_tax.compute(cr,uid,taxes,lot.obj_price,1)
+ tax=pt_tax.compute_all(cr, uid, taxes, lot.obj_price, 1)['taxes']
for t in tax:
amount+=t['amount']
#amount+=lot.obj_price*0.2
@@ -560,7 +569,8 @@ class auction_lots(osv.osv):
tax_cost_ids.append(border_id.tax_id)
elif lot.auction_id and lot.auction_id.seller_costs:
tax_cost_ids += lot.auction_id.seller_costs
- tax_costs = self.pool.get('account.tax').compute(cr, uid, tax_cost_ids, lot.obj_price, 1)
+
+ tax_costs = self.pool.get('account.tax').compute_all(cr, uid, tax_cost_ids, lot.obj_price, 1)['taxes']
# delete useless keys from the costs computed by the tax object... this is useless but cleaner...
for cost in tax_costs:
del cost['account_paid_id']
@@ -575,13 +585,14 @@ class auction_lots(osv.osv):
#FIXME: la string 'remise lot' devrait passer par le systeme de traductions
obj_price_wh_costs = reduce(lambda x, y: x + y['amount'], tax_costs, lot.obj_price)
if obj_price_wh_costs < lot.vnd_lim:
- costs.append({ 'type': 1,
- 'id': lot.obj_num,
- 'name': 'Remise lot '+ str(lot.obj_num),
+ costs.append({ 'type': 1,
+ 'id': lot.obj_num,
+ 'name': 'Remise lot '+ str(lot.obj_num),
'amount': lot.vnd_lim - obj_price_wh_costs}
#'account_id': lot.auction_id.acc_refund.id
)
return costs
+
def compute_seller_costs(self, cr, uid, ids, manual_only=False):
lots = self.browse(cr, uid, ids)
costs = []
@@ -641,14 +652,14 @@ 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):
invoices = {}
inv_ref = self.pool.get('account.invoice')
partner_r = 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')]])
- for lot in self.browse(cr,uid,ids,context):
+ for lot in self.browse(cr, uid, ids, context):
if not lot.obj_price>0:
continue
if not lot.ach_uid.id:
@@ -662,17 +673,17 @@ class auction_lots(osv.osv):
if not invoice_addr_id:
raise orm.except_orm(_('No Invoice Address'), _('The Buyer "%s" has no Invoice Address.') % (contact_addr_id,))
inv = {
- 'name': 'Auction proforma:' +lot.name,
- 'journal_id': lot.auction_id.journal_id.id,
- 'partner_id': partner_ref,
- 'type': 'out_invoice',
+ 'name': 'Auction proforma:' +lot.name,
+ 'journal_id': lot.auction_id.journal_id.id,
+ 'partner_id': partner_ref,
+ 'type': 'out_invoice',
# 'state':'proforma',
}
- inv.update(inv_ref.onchange_partner_id(cr,uid, [], 'out_invoice', partner_ref)['value'])
+ inv.update(inv_ref.onchange_partner_id(cr, uid, [], 'out_invoice', partner_ref)['value'])
inv['account_id'] = inv['account_id'] and inv['account_id'][0]
inv_id = inv_ref.create(cr, uid, inv, context)
invoices[partner_ref] = inv_id
- self.write(cr,uid,[lot.id],{'ach_inv_id':inv_id,'state':'sold'})
+ self.write(cr, uid, [lot.id], {'ach_inv_id':inv_id, 'state':'sold'})
#calcul des taxes
taxes = map(lambda x: x.id, lot.product_id.taxes_id)
@@ -681,16 +692,16 @@ class auction_lots(osv.osv):
taxes.append(lot.author_right.id)
inv_line= {
- 'invoice_id': inv_id,
- 'quantity': 1,
- 'product_id': lot.product_id.id,
- 'name': 'proforma'+'['+str(lot.obj_num)+'] '+ lot.name,
- 'invoice_line_tax_id': [(6,0,taxes)],
- 'account_analytic_id': lot.auction_id.account_analytic_id.id,
- 'account_id': lot.auction_id.acc_income.id,
- 'price_unit': lot.obj_price,
+ 'invoice_id': inv_id,
+ 'quantity': 1,
+ 'product_id': lot.product_id.id,
+ 'name': 'proforma'+'['+str(lot.obj_num)+'] '+ lot.name,
+ 'invoice_line_tax_id': [(6, 0, taxes)],
+ 'account_analytic_id': lot.auction_id.account_analytic_id.id,
+ 'account_id': lot.auction_id.acc_income.id,
+ 'price_unit': lot.obj_price,
}
- inv_line_obj.create(cr, uid, inv_line,context)
+ inv_line_obj.create(cr, uid, inv_line, context)
# inv_ref.button_compute(cr, uid, [inv_id])
# wf_service = netsvc.LocalService('workflow')
# wf_service.trg_validate(uid, 'account.invoice', inv_id, 'invoice_open', cr)
@@ -701,7 +712,7 @@ 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):
"""
Create a seller invoice for each bord_vnd_id, for selected ids.
"""
@@ -711,7 +722,7 @@ class auction_lots(osv.osv):
partner_obj = self.pool.get('res.partner')
inv_line_obj = self.pool.get('account.invoice.line')
wf_service = netsvc.LocalService('workflow')
- for lot in self.browse(cr,uid,ids,context):
+ for lot in self.browse(cr, uid, ids, context):
partner_id = lot.bord_vnd_id.partner_id.id
if not lot.auction_id.id:
continue
@@ -723,17 +734,17 @@ class auction_lots(osv.osv):
contact_addr_id = res['contact']
invoice_addr_id = res['invoice']
inv = {
- 'name': 'Auction:' +lot.name,
- 'journal_id': lot.auction_id.journal_seller_id.id,
- 'partner_id': lot.bord_vnd_id.partner_id.id,
- 'type': 'in_invoice',
+ 'name': 'Auction:' +lot.name,
+ 'journal_id': lot.auction_id.journal_seller_id.id,
+ 'partner_id': lot.bord_vnd_id.partner_id.id,
+ 'type': 'in_invoice',
}
- inv.update(inv_ref.onchange_partner_id(cr,uid, [], 'in_invoice', lot.bord_vnd_id.partner_id.id)['value'])
+ inv.update(inv_ref.onchange_partner_id(cr, uid, [], 'in_invoice', lot.bord_vnd_id.partner_id.id)['value'])
# inv['account_id'] = inv['account_id'] and inv['account_id'][0]
inv_id = inv_ref.create(cr, uid, inv, context)
invoices[lot.bord_vnd_id.id] = inv_id
- self.write(cr,uid,[lot.id],{'sel_inv_id':inv_id,'state':'sold'})
+ self.write(cr, uid, [lot.id], {'sel_inv_id':inv_id, 'state':'sold'})
taxes = map(lambda x: x.id, lot.product_id.taxes_id)
if lot.bord_vnd_id.tax_id:
@@ -742,16 +753,16 @@ class auction_lots(osv.osv):
taxes += map(lambda x: x.id, lot.auction_id.seller_costs)
inv_line= {
- 'invoice_id': inv_id,
- 'quantity': 1,
- 'product_id': lot.product_id.id,
- 'name': '['+str(lot.obj_num)+'] '+lot.auction_id.name,
- 'invoice_line_tax_id': [(6,0,taxes)],
- 'account_analytic_id': lot.auction_id.account_analytic_id.id,
- 'account_id': lot.auction_id.acc_expense.id,
- 'price_unit': lot.obj_price,
+ 'invoice_id': inv_id,
+ 'quantity': 1,
+ 'product_id': lot.product_id.id,
+ 'name': '['+str(lot.obj_num)+'] '+lot.auction_id.name,
+ 'invoice_line_tax_id': [(6, 0, taxes)],
+ 'account_analytic_id': lot.auction_id.account_analytic_id.id,
+ 'account_id': lot.auction_id.acc_expense.id,
+ 'price_unit': lot.obj_price,
}
- inv_line_obj.create(cr, uid, inv_line,context)
+ inv_line_obj.create(cr, uid, inv_line, context)
inv_ref.button_compute(cr, uid, invoices.values())
for inv in inv_ref.browse(cr, uid, invoices.values(), context):
inv_ref.write(cr, uid, [inv.id], {
@@ -760,7 +771,7 @@ class auction_lots(osv.osv):
wf_service.trg_validate(uid, 'account.invoice', inv.id, 'invoice_open', cr)
return invoices.values()
- def lots_invoice(self, cr, uid, ids, context,invoice_number=False):
+ def lots_invoice(self, cr, uid, ids, context, invoice_number=False):
"""(buyer invoice
Create an invoice for selected lots (IDS) to BUYER_ID.
Set created invoice to the ACTION state.
@@ -777,14 +788,14 @@ class auction_lots(osv.osv):
inv_line_obj = self.pool.get('account.invoice.line')
wf_service = netsvc.LocalService('workflow')
invoices={}
- for lot in self.browse(cr, uid, ids,context):
+ for lot in self.browse(cr, uid, ids, context):
# partner_ref = lot.ach_uid.id
if not lot.auction_id.id:
continue
if not lot.ach_uid.id:
raise orm.except_orm(_('Missed buyer !'), _('The object "%s" has no buyer assigned.') % (lot.name,))
- if (lot.auction_id.id,lot.ach_uid.id) in invoices:
- inv_id = invoices[(lot.auction_id.id,lot.ach_uid.id)]
+ 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']
if not len(add):
@@ -792,19 +803,19 @@ class auction_lots(osv.osv):
price = lot.obj_price or 0.0
lot_name =lot.obj_num
inv = {
- 'name':lot.auction_id.name or '',
- 'reference': lot.ach_login,
- 'journal_id': lot.auction_id.journal_id.id,
- 'partner_id': lot.ach_uid.id,
- 'type': 'out_invoice',
+ 'name':lot.auction_id.name or '',
+ 'reference': lot.ach_login,
+ 'journal_id': lot.auction_id.journal_id.id,
+ 'partner_id': lot.ach_uid.id,
+ 'type': 'out_invoice',
}
if invoice_number:
inv['number'] = invoice_number
- inv.update(inv_ref.onchange_partner_id(cr,uid, [], 'out_invoice', lot.ach_uid.id)['value'])
+ inv.update(inv_ref.onchange_partner_id(cr, uid, [], 'out_invoice', lot.ach_uid.id)['value'])
#inv['account_id'] = inv['account_id'] and inv['account_id'][0]
inv_id = inv_ref.create(cr, uid, inv, context)
- invoices[(lot.auction_id.id,lot.ach_uid.id)] = inv_id
- self.write(cr,uid,[lot.id],{'ach_inv_id':inv_id,'state':'sold'})
+ invoices[(lot.auction_id.id, lot.ach_uid.id)] = inv_id
+ self.write(cr, uid, [lot.id], {'ach_inv_id':inv_id, 'state':'sold'})
#calcul des taxes
taxes = map(lambda x: x.id, lot.product_id.taxes_id)
taxes+=map(lambda x:x.id, lot.auction_id.buyer_costs)
@@ -812,22 +823,22 @@ class auction_lots(osv.osv):
taxes.append(lot.author_right.id)
inv_line= {
- 'invoice_id': inv_id,
- 'quantity': 1,
- 'product_id': lot.product_id.id,
- 'name': '['+str(lot.obj_num)+'] '+ lot.name,
- 'invoice_line_tax_id': [(6,0,taxes)],
- 'account_analytic_id': lot.auction_id.account_analytic_id.id,
- 'account_id': lot.auction_id.acc_income.id,
- 'price_unit': lot.obj_price,
+ 'invoice_id': inv_id,
+ 'quantity': 1,
+ 'product_id': lot.product_id.id,
+ 'name': '['+str(lot.obj_num)+'] '+ lot.name,
+ 'invoice_line_tax_id': [(6, 0, taxes)],
+ 'account_analytic_id': lot.auction_id.account_analytic_id.id,
+ 'account_id': lot.auction_id.acc_income.id,
+ 'price_unit': lot.obj_price,
}
- inv_line_obj.create(cr, uid, inv_line,context)
+ inv_line_obj.create(cr, uid, inv_line, context)
# inv_ref.button_compute(cr, uid, [inpq tu dis cav_id])
# inv_ref.button_compute(cr, uid, [inv_id])
inv_ref.button_compute(cr, uid, [inv_id])
for l in inv_ref.browse(cr, uid, invoices.values(), context):
# wf_service.trg_validate(uid, 'account.invoice',l.id, 'invoice_proforma', cr)
- wf_service.trg_validate(uid, 'account.invoice',l.id, 'invoice_open', cr)
+ wf_service.trg_validate(uid, 'account.invoice', l.id, 'invoice_open', cr)
return invoices.values()
@@ -854,14 +865,14 @@ class auction_bid(osv.osv):
_description="Bid auctions"
_order = 'id desc'
_columns = {
- 'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
- 'contact_tel':fields.char('Contact',size=64),
- 'name': fields.char('Bid ID', size=64,required=True),
- 'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True),
- 'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'),
+ 'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
+ 'contact_tel':fields.char('Contact', size=64),
+ 'name': fields.char('Bid ID', size=64, required=True),
+ 'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True),
+ 'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'),
}
_defaults = {
- 'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'auction.bid'),
+ '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:
@@ -879,10 +890,10 @@ class auction_lot_history(osv.osv):
_name = "auction.lot.history"
_description="Lot history"
_columns = {
- 'name': fields.date('Date',size=64),
- 'lot_id': fields.many2one('auction.lots','Object', required=True, ondelete='cascade'),
- 'auction_id': fields.many2one('auction.dates', 'Auction date', required=True, ondelete='cascade'),
- 'price': fields.float('Withdrawn price', digits=(16,2))
+ 'name': fields.date('Date', size=64),
+ 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
+ 'auction_id': fields.many2one('auction.dates', 'Auction date', required=True, ondelete='cascade'),
+ 'price': fields.float('Withdrawn price', digits=(16, 2))
}
_defaults = {
'name': lambda *args: time.strftime('%Y-%m-%d')
@@ -900,11 +911,11 @@ class auction_bid_lines(osv.osv):
# res[lot.id] = lot.lot_id.auction_id.name
# return res
_columns = {
- 'name': fields.char('Bid date',size=64),
- 'bid_id': fields.many2one('auction.bid','Bid ID', required=True, ondelete='cascade'),
- 'lot_id': fields.many2one('auction.lots','Object', required=True, ondelete='cascade'),
- 'call': fields.boolean('To be Called'),
- 'price': fields.float('Maximum Price'),
+ 'name': fields.char('Bid date', size=64),
+ 'bid_id': fields.many2one('auction.bid', 'Bid ID', required=True, ondelete='cascade'),
+ 'lot_id': fields.many2one('auction.lots', 'Object', required=True, ondelete='cascade'),
+ 'call': fields.boolean('To be Called'),
+ 'price': fields.float('Maximum Price'),
'auction': fields.char(string='Auction Name', size=64)
}
_defaults = {
@@ -926,13 +937,13 @@ class report_buyer_auction(osv.osv):
_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),
+ '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),
}
@@ -966,14 +977,14 @@ class report_buyer_auction2(osv.osv):
_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)
+ '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('''
@@ -1008,14 +1019,14 @@ class report_seller_auction(osv.osv):
_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)
+ '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):
@@ -1049,13 +1060,13 @@ class report_seller_auction2(osv.osv):
_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),
+ '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):
@@ -1085,14 +1096,14 @@ class report_auction_view2(osv.osv):
_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)
+ '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 (
@@ -1123,13 +1134,13 @@ class report_auction_view(osv.osv):
_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),
+ '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)
}
@@ -1158,10 +1169,10 @@ class report_auction_object_date(osv.osv):
_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),
+ '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,
@@ -1189,12 +1200,12 @@ class report_auction_estimation_adj_category(osv.osv):
_auto = False
_rec_name='date'
_columns = {
- 'lot_est1': fields.float('Minimum Estimation',select=2),
- 'lot_est2': fields.float('Maximum Estimation',select=2),
+ '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),
+ '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)
}
@@ -1224,11 +1235,11 @@ class report_auction_adjudication(osv.osv):
_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)
+ '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)
}
@@ -1260,9 +1271,9 @@ class report_attendance(osv.osv):
_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),
+ '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
@@ -1301,11 +1312,11 @@ class report_deposit_border(osv.osv):
_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),
+ '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
@@ -1331,16 +1342,16 @@ class report_object_encoded(osv.osv):
_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),
+ '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),
+ '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),
+ '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
@@ -1363,15 +1374,15 @@ class report_object_encoded_manager(osv.osv):
_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),
+ '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
@@ -1397,18 +1408,18 @@ class report_unclassified_objects(osv.osv):
_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),
+ '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
diff --git a/addons/auction/auction_demo.xml b/addons/auction/auction_demo.xml
index 22a5cabb1cd..fe48ae3df74 100644
--- a/addons/auction/auction_demo.xml
+++ b/addons/auction/auction_demo.xml
@@ -10,52 +10,52 @@
- Bruxelles1
- Benoit Mortie1r1
- 1030
-
+ Bruxelles1
+ Benoit Mortie1r1
+ 1030
+
+
+ info@opensides.be
+ (+32)2 211 34 83
+ Rue des Palais 44, bte 33
+ default
+
+
- info@opensides.be
- (+32)2 211 34 83
- Rue des Palais 44, bte 33
- default
-
-
-
- Avignon CEDEX 091
- Laurent Jacot1
- 84911
-
- contact@tecsas.fr
- (+33)4.32.74.10.57
- 85 rue du traite de Rome
- default
-
-
-
- Louvain-la-Neuve
- Thomas Passot
- 1348
-
- info@mediapole.net
- (+32).10.45.17.73
- Rue de l'Angelique, 1
-
-
+
+ Avignon CEDEX 091
+ Laurent Jacot1
+ 84911
+
+ contact@tecsas.fr
+ (+33)4.32.74.10.57
+ 85 rue du traite de Rome
+ default
+
+
+
+ Louvain-la-Neuve
+ Thomas Passot
+ 1348
+
+ info@mediapole.net
+ (+32).10.45.17.73
+ Rue de l'Angelique, 1
+
+
+
Philippe Lavilier
1345-1450
+
POREAU OSWALD
1877-1955
-
-
-
@@ -98,8 +98,8 @@
sabam
-
+
TVA
0.12
@@ -108,14 +108,12 @@
-
TVA1
0.2
auction
-
Buyer Costs
@@ -123,7 +121,6 @@
auction
-
Seller Costs1
@@ -131,7 +128,6 @@
auction
-
Seller Costs
@@ -141,8 +137,8 @@
-
+
Frais de vente
-0.15
@@ -151,22 +147,20 @@
-
+
Frais de vente
0
auction
+
Oeuvres a 21%
-
-
-
diff --git a/addons/auction/auction_report.xml b/addons/auction/auction_report.xml
index 17e7e07e968..eec4cf966cd 100644
--- a/addons/auction/auction_report.xml
+++ b/addons/auction/auction_report.xml
@@ -96,7 +96,7 @@
xml="auction/report/lots_list_landscape.xml"
xsl="auction/report/lots_list_landscape.xsl"
id="lot_list_inv"
- multi="1"/>
+ multi="1"/>
- =======================================================
- Auction Management/Configuration/artist
- =======================================================
+
+
+
auction.artists.tree
auction.artists
@@ -42,9 +42,9 @@
- =======================================================
- Auction Management/Configuration/objectcategories
- =======================================================
+
+
+
auction.lot.category.tree
auction.lot.category
@@ -76,9 +76,9 @@
- =======================================================
- Auction Management/Auction Dates/New Auction Dates
- =======================================================
+
+
+
Auction dates
auction.dates
@@ -88,9 +88,11 @@
+
+
Auction dates
auction.dates
@@ -98,41 +100,107 @@
+
+
+
+ Auction Dates search
+ auction.dates
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Auction Dates Calendar
+ auction.dates
+ calendar
+
+
+
+
+
+
+
+
+
- Next Auctions
+ Next Auctions Dates
auction.dates
form
- [('state','=','draft')]
-
+ tree,form,calendar
+
+ {"search_default_draft": "1"}
- =======================================================
- Auction Management/Auction Dates/Old Auction Dates
- =======================================================
+
+
+
Old Auctions
auction.dates
@@ -142,9 +210,9 @@
- =======================================================
- Auction Management/Auction Dates/Reporting
- =======================================================
+
+
+
Auction lots
@@ -168,16 +236,16 @@
-
+
Auction lots
auction.lots
form
-
@@ -223,7 +290,6 @@
-
Auction lots
@@ -231,9 +297,10 @@
tree
-
+
+
@@ -254,105 +321,170 @@
form
-
+
+
+
+
+
+ Auction Lots search
+ auction.lots
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
auction.lots
form
tree,form
+
+ {"search_default_draft": "1"}
@@ -396,6 +528,7 @@
+
auction.lots.form3
auction.lots
@@ -1193,7 +1326,6 @@ sign in sign out report by user
-
report.attendance
form
@@ -1230,7 +1362,6 @@ My Latest Objects
-
=============================
My Latest Deposit
==============================
diff --git a/addons/auction/report/ach_bordereau.xsl b/addons/auction/report/ach_bordereau.xsl
index 6aa9f36e299..f005b74e92a 100644
--- a/addons/auction/report/ach_bordereau.xsl
+++ b/addons/auction/report/ach_bordereau.xsl
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/addons/auction/report/ach_bordereau_photo.xsl b/addons/auction/report/ach_bordereau_photo.xsl
index b1ed3340d7a..ba50de512f0 100644
--- a/addons/auction/report/ach_bordereau_photo.xsl
+++ b/addons/auction/report/ach_bordereau_photo.xsl
@@ -1,162 +1,63 @@
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Plate Number:
-
-
-
-
-
- Document : Buyer form
-
- Auction :
-
-
-
-
- Customer Contact :
-
-
- -
-
-
-
- Customer Reference :
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cat. N.
- Description
- Paid
- Adj.(EUR)
-
-
-
-
-
-
-
-
-
- Subtotal:
-
-
-
-
-
-
-
- Total:
-
-
-
-
-
-
-
-
-
-
- :
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- .
-
-
-
- X
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ #e6e6e6
+
+
+ ,0
+
+
+
+ ,0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/auction/report/catalog2.py b/addons/auction/report/catalog2.py
index b84bab5b9fd..f31d1c533fd 100644
--- a/addons/auction/report/catalog2.py
+++ b/addons/auction/report/catalog2.py
@@ -106,7 +106,6 @@ class auction_catalog(report_rml):
# promotion element
promo = doc.createElement('promotion1')
-
fp = file(config['addons_path']+'/auction/report/images/flagey_logo.jpg','r')
file_data = fp.read()
promo.appendChild(doc.createTextNode(base64.encodestring(file_data)))
diff --git a/addons/auction/report/catalog2.xsl b/addons/auction/report/catalog2.xsl
index c0d73eb333d..ea27162428d 100755
--- a/addons/auction/report/catalog2.xsl
+++ b/addons/auction/report/catalog2.xsl
@@ -12,7 +12,7 @@
-
+
1cm 3.0cm 20cm 3.0cm
Hotel des ventes Flagey
@@ -20,7 +20,6 @@
Rue du Nid, 4 - B-1050 Bruxelles - Tel: 02/644.97.67
Web: Flagey.com - Mail: info@flagey.com - Fax: 02.646.32.35
-
@@ -30,8 +29,8 @@
--
- Vente antiquitée le -->
+-
+ Vente antiquitée le
@@ -39,7 +38,7 @@
1cm 1.6cm 20cm 1.6cm
- 1.0cm 27.3cm 20cm 27.3cm
+ 1.0cm 26.1cm 20cm 26.1cm
www.flagey.com
@@ -47,7 +46,7 @@
info@flagey.com
-
+
@@ -62,6 +61,7 @@
+
@@ -92,11 +92,88 @@
-
+
+ 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
+
+
-
+
+
+
+
diff --git a/addons/auction/wizard/__init__.py b/addons/auction/wizard/__init__.py
index 41ada315889..b8e0ecc6825 100644
--- a/addons/auction/wizard/__init__.py
+++ b/addons/auction/wizard/__init__.py
@@ -29,12 +29,8 @@ import auction_pay_buy
import auction_payer_sel
import auction_lots_sms_send
import auction_catalog_flagey_report
-#import auction_lots_cancel
-#import auction_transfer_unsold_object
-#import auction_aie_send
-#import auction_aie_send_result
import auction_lots_buyer_map
-#import auction_lots_numerotate
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_catalog_flagey_view.xml b/addons/auction/wizard/auction_catalog_flagey_view.xml
index ca87771cc37..144141f1eab 100644
--- a/addons/auction/wizard/auction_catalog_flagey_view.xml
+++ b/addons/auction/wizard/auction_catalog_flagey_view.xml
@@ -11,11 +11,13 @@
-
+
+
+
-
+
@@ -26,7 +28,7 @@
src_model="auction.dates"
view_mode="form"
target="new"
- key2="client_action_multi"
+ key2="client_print_multi"
id="action_auction_catalog_flagey_wizard"/>
diff --git a/addons/auction/wizard/auction_lots_auction_move.py b/addons/auction/wizard/auction_lots_auction_move.py
index d1303be0887..36260f48aa5 100644
--- a/addons/auction/wizard/auction_lots_auction_move.py
+++ b/addons/auction/wizard/auction_lots_auction_move.py
@@ -34,15 +34,7 @@ class auction_lots_auction_move(osv.osv_memory):
_columns= {
'auction_id':fields.many2one('auction.dates', 'Auction Date', required=True),
}
-
-# def _top(self, cr, uid, ids, context={}):
-# refs = self.pool.get('auction.lots')
-# rec_ids = refs.browse(cr, uid, context['active_ids'])
-# for rec in rec_ids:
-# if not rec.auction_id:
-# raise osv.except_osv('Error !', 'You can not move a lot that has no auction date')
-# return {}
-
+
def auction_move_set(self, cr, uid, ids, context={}):
"""
This Function update auction date on auction lots to given auction date.
@@ -52,13 +44,12 @@ class auction_lots_auction_move(osv.osv_memory):
@param uid: the current user’s ID for security checks,
@param ids: List of auction lots auction move’s IDs.
"""
- refs = self.pool.get('auction.lots')
auction_bid_line_obj = self.pool.get('auction.bid_line')
auction_lot_history_obj = self.pool.get('auction.lot.history')
auction_lots_obj = self.pool.get('auction.lots')
- rec_ids = refs.browse(cr, uid, context['active_ids'])
+ rec_ids = auction_lots_obj.browse(cr, uid, context.get('active_ids', []))
for datas in self.read(cr, uid, ids):
- if not (datas['auction_id'] and len(context['active_ids'])) :
+ if not (datas['auction_id'] and len(context.get('active_ids', []))):
return {}
# line_ids = auction_bid_line_obj.search(cr, uid, [('lot_id', 'in', context['active_ids'])])
diff --git a/addons/auction/wizard/auction_lots_auction_move_view.xml b/addons/auction/wizard/auction_lots_auction_move_view.xml
index dd116a8bc6c..52c82cf8483 100644
--- a/addons/auction/wizard/auction_lots_auction_move_view.xml
+++ b/addons/auction/wizard/auction_lots_auction_move_view.xml
@@ -7,13 +7,13 @@
form
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/addons/auction/wizard/auction_lots_buyer_map.py b/addons/auction/wizard/auction_lots_buyer_map.py
index f9225b65291..f624de85a56 100644
--- a/addons/auction/wizard/auction_lots_buyer_map.py
+++ b/addons/auction/wizard/auction_lots_buyer_map.py
@@ -26,7 +26,6 @@ from osv import osv,fields
class wiz_auc_lots_buyer_map(osv.osv_memory):
_name = 'auction.lots.buyer_map'
_description = 'Map Buyer'
-
_columns = {
'ach_login': fields.char('Buyer Username', size=64, required=True),
'ach_uid': fields.many2one('res.partner','Buyer', required=True),
@@ -42,16 +41,16 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
@param context: A standard dictionary
@return: A dictionary which of fields with values.
"""
- ids = context and context.get('active_ids',False) or False
- assert ids, _('Active IDs not Found')
res = super(wiz_auc_lots_buyer_map,self).default_get(cr, uid, fields, context)
- cr.execute('select id from auction_lots where (ach_uid is null and ach_login is not null) ')
- v_ids = [x[0] for x in cr.fetchall()]
- for rec in self.pool.get('auction.lots').browse(cr, uid, v_ids, context):
- if (not rec.ach_uid or not rec.ach_login):
- res.update(self._start(cr, uid, ids, context))
- return res
- res.update(self._start(cr, uid, ids, context))
+ auction_lots_obj= self.pool.get('auction.lots')
+ lots_ids = auction_lots_obj.search(cr, uid, [('ach_uid', '=', ''), ('ach_login', '!=', '')])
+ for lots_id in lots_ids:
+
+ for rec in self.pool.get('auction.lots').browse(cr, uid, lots_id, context):
+ if (not rec.ach_uid or not rec.ach_login):
+ res.update(self._start(cr, uid, context.get('active_ids', []), context))
+ return res
+ res.update(self._start(cr, uid, context.get('active_ids', []), context))
return res
def _start(self, cr, uid, ids, context):
@@ -80,16 +79,14 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
@param uid: ID of the user currently logged in
@param ids: List of ids
@param context: A standard dictionary
- @return:
"""
- rec_ids = context and context.get('active_ids',False) or False
+ rec_ids = context and context.get('active_ids',[]) or []
assert rec_ids, _('Active IDs not Found')
- datas = self.read(cr, uid, ids[0], ['ach_login','ach_uid'])
lots_obj = self.pool.get('auction.lots')
- recs = lots_obj.browse(cr, uid, rec_ids, context)
- for rec in recs:
- if rec.ach_login==datas['ach_login']:
- lots_obj.write(cr, uid, [rec.id], {'ach_uid': datas['ach_uid']}, context=context)
+ for current in self.browse(cr, uid, ids):
+ for lots in lots_obj.browse(cr, uid, rec_ids, context):
+ if lots.ach_login == current.ach_login:
+ lots_obj.write(cr, uid, [lots.id], {'ach_uid': current.ach_uid.id}, context=context)
return {}
def fields_view_get(self, cr, uid, view_id=None, view_type='form',
@@ -102,7 +99,7 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
@param context: A standard dictionary
@return: New arch of view.
"""
- record_ids = context and context.get('active_ids', False) or False
+ record_ids = context and context.get('active_ids', []) or []
res = super(wiz_auc_lots_buyer_map, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
lots_obj = self.pool.get('auction.lots')
if record_ids:
@@ -111,9 +108,10 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
if lots.ach_uid:
res['arch'] = """
-
+
+
diff --git a/addons/auction/wizard/auction_lots_buyer_map_view.xml b/addons/auction/wizard/auction_lots_buyer_map_view.xml
index c76c74983d2..68225c50391 100644
--- a/addons/auction/wizard/auction_lots_buyer_map_view.xml
+++ b/addons/auction/wizard/auction_lots_buyer_map_view.xml
@@ -10,6 +10,7 @@
form
+
diff --git a/addons/auction/wizard/auction_lots_enable_view.xml b/addons/auction/wizard/auction_lots_enable_view.xml
index 8384524dad2..2a52c2aa048 100644
--- a/addons/auction/wizard/auction_lots_enable_view.xml
+++ b/addons/auction/wizard/auction_lots_enable_view.xml
@@ -7,11 +7,7 @@
form
-
-
-
-
-
+
@@ -20,7 +16,6 @@
-
-
diff --git a/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml b/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml
index ba4aac79ca6..6bcd4e344a3 100644
--- a/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml
+++ b/addons/auction/wizard/auction_lots_make_invoice_buyer_view.xml
@@ -29,8 +29,7 @@
view_mode="form"
target="new"
key2="client_action_multi"
- id="action_auction_lots_make_invoice_buyer"/>
-
-
+ id="action_auction_lots_make_invoice_buyer"/>
+
diff --git a/addons/auction/wizard/auction_lots_sms_send_view.xml b/addons/auction/wizard/auction_lots_sms_send_view.xml
index 22aa9d681ac..579901d4a7d 100644
--- a/addons/auction/wizard/auction_lots_sms_send_view.xml
+++ b/addons/auction/wizard/auction_lots_sms_send_view.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/addons/auction/wizard/auction_pay_buy.py b/addons/auction/wizard/auction_pay_buy.py
index ef8d5a98887..bc20eb75fbe 100644
--- a/addons/auction/wizard/auction_pay_buy.py
+++ b/addons/auction/wizard/auction_pay_buy.py
@@ -27,7 +27,6 @@ import tools
class auction_pay_buy(osv.osv_memory):
_name = "auction.pay.buy"
_description = "Pay buy"
-
_columns= {
'amount': fields.float('Amount paid', digits= (16, 2)),
'buyer_id':fields.many2one('res.partner', 'Buyer'),
@@ -39,7 +38,7 @@ class auction_pay_buy(osv.osv_memory):
'total': fields.float('Amount paid', digits = (16, 2), readonly =True),
}
- def default_get(self, cr, uid, fields, context):
+ def default_get(self, cr, uid, fields, context=None):
"""
To get default values for the object.
@param self: The object pointer.
@@ -49,8 +48,11 @@ class auction_pay_buy(osv.osv_memory):
@param context: A standard dictionary
@return: A dictionary which of fields with values.
"""
- res = super(auction_pay_buy, self).default_get(cr, uid, fields, context=context)
- for lot in self.pool.get('auction.lots').browse(cr, uid, context.get('active_ids', [])):
+ if not context:
+ context={}
+ res = super(auction_pay_buy, self).default_get(cr, uid, fields, context=context)
+ auction_lots_obj= self.pool.get('auction.lots')
+ for lot in auction_lots_obj.browse(cr, uid, context.get('active_ids', [])):
if 'amount' in fields:
res.update({'amount': lot.buyer_price})
if 'buyer_id' in fields:
@@ -73,22 +75,20 @@ class auction_pay_buy(osv.osv_memory):
for datas in self.read(cr, uid, ids):
if not abs(datas['total'] - (datas['amount'] + datas['amount2'] + datas['amount3'])) <0.01:
- rest = datas['total']-(datas['amount'] + datas['amount2'] + datas['amount3'])
+ rest = datas['total'] - (datas['amount'] + datas['amount2'] + datas['amount3'])
raise osv.except_osv('Payment aborted !', 'You should pay all the total: "%.2f" are missing to accomplish the payment.' %(round(rest, 2)))
lots = lot_obj.browse(cr, uid, context['active_ids'], context)
- ref_bk_s = bank_statement_line_obj
-
for lot in lots:
if datas['buyer_id']:
- lot_obj.write(cr, uid, [lot.id], {'ach_uid':datas['buyer_id']})
+ lot_obj.write(cr, uid, [lot.id], {'ach_uid': datas['buyer_id']})
if not lot.auction_id:
raise osv.except_osv('Error !', 'No auction date for "%s": Please set one.'%(lot.name))
lot_obj.write(cr, uid, [lot.id], {'is_ok':True})
for st, stamount in [('statement_id1', 'amount'), ('statement_id2', 'amount2'), ('statement_id3', 'amount3')]:
if datas[st]:
- new_id = ref_bk_s.create(cr, uid, {
+ new_id = bank_statement_line_obj.create(cr, uid, {
'name':'Buyer:'+ str(lot.ach_login or '')+', auction:'+ lots[0].auction_id.name,
'date': time.strftime('%Y-%m-%d'),
'partner_id': datas['buyer_id'] or False,
@@ -100,7 +100,6 @@ class auction_pay_buy(osv.osv_memory):
for lot in lots:
lot_obj.write(cr, uid, [lot.id], {'statement_id':[(4, new_id)]})
return {}
-
auction_pay_buy()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/auction/wizard/auction_payer_sel.py b/addons/auction/wizard/auction_payer_sel.py
index c422ee91857..087eacce9d7 100644
--- a/addons/auction/wizard/auction_payer_sel.py
+++ b/addons/auction/wizard/auction_payer_sel.py
@@ -26,7 +26,7 @@ class auction_payer(osv.osv_memory):
_description = "Auction payer"
def payer(self, cr, uid, ids, context):
- self.pool.get('auction.lots').write(cr, uid, context['active_ids'], {'is_ok':True, 'state':'paid'})
+ self.pool.get('auction.lots').write(cr, uid, context.get('active_ids', []), {'is_ok':True, 'state':'paid'})
return {}
auction_payer()