This question has been flagged
2 Replies
1970 Views

I need to show the product cost on the order line so that product unit price can be adjusted during the sales order creation. In what way I can achieve it in odoo 15.

Avatar
Discard
Author

First of all, thank you. Is there any way we con do this without writing code.

Best Answer

You can do it by adding the cost(Any name you want to give) field in the sale order line by inheriting the 'sale.order.line'. And write onchnage on the product_id field i.e. When a product is changed product field data is automatically added in the field you defined.

Avatar
Discard
Best Answer

Hello, Sidharth Soman

I hope you are doing great.

You can add cost(Any name you want to give) field in the sale order line by inherit the 'sale.order.line'. And write onchnage on the product i.e. When product is changed product cost will automatically added in the field you defined(Here it is cost).

Find codein Comment. 

I hope this will help you.

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

Avatar
Discard

--> (.py) Inherit sale order line
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'

cost = fields.Float()

@api.onchange('product_id')
def onchange_product(self):
self.cost = self.product_id.standard_price

--> (xml) Put that field in view of order line.

<odoo>
<record id="sale_order_inherit_form" model="ir.ui.view">
<field name="name">sale.order.inherit.form</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<xpath expr="//page[@name='order_lines']//tree//field[@name='name']" position="after">
<field name="cost"/>
</xpath>
</field>
</record>
</odoo>