forum.bitel.ru http://forum.bitel.ru/ |
|
Тарифные опции. расход и наработка. http://forum.bitel.ru/viewtopic.php?f=22&t=3915 |
Страница 1 из 1 |
Автор: | MiB [ 19 апр 2010, 13:28 ] |
Заголовок сообщения: | Тарифные опции. расход и наработка. |
реализуем "Турбо" через тарифные опции, все работает хорошо - но бухгалтерия хочет чтобы платеж за активацию данной опции заносился не в расход, а в наработку. понимаю что это можно реализовать через событие "занесение расхода" с примерной логикой: -удалить расход -добавить разовую услугу с количеством равным сумме расхода (при этом в тарифе указать стоимость за единицу 1 руб.) в принципе при личном общении с Шамилем он и подтвердил что так будет наиболее просто это реализовать. проблема в том, что скрипты на BGBS у нас никто не пишет. просьба помочь в написании данного функционала. |
Автор: | Cromeshnic [ 19 апр 2010, 13:49 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
Есть функционал начисления абонплат в зависимости от тарифных опций. Правда из документации его, похоже, убрали пока. |
Автор: | MiB [ 19 апр 2010, 21:30 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
Cromeshnic писал(а): Есть функционал начисления абонплат в зависимости от тарифных опций. Правда из документации его, похоже, убрали пока. разработчики, гдето можно почитать? кстати пукт 1.19.2 (http://bgbilling.ru/v5.0/doc/ch01s19s02.html) в оглавлении документации не присутствует ![]() |
Автор: | stark [ 20 апр 2010, 13:53 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
исправили. По ошибке удалили |
Автор: | Администратор [ 20 апр 2010, 15:39 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BB%D1%8F |
Автор: | MiB [ 21 апр 2010, 10:47 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
спасибо, сейчас попробуем адаптировать под нашу 4.6 |
Автор: | MiB [ 21 апр 2010, 16:21 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
переписали под версию 4.6 Код: import java.sql.*; import java.util.*; import java.math.*; import bitel.billing.common.*; import bitel.billing.server.tariff.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.script.bean.event.*; import bitel.billing.server.rscm.bean.*; import bitel.billing.common.CommonUtils; CHARGE_EVENT_ID = 2; // Тип события - Расход CHARGE_TYPE_ID = 3; // Тип расхода - Активация опции "Турбо" RSCM_MID = 16; // Код модуля RSCM RSCM_SERVICE_ID = 49; // Код услуги в модуле RSCM //print ("Got event with type: " + event.getTypeID()); // Фильтрация по типу события Расход (ChargeEvent) if (event.getTypeID() != CHARGE_EVENT_ID) { print("Event type isn't ChargeEvent. Skipping."); return; } cid = event.getContractID(); charge = event.getCharge(); // Фильтрация по типу расхода (Активация опции "Турбо") if (charge.getChargeTypeID() != CHARGE_TYPE_ID) { print ("Charge type isn't 'Turbo'. Skipping."); return; } print ("Обрабатываем расход (Активация опции 'Турбо') на сумму: " + charge.getSumma()); bu = new BalanceUtils(con); cm = new ChargeManager(con); csm = new bitel.billing.server.rscm.bean.ContractServiceManager(con, RSCM_MID); contract = new ContractManager(con); // Преобразуем дату платежа к типу java.util.Calendar date = TimeUtils.convertDateToCalendar(charge.getChargeDate()); // Создаем TariffTreeSet для обсчета сессий tts = contract.getRealtimeTariffTreeSet(cid, date, "rscm", RSCM_MID, true); tree = tts.getTree(date); if (tree == null) { print("RSCM tariff not found"); } // Создаем тарифный запрос req = new TariffRequest(); req.setRequestParam("sid", RSCM_SERVICE_ID); req.setRequestParam("time", date); tree.processRequest(req); if (!req.wasAccepted()) { print ("Request wasn't accepted"); return; } cost = req.getResponseParam("cost"); divisor = req.getResponseParam( "divisor" ); if(cost == null || divisor == null || divisor <= 0) { print ("Got incorrect cost: " + cost + " or divisor: " + divisor); return; } // Создаем наработку по услуге cs = new bitel.billing.server.rscm.bean.ContractService(); cs.setContractId(cid); cs.setDate(date); cs.setServiceId(RSCM_SERVICE_ID); cs.setAmount(new CommonUtils().parseLongString(charge.getSumma().setScale(0, BigDecimal.ROUND_HALF_UP).toPlainString())); cs.setComment("Активация кнопки 'Турбо'"); // Заносим наработку в договор csm.updateContractService(cs); // Заключительная часть print ("Обнуляем расход с ID=" + charge.getID() + " и обновляем баланс договора"); charge.setSumma(BigDecimal.ZERO); cm.updateCharge(charge); bu.updateBalance(charge.getChargeDate(), cid); если проверяем в биллинге(делаем платеж редактируемым и заносим на него расход) то все отрабатывает нормально: Код: GENERATE_TIME: 21.04.10 12:29:55 EXECUTION_STOP_TIME: 21.04.10 12:29:56 PROCESS_TIME: 168 OUT: Обрабатываем расход (Активация опции 'Турбо') на сумму: 50.0 Обнуляем расход с ID=50 и обновляем баланс договора ERROR: EXCEPTIONS: WARNINGS: когда активируем опцию "турбо" через личный кабинет то: - расход начисляется, - событие "занесение расхода" не генерируется, - скрипт не запускается. можете посмотреть в каком месте засада? |
Автор: | MiB [ 22 апр 2010, 11:19 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
up |
Автор: | Администратор [ 22 апр 2010, 17:45 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
Выложил обновление для 4.6. Там не генерировалось событие "Занесение расхода" при активации опции, сначала выложил обновление только для 5.0. |
Автор: | MiB [ 22 апр 2010, 18:40 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
Администратор писал(а): Выложил обновление для 4.6. Там не генерировалось событие "Занесение расхода" при активации опции, сначала выложил обновление только для 5.0. ок. обновлюсь завтра с утра и проверю. спасибо. |
Автор: | MiB [ 23 апр 2010, 14:48 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
в конфигурации RSCM пропсиано: Код: #начисление денег сразу по добавлению услуги в договор hot.calc=1 скриптом, услуга добавляется, а в наработке ничего нет. после того как вручную запускается переобсчет RSCM все становится нормально. событие перобсчета нам необходимо самостоятельно запускать из скрипта(если это возможно, напишите кусочек кода), или оно все-же должно генерироваться автоматически? IMHO второе идеологически более правильно P.S. если добавлять услугу из клиента биллинга вручную то все необходимые начисления происходят. |
Автор: | MiB [ 28 апр 2010, 12:36 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
up |
Автор: | MiB [ 29 апр 2010, 14:45 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
up 2. |
Автор: | Администратор [ 07 май 2010, 11:15 ] |
Заголовок сообщения: | Re: Тарифные опции. расход и наработка. |
Добавил пример кода для RSCM модуля. http://wiki.bgbilling.ru/index.php/%D0% ... 0%B8%D0%B9 |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |