BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 17 июн 2025, 00:20

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 24 ноя 2009, 17:23 
Имеется следующий конфиг:
Код:
bill.pos.8.title=Абонентская плата за интернет
bill.pos.8.name=Абонентская плата за интернет за $month 2009 г.
bill.pos.8.summ=SERVICE_ACCOUNT($month,18)
bill.pos.8.unit=МБайт
bill.pos.8.quantity=DIALUP_TARIFF_DETAIL_AMOUNT(1,$month,1048576,1)

bill.pos.9.title=Плата за интернет по тарифу2
bill.pos.9.name=Плата за интернет по тарифу за $month 2009 г. Первое превышение
bill.pos.9.summ=TARIFF_DETAIL_COST(1,$month,2)
bill.pos.9.unit=МБайт
bill.pos.9.quantity=DIALUP_TARIFF_DETAIL_AMOUNT(1,$month,1048576,2)

bill.pos.10.title=Плата за интернет по тарифу3
bill.pos.10.name=Плата за интернет по тарифу за $month 2009 г. Второе превышение
bill.pos.10.summ=TARIFF_DETAIL_COST( 1,$month,3 )
bill.pos.10.unit=МБайт
bill.pos.10.quantity=DIALUP_TARIFF_DETAIL_AMOUNT(1,$month,1048576,3)

bill.pos.11.title=Плата за интернет по тарифу4
bill.pos.11.name=Плата за интернет по тарифу за $month 2009 г. Третье превышение
bill.pos.11.summ=TARIFF_DETAIL_COST( 1,$month, 4 )
bill.pos.11.unit=МБайт
bill.pos.11.quantity=DIALUP_TARIFF_DETAIL_AMOUNT(1,$month,1048576,4)

При генерации счета порядок позиций уже другой:
1)Абонплата
2)Третье превышение
3)Первое превышение
4)Второе превышение
В чем причина такого несоответствия? Можно ли как-нибудь сделать так, чтобы позиции в счете шли в правильном порядке?


Вложения:
Комментарий к файлу: Счет
.jpg
.jpg [ 42.64 КБ | Просмотров: 4571 ]
Вернуться к началу
  
 
СообщениеДобавлено: 25 ноя 2009, 11:20 
И еще вопрос - можно как-нибудь сделать чтобы мегабайты не округлялись до целого числа, а выдавались с заданной точностью (например 2 знака после запятой).


Вернуться к началу
  
 
СообщениеДобавлено: 25 ноя 2009, 12:43 
Причину нашел - неправильный порядок следования записей в поле pos_list. Возможно стоит сделать так, чтобы при заполнении значений в этом поле они упорядочивались по возрастанию?


Вернуться к началу
  
 
СообщениеДобавлено: 25 ноя 2009, 13:16 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Добавьте там где выводятся позиции, сразу после
<xsl:for-each select="pos">
ветку
<xsl:sort select="@position_id"/>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2009, 20:17 
Не в сети

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
rix писал(а):
И еще вопрос - можно как-нибудь сделать чтобы мегабайты не округлялись до целого числа, а выдавались с заданной точностью (например 2 знака после запятой).


глобально, объявите российский формат числа:
<xsl:decimal-format name="RU" decimal-separator=',' grouping-separator=' ' NaN='0' />

там где выводится число делать примерно так:
<xsl:value-of select="format-number( (@summ - $nds) div @quantity, '# ##0,00', 'RU')" />

подробнее http://www.w3schools.com/XSL/func_formatnumber.asp


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 ноя 2009, 11:15 
Проблема в том, что мегабайты округлены уже в xml-файле, следовательно xsl тут не поможет.


Вернуться к началу
  
 
СообщениеДобавлено: 30 ноя 2009, 14:44 
Не в сети

Зарегистрирован: 07 май 2008, 13:34
Сообщения: 594
Откуда: Москва
Карма: 27
тогда остается только передавать данные в XML в байтах и хардкодить в XSLT
в принципе достаточно странная точность, кому нужны десятки килобайт, если речь идет о печати счетов, то там нет никаких требований к форме документа, и произведение цены и объема не обязано равняться сумме

а при печати фактур лучше вообще никакие объемы и единицы измерения не писать, так как там очень жесткие требования, но даже если вы решите печатать объемы, то цену вы в любом случае должны будете вычислять в XSLT как сумма/объем, иначе не будет равенства и налоговая оторвет вашим клиентам головы


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2010, 11:15 
Апну тему, потому что правильный порядок следования позиций по прежнему актуален. xsl:sort не работает. А после одного из недавних обновлений позиции, даже вручную отсортированные в поле pos_list, в документах идут рандомом.

Нашел причину проблемы - функция xsl:sort вместо того, чтобы отсортировать позиции по position_id, расставляет их чуть ли не рандомом.


Вернуться к началу
  
 
СообщениеДобавлено: 17 июн 2010, 21:24 
Не в сети

Зарегистрирован: 28 апр 2010, 20:09
Сообщения: 22
Карма: 5
Правильное использование xsl:sort:
<xsl:sort select="number(@position_id)" data-type="number"/>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.037s | 25 Queries | GZIP : On ]