BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 04 июн 2024, 12:53

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 24 ] 
Автор Сообщение
 Заголовок сообщения: Определить режим списания АП [5.1]
СообщениеДобавлено: 07 сен 2010, 22:09 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Добрый день.
Подскажите пожалуйста, как в 5.1 определить, какой режим списания АП (подневной или помесячный) у абонента?
Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 07:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Посмотреть в дереве его тарифного плана?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 12:57 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Cromeshnic писал(а):
Посмотреть в дереве его тарифного плана?

Как я это делал в 4.6 - не получается, null там. А как это делается правильно в 5.1?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 13:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
а можно скрины?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 14:20 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
skyb писал(а):
а можно скрины?

Какие скрины? Код? В 4.6 этой функцией доставал,а тут нет.

Код:
public String getTarifCalcMode( cid, Calendar date )
{
   SID = 1;
   MID = 2;

   cost_month = null;
   cost_day = null;
   cost_type = null;
   calc_mode = null;
   calc_type = null;

   // поиск параметров абонплаты
   tts = new ContractManager( con ).getRealtimeTariffTreeSet( cid, date, "npay", MID, true );

   print("DEBUG: cid="+cid+" tts="+tts);

   for( TariffModuleTree tree : tts.getTreeList( date ) )
   {
      req_cost = new TariffRequest();
      req_cost.setRequestParam( "action", "calculate" );
      req_cost.setRequestParam( "sid", SID );
      req_cost.setRequestParam( "month_days", 1 );
      req_cost.setRequestParam( "period_days", 1 );
      req_cost.setRequestParam( "time",  date );
      tree.processRequest( req_cost );
      cost_month = (Double)req_cost.getResponseParam( "cost" );
      cost_type = req_cost.getResponseParam( "cost_type" );
 
      req_calc_mode = new TariffRequest();
      req_calc_mode.setRequestParam( "action", "reset" );
      req_calc_mode.setRequestParam( "sid", SID );
      req_calc_mode.setRequestParam( "time",  date );
      tree.processRequest( req_calc_mode );
      calc_mode = (String)req_calc_mode.getResponseParam( "calc_mode" );
      calc_type = req_calc_mode.getResponseParam( "calc_type" );
   };

   print("DEBUG: cid="+cid);
   print("DEBUG: cost_month="+cost_month);
   print("DEBUG: calc_mode="+calc_mode);
 
   if (cost_month == null || calc_mode == null)
   {
      error ("Параметры абонплаты не найдены");
      return "";
   };

   return calc_mode;

}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 14:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
тьфу блин, запутали, вы бы написали что как это скриптом вытянуть, а то как посмотреть...в тарифе в дереве, а скриптом я хз

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 14:55 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
+1, я тоже думал глазами посмотреть.

В 5.0 к запросу на тарификацию добавились ещё тарифные опции. Посмотрите декомпилером в коде.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 15:00 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Cromeshnic писал(а):
+1, я тоже думал глазами посмотреть.

В 5.0 к запросу на тарификацию добавились ещё тарифные опции. Посмотрите декомпилером в коде.


Может сотрудники компании лучше скажут как :) Декомпилер, код - как-то уж серьезно больно :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 19:32 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Ну ответьте плиз кто нибудь? Второй день абонентов не можем отключить - скрипты не работают. Обновились называется... :(
Сумму абонплаты как получить понятно. Сейчас это стало удобнее. Но вот каким образом посмотреть какой именно тариф у абонента - с подневным или помесячным снятием -- не понятно. Это нужно для того, чтобы одним скриптом, делать проверку как тех, так и других абонентов, запуская скрипт каждый день, а не раз в месяц.
Может конечно можно сделать два скрипта, но все равно абонентов надо как-то идентифицировать. Хоть по группам раскидывай...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 сен 2010, 19:55 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Похоже я отстал от жизни и не научился читать доки...

http://bgbilling.ru/v5.1/doc/ch16s07.html

Т.е. никаких скриптов не надо? Биллинг сам этой задачей будет проверять порог и в случае нехватки средств для снития АП, отключать договор?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2010, 03:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
О_о вы бы вначале научились задавать вопросы, а потом получали бы на них правельные ответы. :) а то только через несколько постов только стало понятно что вам нужно.
Да, нечего больше не нужно, функционал дебитовых абонплат работает замечательно, сам использую и доволен/
http://wiki.bgbilling.ru/index.php/%D0% ... 1%81%D0%B0
вот в догонку, мне было нужно, мож и вам понадобиться :)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2010, 12:30 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
skyb писал(а):
О_о вы бы вначале научились задавать вопросы, а потом получали бы на них правельные ответы. :) а то только через несколько постов только стало понятно что вам нужно.
Да, нечего больше не нужно, функционал дебитовых абонплат работает замечательно, сам использую и доволен/
http://wiki.bgbilling.ru/index.php/%D0% ... 1%81%D0%B0
вот в догонку, мне было нужно, мож и вам понадобиться :)


Согласен - какой вопрос, такой и ответ :D

Судя по выдержке из той же документации

Цитата:
При приходе платежа и открытии договора производится переначисление абонентских плат до текущей даты с учётом нового статуса.


Теперь биллинг и договора сам после внесения платежа открывает?

PS: За ссылочку спасибо - пригодиться. Правда раньше статуст "приостановлен" не обязательно должен был быть из-за нехватки средств. Но по сути пойдет и такая схема.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2010, 12:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
mikos писал(а):
Теперь биллинг и договора сам после внесения платежа открывает?

Да. У меня тоже работает - нареканий нет.

mikos писал(а):
Правда раньше статуст "приостановлен" не обязательно должен был быть из-за нехватки средств.

В дебетовых абонплатах договор закрывается статусом "закрыт".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2010, 12:52 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
да, биллинг по приходу будет сам разблокировать. Статус там закрыт, а не приостановлен :)
опередил ))))

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09 сен 2010, 12:59 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Отлично. Спасибо ребят!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 17:50 
Не в сети
Аватара пользователя

Зарегистрирован: 19 мар 2009, 16:15
Сообщения: 210
Откуда: Уфа
Карма: 27
Cromeshnic писал(а):
В 5.0 к запросу на тарификацию добавились ещё тарифные опции. Посмотрите декомпилером в коде.

Ай-яй-яй :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 сен 2010, 18:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Наоборот для развития биллинга помогаем вам! зы я недекомпилю

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 12:39 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
а ну не разводить тут опенсорс :facepalm:

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 13:20 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Ну, а что делать, если в документации нет, а хочется "определить режим списания АП"? :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 сен 2010, 13:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Cromeshnic писал(а):
Ну, а что делать, если в документации нет, а хочется "определить режим списания АП"? :)

задать вопрос на форуме? :D

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 дек 2010, 01:17 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
И все таки - как из скрипта узнать какой режим АП стоит - помесячный или подневной?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 апр 2011, 20:29 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
UP - снова актуально.

Есть абонент. У него тариф. Надо в скрипте узнать какой тип списания у этого тарифа - подневной или помесячный?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2011, 07:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Попробуйте так:

Код:
      ContractManager contractManager = new ContractManager(con);
      TariffTreeSet tts = contractManager.getRealtimeTariffTreeSet(cid, Calendar.getInstance(), "npay", mid, true);
      if(null==tts){
         return result;
      }
      TariffSetEntry tse = tts.getTreeEntry(Calendar.getInstance());
      if(null==tse){
         return result;
      }
      TariffModuleTree mtree = tse.getTreeForDate(Calendar.getInstance());
      if(null==mtree){
         return result;
      }

      //Получаем id дерева
      int treeid = mtree.getTreeId();      //tariff_tree.id
      int mtree_id=0;      //module_tariff_tree.id
      int mtree_parent_id=0; //module_tariff_tree.id
      PreparedStatement ps;
      ResultSet rs;
      
      String query = "select id, parent_tree from module_tariff_tree where tree_id=? and mid=?";
      try {
         ps = con.prepareStatement(query);
         ps.setInt(1,treeid);
         ps.setInt(2,mid);
         rs = ps.executeQuery();
         if(rs.next()){
            mtree_id = rs.getInt(1);
            int tmp_parent_tree_id = rs.getInt(2); //tariff_tree.id
            rs.close();
            //получаем по tmp_parent_tree_id -> mtree_parent_id
            if(tmp_parent_tree_id>0){
               ps.setInt(1,tmp_parent_tree_id);
               ps.setInt(2,mid);
               rs = ps.executeQuery();
               if(rs.next()){
                  mtree_parent_id = rs.getInt(1);
               }
               rs.close();
            }
         }
         ps.close();
      } catch (SQLException e) {
         log.error(e.getMessage(), e);
      }


      //Выгребаем нужные узлы дерева модуля с кодом mid (включая унаследованные)
      // - Ищем узел услуги с кодом sid
      int service_node_id = 0;
      query = "select id, type from mtree_node where (type=\"day_mode\" or type=\"month_mode\" or type=\"year_mode\") and (mtree_id = ? or mtree_id = ?) and instr(data,\"sid&"+sid+"\")>0";
      try {
         ps = con.prepareStatement(query);
         ps.setInt(1, mtree_id);
         ps.setInt(2, mtree_parent_id);
         rs = ps.executeQuery();
         if(rs.next()){
            service_node_id = rs.getInt(1);
            type = rs.getString(2);
         }
         rs.close();
      } catch (SQLException e) {
         log.error(e.getMessage(), e);
      }


Ну только instr(data,\"sid&"+sid+"\") надо переделать, чтобы при поиске, скажем, услуги 44 не попадалась услуга 444.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2011, 21:53 
Не в сети
Аватара пользователя

Зарегистрирован: 23 мар 2009, 23:16
Сообщения: 780
Откуда: St.Petersburg
Карма: 0
Спасибо, примерно понял как выковырнуть.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.073s | 65 Queries | GZIP : On ]