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

Массово установить опцию на все договора
http://forum.bitel.ru/viewtopic.php?f=22&t=12034
Страница 1 из 1

Автор:  Inspire [ 24 окт 2016, 17:48 ]
Заголовок сообщения:  Массово установить опцию на все договора

Можно ли установить опцию на все интернет-договора разом?
МОжет, в бд в таблице можно id Опции прописать? Узнать бы имя этой таблицы

Автор:  Inspire [ 24 окт 2016, 17:55 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

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

  Клиент: вер. 7.0.834 / 09.09.2016 13:06:09
    os: Windows 8.1; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_51
  Сервер: вер. 7.0.1103 / 09.09.2016 13:07:53
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66

  bill: вер. 7.0.92 / 23.08.2016 18:37:34
  card: вер. 7.0.40 / 22.08.2016 16:40:03
  cerbercrypt: вер. 7.0.219 / 22.08.2016 15:40:08
  dialup: вер. 7.0.319 / 29.08.2016 16:38:40
  email: вер. 7.0.180 / 25.05.2016 13:53:19
  inet: вер. 7.0.677 / 06.09.2016 19:06:54
  ipn: вер. 7.0.258 / 01.09.2016 18:14:39
  mps: вер. 7.0.198 / 09.09.2016 13:08:12
  npay: вер. 7.0.198 / 19.07.2016 18:37:21
  phone: вер. 7.0.275 / 01.09.2016 18:04:07
  rentsoft: вер. 7.0.65 / 10.06.2016 17:00:01
  reports: вер. 7.0.215 / 06.09.2016 17:39:00
  rscm: вер. 7.0.180 / 10.06.2016 17:00:08
  ru.bitel.bgbilling.plugins.cladr: вер. 7.0.123 / 08.04.2016 17:40:39
  ru.bitel.bgbilling.plugins.crm: вер. 7.0.194 / 31.05.2016 15:00:38
  ru.bitel.bgbilling.plugins.helpdesk: вер. 7.0.190 / 29.08.2016 16:32:16
  ru.bitel.bgbilling.plugins.organizer: вер. 7.0.74 / 08.04.2016 17:40:44
  voiceip: вер. 7.0.189 / 08.04.2016 17:40:15

Окружение:

  Клиент:
    os: Windows 8.1 amd64, 6.3
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_51
    jre home: c:\Java\jre8
    default tz: 24.10.2016 15:55 SAMT +0400 (Europe/Samara)
    user tz: 24.10.2016 15:55 GET +0400 (Asia/Tbilisi)
    locale: ru_RU
  Сервер:
    os: Linux amd64, 3.19.0-33-generic
    java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_66
    jre home: /opt/java/jdk1.8.0_66/jre
    default tz: 24.10.2016 15:55 SAMT +0400 (Europe/Samara)
    db time: master: 24.10.2016 15:55 SAMT
    db charset: connection: utf8(utf8_general_ci), database: utf8(utf8_unicode_ci)
    locale: ru_RU
    uptime: Started: 24.10.2016 13:31:02 Uptime: 0 d 02:24:16

Третьи стороны:

  Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved.
    http://p.yusukekamiyamane.com/
  Silk icon set. Copyright © Mark James. All rights reserved.
    http://www.famfamfam.com/lab/icons/silk/

Автор:  Arcad77 [ 24 окт 2016, 18:09 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

Попробуй так: Малая автоматизация

Автор:  Phricker [ 24 окт 2016, 18:40 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

Код:
package ru.ellcom.test;

import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.kernel.tariff.option.common.service.TariffOptionService;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class AddTariffOption
        extends GlobalScriptBase {
    private final int OPTION_ID = 7;
    private final int OPT_MODE_ID = 7;

    @Override
    public void execute(Setup setup, ConnectionSet connectionSet) throws Exception {
        Connection con = connectionSet.getConnection();
        ServerContext context = ServerContext.get();
        TariffOptionService toa = context.getService(TariffOptionService.class, 1);

        String query = "SELECT id FROM contract ";
        PreparedStatement ps = con.prepareStatement(query);
        ResultSet rs = ps.executeQuery();
        while (rs.next()){
            int cid = rs.getInt("id");

            try {
                toa.contractTariffOptionActivate(cid, OPTION_ID, OPT_MODE_ID, false);
            } catch (Exception e) {
                error("Невозможно активировать опцию на договоре: " + cid);
            }
        }
        rs.close();
        ps.close();
    }
}

Автор:  barguzin2 [ 24 окт 2016, 19:09 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

таблица называется inet_serv_option_{mid}. только после прямого добавления нужно будет ребут серверов делать. через дин.код и InetServService как-то правильней будет. А если устраивает вариант с БД, то:
Код:
INSERT INTO inet_serv_option_{mid} (servId, optionId, dateFrom, dateTo) SELECT id, {optionId}, dateFrom, dateTo FROM inet_serv_{mid}

{mid} и {optionId} заменить на свои код модуля и код опции.

Автор:  barguzin2 [ 24 окт 2016, 19:11 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

Ну вот, оказывается есть разные опции - тарифные и сервисов Inet. вам какую? :)

Автор:  zavndw [ 24 окт 2016, 19:25 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

сервисов inet

Автор:  barguzin2 [ 24 окт 2016, 19:46 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

тогда пожалуйста, sql-запрос выше. через дин-код если, то алгоритм схож с вышеприведенным примером Phricker-а, только запросом дергать нужно не договоры, а сервисы и , как уже сказал, использовать InetServService, предварительно дернув список опций сервиса и добавив к нему нужную, а потом сделать update.

Автор:  Phricker [ 24 окт 2016, 19:56 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

Сервисов Inet в ядре системы.
Океееей...
Изображение

Автор:  Amir [ 31 окт 2016, 20:45 ]
Заголовок сообщения:  Re: Массово установить опцию на все договора

Можно же через тариф добавлять опции Inet.
А в тарифе есть фильтр по группам договоров.

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