вот что получается без crm:
Код:
package ru.skyb.scripts.global;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.*;
import java.util.Date;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.bean.*;
public class archive extends GlobalScriptBase {
@Override
public void execute(Setup setup1, ConnectionSet connectionSet2)
throws Exception {
Connection con = connectionSet2.getConnection();
Calendar calendar = Calendar.getInstance();
GregorianCalendar nowDate = (GregorianCalendar) calendar.clone();// клонируем
// дату
// для
// дальнейшей
// работы
nowDate.get(Calendar.DATE);
GregorianCalendar sqlDate = (GregorianCalendar) calendar.clone();
Date dateSql = TimeUtils.convertCalendarToSqlDate(sqlDate);
Date dateNow = TimeUtils.convertCalendarToDate(nowDate);// переводим
// дату в тип
// Date с типа
// Calendar
String query = "select id from contract where gr&(1<<3)>0";
PreparedStatement contractPs = con.prepareStatement(query);
ResultSet contractRs = contractPs.executeQuery();
int cid;
int i = 0;
while (contractRs.next()) {
cid = contractRs.getInt(1);
ContractManager contract = new ContractManager(con);
Contract ct = contract.getContractById(cid);
/*
* getLastBalanceMonth public
* java.util.Date getLastBalanceMonth(Contract contract) возращает
* самый старший месяц, за который есть данные по Балансу
*/
BalanceUtils bu = new BalanceUtils(con);
BigDecimal summa5 = bu.getBalance(nowDate.getTime(), cid);
if (contract_balance == null) {
continue;
}
// ==========================close==============================//
int mounth = TimeUtils.monthsDelta(contract_balance,dateNow);
if (mounth > 3 )
{
print ("Контракт с сидом " + cid);
cpu = new ContractParamUtils( con );
cpu.setGroup( cid, 19 );
i++;
//это добавит группу
}
}
print("кол-во " +i );
contractRs.close();
contractPs.close();
}
как ее грамотно прикрутить=)