Интеграция штрихкода в счет

Бухгалтерия: выставление счетов, счетов-фактур.

Интеграция штрихкода в счет

Сообщение MiB » 23 дек 2008, 18:35

http://wiki.bgbilling.ru/index.php/Квитанция_телефонии_физ._лицам
здесь описано что можно вставлять штрихкод в свою квитанцию.
взять кусок кода и вставить в свой шаблон(с изменением параметров)
не получилось ругается на неправильное описание конструкций xsl.
может оформите какую-то доку по данному вопросу или ссылки где это можно почитать более менее доступно.?

вставляю следующий код:
здесь 492 строки шаблона, далее с 493 начинается кусок взятый из wiki
$this->bbcode_second_pass_code('', '
<fo:block space-before="1.05cm" margin-left="-0.1cm">
<!-- 128-тип кода, затем StartA, T, K, B, CodeC -->
<xsl:variable name="code_start" select="'128a|TKBÇ'"/>
<!-- номер телефона (первый) - 7 символов -->
<xsl:variable name="number" select="1234567"/>
<!-- период оплаты - 4 символа -->
<xsl:variable name="period_opl" select="1208"/>
<!-- сумма -->
<xsl:variable name="rub" select="100"/>
<xsl:variable name="kop" select="00"/>
<xsl:variable name="rub_length" select="string-length($rub)"/>

<xsl:variable name="sum_part_c" select="substring($rub, 1, $rub_length - 1)"/>
<xsl:variable name="sum_part_a" select="concat(substring($rub, $rub_length, 1),'.', $kop)"/>
<fo:external-graphic width="6cm" height="1cm">
<xsl:attribute name="src"><xsl:value-of select="concat('barcode:///', $code_start, $number, $period_opl, $sum_part_c, 'É', $sum_part_a, '&lt;SOH&gt;')"/></xsl:attribute>
</fo:external-graphic>
</fo:block>

')
в итоге штрихкода нет :(
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40

Сообщение Администратор » 24 дек 2008, 16:36

Более подробно можно ругань? Где ругается? И точный текст..
Администратор
Разработчик
 
Сообщения: 5644
Зарегистрирован: 27 ноя 2006, 20:36

Сообщение MiB » 24 дек 2008, 17:32

$this->bbcode_second_pass_quote('Администратор', '')олее подробно можно ругань? Где ругается? И точный текст..


$this->bbcode_second_pass_code('', '
[Fatal Error] bill_bar.xsl:499:53: Element type "xsl:variable" must be followed by either attribute specifications, ">" or "/>".
org.xml.sax.SAXParseException: Element type "xsl:variable" must be followed by either attribute specifications, ">" or "/>".
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at bitel.billing.server.bill.PDFExecuter.docl2PDF(PDFExecuter.java:177)
at bitel.billing.server.bill.PDFExecuter.doPost(PDFExecuter.java:97)
at bitel.billing.server.bill.PDFExecuter.doGet(PDFExecuter.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
')

хотя эту ошибку я уже поборол.(в первом посте код исправил)
но штрихкод пока не вижу. борюсь дальше.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40

Сообщение stark » 24 дек 2008, 17:53

$this->bbcode_second_pass_quote('MiB', '
')хотя эту ошибку я уже поборол.(в первом посте код исправил)
но штрихкод пока не вижу. борюсь дальше.

у вас дальше ругается или просто молча не выводит ?
stark
Разработчик
 
Сообщения: 8343
Зарегистрирован: 08 ноя 2007, 01:05
Откуда: Уфа

Сообщение MiB » 24 дек 2008, 18:29

$this->bbcode_second_pass_quote('stark', '')$this->bbcode_second_pass_quote('MiB', '
')хотя эту ошибку я уже поборол.(в первом посте код исправил)
но штрихкод пока не вижу. борюсь дальше.

у вас дальше ругается или просто молча не выводит ?

просто не отображает. в логах все чисто.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40
Вернуться к началу

Сообщение Администратор » 25 дек 2008, 10:46

Биллинг 4.5?
Администратор
Разработчик
 
Сообщения: 5644
Зарегистрирован: 27 ноя 2006, 20:36

Сообщение MiB » 25 дек 2008, 13:51

$this->bbcode_second_pass_quote('Администратор', '')иллинг 4.5?

4.4.234.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40
Вернуться к началу

Сообщение Администратор » 25 дек 2008, 14:22

Эта возможность добавлена только с 4.5 версии.
Администратор
Разработчик
 
Сообщения: 5644
Зарегистрирован: 27 ноя 2006, 20:36

Сообщение MiB » 25 дек 2008, 21:56

$this->bbcode_second_pass_quote('Администратор', '')та возможность добавлена только с 4.5 версии.


от ведь незадача.... чтож с вами делать.... теперь придется апгрейтится..... а так не хотелось :).

Спасибо.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40
Вернуться к началу

Сообщение MiB » 20 янв 2009, 18:25

Произвел апгрейт. штрихкод рисуется.

теперь возникает вопрос: как считать контрольную сумму для штрихкода?

у нас это просто последняя цифра есть остаток от деленя на 10 от суммы всех цифр в штрихкоде.
возможно ли такое реализовать на XSLT или необходимо это делать отдельным внешним скриптом?
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40

Сообщение Администратор » 21 янв 2009, 17:10

Ну можно в XSLT вроде - просуммируйте числа и mod 10 - вот и будет вам контрольная сумма. Можете использовать расширение counter.
Администратор
Разработчик
 
Сообщения: 5644
Зарегистрирован: 27 ноя 2006, 20:36

Сообщение MiB » 21 янв 2009, 22:12

Коллеги, в XSL не силен. может кто подсказать кусок кода который в цикле будет разбирать строку на символы?
заранее спасибо.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40

Сообщение MiB » 22 фев 2009, 16:09

может кому поможет:
с циклами у XSLT совсем туго оказалось, поэтому пришлось изгаляться через рекурсивные вызовы.

требуется подсчитать контрольную сумму строки по определенной формуле, темплейт:
$this->bbcode_second_pass_code('', '
<xsl:template name="checksumm">
<xsl:param name="value"/>
<xsl:param name="sum" select="0"/>
<xsl:param name="position" select="4"/>

<xsl:variable name="char" select="substring($value,$position,1)"/>

<xsl:choose>
<xsl:when test="$position &lt; string-length($value)">
<xsl:call-template name="checksumm">
<xsl:with-param name="value" select="$value"/>
<xsl:with-param name="position" select="$position + 1"/>
<xsl:with-param name="sum" select="$sum + $position * $char"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$sum mod 10"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
')
короче рекурсивно вызывает сам себя пока $position < длинный строки.
сумма = (сумма+ (порядковый номер цифры * значение цифры)) MOD 10

вызов темплейта:
$this->bbcode_second_pass_code('', '
<xsl:variable name="sum">
<xsl:call-template name="checksumm">
<xsl:with-param name="value" select="concat('$code_start, $number, $period_opl, $sum_part_c, 'É', $sum_part_a, '&lt;SOH&gt;')""/>
</xsl:call-template>
</xsl:variable>
')
в переменной sum имеем число = контрольной сумме.
далее делаем concat для формирования barcode.
MiB
 
Сообщения: 163
Зарегистрирован: 22 янв 2008, 16:40

Re: Интеграция штрихкода в счет

Сообщение Владимир » 29 июл 2011, 14:03

а как интегрировать штрихкод в счет сделанный в iReport?
Владимир
 
Сообщения: 316
Зарегистрирован: 17 июн 2008, 09:28
Откуда: Самара


Вернуться в Модуль Bill

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

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

cron