BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 апр 2024, 10:53

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




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 22 апр 2010, 14:29 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
stark писал(а):
Администратор ответит вам позже, надеюсь. это он делал .
От себя могу добавить только что не ищите вы эту сумму нигде в базе ..не хранится она нигде . Она вычисляется каждый раз где она нужна, насколько я знаю. Т.е в event ее по идее должны передавать, расчитав ее перед этим . Но могли и не сделать этого. Т.е вы ее никак не получите, если вам ее не передали


В клиента она передается? Если да, то, в крайнем случае, ее можно получить http запросом.


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
Я уже смирился с этим, и поэтому просто пытался запустить скрипт поведения, предложенный уважаемым Администратором по его методике, но он вообще не работает. Привязав его к договору , а сам скрипт к событию, я не увидел в логах его выполнения записей. Может к этому скрипту какие-нибудь классы надо подключить, окромя java.math, а может другие события, тем более их там два( отличающихся только наличием слова "NPAY" в одном их них. но вот что странно, ( хотя может быть значения не имеет) :

Скрипт должен вызываться при просмотре карточки договора. У вас модуль NPay не стоит?


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
да , естественно с mid=4

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
точнее - нет, стоит

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
блин, опять наврал, mid=2
значит, событие, описанное Вами должно вызываться при открытии карточки договора ? а не во время закрытия его по алгоритму, описанному в http://www.bgbilling.ru/v5.0/doc/ch16s07.html ??

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Блин, уже глюки пошли, тока что заметил ,
что:
http://www.bgbilling.ru/v5.0/doc/ch16s07.html
и
http://www.bgbilling.ru/v5.0/doc/ch15s07.html
-
это одна и таже страница, хотя ссылки на вторую из "содержания" - нет :(((

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
значит, событие, описанное Вами должно вызываться при открытии карточки договора ? а не во время закрытия его по алгоритму, описанному в http://www.bgbilling.ru/v5.0/doc/ch16s07.html ??

К закрытию это вообще отношения не имеет. Вызывается после поступления платежа - для проверки возможности открытия и при просмотре карточки договора - отображение суммы необходимого платежа.

Цитата:
это одна и таже страница, хотя ссылки на вторую из "содержания" - нет :(((

Просто доку поправили - пергенерили и заново залили. Добавилось разделов, имя файла и поменялось. А т.к. выкладывается методом простого перетирания, то и старый файл остался.


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Хорошо, с договора снимается абонентка 18 руб. за день.
К договору привязали скрипт npay_debet:
Код:
import java.math.*;
public void onEvent( event, setup, con, conSlave )
{
event.setSumma( new BigDecimal( "50.50" ) );
}

Привязали этот скрипт к событию:"Запрос доп. расхода для открытия договора" ( без слова NPAY=> вначале !!!!)
сегодня ночью он благополучно закрылся с исходяшим остатком 1,9 по "Недостаток средств для начисления абонплаты ". Напротив модуля npay стояло:18
Утром положили 20 руб, и он открылся, хотя по логике надо было кинуть для открытия 50 руб. В логах скрипта -тишина.
Цитата:
....
Вызывается после поступления платежа - для проверки возможности открытия и при просмотре карточки договора - отображение суммы необходимого платежа.
....

И до прихода платежа (и после) , не в карточке договора , не на странице личного кабинета ничего связанного с отображением суммы замечено не было.
Идинственно , что не делали по Вашим рекомендациям, так это :
Цитата:
Нужно в конфигурации cервера поставить флаг:
do.not.open.contract.on.payment=1

Может в этом причина ??? Подскажите , где я туплю ?
Если сделать select * from script_event_type:
Код:

169   2   1   1   Запрос доп. расхода для открытия договора
....
206   10   1   1   Запрос доп. расхода для открытия договора


то можно увидеть 2 события с аналогичным titlom.
Я использую - второе, потому что в 1-ом ( где mid=2 ) в название стоит "NPAY=...>"
Только во втором стоит странный mid=10 ( у меня нет такого модуля), может надо использовать первое ?

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

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

Цитата:
Я использую - второе, потому что в 1-ом ( где mid=2 ) в название стоит "NPAY=...>"
Только во втором стоит странный mid=10 ( у меня нет такого модуля), может надо использовать первое ?

У вас два экземпляра модуля абонплат?


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
один экземляр, привязали скрипт к событию с mid=2 ( код модуля аб плат) - и всё заработало, откуда взялось событие с mid=10 - так и не поняли

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
А у вас прямо в дереве событий оба этих события торчат? Вы что ли напрямую через БД привязываете?


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

Зарегистрирован: 21 май 2008, 10:54
Сообщения: 599
Откуда: 50-й рег.
Карма: 40
Прямо в дереве событий, просто по табличке event_script сверелись с показаниями гуя

_________________
"Все правые - в резерве!" (c) (translate.google.ru/#en/ru/all%20rigths%20reserved)


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

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Администратор писал(а):
Прошу прощения, что погоняли клиента туда-сюда. Вопрос оказался проще платной доработки.
Дублирую ответ в форум.

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

Это можно сделать скриптом.

В скрипте обрабатываете событие "Запрос доп. расхода для открытия договора".
В коде скрипта:

Код:
import java.math.*;

public void onEvent( event, setup, con, conSlave )
{
   event.setSumma(  new BigDecimal( "11.20" )  );
}


Хочу в этом скрипте посчитать сумму абонплаты подневной за 31 день.
Для этого надо получить стоимость одного дня для каждого открытого тарифа с подневным списанием до текущего дня. Как?
Можно сделать просто через соответсвия (тпид -> кол-во платежа), но так не гламурно.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 фев 2011, 19:37 
Не в сети
Разработчик

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 фев 2011, 22:33 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Тесты показывают не правильные результаты. вот к примеру:
Код:
import java.sql.Connection;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
 
import bitel.billing.common.TimeUtils;
 
import ru.bitel.bgbilling.kernel.tariff.tree.server.TariffModuleTree;
import ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeBuilder;
import ru.bitel.bgbilling.kernel.tariff.tree.server.TariffTreeSet;
import ru.bitel.bgbilling.modules.npay.tariff.server.NPayTariffContext;
import ru.bitel.bgbilling.modules.npay.tariff.server.NPayTariffRequest;
import ru.bitel.bgbilling.modules.npay.tariff.server.NPayTariffRequest.NPayServiceCost;
import ru.bitel.bgbilling.server.util.Setup;

public void onEvent( event, setup, con, conSlave )
{

// код договора
int cid = event.getContractID();
// на какой момент смотреть тариф
time = new GregorianCalendar();
// код услуги
sid = 13;
// код экземпляра модуля
mid = 8;
 
GregorianCalendar startMonth = time.clone();
GregorianCalendar endMonth = time.clone() ;//TimeUtils.getEndMonth( time );
endMonth.add(Calendar.DAY_OF_YEAR,31) ;
int daysInMonth = 31; //startMonth.getActualMaximum( Calendar.DAY_OF_MONTH );
 
NPayTariffContext ctx = new NPayTariffContext( Setup.getSetup().getModuleSetup( mid ), con, mid,
                                               startMonth, endMonth,  time, String.valueOf( cid ), null );
 
TariffTreeSet result = TariffTreeBuilder.getInstance().getRealtimeTariffTreeSet( con, cid, startMonth, "npay", mid, 0, 0 );
 
for( TariffModuleTree tariffPeriod : result.getTreeList( time ) )
{
   NPayTariffRequest req = new NPayTariffRequest( mid, cid, sid );
   req.setInfoEnable( true );
   req.setConnection( con );
   req.setAccountingMonthDays( daysInMonth );
   // эта дата нужна, если режимы тарификации помещены в период
   req.setTime( startMonth );
 
   req.setServiceCost( sid, Collections.singletonList( new NPayServiceCost( sid, startMonth, endMonth, startMonth, endMonth, 1 ) ) );
 
   tariffPeriod.execute( req, ctx );
 
   if( req.isAccepted() )
   {
      for( NPayServiceCost cost : req.getServiceCost().get( sid ) )
      {
         if( cost.cost != null )
         {
            print( "cost=" + cost );
            break;
         }
      }
   }
}

}

результат
Код:
OUT:
cost=NPayServiceCost [serviceId: 13; date1: 28.02.2011; date2: 31.03.2011; serviceStart: 28.02.2011; serviceEnd: 31.03.2011; accountingPeriodDays: 4; amount: 1; cost: 0; addCost: null; periodAmount: null; monthAmount: null]

Должено быть cost=590 поидее

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2011, 14:33 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Сделал через тпид -> стоимость

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


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

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Администратор писал(а):
В скрипте обрабатываете событие "Запрос доп. расхода для открытия договора".
В коде скрипта:

Код:
import java.math.*;

public void onEvent( event, setup, con, conSlave )
{
   event.setSumma(  new BigDecimal( "11.20" )  );
}

Администратор писал(а):
Эта сумма добавляется к той, которая требуется для активации и списания абонплат без перехода в минус.


ok-2004 писал(а):
Прекрасно!!!!
А как мне найти "ТУ"!!!

Можно найти "ТУ" сумму?
В общем нужно чтобы задолженность не корректировалась выше определенной суммы.

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 май 2015, 17:25 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
up

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 май 2015, 05:01 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
баланс - лимит - ( наработка за весь месяц - наработка текущего месяца )
( наработка за весь месяц - наработка текущего месяца ) - это сколько абоненту осталось доплатить за тек. месяц

Если эта сумма( после которой вы не хотите корректировалась ) не зависит от тарифа, то можете просто получить тек. баланс, он уже будет учитывать совершенный приход.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2

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


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

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


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

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