Персональные цены для договоров
Материал из BiTel WiKi
Внимание! Данное решение/метод/статья относится к версии 5.2 и для других версий может быть неактуальна! Вам нужно самостоятельно поправить решение под свои нужды или воспользоваться помощью на форуме. Будем признательны, если внизу страницы или отдельной статьёй вы разместите исправленное решение для другой версии или подсказки что надо исправить.
Введение
Очень часто, особенно при работе с юр лицами, возникает потребность установки персональной цены абонплат для стандартных тарифов. В текущей реализации биллинга это можно сделать только через персональные тарифы. Но персональные тарифы очень неудобны:
- Ломают отчёты по тарифам
- Осложняют внесение изменений в глобальные тарифы, от которых они наследованы
- Требуют специальных знаний и прав доступа для корректного использования
В результате было решено разработать собственное решение для поддержки персональных цен без применения персональных тарифов
Описание решения
Тезисно решение выглядит следующим образом
- Храним персональные цены на услуги в собственной таблице custom_tariff_cost: contract_tariff_id, sid -> value
- Меняем стандартную логику тарифного узла "стоимость" модуля абонплат: при наличии записи в custom_tariff_cost используем её вместо стандартной цены
- Пишем собственную серверную и клиентскую части интерфейса для управления переопределёнными ценами
- Дорабатываем выдачу списка тарифов договора для визуального отображения переопределённых цен
Скриншоты: