Перейти к содержимому


Арифметика в шаблоне печати

шаблон печати арифметика

Сообщений в теме: 2

#1 Krokus

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Tallinn

Отправлено 30 Ноябрь 2015 - 02:12

Здравствуйте.

Мне необходимо было построить шаблон печати, в котором срабатывала простенькая скоринговая система - происходило бы вычисление в зависимости от значений в полях таблицы.

С этим все просто:

{if {$Уровень риска} == 'LOW'} 0 {elseif {$Уровень риска} == 'MEDIUM'} 1 {elseif {$Уровень риска} == 'HIGH'} 1 {/if}
{if {$Запрошенная сумма} lte '50000'} 0 {else {$Запрошенная сумма} gt '50000'} 1 {/if}
{if {$Запрошенный срок} lte '0,5'} 0 {else {$Запрошенный срок} gt '0,5'} 1 {/if}

Все считается, но теперь мне необходимо это все сложить. Как это сделать? Все варианты приводят к ошибкам. Пытался изобразить что-то наподобие:

{if {$Запрошенный срок} lte '0,5'}0{else {$Запрошенный срок} gt '0,5'}1{/if}" digits=0}+{SumFormat value="{if {$Запрошенная сумма} lte '50000'}0{else {$Запрошенная сумма} gt '50000'}1{/if}" digits=0}+{SumFormat value="{if {$Уровень риска}=='LOW'}0{elseif {$Уровень риска}=='MEDIUM'}1{elseif {$Уровень риска}=='HIGH'}1{/if}}

Естественно, не работает, отображает что-то типа: "0+1+1", но не считает.

Помогите пожалуйста.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 30 Ноябрь 2015 - 09:22

Самое простое решение - перевести вычисление в скрытое доп.поле, и выводить в шаблоне уже его. Т.е. не в шаблоне считать, а через вычисление в таблице. Но если охота именно с шаблоном заморачиваться, то советую просмотреть документацию по smarty, может там найдете решение.

#3 Krokus

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Tallinn

Отправлено 30 Ноябрь 2015 - 22:57

Спасибо, CbCoder, вы мне очень помогли.

Я нашел решение при помощи сайта smarty. Выглядит так: требуется применить {math equation=""}, заключив вычисления в кавычки:

{math equation="{if {$The requested period} lte '0,5'}0{else {$The requested period} gt '0,5'}1{/if}+{if {$The requested amount} lte '50000'}0{else {$The requested amount} gt '50000'}1{/if}+{if {$Risk level} == 'LOW'}0{else {$Risk level} == 'MEDIUM' or {$Risk level} == 'HIGH'}1{/if}"}





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных