In purchase.order.line
I added new field pln price
and changed unit price field to function:
'price_unit': fields.function(_amount_pln, string='Unit Price', required=True, digits_compute= dp.get_precision('Product Price')),
'plnprice': fields.float('PLN Price', digits_compute= dp.get_precision('PLN Price')),
Here is function:
def _amount_pln(self, cr, uid, ids, prop, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
res[line.id] = line.plnprice * 0.25
return res
exchange value now is hardcoded, 0.25
as you see in _amount_pln
function
Then I added new field in purchase.order
class:
'exchange_value': fields.float('Exchange',readonly=False)
But how get this field value to my _amount_pln
function I don't know. can you please help me how to resolve this problem?
Sometimes function fields need the parameter: store=True
Try adding this parameter to your function field and see if it works.
Try following,
def _amount_pln(self, cr, uid, ids, prop, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
res[line.id] = line.plnprice * line.order_id.exchange_value
return res
order_id is many2one field in purchase order line in relation with purchase order, so you can easily access values of purchase order in purchase order line.
Relation between "purchase.order" and "purchase.order.line" is "order_id". "purchase.order.line" contains "order_id". You can get values of "purchase.order" using this "order_id".
for purchase_line in self.browse(cr, uid, ids, context=context):
res[line.id] = purchase_line.plnprice * purchase_line.order_id.exchange_value
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.