BiTel

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

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




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

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Добрый день.
Подскажите, существует ли возможность копировать из привязанного договора BGBilling телефонный параметр в параметр процесса, на примере того, как это реализовано с адресным параметром?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Телефонный параметр
СообщениеДобавлено: 11 мар 2019, 16:33 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
В какой момент? При создании процесса привязанного к договору?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Телефонный параметр
СообщениеДобавлено: 11 мар 2019, 16:37 
Не в сети

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Да, именно тогда. При привязке договора к процессу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Телефонный параметр (CRM)
СообщениеДобавлено: 15 мар 2019, 19:55 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Для чего вы копируете все параметры отдельно? Не лучше ли в описание процесса всё собрать кроме адреса?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Телефонный параметр (CRM)
СообщениеДобавлено: 15 мар 2019, 20:57 
Не в сети

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Ну а почему тогда адрес отдельно вынесен, давайте и его тогда в описании писать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Телефонный параметр (CRM)
СообщениеДобавлено: 15 мар 2019, 21:04 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
По нему надо искать и его надо отдельно выводить обычно. Остальные параметры где выводятся? Где-то в заявках, очереди процессов? Если нет - то выгоднее всё в описание поместить. Можно и так и так, сложности в этом нет. Просто хочется предложить наиболее практичное решение.


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

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Добрый день. Подскажите, нет ли возможности по событию добавление привязки к процессу (скажем договора из биллинга) очищать ранее добавленный параметр адрес и подставлять полученный из договора биллинга. Получается сейчас так, что если к процессу добавлен адрес, а потом привязывают договор, то в параметре адрес отображаются сразу два


