ООО "Рассвет". Преимущество первых

Сформировать заказ на перемещение аптеку (тип фоновой операции)

Назначение

Рассчитывает и формирует заказ на перемещение в аптеку по основной матрице с типом Автозаказ. Выполняется для каждой аптеки отдельно

Многопоточное

нет

Приоритет

 

Количество попыток

 

Параметры

Склад

Параметры процедуры

Параметр

Тип

Параметр

Тип

Склад

Справочник.Склады

Алгоритм

  • Получить для аптеки ближайшую возможную дату получения товара согласно: Производственного календаря аптеки, Графика доставки в аптеку, Производственного календаря центрального склада

  • Получить такую максимально ближайшую дату, чтобы между датой сборки и отгрузки прошло не более 3-х дней (то есть исключить обычные выходные склада)

Пример 1

Расчет происходит ночью с четверга на пятницу. Ближайшая доставка в аптеку в понедельник. Сб, Вс - выходные на центральном складе

Заказ формируется. Дата сборки - пятница, дата отгрузки - понедельник.

Пример 2

Расчет происходит ночью с четверга на пятницу. Ближайшая доставка в аптеку во вторник. Сб, Вс - выходные на центральном складе

Заказ не формируется, чтобы не ставить товар в резерв

Заказ сформируется в ночь с воскресенья на понедельник. Дата сборки - понедельник, дата отгрузки - вторник

Пример 3

Расчет происходит ночью с четверга на пятницу. Ближайшая доставка в аптеку во вторник. Сб, Вс - выходные на центральном складе. Но аптека не работает ближайшую неделю по причина отпуска единственного сотрудника

Заказ не формируется, чтобы не ставить товар на неделю в резерв

Заказ сформируется в ночь за день до следующей доставки в аптеку, когда она будет работать. То есть еще через неделю

Это позволит не держать в резерве лишний товар, но отгружать его в максимально близкие к рабочим дням всех подразделений

Разделение заказов

Разделять заказы по количеству SKU, указанному в константе Максимальное количество строк в заказе на перемещение

Изменить алгоритм разделения:

К_Макс - Константа максимальное количество строк в заказе К_Строк - количество строк которое необходимо заказать Количество заказов = Округлить до целого в большу сторонру (К_Строк / К_Макс) К_Ост - остаток от деления Количество строк в заказе = К_Строк / Количество заказов. Это количество строк в одном формируемом заказе В последний заказ добавить остаток отделения

Такая корректировка позволить реализовать следующее разделение:

Если к заказу 51 SKU, тогда система сформирует заказы с 25 и 26 строками. Сейчас система формирует заказы с 50 и 1 строкой, что менее удобно

Расчет заказа

  • Рассчитать по аптеке К заказу по основной матрице (с учетом чеков в аптеке)

    • Если с момента открытия аптеки прошло количество дней меньше или равно Период с момента открытия, в течение которого торговая точка считается новой
      И

    • С момента закрытия прошло количество дней больше или равно, чем Период с момента закрытия, в после которого торговая точка считается новой ИЛИ предыдущего закрытия не было (то есть точка новая)
      ТОГДА

    • Формировать заказ на перемещение с типом Автозаказ по колонке Максимум по матрице торговой точки

  • Если получена хотя бы одна строка товара к заказу, тогда сформировать заказ на перемещение

Создание заказа

Учесть ограничение на количество строк в заказе

Тип заказа: Автозаказ

Дата отгрузки - полученная дата отгрузки

Комментарий: Автоматический заказ по основной матрице