2016-01-11 11 views
2

Я получил таблицу из массива и много сумм $$$ для разных дат.Smarty if statement with date & date = month>, чтобы показать результаты

Пример:

-08/10/2015 | Сумма: 2500 $
-19/10/2015 | Сумма: 1000 $
-20/11/2015 | Сумма: 500 $
-27/11/2015 | Сумма: 720 $
-30/12/2015 | Сумма: 100 $
-31/12/2015 | Сумма: 250 $

Мой текущий код в шаблоне Smarty является:

   {foreach from=$referrals item=referral} 
        {if $referral.date eq "08/10/2015"} 
          {assign var="sum" value="`$sum+$referral.amount`"} 
        {/if} 
       {/foreach} 
        <td>{$sum|number_format:2:",":"."} ден.</td> 
       {assign var="sum" value=0} 

И я только получить общую сумму только на дату: 08/10/2015

Мой вопрос состоит в том, как получить общую сумму за весь месяц (10) октября или за весь месяц (11) ноября и за весь год, разделенные месяцами, и только за суммы, которые не равны 0 (ноль), потому что у меня есть такие суммы?

И это мой массив (содержащий более 136 массивов):

Smarty_Variable Object (3) 
->value = Array (137) 
    0 => Array (11) 
    id => "1514" 
    date => "05/01/2016" 
    service => "Рамка со податоци" 
    package => "Рамка со податоци" 
    userid => "500" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
    1 => Array (11) 
    id => "1515" 
    date => "05/01/2016" 
    service => "Лого со податоци" 
    package => "Лого со податоци" 
    userid => "500" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
    2 => Array (11) 
    id => "1496" 
    date => "29/12/2015" 
    service => "Рамка со податоци" 
    package => "Рамка со податоци" 
    userid => "493" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
    3 => Array (11) 
    id => "1497" 
    date => "29/12/2015" 
    service => "Лого со податоци" 
    package => "Лого со податоци" 
    userid => "493" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
    4 => Array (11) 
    id => "1498" 
    date => "29/12/2015" 
    service => "Реклама во црно-бела техника на 1/6 -..." 
    package => "Реклама во црно-бела техника на 1/6 -..." 
    userid => "493" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
    5 => Array (11) 
    id => "1500" 
    date => "29/12/2015" 
    service => "Лого и мапа на www.abv.mk" 
    package => "Лого и мапа на www.abv.mk" 
    userid => "493" 
    amount => "0.00" 
    billingcycle => "One Time" 
    amountdesc => "0,00 ден. One Time" 
    commission => "0,00 ден." 
    lastpaid => "Never" 
    status => "Active" 
+2

Просто сделай это в обычном PHP и отправить результаты на Smarty с переменной. Smarty - это система шаблонов, она не должна использоваться для таких сложных операций. – Borgtex

+0

Я согласен с Borgtex - не забудьте включить теги Smarty PHP, если вы используете WHMCS v6 (WHMCS> Настройка> Общие настройки> вкладка Безопасность). Затем вы можете использовать {php} {/ php} в шаблоне, чтобы делать то, что вы хотите сделать. Конечно, в идеале вы добавили бы крючок в папку hooks, чтобы сделать это, но я отвлекся. – muely2k1

+0

Я могу попробовать обе вещи, о которых стоит упомянуть, но проблема в том, что я действительно не программист php, вот почему я прошу о помощи :) @ muely2k1 – ViktorG

ответ

1
*//sum for october month* 

{assign var="sum" value=0} 

{foreach from=$referrals item=referral} 

    {if $referral.date|date_format:"%m" == 10 && $referral.amount != 0} 

    {assign var="sum" value=$sum+$referral.amount} 

    {/if} 

{/foreach} 

*//display sum* 

{$sum|number_format:2:",":"."} 
+0

Было бы неплохо, если бы вы добавили некоторое описание в свой код, чтобы указать, как это решает проблему OP проблема. – Nima

 Смежные вопросы

  • Нет связанных вопросов^_^