forum.bitel.ru http://forum.bitel.ru/ |
|
preempt_bill_reestr.xsl не видит некоторых переменных http://forum.bitel.ru/viewtopic.php?f=14&t=10211 |
Страница 1 из 1 |
Автор: | ok-2004 [ 20 фев 2015, 14:41 ] |
Заголовок сообщения: | preempt_bill_reestr.xsl не видит некоторых переменных |
Добрый день ! Исходные данные : Код: Клиент: вер. 6.0 сборка 1369 от 26.01.2015 20:55:27 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 Сервер: вер. 6.0 сборка 1829 от 29.01.2015 18:21:52 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 bill вер. 6.0 сборка 344 от 09.09.2014 14:07:48 card вер. 6.0 сборка 229 от 19.11.2014 05:42:26 dialup вер. 6.0 сборка 406 от 12.09.2014 18:24:32 drweb вер. 6.0 сборка 98 от 10.04.2014 19:28:24 email вер. 6.0 сборка 187 от 05.02.2014 15:53:45 inet вер. 6.0 сборка 1482 от 29.01.2015 18:53:57 ipn вер. 6.0 сборка 277 от 19.08.2014 18:05:49 mps вер. 6.0 сборка 224 от 24.12.2014 13:50:40 npay вер. 6.0 сборка 229 от 14.11.2014 18:59:36 payonline вер. 6.0 сборка 101 от 30.12.2014 15:22:39 reports вер. 6.0 сборка 221 от 03.09.2014 16:39:20 ru.bitel.bgbilling.plugins.crm вер. 6.0 сборка 219 от 31.10.2014 05:37:29 ru.bitel.bgbilling.plugins.dispatch вер. 6.0 сборка 159 от 19.01.2015 17:42:18 ru.bitel.bgbilling.plugins.documents вер. 6.0 сборка 205 от 26.01.2015 20:55:42 ru.bitel.bgbilling.plugins.helpdesk вер. 6.0 сборка 210 от 27.11.2014 14:35:24 trayinfo вер. 6.0 сборка 176 от 05.02.2014 15:55:51 voiceip вер. 6.0 сборка 233 от 16.12.2014 13:31:04 wm вер. 6.0 сборка 191 от 05.02.2014 15:56:42 yamoney вер. 6.0 сборка 81 от 02.06.2014 14:51:09 Окружение: Клиент: os: Linux amd64, 3.13.0-45-generic java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 jre home: /home/oleg/BGBillingClient/jdk1.6.0_45/jre default tz: 20.02.2015 11:17 MSK +0300 (Europe/Moscow) user tz: 20.02.2015 11:17 MSK +0300 (Europe/Moscow) locale: ru_RU Сервер: os: Linux amd64, 3.2.0-4-amd64 java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_45 jre home: /opt/java/jdk1.6.0_45/jre default tz: 20.02.2015 11:18 MSK +0300 (Europe/Moscow) locale: ru_RU Имеется договор с id 4062 которому в модуле бухгалтерии выставили счёт и пытаются этот счёт выгрузить в реестр. В конфиге модуля bill реквизиты бухгалтерии такие: Код: bill.attributes=account:Счет;inn:ИНН;kpp:КПП;address:Адрес;dolz:Должность;face:Ф.И.О;osn:Основание;org_name:Полное название организации;pril:Приложение Позиции такие : Код: bill.pos.1.title=Доступ в Интернет bill.pos.1.name=Услуга доступа в Интернет согл. договора за {$month,date,MMMM yyyy г.} bill.pos.1.summ=SERVICE_ACCOUNT($month, 30,13) bill.pos.1.insum=1 bill.pos.1.awlz=0 bill.pos.3.title=Аренда IP-адреса bill.pos.3.name=Аренда IP-адреса согл. договора за {$month,date,MMMM yyyy г.} bill.pos.3.summ=SERVICE_ACCOUNT($month, 15) bill.pos.3.insum=1 bill.pos.3.awlz=0 bill.pos.5.title=Обслуживание радиоканала bill.pos.5.name=Обслуживание радиоканала согл. договора за {$month,date,MMMM yyyy г.} bill.pos.5.summ=SERVICE_ACCOUNT($month, 31) bill.pos.5.insum=1 bill.pos.5.awlz=0 В справочнике параметров договоров есть такие поля: Код: select id,title from contract_parameters_pref where id in (2,5,21,24) 2 Адрес подключения 5 Название организации 21 Телефон_текст 24 Приложение У этого договора с id=4062 параметры договора такие : Код: select * from contract_parameter_type_1 where cid="4062" 4062 5 ООО Компания XxXxXx 4062 21 7916123456 ; 7499123456 4062 24 № 777 от 12.12.2012 и Код: select cid,pid,address from contract_parameter_type_2 where cid="4062" 4062 2 YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт. а реквизиты для бухгалтерии такие : Код: select id,cid,name,value from bill_attribute_5 where cid="4062" 248 4062 org_name XxXxXx 249 4062 address YyYyYyYyYyYy YyYyyYyyYyy 250 4062 osn № 1234567 от 01.01.2001 251 4062 pril № 777 от 12.12.2012 252 4062 face Xyxxy Z.X. клиенту выставляется счёт по документу : Код: elect * from bill_doc_type_5 1 1 Счет за интернет 1,3,5 14 1 select * from bill_contract_doc_type_5 where cid="4062" 173 4062 1 select * from bill_data_5 where cid="4062": 1945 4062 1 2 1049 1 105 0105 1 2015 1 2015-02-20 0 0 2.00 <?xml ....data> 0 1 Само поле xml из этой записи в несколько "урезанном" виде (тока основные поля): Код: <bill account="..." bik="..." bank_title="..." corr_account="..." saldo="239.98" saldo_prev="240.98" amounts="2.00" payments="1.00" charges="0.00" cid="4062" type="1" type_title="Счет за интернет" contract="1100001" contract_date1="01.02.2007" contract_date2="" fc="0" balance_mode="1" yy="2015" mm="2" month="февраль" period_date1="01.02.2015" period_date2="28.02.2015" date="20.02.2015" bill_number="0105" payer="Xyxxy Z.X. YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт." total_sum="2.00" npid="1" correction="0"> <pos position_id="1" name="Услуга доступа в Интернет согл. договора за февраль 2015 г." summ="2.00" sumUnscaled="2.00000" unit="шт." unitCode="796" quantity="1" qtynums="0" qtynumsRnd="4" insum="1" awlz="0"/> <tariff_bill> <personal_tariff id="137" tree_id="293" title="XyxxyZX" date1="01.01.2015" date2=""/> </tariff_bill> <contract_data cid="4062"> <contract cid="4062" title="1100001" comment="Xyxxy Z.X. YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт." mode="1" limit="0.00" date1="01.02.2007" date2="" pswd="ksv1860" fc="0" time="20.02.2015 06:59" gr="4503599627370496" param_group="1" status="0" status_date="17.03.2010" balance_rest="239.98"><personal_tariff id="137" title="XyxxyZX" date1="01.01.2015" date2=""/> </contract> <module id="5" title="Buhgalteriya" name="bill"> <bill_attribute_5 id="248" cid="4062" name="org_name" value="XxXxXx"/> <bill_attribute_5 id="249" cid="4062" name="address" value="YyYyYyYyYyYy YyYyyYyyYyy"/> <bill_attribute_5 id="250" cid="4062" name="osn" value="№ 1234567 от 01.01.2001"/> <bill_attribute_5 id="251" cid="4062" name="pril" value="№ 777 от 12.12.2012"/> <bill_attribute_5 id="252" cid="4062" name="face" value="Xyxxy Z.X."/> <bill_contract_doc_type_5 id="173" cid="4062" doc_type="1"/> </module> .......... ........... ........... .......... </contract_data> <condel pgid="1" del="0" fc="0" pfid="1"/> <contract_params> <parameter pid="1" pt="1" sort="1" title="ФИО" value="Xyxxy ZzZzZ XyYyYyYyY"/> <parameter pid="21" pt="1" sort="18" title="Телефон_текст" value="7916123456 ; 7499123456 "/> <parameter pid="22" pt="1" sort="19" title="Особые отметки" value="192.168.0.1"/> <parameter pid="23" pt="1" sort="20" title="IP-адрес радиооборудования" value="порт 88"/> <parameter pid="2" pt="2" title="Адрес подключения" sort="2" value=" YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт." comment=""/> <parameter pid="3" pt="9" sort="6" title="Телефон" value="7916123456 [Личный]; 7499123456 [Домашний]; "/> </contract_params> <params nds="0"/> <attributes address="YyYyYyYyYyYy YyYyyYyyYyy" face="Xyxxy Z.X." org_name="XxXxXx" osn="№ 1234567 от 01.01.2001" pril="№ 777 от 12.12.2012"/> </bill></data> Как видите, все параметры договора и реквизиты для бухгалтерии на месте. Теперь попробуем выгрузить этот счёт в файл реестра счетов с именем p.csv помощью шаблона preempt_bill_reestr.xsl, имеющего следующий вид: Код: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan" xmlns:st="bitel.billing.server.bill.bean.SummaToString" xmlns:counter="bitel.billing.server.util.exslt.Counter" xmlns:server_utils="ru.bitel.bgbilling.server.util.ServerUtils" version="1.0"> <xalan:component prefix="st" functions="summaToString"> <xalan:script lang="javaclass" src="xalan://bitel.billing.server.bill.bean.SummaToString"/> </xalan:component> <xalan:component prefix="counter" functions="add set get"> <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Counter"/> </xalan:component> <xalan:component prefix="server_utils" functions="replace"> <xalan:script lang="javaclass" src="xalan://ru.bitel.bgbilling.server.util.ServerUtils"/> </xalan:component> <xsl:output encoding="UTF-8" method='text' indent='yes' /> <xsl:template match="data"> <xsl:apply-templates select="bill" /> </xsl:template> <xsl:variable name="fio" select="/data/bill/contract_params/parameter[@pid='5']/@value"/> <xsl:variable name="address" select="/data/bill/contract_params/parameter[@pid='2']/@value"/> <xsl:variable name="phone" select="/data/bill/contract_params/parameter[@pid='21']/@value"/> <xsl:variable name="prill" select="/data/bill/contract_params/parameter[@pid='24']/@value"/> <xsl:variable name="dolg" select="format-number(/data/bill/@saldo_prev, '0.00')"/> <xsl:variable name="itogo" select="format-number(/data/bill/@total_sum,'0.00')"/> <xsl:template match="bill"> <xsl:value-of select="$fio"/>; <xsl:value-of select="$address"/>; <xsl:value-of select="@bill_number"/>; <xsl:value-of select="@type_title"/>; <xsl:value-of select="@date"/>; <xsl:value-of select="server_utils:replace($phone,';',',')"/>; <xsl:value-of select="$prill"/>; <xsl:value-of select="$dolg"/>; <xsl:call-template name="positions"/> <xsl:value-of select="$itogo"/>; </xsl:template> <xsl:template name="positions"> <xsl:for-each select="pos"><xsl:value-of select="@name"/>;<xsl:value-of select="@summ"/>;</xsl:for-each> </xsl:template> </xsl:stylesheet> в результате в файле p.csv имеем : Код: ; YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт.;0105;Счет за интернет;20.02.2015;7916123456 , 7499123456 ;;240.98;Услуга доступа в Интернет согл. договора за февраль 2015 г.;2.00;2.00; т.е. поле №1 ( fio ) и поле № 7 (prill) остались не заполненными хотя в этих полях должны были бы быть значения "ООО Компания XxXxXx" и "№ 777 от 12.12.2012" соответственно. Вопрос - в каком месте я дурак или это так задуманно ? |
Автор: | ok-2004 [ 21 фев 2015, 12:03 ] |
Заголовок сообщения: | Re: preempt_bill_reestr.xsl не видит некоторых переменных |
Продолжаем... Я так понимаю что в таблице bill_data_5 в поле xml лежат данные. которыми пользуются файлы bill_pdf.xsl и preempt_bill_reestr.xsl при генерации pdf-ок Заметил. что в блоке Код: <contract_params> <parameter pid="1" pt="1" sort="1" title="ФИО" value="Xyxxy ZzZzZ XyYyYyYyY"/> <parameter pid="21" pt="1" sort="18" title="Телефон_текст" value="7916123456 ; 7499123456 "/> <parameter pid="22" pt="1" sort="19" title="Особые отметки" value="192.168.0.1"/> <parameter pid="23" pt="1" sort="20" title="IP-адрес радиооборудования" value="порт 88"/> <parameter pid="2" pt="2" title="Адрес подключения" sort="2" value=" YyYyYyYyYyYy, YyYyyYyyYyy, южная часть, YyyYyy, д. 1, др. а, кв. 2, 2 эт." comment=""/> <parameter pid="3" pt="9" sort="6" title="Телефон" value="7916123456 [Личный]; 7499123456 [Домашний]; "/> </contract_params> отсутствует упоминание параметра договора pid=24 title="Приложение" Может поэтому этот параметр не отображается в реестре счетов ? А какой код формирует поле xml в bill_data_5 ? Где-то есть шаблон , который можно подправить ? или надо перекомпилить какие-то ява-классы ? |
Автор: | skn [ 23 фев 2015, 14:06 ] |
Заголовок сообщения: | Re: preempt_bill_reestr.xsl не видит некоторых переменных |
1) какой тип параметра с pid=24 title="Приложение" 2) этот параметр был (создан и заполнен) до создание счета? |
Автор: | ok-2004 [ 23 фев 2015, 20:40 ] |
Заголовок сообщения: | Re: preempt_bill_reestr.xsl не видит некоторых переменных |
1. тип -текст, лежит в contract_parameter_type_1. 2 Параметр был создан и заполнен до выставления счёта. |
Автор: | skn [ 23 фев 2015, 22:12 ] |
Заголовок сообщения: | Re: preempt_bill_reestr.xsl не видит некоторых переменных |
параметр входит в группу параметров назначенных на договор (и входил ли в момент создания счета) |
Автор: | ok-2004 [ 24 фев 2015, 12:06 ] |
Заголовок сообщения: | Re: preempt_bill_reestr.xsl не видит некоторых переменных |
Цитата: параметр входит в группу параметров назначенных на договор О да! именно это я и не проверил! Параметр "Приложение" не входил в группу параметров , назначенных на группу договоров к которым принадлежал данный договор! Добавил этот параметр в группу и всё заработало! Спасибо за подсказку! |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |