product: improve pricelist

remove dictfetchall
use only on obj currency

bzr revid: ced-f35d0383f395969ea9ce72941d81745931ca159f
This commit is contained in:
ced 2007-07-19 13:35:49 +00:00
parent 2dd41d8ca4
commit 1157e2043d
1 changed files with 6 additions and 18 deletions

View File

@ -85,28 +85,17 @@ class product_pricelist(osv.osv):
'active': lambda *a: 1,
}
#
# IN:
# Context {
# 'uom': Unit of Measure (Int)
# 'partner': Partner ID (int)
# }
#
# context = { 'uom': Unit of Measure (Int), 'partner': Partner ID (int) }
def price_get(self, cr, uid, ids, prod_id, qty, partner=None, context={}):
if context and ('partner_id' in context):
partner = context['partner_id']
currency_obj = self.pool.get('res.currency')
result = {}
for id in ids:
# XXX add date test to select the pricelist version
cr.execute('select * from product_pricelist_version where pricelist_id=%d and active=True order by id limit 1', (id,))
#
# Ajouter le test de la date du jour
#
plversion = False
plversion = cr.dictfetchone()
# Ahahahahaha
for plversion in cr.dictfetchall():
break
if not plversion:
raise osv.except_osv('Warning !', 'No active version for the selected pricelist !\nPlease create or activate one.')
@ -142,7 +131,7 @@ class product_pricelist(osv.osv):
else:
price_tmp = self.price_get(cr, uid, [res['base_pricelist_id']], prod_id, qty)[res['base_pricelist_id']]
ptype_src = self.pool.get('product.pricelist').browse(cr, uid, res['base_pricelist_id']).currency_id.id
price = self.pool.get('res.currency').compute(cr, uid, ptype_src, res['currency_id'], price_tmp)
price = currency_obj.compute(cr, uid, ptype_src, res['currency_id'], price_tmp)
elif res['base'] == -2:
where = []
if partner:
@ -160,7 +149,7 @@ class product_pricelist(osv.osv):
continue
else:
price_type_o=self.pool.get('product.price.type').read(cr, uid, [ res['base'] ])[0]
price = self.pool.get('res.currency').compute(cr, uid, price_type_o['currency_id'][0], res['currency_id'], self.pool.get('product.product').price_get(cr, uid, [prod_id], price_type_o['field'])[prod_id])
price = currency_obj.compute(cr, uid, price_type_o['currency_id'][0], res['currency_id'], self.pool.get('product.product').price_get(cr, uid, [prod_id], price_type_o['field'])[prod_id])
price_limit = price
@ -224,7 +213,6 @@ class product_pricelist_item(osv.osv):
'min_quantity': fields.integer('Min. Quantity', required=True),
'sequence': fields.integer('Sequence', required=True),
'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1),
#'base': fields.many2one('product.price.type', 'Based on', required=True),
'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'),
'price_surcharge': fields.float('Price Surcharge'),