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

I need to get product quantity on product onchange. There is a model stock_quant, which records all quantity activity.

How can I get the available quantity of the product? I am writing following function and getting stock_quantity lines but not sure how to filter out the available quantity - 

    @api.multi    
    @api.onchange('product_id')
    def product_location_change(self):
        if self.product_id:
            stock_qty_obj = self.env['stock.quant']
            stock_qty_lines = stock_qty_obj.search([['product_id', '=', self.product_id.id]])
            print stock_qty_lines
             # TODO: GET AVAILABLE QUANTITY OF THE PRODUCT
아바타
취소
작성자 베스트 답변

For All Warehouse this is how the quantity can be checked:

product = self.env['product.product'].browse(PRODUCT_ID)
available_qty = product.qty_available

For specific warehouse/location:

product = self.env['product.product'].browse(PRODUCT_ID)
available_qty = product.with_context({'warehouse' : WAREHOUSE_ID}).qty_available
available_qty = product.with_context({'location' : LOCATION_ID}).qty_available


Other fields are:

Forecasted Stock => virtual_available
Incoming Stock => incoming
Outgoing Stock => outgoing

I added necessary quantity to my function.


More details are here - http://stackoverflow.com/questions/40210605/how-to-get-products-available-quantity-odoo-v8-and-v9




아바타
취소

if i want to specific company so whats my query ?

Something odd happens using this. if you do it for two warehouses both results will be the same results as the first one. any ideas whats the problem?

베스트 답변

Add a loop to the stock lines:

def product_location_change(self):
        if self.product_id:
            stock_qty_obj = self.env['stock.quant']                       
stock_qty_lines = stock_qty_obj.search([['product_id', '=', self.product_id.id]])
            print stock_qty_lines           
# TODO: GET AVAILABLE QUANTITY OF THE PRODUCT               

available_quantity = 0           
for row in stock_qty_lines:
available_quantity += row.quantity #change for your quantity field
           
print available_quantity


HTH

아바타
취소
작성자

I am not asking to sum up my models line item. I know this already.

Want to find out the product quantity from stock_qty or stock_move table with locations.

베스트 답변

This module will help you

https://www.odoo.com/apps/modules/10.0/product_qty_in_multi_warehouse/

아바타
취소
작성자

Thanks. But I have already solved.

관련 게시물 답글 화면 활동
0
6월 16
2703
2
3월 15
4973
2
7월 22
4849
2
12월 20
2808
1
10월 17
3406