BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: 19 апр 2010, 13:28 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
реализуем "Турбо" через тарифные опции, все работает хорошо - но бухгалтерия хочет чтобы платеж за активацию данной опции заносился не в расход, а в наработку.

понимаю что это можно реализовать через событие "занесение расхода" с примерной логикой:
-удалить расход
-добавить разовую услугу с количеством равным сумме расхода (при этом в тарифе указать стоимость за единицу 1 руб.)

в принципе при личном общении с Шамилем он и подтвердил что так будет наиболее просто это реализовать.

проблема в том, что скрипты на BGBS у нас никто не пишет.
просьба помочь в написании данного функционала.


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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 апр 2010, 21:30 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
Cromeshnic писал(а):
Есть функционал начисления абонплат в зависимости от тарифных опций. Правда из документации его, похоже, убрали пока.

разработчики, гдето можно почитать?

кстати пукт 1.19.2 (http://bgbilling.ru/v5.0/doc/ch01s19s02.html) в оглавлении документации не присутствует :(


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
исправили. По ошибке удалили


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
http://wiki.bgbilling.ru/index.php/%D0% ... 0%BB%D1%8F


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 апр 2010, 10:47 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
спасибо, сейчас попробуем адаптировать под нашу 4.6


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 апр 2010, 16:21 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
переписали под версию 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:


когда активируем опцию "турбо" через личный кабинет то:
- расход начисляется,
- событие "занесение расхода" не генерируется,
- скрипт не запускается.

можете посмотреть в каком месте засада?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 апр 2010, 11:19 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
up


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 апр 2010, 17:45 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Выложил обновление для 4.6. Там не генерировалось событие "Занесение расхода" при активации опции, сначала выложил обновление только для 5.0.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 апр 2010, 18:40 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
Администратор писал(а):
Выложил обновление для 4.6. Там не генерировалось событие "Занесение расхода" при активации опции, сначала выложил обновление только для 5.0.

ок. обновлюсь завтра с утра и проверю.
спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 апр 2010, 14:48 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
в конфигурации RSCM пропсиано:
Код:
#начисление денег сразу по добавлению услуги в договор
hot.calc=1


скриптом, услуга добавляется, а в наработке ничего нет.
после того как вручную запускается переобсчет RSCM все становится нормально.

событие перобсчета нам необходимо самостоятельно запускать из скрипта(если это возможно, напишите кусочек кода),
или оно все-же должно генерироваться автоматически?

IMHO второе идеологически более правильно


P.S. если добавлять услугу из клиента биллинга вручную то все необходимые начисления происходят.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2010, 12:36 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
up


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2010, 14:45 
Не в сети

Зарегистрирован: 22 янв 2008, 16:40
Сообщения: 163
Карма: 0
up 2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07 май 2010, 11:15 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Добавил пример кода для RSCM модуля.

http://wiki.bgbilling.ru/index.php/%D0% ... 0%B8%D0%B9


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

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


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

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


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

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