BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: 15 июл 2014, 17:21 
Не в сети

Зарегистрирован: 11 апр 2014, 10:37
Сообщения: 8
Карма: 0
Судя по описанию bitel.billing.server.contract.bean.BalanceUtils нет возможности добавлять приход. Единственное что приходит в голову это обновление таблици contract_balance.
Каким образом добавить приход к договору используя API BGBilling?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2014, 17:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
PaymentManager

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2014, 17:53 
Не в сети
Разработчик

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

Вначале нужно добавить платеж в contract_payment с помощью PaymentManager, только потом обновлять баланс в contract_balance с помощью BalanceUtils

Вот тут есть пример.

Только там еще нужно событие кинуть в конце
Код:
  EventProcessor.getInstance().publish( new PaymentEvent( userID, payment, editMode ) );
  EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), balanceChange ) );       


В 6.1 желательно уже по-другому делать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2014, 18:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
Для какой версии ?

Вначале нужно добавить платеж в contract_payment с помощью PaymentManager, только потом обновлять баланс в contract_balance с помощью BalanceUtils

Вот тут есть пример.

Только там еще нужно событие кинуть в конце
Код:
  EventProcessor.getInstance().publish( new PaymentEvent( userID, payment, editMode ) );
  EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), balanceChange ) );       


В 6.1 желательно уже по-другому делать.
так для 6.1 желательно с примерами

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
viewtopic.php?p=76033#p76033

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Phricker писал(а):
http://forum.bitel.ru/viewtopic.php?p=76033#p76033

Нет..я имел ввиду вообще добавлять платеж через Web-сервис и думать об всех этих утилсах и событиях, пусть само внутри делается.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2014, 22:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
А тогда пример ))) Что-то на ночь глядя не соображу.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 июл 2014, 22:26 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
]так для 6.1 желательно с примерами


http://bgbilling.ru/v6.1/javadoc/ru/bit ... rvice.html

Метод paymentUpdate.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июл 2014, 10:29 
Не в сети

Зарегистрирован: 11 апр 2014, 10:37
Сообщения: 8
Карма: 0
stark писал(а):
Для какой версии ?

Вначале нужно добавить платеж в contract_payment с помощью PaymentManager, только потом обновлять баланс в contract_balance с помощью BalanceUtils

Вот тут есть пример.

Только там еще нужно событие кинуть в конце
Код:
  EventProcessor.getInstance().publish( new PaymentEvent( userID, payment, editMode ) );
  EventProcessor.getInstance().publish( new ContractBalanceChangedEvent( contract.getId(), balanceChange ) );       


В 6.1 желательно уже по-другому делать.


Используем версию 6.0.

Спасибо! То, что доктор прописал!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июл 2014, 15:29 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
skyb писал(а):
]так для 6.1 желательно с примерами


http://bgbilling.ru/v6.1/javadoc/ru/bit ... rvice.html

Метод paymentUpdate.

а, просто методы изменились?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июл 2014, 17:01 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
stark писал(а):
skyb писал(а):
]так для 6.1 желательно с примерами


http://bgbilling.ru/v6.1/javadoc/ru/bit ... rvice.html

Метод paymentUpdate.

а, просто методы изменились?


Нет ..Это новый сервис, его не было в 6.0. Теперь платеж можно добавить так:

Код:
ServerContext context = ServerContext.get();   
PaymentService paymentService = context.getService( PaymentService.class, INET_MODULE_ID );
Payment payment = new Payment();
....
paymentService.updatePayment( payment, null);


И не нужны никакие PaymentManager, BalanceUtils и EventProcessor. Теперь это все внутри само делается.


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
что то не заводится
Код:
                         ServerContext context = ServerContext.get();
                         PaymentService paymentService = context.getService( PaymentService.class, 0 );
                         Payment p = new Payment();
                         p.setContractId(contract.getId());
                         p.setComment("Создан автоматически системой, при создании договора");
                         p.setTypeId(6);
                         p.setUserId(0);
                         p.setSum(new BigDecimal (balance));
                         paymentService.updatePayment(p, null);

