콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다

Can I get the cheapest price for a product (e.g. book) quoted by different vendors using lambda or any other alternative

store maybe somewhere showing vendor x was the cheapest for product book.


I have tried searching for an answer in Odoo community but with fail.

I will appreciate any help. I'm really stuck.

아바타
취소
베스트 답변

Hello, Leonard. Shivoham's answer can serve as an suggestion for you. I have another way. Isn't your goal to discover the cheapest product? Assume you have attributes 'name,' 'price,' and 'vendor id' in the model 'product.'
You can 'group_by' all of its records by name, and see which record has the lowest 'price.'
You'll know which vendor provides that product thanks to the field 'vendor id.'

아바타
취소
작성자 베스트 답변

Thanks for the response Shivoham,

I have tried many for loops but they seem not work.

The below code is what I was trying to do.

def compute_cheapest(self):
for rec in self:
partner = rec.env['purchase.order'].search([('partner_id', '=', rec.partner_id.id)])
for each_partner in partner:
line = each_partner.order_line
for item in line:
if item.product_id._________________:


item.write({'quality': True})
else:
item.write({'quality': False})

The place where I have put the dash is where I am stuck. How can I search in every vendor's oder_line and find similar products quoted by them. The cheapest price for that product I do the last code which I have written:

NB: I have set field quality to Boolean that's why in the end I am writting "True" or "False"

....
item.write({'quality': True})
else: item.write({'quality': False})

Or is there a better way to do it

아바타
취소
베스트 답변

Hello Leonard, 

You have to use loop in product vendor's list and take the minimum price from that and set it to order line. 

아바타
취소
관련 게시물 답글 화면 활동
3
4월 22
26708
1
12월 19
3515
0
12월 23
1605
1
2월 21
4130
Odoo Features 해결 완료
6
12월 23
18960