BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Начисление услуги RSCM (BGBS)
СообщениеДобавлено: 24 мар 2009, 17:42 
Пытаюсь из скрипта добавить начисление RSCM.
Делаю так:
Код:
   RSCM_contract_service_manager = new  ContractServiceManager(con, 9);
   RSCM_contract_service = new ContractService();
   RSCM_contract_service.setAmount(1);
   RSCM_contract_service.setComment("Создана автоматически");
   RSCM_contract_service.setContractId(cid);
   RSCM_contract_service.setDate(task_ExecuteDate_Calendar);
   RSCM_contract_service.setId(0);
   RSCM_contract_service.setService("Подключение - Интернет");
   RSCM_contract_service.setServiceId(17);
   RSCM_contract_service.setUnit("шт.");
   RSCM_contract_service_manager.updateContractService(RSCM_contract_service);


Ошибок никаких не происходит, но услуга не начисляется.

Прошу разработчиков подсказать.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2009, 15:30 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Код:
package bitel.billing.server.rscm;

import java.sql.SQLException;
import java.util.Calendar;

import bitel.billing.common.TimeUtils;
import bitel.billing.server.task.bean.RunTaskDataManager;

public class ActionRecalculate extends ActionBase
{
   public void doAction()
      throws SQLException
   {
      Calendar startMonth = TimeUtils.convertDateToCalendar( getDateParameter( "date" ) );
      String email = getParameter( "mail" );
      String cids = getParameter( "cids" );

      if( mid < 0 || startMonth == null )
      {
         setErrorStatus( "Ошибка параметров mid=" + mid + "; date=" + startMonth );
         return;
      }

      new RunTaskDataManager( con ).addTask( new RSCMRecalculator( mid, startMonth, email, cids ) );
   }
}

Код запуска переобсчета в модуле RSCM. cids - код договора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2009, 15:49 
Спасибо, но вы меня неправильно поняли или я плохо объясняю :)

Немножко поподробнее расскажу.

В тарифе для услуги RSCM "Подключение - Интернет" (sid = 17) прописана стоимость подключения.
Мне нужно в договоре-> RSCM указать, что определенного числа была оказана услуга "Подключение - Интернет" в количестве 1 штука.

В конфигурации RSCM прописано:
#начисление денег сразу по добавлению услуги в договор
hot.calc=1

так что начисление должно произойти автоматически.

Мне необходимо по определенному событию списать со счета стоимость подключения, т.е. указать что была оказана услуга (sid = 17) 1 шт.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2009, 16:03 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Цитата:
В конфигурации RSCM прописано:
#начисление денег сразу по добавлению услуги в договор
hot.calc=1

так что начисление должно произойти автоматически.

Ну если вы штатными средствами интерфейса это сделаете, оно и произойдет. Можно еще HTTP запросом акшен этот же вызвать.

Цитата:
Мне необходимо по определенному событию списать со счета стоимость подключения, т.е. указать что была оказана услуга (sid = 17) 1 шт.


Вставляете в базу запись об услуге и запускаете переобсчет за этот месяц по этому договору.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2009, 16:10 
Понятно. Спасибо.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2009, 20:36 
Никак не получается добавить задание на перерачет услуги RSCM.
Делаю так:
Код:
import java.sql.*;
import java.util.*;

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.contract.object.bean.*;
import ru.bitel.bgbilling.plugins.crm.server.dao.*;
import ru.bitel.bgbilling.plugins.crm.common.model.*;
import bitel.billing.server.rscm.bean.*;
import bitel.billing.server.admin.bean.*;
import bitel.billing.server.util.*;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.task.bean.RunTaskDataManager;
import bitel.billing.server.rscm.*;

//Группа ожидания подключения
GROUP_EC = 18;
//Параметр, в котором прописана дата начала предоставления услуг
PARAM_START_DATE = 49;

EventDate = new Date();
cid = event.getContractID();
contract = new ContractManager(con).getContractByID(cid);
contract_utils = new ContractUtils( con );
contract_groups = contract.getGroups();
contract_param_utils = new ContractParamUtils( con );
contract_is_group_ec = (contract_groups & (1L<<GROUP_EC)) > 0;
register_task_manager = new RegisterTaskManager( con );

task = event.getTask();
task_id = task.getID();
task_type_id = task.getTypeID();
task_ExecuteDate = task.getExecuteDate();
task_TargetDate = task.getTargetDate();
task_AddressObjectId = task.getAddressObjectId();

task_ExecuteDate_Calendar = new GregorianCalendar();
task_ExecuteDate_Calendar.setTime( task_TargetDate );

