BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 24 июн 2025, 14:57

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
СообщениеДобавлено: 31 май 2012, 14:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
ситуация:
у человека баланс доходит до лимита - статус закрывается, шлюз блокируется "Недостаток средств для начисления абонплаты"
человек тыкает кнопочку "разблокировать на два дня" - лимит временно понижается, статус активен
два дня прошло - лимит вернулся в исходное положение, статус активен, деньги считаются, абонент негодует


в общем, задача срабатывает, когда баланс близок к лимиту (т.е. следующее списание сделает баланс ниже лимита)
но не срабатывает, когда баланс ниже лимита. планируется ли пересмотреть логику?


bill вер. 5.1 сборка 253 от 05.04.2012 13:13:38
npay вер. 5.1 сборка 206 от 28.03.2012 09:16:57

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


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

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Вообще, должно. Может у вас задача восстановления лимитов стоит после закрытия дебетовых договоров?


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

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
Изображение

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


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

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

Цитата:
Закрытие статусов договоров производится задачей планировщика Закрытие статуса NPay договоров по балансу запуск которой должен осуществляться в начале суток до переобсчёта абонентских плат.

В начале суток. А у вас почему-то в 23:45 стоит - как оно вообще работает? о_О


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

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
Cromeshnic писал(а):
А почему статус задачи = "не работает"?

а это другая задача)

Cromeshnic писал(а):
В начале суток. А у вас почему-то в 23:45 стоит - как оно вообще работает? о_О

ибо иначе за закрытый крайний день начисляется абонплата. я как всегда подглядел у скуба) у него так же

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июн 2012, 14:28 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
поговорите со мной)

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июн 2012, 14:34 
Не в сети
Клиент
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 июн 2012, 14:34 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
да:)
очень тревожные чувства вызывает данная тема

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


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

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
я снова одинок(

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
npay вер. 5.1 сборка 206 от 28.03.2012 09:16:57
мб апдейт?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
нее. ничего толком не поменялось с того билда http://bgbilling.ru/v5.1/download/npay/fixed

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 июн 2012, 15:35 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Yarlan Zey писал(а):
Изображение

Поставьте запуск задачи закрытия npay договоров сразу после окончания работы задачи восстановления лимитов и будет работать. Она вроде как и подразумевается что вначале дня должна блокировать чтобы за этот день абонка не снялась.


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Yarlan Zey писал(а):
Cromeshnic писал(а):
В начале суток. А у вас почему-то в 23:45 стоит - как оно вообще работает? о_О

ибо иначе за закрытый крайний день начисляется абонплата. я как всегда подглядел у скуба) у него так же

А вот и нет, я думал действительно как у меня и не смотрел на скрин, приложил мой, делай так

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 08:24 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
stark писал(а):
Поставьте запуск задачи закрытия npay договоров сразу после окончания работы задачи восстановления лимитов и будет работать. Она вроде как и подразумевается что вначале дня должна блокировать чтобы за этот день абонка не снялась.

Спасибо. Буду наблюдать

skyb писал(а):
А вот и нет

диверсант)

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 09:16 
Не в сети

Зарегистрирован: 20 апр 2011, 09:56
Сообщения: 346
Карма: 19
а я такой скрипт делал на событие изменения лимита, приход платежа, удаления платежа и занесение расхода.

Код:
package ru.rta.bgbilling.kernel.contractstatus;

import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import java.sql.*;
import java.util.Date;
import java.util.Calendar;

import ru.bitel.bgbilling.kernel.event.events.ContractStatusChangedEvent;
import ru.bitel.bgbilling.kernel.event.*;
import bitel.billing.server.contract.bean.*;

public class StatusChange
   extends EventScriptBase
{
   @Override
   public void onEvent( Event event, Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
   print ("Скрипт проверки статуса при добавлении, удалении прихода, при занесении расхода, при выставлении лимита.");
   Connection con = connectionSet.getConnection();
   Calendar calendar = Calendar.getInstance();
   int cid = event.getContractId();

   BalanceUtils bu  = new BalanceUtils( con );
   ContractManager cman = new ContractManager( con );
   Contract cn   = cman.getContractById( cid );
   ContractStatusManager contract_status_manager = new ContractStatusManager(con);
   ContractStatus status = contract_status_manager.getStatus(cid, new Date());
   java.math.BigDecimal balance = bu.getBalance(new Date(), cid);
   java.math.BigDecimal limit = cn.getBalanceLimit();
   long groups = cn.getGroups();

      if (status == null) //если ContractStatus null ничего не делаем
      {
         return;
      }

      if (groups == 2 || groups == 128 || groups == 256)
      {   
         
         print ("Эта группа договора не обрабатывается скриптом.  " + "Группы договора: " + groups);
         return;
      }      

      int contract_status = status.getStatus();   
      if (contract_status == 1 || contract_status == 2 || contract_status == 4 || contract_status == 5 || contract_status == 6){
      print("Этому договору нет необходимости проверять статус.");
      }
 
      if (contract_status == 3)
      {
         if (balance.compareTo(limit) >= 0)//если Баланс больше или равен лимиту (сравнение >< не понимает BigDecimal, читать про compareTo )
            {
               print ("Баланс больше лимита, разблокироваем." + "\n" + "Баланс: " + balance + "   Лимит:  " + limit + "   Группа:" + groups);
               status.setContractId( cid );
               status.setDateFrom(new Date());
               status.setDateTo( null );
               status.setStatus( 0 );
               status.setComment( "Баланс больше или равен лимиту" );
                   contract_status_manager.changeStatus( status, 0, false );
               EventProcessor.getInstance().publish(new ContractStatusChangedEvent(status, 0)); //вызываем событие смены статуса чтобы изменился статус шлюза
            }
         else { print ("Недостаточный баланс для разблокировки" + "\n" + "Баланс: " + balance + "   Лимит:  " + limit + "   Группа:" + groups); }
         //print ("Статус договора: Закрыт" + contract_status);
         
      }

      if (contract_status == 0)
      {
         if (balance.compareTo(limit) < 0)
            {
               print ("Баланс меньше лимита, блокируем." + "\n" + "Баланс" + balance + "   Лимит:  " + limit + "   Группа:" + groups);
               status.setContractId( cid );
               status.setDateFrom(new Date());
               status.setDateTo( null );
               status.setStatus( 3 );
               status.setComment( "Баланс меньше лимита" );
                   contract_status_manager.changeStatus( status, 0, false );
               EventProcessor.getInstance().publish(new ContractStatusChangedEvent(status, 0));//вызываем событие смены статуса чтобы изменился статус шлюза
            }
         else { print ("Блокировка не требуется" + "\n" + "Баланс" + balance + "   Лимит:  " + limit + "   Группа:" + groups); }
         //print ("Статус договора: Закрыт" + contract_status);
         
      }

   }

}



