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

Приостановление договоров
http://forum.bitel.ru/viewtopic.php?f=22&t=3958
Страница 1 из 1

Автор:  logicall [ 28 апр 2010, 14:46 ]
Заголовок сообщения:  Приостановление договоров

Всем добрый день.

Пытаюсь написать скрипт приостановки договоров по достижению баланса равного 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 апреля?

Может кто-то уже делал такое и может подсказать?

Автор:  logicall [ 05 май 2010, 10:13 ]
Заголовок сообщения:  Re: Приостановление договоров

Никто не сталкивался с таким вопросом? А? :(

Автор:  SafeAndSound [ 05 май 2010, 11:31 ]
Заголовок сообщения:  Re: Приостановление договоров

Видимо, надо смотреть в сторону класса LimitManager.

Автор:  logicall [ 05 май 2010, 12:36 ]
Заголовок сообщения:  Re: Приостановление договоров

SafeAndSound писал(а):
Видимо, надо смотреть в сторону класса LimitManager.

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

Автор:  snark [ 05 май 2010, 12:53 ]
Заголовок сообщения:  Re: Приостановление договоров

может что-то в духе этого?
Код:
limitChangeTask = new LimitManager(con).getFullTaskList();

if (!limitChangeTask.isEmpty()) {
    limitChangeTaskDate = limitChangeTask.getDate();
}

<сравнить 2 даты>;

писано на коленке!

Автор:  logicall [ 05 май 2010, 13:59 ]
Заголовок сообщения:  Re: Приостановление договоров

snark писал(а):
может что-то в духе этого?
Код:
limitChangeTask = new LimitManager(con).getFullTaskList();

if (!limitChangeTask.isEmpty()) {
    limitChangeTaskDate = limitChangeTask.getDate();
}

<сравнить 2 даты>;

писано на коленке!

спасибо. попробую

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