Вложения:
1.png
1.png [ 87.2 КБ | Просмотров: 5198 ]
2.png
2.png [ 96.07 КБ | Просмотров: 5198 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 апр 2019, 19:40 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Текущую конфигурацию процесса выложите, пожалуйста.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 апр 2019, 23:26 
Не в сети

Зарегистрирован: 03 июн 2015, 14:00
Сообщения: 249
Карма: 5
Код:
create.in.objectTypes=contract:BgbillingInet
#
processShowProcessLinks=1
processShowMessages=1
# скрытие в редакторе процесса ссылки полной правки описания
hideDescriptionChange=1
# шаблон текста при добавлении в описание процесса текста кнопкой "Добавить"
descriptionAddPattern=(${description}\n)[(${time}) (${user})]\t(${text})
# произвольный шаблон времени для добавляемого текста
descriptionAddPattern.timePattern=dd.MM HH:mm
#
processReference.1.objectTypes=processCard
processReference.1.stringExpression="<span class='title'>#" + process.getId() + " Заявка: " + u.toString( processParam.addressValues( 4 ) ) + "</span> <span>" + u.escapeXml( process.getDescription() ) + "</span>"
processReference.2.objectTypes=linkProcessList
processReference.2.stringExpression=u.toString( processParam.addressValues( 4 ) ) + " "
#
# открыт - Адрес
requireFillParamIdsBeforeStatusSet.1=4
#
processCreateLink.1.title=Сформировать заявку
processCreateLink.1.processTypeId=41
processCreateLink.1.linkType=processLink
# копирование привязок
processCreateLink.1.copyLinks=1
processCreateLink.1.copyParams=4,16,33
#
onProcessEvent.1.events=messageAdded;executorsChanged;statusChanged
onProcessEvent.1.commands=newsPopupNotifyExecutors
#
onProcessEvent.3.events=linkAdded;createdAsLink
onProcessEvent.3.commands=bgbilling:getLinkedContractAddressParam:BgbillingInet:8:4
onProcessEvent.4.events=statusChanged;messageAdded;descriptionAdded
onProcessEvent.4.doExpression=<<END
   text = process.getId() + "<br></END>" + process.getDescription();
   mobile.sendMessageToExecutors("Изменился процесс, в котором вы исполнитель", text);
END
# Выполнена
onProcessEvent.5.events=statusChanged:1
onProcessEvent.5.doExpression=setPriority(4);
# Отказ
onProcessEvent.6.events=statusChanged:5
onProcessEvent.6.doExpression=setPriority(6);
#Выполнена частично
onProcessEvent.7.events=statusChanged:3
onProcessEvent.7.doExpression=setPriority(3);
# На проверке
onProcessEvent.8.events=statusChanged:7
onProcessEvent.8.doExpression=setPriority(5);
# Не выполнена
onProcessEvent.9.events=statusChanged:2
onProcessEvent.9.doExpression=setPriority(1);
# Перенос
onProcessEvent.10.events=statusChanged:6
onProcessEvent.10.doExpression=setPriority(7);
#
#Добавление текста в описание процесса при смене статуса
onProcessEvent.11.events=statusChanging
onProcessEvent.11.doExpression=<<END
  dao = new("ru.bgcrm.dao.process.ProcessDAO", conSet.getConnection());

  change = event.getStatusChange();
  change = ctxUserMap[change.getUserId()].getTitle() + " => " + ctxProcessStatusMap[change.getStatusId()].getTitle() + " [" + change.getComment() + "]";

  process.setDescription(process.getDescription() + NEW_LINE + change);
  dao.updateProcess(process);
END
#
onProcessEvent.12.events=linkAdded;createdAsLink
onProcessEvent.12.commands=refreshCurrentQueue;open
onProcessEvent.13.events=statusChanging
onProcessEvent.13.commands=refreshCurrentQueue;open
#
cnt=1
#
BILLING_ID=BgbillingInet
#
createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.JexlStep
createWizard.step.{@cnt}.title=Информация о заявке
createWizard.step.{@cnt}.doExpression=<<END
     message = "";
     
     paramDao = new("ru.bgcrm.dao.ParamValueDAO", conSet.getConnection());
     linkDao = new("ru.bgcrm.dao.process.ProcessLinkDAO", conSet.getConnection());
     addrDao = new("ru.bgcrm.dao.AddressDAO", conSet.getConnection());
     contractDao = new("ru.bgcrm.plugin.bgbilling.proto.dao.ContractDAO", ctxUser, "{@BILLING_ID}");

     message += "ID заявки: <b>" + process.getId() + "</b><br/>";

     message += "Тип заявки: <b>";
     message += ctxProcessTypeMap.get(process.getTypeId()).getTitle();
     message += "</b><br/>";

     message += "Время: <b>";
     timeFrom = paramDao.getParamDateTime(process.getId(), 5);
     if (timeFrom != null)
            message += tu.format(timeFrom, "ymdhm");
     message += " - ";
     timeTo = paramDao.getParamDateTime(process.getId(), 10);
     if (timeTo != null)
            message += tu.format(timeTo, "ymdhm");
     message += "</b><br/>";

     message += "Договор: <b>";
     contractLink = u.getFirst(linkDao.getObjectLinksWithType(process.getId(), "contract%"));
     if (contractLink != null)
           message += contractLink.getLinkedObjectTitle();
     message += "</b><br/>";   

     if (contractLink != null ) {
            message += "Пароль: <b>";
            pswd = contractDao.getContractStatisticPassword(contractLink.getLinkedObjectId());
            message += pswd;
            message += "</b><br/>";   
     }
     
     message += "Адрес: <b>";
     addr = paramDao.getParamAddress(process.getId(), 4, 1);
     if (addr != null)
           message  += addr.getValue();
     message += "</b><br/>";

     if (addr != null) {
          message += "Информация по дому: <b>";
          house = addrDao.getAddressHouse(addr.getHouseId(), false, false, false);
          if (house != null)
              message += house.getComment();
          message += "</b><br/>";   
     } 

     message += "Телефон: <b>";
     phone = paramDao.getParamPhone(process.getId(), 16);
     if (phone != null)
         message += phone.getValue();
     message += "</b><br/>";
     
     return {"filled": true, "message": message};
END
#
createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.SetDescriptionStep
#createWizard.step.{@cnt}.title=Описание
#
createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.FillParamsStep
createWizard.step.{@cnt}.title=Файлы
createWizard.step.{@cnt}.parameterIds=14
#
createWizard.step.{@inc:cnt}.class=ru.bgcrm.model.process.wizard.SetStatusStep
createWizard.step.{@cnt}.title=Статус
#
workload:groupLoad.userGroupIds=4,5,6,8,10,11,12,13,14,21,23
workload:groupLoad.processTypeIds=51,95,54,50,33,42
workload:groupLoad.dateFromParamId=5
workload:groupLoad.dateToParamId=10
workload:groupLoad.addressParamId=4


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
http://bgerp.ru/patch/p11215 - обновление

Настроил в отдельной конфигурации (код 5) сниплет для копирования адресного параметра:
Код:
COPY_BGBILLING_INET_ADDRESS=<<END
    paramDao = new("ru.bgcrm.dao.ParamValueDAO", conSet.getConnection());
    linkDao = new("ru.bgcrm.dao.process.ProcessLinkDAO", conSet.getConnection());
    contractLink = u.getFirst(linkDao.getObjectLinksWithType(process.getId(),"%contract%"));
    if (contractLink != null) {
         contractId =  contractLink.getLinkedObjectId();
         billingId = su.substringAfter(contractLink.getLinkedObjectType(), ":");
         contractParamDao = new("ru.bgcrm.plugin.bgbilling.proto.dao.ContractParamDAO", ctxUser, billingId);
         address = contractParamDao.getAddressParam(contractId, 8);
         if (address != null) {
               paramDao.updateParamAddress(process.getId(), 4, 1, address.toParameterAddressValue(conSet.getConnection()));
         }   
    }
END


Далее пока в одном только типе процесса (Отдел качества) сделал следующуе настройки.
В начале конфигурации инклуд:
Код:
# JEXL includes
include.5=1
#


Далее вместо устаревшего макроса используется данный код.
Код:
onProcessEvent.2.events=linkAdded;createdAsLink
#onProcessEvent.2.commands=bgbilling:getLinkedContractAddressParam:BgbillingInet:8:4
onProcessEvent.2.doExpression={@COPY_BGBILLING_INET_ADDRESS}
#


COPY_BGBILLING_INET_ADDRESS можно расширить для копирования всех необходимых параметров.


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

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


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

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


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

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