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

Как подставить номер договора в название услуги ?
http://forum.bitel.ru/viewtopic.php?f=14&t=8940
Страница 1 из 1

Автор:  grifin [ 10 фев 2014, 00:40 ]
Заголовок сообщения:  Как подставить номер договора в название услуги ?

Как нужно исправить:
Код:
bill.pos.4.title=Услуги междугородной и международной телефонной связи по договору ______ с ОАО "Вымпелком" за  {$prevmonth,date,MMMM yyyy г.}
bill.pos.4.name=Услуги междугородной и международной телефонной связи по договору _______ с ОАО "Вымпелком" за  {$prevmonth,date,MMMM yyyy г.}
bill.pos.4.summ=SERVICE_ACCOUNT($prevmonth,12)+SERVICE_ACCOUNT($prevmonth,13)
bill.pos.4.quantity=PHONE_SERVICE_AMOUNT(6, $prevmonth, 60, 12) +PHONE_SERVICE_AMOUNT(6, $prevmonth, 60, 13)
bill.pos.4.unit=Минута
bill.pos.4.unitCode=355
# включать ли данную позицию в сумму документа, 0 -  не включать
bill.pos.4.insum=1
# включать в счёт при сумме 0
bill.pos.4.awlz=0

что бы перед " с ОАО "Вымпелком" выводился номер договора ?
Спасибо.

Автор:  barguzin2 [ 10 фев 2014, 08:49 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

Как вариант, можно следующим образом - написать свой класс, в котором сделать метод, заменяющий ______ (хотя, на мой взгляд, вместо подчерков лучше использовать макрос типа $contract, так нагляднее ) на номер договора и возвращающий новое значение. Скомпилированный класс упаковывается в jar-ку и кладется в BGBILLING_DIR/lib/ext, после чего сервер нужно перезапустить. Далее этот класс и его метод подключается к XSL-шаблону документа и применяется в нужном месте по примеру summaToString - есть в стандартном шаблоне счета.

P.S. Это
Код:
bill.pos.4.summ=SERVICE_ACCOUNT($prevmonth,12)+SERVICE_ACCOUNT($prevmonth,13)
bill.pos.4.quantity=PHONE_SERVICE_AMOUNT(6, $prevmonth, 60, 12) +PHONE_SERVICE_AMOUNT(6, $prevmonth, 60, 13)

можно написать более компактно
Код:
bill.pos.4.summ=SERVICE_ACCOUNT($prevmonth,12,13)
bill.pos.4.quantity=PHONE_SERVICE_AMOUNT(6, $prevmonth, 60, 12,13)

Автор:  dimOn [ 10 фев 2014, 12:28 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

в xslt же там есть стандартный реплейс строковый уже. а остальное сделать как описано у barguzin2, да

Автор:  barguzin2 [ 10 фев 2014, 15:02 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

во всех шаблонах пишется
Код:
<xsl:stylesheet version="1.0">

а replace вроде как с 2.0 появился. или я может чего-то еще не знаю ? попробовал для примера заменить @name на replace(@name,'2014','2015') - выдает BGException

Кстати, с написанием своего класса я совсем уж перемудрил. Можно ведь java.lang.String подключить.

Автор:  dimOn [ 10 фев 2014, 15:10 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

нене, я имею в виду типа такого, что у нас уже используется в шаблонах:

Код:
<xalan:component prefix="utils" functions="maskBlank, replace">
    <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.Utils"/>
</xalan:component>


Код:
select="utils:replace($blabla,'-','')"

Автор:  barguzin2 [ 10 фев 2014, 19:48 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

Уж 6.0 на дворе, а класс этот с таким методом тока в 5.1 нашел. В 5.2/6.0 есть ru.bitel.common.Utils, но там нет реплейса.

Автор:  dimOn [ 11 фев 2014, 12:43 ]
Заголовок сообщения:  Re: Как подставить номер договора в название услуги ?

И правда, класса то нет) Но я поглядел в шаблонах транка, там так прописано.

Вот такой класс сейчас вместо него:
ru.bitel.bgbilling.server.util.ServerUtils :lupa:
там всё из того класса

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