Маршрут - это последовательность пунктов маршрута.
У маршрута есть такие параметры:
- наименование;
- дата отправки из первого пункта.
- дата доставки в последний пункт.
Возможные виды пунктов маршрутов:
- поставщики (спр. "Контрагенты");
- покупатели (спр. "Контрагенты");
- Склады (спр. "Склады").
У каждого пункта маршрута есть такие параметры:
- порядковый номер;
- дата, до которой нужно сделать заказ, чтобы успеть его отправить по этому маршруту
(имеет смысл для видов пунктов "поставщик" и "склад");
- дата прибытия в пункт;
- дата отправки из пункта.
У каждого отрезка между двумя пунктами есть такой параметр:
- стоимость доставки.
Нужно реализовать рабочее место по редактированию маршрутов.
Задачи рабочего места:
- заполнение маршрута (с "нуля" или скопировав другой маршрут);
- отображение маршрутов, которые проходят через определенный пункт (для самоконтроля).
Нужно реализовать функцию, которая будет возвращать возможные пункты отправки,
доступные на текущий момент времени для выбранного пункта доставки.
Входящие параметры:
- пункт доставки;
- граничная дата доставки (необязательный параметр).
Исходящий параметр - таблица с такими полями:
- пункт отправки;
- дата отправки;
- дата доставки;
- стоимость доставки;
- флаг минимальной стоимости доставки из пункта (т.е., самая дешевая доставка);
- флаг самой "ленивой" доставки из пункта (т.е. максимальная возможная дата отправки).
Алгоритм получения таблицы должен учитывать, что пункты могут быть связаны между собой как напрямую, так и через другие пункты. В таблице не должно быть не оптимальных маршутизаций - раньше отправка, позже доставка, больше стоимость доставки.
Если указана граничная дата доставки, то для пункта отправки должно вернуть только одну или две записи - запись с самой дешевой доставкой и/или запись c самой "ленивой" доставкой.
Простой пример маршрутизации: Склад1 » Склад2.
В результирующей таблице должны быть записи с пунктом Склад1, датой отправки с пункта Склад1, и датой доставки в пункт Склад2.
Сложный пример маршрутизации: Поставщик1 » Склад1 » Склад2 » Склад3 » Клиент1.
В результирующей таблице должна быть запись с пунктом Поставщик1, датой и времени отправки с пункта Поставщик1, и датой и временем доставки в пункт Клиент1. Стоимость доставки состоит из
суммы стоимостей доставки по 3 отрезкам (Поставщик1 » Склад1, Склад1 » Склад2, Склад3 » Клиент1. Каждый из отрезков может быть как из одного маршрута, так и из разных.
Это очень интересная и для многих актуальная задача, но и продумать в ней все очень не просто. Задача может показаться простенькой, но там много НО!!!
Работаю в крупной оптово-розничной орг-ие, с обширной клиентской сетью, как раз сейчас работаю над такой задачей.
Если интересно можем обсудить soltan_777@mail.ru
Выполнил несколько заказов по транспортной логистике, готов рассмотреть ваше задание. Сроки, стоимость и что необходимо написал в Личке.
aipnnov@yandex.ru
Здравствуйте, на этом сайте в моем портфолио есть функционал "Транспортная логистика", в которой есть очень многое из того, что Вам надо. Кроме этого, я отправил Вам в приватные сообщения более подробное описание и рисунки. Сделаны компоновка маршрутов, прокладка на карте, определение времени и длины, оптимизация маршрута. Конечно, Есть и отличия, которые можно будет обсудить. сроки и стоимость зависят от того, насколько то, что сделано, Вас устроит, и как много придется переделывать. Позвоните, все обсудим.