Обновление инвентаризации Odoo по партиям

Управление запасами Odoo — это огромная проблема. Обрабатывать 1-20 продуктов? Нет проблем. Обработка 1000-20000? У нас есть проблема.

В этой статье я собираюсь рассказать о том, как обновить инвентаризацию определенного LOT.

Внизу этой страницы находится репозиторий.

Обновление инвентаря на основе LOT’ов имеет несколько преимуществ, но в данном случае я сосредоточился на скорости. Давайте начнем.

  1. Получите ID всех мест, где находится LOT.
  2. Сделайте цикл и получите всю необходимую информацию.
  3. Переписать местоположения.

1. Получите все местоположения, где находится лот.

lotty= ‘iamalotid1234’

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

Войти в полноэкранный режим Выйти из полноэкранного режима

Давайте разложим это по полочкам.

Скрипт делает две вещи.

Ищет ‘stock.quant’, у которого lot_id равен ‘lotty’ и ‘on_hand’ равен true.

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

Оцените статью
devanswers.ru
Добавить комментарий