вроде работает все, нареканий не было...

... плохо вчитался, вам же для встроенного функционала режима дебетовых абонплат.


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

Зарегистрирован: 16 сен 2010, 11:53
Сообщения: 501
Карма: 15
вот у нас тоже скрипт был, но решили использовать стандартные средства. привыкаем потихоньку...

_________________
Клиент: вер. 7.0.806 / 29.04.2016 13:18:28 os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_66
Сервер: вер. 7.0.1035 / 29.04.2016 13:17:38 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_92


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

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
Встала аналогичная задача... не пойму один момент - допустим стоит задача "закрытие статуса NPay" в 00:05, а задача "начисления NPAY абонплат" как и полагается чуть позже в 00:15. Допустим тариф - один день=один рубль, снятие ежедневное.
Тогда при наступлении нового дня, при отсутствии денег на счету, в 00:05 договор закроется. Это правильно. Но есть ньюанс. :)
В этом случае, при создании абонента - деньги с него спишутся только на следующий день ночью в 00:15 и только за следующий день, а оставшуюся часть первого дня абонент будет работать бесплатно! Сейчас у меня задача "начисления NPAY абонплат" запускается каждую минуту и такой проблемы нет, но в этом случае некуда всунуть задачу "закрытие статуса NPay", которая должна отработать ДО первого начисления в этот день... Может выход - запускать каждый час? Тогда дарим всего час бесплатного интернета...
Или я что-то не так понимаю?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 июн 2013, 08:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
survivor писал(а):
В этом случае, при создании абонента - деньги с него спишутся только на следующий день ночью в 00:15 и только за следующий день, а оставшуюся часть первого дня абонент будет работать бесплатно!

Нет. Задача начисления абонплат полностью пересчитывает весь текущий месяц. Т.е. в данном случае за предыдущий день тоже начислит.

survivor писал(а):
Сейчас у меня задача "начисления NPAY абонплат" запускается каждую минуту и такой проблемы нет, но в этом случае некуда всунуть задачу "закрытие статуса NPay", которая должна отработать ДО первого начисления в этот день... Может выход - запускать каждый час? Тогда дарим всего час бесплатного интернета...
Или я что-то не так понимаю?


Ну во-первых, каждую минуту - слишком часто. Она сама может минут 40 работать.
Во-вторых, даже если каждую минуту, то нужно не запускать её до завершения закрытия по абонплатам.

Поставьте раз в пару часов и не парьтесь.
Например "2,4,6,8,10,12,14,16,18,20,22"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 авг 2013, 20:28 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 24 июн 2009, 17:49
Сообщения: 640
Карма: 10
решил вернуться к этой теме, фича вновь понадобилась :)
только как-то неудобно пользоваться ей. Допустим запускаю снятие наработки каждый четный час, а закрытие статуса - каждый нечетный. Тогда свежеподключившийся скажем в 15:30 абонент попадет на снятие наработки раньше чем на закрытие статуса и уйдет в минус.
Я для себя вывел такую схему:
-Снятие наработки в 23:30 каждый день
-Снятие наработки в 00:30 каждое первое число (чтоб не тянуть до вечера)
-Закрытие статуса каждый час.
Но это все работает только с вручную подключаемыми оператором абонентами. У меня же есть такая схема: абонент изначально после создания находится в состоянии "приостановлен", а когда его скоммутируют, когда он включит свой модем, скрипт по первому успешному подключению переведет статус в активен, а npay снимет деньги от текущей даты.
Хотел сделать чтобы при этом абонент не уходил в минус, а опять закрывался (штатными средствами. понятно что в своем скрипте проверку на баланс можно сделать), но похоже логика биллинга это не позволяет - ведь момент подключения может попасть на период между 23:00 и 23:30.


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

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


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

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


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

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