Высвобождение остаточного резервирования

Высвобождение остаточного резервирования#

Снимает резерв типа Res в регистре оборотов Wms_RegTurn для выполненных позиций отгрузки.

Скрипт используется в ситуации, когда из-за сбоя в модуле WMS резерв типа Res в регистре оборотов Wms_RegTurn не списался после выполнения позиции отгрузки. Скрипт находит такие позиции и выполняет корректирующее списание резерва.

Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт

Тип: JEXL-скрипт

// поиск выполненных позиций отгрузки, по которым остался ненулевой резерв
for (s : sql(`select rt.gidsrcobj
   from wms_regturn rt
   join wms_shipdet s
     on s.gid = rt.gidsrcobj
  where stype = 'Res'
    and s.idoperstate = (select id from wms_operstate where norder = 300)
  group by gidsrcobj
  having sum(rt.nqtysm1) <> 0`).asList()) {

  // загрузка позиции отгрузки
  var rop = Wms_ShipDetApi.loadByGid(s.gidsrcobj);

  // повторное проведение движения между состояниями для списания остаточного резерва
  Wms_ShipDetApi.doOutLot(rop, Wms_OperStateApi.idgDone(), Wms_OperStateApi.idgReg());
  Wms_ShipDetApi.doOutLot(rop, Wms_OperStateApi.idgReg(), Wms_OperStateApi.idgDone());
}