Квитанция телефонии физ. лицам

Материал из BiTel WiKi

Версия от 07:38, 14 мая 2009; Vdd (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Шаблон позволяет реализовать квитанции телефонии для физ. лиц с использованием модуля бухгалтерии. В квитанции генерируется штрихкод, который содержит информацию по оператору и номеру. Формат генерации кода описан здесь: Медиа:Phone_tkural_kvit_barcode.zip.

Итоговая квитанция выглядит следующим образом:

Внешний вид квитанции

В конфигурации модуля бухгалтерии заведены следующие позиции. Позиция "Перерасчет" позволяет компенсировать различные ошибки тарификации приходами.:

bill.pos.1.title=Местная связь
bill.pos.1.name=Местная связь за $month 
bill.pos.1.summ=SERVICE_AMOUNT($month, 1)
bill.pos.1.quantity=PHONE_SERVICE_AMOUNT(1, $month, 60, 1)
bill.pos.1.unit=мин.
#
bill.pos.2.title=Зоновая мобильная связь
bill.pos.2.name=Зоновая мобильная связь за $month 
bill.pos.2.summ=SERVICE_AMOUNT($month, 8)
bill.pos.2.quantity=PHONE_SERVICE_AMOUNT(1, $month, 60, 8)
bill.pos.2.unit=мин.
#
bill.pos.3.title=Зоновая связь
bill.pos.3.name=Зоновая связь за $month 
bill.pos.3.summ=SERVICE_AMOUNT($month, 2)
bill.pos.3.quantity=PHONE_SERVICE_AMOUNT(1, $month, 60, 2)
bill.pos.3.unit=мин.
#
bill.pos.4.title=Абонентская плата
bill.pos.4.name=Абонентская плата
bill.pos.4.extractor=NPAY_SERVICES(2,$month)
bill.pos.4.unit=шт.
#
#bill.pos.5.title=Прочие услуги
#bill.pos.5.name=Прочие услуги
#bill.pos.5.extractor=KERNEL_CHARGES($month)
#bill.pos.5.unit=шт.
#
bill.pos.6.title=Долг на начало месяца
bill.pos.6.name=Долг на начало $month
bill.pos.6.summ=-IN_REST($month)
bill.pos.6.quantity=1
#
bill.pos.7.title=Платежи
bill.pos.7.name=Платежи за $month
bill.pos.7.summ=-PAYMENT($month)+PAYMENT($month, 37)
bill.pos.7.quantity=1
#
bill.pos.8.title=Расходы
bill.pos.8.name=Расход
bill.pos.8.extractor=KERNEL_CHARGES($month)
bill.pos.8.unit=шт.
#
bill.pos.9.title=Периодические услуги
bill.pos.9.name=Периодические услуги за $month
bill.pos.9.extractor=NPAY_SERVICES_EXCEPT(2,$month,6,4)
bill.pos.9.unit=шт.
#
bill.pos.10.title=Интернет в кредит
bill.pos.10.name=Интернет в кредит за $month 
bill.pos.10.summ=SERVICE_AMOUNT($month, 273)
bill.pos.10.quantity=PHONE_SERVICE_AMOUNT(1, $month, 60, 273)
bill.pos.10.unit=мин.
#
bill.pos.11.title=Абонплата за линию и по тарифу
bill.pos.11.name=Абонплата за линию и по тарифу за $month
bill.pos.11.summ=SERVICE_ACCOUNT($month,6,4)
bill.pos.11.unit=шт.
#
bill.pos.12.title=Перерасчет
bill.pos.12.name=Перерасчет за $prevmonth
bill.pos.12.summ=-PAYMENT($month, 37)
bill.pos.12.unit=

Заведен тип документа "Квитанция для физиков", которому сопоставлены позиции:

Настройка типа счета

Сам XSLT шаблон: Медиа:Phone_tkural_kvit.zip

При использовании FORMAT(SUM(cost),2) в selectах были проблемы при суммировании позиций средствами самого XSLT при SUM(cost)>999. Вариант решения: отказаться от FORMAT.

Обратите внимание, что в шаблоне необходимо скорректировать коды услуг, тарифов, параметров договоров и позиций, которые вы завели в вашей системе. Все настраиваемые параметры вынесены в заголовок. Решение рассчитано только на выставление счетов за и зоновую местную связь .

<!-- настраиваемые параметры -->
<xsl:variable name="address_param_id" select="'21'"/>
<xsl:variable name="phone_mid" select="'1'"/>
<xsl:variable name="npay_mid" select="'2'"/>
 
<xsl:variable name="service_abon_line" select="'4'"/>
<xsl:variable name="service_abon_service" select="'6'"/>
<xsl:variable name="service_phone_mest" select="'1'"/>			
<xsl:variable name="service_phone_zone" select="'2'"/>
 
<xsl:variable name="tariff_abon" select="'3'"/>
<xsl:variable name="tariff_povrem" select="'1'"/>
<xsl:variable name="tariff_komb" select="'14'"/>
<xsl:variable name="tariff_soc" select="'4'"/>
 
<xsl:variable name="position_charge" select="'8'"/>
<xsl:variable name="position_pay" select="'9'"/>
<xsl:variable name="position_in_debt" select="'6'"/>
<xsl:variable name="position_payment" select="'7'"/>
<xsl:variable name="position_recalculation" select="'12'"/>
<xsl:variable name="position_inet" select="'10'"/>
 
<xsl:variable name="pos_address_delim" select="'25'"/>

В XSLT файле вставляется логотип организации:

<fo:table-cell><fo:external-graphic src="http://192.168.1.242:8080/bgbilling/tkural_logo.gif" width="3.4cm" height="1.7cm"/></fo:table-cell>

Обратите внимание, что путь должен быть скорректирован и реально доступен с машины, где установлен BGBillingClient. Вы можете проверить это браузером. В противном случае просмотр квитанции будет "подвешивать" клиент. Вызвано это тем, что по-умолчанию таймаут URL в Java машине не ограничен. Вы можете задать таймаут опцией -Dsun.net.client.defaultConnectTimeout=1000 в скрипте запуска клиента bgbilling.sh (.bat).

Личные инструменты