BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 04:44

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: 14 окт 2019, 16:50 
Не в сети

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
Добрый день! Помогите пжл, как добавить массово в параметр Телефон, значение Коммента, чтоб было прописано "Основной" для первого номера телефона?
сделал sql запрос, но он меняет коммент в редакторе и приходится нажимать ОК, приведите пример пжл


Вложения:
Screenshot_3.png
Screenshot_3.png [ 1.24 КБ | Просмотров: 4156 ]
Screenshot_1.png
Screenshot_1.png [ 4.02 КБ | Просмотров: 4156 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 окт 2019, 17:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.api.common.service.ContractService;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.oss.kernel.entity.common.bean.EntityAttrPhone;

import java.sql.Connection;
import java.util.List;

public class TestGlobalScript
        extends GlobalScriptBase {

    @Override
    public void execute(Setup setup, ConnectionSet connectionSet)
            throws Exception {
        ServerContext serverContext = ServerContext.get();
        Connection con = connectionSet.getConnection();
        ContractService contractService = serverContext.getService(ContractService.class, 0);
        EntityAttrPhone entityAttrPhone = (EntityAttrPhone) contractService.contractParameterGet(<CONTRACT_ID>, <PHONE_PARAM_ID>);
        List<EntityAttrPhone.PhoneContact> contactList = entityAttrPhone.getContactList();
        if (null != contactList && !contactList.isEmpty()) {
            EntityAttrPhone.PhoneContact phoneContact = contactList.get(0);
            phoneContact.setComment("Основной");
            contractService.contractParameterUpdate(<CONTRACT_ID>, entityAttrPhone);
        }
    }
}

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 окт 2019, 17:45 
Не в сети

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
большое спасибо


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

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
Код:
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.api.common.service.ContractService;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.event.events.ContractParamBeforeChangeEvent;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.oss.kernel.entity.common.bean.EntityAttrPhone;

import java.sql.Connection;
import java.util.List;


public class UpdateCommentPhone1 extends EventScriptBase {

    @Override
    public void onEvent(Event event, Setup setup, ConnectionSet set) throws Exception {
        Connection con = set.getConnection();

        ContractParamBeforeChangeEvent e = (ContractParamBeforeChangeEvent) event;
        int pid = e.getParamId();
        int cid = e.getContractId();

        ServerContext serverContext = ServerContext.get();
        ContractService contractService = serverContext.getService(ContractService.class, 0);
        EntityAttrPhone entityAttrPhone = (EntityAttrPhone) contractService.contractParameterGet(cid, pid);
        List<EntityAttrPhone.PhoneContact> contactList = entityAttrPhone.getContactList();


        if (pid == 3){
            contractService.contractParameterUpdate(cid, entityAttrPhone);
            if (e.getEntityAttr() == null){
                EntityAttrPhone.PhoneContact phoneContact = contactList.get(0);
                phoneContact.setComment("Основной");
            }
        }
    }
}


теперь пытаюсь добавить коммент через событие, чтоб после нажатия на Ок добавлялся автоматом, но что то не получается (, подскажите пжл куда копать? и правильный ли такой код? у меня после нажатия на Ок все зависает


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 окт 2019, 09:32 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
1) событие срабатывает на все параметры, поэтому всю логику нужно делать внутри условия if (pid==3), иначе приведение типа на других типах параметров не прокатит и будет ошибка.
2) далее берём значение параметра из события(!) и ставим первому телефону коммент "основной". всё, измененный параметр в базу уже запишет сам биллинг.

примерно, так:
Код:
if( pid == 3){
    PhoneParamValue phone = (PhoneParamValue) e.getValue();
    if( phone != null ){
        phone.getPhoneItem(0).setComment("основной");
    }
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 окт 2019, 09:58 
Не в сети

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
спасибо


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 ноя 2019, 16:45 
Не в сети

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
Phricker писал(а):
Код:
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.api.common.service.ContractService;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.oss.kernel.entity.common.bean.EntityAttrPhone;

import java.sql.Connection;
import java.util.List;

public class TestGlobalScript
        extends GlobalScriptBase {

    @Override
    public void execute(Setup setup, ConnectionSet connectionSet)
            throws Exception {
        ServerContext serverContext = ServerContext.get();
        Connection con = connectionSet.getConnection();
        ContractService contractService = serverContext.getService(ContractService.class, 0);
        EntityAttrPhone entityAttrPhone = (EntityAttrPhone) contractService.contractParameterGet(<CONTRACT_ID>, <PHONE_PARAM_ID>);
        List<EntityAttrPhone.PhoneContact> contactList = entityAttrPhone.getContactList();
        if (null != contactList && !contactList.isEmpty()) {
            EntityAttrPhone.PhoneContact phoneContact = contactList.get(0);
            phoneContact.setComment("Основной");
            contractService.contractParameterUpdate(<CONTRACT_ID>, entityAttrPhone);
        }
    }
}


билды пока не обновленны на боевой машине, всвязи с этим нет метода contractParameterGet в contractService, как можно переделать данный код? подскажите плз


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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12 ноя 2019, 08:58 
Не в сети

Зарегистрирован: 15 янв 2019, 08:34
Сообщения: 19
Карма: 0
боевой Сервер: вер. 7.1.1050


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Для версий ниже 7.2
Код:
import bitel.billing.server.contract.bean.ContractParameterManager;
import ru.bitel.bgbilling.common.PhoneUtils;
import ru.bitel.bgbilling.kernel.container.managed.ServerContext;
import ru.bitel.bgbilling.kernel.contract.param.common.bean.PhoneParamItem;
import ru.bitel.bgbilling.kernel.contract.param.common.bean.PhoneParamValue;
import ru.bitel.bgbilling.kernel.module.common.bean.User;
import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
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;
import java.util.Iterator;

public class TestGlobalScript
        extends GlobalScriptBase {

    private final int PHONE_PARAM_ID = 30;

    @Override
    public void execute(Setup setup, ConnectionSet connectionSet)
            throws Exception {
        Connection con = connectionSet.getConnection();
        ServerContext serverContext = ServerContext.get();
        String query = "SELECT cid FROM contract_parameter_type_phone WHERE pid = ?";
        try (ContractParameterManager contractParameterManager = new ContractParameterManager(con);
             PreparedStatement ps = con.prepareStatement(query)) {
            ps.setInt(1, PHONE_PARAM_ID);
            try (ResultSet rs = ps.executeQuery()) {
                while (rs.next()) {
                    PhoneParamValue phoneParamValue = contractParameterManager.getPhoneParam(rs.getInt("cid"), PHONE_PARAM_ID);
                    if (phoneParamValue != null) {
                        Iterator<PhoneParamItem> it = phoneParamValue.iterator();
                        PhoneParamItem phoneParamItem = it.next();
                        if (phoneParamItem != null) {
                            phoneParamItem.setComment("Основной");
                            phoneParamValue.setPhones(PhoneUtils.getPhones(phoneParamValue, ""));
                        }
                        contractParameterManager.updatePhoneParam(rs.getInt("cid"), PHONE_PARAM_ID, phoneParamValue, User.USER_SERVER);
                    }
                }
            }
        }
    }
}

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


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 1


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

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