forum.bitel.ru http://forum.bitel.ru/ |
|
как синхронизировать тарифы и группы? http://forum.bitel.ru/viewtopic.php?f=22&t=2840 |
Страница 1 из 1 |
Автор: | survivor [ 07 сен 2009, 14:34 ] |
Заголовок сообщения: | как синхронизировать тарифы и группы? |
Добрый день! Никак не могу понять, как в биллинге реализуются действия над группами договоров! Не в теории (с этим все ясно), а на практике. Допустим мне надо посмотреть сколько в биллинге договоров тарифа A. Простая и нужная задача. Захожу в отчеты, отчет по договорам.... там нет фильтра по тарифам. Но есть фильтр по группам. Вторая задача - мне надо перевести всех пользователей тарифа A на тариф B. Захожу в сервис, групповые операции, смена тарифа. Все OK, но сначала, нужно найти договора, а для этого нужно зайти в договор, открыть договор, но и там нет фильтра по тарифам! Но есть фильтр по группам. Логика разработчиков становится понятна - я создаю группы с такими же названиями, что и тарифы (удивляет только очень ограниченное количество возможных групп), добавляю пользователей тарифа A в группу A и начинаю с ними работать. Но, после первого же действия (смена тарифа), все рассинхронизируется! А если еще пользователь сам поменяет себе тариф? Если все в биллинге завязано на группы, как группы привязать к ПРЯМЫМ свойствам договора (хотя бы к текущему тарифу)? Может я чего-то не догоняю? Спасибо заранее! |
Автор: | skn [ 07 сен 2009, 14:58 ] |
Заголовок сообщения: | |
если вам надо всех пользователей тарифа А перевести на тариф Б, не проще просто поменять тариф А на Б что касается смены, то у пользователя может быть не один тариф а несколько, да еще с разными позициями, так что процедура замены, далеко не тривиальна в общем случае.... |
Автор: | survivor [ 07 сен 2009, 17:20 ] |
Заголовок сообщения: | |
Хм... ну почему же - логика простая: для всех договоров, у которых среди тарифов присутствует тариф A, поменять его на тариф B. Хотя, в принципе, можно действительно поменять прямо тариф... Ну хотя бы просто посмотреть количество договоров с каким-то тарифом можно штатными средствами? Это было бы очень удобно. |
Автор: | Amir [ 07 сен 2009, 17:28 ] |
Заголовок сообщения: | |
В модуле отчетов есть отчет по тарифам. |
Автор: | survivor [ 30 сен 2009, 18:30 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Итак, конец месяца - у нас смена тарифных планов, соответственно, у меня есть конкретная задача из реальной жизни. И я в затруднении... сейчас есть тарифы (опуская детали): А1, А2, А3, А4 делаем новые: Б1, Б2, Б3, Б4 меняем по схеме: А1 -> Б2 А2 -> Б4 А3 -> Б3 А4 -> Б3 Почему так? Потому, что в этом случае стоимости новых и старых тарифов совпадают и клиент по умолчанию платит как платил, но получает большую скорость или трафик. Если же он хочет перейти на другой тариф (например с меньшей стоимостью - он это сделает сам когда захочет). Новый тариф Б1 имеет цену ниже чем самый дешевый старый тариф и поэтому на него автоматом никого не переводим. Такая схема очень практична, так как при снижении тарифов не дает резкого скачка в доходах в сторону понижения, если клиенты и переходят на более дешевые тарифы, то убыток компенсируется ростом абон базы. Просто изменить тарифы я не могу так как есть новый тариф Б3, на который мне нужно перевести сразу два тарифа А3 и А4.... Если делать через групповые операции - то сначала я должен найти пользователей для которых хочу поменять тариф, а поиска по старому (текущему) тарифу нет - есть только поиск по группам. Хорошо, что у меня есть у каждого пользователя группа соответствующая текущему тарифу. Делаю поиск по группам, захожу в групповые операции, меняю тариф А3 на Б3. Повторяю для тарифа А4. Но как теперь выправить соответствие групп тарифам - через какое-то время мне же придется опять менять тарифы и соответствие групп тарифам опять может оказаться нужным. Групповой операции смены группы нет... Если просто переименовать группу А3 в Б3. Но что делать с группой А4? Вообщем.... Как же менять тарифы? ![]() |
Автор: | Amir [ 30 сен 2009, 18:54 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Стандартных средств так сделать нет, обычно просто периоды в самом тарифе делают. Но можно добавить все договора с определенным на сегодняшнее число тарифом в определенную группу таким запросом: Код: UPDATE contract LEFT JOIN contract_tariff ON contract_tariff.cid=contract.id AND (contract_tariff.date1 IS NULL OR contract_tariff.date1<=DATE(NOW())) AND (contract_tariff.date2 IS NULL OR contract_tariff.date1>=DATE(NOW())) SET contract.gr = contract.gr | (1<<6) WHERE contract_tariff.tpid=4 Т.е. всех у кого сейчас активен тариф с кодом 4 добавить в группу с кодом 6. |
Автор: | survivor [ 30 сен 2009, 19:18 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Отлично! Спасибо за совет! Хорошо бы этот функционал в интерфейс клиента добавить... Например, в групповые операции как "изменение группы" А если бы еще и в открытии договора можно было искать по тарифу... Неужто кроме меня это никому не нужно? "обычно просто периоды в самом тарифе делают" - а вот это не понял, можно чуть подробнее, плз. |
Автор: | Amir [ 30 сен 2009, 19:22 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Там же есть ветка период. Ее можно использовать, если у тарифа что-то изменилось. Не во всех случаях конечно, особенно если надо объединить два тарифа в один. |
Автор: | survivor [ 01 окт 2009, 15:10 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Вообщем - переехал я на новые тарифы успешно, спасибо за помощь! Но есть еще вопрос: ![]() теперь у меня рассинхрованы группы и тарифы и мне их надо снова синхронизировать. Как привязать группу пользователям с известным тарифом я уже знаю, но перед установкой новых групп мне сначала нужно отвязать от пользователей старые группы. Согласно документации bgs_user_group - привязка пользователя к группам, но select по этой таблице дает сомнительные результаты... Подскажите, пожалуйста, sql с помощью которого я бы мог у всех пользователей убрать группу N. Тогда моя задача будет полностью решена. Спасибо заранее! |
Автор: | Amir [ 01 окт 2009, 15:48 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Привязка пользователя к группам, а не договора к группам - в смысле пользователя биллинга. Тоже самое, что и раньше только Код: contract.gr = contract.gr ^ (1<<6) Это будет убрать группу с кодом 6 из договора. Там битовая маска. |
Автор: | snark [ 01 окт 2009, 19:32 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
какая интересная тема ... при чем она далеко не одинока (1, 2, 3) |
Автор: | Администратор [ 06 окт 2009, 14:53 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
А почему при изменении цен в тарифе вы не используете узел "Период"? Он вроде для этого и предназначен.. |
Автор: | snark [ 06 окт 2009, 16:03 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
Администратор писал(а): А почему при изменении цен в тарифе вы не используете узел "Период"? Он вроде для этого и предназначен.. пожалуй есть 2 основных причины:
касательно тарифов на мой взгляд сейчас не хватает необходимости наличия функционала массовой смены тарифов с опред. даты, по аналогии с услугами P.S. я правильно понимаю что кол-во пользователей в тарифах можно узнать вот таким запросом? Код: SELECT tp.title AS tariff, COUNT(DISTINCT ct.cid) AS num_of_users FROM contract_tariff AS ct LEFT JOIN tariff_plan AS tp ON tp.id = ct.tpid LEFT JOIN contract AS c ON c.id = ct.cid WHERE ((ct.date1 IS NULL OR ct.date1 <= DATE(NOW())) AND (ct.date2 IS NULL OR ct.date2 >= DATE(NOW()))) AND !(tp.id IS NULL) AND !(c.id IS NULL) GROUP BY ct.tpid ORDER BY tariff, num_of_users может сделаете какой нить пункт меню вызвав который можно было бы увидеть такую табличку не покупая модуль отчетов? дело даже не в его цене, а в том что, IMHO, сухая статистика должна быть неотъемлемой частью ядра, а модуль отчетов пусть предоставляет более глубокие аналитические данные, раз уж Вы не хотите сделать его такой же частью ядра как trayInfo и карточки |
Автор: | stark [ 07 окт 2009, 10:47 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
2 snark . вам нужно количество - так можете сделать себе такой отчет в модуле отчетов и выложить его в wiki. какая вам разница смотреть это в модуле отчетов или видеть эту "сухую аналитику" в ядре ? |
Автор: | snark [ 07 окт 2009, 13:09 ] |
Заголовок сообщения: | Re: как синхронизировать тарифы и группы? |
stark писал(а): вам нужно количество - так можете сделать себе такой отчет в модуле отчетов и выложить его в wiki. какая вам разница смотреть это в модуле отчетов или видеть эту "сухую аналитику" в ядре ? сделать и выложить - не вопрос! вопрос в том как заставить начальство выделить по сути сущие копейки на модуль отчетов, чтобы уже в нем отчеты делать, а не в виде php страничек ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |