Привет.
Есть такое ТЗ.
Нужно сделать ограничение по отгрузке продукции с указанным сроком годности. То есть нужно установить ограничение в % или в месяцах (должен быть выбор) и продукция, которая не соответствует ограничению, не может быть реализована клиенту.
К примеру, я устанавливаю минимальный срок годности 12 месяцев и это означает, что в заказ покупателя при подтягивании серии не может попасть товар с остаточным сроком менее или равно 12 месяцам даже если такой товар есть в свободном остатке на складе.
Это же касается ограничения в % от общего срока годности.
К примеру общий срок годности 24 месяца это 100%.
Если мы укажем что остаточный срок годности должен быть 70% то это означает (24/100*70=16,8месяцев) что в расход попадает продукция с остаточным сроком годности больше чем 16,8 месяцев.
Если укажем 50% то соответственно больше 12 месяцев может попасть в расход.
Если общий срок 36 месяцев и при ограничении 70%, в расход попадает продукция с остаточным сроком больше чем 25.2месяца.
Эти настройки должны делаться в договоре с контрагентом.
Если ограничение не установлено, то программа тянет серии из имеющихся в свободном остатке по методу FIFO.
Если устанавливается ограничение в месяцах то параллельно установить ограничение в % невозможно на один и тот же договор и наоборот если устанавливается ограничение в % то окно для установки ограничения в месяцах становится неактивным.
При удалении установленного ограничения два окна активны при установлении любого ограничения в одно окно, второе становится неактивным.
В случае если заказано продукции больше чем есть в свободном остатке, программа разбивает строку заказанной единицы на несколько строк соответственно сериям, которые будут реализованы, учитывая ограничения, и создает еще одну строку где указывается количество, которое не может быть реализовано из-за отсутствия остатков, которые могут быть реализованы. То есть если заказано 1000 единиц из которых мы можем реализовать 500 единиц, а другие 500 или отсутствуют на остатке или с неподходящим сроком, то программа создает отдельную строку на эти 500шт с пустой серией.
Все эти действия выполняются при нажатии кнопки заполнить серии по методу FIFO.
При повторном нажатии программа не должна дублировать строки с пустыми значениями серии.
Настройка должна выполняться через AniDesk через нашего пользователя.