forum.bitel.ru http://forum.bitel.ru/ |
|
не вставляются переменные после выполнения скрипта (CRM) http://forum.bitel.ru/viewtopic.php?f=19&t=12179 |
Страница 1 из 1 |
Автор: | barguzin2 [ 23 дек 2016, 09:37 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
В xml нужно спецсимволы экранировать html-ными кодами, т.е. должно быть contract_comment="ООО "Рога и копыта"" |
Автор: | GalarG [ 23 дек 2016, 11:58 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
barguzin2 писал(а): В xml нужно спецсимволы экранировать html-ными кодами, т.е. должно быть contract_comment="ООО "Рога и копыта"" Это, конечно, да. Я пробовал указывать и без кавычек, contract_comment="ООО Рога и копыта". Так например. Все равно эффект нулевой. Код: <fo:table-row> <fo:table-cell> <fo:block xsl:use-attribute-sets="text"> Покупатель: </fo:block> </fo:table-cell> <fo:table-cell> <fo:block xsl:use-attribute-sets="text_bold"> <xsl:value-of select="@contract_comment" />, <xsl:value-of select="@cid"/>, [b]<xsl:value-of select="@innbuyer"/>, [/b] </fo:block> </fo:table-cell> </fo:table-row> Если в шаблон добавить ИНН организации, то он также не вставляется в счет, хотя там никаких кавычек нет. |
Автор: | skyb [ 23 дек 2016, 12:19 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Код: <fo:block xsl:use-attribute-sets="text_bold" start-indent="15cm" space-before="0cm"><xsl:value-of select="/data/bill/contract_data/contract/@comment"/></fo:block>
|
Автор: | Artur [ 23 дек 2016, 12:37 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Для полной картины приложите всю xml и xsl. |
Автор: | GalarG [ 23 дек 2016, 13:10 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Artur писал(а): Для полной картины приложите всю xml и xsl. Код скрипта: Код: package ru.stk; import bitel.billing.common.TimeUtils; import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase; import ru.bitel.bgbilling.server.util.ModuleSetup; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.sql.ConnectionSet; import ru.bitel.common.Utils; import ru.bitel.common.XMLUtils; import ru.bitel.bgbilling.modules.npay.server.Calculator; import bitel.billing.server.bill.bean.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.contract.bean.ContractParameterManager; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.math.*; import java.sql.*; import java.util.*; import java.util.Date; import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.log4j.Logger; public class BillGen extends GlobalScriptBase { private static final Logger logger = Logger.getLogger( BillGen.class ); @Override public void execute( Setup setup1, ConnectionSet connectionSet2 ) throws Exception { log( "Инициализация" ); //переменные int npayMid = 2; //код модуля Npay String groups = "4"; //коды групп договоров через запятую Connection con = connectionSet2.getConnection(); //соединение с БД ContractParameterManager contractParameterManager = new ContractParameterManager(con); int billMid = 10; // код модуля Бухгалтерии int accountId = 1; // код счета банка String docType = "1"; // ID типа выставляемого документа int userId = 2; // ID пользователя, от имени которого выставляется счет //получаем список договоров, для которых будем выставлять счета log( "Получение списка договоров" ); StringBuilder cids = new StringBuilder(); StringBuilder query = new StringBuilder( "SELECT id FROM contract" ); long groupMask = Utils.enumToMask( groups ); if( groupMask > 0 ) { query.append( " WHERE gr&?>0" ); } PreparedStatement ps = con.prepareStatement( query.toString() ); if( groupMask > 0 ) { ps.setLong( 1, groupMask ); } ResultSet rs = ps.executeQuery(); while( rs.next() ) { cids.append( rs.getInt( "id" ) + "," ); } rs.close(); ps.close(); cids.deleteCharAt( cids.lastIndexOf( "," ) ); log( "Получено " + cids.toString().split( "," ).length + " договоров, которым необходимо выставить авансовые счета" ); //запускаем калькулятор по всем договорам, полученным выше log( "Запуск предначисления наработки для выбранных договоров" ); Calendar dt = new GregorianCalendar(); dt.add( Calendar.MONTH, 1 ); //нам нужно, чтобы считался будущий месяц dt.set( Calendar.DAY_OF_MONTH, dt.getActualMaximum( Calendar.DAY_OF_MONTH ) ); //выставляем последнее число будущего месяца Calculator calculator = new Calculator(); calculator.setExecutingTime( dt ); calculator.setPreCalc(); calculator.initTask( setup1, 0, "mid=" + npayMid ); //здесь можно прописывать только конкретные услуги через service.set=<наборы через запятую> calculator.setCids( cids.toString() ); calculator.startTask(); //после обсчета получаем список наработок с разбивкой по договорам Map<Integer, BigDecimal> planAccountMap = new HashMap<Integer, BigDecimal>(); if( !calculator.isCalcErrors() ) { planAccountMap = calculator.getCostCache().getContractAccounts(); } log( "Подсчет наработки закончен. Формирование документов" ); //ок, теперь нужно формировать документы int mm = dt.get(Calendar.MONTH); int yy = dt.get(Calendar.YEAR); log("Дата формирования счетов: " + TimeUtils.format( new Date(), TimeUtils.DATE_FORMAT_PATTERN_DDMMYYYY_HHMMSS ) ); log("Старт генерации документов за год=" + yy + "; месяц=" + mm + "; группы договоров=" + groups); BalanceUtils bu = new BalanceUtils( con ); ModuleSetup moduleSetup = setup1.getModuleSetup( billMid ); TemplateBillManager man = new TemplateBillManager( moduleSetup, con, billMid, false ); List<TemplateBill> templateBillList = man.getTemplatePayBillList( moduleSetup, yy, mm, groups, null, docType, null, false ); log("Число сгенерированных документов = " + templateBillList.size()); DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = dFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); Element bills = doc.createElement("bills"); for( TemplateBill templateBill : templateBillList ) { Element row = XMLUtils.createElement(bills, "bill"); row.setAttribute( "rest", Utils.formatBigDecimalSumm( bu.getBalance( dt.getTime(), templateBill.getContractId() ) ) ); row.setAttribute( "account_id",String.valueOf(accountId )); //Получаем наработку за будущий месяц по договору, если она есть BigDecimal summ = Utils.maskNull( planAccountMap.get( templateBill.getContractId() ) ); fillBillData( row, templateBill, summ, contractParameterManager ); } doc.appendChild(bills); ByteArrayOutputStream sos = new ByteArrayOutputStream(); XMLUtils.serialize(bills, sos, "UTF-8"); String xml = sos.toString(); log("Полученная сгенерированная xml со счетами: " + xml ); InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); BillManager pbm = new BillManager( setup1, con, billMid, moduleSetup ); pbm.addBillDocs( userId, is, yy, mm, dt.getTime(), false ); } private void fillBillData( Element row, TemplateBill templateBill, BigDecimal billSumm, ContractParameterManager contractParameterManager ) { row.setAttribute( "id", String.valueOf( templateBill.getContractDocTypeId() ) ); row.setAttribute( "type", String.valueOf( templateBill.getDocTypeId() ) ); row.setAttribute( "cid", String.valueOf( templateBill.getContractId() ) ); row.setAttribute( "contract", templateBill.getContractTitle() ); row.setAttribute( "contract_comment", templateBill.getContractComment() ); row.setAttribute( "innbuyer", contractParameterManager.getStringParam( templateBill.getContractId(),60 ) ); for( PositionValue value : templateBill.getPositionList() ) { value.setSumma( billSumm ); value.setSumScaled( billSumm ); value.setSumUnscaled( billSumm ); Element posEl = XMLUtils.createElement( row, "pos" ); value.toElement( posEl ); Position pos = value.getPosition(); posEl.setAttribute( "insum", Utils.booleanToStringInt( pos.isInSum() ) ); posEl.setAttribute( "awlz", Utils.booleanToStringInt( pos.isAddWhenLessZero() ) ); } //предполагается, что на догоовре одна абонка. в итоге получим лишь одну позицию row.setAttribute( "summ", Utils.formatBigDecimalSumm( billSumm ) ); } /** * Вывод сообщений и в лог-файл и в клиентский лог. * @param msg текст сообщения. */ private void log( String msg ) { print( msg ); logger.info( msg ); } } Код xml: Код: <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade "™"> <!ENTITY mdash "—"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro "€"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" 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" 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> <xsl:output encoding="UTF-8" method='xml' indent='yes' /> <!-- Список атрибутов: <bill contract Договор bill_number Номер счета date Дата выписки payer Плательщик total_sum Итого: Сумма total_NDS Итого: НДС total_sum_withNDS Итого: Всего с НДС total_to_pay Итого к оплате purpose Назаначение > <pay //\//\//\//\//\//\//\//\//\// pos Товар unit Ед. amount Кол-во price Цена sum Сумма NDS НДС sumWithNDS Всего с НДС //\//\//\//\//\//\//\//\//\// /> </bill> --> <!-- РЕКВИЗИТЫ ПРЕДПРИЯТИЯ --> <xsl:variable name="postal_address" select="'125190, Москва г, Ленинградский пр-т, дом №80, корпус б, оф.11, тел.: 8(8362) 34-10-10, факс: 8(8362) 34-10-09'" /> <xsl:variable name="INN" select="'ИНН 7705330160'" /> <xsl:variable name="KPP" select="'КПП 121502001'" /> <xsl:variable name="title" select="'Филиал ООО "РОЙЛКОМ" в городе Йошкар-Оле'" /> <xsl:variable name="bank" select="'ФИЛИАЛ N6318 ВТБ 24 (ПАО) Г. САМАРА'" /> <!-- РЕКВИЗИТЫ ПРЕДПРИЯТИЯ --> <!-- ТЕКСТ В ВЕРХУ СЧЕТА --> <xsl:variable name="text_on_top" select="'Внимание! Оплата данного счета означает согласие с условиями поставки товара. Уведомление об оплате обязательно, в противном случае не гарантируется наличие товара на складе. Товар отпускается по факту прихода денег на р/с Поставщика, самовывозом, при наличии доверенности и паспорта.'" /> <!-- ТЕКСТ В ВЕРХУ СЧЕТА --> <xsl:variable name="currency" select="'рубль'" /> <xsl:attribute-set name="text"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">10pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="text_center"> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">9pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="text_ban"> <xsl:attribute name="text-align">right</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">6pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="text_bold"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="font-size">10pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text_left"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">8pt</xsl:attribute> <xsl:attribute name="start-indent">0.2cm</xsl:attribute> <xsl:attribute name="end-indent">0.2cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text_right"> <xsl:attribute name="text-align">right</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">8pt</xsl:attribute> <xsl:attribute name="start-indent">0.2cm</xsl:attribute> <xsl:attribute name="end-indent">0.2cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text_center"> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">8pt</xsl:attribute> <xsl:attribute name="start-indent">0.2cm</xsl:attribute> <xsl:attribute name="end-indent">0.2cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text10_left"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">10pt</xsl:attribute> <xsl:attribute name="start-indent">0.2cm</xsl:attribute> <xsl:attribute name="end-indent">0.2cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text10_center"> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">10pt</xsl:attribute> <xsl:attribute name="start-indent">0.2cm</xsl:attribute> <xsl:attribute name="end-indent">0.2cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="text_title"> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">14pt</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> <xsl:attribute name="space-before">0.3cm</xsl:attribute> <xsl:attribute name="space-after">0.2cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="text_italic"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">8pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text6_left"> <xsl:attribute name="text-align">left</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">7pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text6_right"> <xsl:attribute name="text-align">right</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">7pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="table_text6_center"> <xsl:attribute name="text-align">center</xsl:attribute> <xsl:attribute name="font-family">arial</xsl:attribute> <xsl:attribute name="font-size">7pt</xsl:attribute> <xsl:attribute name="start-indent">0.1cm</xsl:attribute> <xsl:attribute name="end-indent">0.1cm</xsl:attribute> <xsl:attribute name="space-before">0.1cm</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border"> <xsl:attribute name="border-width">0.7pt</xsl:attribute> <xsl:attribute name="border-top-style">solid</xsl:attribute> <xsl:attribute name="border-bottom-style">solid</xsl:attribute> <xsl:attribute name="border-left-style">solid</xsl:attribute> <xsl:attribute name="border-right-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border_top"> <xsl:attribute name="border-width">0.7pt</xsl:attribute> <xsl:attribute name="border-top-style">solid</xsl:attribute> <xsl:attribute name="border-left-style">solid</xsl:attribute> <xsl:attribute name="border-right-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border_bottom"> <xsl:attribute name="border-width">0.7pt</xsl:attribute> <xsl:attribute name="border-bottom-style">solid</xsl:attribute> <xsl:attribute name="border-left-style">solid</xsl:attribute> <xsl:attribute name="border-right-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border_no"> <xsl:attribute name="border-width">0.7pt</xsl:attribute> <xsl:attribute name="border-left-style">solid</xsl:attribute> <xsl:attribute name="border-right-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border_all"> <xsl:attribute name="border-width">0.7pt</xsl:attribute> <xsl:attribute name="border-top-style">solid</xsl:attribute> <xsl:attribute name="border-bottom-style">solid</xsl:attribute> <xsl:attribute name="border-left-style">solid</xsl:attribute> <xsl:attribute name="border-right-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:attribute-set name="cell_border_top_bold"> <xsl:attribute name="border-width">2pt</xsl:attribute> <xsl:attribute name="border-top-style">solid</xsl:attribute> </xsl:attribute-set> <xsl:template match="data"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:apply-templates select="bill" /> </fo:root> </xsl:template> <xsl:template match="bill"> <xsl:variable name="nds_rate" select="number(params/@nds)"/> <xsl:value-of select="counter:set('total_nds', '0.0')"/> <fo:layout-master-set> <fo:simple-page-master margin-right="1cm" margin-left="2cm" margin-bottom="2cm" margin-top="0.5cm" page-width="21cm" page-height="29.7cm" master-name="first"> <fo:region-body margin-top="1cm" margin-bottom="1.5cm" /> <fo:region-before extent="1cm" /> <fo:region-after extent="1.5cm" /> </fo:simple-page-master> </fo:layout-master-set> <xsl:call-template name="calcNDS"> <xsl:with-param name="nds_rate" select="$nds_rate"/> </xsl:call-template> <fo:page-sequence master-reference="first"> <fo:flow flow-name="xsl-region-body"> <!-- заголовок --> <fo:block xsl:use-attribute-sets="table_text_center"> <xsl:value-of select="$text_on_top"/> </fo:block> <fo:block> </fo:block> <!-- заголовок --> <!-- начало таблицы номеров счета, БИК etc. --> <fo:table table-layout="fixed"> <fo:table-column column-width="5cm" /> <fo:table-column column-width="4.5cm" /> <fo:table-column column-width="1.7cm" /> <fo:table-column column-width="5.8cm" /> <fo:table-body> <!-- первая строка --> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_top" number-columns-spanned="2"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="$bank" /> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_all"> <fo:block xsl:use-attribute-sets="table_text10_left"> БИК </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_top"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="@bik" /> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_no" number-columns-spanned="2" display-align="center"> <fo:block/> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_top"> <fo:block xsl:use-attribute-sets="table_text10_left"> Сч. № </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_no"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="@corr_account" /> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom" number-columns-spanned="2"> <fo:block xsl:use-attribute-sets="table_text_left"> Банк получателя </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom" display-align="center"> <fo:block/> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom"> <fo:block/> </fo:table-cell> </fo:table-row> <!-- вторая строка --> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_all"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="$INN" /> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_all"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="$KPP" /> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_top"> <fo:block xsl:use-attribute-sets="table_text10_left"> Сч № </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_top"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="@account" /> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_top" number-columns-spanned="2"> <fo:block xsl:use-attribute-sets="table_text10_left"> <xsl:value-of select="$title" /> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_no"> <fo:block/> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_no"> <fo:block/> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_no" number-columns-spanned="2"> <fo:block> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_no"> <fo:block/> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_no"> <fo:block/> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom" number-columns-spanned="2"> <fo:block xsl:use-attribute-sets="table_text_left"> Получатель </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom"> <fo:block/> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border_bottom"> <fo:block/> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> <!-- конец таблицы номеров счета, БИК etc. --> <fo:block xsl:use-attribute-sets="text_title" text-align="left"> Счет на оплату № <xsl:value-of select="@bill_number" /> от <xsl:value-of select="@date" /> г. </fo:block> <fo:table table-layout="fixed"> <fo:table-column column-width="17cm" /> <fo:table-body> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border_top_bold"> <fo:block> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> <fo:table table-layout="fixed"> <fo:table-column column-width="2.2cm" /> <fo:table-column column-width="14.8cm" /> <fo:table-body> <fo:table-row> <fo:table-cell> <fo:block xsl:use-attribute-sets="text"> Поставщик: </fo:block> </fo:table-cell> <fo:table-cell> <fo:block xsl:use-attribute-sets="text_bold"> <xsl:value-of select="$title" />, <xsl:value-of select="$INN" />, <xsl:value-of select="$KPP" />, <xsl:value-of select="$postal_address" /> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell> <fo:block xsl:use-attribute-sets="text"> Покупатель: </fo:block> </fo:table-cell> <fo:table-cell> <fo:block xsl:use-attribute-sets="text_bold"> <xsl:value-of select="@innbuyer" />, <xsl:value-of select="@cid"/>, <xsl:value-of select="@contract"/>, </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> <fo:block xsl:use-attribute-sets="text_bold"> Плательщик: <xsl:value-of select="/data/bill/attributes/@org_name" /> </fo:block> <fo:block xsl:use-attribute-sets="text"> Телефон: <xsl:value-of select="/data/bill/contract_data/contract_params/parameter[@pid='6']/@value"/> </fo:block> <fo:table table-layout="fixed"> <fo:table-column column-width="7cm"/> <fo:table-column column-width="10.1cm"/> <fo:table-body> <fo:table-row> <fo:table-cell> <fo:block xsl:use-attribute-sets="text"> Договор: <xsl:value-of select="@contract"/> </fo:block> </fo:table-cell> <fo:table-cell> <fo:block xsl:use-attribute-sets="text" text-align="right"> валюта: <xsl:value-of select="$currency"/> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> <xsl:call-template name="payList"> <xsl:with-param name="nds_rate" select="$nds_rate"/> </xsl:call-template> <fo:block xsl:use-attribute-sets="text" space-before="0.1cm"> * Цена не включает НДС </fo:block> <xsl:if test="@with_stamp"> <fo:table start-indent="1cm" table-layout="fixed" width="100%"> <fo:table-column column-width="2.7cm"/> <fo:table-column column-width="4.0cm"/> <fo:table-column column-width="proportional-column-width(1)"/> <fo:table-body> <fo:table-row> <fo:table-cell> <fo:block/> </fo:table-cell> <fo:table-cell number-columns-spanned="2"> <fo:block> <fo:external-graphic src="webroot/stamp.gif" width="4.1cm" height="3.85cm" content-height="3.85cm" content-width="4.1cm" space-before="0.2cm"/> </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> </xsl:if> <fo:table start-indent="1cm" table-layout="fixed" width="100%" > <xsl:choose> <xsl:when test="@with_stamp"> <xsl:attribute name="space-before">-3.5cm</xsl:attribute> </xsl:when> <xsl:otherwise> <xsl:attribute name="space-before">0.5cm</xsl:attribute> </xsl:otherwise> </xsl:choose> <fo:table-column column-width="2.7cm"/> <fo:table-column column-width="4.0cm"/> <fo:table-column column-width="proportional-column-width(1)"/> <fo:table-body> <fo:table-row> <fo:table-cell number-columns-spanned="3"> <fo:block xsl:use-attribute-sets="text_bold" start-indent="1cm"> Итого к оплате: <xsl:value-of select="st:summaToString(@total_sum)" /> </fo:block> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell> <fo:block xsl:use-attribute-sets="text" start-indent="1cm" space-before="0.8cm">Счет выдал</fo:block> </fo:table-cell> <fo:table-cell border-bottom-style="solid" border-bottom-width="0.7pt"> <fo:block/> </fo:table-cell> <fo:table-cell> <fo:block/> </fo:table-cell> </fo:table-row> <fo:table-row> <fo:table-cell number-columns-spanned="3"> <fo:block xsl:use-attribute-sets="text_bold" start-indent="1cm" space-before="0.7cm"> Для своевременного поступления суммы оплаты на Ваш Лицевой счет в платежном поручении просим указывать НОМЕР КОНТРАКТА! </fo:block> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> </fo:flow> </fo:page-sequence> </xsl:template> <xsl:template name="calcNDS"> <xsl:param name="nds_rate"/> <xsl:for-each select="pos"> <xsl:variable name="nds" select="number((@summ * ($nds_rate div 100))div($nds_rate div 100 + 1))" /> <xsl:value-of select="counter:add( 'total_nds', format-number($nds, '0.00') )"/> </xsl:for-each> </xsl:template> <xsl:template name="payList"> <xsl:param name="nds_rate"/> <!-- начало таблицы счета --> <fo:table space-before="0.3cm" table-layout="fixed"> <fo:table-column column-width="0.6cm"/> <fo:table-column column-width="4.9cm"/> <fo:table-column column-width="1.2cm"/> <fo:table-column column-width="1.1cm"/> <fo:table-column column-width="2.2cm"/> <fo:table-column column-width="2.2cm"/> <fo:table-column column-width="1.9cm"/> <fo:table-column column-width="2.9cm"/> <fo:table-header> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">№</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Товар</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Ед.</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Кол-во</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Цена *</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Сумма</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">НДС</fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center">Всего с НДС</fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <fo:table-body> <!-- начало цикл pay --> <xsl:for-each select="pos"> <xsl:variable name="nds" select="number((@summ * ($nds_rate div 100))div($nds_rate div 100 + 1))" /> <!-- <xsl:value-of select="counter:add( 'total_nds', format-number($nds, '0.00') )"/> --> <fo:table-row> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center"><xsl:value-of select="position()"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_left"><xsl:value-of select="@name"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center"> <xsl:if test="@unit"> <xsl:value-of select="@unit"/> </xsl:if> <xsl:if test="not(@unit)"> месяц </xsl:if> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_center"> <xsl:if test="@quantity"> <xsl:value-of select="@quantity"/> </xsl:if> <xsl:if test="not(@quantity)"> 1 </xsl:if> </fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number(@summ - $nds, '0.00')"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number(@summ - $nds, '0.00')"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number($nds, '0.00')"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number(@summ, '0.00')"/></fo:block> </fo:table-cell> </fo:table-row> </xsl:for-each> <!-- конец цикл pos --> <!-- итого --> <fo:table-row> <fo:table-cell><fo:block/></fo:table-cell> <fo:table-cell><fo:block/></fo:table-cell> <fo:table-cell> <fo:block xsl:use-attribute-sets="table_text_center">Итого:</fo:block> </fo:table-cell> <fo:table-cell><fo:block/></fo:table-cell> <fo:table-cell><fo:block/></fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number(@total_sum - counter:get( 'total_nds'), '0.00')"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number( counter:get( 'total_nds'), '0.00')"/></fo:block> </fo:table-cell> <fo:table-cell xsl:use-attribute-sets="cell_border"> <fo:block xsl:use-attribute-sets="table_text_right"><xsl:value-of select="format-number(@total_sum, '0.00')"/></fo:block> </fo:table-cell> </fo:table-row> <!-- итого --> </fo:table-body> </fo:table> <!-- конец таблицы счета --> </xsl:template> <xsl:template match="pay" mode="pay"> <xsl:param name="curr_nds"/> <xsl:variable name="nds_param" select="params/@nds"/> <xsl:variable name="nds_rate_temp" select="number(/data/bill/attributes/@*[name()=$nds_param])"/> <xsl:variable name="nds_rate"> <xsl:choose> <xsl:when test="contains($nds_rate_temp,'NaN')"> <xsl:value-of select="number(/data/bill/params/@default_nds)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$nds_rate_temp"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="nds" select="round((@sum * ($nds_rate div 100))div($nds_rate div 100 + 1))" /> <xsl:choose> <xsl:when test="not(following-sibling::*)"> <xsl:value-of select="$curr_nds + $nds"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="following-sibling::*[position()=1]" mode="pay"><xsl:with-param name="curr_nds" select="$curr_nds + $nds"/></xsl:apply-templates> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> |
Автор: | GalarG [ 28 дек 2016, 19:05 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Artur писал(а): Для полной картины приложите всю xml и xsl. Вы смотрели код? |
Автор: | Artur [ 29 дек 2016, 14:23 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
GalarG писал(а): Artur писал(а): Для полной картины приложите всю xml и xsl. Вы смотрели код? Да, этот код я когда то писал. Я просил показать xml сформированных документов. |
Автор: | GalarG [ 30 дек 2016, 12:13 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Artur писал(а): GalarG писал(а): Artur писал(а): Для полной картины приложите всю xml и xsl. Вы смотрели код? Да, этот код я когда то писал. Я просил показать xml сформированных документов. Код: <?xml version="1.0" encoding="UTF-8"?><data secret="EB10DCC688C09EE3046ACE6339041304" status="ok">
<inline_params/> <bill account="ХХХХХХХХХХХХ" amounts="0.00" balance_mode="1" bank_title="ФИЛИАЛ N6318 ВТБ 24 (ПАО) Г.САМАРА" bik="ХХХХХХХ" bill_number="2300" charges="0.00" cid="256" contract="216/ЙШЛ/2015" contract_date1="20.11.2015" contract_date2="" corr_account="ХХХХХХХХХХХХХХХХХХ" correction="0" date="31.01.2017" fc="1" mm="1" month="январь" npid="1" payer="ООО "Рога и копыта"" payments="0.00" period_date1="01.01.2017" period_date2="31.01.2017" saldo="0.00" saldo_prev="0.00" total_sum="1000.00" type="1" type_title="null" yy="2017"> <pos awlz="0" insum="1" name="�������������� ����� ������� � ���� Internet �� �������� �� �������" position_id="1" qtynums="0" qtynumsRnd="4" quantity="1" sumUnscaled="1000.00000" summ="1000.00" unit="��." unitCode="796"/> <tariff_bill> <tariff date1="20.11.2015" date2="" tariff_plan="Интернет: Бизнес 5" tpid="62"/> </tariff_bill> <contract_data cid="256"> <contract balance_rest="0.00" cid="256" comment="ООО "Рога и копытаquot;" date1="20.11.2015" date2="" fc="1" gr="2064" limit="0.00" mode="1" param_group="2" pswd="157509" status="0" status_date="20.11.2016" time="30.12.2016 09:00" title="216/ЙШЛ/2015"> <tariff date1="20.11.2015" date2="" eid="0" emid="0" tariff_plan="Интернет: Бизнес 5" tpid="62"/> </contract> <module id="2" name="npay" title="Абонплата 1"> <npay_service_object_2 cid="256" col="1" comment="" csid="0" date1="2016-10-01" eid="0" emid="0" id="29" oid="0" sid="7" title="Интернет"/> </module> <module id="10" name="bill" title="Бухгалтерия 1"> <bill_contract_doc_type_10 cid="256" doc_type="1" id="1"/> </module> <module id="4" name="inet" title="Интернет 1"> <inet_serv_4 _addressFrom="100.65.0.4" _deviceComment="Чавайна 36, ЦОД" _deviceTitle="D-Link DES-1210-28/ME: C0A0BBD60CD1 [192.168.ХХХ.ХХХ:23]" _typeTitle="юр. лицо - internet 82" accessCode="0" addressFrom="$BINARY_DATA$64 41 00 04" addressTo="$BINARY_DATA$" comment="" contractId="256" contractObjectId="0" dateFrom="2015-11-19" deviceId="51" deviceOptions="6" deviceState="1" id="290" interfaceId="2" ipResourceId="17" ipResourceSubscriptionId="398" login="" macAddress="$BINARY_DATA$" parentId="0" password="" sessionCountLimit="1" status="0" title="интернет (юр. лицо)" typeId="7" vlan="650"/> <inet_accounting_period_4 contractId="256" id="166" timeFrom="2016-11-22 00:00:00.0" timeTo="2016-11-30 23:59:59.0" userId="0"/> <inet_accounting_period_4 contractId="256" id="174" timeFrom="2016-12-01 00:00:00.0" timeTo="2016-12-31 23:59:59.0" userId="0"/> </module> <plugin id="16" name="ru.bitel.bgbilling.plugins.dispatch" title="Dispatch"/> <plugin id="8" name="ru.bitel.bgbilling.plugins.documents" title="Документооборот"/> </contract_data> <condel del="0" fc="1" pfid="0" pgid="2"/> <contract_params> <parameter pid="53" pt="1" sort="5" title="Наименование организации (полное)" value="Общество с ограниченной ответственностью "Рога и копыта""/> <parameter pid="54" pt="1" sort="8" title="Наименование организации (сокращенное)" value="ООО "Рога и копыта""/> <parameter pid="60" pt="1" sort="10" title="ИНН" value="ХХХХХХХХХ"/> <parameter pid="61" pt="1" sort="11" title="КПП" value="ХХХХХХХХ"/> <parameter pid="62" pt="1" sort="12" title="ОГРН" value="ХХХХХХХХХХХХ"/> <parameter pid="59" pt="1" sort="13" title="Юридический адрес" value="424000, РМЭ, г. Йошкар-Ола, ул. Якова Эшпая, д. 139"/> <parameter pid="55" pt="1" sort="21" title="В лице (должность+полное ФИО)" value="Директора Иванова Ивана Ивановича "/> <parameter pid="56" pt="1" sort="22" title="Должность" value="Директор"/> <parameter pid="57" pt="1" sort="23" title="Подписант И.О. Фамилия" value="И.И.Иванов "/> <parameter pid="58" pt="1" sort="26" title="Основание" value="Устава "/> <parameter pid="66" pt="1" sort="28" title="Банк (в банке)" value="в Банке «Йошкар-Ола» ПАО г. Йошкар-Ола "/> <parameter pid="65" pt="1" sort="29" title="Расчетный счет" value="ХХХХХХХХХХХХХХХХХ "/> <parameter pid="67" pt="1" sort="30" title="Кор. счет" value="ХХХХХХХХХХХХХХХХХ "/> <parameter pid="68" pt="1" sort="31" title="БИК" value="ХХХХХХХХ "/> <parameter pid="73" pt="1" sort="39" title="ФИО контактного лица" value="Иванов Иван Иванович "/> <parameter pid="78" pt="1" sort="56" title="Количество точек подключения" value="1"/> <parameter pid="79" pt="1" sort="57" title="Абонентская плата (интернет) с учетом НДС" value="1000"/> <parameter pid="69" pt="1" sort="99" title="№ приложения" value="1"/> <parameter pid="70" pt="1" sort="100" title="Дата приложения" value="20.11.2015"/> <parameter pid="71" pt="1" sort="101" title="№ заказа" value="1"/> <parameter pid="72" pt="1" sort="102" title="Тип заказа" value="Новый"/> <parameter comment="" pid="16" pt="2" sort="40" title="Адрес установки абонентского оборудования" value="424031, г. Энск ул. Энная д. 1"/> <parameter pid="7" pt="3" sort="41" title="Адрес электронной почты" value="Иванов Иван Иванович <roga@mail.ru>; "/> <parameter pid="34" pt="6" sort="82" title="Предоставление доступа не позднее" value="01.12.2015"/> <parameter pid="45" pt="6" sort="93" title="Дата заключения" value="20.11.2015"/> <parameter pid="81" pt="6" sort="103" title="Дата акта включения" value="01.12.2015"/> <parameter pid="88" pt="7" sort="9" title="Организационно-правовая форма" value="Общество с ограниченной ответственностью" valueId="28"/> <parameter pid="19" pt="7" sort="48" title="Тип IP адреса" value="динамический" valueId="1"/> <parameter pid="21" pt="7" sort="50" title="Технология предоставления" value="проводная" valueId="3"/> <parameter pid="74" pt="7" sort="52" title="Скорость доступа" value="5 Мб/с" valueId="59"/> <parameter pid="80" pt="7" sort="59" title="Метод расчетов Интернет" value="авансовая" valueId="31"/> <parameter pid="46" pt="7" sort="94" title="услуга Интернет" value="да" valueId="21"/> <parameter pid="47" pt="7" sort="95" title="услуга Телефония" value="нет" valueId="24"/> <parameter pid="48" pt="7" sort="96" title="Дополнительные услуги" value="нет" valueId="26"/> <parameter pid="84" pt="7" sort="98" title="Схема подключения" value="Основной" valueId="38"/> <parameter pid="94" pt="9" sort="43" title="Рабочий телефон" value=" 8 (8362) ХХ - ХХ - ХХ"/> <parameter pid="29" pt="9" sort="45" title="Номер телефона контактного лица" value=" 8 (8362) ХХ - ХХ - ХХ"/> </contract_params> <params nds="18"/> <attributes/> </bill> </data> |
Автор: | GalarG [ 30 дек 2016, 14:57 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта |
Artur писал(а): GalarG писал(а): Artur писал(а): Для полной картины приложите всю xml и xsl. Вы смотрели код? Да, этот код я когда то писал. Я просил показать xml сформированных документов. Как оказалось, в xml поле называется "payer". А в шаблоне из коробки поле называлось "contract_comment". Но вот ИНН этой организации не передается в xml |
Автор: | skn [ 30 дек 2016, 15:29 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
а ИНН где указан? |
Автор: | GalarG [ 30 дек 2016, 15:39 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
skn писал(а): а ИНН где указан? ИНН получилось достать с помощью <xsl:value-of select="/data/bill/contract_params/parameter[@pid='ХХ']/@value"/> Но значение товара передается в непонятной кодировке: Код: <pos awlz="0" insum="1" name="�������������� ����� ������� � ���� Internet �� �������� �� �������" position_id="1" qtynums="0" qtynumsRnd="4" quantity="1" sumUnscaled="1000.00000" summ="1000.00" unit="��." unitCode="796"/> Хотя кодировка шаблона и xml UTF-8 Код: <?xml version="1.0" encoding="UTF-8"?><data secret="F94175862F16A6DDDAE544F31704C91C" status="ok">
|
Автор: | Artur [ 30 дек 2016, 16:43 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
Покажите весь текст из окна about. |
Автор: | GalarG [ 30 дек 2016, 17:02 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
Artur писал(а): Покажите весь текст из окна about. Информация о версии: Клиент: вер. 7.0.845 / 21.10.2016 17:44:26 os: Windows 8.1; java: Java HotSpot(TM) Client VM, v.1.8.0_25 Сервер: вер. 7.0.1136 / 24.10.2016 18:04:50 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_101 bill: вер. 7.0.103 / 21.10.2016 17:46:32 card: вер. 7.0.40 / 22.08.2016 16:40:03 dba: вер. 7.0.167 / 08.04.2016 17:52:32 inet: вер. 7.0.696 / 24.10.2016 18:09:08 moneta: вер. 7.0.8 / 05.10.2016 13:42:52 mps: вер. 7.0.204 / 05.10.2016 13:36:29 npay: вер. 7.0.199 / 05.10.2016 13:38:35 paylinks: вер. 7.0.36 / 10.06.2016 16:59:37 phone: вер. 7.0.280 / 24.10.2016 18:05:25 qiwi: вер. 7.0.50 / 03.10.2016 16:42:13 reports: вер. 7.0.221 / 18.10.2016 12:55:45 rscm: вер. 7.0.181 / 05.10.2016 13:43:18 ru.bitel.bgbilling.plugins.cladr: вер. 7.0.123 / 08.04.2016 17:52:32 ru.bitel.bgbilling.plugins.dispatch: вер. 7.0.89 / 17.10.2016 15:38:03 ru.bitel.bgbilling.plugins.documents: вер. 7.0.175 / 05.10.2016 13:42:40 sberbank: вер. 7.0.55 / 07.10.2016 16:37:00 subscription: вер. 7.0.41 / 05.10.2016 13:43:31 voiceip: вер. 7.0.189 / 08.04.2016 17:40:15 Окружение: Клиент: os: Windows 8.1 x86, 6.3 java: Java HotSpot(TM) Client VM, v.1.8.0_25 jre home: C:\Program Files (x86)\Java\jre1.8.0_25 memory (use/total/max): 52M/93M/247M default tz: 30.12.2016 15:00 MSK +0400 (W-SU) user tz: 30.12.2016 15:00 MSK +0400 (Europe/Moscow) locale: ru_RU Сервер: os: Linux amd64, 2.6.32-504.8.1.el6.x86_64 java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_101 jre home: /usr/java/jdk1.8.0_101/jre default tz: 30.12.2016 14:01 MSK +0300 (W-SU) memory (use/total/max): 142M/234M/910M db time: master: 30.12.2016 08:23 EDT db charset: connection: utf8(utf8_unicode_ci), database: utf8(utf8_general_ci) locale: en_US uptime: Started: 12.12.2016 16:02:19 Uptime: 17 d 21:59:04 Третьи стороны: Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved. http://p.yusukekamiyamane.com/ Silk icon set. Copyright © Mark James. All rights reserved. http://www.famfamfam.com/lab/icons/silk/ |
Автор: | dimOn [ 01 янв 2017, 15:18 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
Великий хаос в системе Цитата: Клиент: default tz: 30.12.2016 15:00 MSK +0400 (W-SU) <- здесь явно неправильная TZ, у MSK +03, у вас пришло для синхронизации W-SU из сервера, где оно верно раскрылось в +0300, а на клиенте неправильно user tz: 30.12.2016 15:00 MSK +0400 (Europe/Moscow) <- но у вас и здесь косяк даже для Europe/Moscow, если у вас стоит в системе "переводить на летнее время" - странно сейчас то зима, а зимой для москвы +04 было несколько лет назад недолгое время, при медведеве, когда было летнее время круглый год, так что, короче, обновите java на клиентах. Сервер: default tz: 30.12.2016 14:01 MSK +0300 (W-SU) <- это олдовое название западной зоны ссср, в сервере правильно опозналось db time: master: 30.12.2016 08:23 EDT <- здесь и таймзона американская и со временем белиберда Здесь сделайте чтобы одинаково было: Цитата: db charset: connection: utf8(utf8_unicode_ci), database: utf8(utf8_general_ci) в connection в data.properties пропишите utf8_general_ci , раз у вас БД такая, но при этом просто вполне возможно, что у вас отдельные таблицы в других кодировках как раз, нужно проверять, тем более если вы конвертировали БД руками итд Ну и здесь желательно чтобы было ru_RU, но по-хорошему должно работать без, можно поразбираться Цитата: locale: en_US
|
Автор: | GalarG [ 10 янв 2017, 13:40 ] | ||
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) | ||
dimOn писал(а): Великий хаос в системе Цитата: Клиент: default tz: 30.12.2016 15:00 MSK +0400 (W-SU) <- здесь явно неправильная TZ, у MSK +03, у вас пришло для синхронизации W-SU из сервера, где оно верно раскрылось в +0300, а на клиенте неправильно user tz: 30.12.2016 15:00 MSK +0400 (Europe/Moscow) <- но у вас и здесь косяк даже для Europe/Moscow, если у вас стоит в системе "переводить на летнее время" - странно сейчас то зима, а зимой для москвы +04 было несколько лет назад недолгое время, при медведеве, когда было летнее время круглый год, так что, короче, обновите java на клиентах. Сервер: default tz: 30.12.2016 14:01 MSK +0300 (W-SU) <- это олдовое название западной зоны ссср, в сервере правильно опозналось db time: master: 30.12.2016 08:23 EDT <- здесь и таймзона американская и со временем белиберда Здесь сделайте чтобы одинаково было: Цитата: db charset: connection: utf8(utf8_unicode_ci), database: utf8(utf8_general_ci) в connection в data.properties пропишите utf8_general_ci , раз у вас БД такая, но при этом просто вполне возможно, что у вас отдельные таблицы в других кодировках как раз, нужно проверять, тем более если вы конвертировали БД руками итд Ну и здесь желательно чтобы было ru_RU, но по-хорошему должно работать без, можно поразбираться Цитата: locale: en_US Сейчас окно о программе выглядит так: Информация о версии: Клиент: вер. 7.0.845 / 21.10.2016 17:44:26 os: Windows 8.1; java: Java HotSpot(TM) Client VM, v.1.8.0_25 Сервер: вер. 7.0.1136 / 24.10.2016 18:04:50 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_101 bill: вер. 7.0.103 / 21.10.2016 17:46:32 card: вер. 7.0.40 / 22.08.2016 16:40:03 dba: вер. 7.0.167 / 08.04.2016 17:52:32 inet: вер. 7.0.696 / 24.10.2016 18:09:08 moneta: вер. 7.0.8 / 05.10.2016 13:42:52 mps: вер. 7.0.204 / 05.10.2016 13:36:29 npay: вер. 7.0.199 / 05.10.2016 13:38:35 paylinks: вер. 7.0.36 / 10.06.2016 16:59:37 phone: вер. 7.0.280 / 24.10.2016 18:05:25 qiwi: вер. 7.0.50 / 03.10.2016 16:42:13 reports: вер. 7.0.221 / 18.10.2016 12:55:45 rscm: вер. 7.0.181 / 05.10.2016 13:43:18 ru.bitel.bgbilling.plugins.cladr: вер. 7.0.123 / 08.04.2016 17:52:32 ru.bitel.bgbilling.plugins.dispatch: вер. 7.0.89 / 17.10.2016 15:38:03 ru.bitel.bgbilling.plugins.documents: вер. 7.0.175 / 05.10.2016 13:42:40 sberbank: вер. 7.0.55 / 07.10.2016 16:37:00 subscription: вер. 7.0.41 / 05.10.2016 13:43:31 voiceip: вер. 7.0.189 / 08.04.2016 17:40:15 Окружение: Клиент: os: Windows 8.1 x86, 6.3 java: Java HotSpot(TM) Client VM, v.1.8.0_25 jre home: C:\Program Files (x86)\Java\jre1.8.0_25 memory (use/total/max): 75M/80M/247M default tz: 10.01.2017 10:37 MSK +0300 (W-SU) user tz: 10.01.2017 10:37 MSK +0300 (Europe/Moscow) locale: ru_RU Сервер: os: Linux amd64, 2.6.32-504.8.1.el6.x86_64 java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_101 jre home: /usr/java/jdk1.8.0_101/jre default tz: 10.01.2017 10:37 MSK +0300 (W-SU) memory (use/total/max): 147M/286M/910M db time: master: 10.01.2017 10:36 MSK db charset: connection: utf8(utf8_general_ci), database: utf8(utf8_general_ci) locale: ru_RU uptime: Started: 09.01.2017 15:28:22 Uptime: 0 d 19:09:20 Третьи стороны: Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved. http://p.yusukekamiyamane.com/ Silk icon set. Copyright © Mark James. All rights reserved. http://www.famfamfam.com/lab/icons/silk/ Но по прежнему счет отображается в другой кодировке В БД все таблицы в кодировке utf8_general_ci, кроме таблицы contract_payment_deleted. Она в кодировке utf8_unicode_ci.
|
Автор: | skyb [ 10 янв 2017, 14:23 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); сменить на Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "UTF-8" ) );
|
Автор: | GalarG [ 10 янв 2017, 14:30 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
skyb писал(а): Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); сменить на Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "UTF-8" ) ); Благодарю, все работает |
Автор: | skyb [ 10 янв 2017, 14:38 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
GalarG писал(а): skyb писал(а): Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); сменить на Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "UTF-8" ) ); Благодарю, все работает Плюсик под ником ![]() ![]() |
Автор: | dimOn [ 10 янв 2017, 19:23 ] |
Заголовок сообщения: | Re: не вставляются переменные после выполнения скрипта (CRM) |
Не, про таймзоны итд это не к этой проблемы было, конечно. А про БД да.... сразу не разглядывал код, он же у вас и раньше не должен был работать внезависимости от БД, у вас БД и её кодировки там и не используется даже. Код: ByteArrayOutputStream sos = new ByteArrayOutputStream(); XMLUtils.serialize(bills, sos, "UTF-8"); String xml = sos.toString(); log("Полученная сгенерированная xml со счетами: " + xml ); InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); Вы сначала сериализуете DOM в байты кодируя в utf8, потом превращаете в строку без указания кодировки (это не будет кстати работать в системах с дефаулт чарсет отличном от utf-8 винде, например, будут кракозябры, там тоже надо тогда "UTF-8" поставить: String xml = sos.toString("UTF-8")) обратно её раскодируете из строки в другой кодировке уже. Возможно вы это раньше делали для старых перекодируемых полей. Но тогда вот так будет намного чище и логичнее, вместо Код: InputStream is = new ByteArrayInputStream( xml.getBytes( "cp1251" ) ); вот это: Код: InputStream is = new ByteArrayInputStream( sos.toByteArray() ); это можно оставить если у вас сервер в линуксах: String xml = sos.toString(), хотя тоже некрасиво |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |