This question has been flagged

Hi everyone, iam using odoo14 community version, i want to create a field in odoo purchase order line where it shows me the difference between the quantity and received product in order lines for each product
eg: i want to show quantity - received qty = remaining qty for each products in purchase order line, how can i achieve this using python or xml 
Thank you

Avatar
Discard
Author

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class PurchaseOrderComputeField(models.Model):
_inherit = "purchase.order.line"

x_grand_total = fields.Float(compute='_compute_x_grand_total', string='Remaining Quantity')

@api.depends('order_line')
def _compute_x_grand_total(self):
for record in self:
record.x_grand_total = record.product_qty - record.qty_received

This is the code i am using

i am getting this error :
ValueError: Field purchase.order.line.x_grand_total cannot find dependency 'order_line' on model 'purchase.order.line'.

What am i doing wrong

Best Answer

Hello, the mistake you are doing is that you are inheriting purchase.order.line and then trying to again get orderline field in this object which is in purchase order. So the correct code for the method would be something like this and rest what you have coded as it is:

@api.depends('product_qty', 'qty_received',)
def _compute_x_grand_total(self):
for record in self:
record.x_grand_total = record.product_qty - record.qty_received


Avatar
Discard
Author

Thank you @Abhinav Vaidya this solved my problem

Best Answer

Hi Jo,

Your calculation is correct,but no need to give dependency 'order_line' here,because you have written the computation inside ' purchase.order.line' model.So just remove that dependancy and try.

Hope it will help you.

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

Avatar
Discard