Всем добрый день.
Пытаюсь написать скрипт приостановки договоров по достижению баланса равного 0. За основу взял готовый скрипт
http://wiki.bgbilling.ru/index.php/Скрипт_проверки_баланса_и_отключения_договора.
Но в нём не хватает одной проверки в моём случаи - проверки на временное понижение лимита.
Цитата:
....
BigDecimal limit = contract.getBalanceLimit();
print("лимит: "+limit);
// может, надо поставить новый лимит?
limit = limit.min(LIMITVALUE);
print("значение по которому проверяем: "+limit);
// соравниваем с лимитом
if( contract_balance.compareTo( limit ) >= 0 )
{
print("баланс хороший");
}
else
{
print("баланс плохой");
// суспендим договор
ContractStatus status = new ContractStatus();
status.setContractId( cid );
status.setDate1( DateNow );
status.setDate2( null );
status.setStatus( KernelConst.CONTRACT_STATUS_SUSPENDED );
status.setComment( "Недостаточно средств" );
contract_status_manager.changeStatus( status, 0 );
....
Я бы хотле ввести дополнительное условие на проверку временного монижения лимита рядом с сравнением лимита. Но что-то ума не приложу как получить данне о временном понижении... А точнее как увязать это с датами...
Т.е. у человека баланс стал равен "0" 20 апреля 2010 года. Этот клиент через Web понизил себе лимит временно до -250 рублей на 3 дня. Т.е. он если не внесёт на счёт денег до 24 апреля, то будет отключен.
Скрипт выполняется скажем 21 числа и получает, что у клиента баланс меньше "0", и переводит клиента в статус приостановлен.
Так вот как ввести проверку этого в скрипт, чтобы он не отключил клиента до 24 апреля?
Может кто-то уже делал такое и может подсказать?