BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 дек 2024, 18:49

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 18:01 
Не в сети

Зарегистрирован: 02 фев 2015, 04:27
Сообщения: 273
Карма: 5
Есть компания, у которой несколько объектов подключения интернета.
У нас ними один договор, а каждый объект оформлен через приложение к договору.
В биллинге один договор. На каждый объект своя услуга и свой тариф.

Получается в плагине Documents:
- бланк договора 1шт
- бланк приложения 1 шт

Как имея один шаблон, печатать разные приложения ?
Делать договор на каждый объект, мне кажется, избыточным. Как правильно это оформить ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 18:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Договора как нибудь различаются?
Если да - то можно набросать скрипт который будет в зависимости от этих данных подставлять что-то свое туда куда нужно.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 19:08 
Не в сети

Зарегистрирован: 02 фев 2015, 04:27
Сообщения: 273
Карма: 5
Phricker писал(а):
Договора как нибудь различаются?
Если да - то можно набросать скрипт который будет в зависимости от этих данных подставлять что-то свое туда куда нужно.

Договор один и куда скрипт применять не понял что-то.
Поясню немного. В приложении находятся данные:
    Адрес услуги
    Скорость канала
    Стоимость услуги
    Стоимость инсталяции
Этих приложений может быть штук 10.
Вот куда мне прописать эти параметры, чтобы потом можно было распечатать приложение ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 19:15 
Не в сети

Зарегистрирован: 02 фев 2015, 04:27
Сообщения: 273
Карма: 5
Мне кажется, для этих целей подошли бы объекты договора, но их нельзя выбрать в плагине Documents.
Если только SQL запросом. Но как передать нужный ID объекта ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 19:47 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Еще раз.
Как вы видите разницу между
Цитата:
Есть компания, у которой несколько объектов подключения интернета.
У нас ними один договор, а каждый объект оформлен через приложение к договору.

В договоре, который в биллинге, есть какой-то параметр в котором прописан объект подключения или что?
Или номера договоров в биллинге разнятся?

В зависимости от этих данных вы можете
Цитата:
Динамический Java-класс реализует интерфейс ru.bitel.bgbilling.plugins.documents.server.bean.pattern.PatternDataExtractor, содержащий метод extractData( Connection con, int contractId, DocumentPattern pattern, DocumentType type, DocumentJournal journal, Map<String, String> apiMap ), который должен возвращать объект типа Map<String, String> - список переменных в формате "ключ=>значение переменной". Здесь в качестве ключа выступает название переменной, соответствующей переменной в файле шаблона документа.


И в зависимости от этих данных подставляйте те значения переменных которые вам нужны.

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


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

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Как пример
Код:
public Map extractData( Connection con, int cid, DocumentPattern pattern, DocumentType type, DocumentJournal journal, Map<String, String> apiMap )
            throws BGException
    {
        ContractManager cm = new ContractManager(con);
      ContractParameterManager cpm = new ContractParameterManager(con);
        Contract contract = cm.getContractById(cid);
        Map<String, String> result = new HashMap<String, String>();

        //Получение параметров договора
        result.put("contractTitle", contract.getTitle());
        result.put("contractDate", TimeUtils.formatDate(contract.getDateFrom()));
        result.put("contractPassword", contract.getPswd());
      if(contract.getFc() == 0){
         result.put("fio", getContractParameterData(cpm.getStringParam(1)));
        }
      else if(contract.getFc() == 1){
         result.put("fio", getContractParameterData(cpm.getStringParam(2)));
        }
       
        return result;
    }

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 19:56 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Хотя если у вас приложения в корне разнятся (а не просто значениями переменных либо тем что можно заменить переменными), то тогда да - засада.
Навскидку ничего не назову.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 19:58 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
И в карточках договора была удобная фишка как "Получения списка карточек договора".
Самому ее не хватает в плагине Documents
Можно просить разрабов запилить подобное - и тогда заводить кучу шаблонов, но их список для конкретных договоров вы будете сами редактировать скриптом.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 13 апр 2015, 21:24 
Не в сети

Зарегистрирован: 02 фев 2015, 04:27
Сообщения: 273
Карма: 5
Как я понял, в вашем примере берется параметр договора по id в зависимости от типа договора.
Чем мне это поможет не могу понять. Тип то у меня один.
Сейчас объекты подключения нигде не прописаны. Я пытаюсь разобраться как правильно их прописать в договоре.
Первая мысль - прописать в параметры таким образом:
    [Услуга №1] Адрес
    [Услуга №1] Скорость канала
    [Услуга №1] Стоимость

    [Услуга №2] Адрес
    [Услуга №2] Скорость канала
    [Услуга №2] Стоимость

И на каждую услугу в плагине Documents создать свой шаблон приложения. По сути, один и тот же, только берется из разных параметров. Но такой подход выглядит костылем. Вот я и спрашиваю, как правильно такое организовывать?
p.s.
Пока писал сообщение, пришла мысль - а что если в параметре договора указывать ID объекта, который хочешь распечатать и через SQL получить данные по нужному объекту. Тоже костыль, но зато не надо городить кучу параметров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как правильно сделать
СообщениеДобавлено: 14 апр 2015, 12:58 
Не в сети

Зарегистрирован: 02 фев 2015, 04:27
Сообщения: 273
Карма: 5
Получилось.
Добавил в договор параметр "ID объекта для печати"
В Documents в настройки шаблона приложения добавил переменные типа SQL.
address:
Код:
SELECT B.address FROM `object` A
JOIN `object_param_value_address` B ON A.id = B.object_id
WHERE A.cid = ${cid}
AND A.id = (SELECT val
            FROM `contract_parameter_type_1` P
            WHERE P.cid=A.cid
            AND P.pid=60)

Где pid=60 - это ID параметра в договоре "ID объекта для печати".

date:
Код:
SELECT B.value FROM `object` A
JOIN `object_param_value_date` B ON A.id = B.object_id
WHERE A.cid = ${cid}
AND B.param_id=7
AND A.id = (SELECT val
             FROM `contract_parameter_type_1` P
            WHERE P.cid=A.cid
            AND P.pid=60)

Где B.param_id=7 - ID параметра объекта "Дата подключения"

speed:
Код:
SELECT B.value FROM `object` A
JOIN `object_param_value_text` B ON A.id = B.object_id
WHERE A.cid = ${cid}
AND B.param_id=4
AND A.id = (SELECT val
             FROM `contract_parameter_type_1` P
             WHERE P.cid=A.cid
             AND P.pid=60)

Где B.param_id=4 - ID параметра объекта "Скорость канала"
Ну и так далее по всем параметрам объекта.

Теперь, если у клиента появляется новый точка подключения, я просто добавляю объект, заполняю параметры объекта. В параметрах договора указываю "ID объекта для печати" и генерирую приложение к договору. Результатом доволен.


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

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


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

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


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

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