Формулировка проблемы: необходимо реализовать кейс системы управления взаимоотношениями с клиентами.
Решение: необходимо дополнить форму Сделка следующими компонентами:
Поле | Тип компонента | Имя компонента |
---|---|---|
Предыдущий статус |
выпадающий список (справочник «crm_dict_dealStatus») |
crm_form_deal_previous_status |
Время нахождения в статусе |
числовое поле |
crm_form_deal_previous_status_duration |
Просроченность |
числовое поле |
crm_form_deal_expired |
Переход в негативный статус |
числовое поле |
crm_form_deal_refused |
Общее:
Все новые компоненты скрыты.
Значения данных компонентов актуализируются в 00:00:00.
Поле "Предыдущий статус":
Значение поля - предыдущее значение поля "Статус" (crm_form_deal_main3_status).
Если статус сделки ранее не изменялся - поле содежит текущее значение поля "Статус" (crm_form_deal_main3_status).
Значение компонента актуализируется в 00:00:00.
Компонент скрыт.
Поле "Время нахождения в статусе":
Значение поля рассчитывается как:
дата и время сохранения текущего статуса - дата и время сохранения предыдущего статуса
Если статус сделки ранее не изменялся - поле содержит значение "0".
Значение компонента актуализируется в 00:00:00.
Компонент скрыт.
Поле "Просроченность":
Поле не может быть пустым.
Просроченность для сделки со статусом, имеющим значение crm_dict_dealStatus_end=1 или crm_dict_dealStatus_quality=0, не рассчитывается, поле содержит значение "0".
Значение поля определется условиями:
фактическое время нахождения в статусе больше либо равно значению поля "Продолжительность (в днях)" (crm_form_deal_flow_standart_duration) соответствующего статуса.
суммарное время нахождения в неконечных статусах больше либо равно сумме значений полей "Продолжительность (в днях)" (crm_form_deal_flow_standart_duration) всех неконечных статусов.
Примечание:
Для предрасчетов просроченности используется первая запись реестра "Нормативы продолжительности статусов сделки".
Если документ по форме имеет несколько значений "Продолжительность (в днях)" для одного статуса, в предрасчет идет последнее.
Если для статуса не указано значение "Продолжительность (в днях)" в предрасчет идет значение поля "Продолжительность по умолчанию (в днях)" (crm_form_deal_flow_standard_default_duration).
При смене статуса на предыдущий (согласно полю crm_dict_dealStatus_value справочника Статусы сделки) все продолжительности статусов аннулируются до того статуса, который будет являться предыдущим относительного нового.
Если выполняется хотя бы одно условие, описанное выше, то поле "Просроченность" содержит значение "1".
Если не выполняется ни одно условие, описанное выше, то поле "Просроченность" содержит значение "0".
Значение компонента актуализируется в 00:00:00.
Компонент скрыт.
Поле "Переход в негативный статус":
Поле не может быть пустым.
Значение поля определется текущим статусом:
Если выпадающий список "Статус сделки" имеет значение записи справочника Статусы сделки crm_dict_dealStatus_quality=0, поле "Переход в негативный статус" содержит значение 1.
Если выпадающий список "Статус сделки" имеет значение записи справочника Статусы сделки crm_dict_dealStatus_quality=1, поле "Переход в негативный статус" содержит значение 0.
Значение компонента актуализируется в 00:00:00.
Компонент скрыт.
Действие при обновлении системы
При обновлении системы поля "Предыдущий статус" (crm_form_deal_previous_status) и "Время нахождения в статусе" (crm_form_deal_previous_status_duration) заполнятся данными из скрытых компонентов формы Сделка. Других изменений быть не должно.