로트별로 Odoo 재고 업데이트

1901 단어 apipythonodoo
Odoo 재고 관리는 큰 도전입니다. 1-20개 제품 취급 ? 문제 없어요. 1000-20000을 처리합니까? 문제가있다.

이 기사에서는 특정 LOT의 재고를 업데이트하는 방법에 대해 설명합니다.

이 페이지 하단에 저장소가 있습니다.

LOT를 기반으로 재고를 업데이트하면 몇 가지 장점이 있지만 이 경우에는 속도에 중점을 둡니다. 시작하자.
  • LOT가 위치한 모든 위치의 ID를 가져옵니다.
  • 반복하고 필요한 모든 정보를 얻습니다.
  • 위치를 덮어씁니다.

  • 1. 부지가 있는 모든 위치를 확보하십시오.




    lotty= ‘iamalotid1234’
    
     lotty_product_location = models.execute_kw(db, uid, password, 'stock.quant', 'search_read', [['&', ['lot_id', '=',lotty],['on_hand','=',True]]])
    
    


    이것을 분해합시다.

    스크립트는 두 가지 작업을 수행합니다.

    'lotty'의 lot_id와 'on_hand'가 true인 'stock.quant'를 검색합니다.

    2. 일부 데이터를 반복하고 정리합니다.




     for i in lotty_product_location:
            print("{0} - {1} - {2}".format(i['location_id'] 
                  [1],i['product_id'][1],i['quantity']))
    
    


    3. 데이터가 깨끗해 보입니다. 모든 것을 0으로 덮어씁니다.




    update_qty = models.execute_kw(db, uid, password, 'stock.quant', 'write', [[lotty_product_location[0]['id']], {'available_quantity': '0','quantity': '0'}])
    
    


    수량을 다른 것으로 변경할 수 있지만 지금은 인벤토리가 업데이트되었는지 확인하기 위해 0을 수행하겠습니다.

    참고: 'available_quantity' 및 'quantity'를 모두 업데이트해야 합니다.

    완료

    좀 더 멋지게 필터링과 논리를 추가할 수 있지만 지금은 로트를 기반으로 모든 인벤토리를 업데이트할 수 있습니다.

    앞으로는 수량이 x 금액이고 제품이 특정 제품인 경우 모든 재고를 업데이트하는 것과 같은 좀 더 복잡한 스크립트를 만들 것입니다.

    https://github.com/thetrebelcc/Odoo_lot_inventory_updates

    좋은 웹페이지 즐겨찾기