BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 19:38

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 10 май 2018, 09:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Привет.
Переоформляли клиента будущим числом (с 11.05.2018), и в день, предшествующий дате переоформления (10.05.2018) перестал работать инет в модуле Inet.
Открываю договор - вижу, что учётный период на старом договоре закрыт 10.05.2018 00:00:00, хотя должен быть по логике закрыт 10.05.2018 23:59:59.
Поправил руками - заработало.

Смотрю код, вижу, что там не учитываются чч:мм:сс (в т.ч. в последней версии Inet для 7.0):

Код:
public void periodWrap(InetAccountingPeriod period, int cidTo, Date dateOpen)
    throws BGException
  {
    Calendar cal = Calendar.getInstance();
    cal.setTime(dateOpen);
    cal.add(5, -1);
    Date closeDate = cal.getTime();
    if (TimeUtils.dateBefore(period.getDateTo(), dateOpen)) {
      return;
    }
    InetAccountingPeriod newPeriod = period.clone();
    newPeriod.setContractId(cidTo);
    newPeriod.setId(0);
    if (TimeUtils.dateBefore(dateOpen, period.getDateFrom()))
    {
      periodDelete(period.getId());
    }
    else
    {
      period.setDateTo(closeDate);
      newPeriod.setDateFrom(dateOpen);
      periodUpdate(period);
    }
    periodUpdate(newPeriod);
  }


(5 - это Calendar.DAY_OF_MONTH)

Поправите?

Клиент: вер. 7.0.907 / 05.09.2017 19:43:08
os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_161
Сервер: вер. 7.0.1263 / 13.09.2017 20:33:05
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_144

inet: вер. 7.0.772 / 05.09.2017 19:44:59


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 май 2018, 09:09 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Кстати, в мониторе Inet пишется ошибка "[100] Ошибка сервера"
А в Dialup, насколько помню, писалось конкретно про отсутствие открытого учётного периода.
Но это уже косметика.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 май 2018, 17:14 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Выложим сегодня для 7.0.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 май 2018, 09:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Спасибо


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 июн 2018, 09:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Обновился, проверил - работает корректно, спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июл 2018, 13:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Есть ещё 2 бага:

1. При переоформлении проверяется учётный период на уаление:
Код:

    if (TimeUtils.dateBefore(dateOpen, period.getDateFrom()))
    {
      periodDelete(period.getId());
    }

Допустим, мы переоформляем с начала текущего месяца - тогда текущий учётный период закроется концом месяца:
dateOpen == 2018-07-01
period.getDateFrom() 2018-07-01

В итоге период будет некорректный на старом договоре:
dateFrom = 2018-07-01
dateTo = 2018-06-30

Кстати, возможно это объясняет, откуда могут образовываться дубли учётных периодов: https://forum.bitel.ru/viewtopic.php?f=44&t=11606

Видимо нужно сделать dateBeforeOrEq

2. При переносе сервиса с даты задним числом учётный период заводится потом только текущим числом (видимо при появлении текущей сессии). В результате на трафиковых тарифах сессии переносятся с начала текущего месяца например, но тарифицируются из них только те, которые стартовали с даты фактического переноса и далее.
Наткнулся на логин, который существует (с сессиями) с 01.05.2018, а учётный период - с 30.05.2018. И все сессии с 1 по 29 число бесплатны.
Видимо нужно в inetServMove также создавать учётные периоды.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 окт 2019, 13:21 
Не в сети
Клиент

Зарегистрирован: 15 ноя 2011, 17:56
Сообщения: 185
Карма: 0
В 6.2 поправите? (inet: вер. 6.2.751 / 05.06.2019 19:33:06)

_________________
Версия 6.2


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 окт 2019, 20:46 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
todo


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.119s | 34 Queries | GZIP : On ]