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

Получение предполагаемой наработки по абонплатам за месяц
http://forum.bitel.ru/viewtopic.php?f=16&t=4076
Страница 1 из 3

Автор:  Cromeshnic [ 25 май 2010, 14:05 ]
Заголовок сообщения:  Получение предполагаемой наработки по абонплатам за месяц

Есть необходимость "предсказывать" абонплату за текущий месяц, когда он ещё не закончился.
Как можно реализовать такое на BGBS?

Следующий тестовый код возвращает наработку по абонплатам на текущий момент:

Код:
      Calendar dt = new GregorianCalendar();
      dt.set(Calendar.DAY_OF_MONTH ,31);

      Calculator calculator = new Calculator();
      calculator.setExecutingTime(dt);
      calculator.setPreCalc();
      calculator.initTask(setup, 0, "mid="+mid);
      calculator.setCids(cids);
      calculator.startTask();

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

      print(planAccount);
      }


Как получить наработку, которая будет у клиента в конце месяца (если ничего не поменяется в договоре)?

Автор:  Cromeshnic [ 26 май 2010, 14:28 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Ап!
Господа разработчики, скажите, это возможно сейчас?
Если нет, то я отстану.

Автор:  Администратор [ 26 май 2010, 17:41 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Вообще данный код как раз и высчитывает планируемую к начислению наработку за месяц.
А чего у вас не сходится? Скрины что ли выложите..

Автор:  Cromeshnic [ 27 май 2010, 06:41 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Цитата:
Вообще данный код как раз и высчитывает планируемую к начислению наработку за месяц.

No, it's not :(

Код:
   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=16");
      calculator.setCids("172108");
      calculator.startTask();

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

      print(planAccount);
      }


На выходе скрипта:
Код:
COMPLETE_TIME: 27.05.10 09:29:38
PROCESS_TIME: 201

OUT:
2010-05-31
979.83


ERROR:


EXCEPTIONS:


WARNINGS:


В договоре:
Вложение:
172108.JPG
172108.JPG [ 7.72 КБ | Просмотров: 22254 ]


Тарифный план:
Вложение:
npay-M.JPG
npay-M.JPG [ 11.44 КБ | Просмотров: 22254 ]


Статус договора - активен с открытым периодом в течение всего месяца.

Т.е. этот код вычисляет сумму начислений по абонплатам только до текущего дня.

Автор:  Администратор [ 27 май 2010, 18:17 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Апдейт NPay для 5.0. Положите в BGBillingServer/lib, рестартуйте сервер и попробуйте выполнить скрипт.
http://www.bgbilling.ru/patch/5/npay.jar

Автор:  Cromeshnic [ 28 май 2010, 15:10 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Спасибо, работает :)

Код:
OUT:
2010-05-31
1125.00


Это попадёт в официальный апдейт?

Автор:  snark [ 28 май 2010, 16:59 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

подскажите, пожалуйста, как получить сабж в 4.6 ?

Автор:  Администратор [ 31 май 2010, 15:00 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Для 5.0 официальный апдейт выложен, для 4.6 невозможно - там режима предначисления не было.

Автор:  Cromeshnic [ 01 июн 2010, 07:31 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Администратор писал(а):
Апдейт NPay для 5.0. Положите в BGBillingServer/lib, рестартуйте сервер и попробуйте выполнить скрипт.
http://www.bgbilling.ru/patch/5/npay.jar

С этим файликом 1 числа стала неправильно считается абонплата за предыдущий месяц - начисление производится только за 2 дня. Откатил назад - всё стало нормально.
Официальный апдейт не пробовали - посмотрите, возможно там такая же проблема.

Автор:  Администратор [ 01 июн 2010, 14:04 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Проверил, всё корректно. Тестировал сменой даты на машине. У вас в scheduler.log информация не осталась?

Автор:  Cromeshnic [ 01 июн 2010, 15:10 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Как-то так, например:

Код:
06-01/09:50:15  INFO [Thread-10] TaskRunProcessor - Running Task: bitel.billing.server.npay.Recalculator@2f213a05
06-01/09:50:15  INFO [pool-1-thread-4] Recalculator - PaymentRecalculator time: 01.05.2010 00
06-01/09:50:15  INFO [pool-1-thread-4] Utils - Memory total: 1 635 450 880; max: 1 908 932 608; free: 1 064 450 800
06-01/09:50:15  INFO [pool-1-thread-4] Utils - Memory pools:
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Memory total: 1 635 450 880; max: 1 908 932 608; free: 1 064 450 800
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Setting balances for independ and subs..
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Selected.
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Selecting sub account
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Selected.
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Setting balance for super..
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Selected.
06-01/09:50:15  INFO [pool-1-thread-4] Calculator - Task finished time=26 ms.


В логах ничего крамольного.

После выставления счетов обновимся и посмотрим, как будет.

Автор:  Администратор [ 01 июн 2010, 18:08 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

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

Автор:  Cromeshnic [ 07 июн 2010, 16:03 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Обновились до версии npay 217
Запускаю начисление по всем договорам за текущий месяц - снова наработка считается только за один день.
Причем как при индивидуальном начислении, так и при глобальном.
Откатываюсь до 213 путём замены файлика npay.jar, перезапускаю сервер, делаю начисление - всё в порядке.
Пробую обновить npay принудительно:
останавливаю сервер, планировщик и лоадер.
Затем:
Код:
# ./bg_installer.sh npay_5.0_217.zip!
 06-07/18:42:22  INFO [main] DefaultServerSetup - Init DB connection pools
 06-07/18:42:22  INFO [main] DefaultServerSetup - Init trash pools..
 06-07/18:42:22  INFO [main] DefaultServerSetup - Init DB connection pools
 06-07/18:42:22  INFO [main] DefaultServerSetup - Init trash pools..
Module: npay already installed.
Data extract finished...
Extract data => OK
Database updated...
Install ticket inserted..
Base update => OK
Reinit module instanses
REINIT module => 16
Module Instance init => OK
Executing call AddSchedulerTasks; param: pay.sc
Scheduled class bitel.billing.server.npay.Calculator already exists!
Scheduled class ru.bitel.bgbilling.modules.npay.server.task.DebetStatusManageLocker already exists!
Result => true
Executing call PutFile; param: npay.xml:actions
Result => true
Execute calls => OK
File's copy finished...
File copy => OK
Module npay was successfull installed!
Please, restart BGBilling server.

Запускаю севрер, лоадер и планировщик, перезапускаю клиент, убеждаюст в версии модуля в меню "Справка" -> "О программе"
Запускаю начисление - снова ошибка.
В итоге обратно откатился до 213. Сейчас имею:
Сервер - сборка 744 от 03.06.2010
npay вер. 5.0 сборка 213 от 13.05.2010 12:02:54

Я что, один такой несчастный?

Автор:  Администратор [ 07 июн 2010, 17:19 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

При запуске начисления что в scheduler.log выводится? Поставьте в log4j.xml уровень в DEBUG, сделайте начисление по одному проблемному договору и выложите, что получилось в scheduler.log.
И скрин тарифа выложите.

Автор:  Cromeshnic [ 08 июн 2010, 07:07 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

1. Новая версия npay:
Цитата:
npay вер. 5.0 сборка 217 от 02.06.2010 12:59:19


Код:
06-08/09:56:42  INFO [Thread-10] TaskRunProcessor - Running Task: bitel.billing.server.npay.Recalculator@23bb9829
06-08/09:56:42  INFO [pool-1-thread-1] Recalculator - PaymentRecalculator time: 01.06.2010 23
06-08/09:56:42  INFO [pool-1-thread-1] Setup - Load config for mid=16
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Services: -1,26,27,28,29,30,31,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,68,69,70,71,74,75,81,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,106,107,108,109,110,111,112,113,114,115,116,117,118,119,122,127,128,129,130,131,132,133,134,136,137,146,147,148,149,150,151,154,155,156,157,158,159,160,163,164,165,168,169,170,171,172,173,174,175,176,177,178,180,181,182,186,187,188
06-08/09:56:42  INFO [pool-1-thread-1] Utils - Memory total: 416 219 136; max: 1 908 932 608; free: 383 832 640
06-08/09:56:42  INFO [pool-1-thread-1] Utils - Memory pools:
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Memory total: 416 219 136; max: 1 908 932 608; free: 383 832 640
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Found service taker cid: 172108; sid: 40; date1: 09.02.2009; date2: ; col: 1
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - After trimming cid: 172108; sid: 40; date1: 01.06.2010; date2: 30.06.2010
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.12.2009-
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1493
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1493
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 40; cost: 0.0
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 40; mid: 16; eid: 0; cost: 0.0
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.06.2010-
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1656
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1656
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 40; cost: 36.66666666666666666666666666666667
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 40; mid: 16; eid: 0; cost: 36.666666666666664
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Found service taker cid: 172108; sid: 178; date1: 01.04.2010; date2: ; col: 1
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - After trimming cid: 172108; sid: 178; date1: 01.06.2010; date2: 30.06.2010
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.12.2009-
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1493
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1493
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 178; cost: 0.0
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 178; mid: 16; eid: 0; cost: 0.0
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.06.2010-
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1656
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1656
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 178; cost: 0.0
06-08/09:56:42 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 178; mid: 16; eid: 0; cost: 0.0
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Setting balances for independ and subs..
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Selected.
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Selecting sub account
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Selected.
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Setting balance for super..
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Selected.
06-08/09:56:42  INFO [pool-1-thread-1] Calculator - Task finished time=159 ms.


2. Старый npay:
Цитата:
npay вер. 5.0 сборка 213 от 13.05.2010 12:02:54


Код:
06-08/10:10:17  INFO [Thread-10] TaskRunProcessor - Running Task: bitel.billing.server.npay.Recalculator@41d47b2b
06-08/10:10:17  INFO [pool-1-thread-1] Recalculator - PaymentRecalculator time: 01.06.2010 00
06-08/10:10:17  INFO [pool-1-thread-1] Setup - Load config for mid=16
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Services: -1,26,27,28,29,30,31,40,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,68,69,70,71,74,75,81,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,106,107,108,109,110,111,112,113,114,115,116,117,118,119,122,127,128,129,130,131,132,133,134,136,137,146,147,148,149,150,151,154,155,156,157,158,159,160,163,164,165,168,169,170,171,172,173,174,175,176,177,178,180,181,182,186,187,188
06-08/10:10:17  INFO [pool-1-thread-1] Utils - Memory total: 159 121 408; max: 1 908 932 608; free: 145 640 200
06-08/10:10:17  INFO [pool-1-thread-1] Utils - Memory pools:
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Memory total: 159 121 408; max: 1 908 932 608; free: 145 640 200
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Found service taker cid: 172108; sid: 40; date1: 09.02.2009; date2: ; col: 1
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - After trimming cid: 172108; sid: 40; date1: 01.06.2010; date2: 30.06.2010
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.12.2009-
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1493
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1493
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 40; cost: 0.0
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 40; mid: 16; eid: 0; cost: 0.0
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.06.2010-
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1656
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1656
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 40; cost: 293.33333333333333333333333333333336
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 40; mid: 16; eid: 0; cost: 293.3333333333333
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Found service taker cid: 172108; sid: 178; date1: 01.04.2010; date2: ; col: 1
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - After trimming cid: 172108; sid: 178; date1: 01.06.2010; date2: 30.06.2010
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.12.2009-
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1493
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1493
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 178; cost: 0.0
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 178; mid: 16; eid: 0; cost: 0.0
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Tariff period: 01.06.2010-
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request in tree: 1656
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => false
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Request after processing: 1656
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - accepted => true
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add cost cache cid: 172108; sid: 178; cost: 0.0
06-08/10:10:17 DEBUG [pool-1-thread-1] Calculator - Add detail amount cache cid: 172108; sid: 178; mid: 16; eid: 0; cost: 0.0
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Setting balances for independ and subs..
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Selected.
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Selecting sub account
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Selected.
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Setting balance for super..
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Selected.
06-08/10:10:17  INFO [pool-1-thread-1] Calculator - Task finished time=176 ms.


Тариф:
Вложение:
npay-M.JPG
npay-M.JPG [ 17.88 КБ | Просмотров: 22141 ]


sid 178 - абонплата за тарифную опцию, опций у клиента не подключено
sid 40 - абонплата "предоплаченный трафик"

Автор:  Администратор [ 08 июн 2010, 14:48 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Там две услуги, проблема с обеими? Скажите коды первой и второй услуг в тарифе.

Автор:  Cromeshnic [ 08 июн 2010, 14:50 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Цитата:
sid 178 - абонплата за тарифную опцию, опций у клиента не подключено
sid 40 - абонплата "предоплаченный трафик"

Автор:  Администратор [ 08 июн 2010, 15:21 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Обновляли всё?
1) Поставьте последние обновления всего.
2) Дайте ССШ и к биллингу доступ в личку, если проблема не решилась.

Автор:  skyb [ 26 июл 2010, 13:08 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

А объясните куда все запихивать? Это я в глобальные скрипты добавил
Код:
EXCEPTIONS:
Sourced file: 1 : Typed variable declaration : Class: Calculator not found in namespace
Sourced file: 1 : Typed variable declaration : Class: Calculator not found in namespace : at Line: 4 : in file: 1 : Calculator
и что за числа
Код:
calculator.setCids("172108");


Немогли бы вы расписать что и куда, и приветси полный код...появилась нужда в этом скрипте...

Автор:  Администратор [ 26 июл 2010, 14:51 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Это коды договоров через запятую.
Цитата:
calculator.setCids("172108");

Вы лучше выкладывайте какой у вас получился скрипт и как ругается и чего вы от него хотите.

Автор:  skyb [ 26 июл 2010, 15:32 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Скрипт брал от сюда Охото получить вывод наработки по абонплатам за месяц

Автор:  Администратор [ 26 июл 2010, 16:11 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Cromeshnic, дайте скрипт. У вас же такой есть.

Автор:  skyb [ 26 июл 2010, 16:18 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Cromeshnic Вас сам администратор просит :)...пжл

Автор:  Cromeshnic [ 27 июл 2010, 07:11 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Сорри, дальше теста не пошло - отпала необходимость, т.к. поменяли бизнес-логику.

Автор:  skyb [ 27 июл 2010, 07:13 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Cromeshnic писал(а):
Сорри, дальше теста не пошло - отпала необходимость, т.к. поменяли бизнес-логику.

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

Автор:  Cromeshnic [ 27 июл 2010, 08:26 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Тест - в первом посте. Запускать в глобальном скрипте поведения. Всё работает правильно:

Код:
   
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=16");
      calculator.setCids("12345");
      calculator.startTask();

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

      print(planAccount);
      }
}


Возвращает сумму будущей наработки по всем абонплатам за месяц по договору с cid=12345.
На основе этого уже несложно написать свой скрипт.

Автор:  skyb [ 27 июл 2010, 08:32 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Код:
EXCEPTIONS:
Error in method invocation: Method add( java.lang.String ) not found in class'java.math.BigDecimal'
Error in method invocation: Method add( java.lang.String ) not found in class'java.math.BigDecimal' : at Line: 24 : in file: 1 : planAccount .add ( ru .bitel .common .Utils .maskNull ( ( BigDecimal ) planAccountMap .get ( contractId ) ) )
:(

Автор:  Cromeshnic [ 27 июл 2010, 09:10 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Хм, прикольно. Значит planAccountMap.get(contractId) выдал null и взялся первый подходящий метод maskNull - для строки.

Try this:
Код:
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=16");
      calculator.setCids("12345");
      calculator.startTask();

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

      print(planAccount);
      }
}

Автор:  skyb [ 27 июл 2010, 10:03 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Код:
COMPLETE_TIME: 27.07.10 14:02:28
PROCESS_TIME: 33

OUT:
2010-07-31
0


ERROR:


EXCEPTIONS:


WARNINGS:
:(

mid - это же код модуля абонплат?

Автор:  skyb [ 27 июл 2010, 10:20 ]
Заголовок сообщения:  Re: Получение предполагаемой наработки по абонплатам за месяц

Все работает...спасибо

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