I have a custom module which add and update supplier price and code, from PO line.
I have add a boolean field in PO line.
I would like not update supplier price, if boolean field is True.
I'm not a developer, and I don't know how do it. Can anyone help me? Write me code to add.
Below code with part interested Bold
Thanks
class PurchaseOrderLine(models.Model):
_inherit = 'purchase.order.line'
product_supplier_code = fields.Char(string='Product Supplier Code')
**not_update = fields.Boolean(string='Not update price')**
@api.onchange(
'partner_id',
'product_id',
)
def _onchange_product_code(self):
for line in self:
supplier_info = line.product_id.seller_ids.filtered(
lambda s: (
s.product_id == line.product_id
and s.name == line.partner_id
)
)
if supplier_info:
code = supplier_info[0].product_code or ''
line.product_supplier_code = code
else:
supplier_info = line.product_id.seller_ids.filtered(
lambda s: (
s.product_tmpl_id == line.product_id.product_tmpl_id
and s.name == line.partner_id
)
)
if supplier_info:
code = supplier_info[0].product_code or ''
line.product_supplier_code = code
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
def _add_supplier_to_product(self):
super()._add_supplier_to_product()
for line in self.order_line:
partner = (
self.partner_id
if not self.partner_id.parent_id
else self.partner_id.parent_id
)
if partner in line.product_id.seller_ids.mapped('name'):
seller = line.product_id._select_seller(
partner_id=line.partner_id,
quantity=line.product_qty,
date=line.order_id.date_order
and line.order_id.date_order.date(),
uom_id=line.product_uom,
)
if seller:
try:
seller['product_code'] = line.product_supplier_code
**seller['price'] = line.price_unit**
except AccessError:
break
Try Bellow code
class PurchaseOrder(models.Model):
_inherit = 'purchase.order'
def _add_supplier_to_product(self):
super()._add_supplier_to_product()
for line in self.order_line:
partner = (
self.partner_id
if not self.partner_id.parent_id
else self.partner_id.parent_id
)
if partner in line.product_id.seller_ids.mapped('name'):
seller = line.product_id._select_seller(
partner_id=line.partner_id,
quantity=line.product_qty,
date=line.order_id.date_order
and line.order_id.date_order.date(),
uom_id=line.product_uom,
)
if seller:
try:
seller['product_code'] = line.product_supplier_code
**if not line.not_update:
seller['price'] = line.price_unit**
except AccessError:
break