Перейти к основному содержимому

Алгоритм расчета количества компонента к закупке или производству

Система сначала считает предварительное количество заказа с учетом потребности в заказах, регулярного потребления и текущего остатка. Затем итоговое КЗ ограничивается лимитом хранения на складе (ЛХС). Лимит хранения в цеху в расчете КЗ не используется.

Если итоговое КЗ меньше минимального значимого количества, рекомендация обычно не создается. Исключение можно включить глобальной переменной save_recomendations_with_not_null_quantity_to_supply_preliminary_and_null_quantity_to_supply: тогда система сохранит рекомендацию с КЗ = 0, если КЗ(предв) было ненулевым.

Что учитывается

Для каждой позиции используются:

  • ПВЗ - потребность в заказах;
  • ТО - текущий ликвидный остаток;
  • остаток в пути;
  • открытые перемещения, которые уменьшают или увеличивают ТО;
  • НОС - неснижаемый остаток из карточки товара;
  • ЛХС - лимит хранения на складе. Если лимит не задан, в расчете используется 0;
  • ИОХ - избыточный объем хранения;
  • РСМ - среднемесячное потребление за срок анализа, по умолчанию 6 месяцев;
  • РПМ - пиковое месячное потребление за тот же срок анализа;
  • СП - срок поставки или производства, дней;
  • ПП - период поставки или производства, дней;
  • КП - кратность поставки или производства.

ИОХ считается с учетом НОС:

ИОХ = max(ТО - ПВЗ - НОС + ЛХС, 0)

Текущий остаток

ТО считается по ликвидным местам хранения:

склад, цех, производство, в пути

Открытые перемещения корректируют ТО: исходящие из ликвидного места уменьшают остаток, входящие в ликвидное место увеличивают остаток.

Прогнозный расход

Система сравнивает РПМ и РСМ. Если потребление регулярное, добавляется прогноз на период поставки и срок поставки:

прогноз = РСМ * (ПП + СП) / 30

Если РПМ слишком сильно выше РСМ, расход считается нерегулярным и прогноз не добавляется. При отсутствии РСМ прогноз также не добавляется.

КЗ(предв)

Предварительное количество заказа:

КЗ(предв) = ceil(прогноз + ПВЗ - ТО)

Если задана КП, КЗ(предв) округляется вверх до ближайшего кратного значения:

КЗ(предв) = ceil(ceil(КЗ(предв) / КП) * КП)

Итоговое КЗ

Итоговое КЗ ограничивается ЛХС.

Если ЛХС не задан или равен 0:

если ПВЗ > ТО: КЗ = ПВЗ - ТО если ПВЗ <= ТО: КЗ = 0

Если после выдачи ПВЗ остаток уже превышает ЛХС:

если ТО - ПВЗ - НОС > ЛХС: КЗ = 0

Если предварительный заказ помещается в ЛХС:

если КЗ(предв) + ТО - ПВЗ - НОС <= ЛХС: КЗ = КЗ(предв)

Если предварительный заказ не помещается в ЛХС:

КЗ = ЛХС + ПВЗ - ТО

Если итоговое КЗ меньше КП, система добавляет к пояснению расчета дополнительный комментарий: доступный лимит хранения на складе не позволяет выполнить условие кратности поставки.

Когда рекомендация не создается

Рекомендация не создается, если итоговое КЗ меньше минимального значимого количества.

Если включена глобальная переменная save_recomendations_with_not_null_quantity_to_supply_preliminary_and_null_quantity_to_supply, такая рекомендация все равно сохраняется при ненулевом КЗ(предв). Это нужно, чтобы снабженец или мастер видел позицию, по которой предварительная потребность есть, но итоговое КЗ обнулено ЛХС.

На практике это значит, что:

  • текущий остаток закрывает ПВЗ;
  • после выдачи ПВЗ останется избыточный объем хранения;
  • лимит хранения не позволяет сформировать положительное количество заказа.

Коротко

КЗ(предв) = прогноз + ПВЗ - ТО, с округлением вверх и по КП КЗ = КЗ(предв), если КЗ(предв) + ТО - ПВЗ - НОС <= ЛХС иначе КЗ = ЛХС + ПВЗ - ТО

В подсказке по КЗ система дополнительно показывает комментарий, почему количество оставлено без изменений, уменьшено или не рекомендовано.