MRP: Use company currency for Product Cost Structure
bzr revid: ced-3c407df88c4138c30b792e5646e07fef0e0f3804
This commit is contained in:
parent
eb4e4b5056
commit
fdb6e3c889
|
@ -37,7 +37,7 @@ class report_custom(report_rml):
|
||||||
def create_xml(self, cr, uid, ids, datas, context={}):
|
def create_xml(self, cr, uid, ids, datas, context={}):
|
||||||
number = (datas.get('form', False) and datas['form']['number']) or 1
|
number = (datas.get('form', False) and datas['form']['number']) or 1
|
||||||
|
|
||||||
def process_bom(bom):
|
def process_bom(bom, currency_id):
|
||||||
xml = '<row>'
|
xml = '<row>'
|
||||||
sum = 0
|
sum = 0
|
||||||
sum_strd = 0
|
sum_strd = 0
|
||||||
|
@ -56,7 +56,9 @@ class report_custom(report_rml):
|
||||||
pricelist = prod.seller_ids[0].name.property_product_pricelist_purchase
|
pricelist = prod.seller_ids[0].name.property_product_pricelist_purchase
|
||||||
if pricelist:
|
if pricelist:
|
||||||
pricelist_id = pricelist[0]
|
pricelist_id = pricelist[0]
|
||||||
price = pooler.get_pool(cr.dbname).get('product.pricelist').price_get(cr,uid,[pricelist_id], prod.id, number*prod_qtty or 1.0).setdefault(pricelist_id, 0)
|
pricelist_obj = pooler.get_pool(cr.dbname).get('product.pricelist')
|
||||||
|
price = pricelist_obj.price_get(cr,uid,[pricelist_id], prod.id, number*prod_qtty or 1.0).setdefault(pricelist_id, 0)
|
||||||
|
price = pooler.get_pool(cr.dbname).get('res.currency').compute(cr, uid, pricelist_obj.browse(cr, uid, pricelist_id).currency_id.id, currency_id, price)
|
||||||
else:
|
else:
|
||||||
price = 0
|
price = 0
|
||||||
main_sp_price = '%.2f' % price + '\r\n'
|
main_sp_price = '%.2f' % price + '\r\n'
|
||||||
|
@ -72,7 +74,9 @@ class report_custom(report_rml):
|
||||||
pricelist = seller_id.name.property_product_pricelist_purchase
|
pricelist = seller_id.name.property_product_pricelist_purchase
|
||||||
if pricelist:
|
if pricelist:
|
||||||
pricelist_id = pricelist[0]
|
pricelist_id = pricelist[0]
|
||||||
price = pooler.get_pool(cr.dbname).get('product.pricelist').price_get(cr,uid,[pricelist_id], prod.id, number*prod_qtty or 1.0).setdefault(pricelist_id, 0)
|
pricelist_obj = pooler.get_pool(cr.dbname).get('product.pricelist')
|
||||||
|
price = pricelist_obj.price_get(cr,uid,[pricelist_id], prod.id, number*prod_qtty or 1.0).setdefault(pricelist_id, 0)
|
||||||
|
price = pooler.get_pool(cr.dbname).get('res.currency').compute(cr, uid, pricelist_obj.browse(cr, uid, pricelist_id).currency_id.id, currency_id, price)
|
||||||
else:
|
else:
|
||||||
price = 0
|
price = 0
|
||||||
sellers_price += '%.2f' % price + '\r\n'
|
sellers_price += '%.2f' % price + '\r\n'
|
||||||
|
@ -153,6 +157,7 @@ class report_custom(report_rml):
|
||||||
</lines>
|
</lines>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
company_currency = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid).company_id.currency_id.id
|
||||||
first = True
|
first = True
|
||||||
for prod_id in ids:
|
for prod_id in ids:
|
||||||
bom_ids = pooler.get_pool(cr.dbname).get('mrp.bom').search(cr, uid, [('product_id','=',prod_id)])
|
bom_ids = pooler.get_pool(cr.dbname).get('mrp.bom').search(cr, uid, [('product_id','=',prod_id)])
|
||||||
|
@ -167,7 +172,7 @@ class report_custom(report_rml):
|
||||||
parent_bom = {'product_qty': bom.product_qty, 'name': bom.product_id.name, 'product_uom': bom.product_id.uom_id.factor, 'product_id': bom.product_id.id}
|
parent_bom = {'product_qty': bom.product_qty, 'name': bom.product_id.name, 'product_uom': bom.product_id.uom_id.factor, 'product_id': bom.product_id.id}
|
||||||
xml_tmp = ''
|
xml_tmp = ''
|
||||||
for sub_bom in (sub_boms and sub_boms[0]) or [parent_bom]:
|
for sub_bom in (sub_boms and sub_boms[0]) or [parent_bom]:
|
||||||
txt, sum, sum_strd = process_bom(sub_bom)
|
txt, sum, sum_strd = process_bom(sub_bom, company_currency)
|
||||||
xml_tmp += txt
|
xml_tmp += txt
|
||||||
total += sum
|
total += sum
|
||||||
total_strd += sum_strd
|
total_strd += sum_strd
|
||||||
|
|
Loading…
Reference in New Issue