forum.bitel.ru http://forum.bitel.ru/ |
|
Тайный потомок http://forum.bitel.ru/viewtopic.php?f=22&t=11981 |
Страница 1 из 1 |
Автор: | Inspire [ 05 окт 2016, 12:26 ] |
Заголовок сообщения: | Тайный потомок |
Нужно удалить модуль dialup в тарифе. Как в таком случае узнать потомка? Вложение: Безымянный.png [ 9.89 КБ | Просмотров: 12469 ] |
Автор: | skyb [ 05 окт 2016, 12:51 ] |
Заголовок сообщения: | Re: Тайный потомок |
Видимо какой то тариф наследован от этого |
Автор: | Inspire [ 05 окт 2016, 12:54 ] |
Заголовок сообщения: | Re: Тайный потомок |
Наследован. Обычно в таком случае в окне пишется название этого тарифа. Как тут , например. Вложение:
|
Автор: | dimOn [ 05 окт 2016, 13:29 ] |
Заголовок сообщения: | Re: Тайный потомок |
ну с бд в связях что-то |
Автор: | Inspire [ 05 окт 2016, 13:33 ] |
Заголовок сообщения: | Re: Тайный потомок |
dimOn писал(а): ну с бд в связях что-то это поправимо? |
Автор: | Ildar [ 05 окт 2016, 14:22 ] |
Заголовок сообщения: | Re: Тайный потомок |
А вы просто в наследниках не можете убрать переопределения? Или не можете их найти? |
Автор: | Inspire [ 05 окт 2016, 14:54 ] |
Заголовок сообщения: | Re: Тайный потомок |
Не могу найти. В списке тарифов его нет. Поэтому он должен быть в персональных тарифах. Можно этот список как-то получить? |
Автор: | Ildar [ 05 окт 2016, 15:07 ] |
Заголовок сообщения: | Re: Тайный потомок |
SELECT * FROM tariff_plan where id=141; 141 - код тарифа Взять его tree_id SELECT * FROM module_tariff_tree where parent_tree=210 где 210, ранее взятый tree_id Вот у вас есть список всех tree_id. Теперь надо найти к какому тарифу данные ветки относятся. Так как персональные, то ищите в contract_tree_link. SELECT * FROM contract_tree_link where tree_id=<один из наследуемых tree_id> Можно конечно все это несколькими join-ами объединить. |
Автор: | Inspire [ 05 окт 2016, 15:46 ] |
Заголовок сообщения: | Re: Тайный потомок |
Ildar писал(а): SELECT * FROM tariff_plan where id=141; 141 - код тарифа Взять его tree_id SELECT * FROM module_tariff_tree where parent_tree=210 где 210, ранее взятый tree_id Вот у вас есть список всех tree_id. Теперь надо найти к какому тарифу данные ветки относятся. Так как персональные, то ищите в contract_tree_link. SELECT * FROM contract_tree_link where tree_id=<один из наследуемых tree_id> Можно конечно все это несколькими join-ами объединить. Отлично! Только не помогло. Потому что в результатах запроса пусто. И в tariff_plan и в contract_tree_link |
Автор: | Ildar [ 05 окт 2016, 16:12 ] |
Заголовок сообщения: | Re: Тайный потомок |
А вы вставили верный id? Не было оставлено 141, как в примере запроса? Потому как, если он вам не выдал тариф, то его как бы и нет ![]() |
Автор: | Inspire [ 05 окт 2016, 16:44 ] |
Заголовок сообщения: | Re: Тайный потомок |
Ildar писал(а): А вы вставили верный id? Не было оставлено 141, как в примере запроса? Потому как, если он вам не выдал тариф, то его как бы и нет ![]() Конечно Вложение:
|
Автор: | Inspire [ 05 окт 2016, 17:23 ] |
Заголовок сообщения: | Re: Тайный потомок |
Еще вопрос: а как найти персональный тариф по id в биллинге? |
Автор: | Ildar [ 05 окт 2016, 17:39 ] |
Заголовок сообщения: | Re: Тайный потомок |
Не понятно как получилось, что осталась висеть ветка модуля. При удалении они не остаются. Inspire писал(а): Еще вопрос: а как найти персональный тариф по id в биллинге? SELECT * FROM contract_tree_link WHERE id=?? Но id пер. тарифа ни где не фигурирует в клиенте, насколько помню. |
Автор: | Inspire [ 05 окт 2016, 17:51 ] |
Заголовок сообщения: | Re: Тайный потомок |
Ildar писал(а): Не понятно как получилось, что осталась висеть ветка модуля. При удалении они не остаются. Inspire писал(а): Еще вопрос: а как найти персональный тариф по id в биллинге? SELECT * FROM contract_tree_link WHERE id=?? Но id пер. тарифа ни где не фигурирует в клиенте, насколько помню. Спасибо. Я имею ввиду в клиенте биллинга. Тем не менее они остались. Как их удалить? |
Автор: | Ildar [ 05 окт 2016, 17:54 ] |
Заголовок сообщения: | Re: Тайный потомок |
А ветки есть, точнее листья? select * from mtree_node where mtree_id=461 |
Автор: | Inspire [ 05 окт 2016, 18:01 ] |
Заголовок сообщения: | Re: Тайный потомок |
Ildar писал(а): А ветки есть, точнее листья? select * from mtree_node where mtree_id=461 нету |
Автор: | Ildar [ 06 окт 2016, 10:34 ] |
Заголовок сообщения: | Re: Тайный потомок |
Тогда удалить запись: DELETE FROM module_tariff_tree where id=895 LIMIT 1 или обновить запись предка: UPDATE module_tariff_tree SET parent_tree=0 where id=895 LIMIT 1 |
Автор: | Inspire [ 06 окт 2016, 13:58 ] |
Заголовок сообщения: | Re: Тайный потомок |
Сделал, получилось удалить. Спасибо. parent_tree=0 - это означает без наследников? Еще есть один тариф. В нем при удалении модуля в клиенте вылезает такая же ошибка. Но в отличие от предыдущего у него в результатах запроса есть наследники. Проблема как я выяснил в том, что в одном из наследников в базе указан cid договора, которого не существует. Мистика ![]() Вот скрин Вложение: Что порекомендуете делать? |
Автор: | Ildar [ 06 окт 2016, 14:05 ] |
Заголовок сообщения: | Re: Тайный потомок |
Да, есть косяк, он исправлен пока только в 7.0. При удалении договора не удалялись персональные тарифы. Чтобы проще было удалить тариф со всеми узлами, присвойте cid к существующему договору, далее зайдите в этот договор и удалите тариф. |
Автор: | Ildar [ 06 окт 2016, 14:08 ] |
Заголовок сообщения: | Re: Тайный потомок |
Inspire писал(а): parent_tree=0 - это означает без наследников? Да, точнее без предка. |
Автор: | Ildar [ 06 окт 2016, 14:36 ] |
Заголовок сообщения: | Re: Тайный потомок |
Получить все висячие персональные тарифы: Код: SELECT * FROM contract_tree_link AS ctl
LEFT JOIN contract AS c ON c.id=ctl.cid WHERE c.id IS NULL |
Автор: | Inspire [ 06 окт 2016, 16:10 ] |
Заголовок сообщения: | Re: Тайный потомок |
Ок, разобрался. Собственно ради чего я все это затеял - это сменить во всех тарифах модуль dialup на Inet. Может, можно это sql запросом сделать? А то тарифов многовато |
Автор: | Ildar [ 06 окт 2016, 16:20 ] |
Заголовок сообщения: | Re: Тайный потомок |
А у вас они все персональные? Думаю в любом случае просто sql не получиться, сомневаюсь что структура всех узлов и значений будет идентична между двумя модулями( а так, конечно достаточно было бы изменить mid ). Нужно будет писать скрипт который пробежит по дереву тарифа( если они все шаблонные ) возьмет нужные значения и создаст на основе них тариф для inet и удалит старый(ветку либо тариф) |
Автор: | Inspire [ 06 окт 2016, 16:35 ] |
Заголовок сообщения: | Re: Тайный потомок |
По структуре только расширяющий модуль dialup на Inet надо заменить. Поэтому все получилось. Спасибо вам. Помогли. |
Автор: | Inspire [ 06 окт 2016, 16:58 ] |
Заголовок сообщения: | Re: Тайный потомок |
Кнопку оповестить об изменениях не надо будет в этом случае нажимать? |
Автор: | Ildar [ 06 окт 2016, 17:06 ] |
Заголовок сообщения: | Re: Тайный потомок |
Скорее всего надо. Либо перезапустите Accounting после всех изменений. Планировщик тоже не узнает до следующей перезагрузки, но на вас это не должно отразиться, вроде, это же не npay. |
Автор: | Inspire [ 07 окт 2016, 14:28 ] |
Заголовок сообщения: | Re: Тайный потомок |
А что можно сделать с глючными тарифами, у которых нет дерева на соответствующей вкладке в клиенте? Проблема в том, что они не удаляются. Отвечает ошибкой "не найдено дерева тарифа" Вложение: Безымянный.png [ 7.27 КБ | Просмотров: 12391 ] Может, просто удалить запись с тарифом в табилице? Вложение: Безымянный1.png [ 11.54 КБ | Просмотров: 12391 ] |
Автор: | Ildar [ 07 окт 2016, 16:01 ] |
Заголовок сообщения: | Re: Тайный потомок |
Что-то у вас не здоровое происходит с тарифами. Да, удалите. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |