BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Нетривиальная задача
СообщениеДобавлено: 30 май 2013, 21:33 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Добрый день!

Занимаюсь задачей переноса данных из старого биллинга в bg. Написал скрипт, все хорошо перенеслось, несколько месяцев обкатывалось в работе. Теперь подступает час X и надо делать окончательный перевод. Но проблема в том, что за эти месяцы в тестовой bg базе работали не только с договорами, но и с различными справочниками и конфигурациями модулей, приводя их к нужному, рабочему виду.
Вот и встал вопрос - можно ли как-то удалить из базы только договора (и связанные с ними сущности модулей)? Посмотрел ContractManager - увы, нет там функции удаления договора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нетривиальная задача
СообщениеДобавлено: 30 май 2013, 22:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
public void execute( Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
      print("Start");
      Connection con  = connectionSet.getConnection();
      //
      ContractRemover cr = new ContractRemover( setup, con, null );
      long timeStart = System.currentTimeMillis();
      // удаление ранее загруженных договоров
      String query = "SELECT id FROM contract WHERE gr & (1<<?) != 0";
      PreparedStatement ps  = con.prepareStatement( query );
      ps.setInt( 1, LOADED_GROUP );
      ResultSet rs = ps.executeQuery();
      int count = 0;
      while ( rs.next() )
      {
         cr.deleteContract( rs.getInt( 1 ) );
         ++count;            
      }
      ps.close();
      print( "Removed " + count + " contracts..." );
      long timeEnd = System.currentTimeMillis();
      print( "Process time: " + (timeEnd - timeStart)/1000 + " s." );
   }

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нетривиальная задача
СообщениеДобавлено: 01 июн 2013, 10:37 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нетривиальная задача
СообщениеДобавлено: 06 июл 2013, 10:09 
Не в сети
Клиент

Зарегистрирован: 15 мар 2009, 14:04
Сообщения: 1337
Карма: 12
Извиняюсь, вот только сейчас дошел до реализации этой задачи. Полез в доки на классы и не могу найти там ContractRemover. Какое у него полное имя? И может дока по нему какая есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нетривиальная задача
СообщениеДобавлено: 06 июл 2013, 13:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вам как полностью код класса выложить? :D Он длинный 672 строки.
А в доке его нет.
отправил в лс

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


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

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


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

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


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

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