Вам может понравиться или не понравиться, но у меня есть опыт обработки склада и выполнения заказов. В моем личном жизненном опыте не требовался альго, а был набор инструментов для склада и обслуживания клиентов (надеюсь, это будет пищей для размышлений, а другие борются за мир разработки складских операций):
Если у вас есть 10 предметы на заказ.
У вас есть 9 в наличии
У вас есть 5 в одном месте и 4 в другом.
Вы разложили заказ. 1 продукт, который не может быть выполнен, становится «обратным порядком». Его можно отменить, потому что вы не знаете, когда вы или ваш поставщик поставит. Убедитесь, что вы держитесь за ссылки на авторизацию вашей кредитной карты.
9 оставшихся (выполненных изделий) на складе будут запрашиваться против вашего виртуального инвентаря складов для наилучших комбинаций.
В нашем случае мы делаем три вещи:
Может ли персонал выполнения на передаче Х склада в пункте другого склада легко? Да/Нет
Если да, то какие продукты могут быть переданы.
Это может потребовать взаимодействия с человеком, основанного на нагрузке на склад и его возможностях.
Если вы строго выполняете автоматизацию и виртуальную инвентаризацию, меняющуюся изо дня в день, вы даете ей наилучшее предположение против складских запасов.
Затем разделите заказ на два, со ссылками на основной заказ для бумажных трасс.
Затем вы печатаете в своих пунктах назначения и надеетесь, что они смогут выполнить, если они не могут, то, надеюсь, они могут частично выполнить заказ и создать обратный заказ, который может быть отменен по желанию клиента.
Так что в основном это то, что вам нужно для кода.
Оформить заказ Первый взгляд назад заказать раскол и ссылку на основной заказ. Инвентарь склад щуп функция. Взвешенный порядок разделения на основе виртуального инвентаря со ссылкой на основной заказ на основе возможностей хранилища для извлечения продуктов с других складов. Страница печати (функция склада) Функции ручного или частичного выполнения заказов (инструменты обслуживания клиентов) Соберите деньги только на том материале, который вы выполнили при маркировке как отправленном.
Соображения: Удостоверьтесь, что основной заказ ссылается на действия и порядок их действий. Удостоверьтесь, что заказы на расколы и частичные исполнения ссылаются на любой дополнительный обратный порядок и разделяются. Fullfill, что вы можете Отметьте отправленный. Соберите $$$ на товары, которые отправлены.
Надеюсь, это поможет и удачи !!!
Вам нужно указать немного больше: что произойдет, если заказчик закажет количество 'Q' выше уровня запасов' S' какого-либо склада? Другой склад должен доставлять все элементы 'Q', или они могут делиться заказом (т. Е. Первый склад отправляет элементы' S', другой - 'QS'? – blubb