Ищу CRM под свои требования и жажду вашего совета. Пробовал много, но поверхностно. С одной стороны кажется что задачи тривиальные, с другой стороны поверхностный обзор нескольких систем показал что таких простых функций нет.
Итак, сущности: оператор, курьер, клиент и объект.
Объект является предметом работы. Объект хранит информацию о себе, которую могут редактировать операторы. По объекту заключается сделка, после чего объект считается отработанным.
Оператор создает новые объекты и отмечает все связанные с ним изменения. Так же он управляет курьерами, отправляя их на объекты для заключения сделок. Задача оператора — состыковать время проведения сделки, а это значит что надо договориться с объектом, договориться с клиентом и назначить сделку на время, в которое доступен курьер.
Клиент, ровно как и объект, сущность временная и интересная ровно до поры заключения сделки. Клиентов в систему так же заводит оператор и отмечает все связанные с ним изменения.
Курьером является человек «в свободном плавании». Он нужен только на время встречи с объектом и клиентом. В остальное время он нам не интересен.
Итак, мы имеем много операторов, много курьеров, клиентов и объектов. По распоряжению оператора три прочие сущности могут перемешиваться в любом порядке. Например на пару клиент-объект два подряд идущих раза могут приходиться разные курьеры. Глобальная задача системы управления — состыковать в нужное время эти 4 сущности. Одной из частных задач является управление временем курьеров: надо сделать так чтобы все доступные курьеры были примерно одинаково заняты в течение месяца. Или надо сделать так чтобы в настоящий момент для выезда можно было отправить только свободных в настоящее время курьеров (и тех которые были заняты в последний раз наиболее давно, аки round-robin).