跳至內容
選單
此問題已被標幟
1 回覆
4949 瀏覽次數

Can anyone tell me how Odoo compute the price unit in sale.order depending on pricelist?

Like in case the product doesn't exit in any pricelist, how Odoo will compute the price?

Or if the product doesn't exit in the pricelist of the customer of the sale order?

頭像
捨棄
最佳答案

Hi, 

You may already know that when you create a Sale order, the So's pricelist is the partner's pricelist.

When you add a sale order line, an onchange is triggered and computes the new price_unit based on the quantity, the product and the SO's pricelist. 

Please kindly check the following onchange : 

@api.onchange('product_uom', 'product_uom_qty')
def product_uom_change(self):
if not self.product_uom or not self.product_id:
self.price_unit = 0.0
return
if self.order_id.pricelist_id and self.order_id.partner_id:
product = self.product_id.with_context(
lang=self.order_id.partner_id.lang,
partner=self.order_id.partner_id,
quantity=self.product_uom_qty,
date=self.order_id.date_order,
pricelist=self.order_id.pricelist_id.id,
uom=self.product_uom.id,
fiscal_position=self.env.context.get('fiscal_position')
)
self.price_unit = self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_id, self.company_id)

Please note that also if you change the Quotation template, Odoo computes the product price_unit too based on the given SO pricelist. Please check : 
def onchange_sale_order_template_id(self) at  odoo/addons/sale_management/models/sale_order.py:66


Hope this helps. 
Best of luck.




頭像
捨棄
作者

Thank you Ibrahim for your answer.
Yes I already know that but what I want to know is how Odoo compute the price unit.
For example, the partner has a specific price list then I add a product in the sale.order.line while the product is not included in the price list of the customer so how will Odoo calculate the price unit

相關帖文 回覆 瀏覽次數 活動
0
7月 20
2324
0
9月 19
3415
3
3月 25
1072
2
12月 24
525
4
2月 25
8200