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

Рассчитать абонплату на будущие месяц
http://forum.bitel.ru/viewtopic.php?f=19&t=5482
Страница 1 из 1

Автор:  rix [ 16 май 2011, 19:38 ]
Заголовок сообщения:  Рассчитать абонплату на будущие месяц

Можно ли в BGBS рассчитать наработку (можно с начислением, можно без него) по абонплатам абонента на заданный месяц? Как это сделать с прошлым или текущим с помощью SQL - понятно, а вот что делать с будущими месяцами - ума не приложу.

Автор:  skyb [ 17 май 2011, 03:11 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

rix писал(а):
Можно ли в BGBS рассчитать наработку (можно с начислением, можно без него) по абонплатам абонента на заданный месяц? Как это сделать с прошлым или текущим с помощью SQL - понятно, а вот что делать с будущими месяцами - ума не приложу.

Код:
import java.math.*;
import bitel.billing.server.npay.Calculator;
import bitel.billing.common.TimeUtils;

public void main(setup, con, conSlave)
{
      Calendar dt = new GregorianCalendar();
      dt.set(Calendar.DAY_OF_MONTH ,31);

      Calculator calculator = new Calculator();
      print(TimeUtils.convertCalendarToDateString(dt));
      calculator.setExecutingTime(dt);
      calculator.setPreCalc();
      calculator.initTask(setup, 0, "mid=4");
      calculator.setCids("46");
      calculator.startTask();

      if (!calculator.isCalcErrors())
      {
        BigDecimal planAccount = BigDecimal.ZERO;
        Map planAccountMap = calculator.getCostCache().getContractAccounts();
        for (Integer contractId : ru.bitel.common.Utils.stringToIntegerList("46"))
        {
        if(planAccountMap.get(contractId)!=null){
                     planAccount = planAccount.add((BigDecimal)planAccountMap.get(contractId));
        }
        }

      print(planAccount);
      }
}

не помню чей, на вики есть

Автор:  Cromeshnic [ 17 май 2011, 06:46 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

Туда же, может пригодится

Автор:  rix [ 17 май 2011, 12:34 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

skyb писал(а):
calculator.initTask(setup, 0, "mid=4");

Я эту операцию делаю внутри табличного отчета, там в процедуре нет на входе переменной setup. Как ее можно получить вручную?
Цитата:
setup - объект класса bitel.billing.server.util.SetupData, конфигурация сервера биллинга
, но как работать с этим классом нигде не написано.

Автор:  Cromeshnic [ 17 май 2011, 12:44 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

Получить можно так:
Setup.getSetup();

Автор:  rix [ 17 май 2011, 12:54 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

Cromeshnic писал(а):
Получить можно так:
Setup.getSetup();

Пробовал так,
Код:
Setup setup = Setup.getSetup();

и так
Код:
SetupData setup = SetupData.getSetup();

пишет, что класс не найден, несмотря на то, что в начале
Код:
import bitel.billing.server.util;

Автор:  rix [ 17 май 2011, 13:01 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

Все, разобрался. Нужно было делать
Код:
import ru.bitel.bgbilling.server.util.Setup;

Автор:  Cromeshnic [ 17 май 2011, 13:14 ]
Заголовок сообщения:  Re: Рассчитать абонплату на будущие месяц

или
Код:
import ru.bitel.bgbilling.server.util.*;

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