Код:
  Сервер: вер. 6.1.1044 / 27.02.2015 16:23:14
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_80-ea


Вложения:
Выделение_399.png
Выделение_399.png [ 4.74 КБ | Просмотров: 15341 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 мар 2015, 12:59 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
что то не заводится
Код:
                         ServerContext context = ServerContext.get();
                         PaymentService paymentService = context.getService( PaymentService.class, 0 );
                         Payment p = new Payment();
                         p.setContractId(contract.getId());
                         p.setComment("Создан автоматически системой, при создании договора");
                         p.setTypeId(6);
                         p.setUserId(0);
                         p.setSum(new BigDecimal (balance));
                         paymentService.updatePayment(p, null);

Код:
  Сервер: вер. 6.1.1044 / 27.02.2015 16:23:14
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_80-ea


Потому что такого метода нет. Есть такой.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 мар 2015, 10:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
а можно примером, а то чет всеравно не взлетает :(

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
а можно примером, а то чет всеравно не взлетает :(

что именно не взлетает ? Ошибка какая-то выдается ? Какая ?


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
skyb писал(а):
а то чет всеравно не взлетает :(
по предоставленной информации можно скзать - что-то неправильно делаете

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
ServerContext context = ServerContext.get();
                         PaymentService paymentService = context.getService( PaymentService.class, 0 );
                         Payment p = new Payment();
                         p.setContractId(contract.getId());
                         p.setComment("");
                         p.setTypeId(6);
                         p.setUserId(0);
                         p.setSum(new BigDecimal (balance));
                         java.util.List<java.lang.Integer>  pmt = paymentService.paymentUpdate(p, null);

Чет мне здается я херню какую то пишу

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
и что этот код выдает?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 мар 2015, 14:22 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
На каждый вопрос нужно задавать несколько дополнительных вопросов чтоле? Что не работает то? Стектрейс где?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 мар 2015, 14:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вложение:
f27bd79383f99c5c0b38827f5f68080f.jpg
f27bd79383f99c5c0b38827f5f68080f.jpg [ 126.07 КБ | Просмотров: 15299 ]

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 мар 2015, 20:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
платеж добавился, спасибо старку, так же он сказал как правильно подавать инфу, я ж как, че сказали (когда не знаю) то и делаю. всем спасибо

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
не закончили )))
Код:
import bitel.billing.common.TimeUtils;
import bitel.billing.server.contract.ContractRemover;
import bitel.billing.server.contract.bean.Contract;
import bitel.billing.server.contract.bean.ContractManager;
import bitel.billing.server.contract.bean.ContractParameterManager;
import bitel.billing.server.contract.bean.ContractPattern;
import bitel.billing.server.contract.bean.ContractPatternManager;
import bitel.billing.server.contract.bean.ContractTariff;
import bitel.billing.server.contract.bean.ContractTariffManager;
import bitel.billing.server.contract.bean.PaymentManager;
import ru.bitel.bgbilling.common.BGMessageException;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.balance.common.PaymentService;
import ru.bitel.bgbilling.kernel.contract.balance.common.bean.Payment;
import ru.bitel.bgbilling.kernel.event.EventProcessor;
import ru.bitel.bgbilling.kernel.event.events.ContractTariffUpdateEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.kernel.tariff.server.event.ContractTariffChangedEvent;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import bitel.billing.server.phone.bean.ClientItem;
import bitel.billing.server.phone.bean.ClientItemManager;
import bitel.billing.server.util.PswdGen;
import bitel.billing.server.voiceip.bean.VoiceIpLoginManager;
import bitel.billing.server.voiceip.bean.VoiceIpLogin;
import java.util.Set;
import java.util.HashSet;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.sql.ResultSet;
import java.sql.Statement;

public class schedulerBase extends GlobalScriptBase {
   @Override
   public void execute(Setup setup1, ConnectionSet connectionSet2)
         throws Exception {
      int parent = 2;// категория ресурса предка
      int source = 1;// код источника
      int Tcid = -1;
      int VOICEIP_MID = 3;
      String hostname = "";
      String port = "";
      String username = "";
      String password = "";
      String dbname = "";
      Connection con = connectionSet2.getConnection();
      ContractManager cm = new ContractManager(con);
      ClientItemManager cim = new ClientItemManager(con, 5);
      Setup setup = Setup.getSetup();
      ServerContext context = new ServerContext(setup, 5, 0);
      ContractTariffManager ctm = new ContractTariffManager(con);
      ContractParameterManager cpm = new ContractParameterManager(con);
      Calendar calndar = Calendar.getInstance();
      Class.forName("org.postgresql.Driver");
      Connection c = DriverManager.getConnection("jdbc:postgresql://"
            + hostname + ":" + port + "/" + dbname, username, password);
      c.setAutoCommit(false);
      System.out.println("Opened database successfully");

      Statement stmt = c.createStatement();
      String query = "SELECT notification_id, status, tariff_id, template_id, balance, billing_lock_datetime, contract_number, number FROM billing.notification WHERE status = 'N'";
      ResultSet rs = stmt.executeQuery(query);

      while (rs.next()) {

         int id = rs.getInt(1);
         String status = rs.getString(2);
         int tariff_id = rs.getInt(3);
         //int tariff_id = 7;
         int template_id = rs.getInt(4);
         //int template_id = 3;
         BigDecimal balance = rs.getBigDecimal(5);
         // BigDecimal balance = new BigDecimal ("23");
         Date billing_lock_datetime = rs.getTimestamp(6);
         String contract_number = rs.getString(7);
         String number = rs.getString(8);
         // int person_id = rs.getInt(6);
         int person_id = 1;
         ContractPattern pattern = new ContractPatternManager(con)
               .getPattern(template_id);



         System.out.println("ID = " + id);
         System.out.println("status = " + status);
         System.out.println("tariff_id = " + tariff_id);
         System.out.println("template_id = " + template_id);
         System.out.println("balance = " + balance);
         System.out.println("billing_lock_datetime = "
               + billing_lock_datetime);
         System.out.println("contract_number = " + contract_number);
         System.out.println("number = " + number);
         System.out.println("");


         Statement uStmt = c.createStatement();
         Statement dStmt = c.createStatement();
         Contract contract = cm.createFromPattern(template_id,
               ContractPatternManager.getContractTitle(con, pattern,
                     calndar), calndar, PswdGen.generatePassword(7,
                     "0123456789"));
         cpm.updateStringParam(contract.getId(), VATS_ID,
               Integer.toString(person_id), 0);
         
         
         if (balance != null) {
         print("debug after if != null balance " + balance);
            ServerContext contextb = ServerContext.get();
            PaymentService paymentService = contextb.getService(
                  PaymentService.class, 0);
            Payment p = new Payment();
            p.setContractId(contract.getId());
            p.setComment("Создан автоматически системой, при создании договора");
            p.setTypeId(6);
            p.setUserId(0);
            p.setDate(new Date());
            p.setSum(balance);
            java.util.List<java.lang.Integer> pmt = paymentService.paymentUpdate(p, null);
            print("balance update " + balance);
         }
         
         
         print("title " + contract.getTitle() + "\n");
         int cid = contract.getId();
         // int cid = 1;
         String update_status = "UPDATE notification SET status = 'P' WHERE notification_id = "
               + id;
         String uBilling_lock_datetime = "UPDATE notification SET billing_lock_datetime = '"
               + TimeUtils.convertDateToTimestamp(new Date())
               + "' WHERE notification_id = " + id;
         String uContract_number = "UPDATE notification SET contract_number = '"
               + contract.getTitle() + "' WHERE notification_id = " + id;
         uStmt.executeUpdate(update_status);
         uStmt.executeUpdate(uBilling_lock_datetime);
         uStmt.executeUpdate(uContract_number);
         c.commit();
         String setNumber = " SELECT cid, nru.date2 FROM number_resource_5 AS nr " +
                        " LEFT JOIN number_resource_use_5 AS nru ON nru.resource_id = nr.id " +
                        " WHERE (nru.date2 IS NULL OR nru.date2 < NOW()) AND number = '"+number+"'";
         PreparedStatement contractPs = con.prepareStatement(setNumber);
            ResultSet contractRs = contractPs.executeQuery();
         while (contractRs.next()) {
            Tcid = contractRs.getInt(1);
            Date date2 = contractRs.getDate(2);
            print ("Tcid " + Tcid);
            if (Tcid > 0 && date2 != null )
            {
         ClientItem newPhone = new ClientItem();
         newPhone.setContractId(contract.getId());
         newPhone.setDate1(calndar);
         newPhone.setType(1);
         newPhone.setSourceId(1);
         ArrayList<String> phoneNumber = new ArrayList<String>();
         phoneNumber.add(number);
         newPhone.setClientNumbers(phoneNumber);
         cim.realUpdate(0, newPhone, true, context, true );
         cim.updateClientItem(newPhone);
         // создание логина voiceip
            VoiceIpLoginManager lm = new VoiceIpLoginManager(con, VOICEIP_MID);
            VoiceIpLogin login = new VoiceIpLogin();
            login.setCid( contract.getId() );
            login.setStatus( true );

            login.setPswd( "" );
            login.setDate1( calndar.getTime() );
            login.setComment( "" );
            login.setType(1);
         //
            login = lm.addLogin( login, Setup.getSetup().getModuleSetup(  VOICEIP_MID ) );
            //установка алиаса
            Set aliases = new HashSet();
            aliases.add( number + "-100" );
            lm.updateAliases( login.getId(), aliases );
            print("phone add ");
            }
            
            
         else if (Tcid <= 0 )
            {
         ClientItem newPhone = new ClientItem();
         newPhone.setContractId(contract.getId());
         newPhone.setDate1(calndar);
         newPhone.setType(1);
         newPhone.setSourceId(1);
         ArrayList<String> phoneNumber = new ArrayList<String>();
         phoneNumber.add(number);
         newPhone.setClientNumbers(phoneNumber);
         cim.realUpdate(0, newPhone, false, context, true );
         cim.updateClientItem(newPhone);
         // создание логина voiceip
            VoiceIpLoginManager lm = new VoiceIpLoginManager(con, VOICEIP_MID);
            VoiceIpLogin login = new VoiceIpLogin();
            login.setCid( contract.getId() );
            login.setStatus( true );

            login.setPswd( "" );
            login.setDate1( calndar.getTime() );
            login.setComment( "" );
            login.setType(1);
         //
            login = lm.addLogin( login, Setup.getSetup().getModuleSetup(  VOICEIP_MID ) );
            //установка алиаса
            Set aliases = new HashSet();
            aliases.add( number + "-100" );
            lm.updateAliases( login.getId(), aliases );
            print("phone add ");
            }
            
            else if (Tcid > 0 && date2 == null)
             {
                print("Ошибка, номер занят ");
             }

         }

         java.util.List<java.lang.String> ltp = pattern.getTariffPlanList();
         print("Befor TP " + ltp);
         if (ltp == null || ltp.isEmpty()) {
         print("TP ");
            ContractTariff t = new ContractTariff();
            t.setContractId(cid);
            t.setDate1(calndar);
            t.setTariffPlanId(tariff_id);
            t.setComment("Тариф назначился скриптом при создании договора в"
                  + new Date());
            ctm.updateContractTariff(t);
            EventProcessor.getInstance().publishAfterCommit(
                  new ContractTariffUpdateEvent(0, cid, t, true));
            EventProcessor.getInstance().publishAfterCommit(
                  new ContractTariffChangedEvent(cid));
         }


         ContractRemover cr = new ContractRemover(setup1, con, null);
         //cr.deleteContract(cid);


         String update_status_down = "UPDATE notification SET status = 'D' WHERE notification_id = "
               + id;
               dStmt.executeUpdate(update_status_down);
               c.commit();
               dStmt.close();
         System.out.println("balance = " + balance);

      rs.close();
      stmt.close();
      c.close();
      System.out.println("Operation done successfully");
   }

}

ошибка вылетает такая

Код:
04-02/09:51:04  INFO [pool-2-thread-1] CommonKernelEventProcessor - Process event cid:0; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 0; scid: -1; userId: 0; timestamp: 1427957464415
04-02/09:51:04  INFO [pool-2-thread-1] CommonKernelEventProcessor - Process event cid:279; event:Event[ru.bitel.bgbilling.kernel.event.events.system.ContractCreateEvent] moduleId: 0; pluginId: no; cid: 279; scid: -1; userId: 0; timestamp: 1427957464454
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream - ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Can't call commit when autocommit=true
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.contract.balance.server.PaymentServiceImpl.paymentUpdate(PaymentServiceImpl.java:241)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.firstTelecom.global.schedulerBase.execute(schedulerBase.java:147)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.java:38)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScriptParams(GlobalScriptServiceImpl.java:83)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeJava(GlobalScriptTimer.java:88)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.script.server.task.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:55)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:76)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at java.lang.Thread.run(Thread.java:745)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream - Caused by: java.sql.SQLException: Can't call commit when autocommit=true
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:925)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:922)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1741)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.commit(PoolGuardConnectionWrapper.java:74)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     at ru.bitel.bgbilling.kernel.contract.balance.server.PaymentServiceImpl.paymentUpdate(PaymentServiceImpl.java:218)
04-02/09:51:04 ERROR [pool-2-thread-1] LoggingPrintStream -     ... 9 more
04-02/09:51:04  INFO [pool-2-thread-1] GlobalScriptTimer - Task finished time=121 ms.


падает вот тут
Код:
java.util.List<java.lang.Integer> pmt = paymentService.paymentUpdate(p, null);

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
нет полагаю вот здесь:
c.commit();
там же написано англицским по белому

зачем там коммиты то?

блин у меня половина сообщения пропала :facepalm:

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
нет полагаю вот здесь:
c.commit();
там же написано англицским по белому

зачем там коммиты то?

так а в начале написано
c.setAutoCommit(false);
записывать изменения нехотел если нет комитов

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
так не для того коннекшена ругается же, непонятно пока.
autocommit=true ставится для родного коннекшена как раз, тока непонятно кто его коммитит
суммон Amir

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
dimOn писал(а):
так не для того коннекшена ругается же, непонятно пока.
autocommit=true ставится для родного коннекшена как раз, тока непонятно кто его коммитит
суммон Amir

комит закоментил, ошибка та же

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
да не в нём дело, возможно, нопейсал уже.

_________________
I'm clever. I've got a computer.


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

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Из планировщика падает. Комитим мы его сами в сервисе, а в планировщике атокомит включен. Подумаем что с этим делать.
Если бы по событию этот скрипт запускался или вручную, то проблемы бы не было. Проблема именно в планировщике. Можно как вариант эту задачу поправить так чтобы они con-он с autocommit =false передавала. Наверное так и исправим, чтобы работало как при запуске глобального скрипта вручную. Правда боязно за вас, вы там в скриптах наворотите, а комиттов ставить не будете и там будут большие транзакции, которые будут вызывать deadlock-и на mysql. Представленный скрипт, кстати, яркий пример этого, тут никто не вызывает у нашего connection-а commit и все 100500 договоров создавать будет в одной транзакции(хотя в данном случае paymentUpdate будет комитить как раз :) ). Комиты в paymentUpdate решают одну проблему , которую бы по хорошему надо решать по другому и их убрать - это тоже решит данную проблему.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2015, 17:44 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark а подскажи что делать в данном скрипте чтоб он заработал? а то он не работает толком

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2015, 00:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
stark а подскажи что делать в данном скрипте чтоб он заработал? а то он не работает толком


пока ничего, проблема с нашей стороны..Как исправим - надо крипт оптимизировать(пока можно начать рефакторинга и вытащить общий код в функцию, чтобы потом в нескольких местах не исправлять).


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

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


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

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


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

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