Алгоритм
Получить первое по дате перемещение, связанное с заказом на перемещение
Получить плановую дату закрытия заказа (когда заказ должен быть закрыт)
Получить значение константы Период формирования перемещений по заказу на перемещение, рабочих дней
Получить значение первого перемещения. Привести дату к первому рабочему дню
К дате первого перемещения по заказу прибавить количество рабочих дней из константы
Если начало текущего дня больше плановой даты закрытия заказа, тогда выполнить процедуру Отмена неисполненных строк заказа на перемещение
Отмена неисполненных строк заказа на перемещение (процедура)
Получить все строки заказа на перемещение
Получить группировку строк по характеристике. Для каждой характеристики вычислить:
В заказе = сумма всех позиций данной характеристики в заказе
Перемещено = количество перемещений данной позиции по заказу (регистр сведений Заказы на перемещение, расход по заказу)
Отменено - количество по позиции с признаком отменено
К отгрузке = В заказе - (Отменено + Перемещено)
Если Количество в строке с товаром <> Перемещено тогда
Если (К отгрузке > 0) И (В заказе > К отгрузке) тогда:
В строке с товаром указать Количество = Перемещено
Добавить строку с этим же товаром и Отменено = Истина, Количество = К отгрузке
Если уже есть строка в которой Отменено = Истина и количество < В заказе, тогда
Уменьшить неотмененную позицию
Увеличить отмененную
Провести заказ
Закрыть заказ
Добавить комментарий