Нужно чтоб с автопродлением была только одна подписка и нельзя было поставить автопродление на закончившуюся подписку
Код:
@Override
public int subscriptionUpdate(Subscription subscription)
throws BGException
{
Connection con =getConnection();
int subId=subscription.getId();
int contractId = subscription.getContractId();
try (SubscriptionDao subscriptionDao = new SubscriptionDao(con, SMIDID, 0) )
{
if (subscription.isAvtoCommit()){
PeriodWithTime subscriptionPeriod = subscription.getPeriod();
if ( !TimeUtils.timeInRange( new Date(), subscriptionPeriod.getDateFrom(), subscriptionPeriod.getDateTo() ) )
{
throw new BGMessageException( "Период подписки еще не наступил или уже закончился" );
}
List<Subscription> subslist=subscriptionDao.list(contractId);
for (Subscription sub : subslist){
if (!sub.equals(subscription) && sub.isAvtoCommit()){
sub.setAvtoCommit(false);
subscriptionDao.update(sub);
}
}
}
}
return subId;
}
Если ставлю в редакторе флаг в закончившейся подписке, нажимаю Сохранить, выдает exception. Нажимаю Отмена и в подписке сохраняется флаг. Как этого избежать? И что-то не нашел, какое int должен возвращать subscriptionUpdate, поставил от фонаря ид подписки?