[AVP] Зависимые статусы заказов

Модуль позволяет выстроить цепочку разрешений на смену статусов заказов. Изменить текущий статус заказа можно будет только на разрешенное значение. Два варианта работы модуля: мягкое предложение и строгое следование.

Настройки модуля:

Возможные варианты режима:

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

мягкое предложение - Режим предлагает в выпадающем списке статусов для изменения текущего статуса заказа - только разрешенные статусы в соответствии с настройками модуля. Модули, использующие встренные функции, по прежнему могут менять статус заказа на любое значение.

строгое следование - Для смены статуса заказа, как и ранее, предлагаются все варианты статусов. Однако при смене статуса происходит проверка на допустимые значения. Если смена статуса запрещена выбранными вариантами - смена статуса не происходит и выводится предупреждение.

использовать оба правила - Используются оба правила. Предлагаются только доступные варианты для смены статуса заказа. При попытке сменить статус заказа программно - также выйдет предупреждение и статус не будет изменен.

Зачастую первого мягкого режима достаточно, так как пользователь вручную может выбрать новый статус только из предложенных вариантов, тогда как модули смогут изменять статусы так, как было в них заложено. Во втором, строгом, варианте режима, модуль не сможет изменить статус заказа на запрещенный, и это вызовет ошибку.

Вторая вкладка настроек модуля:

Описание таблицы:

В таблице для каждого статуса слева отметьте в колонках те статусы, на которые возможен переход из текущего статуса заказа. Также отметьте статусы, являющиеся начальными (обычно это статусы Открыт и Ожидает звонка), и финальными (закрывающими работу с заказом. Если вы работаете с мультевендором - последняя строка в таблице позволяет указать, какие статусы доступны вендорам для управления.

Примечание: начальные, финальные и доступные вендорам - в ближайших планах и пока эти строки в таблице не показаны.

При редактировании или создании нового статуса - в нем также выводится список для выбора возможных вариантов для изменения статуса:

Теперь на списке заказов менеджерам смогут изменить статус заказа только на тот, который в настройках модуля/статуса был отмечен как разрешенный

Аналогично на детальной странице заказа

Если войти в редактирование заказа - оставил пока доступными все возможные варианты для изменения статуса. Также, если вы - Главный администратор, и в настройках поставлена галочка - игнорировать настройки Главным администратором - вы также будете видеть все возможные статусы в поп-апе.

По всем вопросам - пишите в личку

4 лайка

Здравствуйте с MV совместим?

По идее да, совместим полностью. Но хотелось бы протестировать. В планах, как и написал - добавить в настройки строку - статус доступен для вендора (если статус для вендора недоступен, он будет видеть его как статус заказа, но не сможет его ни на что изменить)

1 лайк

Блииннн. Шикарный модуль.То что недоступные пункты скрываются вообще огонь.

Вот кстати вопрос на засыпку. Вот это место

Я склоняюсь к тому, что при выборе нескольких заказов - здесь выводить разницу доступных статусов для статусов выделенных заказов, т.е. те статусы только, в которые можно перевести ВСЕ выделенные. Если перекрестных статусов для выделенных не будет - то и в этом блоке будет пусто. Потому что правильнее выделить только нужные и требующие похожей операции, или через поиск их найти и выделить все. А так - поможет избежать ошибки, когда например среди десяти Открытых случайно попадется один Аннулированный - и все будут переведены в статус В работе.
Есть конечно вариант - выводить в этом выпадающем списке сумму доступных статусов для выделенных. тогда контроллер при получении данных будет проверять, возможна ли смена статуса (как в режиме строгого соответствия). Но над этим вариантом я еще размышляю.

+1

имхо лучше текст повествующий почему там пусто

*** а вообще ниразу массово статусы не меняли…
может только на тестовых заказах, которые сам к ряду делал

покопался сейчас - для массового изменения статусов надо js писать, чтобы после каждого выбора заказа для списка менял состав попапа со списком статусов для изменения.
Так что тоже поле для раздумий пока

Предложение - позволять массовое изменение только для заказов с одинаковым статусам.
Имхо это проще всего.