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

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

Автор:  skyb [ 19 июн 2014, 07:59 ]
Заголовок сообщения:  При добавлении RSCM услуги скриптом не меняется баланс

Услуга добавляется, все нормально, но баланс не меняется, если отредактировать руками, то баланс меняется. Что я не доделал?

Код:
package ru.skyb.scripts.global;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.Date;

import bitel.billing.server.contract.bean.BalanceUtils;
import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.rscm.bean.ContractService;
import bitel.billing.server.rscm.bean.ContractServiceManager;
import ru.bitel.bgbilling.modules.rscm.server.event.RSCMContractServiceUpdateEvent;

public class Discount
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup1, ConnectionSet connectionSet2 )
      throws Exception
   {
      Connection con = connectionSet2.getConnection();
        BalanceUtils bu = new BalanceUtils (con);
        int mid = 7;
        ContractServiceManager csm = new ContractServiceManager (con, mid);
        ContractService cs = new ContractService();
        EventProcessor eventProc  = EventProcessor.getInstance();
        Calendar c = Calendar.getInstance();
      String query = " SELECT id FROM contract WHERE gr&(1<<9)>0" ;
        PreparedStatement ps = con.prepareStatement(query);
         ResultSet rs = ps.executeQuery();

            while (rs.next())
            {
                  int cid = rs.getInt(1);
                    BigDecimal sum = bu.getBalance(new Date(), cid);
                    cs.setContractId(cid);
                    cs.setComment("комент ");
                    cs.setAmount(1);
                    cs.setDate(c);
                    cs.setServiceId(34);
                    cs.setUnit("сумма");
                    cs.setService("Скидка");
                    csm.updateContractService(cs);
                    eventProc.publishAfterCommit(new RSCMContractServiceUpdateEvent(0, mid, cid, cs));
                    //eventProc.publishAfterCommit(new);
                    print("Баланс " + sum );

            }
   }

}

Автор:  Artur [ 19 июн 2014, 11:24 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

В цикле while добавьте

Код:
bu.updateBalance( new Date(), cid );

Автор:  skyb [ 19 июн 2014, 11:33 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

Artur писал(а):
В цикле while добавьте

Код:
bu.updateBalance( new Date(), cid );

не помогло :(
что ещё заметил, услуга добавлена, все нормально, но не удаляется, если ее открыть для редактирования и потом сохранить, то и баланс меняется и услуга удаляется

Автор:  stark [ 19 июн 2014, 12:49 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

У нас там костылненнько сделано, начисление происходит в самом Action, который добавляет RSCM. В вашем случае проще запустить задачу rscm калькулятора из скрипта.

Автор:  skyb [ 19 июн 2014, 13:03 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

stark писал(а):
У нас там костылненнько сделано, начисление происходит в самом Action, который добавляет RSCM. В вашем случае проще запустить задачу rscm калькулятора из скрипта.

а можно как то так
Boris писал(а):
можно написать скрипт где sqlем выбрать нужные документы и вызвать отправку
Код:
new RunTaskDataManager( con ).addTask( new BillDocsSenderForAll( mid, billCodes, invoiceCodes,  0 ) );

а то я описания как запускать таски не найду, оно вообще есть?

Автор:  skyb [ 19 июн 2014, 17:01 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

остался последний штрих =), что написать то? =)

Автор:  skyb [ 20 июн 2014, 06:18 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

stark подсказал, за что спасибо
Код:
new RunTaskDataManager( con ).addTask( new RSCMRecalculator( mid, c, null, String.valueOf(cid) ) );

собственно все работает

Автор:  krtvand [ 10 апр 2015, 18:49 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

Имеется аналогичная проблема. Услуга добавляется, но не меняется баланс. Решить проблему с помощью rscm калькулятора не получается, т.к. не нашел данный класс в документации API к биллингу версии 6.2.
Код:
package ru.myscripts;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.Date;

import bitel.billing.server.contract.bean.BalanceUtils;
import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;

import ru.bitel.bgbilling.modules.rscm.server.bean.ContractService;
import ru.bitel.bgbilling.modules.rscm.server.bean.ContractServiceManager;
import bitel.billing.server.task.bean.RunTaskDataManager;




public class test3
   extends EventScriptBase
{
   @Override
   public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
      throws Exception
   {
      Connection con = connectionSet3.getConnection();
        BalanceUtils bu = new BalanceUtils (con);
        EventProcessor eventProc  = EventProcessor.getInstance();
        Calendar c = Calendar.getInstance();
       
        int mid = 11;
        int RSCMServiceID = 26;  // ID услуги обещанного платежа 
         
      int cid = 1094;
     
                    ContractServiceManager csm = new ContractServiceManager(con, mid);
                    ContractService cs = new ContractService();
                    cs.setContractId(cid);
                    cs.setComment("комент ");
                    cs.setAmount(1);                   
                    cs.setServiceId(RSCMServiceID);
                    //cs.setUnit("шт");
                    cs.setDate(c);
                    //cs.setService("Обещанный платеж");
                    csm.updateContractService(cs);
                   
                   // new RunTaskDataManager( con ).addTask( new RSCMRecalculator( mid, c, null, String.valueOf(cid) ) );
                   //eventProc.publishAfterCommit(new RSCMContractServiceUpdateEvent(1, mid, cid, cs));      
                   //eventProc.publishAfterCommit(new);
   }

}


Код:
Информация о версии:

  Клиент: вер. 6.2.702 / 09.04.2015 18:59:48
    os: Windows 8.1; java: Java HotSpot(TM) Client VM, v.1.8.0_40
  Сервер: вер. 6.2.865 / 09.04.2015 19:00:00
    os: Linux; java: Java HotSpot(TM) Server VM, v.1.8.0_40

  card: вер. 6.2.13 / 31.03.2015 17:29:07
  cerbercrypt: вер. 6.2.176 / 31.03.2015 17:29:07
  dialup: вер. 6.2.298 / 31.03.2015 17:29:46
  inet: вер. 6.2.496 / 07.04.2015 18:45:17
  ipn: вер. 6.2.210 / 31.03.2015 17:29:53
  npay: вер. 6.2.161 / 31.03.2015 17:29:54
  reports: вер. 6.2.171 / 31.03.2015 17:30:05
  rscm: вер. 6.2.157 / 07.04.2015 15:43:57
  ru.bitel.bgbilling.plugins.documents: вер. 6.2.142 / 08.04.2015 14:53:37

Автор:  skn [ 10 апр 2015, 19:16 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

Код:
ru.bitel.bgbilling.modules.rscm.server.RSCMRecalculator

Автор:  skyb [ 10 апр 2015, 20:02 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

eclipse

Автор:  Phricker [ 10 апр 2015, 20:25 ]
Заголовок сообщения:  Re: При добавлении RSCM услуги скриптом не меняется баланс

jd gui

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