forum.bitel.ru
http://forum.bitel.ru/

[5.0] удаление договора.
http://forum.bitel.ru/viewtopic.php?f=19&t=9149
Страница 1 из 1

Автор:  braek-neck [ 11 апр 2014, 17:00 ]
Заголовок сообщения:  [5.0] удаление договора.

Всем доброго времени суток.
Поискал в api, но к сожалению не нашел как удалить договор скриптом. Подскажите плиз как это сделать.

Автор:  stark [ 11 апр 2014, 17:13 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

bitel.billing.server.contract.ContractRemover

Автор:  Phricker [ 11 апр 2014, 17:16 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

stark писал(а):
bitel.billing.server.contract.ContractRemover

Код:
// группа из которой надо удалить договора
   int LOADED_GROUP = 3;

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." );
   }



© wiki

Автор:  stark [ 11 апр 2014, 17:19 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

я бы не стал так делать. А кто удалит данные по всем модулям ?

Автор:  braek-neck [ 11 апр 2014, 17:23 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

спасибо.
я извиняюсь. а как можно узнать по подробнее о методах данного класса. к примеру договор можно ведь удалять с добавлением его в архив и без.

Автор:  skyb [ 11 апр 2014, 17:30 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

а скажите зачем удалять? там же балансы его, они похерятся
ещё на версии 5.0 мне 1 из девлоперов битела писал так

Код:
public void deleteContract( setup, con, cid )
{
   Contract contract = new ContractManager( con ).getContractByID( cid );
    if ( contract.getSuperId() != Contract.IS_INDEPENDENT )
    {
       print( "Возможно удаление только независимого договора!" );
        return;
    }
    Vector CID = new Vector();
    CID.addElement( new Integer( cid ) );

    ContractRemover cr = new ContractRemover( setup, con, folder );
    String error = cr.removeContracts( CID, save );
    if ( error != null && error.length() > 0 )
    {
      print( "Ошибка удаления договора! => "+error );
    }
}

Автор:  Phricker [ 11 апр 2014, 19:02 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

stark писал(а):
я бы не стал так делать. А кто удалит данные по всем модулям ?

Писать такое без примеров и объяснения причин - дурной тон.

Автор:  stark [ 11 апр 2014, 19:06 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

Phricker писал(а):
stark писал(а):
я бы не стал так делать. А кто удалит данные по всем модулям ?

Писать такое без примеров и объяснения причин - дурной тон.


Не понял. Я же написал причину - модули не удалятся, как минимум. Параметры и прочий мусор в базе останется от этого договора.

Автор:  stark [ 11 апр 2014, 19:08 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

Phricker писал(а):
stark писал(а):
bitel.billing.server.contract.ContractRemover

Код:
// группа из которой надо удалить договора
   int LOADED_GROUP = 3;

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." );
   }



© wiki

Пардон, не заметил что тут тоже ContractRemover. Мельком глянул и решил, что там запросом удаляют .

Автор:  stark [ 11 апр 2014, 19:18 ]
Заголовок сообщения:  Re: [5.0] удаление договора.

Выложили описание этого класса
http://bgbilling.ru/v6.0/javadoc/bitel/ ... mover.html

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/