//Интернет - новое подключение (монтаж)
if (task_type_id == 3 && contract_is_group_ec)
{
   task_new_type_id = 13;
   task_new_group_id = 4;
   
   //Ищем задачу на настройку
   filter = new RegisterTaskManager.TaskFilter();
   filter.cid = cid;
   filter.types = Integer.toString(task_new_type_id);
   task_count = register_task_manager.getTaskCount(filter);
   if (task_count == 0){
      RegisterTask task_new = new RegisterTask();
      task_new.setContractID( cid );
      task_new.setTypeID(  task_new_type_id );
      task_new.setGroupID( task_new_group_id );
      task_new.setOpenUserID( 0 ) ;
      task_new.setOpenTime( EventDate );
      task_new.setComment( "Задача создана автоматически" );
      task_new.setAddressParamID( 2 );
      task_new.setAddressObjectId( task_AddressObjectId );
      task_new.setTargetDate(task_TargetDate);
      register_task_manager.updateTask( "new", task_new );
   };
};
//Интернет - новое подключение (настройка)
if (task_type_id == 13 && contract_is_group_ec)
{
   rscm_sid = 17;
   // установка даты начала предоставления услуг
   if( contract_param_utils.getDateParam( cid, PARAM_START_DATE ) == null )
   {
      contract_param_utils.setDateParam( cid, PARAM_START_DATE, task_ExecuteDate );
   };
   rscm_table_name = "rscm_service_account_9_"+TimeUtils.format(task_ExecuteDate, "yyyyMM");
   query_new_table = "CREATE TABLE IF NOT EXISTS `"+rscm_table_name+"` ( "+
   "`id` int(11) NOT NULL auto_increment,   "+
   "`cid` int(11) NOT NULL, "+
   "`sid` int(11) NOT NULL,   "+
   "`date` date default NULL,   "+
   "`amount` bigint(20) default NULL, "+
   "`comment` text NOT NULL, "+
   "PRIMARY KEY  (`id`), "+
   "KEY `cid` (`cid`) "+
   ") ENGINE=MyISAM DEFAULT CHARSET=cp1251;";
   psUpdate_new_table = con.prepareStatement( query_new_table );
   psUpdate_new_table.executeUpdate();
   
   query_check = "SELECT id FROM "+rscm_table_name+" WHERE cid='"+cid+"' AND sid='"+rscm_sid+"'";
   ps_check = con.prepareStatement(query_check);
   rs_check = ps_check.executeQuery();
   if ( !rs_check.next() )
   {
      query_new = "INSERT INTO "+rscm_table_name+" (cid,sid,date,amount,comment) VALUES ('"+cid+"','"+rscm_sid+
      "','"+TimeUtils.format(task_ExecuteDate, "yyyy-MM-dd")+"','1','')";
      psUpdate_new = con.prepareStatement( query_new );
      psUpdate_new.executeUpdate();
   };
   cids = cid.toString();
   new RunTaskDataManager( con ).addTask( new RSCMRecalculator( 9, task_ExecuteDate_Calendar, "lda@dsn.ru", cids ) );
};



Получаю ошибку:
Eval error: Sourced file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.contract.
. . . '' : reflection error: bsh.ReflectError: Method addTask( bitel.billing.server.rscm.RSCMRecalculator ) not found in class'bitel.billing.server.task.bean
.RunTaskDataManager'
Sourced file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.contract. . . . '' : reflection error: bsh.Reflec
tError: Method addTask( bitel.billing.server.rscm.RSCMRecalculator ) not found in class'bitel.billing.server.task.bean.RunTaskDataManager' : at Line: 98 : in
file: inline evaluation of: ``import java.sql.*; import java.util.*; import bitel.billing.server.contract. . . . '' : .addTask ( new RSCMRecalculator ( 9
, task_ExecuteDate_Calendar , "lda@dsn.ru" , cids ) )

at bsh.BSHPrimarySuffix.doSuffix(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHPrimaryExpression.eval(Unknown Source)
at bsh.BSHBlock.evalBlock(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHBlock.eval(Unknown Source)
at bsh.BSHIfStatement.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bsh.Interpreter.eval(Unknown Source)
at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:158)
at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:248)
at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:163)

Подскажите что делаю не так?


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 мар 2009, 18:08 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Вам код от 4.6 дали.. в 4.5 надо так :
Код:
RunTaskData taskData = new RunTaskData( new RSCMRecalculator( mid, startMonth, email, null ) );
      new RunTaskDataManager( con ).addTask( taskData );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 мар 2009, 18:21 
:)
Спасибо, все получилось.


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

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


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

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


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

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