Показать сообщение отдельно
Старый 26.05.2004, 10:47   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Как я понимаю речь идет о сводном планировании ?

Если да, то он уже написан так, чтобы обеспечить план продаж - он будет планировать закупки, производства, генерить мероприятия и фьючерсы - даже если Вам уже очевидно, что "поезд ушел" и всем товара не хватит.

Решал похожую задачу с помощью небольшой модификации, которая заключается в следующем - запускалось стандартное сводное планирование, при этом генерились спланированные закупки, производства и переносы.
После этого запускалась написанная мною периодическая операция, которая делала следующее:
1) смотрела, сколько спланированно отгрузок
2) смотрела, сколько есть товара в наличии (об этом моменте чуть позже)
3) если 1) > 2), то система выводила форму в котором пользователю сообщалось, что невозможно отгрузить запланированное, так как его просто нет и предлагалось распределить наличие товара между желающими его получить. Алгоритмы распределения могут быть разные - например пропорционально желаниям. В Вашем случае я бы назначил клиентам некий рейтинг и распределял бы в порядке уменьшения этого рейтинга. Тогда клиенты с наибольшим рейтингом гарантированно получали бы товар.
4) После распределения пользователь закрывал форму и кол-во в спланированных запасах корректировалось в соответствии с распределенным.

Теперь о пункте 2). Смотреть наличие товара в данный момент в общем случае не корректно. Это нужно делать на момент отгрузки товара, так как за это время что-то может произвестись, закупиться и быть продано. Но определение наличия товара на складе на некий момент в будущем довольно не тривиальная задача (я уже писал об этом в форуме). К счастью, в моем случае можно было принять допущение, что товар распределяем в момент отгрузки, поэтому наличие на складах можно определять на данный момент времени.