src/ApplicationBundle/Resources/views/pages/dashboard/index_sales.html.twig line 1

Open in your IDE?
  1. {% include '@Application/codecovers_header.html.twig' %}
  2. {% include '@Application/inc/menu/skeleton_with_menu_codecovers.html.twig' %}
  3. <style>
  4.     .card div[class*="col-md"], .card div[class*="col-lg"], .card div[class*="col-xs"], .card div[class*="col-sm"] {
  5.         margin-bottom: 0px;
  6.     }
  7. </style>
  8. <!-- BEGIN BASE-->
  9. <div id="base">
  10.     
  11.     
  12.     <!-- BEGIN CONTENT-->
  13.     <div id="content">
  14.         
  15.         <section>
  16.             <div class="section-body">
  17.                 {% set company_data=''|getUserCompany %}
  18.                 {% set pending_doc_list={} %}
  19.                 {% set pending_approval_list={} %}
  20.                 {% set override_approval_list={} %}
  21.                 {% set monthly_summary_data=  ''|getMonthlySummary %}
  22.                 {% set so_count_details=100|getSoCountAndMore() %}
  23.                 
  24.                 {#{{ dump(monthly_summary_data) }}#}
  25.                 <div class="row clearfix">
  26.                     {% include '@Application/inc/notification/error_notification.html.twig' %}
  27.                     {% include '@Application/inc/notification/success_notification.html.twig' %}
  28.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6" style="cursor: pointer;">
  29.                         <div class="card pending_task_trigger">
  30.                             <div class="body no-padding">
  31.                                 <div class="alert alert-callout alert-warning no-margin">
  32.                                     {#                                    <strong class="pull-right text-warning text-lg">{{ (pending_approval_list|length) +(override_approval_list|length) }}#}
  33.                                     {#                                        <i class="material-icons">playlist_add_check</i></strong>#}
  34.                                     {#                                    <strong class="text-xl number count-to-amount-specific" data-from="0"#}
  35.                                     {#                                            data-to="{{ (pending_approval_list|length) +(override_approval_list|length) }}"#}
  36.                                     {#                                            data-speed="{{ 1000 }}" data-fresh-interval="20">#}
  37.                                     {#                                    </strong>#}
  38.                                     <strong class="pull-right text-warning text-lg">0<i class="material-icons">playlist_add_check</i></strong>
  39.                                     <strong class="text-xl number count-to-amount-specific" data-from="0"
  40.                                             data-to="0"
  41.                                             data-speed="1000" data-fresh-interval="20">&nbsp;
  42.                                     </strong>
  43.                                     <br>
  44.                                     <span class="opacity-50">PENDING TASKS</span>
  45.                                 </div>
  46.                             </div><!--end .card-body -->
  47.                         </div>
  48.                     
  49.                     
  50.                     </div>
  51.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6">
  52.                         <div class="card ">
  53.                             <div class="body no-padding">
  54.                                 <div class="alert alert-callout alert-success no-margin">
  55.                                     <strong class="pull-right text-success text-lg"><i class="material-icons">add_shopping_cart</i>
  56.                                         {#<i class="zmdi zmdi-trending-up"></i>#}
  57.                                     </strong>
  58.                                     <strong class="text-xl number count-to-amount" data-from="0"
  59.                                             data-to="{{ company_data.revenue }}"
  60.                                             data-speed="{{ 1000 }}" data-fresh-interval="20">
  61.                                     </strong>
  62.                                     <br>
  63.                                     <span class="opacity-50">SALES</span>
  64.                                     <div class="stick-bottom-left-right">
  65.                                         <div class="height-2 revenue-tm-sparkline" data-line-color="#bdc1c1"></div>
  66.                                     </div>
  67.                                 </div>
  68.                             </div><!--end .card-body -->
  69.                         </div>
  70.                     
  71.                     </div>
  72.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6">
  73.                         <div class="card ">
  74.                             <div class="body no-padding">
  75.                                 <div class="alert alert-callout alert-info no-margin">
  76.                                     <strong class="pull-right text-success text-lg"><i class="material-icons">work</i>
  77.                                     </strong>
  78.                                     <strong class="text-xl number count-to-amount" data-from="0"
  79.                                             data-to="{{ company_data.netWorth }}"
  80.                                             data-speed="{{ 1000 }}" data-fresh-interval="20">
  81.                                     </strong>
  82.                                     <br>
  83.                                     <span class="opacity-50">NET WORTH</span>
  84.                                     <div class="stick-bottom-left-right">
  85.                                         <div class="height-2 nw-tm-sparkline" data-line-color="#bdc1c1"></div>
  86.                                     </div>
  87.                                 </div>
  88.                             </div><!--end .card-body -->
  89.                         </div>
  90.                     
  91.                     </div>
  92.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6">
  93.                         <div class="card style-accent">
  94.                             <div class="body no-padding">
  95.                                 <div class="alert alert-callout alert-info no-margin">
  96.                                     <strong class="pull-right text-success text-lg"><i class="material-icons">call_received</i>
  97.                                     </strong>
  98.                                     <strong class="text-xl number count-to-amount" data-from="0"
  99.                                             data-to="{{ company_data.receivable }}"
  100.                                             data-speed="{{ 1000 }}" data-fresh-interval="20">
  101.                                     </strong>
  102.                                     <br>
  103.                                     <span class="opacity-50">RECEIVABLE</span>
  104.                                 </div>
  105.                             </div><!--end .card-body -->
  106.                         </div>
  107.                     
  108.                     </div>
  109.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6">
  110.                         <div class="card style-accent">
  111.                             <div class="body no-padding">
  112.                                 <div class="alert alert-callout  no-margin">
  113.                                     <strong class="pull-right text-success text-lg"><i
  114.                                                 class="material-icons">call_made</i> </strong>
  115.                                     <strong class="text-xl number count-to-amount" data-from="0"
  116.                                             data-to="{{ company_data.payable }}"
  117.                                             data-speed="{{ 1000 }}" data-fresh-interval="20">
  118.                                     </strong>
  119.                                     <br>
  120.                                     <span class="opacity-50">PAYABLE</span>
  121.                                 </div>
  122.                             </div><!--end .card-body -->
  123.                         </div>
  124.                     
  125.                     </div>
  126.                     <div class="col-lg-2 col-md-2 col-sm-6 col-xs-6">
  127.                         <div class="card style-accent">
  128.                             <div class="body no-padding">
  129.                                 <div class="alert alert-callout alert-warning no-margin">
  130.                                     <strong class="pull-right text-success text-lg"><i class="material-icons">trending_up</i>
  131.                                     </strong>
  132.                                     <strong class="text-xl number count-to-percentage" data-from="0"
  133.                                             data-to="{{ monthly_summary_data.latestMonthlyGrowth }}"
  134.                                             data-speed="{{ 1000 }}" data-fresh-interval="20">
  135.                                     </strong>
  136.                                     <br>
  137.                                     <span class="opacity-50">GROWTH</span>
  138.                                     <div class="stick-bottom-left-right">
  139.                                         <div class="height-2 mg-tm-sparkline" data-line-color="#bdc1c1"></div>
  140.                                     </div>
  141.                                 </div>
  142.                             </div><!--end .card-body -->
  143.                         </div>
  144.                     
  145.                     </div>
  146.                 </div>
  147.                 <div class="row clearfix pending_task_div" id="" style="display: none;">
  148.                     <div class=" col-xs-12 col-sm-12 col-md-12 col-lg-12">
  149.                         <div class="card">
  150.                             <div class="header">
  151.                                 <header>PENDING TASKS</header>
  152.                                 <div class="tools">
  153.                                     <a class="btn btn-icon-toggle btn-refresh"><i class="zmdi zmdi-refresh"></i></a>
  154.                                     <a class="btn btn-icon-toggle btn-collapse"><i class="fa fa-angle-down"></i></a>
  155.                                     <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  156.                                 </div>
  157.                             </div>
  158.                             <div class="body">
  159.                                 {% if pending_approval_list is empty and override_approval_list is empty %}
  160.                                     <blockquote class="m-b-25">
  161.                                         <p>Great! No Pending Tasks</p>
  162.                                         <footer><cite title="Source Title">The News Bee</cite></footer>
  163.                                     </blockquote>
  164.                                 {% else %}
  165.                                     <div class="table-responsive">
  166.                                         <table class="table table-hover table-condensed dashboard-task-infos">
  167.                                             <thead>
  168.                                             <tr>
  169.                                                 <th>#</th>
  170.                                                 <th>Document</th>
  171.                                                 <th>Status</th>
  172.                                                 <th>Type</th>
  173.                                                 <th>Action</th>
  174.                                             </tr>
  175.                                             </thead>
  176.                                             <tbody>
  177.                                             {% set ind=0 %}
  178.                                             
  179.                                             {% for item in pending_approval_list %}
  180.                                                 {% set ind=ind+1 %}
  181.                                                 
  182.                                                 <tr class="pending_row_{{ item.entity }}_{{ item.entityId }}">
  183.                                                     <td>{{ ind }}</td>
  184.                                                     <td>{{ item.documentHash }}</td>
  185.                                                     <td><span class="label bg-orange" style="background: orange;">Pending Approval</span></td>
  186.                                                     <td>{{ item.entityAlias }}</td>
  187.                                                     <td>
  188.                                                         <div class="btn-group ">
  189.                                                             <button type="button"
  190.                                                                     class="btn ink-reaction btn-sm btn-primary dropdown-toggle  waves-effect"
  191.                                                                     data-toggle="dropdown">
  192.                                                                 Action <i class="fa fa-caret-down"></i>
  193.                                                             </button>
  194.                                                             
  195.                                                             
  196.                                                             <ul class="dropdown-menu animation-expand"
  197.                                                                 style=""
  198.                                                                 role="menu">
  199.                                                                 <li><a  href="{% if item.viewPath != '' and not item.viewPath is null %}{{ path(item.viewPath) }}/{{ item.entityId }}{% endif %}"> View</a></li>
  200.                                                                 <li><a href="#" class="trigger_approval_btn"
  201.                                                                        data-toggle="modal"
  202.                                                                        data-entity="{{ item.entity }}"
  203.                                                                        data-entity-id="{{ item.entityId }}"
  204.                                                                        data-approval-id="{{ item.approvalId }}"
  205.                                                                        
  206.                                                                        data-target="#approveDocument">Approve</a></li>
  207.                                                             
  208.                                                             </ul>
  209.                                                         </div>
  210.                                                         {#                                                        <a class="btn btn-primary btn-sm waves-effect"#}
  211.                                                         {#                                                           href="{{ path(item.viewPath) }}/{{ item.entityId }}">#}
  212.                                                         {#                                                            View#}
  213.                                                         {#                                                        </a>#}
  214.                                                         {#<div class="progress">#}
  215.                                                         {#<div class="progress-bar bg-green" role="progressbar" aria-valuenow="62" aria-valuemin="0" aria-valuemax="100" style="width: 62%"></div>#}
  216.                                                         {#</div>#}
  217.                                                     </td>
  218.                                                 </tr>
  219.                                             {% endfor %}
  220.                                             {% for item in override_approval_list %}
  221.                                                 {% set ind=ind+1 %}
  222.                                                 
  223.                                                 <tr class="pending_row_{{ item.entity }}_{{ item.entityId }}">
  224.                                                     <td>{{ ind }}</td>
  225.                                                     <td>{{ item.documentHash }}</td>
  226.                                                     <td><span class="label " style="background: blue;">Override</span></td>
  227.                                                     <td>{{ item.entityAlias }}</td>
  228.                                                     <td>
  229.                                                         <div class="btn-group ">
  230.                                                             <button type="button"
  231.                                                                     class="btn ink-reaction btn-sm btn-primary dropdown-toggle  waves-effect"
  232.                                                                     data-toggle="dropdown">
  233.                                                                 Action <i class="fa fa-caret-down"></i>
  234.                                                             </button>
  235.                                                             
  236.                                                             
  237.                                                             <ul class="dropdown-menu animation-expand"
  238.                                                                 style=""
  239.                                                                 role="menu">
  240.                                                                 <li><a  href="{{ path(item.viewPath) }}/{{ item.entityId }}"> View</a></li>
  241.                                                                 <li><a href="#" class="trigger_approval_btn"
  242.                                                                        data-toggle="modal"
  243.                                                                        data-entity="{{ item.entity }}"
  244.                                                                        data-entity-id="{{ item.entityId }}"
  245.                                                                        data-approval-id="{{ item.approvalId }}"
  246.                                                                        
  247.                                                                        data-target="#approveDocument">Approve</a></li>
  248.                                                             
  249.                                                             </ul>
  250.                                                         </div>
  251.                                                         {#<div class="progress">#}
  252.                                                         {#<div class="progress-bar bg-green" role="progressbar" aria-valuenow="62" aria-valuemin="0" aria-valuemax="100" style="width: 62%"></div>#}
  253.                                                         {#</div>#}
  254.                                                     </td>
  255.                                                 </tr>
  256.                                             {% endfor %}
  257.                                             
  258.                                             </tbody>
  259.                                         </table>
  260.                                     
  261.                                     </div>
  262.                                 {% endif %}
  263.                             </div>
  264.                         </div>
  265.                     
  266.                     </div>
  267.                 
  268.                 
  269.                 </div>
  270.                 <div class="row">
  271.                     
  272.                     <!-- BEGIN SITE ACTIVITY -->
  273.                     <div class="col-md-9">
  274.                         <div class="card ">
  275.                             <div class="row">
  276.                                 <div class="col-md-8">
  277.                                     <div class="header">
  278.                                         <header>Revenue & Expense</header>
  279.                                     </div><!--end .header -->
  280.                                     <div class="body height-8">
  281.                                         <div id="rev_exp_chart_legend"
  282.                                              class="flot-legend-horizontal stick-top-right no-y-padding"></div>
  283.                                         <div id="rev_exp_chart" class="flot height-7" data-title="Sales & Expenses"
  284.                                              data-color="#7dd8d2,#0aa89e"></div>
  285.                                     </div><!--end .body -->
  286.                                 </div><!--end .col -->
  287.                                 <div class="col-md-4">
  288.                                     <div class="header">
  289.                                         <header>Current stats</header>
  290.                                     </div>
  291.                                     <div class="body height-8">
  292.                                         <strong>{{ company_data.sales|number_format(2,'.',',') }}</strong> Sales
  293.                                         <span class="pull-right text-success text-sm">0,18% <i
  294.                                                     class="zmdi zmdi-trending-up"></i></span>
  295.                                         <div class="progress progress-hairline">
  296.                                             <div class="progress-bar progress-bar-primary-dark" style="width:43%"></div>
  297.                                         </div>
  298.                                         {{ so_count_details.soCount }} Orders
  299.                                         <span class="pull-right text-success text-sm">0,68% <i
  300.                                                     class="zmdi zmdi-trending-up"></i></span>
  301.                                         <div class="progress progress-hairline">
  302.                                             <div class="progress-bar progress-bar-primary-dark" style="width:11%"></div>
  303.                                         </div>
  304.                                         {{ company_data.cash|number_format(2,'.',',') }} in Cash
  305.                                         <span class="pull-right text-danger text-sm">21,08% <i
  306.                                                     class="zmdi zmdi-trending-down"></i></span>
  307.                                         <div class="progress progress-hairline">
  308.                                             <div class="progress-bar progress-bar-danger" style="width:93%"></div>
  309.                                         </div>
  310.                                         {{ company_data.bank|number_format(2,'.',',') }} in Bank
  311.                                         <span class="pull-right text-success text-sm">0,18% <i
  312.                                                     class="zmdi zmdi-trending-up"></i></span>
  313.                                         <div class="progress progress-hairline">
  314.                                             <div class="progress-bar progress-bar-primary-dark" style="width:63%"></div>
  315.                                         </div>
  316.                                         0 Return Occurrance
  317.                                         <span class="pull-right text-success text-sm">0,18% <i
  318.                                                     class="zmdi zmdi-trending-up"></i></span>
  319.                                         <div class="progress progress-hairline">
  320.                                             <div class="progress-bar progress-bar-primary-dark" style="width:47%"></div>
  321.                                         </div>
  322.                                     </div><!--end .body -->
  323.                                 </div><!--end .col -->
  324.                             </div><!--end .row -->
  325.                         </div><!--end .card -->
  326.                     </div><!--end .col -->
  327.                     <!-- END SITE ACTIVITY -->
  328.                     
  329.                     <!-- BEGIN SERVER STATUS -->
  330.                     
  331.                     {#{{ dump(so_count_details) }}#}
  332.                     <div class="col-md-3">
  333.                         <div class="card">
  334.                             <div class="header">
  335.                                 <header class="text-primary">Sales Status</header>
  336.                             </div><!--end .header -->
  337.                             <div class="body height-4">
  338.                                 <div class="pull-right text-center">
  339.                                     {% set isNegative=0 %}
  340.                                     {% set currVal=so_count_details.soCount %}
  341.                                     {% set maxVal=so_count_details.nextMax %}
  342.                                     {% if currVal <0 %}
  343.                                         {% set currVal=(-1)*currVal %}
  344.                                         {% set isNegative=1 %}
  345.                                     {% endif %}
  346.                                     
  347.                                     
  348.                                     <em class="text-primary">Orders</em>
  349.                                     <br/>
  350.                                     
  351.                                     <div id="bankStatusKnob"
  352.                                          class="knob knob-shadow {{ isNegative==1?'knob-warning':'knob-primary' }} knob-body-track size-2">
  353.                                         
  354.                                         <input type="text" class="dial" data-min="0"
  355.                                                data-max="{{ maxVal }}"
  356.                                                data-thickness=".09"
  357.                                                value="{{ currVal|number_format(0,'','') }}" data-readOnly=true>
  358.                                     
  359.                                     
  360.                                     </div>
  361.                                 
  362.                                 
  363.                                 </div>
  364.                                 {#<div class="body height-4">#}
  365.                                 {#<div class="pull-right text-center">#}
  366.                                 {#{% set isNegative=0 %}#}
  367.                                 {#{% set knobNumberMarker= monthly_summary_data.companyCashModMarker %}#}
  368.                                 {#{% set currVal=monthly_summary_data.companyCashMod %}#}
  369.                                 {#{% set maxVal=100 %}#}
  370.                                 {#{% if currVal <0 %}#}
  371.                                 {#{% set currVal=(-1)*currVal %}#}
  372.                                 {#{% set isNegative=1 %}#}
  373.                                 {#{% endif %}#}
  374.                                 
  375.                                 
  376.                                 {#<em class="text-primary">Cash <span#}
  377.                                 {#id="cashStatusKnobMarker">{{ knobNumberMarker!=''?'('~knobNumberMarker~')' }}</span></em>#}
  378.                                 {#<br/>#}
  379.                                 
  380.                                 {#<div id="bankStatusKnob"#}
  381.                                 {#class="knob knob-shadow {{ isNegative==1?'knob-warning':'knob-primary' }} knob-body-track size-2">#}
  382.                                 
  383.                                 {#<input type="text" class="dial" data-min="0"#}
  384.                                 {#data-max="{{ knobNumberMarker=='M'?1000:(knobNumberMarker=='K'?1000:1000) }}"#}
  385.                                 {#data-thickness=".09"#}
  386.                                 {#value="{{ currVal|number_format(0,'','') }}" data-readOnly=true>#}
  387.                                 
  388.                                 
  389.                                 {#</div>#}
  390.                                 
  391.                                 
  392.                                 {#</div>#}
  393.                                 
  394.                                 {#<div class="pull-right text-center">#}
  395.                                 {#{% set isNegative=0 %}#}
  396.                                 {#{% set knobNumberMarker= monthly_summary_data.companyBankModMarker %}#}
  397.                                 {#{% set currVal=monthly_summary_data.companyBankMod %}#}
  398.                                 {#{% set maxVal=100 %}#}
  399.                                 {#{% if currVal <0 %}#}
  400.                                 {#{% set currVal=(-1)*currVal %}#}
  401.                                 {#{% set isNegative=1 %}#}
  402.                                 {#{% endif %}#}
  403.                                 
  404.                                 
  405.                                 {#<em class="text-primary">Bank <span#}
  406.                                 {#id="bankStatusKnobMarker">{{ knobNumberMarker!=''?'('~knobNumberMarker~')' }}</span></em>#}
  407.                                 {#<br/>#}
  408.                                 
  409.                                 {#<div id="bankStatusKnob"#}
  410.                                 {#class="knob knob-shadow {{ isNegative==1?'knob-warning':'knob-primary' }} knob-body-track size-2">#}
  411.                                 
  412.                                 {#<input type="text" class="dial" data-min="0"#}
  413.                                 {#data-max="{{ knobNumberMarker=='M'?1000:(knobNumberMarker=='K'?1000:1000) }}"#}
  414.                                 {#data-thickness=".09"#}
  415.                                 {#value="{{ currVal|number_format(0,'','') }}" data-readOnly=true>#}
  416.                                 
  417.                                 
  418.                                 {#</div>#}
  419.                                 
  420.                                 {#</div>#}
  421.                             </div><!--end .body -->
  422.                             <div class="body height-4 no-padding">
  423.                                 <div class="stick-bottom-left-right">
  424.                                     <div id="cashRickshawGraph" class="height-4" data-color1="#0aa89e"
  425.                                          data-color2="rgba(79, 89, 89, 0.2)"></div>
  426.                                     {#<div id="cashRickshawGraph" class="flot height-4" data-title="Sales & Expenses"#}
  427.                                     {#data-color="#0aa89e,rgba(79, 89, 89, 0.2)"></div>#}
  428.                                 </div>
  429.                             </div><!--end .body -->
  430.                         </div><!--end .card -->
  431.                     </div><!--end .col -->
  432.                     <!-- END SERVER STATUS -->
  433.                 
  434.                 </div><!--end .row -->
  435.                 <div class="row clearfix" id="report_mother_div">
  436.                 
  437.                 
  438.                 </div>
  439.                 
  440.                 <div class="row clearfix">
  441.                     <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9">
  442.                         <div class="row clearfix">
  443.                             <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  444.                                 <!-- AREA CHART -->
  445.                                 <div class="card  ">
  446.                                     <div class="header">
  447.                                         <header class="">EXPENSE INFO</header>
  448.                                         <div class="tools">
  449.                                             <a class="btn btn-icon-toggle btn-refresh"><i
  450.                                                         class="zmdi zmdi-refresh"></i></a>
  451.                                             <a class="btn btn-icon-toggle btn-collapse"><i
  452.                                                         class="fa fa-angle-down"></i></a>
  453.                                             <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  454.                                         </div>
  455.                                     
  456.                                     </div>
  457.                                     <div class="body scroll height-14">
  458.                                         {% set expense_data_grouped=monthly_summary_data.expense_data_grouped %}
  459.                                         {% set expense_data_month_list=monthly_summary_data.expense_data_month_list %}
  460.                                         {% set expense_data_by_month=monthly_summary_data.expense_data_by_month %}
  461.                                         {#{{ dump(expense_data_month_list) }}#}
  462.                                         {#{{ dump(expense_data_grouped) }}#}
  463.                                         {#{{ dump(expense_data_by_month) }}#}
  464.                                         {#{{ dump(expense_data_by_month['May'][103]) }}#}
  465.                                         {% if not expense_data_grouped is empty %}
  466.                                             <table class="table table-bordered the_data_table skip_export" style="">
  467.                                                 <thead>
  468.                                                 <tr>
  469.                                                     <th>Expense Type</th>
  470.                                                     <th>Head</th>
  471.                                                     {% for mon in expense_data_month_list %}
  472.                                                         <th>{{ mon }}</th>
  473.                                                     {% endfor %}
  474.                                                 </tr>
  475.                                                 </thead>
  476.                                                 <tbody>
  477.                                                 {% for entry in expense_data_grouped %}
  478.                                                     {% if entry.skip!=1 %}
  479.                                                         <tr>
  480.                                                             <td>{{ entry.group_name }}</td>
  481.                                                             <td>{{ entry.head_name }}</td>
  482.                                                             {% for mon in expense_data_month_list %}
  483.                                                                 {% if entry.value_by_month[mon] is defined %}
  484.                                                                     <th class="trans_amount">{{ entry.value_by_month[mon].amount|number_format(2,'.',',') }}</th>
  485.                                                                 {% else %}
  486.                                                                     <th></th>
  487.                                                                 {% endif %}
  488.                                                             {% endfor %}
  489.                                                         </tr>
  490.                                                     {% endif %}
  491.                                                 
  492.                                                 
  493.                                                 
  494.                                                 {% endfor %}
  495.                                                 </tbody>
  496.                                             </table>
  497.                                         {% endif %}
  498.                                     </div><!-- /.body -->
  499.                                 </div><!-- /.card -->
  500.                             
  501.                             </div><!-- /.col (LEFT) -->
  502.                             <!-- Task Info -->
  503.                             
  504.                             
  505.                             <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
  506.                                 <div class="card">
  507.                                     <div class="header">
  508.                                         <header>FINANCIAL STATUS</header>
  509.                                         <div class="tools">
  510.                                             <a class="btn btn-icon-toggle btn-refresh"><i
  511.                                                         class="zmdi zmdi-refresh"></i></a>
  512.                                             <a class="btn btn-icon-toggle btn-collapse"><i
  513.                                                         class="fa fa-angle-down"></i></a>
  514.                                             <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  515.                                         </div>
  516.                                     
  517.                                     </div>
  518.                                     <div class="body height-8">
  519.                                         <div id="donut_chart" class="dashboard-donut-chart "
  520.                                              style="height: 100%"></div>
  521.                                     </div>
  522.                                 </div>
  523.                             </div>
  524.                             <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
  525.                                 <!-- AREA CHART -->
  526.                                 <div class="card  ">
  527.                                     <div class="header">
  528.                                         <header class="">MONTHLY GROWTH</header>
  529.                                         <div class="tools">
  530.                                             <a class="btn btn-icon-toggle btn-refresh"><i
  531.                                                         class="zmdi zmdi-refresh"></i></a>
  532.                                             <a class="btn btn-icon-toggle btn-collapse"><i
  533.                                                         class="fa fa-angle-down"></i></a>
  534.                                             <a class="btn btn-icon-toggle btn-close"><i
  535.                                                         class="zmdi zmdi-close"></i></a>
  536.                                         </div>
  537.                                     
  538.                                     </div>
  539.                                     <div class="body height-8">
  540.                                         <div class="chart">
  541.                                             <canvas id="areaChart" style=""></canvas>
  542.                                         </div>
  543.                                     </div><!-- /.body -->
  544.                                 </div><!-- /.card -->
  545.                             
  546.                             </div><!-- /.col (LEFT) -->
  547.                         
  548.                         </div>
  549.                     </div>
  550.                     <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 " style="">
  551.                         <div class="row clearfix">
  552.                             <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  553.                                 <div class="card">
  554.                                     <div class="header">
  555.                                         <header>QUICK LINKS</header>
  556.                                         <div class="tools">
  557.                                             {#<a class="btn btn-icon-toggle btn-refresh"><i class="zmdi zmdi-refresh"></i></a>#}
  558.                                             <a class="btn btn-icon-toggle btn-collapse"><i
  559.                                                         class="fa fa-angle-down"></i></a>
  560.                                             <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  561.                                         </div>
  562.                                     
  563.                                     </div>
  564.                                     <div class="body height-14">
  565.                                         {#<div id="donut_chart" class="dashboard-donut-chart"><svg height="265" version="1.1" width="270" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="overflow: hidden; position: relative; left: -0.328125px;"><desc style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Created with Raphaël 2.2.0</desc><defs style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></defs><path fill="none" stroke="#e91e63" d="M135,214.16666666666669A81.66666666666667,81.66666666666667,0,0,0,197.36598314293147,79.77497187236375" stroke-width="2" opacity="0" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); opacity: 0;"></path><path fill="#e91e63" stroke="#ffffff" d="M135,217.16666666666669A84.66666666666667,84.66666666666667,0,0,0,199.65697844205954,77.83813410440976L224.73064921585035,56.64052075513561A117.5,117.5,0,0,1,135,250Z" stroke-width="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path><path fill="none" stroke="#00bcd4" d="M197.36598314293147,79.77497187236375A81.66666666666667,81.66666666666667,0,0,0,66.93689880580898,87.36842900724861" stroke-width="2" opacity="1" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); opacity: 1;"></path><path fill="#00bcd4" stroke="#ffffff" d="M199.65697844205954,77.83813410440976A84.66666666666667,84.66666666666667,0,0,0,64.4366216190836,85.71053456261693L32.90534820871349,64.80264351087293A122.5,122.5,0,0,1,228.5489747143972,53.41245780854564Z" stroke-width="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path><path fill="none" stroke="#ff9800" d="M66.93689880580898,87.36842900724861A81.66666666666667,81.66666666666667,0,0,0,65.44216513257356,175.29196248129173" stroke-width="2" opacity="0" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); opacity: 0;"></path><path fill="#ff9800" stroke="#ffffff" d="M64.4366216190836,85.71053456261693A84.66666666666667,84.66666666666667,0,0,0,62.88697936193341,176.86391212346163L34.92189064992728,194.06802765165443A117.5,117.5,0,0,1,37.07247685325579,67.56580091859239Z" stroke-width="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path><path fill="none" stroke="#009688" d="M65.44216513257356,175.29196248129173A81.66666666666667,81.66666666666667,0,0,0,115.52090387726372,211.80957860615354" stroke-width="2" opacity="0" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); opacity: 0;"></path><path fill="#009688" stroke="#ffffff" d="M62.88697936193341,176.86391212346163A84.66666666666667,84.66666666666667,0,0,0,114.80534524418361,214.72299169780814L106.97395353769576,246.60867942313925A117.5,117.5,0,0,1,34.92189064992728,194.06802765165443Z" stroke-width="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path><path fill="none" stroke="#607d8b" d="M115.52090387726372,211.80957860615354A81.66666666666667,81.66666666666667,0,0,0,134.9743436604178,214.16666263657822" stroke-width="2" opacity="0" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); opacity: 0;"></path><path fill="#607d8b" stroke="#ffffff" d="M114.80534524418361,214.72299169780814A84.66666666666667,84.66666666666667,0,0,0,134.97340118263722,217.1666624885342L134.96308628692765,249.99999420160748A117.5,117.5,0,0,1,106.97395353769576,246.60867942313925Z" stroke-width="3" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path><text x="135" y="122.5" text-anchor="middle" font-family="&quot;Arial&quot;" font-size="15px" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-family: Arial; font-size: 15px; font-weight: 800;" font-weight="800" transform="matrix(1.8561,0,0,1.8561,-115.9895,-114.2841)" stroke-width="0.5387755102040815"><tspan dy="6" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Firefox</tspan></text><text x="135" y="142.5" text-anchor="middle" font-family="&quot;Arial&quot;" font-size="14px" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-family: Arial; font-size: 14px;" transform="matrix(1.7014,0,0,1.7014,-94.682,-94.3368)" stroke-width="0.5877551020408163"><tspan dy="5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">30%</tspan></text></svg></div>#}
  566.                                         
  567.                                         <h5>Quick Entry</h5>
  568.                                         <a href="#" class="btn btn-default waves-effect btn-block"
  569.                                            data-toggle="modal"
  570.                                            data-target="#newExpenseModal">
  571.                                             RECORD EXPENSE
  572.                                         </a>
  573.                                         <a href="#" class="btn btn-block bg-green waves-effect" data-toggle="modal"
  574.                                            data-target="#newPaymentModal">
  575.                                             Make Payment
  576.                                         </a>
  577.                                         <a href="#" class="btn btn-block bg-blue waves-effect" data-toggle="modal"
  578.                                            data-target="#newReceiptModal">
  579.                                             Receive Payment
  580.                                         </a>
  581.                                         
  582.                                         <h5>Lists</h5>
  583.                                         <a href="{{ path('voucher_list') }}"
  584.                                            class="btn btn-block btn-primary bg-grey waves-effect">
  585.                                             Transactions
  586.                                         </a>
  587.                                         <a href="{{ path('check_register') }}"
  588.                                            class="btn btn-block bg-green waves-effect">
  589.                                             Check List
  590.                                         </a>
  591.                                         <a href="{{ path('chart_of_accounts') }}"
  592.                                            class="btn btn-block bg-blue btn-primary waves-effect">
  593.                                             Chart of Accounts
  594.                                         </a>
  595.                                         <h5>Reports</h5>
  596.                                         <a href="{{ path('view_ledger_head') }}"
  597.                                            class="btn btn-block btn-primary bg-grey waves-effect"
  598.                                            data-toggle="modal">
  599.                                             Ledger
  600.                                         </a>
  601.                                         <a href="{{ path('view_trial_balance') }}"
  602.                                            class="btn btn-block bg-green waves-effect">
  603.                                             Trial Balance
  604.                                         </a>
  605.                                         <a href="{{ path('view_financial_report') }}"
  606.                                            class="btn btn-block bg-blue btn-primary waves-effect">
  607.                                             Financial Statements
  608.                                         </a>
  609.                                         {#<button class="btn btn-primary waves-effect">Record Expense</button>#}
  610.                                         {#<button class="btn btn-default waves-effect">Make Payment</button>#}
  611.                                     
  612.                                     </div>
  613.                                 </div>
  614.                             </div>
  615.                             <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
  616.                                 <!-- AREA CHART -->
  617.                                 <div class="card  ">
  618.                                     <div class="header">
  619.                                         <header class="">RECENT SALES</header>
  620.                                         <div class="tools">
  621.                                             
  622.                                             <a class="btn btn-icon-toggle btn-collapse"><i
  623.                                                         class="fa fa-angle-down"></i></a>
  624.                                             <a class="btn btn-icon-toggle btn-close"><i
  625.                                                         class="zmdi zmdi-close"></i></a>
  626.                                         </div>
  627.                                     
  628.                                     </div>
  629.                                     <div class="body height-8">
  630.                                         {% set so_list=''|getRecentSales %}
  631.                                         {#{{ dump(so_list) }}#}
  632.                                         {% if not so_list is empty %}
  633.                                             <table class="table table-striped" style="table-layout: fixed">
  634.                                                 <tbody>
  635.                                                 {% for entry in so_list %}
  636.                                                     <tr>
  637.                                                         <td style="white-space: nowrap;overflow: hidden;">{{ entry.client }}</td>
  638.                                                         <td>{{ entry.date|date('M d') }}</td>
  639.                                                         <td style="text-align: right">{{ entry.so_amount|number_format(0,'.',',') }}</td>
  640.                                                         <!--                                                    <td style="text-align: right;">{{ entry.so_amount|number_format(0,'.',',') }}</td>-->
  641.                                                     </tr>
  642.                                                 {% endfor %}
  643.                                                 </tbody>
  644.                                             </table>
  645.                                         {% endif %}
  646.                                     </div><!-- /.body -->
  647.                                 </div><!-- /.card -->
  648.                             
  649.                             </div>
  650.                         
  651.                         
  652.                         </div>
  653.                     </div>
  654.                     <!-- #END# Browser Usage -->
  655.                 </div>
  656.                 <div class="row " style="display: none;">
  657.                     
  658.                     <!-- BEGIN TODOS -->
  659.                     <div class="col-md-3">
  660.                         <div class="card ">
  661.                             <div class="header">
  662.                                 <header>Todo's</header>
  663.                                 <div class="tools">
  664.                                     <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  665.                                 </div>
  666.                             </div><!--end .header -->
  667.                             <div class="body no-padding height-9 scroll">
  668.                                 <ul class="list" data-sortable="true">
  669.                                     <li class="tile">
  670.                                         <div class="checkbox checkbox-styled tile-text">
  671.                                             <label>
  672.                                                 <input type="checkbox" checked>
  673.                                                 <span>Call clients for follow-up</span>
  674.                                             </label>
  675.                                         </div>
  676.                                         <a class="btn btn-flat ink-reaction btn-default">
  677.                                             <i class="zmdi zmdi-delete"></i>
  678.                                         </a>
  679.                                     </li>
  680.                                     <li class="tile">
  681.                                         <div class="checkbox checkbox-styled tile-text">
  682.                                             <label>
  683.                                                 <input type="checkbox">
  684.                                                 <span>
  685.                                                 Schedule meeting
  686.                                                 <small>opportunity for new customers</small>
  687.                                             </span>
  688.                                             </label>
  689.                                         </div>
  690.                                         <a class="btn btn-flat ink-reaction btn-default">
  691.                                             <i class="zmdi zmdi-delete"></i>
  692.                                         </a>
  693.                                     </li>
  694.                                     <li class="tile">
  695.                                         <div class="checkbox checkbox-styled tile-text">
  696.                                             <label>
  697.                                                 <input type="checkbox">
  698.                                                 <span>
  699.                                                 Upload files to server
  700.                                                 <small>The files must be shared with all members of the board</small>
  701.                                             </span>
  702.                                             </label>
  703.                                         </div>
  704.                                         <a class="btn btn-flat ink-reaction btn-default">
  705.                                             <i class="zmdi zmdi-delete"></i>
  706.                                         </a>
  707.                                     </li>
  708.                                     <li class="tile">
  709.                                         <div class="checkbox checkbox-styled tile-text">
  710.                                             <label>
  711.                                                 <input type="checkbox">
  712.                                                 <span>Forward important tasks</span>
  713.                                             </label>
  714.                                         </div>
  715.                                         <a class="btn btn-flat ink-reaction btn-default">
  716.                                             <i class="zmdi zmdi-delete"></i>
  717.                                         </a>
  718.                                     </li>
  719.                                     <li class="tile">
  720.                                         <div class="checkbox checkbox-styled tile-text">
  721.                                             <label>
  722.                                                 <input type="checkbox">
  723.                                                 <span>Forward important tasks</span>
  724.                                             </label>
  725.                                         </div>
  726.                                         <a class="btn btn-flat ink-reaction btn-default">
  727.                                             <i class="zmdi zmdi-delete"></i>
  728.                                         </a>
  729.                                     </li>
  730.                                     <li class="tile">
  731.                                         <div class="checkbox checkbox-styled tile-text">
  732.                                             <label>
  733.                                                 <input type="checkbox">
  734.                                                 <span>Forward important tasks</span>
  735.                                             </label>
  736.                                         </div>
  737.                                         <a class="btn btn-flat ink-reaction btn-default">
  738.                                             <i class="zmdi zmdi-delete"></i>
  739.                                         </a>
  740.                                     </li>
  741.                                 </ul>
  742.                             </div><!--end .body -->
  743.                         </div><!--end .card -->
  744.                     </div><!--end .col -->
  745.                     <!-- END TODOS -->
  746.                     
  747.                     <!-- BEGIN REGISTRATION HISTORY -->
  748.                     <div class="col-md-6">
  749.                         <div class="card">
  750.                             <div class="header">
  751.                                 <header>Registration history</header>
  752.                                 <div class="tools">
  753.                                     <a class="btn btn-icon-toggle btn-refresh"><i class="zmdi zmdi-refresh"></i></a>
  754.                                     <a class="btn btn-icon-toggle btn-collapse"><i class="fa fa-angle-down"></i></a>
  755.                                     <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  756.                                 </div>
  757.                             </div><!--end .header -->
  758.                             <div class="body no-padding height-9">
  759.                                 <div class="row">
  760.                                     <div class="col-sm-6 hidden-xs">
  761.                                         <div class="force-padding text-sm text-default-light">
  762.                                             <p>
  763.                                                 <i class="zmdi zmdi-mode-comment text-primary-light"></i>
  764.                                                 The registrations are measured from the time that the redesign was
  765.                                                 fully
  766.                                                 implemented and after the first e-mailing.
  767.                                             </p>
  768.                                         </div>
  769.                                     </div><!--end .col -->
  770.                                     <div class="col-sm-6">
  771.                                         <div class="force-padding pull-right text-default-light">
  772.                                             <h2 class="no-margin text-primary-dark"><span
  773.                                                         class="text-xxl">66.05%</span>
  774.                                             </h2>
  775.                                             <i class="fa fa-caret-up text-success fa-fw"></i> more registrations
  776.                                         </div>
  777.                                     </div><!--end .col -->
  778.                                 </div><!--end .row -->
  779.                                 <div class="stick-bottom-left-right force-padding">
  780.                                     <div id="flot-registrations" class="flot height-5"
  781.                                          data-title="Registration history"
  782.                                          data-color="#0aa89e"></div>
  783.                                 </div>
  784.                             </div><!--end .body -->
  785.                         </div><!--end .card -->
  786.                     </div><!--end .col -->
  787.                     <!-- END REGISTRATION HISTORY -->
  788.                     
  789.                     <!-- BEGIN NEW REGISTRATIONS -->
  790.                     <div class="col-md-3">
  791.                         <div class="card">
  792.                             <div class="header">
  793.                                 <header>New registrations</header>
  794.                                 <div class="tools hidden-md">
  795.                                     <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a>
  796.                                 </div>
  797.                             </div><!--end .header -->
  798.                             <div class="body no-padding height-9 scroll">
  799.                                 <ul class="list divider-full-bleed">
  800.                                     <li class="tile">
  801.                                         <div class="tile-content">
  802.                                             <div class="tile-icon">
  803.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar9463a.jpg?1422538626"
  804.                                                      alt=""/>
  805.                                             </div>
  806.                                             <div class="tile-text">Ann Laurens</div>
  807.                                         </div>
  808.                                         <a class="btn btn-flat ink-reaction">
  809.                                             <i class="zmdi zmdi-block text-default-light"></i>
  810.                                         </a>
  811.                                     </li>
  812.                                     <li class="tile">
  813.                                         <div class="tile-content">
  814.                                             <div class="tile-icon">
  815.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar42dba.jpg?1422538625"
  816.                                                      alt=""/>
  817.                                             </div>
  818.                                             <div class="tile-text">Alex Nelson</div>
  819.                                         </div>
  820.                                         <a class="btn btn-flat ink-reaction">
  821.                                             <i class="zmdi zmdi-block text-default-light"></i>
  822.                                         </a>
  823.                                     </li>
  824.                                     <li class="tile">
  825.                                         <div class="tile-content">
  826.                                             <div class="tile-icon">
  827.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar114335.jpg?1422538623"
  828.                                                      alt=""/>
  829.                                             </div>
  830.                                             <div class="tile-text">Mary Peterson</div>
  831.                                         </div>
  832.                                         <a class="btn btn-flat ink-reaction">
  833.                                             <i class="zmdi zmdi-block text-default-light"></i>
  834.                                         </a>
  835.                                     </li>
  836.                                     <li class="tile">
  837.                                         <div class="tile-content">
  838.                                             <div class="tile-icon">
  839.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar7463a.jpg?1422538626"
  840.                                                      alt=""/>
  841.                                             </div>
  842.                                             <div class="tile-text">Philip Ericsson</div>
  843.                                         </div>
  844.                                         <a class="btn btn-flat ink-reaction">
  845.                                             <i class="zmdi zmdi-block text-default-light"></i>
  846.                                         </a>
  847.                                     </li>
  848.                                     <li class="tile">
  849.                                         <div class="tile-content">
  850.                                             <div class="tile-icon">
  851.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar8463a.jpg?1422538626"
  852.                                                      alt=""/>
  853.                                             </div>
  854.                                             <div class="tile-text">Jim Peters</div>
  855.                                         </div>
  856.                                         <a class="btn btn-flat ink-reaction">
  857.                                             <i class="zmdi zmdi-block text-default-light"></i>
  858.                                         </a>
  859.                                     </li>
  860.                                     <li class="tile">
  861.                                         <div class="tile-content">
  862.                                             <div class="tile-icon">
  863.                                                 <img src="codecovers/assets/img/modules/materialadmin/avatar2666b.jpg?1422538624"
  864.                                                      alt=""/>
  865.                                             </div>
  866.                                             <div class="tile-text">Jessica Cruise</div>
  867.                                         </div>
  868.                                         <a class="btn btn-flat ink-reaction">
  869.                                             <i class="zmdi zmdi-block text-default-light"></i>
  870.                                         </a>
  871.                                     </li>
  872.                                 </ul>
  873.                             </div><!--end .body -->
  874.                         </div><!--end .card -->
  875.                     </div><!--end .col -->
  876.                     <!-- END NEW REGISTRATIONS -->
  877.                 
  878.                 </div><!--end .row -->
  879.                 
  880.                 <div class="row" style="display: none;">
  881.                     
  882.                     <!-- BEGIN ALERT - REVENUE -->
  883.                     <div class="col-md-3 col-sm-6">
  884.                         <div class="card">
  885.                             <div class="body no-padding">
  886.                                 <div class="alert alert-callout alert-info no-margin">
  887.                                     <strong class="pull-right text-success text-lg">0,38% <i
  888.                                                 class="zmdi zmdi-trending-up"></i></strong>
  889.                                     <strong class="text-xl">$ 32,829</strong><br/>
  890.                                     <span class="opacity-50">Revenue</span>
  891.                                     <div class="stick-bottom-left-right">
  892.                                         <div class="height-2 sparkline-revenue" data-line-color="#bdc1c1"></div>
  893.                                     </div>
  894.                                 </div>
  895.                             </div><!--end .body -->
  896.                         </div><!--end .card -->
  897.                     </div><!--end .col -->
  898.                     <!-- END ALERT - REVENUE -->
  899.                     
  900.                     <!-- BEGIN ALERT - VISITS -->
  901.                     <div class="col-md-3 col-sm-6">
  902.                         <div class="card">
  903.                             <div class="body no-padding">
  904.                                 <div class="alert alert-callout alert-warning no-margin">
  905.                                     <strong class="pull-right text-warning text-lg">0,01% <i
  906.                                                 class="zmdi zmdi-swap-vertical"></i></strong>
  907.                                     <strong class="text-xl">432,901</strong><br/>
  908.                                     <span class="opacity-50">Visits</span>
  909.                                     <div class="stick-bottom-right">
  910.                                         <div class="height-1 sparkline-visits" data-bar-color="#e5e6e6"></div>
  911.                                     </div>
  912.                                 </div>
  913.                             </div><!--end .body -->
  914.                         </div><!--end .card -->
  915.                     </div><!--end .col -->
  916.                     <!-- END ALERT - VISITS -->
  917.                     
  918.                     <!-- BEGIN ALERT - BOUNCE RATES -->
  919.                     <div class="col-md-3 col-sm-6">
  920.                         <div class="card">
  921.                             <div class="body no-padding">
  922.                                 <div class="alert alert-callout alert-danger no-margin">
  923.                                     <strong class="pull-right text-danger text-lg">0,18% <i
  924.                                                 class="zmdi zmdi-trending-down"></i></strong>
  925.                                     <strong class="text-xl">42.90%</strong><br/>
  926.                                     <span class="opacity-50">Bounce rate</span>
  927.                                     <div class="stick-bottom-left-right">
  928.                                         <div class="progress progress-hairline no-margin">
  929.                                             <div class="progress-bar progress-bar-danger" style="width:43%"></div>
  930.                                         </div>
  931.                                     </div>
  932.                                 </div>
  933.                             </div><!--end .body -->
  934.                         </div><!--end .card -->
  935.                     </div><!--end .col -->
  936.                     <!-- END ALERT - BOUNCE RATES -->
  937.                     
  938.                     <!-- BEGIN ALERT - TIME ON SITE -->
  939.                     <div class="col-md-3 col-sm-6">
  940.                         <div class="card">
  941.                             <div class="body no-padding">
  942.                                 <div class="alert alert-callout alert-success no-margin">
  943.                                     <h1 class="pull-right text-success"><i class="zmdi zmdi-timer"></i></h1>
  944.                                     <strong class="text-xl">54 sec.</strong><br/>
  945.                                     <span class="opacity-50">Avg. time on site</span>
  946.                                 </div>
  947.                             </div><!--end .body -->
  948.                         </div><!--end .card -->
  949.                     </div><!--end .col -->
  950.                     <!-- END ALERT - TIME ON SITE -->
  951.                 
  952.                 </div><!--end .row -->
  953.             
  954.             </div><!--end .section-body -->
  955.         </section>
  956.     
  957.     </div>
  958.     <!--end #content-->
  959.     <!-- END CONTENT -->
  960. </div>
  961. {% include '@System/pages/modals/approve_document_modal.html.twig' %}
  962. <script type="text/javascript" src="{{ absolute_url(path('dashboard')) }}ckeditor/ckeditor.js"></script>
  963. <script type="text/javascript" src="{{ absolute_url(path('dashboard')) }}ckeditor/adapters/jquery.js"></script>
  964. {% include '@Application/modals/input_forms/generic_ck_editor_modal.html.twig' %}
  965. <!--end #base-->
  966. <!-- END BASE -->
  967. {% include '@Application/footer/footer_js_codecovers.html.twig' %}
  968. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/jquery.flot.min.js"></script>
  969. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/jquery.flot.time.min.js"></script>
  970. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/jquery.flot.resize.min.js"></script>
  971. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/jquery.flot.orderBars.js"></script>
  972. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/jquery.flot.pie.js"></script>
  973. <script src="codecovers/assets/js/modules/materialadmin/libs/flot/curvedLines.js"></script>
  974. <script src="codecovers/assets/js/modules/materialadmin/libs/jquery-knob/jquery.knob.min.js"></script>
  975. <script src="codecovers/assets/js/modules/materialadmin/libs/sparkline/jquery.sparkline.min.js"></script>
  976. {#<script src="codecovers/assets/js/modules/materialadmin/libs/nanoscroller/jquery.nanoscroller.min.js"></script>#}
  977. <script src="codecovers/assets/js/modules/materialadmin/libs/d3/d3.min.js"></script>
  978. <script src="codecovers/assets/js/modules/materialadmin/libs/d3/d3.v3.js"></script>
  979. <script src="codecovers/assets/js/modules/materialadmin/libs/rickshaw/rickshaw.min.js"></script>
  980. {#<script src="codecovers/assets/js/modules/materialadmin/core/source/App.js"></script>#}
  981.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppNavigation.js"></script>#}
  982.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppOffcanvas.js"></script>#}
  983.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppCard.js"></script>#}
  984.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppForm.js"></script>#}
  985.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppNavSearch.js"></script>#}
  986.     {#<script src="codecovers/assets/js/modules/materialadmin/core/source/AppVendor.js"></script>#}
  987.     {#<script src="codecovers/assets/js/modules/materialadmin/core/demo/DemoNote.js"></script>#}
  988. <script src="codecovers/assets/js/modules/materialadmin/core/demo/DemoDashboard.js"></script>
  989. {% include '@Application/modals/input_forms/add_payment.html.twig' %}
  990. {% include '@Application/modals/input_forms/add_expense.html.twig' %}
  991. {% include '@Application/modals/input_forms/add_receipt.html.twig' %}
  992. {% include '@Application/codecovers_footer.html.twig' %}
  993. <script src="{{ absolute_url(path('dashboard')) }}js/Chart.js?version={{ constant('ApplicationBundle\\Constants\\GeneralConstant::ENTITY_APP_VERSION') }}"></script>
  994. <script src="{{ absolute_url(path('dashboard')) }}js/adminbsb/plugins/raphael/raphael.min.js"></script>
  995. <script src="{{ absolute_url(path('dashboard')) }}js/adminbsb/plugins/morrisjs/morris.js"></script>
  996. <script src="{{ absolute_url(path('dashboard')) }}js/adminbsb/plugins/jquery-countto/jquery.countTo.js"></script>
  997. <link rel="stylesheet" type="text/css"
  998.       href="{{ absolute_url(path('dashboard')) }}js/adminbsb/plugins/waitme/waitMe.css"/>
  999. <script src="{{ absolute_url(path('dashboard')) }}js/adminbsb/plugins/waitme/waitMe.js"></script>
  1000. <script src="{{ absolute_url(path('dashboard')) }}condensed_assets/dashboard_functions.js"></script>
  1001. <script>
  1002.     
  1003.     {#var summary_data={{ ''|getMonthlySummary|json_encode|raw() }}#}
  1004.     var summary_data ={{ monthly_summary_data|json_encode|raw() }}
  1005.     var dashboardDataForUser ={{ dashboardDataForUser|json_encode|raw() }}
  1006.     {#var summary_data={{ ''|getMonthlySummary }}#}
  1007.     var areaChartData = {
  1008. //        labels: ["January", "February", "March", "April", "May", "June", "July"],
  1009.         labels: summary_data.monthList,
  1010.         datasets: [
  1011.             {
  1012.                 label: "Monthly Growth",
  1013.                 borderColor: 'rgba(255,255,255, 0.75)',
  1014.                 backgroundColor: 'rgba(255, 114, 84, 0.2)',
  1015.                 pointBorderColor: 'rgba(255, 188, 212, 0)',
  1016.                 pointBackgroundColor: 'rgba(255, 188, 212, 0.9)',
  1017.                 pointBorderWidth: 1,
  1018. //                data: [65, 59, 80, 81, 56, 55, 40]
  1019.                 data: summary_data.monGrowth
  1020.             },
  1021. //            {
  1022. //                label: "Expense",
  1023. //                fillColor: "rgba(60,141,188,0.9)",
  1024. //                strokeColor: "rgba(60,141,188,0.8)",
  1025. //                pointColor: "#3b8bba",
  1026. //                pointStrokeColor: "rgba(60,141,188,1)",
  1027. //                pointHighlightFill: "#fff",
  1028. //                pointHighlightStroke: "rgba(60,141,188,1)",
  1029. ////                data: [28, 48, 40, 19, 86, 27, 90]
  1030. //                data: summary_data.expense
  1031. //            }
  1032.         ]
  1033.     };
  1034.     var barChartData = {
  1035. //        labels: ["January", "February", "March", "April", "May", "June", "July"],
  1036.         labels: summary_data.monthList,
  1037.         datasets: [
  1038.             {
  1039.                 label: "Revenue",
  1040.                 borderColor: 'rgba(255,255,255, 0.75)',
  1041.                 backgroundColor: 'rgba(1, 114, 84, 0.8)',
  1042.                 pointBorderColor: 'rgba(0, 188, 212, 0)',
  1043.                 pointBackgroundColor: 'rgba(0, 188, 212, 0.9)',
  1044.                 pointBorderWidth: 1,
  1045. //                data: [65, 59, 80, 81, 56, 55, 40]
  1046.                 data: summary_data.revenue
  1047.             },
  1048.             {
  1049.                 label: "Expense",
  1050.                 borderColor: 'rgba(0, 188, 212, 0.75)',
  1051.                 backgroundColor: 'rgba(217, 41, 41, 0.8)',
  1052.                 pointBorderColor: 'rgba(0, 188, 212, 0)',
  1053.                 pointBackgroundColor: 'rgba(0, 188, 212, 0.9)',
  1054.                 pointBorderWidth: 1,
  1055. //                data: [28, 48, 40, 19, 86, 27, 90]
  1056.                 data: summary_data.expense
  1057.             }
  1058.         ]
  1059.     };
  1060.     var loading_by_id = [];
  1061.     var box_data =
  1062.         {
  1063.             info: {
  1064.                 name: 'Sales Report',
  1065.                 reportType: 'sales_by_client',
  1066.                 reportSeparator: 1
  1067.             },
  1068.             functionSettings: {
  1069.                 reportGenerator: 'SalesReport', //function name
  1070.                 route: 'sales_report', //post route
  1071.             },
  1072.             querySettings: {
  1073.                 filterData: {
  1074.                     //variables and values here
  1075.                     clientId: [],
  1076.                     clientTypeId: [],
  1077.                     salesPersonId: [],
  1078.                     supervisorId: [],
  1079.                     regionLevelId: [],
  1080.                     regionId: [],
  1081.                     geographicalRegionLevelId: [],
  1082.                     geographicalRegionId: []
  1083.                 },
  1084.                 columnSelector: ['invoice_amount'],
  1085. //            columnSelector: ['invoice_amount','received_amount',],
  1086. //            columnSelector: ['invoice_amount','due_amount','received_amount','order_amount'],
  1087.                 nonUniqueColumnSelector: [],
  1088.                 periodData: {
  1089. //                type: '_during_', //_during_, _by_chunk_, _quarterly_, _weekly_,_monthly_,_yearly_,_last_month_,_last_year_,_today_,_yesterday_ etc
  1090.                     type: '_by_chunk_', //_during_, _by_chunk_, _quarterly_, _weekly_,_monthly_,_yearly_,_last_month_,_last_year_,_today_,_yesterday_ etc
  1091.                     startDate: '',
  1092.                     endDate: '{{ ''|date('Y-m-d') }}',
  1093.                     periodSeparator: '_month_',// like _month_  _year_ _quarterly
  1094.                     periodValue: 12, // for by chunks
  1095.                     periodValueType: '_month_' // for by chunks _month_ , _year_ etc ( eg. 3 months)
  1096.                 }
  1097.             },
  1098.             //query Output
  1099.             queryOutput: {},
  1100.             queryColumnAdditionalData: {},
  1101.             periodSeparatorColumnData: {},
  1102.             queryUniqueColumn: '',
  1103.             queryUniqueField: '',
  1104.             //data for renderer
  1105.             rendererSettings: {},
  1106.             result: {},
  1107.             output: {
  1108.                 format: [
  1109.                     {
  1110.                         type: 'list',
  1111.                         subType: 'table'
  1112.                     },
  1113.                     {
  1114.                         type: 'chart',
  1115.                         subType: 'bar'
  1116.                     }
  1117.                 ], //or chart or infobox
  1118.                 data: [],
  1119.                 type: 'dashboard',//or print or dashboard
  1120.                 generateRowDiv: 0,
  1121.                 generateColDiv: 0,
  1122.                 generateCardDiv: 0,
  1123.                 rowDivClass: '',
  1124.                 colDivClass: 'col-lg-3 col-md-3 col-sm-12 col-xs-12',
  1125.                 cardDivClass: '',
  1126.                 divUniqueId: '1009' /// card id will be report_card_1009, col id will be report_col_1009 row will be row_1009
  1127.             },
  1128.             refreshInterval: 0
  1129.         };
  1130.     var last_report_list_index = 0;
  1131.     function load_data_box() {
  1132.         if (typeof dashboardDataForUser[last_report_list_index] === 'undefined')
  1133.             return;
  1134.         var reportConfig = dashboardDataForUser[last_report_list_index].widgetData;
  1135. //        loading_by_id[reportConfig.output.divUniqueId] = $('#report_card_' + reportConfig.output.divUniqueId).waitMe({
  1136. //            effect: 'timer',
  1137. //            text: 'Loading...',
  1138. //            bg: 'rgba(255,255,255,0.90)',
  1139. //            color: '#555'
  1140. //        });
  1141.         //    console.log(reportConfig)
  1142.         jQuery.post(BaseURL + "sales_report", {
  1143.             //            pids: ServiceIDs
  1144.             reportConfig: reportConfig,
  1145.             returnJson: 1,
  1146.         }, function (data) {
  1147.             //    console.log(data);
  1148.             var gottenReportConfig = data.reportConfig;
  1149.             var div_unique_id = gottenReportConfig.output.divUniqueId;
  1150.             var report_title = gottenReportConfig.output.title;
  1151.             var report_type_title = gottenReportConfig.output.reportTypeTitle;
  1152.             var report_period_title = gottenReportConfig.output.periodTitle;
  1153.             $('#report_body_' + div_unique_id).html(data.renderedReport);
  1154.             $('#report_type_title_' + div_unique_id).text(report_type_title);
  1155.             //    console.log($('#report_period_title_' + div_unique_id).html())
  1156.             //    console.log($('#report_period_title_' + div_unique_id).text())
  1157.             $('#report_period_title_' + div_unique_id).text(report_period_title);
  1158.             //    console.log(report_period_title)
  1159.             loading_by_id[div_unique_id].waitMe('hide');
  1160. //            //    console.log('#report_body_' + div_unique_id +'.scroll')
  1161. //            //    console.log($('#report_body_' + div_unique_id +'.scroll'))
  1162.             materialadmin.AppVendor.addScroller($('#report_body_' + div_unique_id + '.scroll'));
  1163. //            $('#report_body_' + div_unique_id +'.scroll').nanoScroller();
  1164.             //now load next report
  1165.             last_report_list_index++;
  1166.             load_data_box();
  1167.             if (gottenReportConfig.refreshInterval != 0) {
  1168. //                alert(gottenReportConfig.refreshInterval)
  1169. //                setTimeout(function(gottenReportConfig) { load_data_box(gottenReportConfig); }, 1*gottenReportConfig.refreshInterval);
  1170. //                setTimeout(load_data_box(gottenReportConfig), 60000);
  1171.             }
  1172.         });
  1173.     }
  1174.     function check_and_generate_dashboard_report() {
  1175.         var mother_div = $('#report_mother_div');
  1176.         var unique_id = '112'
  1177.         for (var j = 0; j < dashboardDataForUser.length; j++) {
  1178.             var div_unique_id = unique_id + '_' + j;
  1179. //            alert(div_unique_id)
  1180.             //create the col and card
  1181.             //data-loading-effect="timer"
  1182.             var sizeTiny = 1 * dashboardDataForUser[j].widgetSizeTiny;
  1183.             var sizeSmall = 1 * dashboardDataForUser[j].widgetSizeSmall;
  1184.             var sizeMedium = 1 * dashboardDataForUser[j].widgetSizeMedium;
  1185.             var sizeLarge = 1 * dashboardDataForUser[j].widgetSizeLarge;
  1186. //            alert(sizeMedium)
  1187.             var sizestr = '';
  1188.             sizestr += sizeTiny > 0 ? (' col-xs-' + sizeTiny) : '';
  1189.             sizestr += sizeSmall > 0 ? (' col-sm-' + sizeSmall) : '';
  1190.             sizestr += sizeMedium > 0 ? (' col-md-' + sizeMedium) : '';
  1191.             sizestr += sizeLarge > 0 ? (' col-lg-' + sizeLarge) : '';
  1192.             if (sizestr == '')
  1193.                 sizestr = "col-lg-3 col-md-3 col-sm-6 col-xs-12";
  1194. //            alert(sizestr)
  1195.             var html = '<div class="' + sizestr + '" id="report_col_' + div_unique_id + '" > <div class="card " id="report_card_' + div_unique_id + '">' +
  1196.                 '<div class="header style-primary-dark">' +
  1197.                 '<header><span style="text-transform: uppercase"  id="report_type_title_' + div_unique_id + '">REPORT</span><br><small style="line-height: 31px;" id="report_period_title_' + div_unique_id + '">Waiting to Load.</small></header>' +
  1198.                 ' <div class="tools"> <a class="btn btn-icon-toggle btn-refresh"><i class="zmdi zmdi-refresh"></i></a> <a class="btn btn-icon-toggle btn-collapse"><i class="fa fa-angle-down"></i></a> <a class="btn btn-icon-toggle btn-close"><i class="zmdi zmdi-close"></i></a> </div>' +
  1199.                 //                    '<ul class="header-dropdown m-r--5"><li><a href="javascript:void(0);" data-toggle="cardloading" data-loading-effect="timer"><i class="material-icons">loop</i></a></li></ul>' +
  1200.                 '</div>' +
  1201.                 '<div class="body height-8 scroll style-default-bright" id="report_body_' + div_unique_id + '">' +
  1202.                 '</div>' +
  1203.                 '</div>' +
  1204.                 '</div>';
  1205.             mother_div.append(html);
  1206.             var reportConfig = dashboardDataForUser[j].widgetData;
  1207.             reportConfig.output.divUniqueId = div_unique_id;
  1208.             reportConfig.refreshInterval = dashboardDataForUser[j].refreshInterval;
  1209.             dashboardDataForUser[j].widgetData = reportConfig;
  1210.             loading_by_id[reportConfig.output.divUniqueId] = $('#report_card_' + reportConfig.output.divUniqueId).waitMe({
  1211.                 effect: 'timer',
  1212.                 text: 'Loading...',
  1213.                 bg: 'rgba(255,255,255,0.90)',
  1214.                 color: '#555'
  1215.             });
  1216. //            load_data_box(reportConfig);
  1217.         }
  1218.         last_report_list_index = 0;
  1219.         load_data_box();
  1220.     }
  1221.     function abbreviateNumber(number) {
  1222.         var SI_POSTFIXES = ["", "k", "M", "G", "T", "P", "E"];
  1223.         var tier = Math.log10(Math.abs(number)) / 3 | 0;
  1224.         if (tier == 0) return number;
  1225.         var postfix = SI_POSTFIXES[tier];
  1226.         var scale = Math.pow(10, tier * 3);
  1227.         var scaled = number / scale;
  1228.         var formatted = scaled.toFixed(1) + '';
  1229.         if (/\.0$/.test(formatted))
  1230.             formatted = formatted.substr(0, formatted.length - 2);
  1231.         return formatted + postfix;
  1232.     }
  1233.     jQuery(document).ready(function () {
  1234. //            materialadmin.DemoDashboard._initSparklines();
  1235. //            materialadmin.DemoDashboard._initFlotVisitors();
  1236.         //this._generateFlotChart();
  1237. //            materialadmin.DemoDashboard._initRickshaw();
  1238.         materialadmin.DemoDashboard._initKnob();
  1239. //            materialadmin.DemoDashboard._initFlotRegistration();
  1240.         materialadmin.App.callOnResize(function () {
  1241.             var options = $('.revenue-tm-sparkline').data();
  1242.             options.type = 'line';
  1243.             options.width = '100%';
  1244.             options.height = $('.revenue-tm-sparkline').height() + 'px';
  1245.             options.fillColor = false;
  1246.             $('.revenue-tm-sparkline').sparkline(summary_data.revenue, options);
  1247.         });
  1248.         materialadmin.App.callOnResize(function () {
  1249.             var options = $('.nw-tm-sparkline').data();
  1250.             options.type = 'line';
  1251.             options.width = '100%';
  1252.             options.height = $('.nw-tm-sparkline').height() + 'px';
  1253.             options.fillColor = false;
  1254.             $('.nw-tm-sparkline').sparkline(summary_data.netWorth, options);
  1255.         });
  1256.         materialadmin.App.callOnResize(function () {
  1257.             var options = $('.mg-tm-sparkline').data();
  1258.             options.type = 'line';
  1259.             options.width = '100%';
  1260.             options.height = $('.mg-tm-sparkline').height() + 'px';
  1261.             options.fillColor = false;
  1262.             $('.mg-tm-sparkline').sparkline(summary_data.monGrowth, options);
  1263.         });
  1264.         //    console.log(summary_data.tsCommaRevenue)
  1265.         //    console.log(JSON.stringify(summary_data.tsCommaRevenue))
  1266.         //    console.log(summary_data.tsCommaExpense)
  1267.         //    console.log(JSON.stringify(summary_data.tsCommaExpense))
  1268.         var chart_obj = $('#rev_exp_chart')
  1269.         var labelColor = chart_obj.css('color');
  1270.         materialadmin.DemoDashboard._generateFlotChart('#rev_exp_chart',
  1271.             [
  1272.                 {
  1273.                     label: 'Revenue',
  1274.                     data: summary_data.tsCommaRevenue,
  1275.                     last: true
  1276.                 },
  1277.                 {
  1278.                     label: 'Expense',
  1279.                     data: summary_data.tsCommaExpense,
  1280.                     last: true
  1281.                 }
  1282.             ],
  1283.             {
  1284.                 colors: chart_obj.data('color').split(','),
  1285.                 series: {
  1286.                     shadowSize: 0,
  1287.                     lines: {
  1288.                         show: true,
  1289.                         lineWidth: false,
  1290.                         fill: true
  1291.                     },
  1292.                     curvedLines: {
  1293.                         apply: true,
  1294.                         active: true,
  1295.                         monotonicFit: false
  1296.                     }
  1297.                 },
  1298.                 legend: {
  1299.                     container: $('#rev_exp_chart_legend')
  1300.                 },
  1301.                 xaxis: {
  1302.                     mode: "time",
  1303. //                        timeformat: "%d %b",
  1304.                     timeformat: "%b",
  1305.                     font: {color: labelColor}
  1306.                 },
  1307.                 yaxis: {
  1308.                     font: {color: labelColor}
  1309.                 },
  1310.                 grid: {
  1311.                     borderWidth: 0,
  1312.                     color: labelColor,
  1313.                     hoverable: true
  1314.                 }
  1315.             }
  1316.         );
  1317. //        generate_cash_bank_rickshaw_chart([summary_data.tsCommaCashObj, summary_data.tsCommaBankObj])
  1318.         {#generate_cash_bank_rickshaw_chart([{{  so_count_details.soCountRickshawData|json_encode|raw }}])#}
  1319.         generate_cash_bank_rickshaw_chart({{  so_count_details.soCountRickshawData|json_encode|raw }})
  1320. //        var chart_obj=$('#cashRickshawGraph')
  1321. //        var labelColor = chart_obj.css('color');
  1322. //        materialadmin.DemoDashboard._generateFlotChart('#cashRickshawGraph',
  1323. //                [
  1324. //                    {
  1325. //                        label: 'Cash',
  1326. //                        data: summary_data.tsCommaCash,
  1327. //                        last: true
  1328. //                    },
  1329. //                    {
  1330. //                        label: 'Bank',
  1331. //                        data: summary_data.tsCommaBank,
  1332. //                        last: true
  1333. //                    }
  1334. //                ],
  1335. //                {
  1336. //                    colors: chart_obj.data('color').split(','),
  1337. //                    series: {
  1338. //                        shadowSize: 0,
  1339. //                        lines: {
  1340. //                            show: true,
  1341. //                            lineWidth: false,
  1342. //                            fill: true
  1343. //                        },
  1344. //                        curvedLines: {
  1345. //                            apply: true,
  1346. //                            active: true,
  1347. //                            monotonicFit: false
  1348. //                        }
  1349. //                    },
  1350. //                    legend: {
  1351. //                        show:false,
  1352. ////                        container: $('#rev_exp_chart_legend')
  1353. //                    },
  1354. //                    xaxis: {
  1355. //                        mode: "time",
  1356. //                        show:false,
  1357. ////                        timeformat: "%d %b",
  1358. //                        tickLength:0,
  1359. //                        timeformat: "%b",
  1360. //                        font: {color: labelColor}
  1361. //                    },
  1362. //                    yaxis: {
  1363. //                        font: {color: labelColor},
  1364. //                        tickLength:0,
  1365. //                        show:false,
  1366. //                    },
  1367. //                    grid: {
  1368. //                        borderWidth: 0,
  1369. //                        color: labelColor,
  1370. //                        hoverable: true
  1371. //                    }
  1372. //                }
  1373. //        );
  1374.         $(document).on('click', '#report_mother_div .card .header .tools .btn-refresh', function (e) {
  1375.             var card = $(e.currentTarget).closest('.card');
  1376.             materialadmin.AppCard.addCardLoader(card);
  1377.             setTimeout(function () {
  1378.                 materialadmin.AppCard.removeCardLoader(card);
  1379.             }, 1500);
  1380.         });
  1381.         $(document).on('click', '#report_mother_div .card .header .tools .btn-collapse', function (e) {
  1382.             var card = $(e.currentTarget).closest('.card');
  1383.             materialadmin.AppCard.toggleCardCollapse(card);
  1384.         });
  1385.         $(document).on('click', '#report_mother_div .card .header .tools .btn-close', function (e) {
  1386.             var card = $(e.currentTarget).closest('.card');
  1387.             materialadmin.AppCard.removeCard(card);
  1388.         });
  1389.         $(document).on('click', '#report_mother_div .card .header .tools .menu-card-styling a', function (e) {
  1390. //            o._handleCardStyling(e);
  1391.         });
  1392.         $(document).ajaxStart(function () {
  1393.             //$( ".log" ).text( "Triggered ajaxStart handler." );
  1394.             $("#ajax_loader_here").show();
  1395.         });
  1396.         $(document).ajaxComplete(function () {
  1397.             //$( ".log" ).text( "Triggered ajaxStart handler." );
  1398.             $("#ajax_loader_here").hide();
  1399.         });
  1400.         $('.pending_task_trigger').click(function () {
  1401. //            $('.pending_task_div').show('slow')
  1402.             $('.pending_task_div').toggle('slow')
  1403.         })
  1404.         $('.count-to').countTo(
  1405.         );
  1406.         $('.count-to-amount').countTo(
  1407.             {
  1408.                 formatter: function (value, options) {
  1409. //                        value=value.split('৳')[1];
  1410. //                        return '৳' + value.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, ',');
  1411. //                        //    console.log(value)
  1412. //                        //    console.log('৳' + value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'))
  1413. //                        return '৳' + value.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
  1414. //                        return '৳ ' + abbreviateNumber(value.toFixed(0));
  1415.                     return abbreviateNumber(value.toFixed(0));
  1416.                 }
  1417.             }
  1418.         );
  1419.         $('.count-to-percentage').countTo(
  1420.             {
  1421.                 formatter: function (value, options) {
  1422. //                        value=value.split('৳')[1];
  1423. //                        return '৳' + value.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, ',');
  1424. //                        //    console.log(value)
  1425. //                        //    console.log('৳' + value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'))
  1426. //                        return '৳' + value.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
  1427. //                        return '৳ ' + abbreviateNumber(value.toFixed(0));
  1428.                     return abbreviateNumber(value.toFixed(0)) + '%';
  1429.                 }
  1430.             }
  1431.         );
  1432.         //Sales count to
  1433.         $('.sales-count-to').countTo({
  1434.             formatter: function (value, options) {
  1435.                 return '$' + value.toFixed(0).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, ' ').replace('.', ',');
  1436.             }
  1437.         });
  1438. //        setTimeout(check_and_generate_dashboard_report, 5000);
  1439.         check_and_generate_dashboard_report();
  1440.     })
  1441.     ////    console.log(JSON.stringify(box_data))
  1442. </script>
  1443. {% verbatim %}
  1444.     <script>
  1445.         $(function () {
  1446.             function initDonutChart() {
  1447.                 window.my_don = Morris.Donut({
  1448.                     element: 'donut_chart',
  1449.                     data: [{
  1450.                         label: 'ASSET',
  1451.                         value: summary_data.assetPercentage
  1452.                     }, {
  1453.                         label: 'LIABILITY',
  1454.                         value: summary_data.liabilityPercentage
  1455.                     }, {
  1456.                         label: 'INCOME',
  1457.                         value: summary_data.incomePercentage
  1458.                     }, {
  1459.                         label: 'EXPENSE',
  1460.                         value: summary_data.expensePercentage
  1461.                     }
  1462.                     ],
  1463.                     colors: ['rgb(233, 30, 99)', 'rgb(0, 188, 212)', 'rgb(255, 152, 0)', 'rgb(0, 150, 136)'],
  1464.                     formatter: function (y) {
  1465.                         return y + '%'
  1466.                     },
  1467.                     resize: true
  1468.                 });
  1469.                 $(window).on("resize", function () {
  1470.                     my_don.redraw();
  1471.                 });
  1472.             }
  1473.             initDonutChart()
  1474.             function getChartJs(type) {
  1475.                 var config = null;
  1476.                 if (type === 'line') {
  1477.                     config = {
  1478.                         type: 'line',
  1479.                         data: areaChartData,
  1480.                         options: {
  1481.                             responsive: true,
  1482.                             legend: {
  1483.                                 display: true,
  1484.                                 labels: {
  1485.                                     fontColor: '#333'
  1486.                                 }
  1487.                             }
  1488.                         }
  1489.                     }
  1490.                 }
  1491.                 else if (type === 'bar') {
  1492.                     //    console.log(barChartData)
  1493.                     config = {
  1494.                         type: 'bar',
  1495.                         data: barChartData,
  1496.                         options: {
  1497.                             responsive: true,
  1498.                             legend: {
  1499.                                 display: true,
  1500.                                 labels: {
  1501.                                     fontColor: '#333'
  1502.                                 }
  1503.                             }
  1504.                         }
  1505.                     }
  1506.                 }
  1507.                 else if (type === 'radar') {
  1508.                     config = {
  1509.                         type: 'radar',
  1510.                         data: {
  1511.                             labels: ["January", "February", "March", "April", "May", "June", "July"],
  1512.                             datasets: [{
  1513.                                 label: "My First dataset",
  1514.                                 data: [65, 25, 90, 81, 56, 55, 40],
  1515.                                 borderColor: 'rgba(0, 188, 212, 0.8)',
  1516.                                 backgroundColor: 'rgba(0, 188, 212, 0.5)',
  1517.                                 pointBorderColor: 'rgba(0, 188, 212, 0)',
  1518.                                 pointBackgroundColor: 'rgba(0, 188, 212, 0.8)',
  1519.                                 pointBorderWidth: 1
  1520.                             }, {
  1521.                                 label: "My Second dataset",
  1522.                                 data: [72, 48, 40, 19, 96, 27, 100],
  1523.                                 borderColor: 'rgba(233, 30, 99, 0.8)',
  1524.                                 backgroundColor: 'rgba(233, 30, 99, 0.5)',
  1525.                                 pointBorderColor: 'rgba(233, 30, 99, 0)',
  1526.                                 pointBackgroundColor: 'rgba(233, 30, 99, 0.8)',
  1527.                                 pointBorderWidth: 1
  1528.                             }]
  1529.                         },
  1530.                         options: {
  1531.                             responsive: true,
  1532.                             legend: false
  1533.                         }
  1534.                     }
  1535.                 }
  1536.                 else if (type === 'pie') {
  1537.                     config = {
  1538.                         type: 'pie',
  1539.                         data: {
  1540.                             datasets: [{
  1541.                                 data: [225, 50, 100, 40],
  1542.                                 backgroundColor: [
  1543.                                     "rgb(233, 30, 99)",
  1544.                                     "rgb(255, 193, 7)",
  1545.                                     "rgb(0, 188, 212)",
  1546.                                     "rgb(139, 195, 74)"
  1547.                                 ],
  1548.                             }],
  1549.                             labels: [
  1550.                                 "Pink",
  1551.                                 "Amber",
  1552.                                 "Cyan",
  1553.                                 "Light Green"
  1554.                             ]
  1555.                         },
  1556.                         options: {
  1557.                             responsive: true,
  1558.                             legend: false
  1559.                         }
  1560.                     }
  1561.                 }
  1562.                 return config;
  1563.             }
  1564.             new Chart($("#areaChart").get(0).getContext("2d"), getChartJs('line'));
  1565. //            new Chart($("#barChart").get(0).getContext("2d"), getChartJs('bar'));
  1566.             //following is for load in single page now only works perfectly with sale sinvoice. will work on it later
  1567. //        $('a').click(function(e){
  1568. //            $( "#test_ajax_loader").hide();
  1569. //
  1570. //
  1571. //            if(($(this).attr('href')).indexOf('#')!=-1)
  1572. //            {
  1573. //
  1574. ////                e.preventDefault();
  1575. ////                alert("ache");
  1576. ////                //    console.log(abc.indexOf('#'))
  1577. //            }
  1578. //            else
  1579. //            {
  1580. ////                alert("nai")
  1581. //                e.preventDefault();
  1582. //                $( "#test_ajax_loader" ).load( $(this).attr('href')+'?include_html=0', function() {
  1583. //                    alert(ACTIVE_ROUTE)
  1584. ////                    $('#test_ajax_loader input[type="text"]').trigger('change')
  1585. //                    $.AdminBSB.input.activate();
  1586. //                    generic.init()
  1587. //
  1588. //                    $( "#test_ajax_loader").show();
  1589. //
  1590. //            });
  1591. //                window.history.pushState("", "", $(this).attr('href'));
  1592. //
  1593. //
  1594. ////                window.location.href.replace($(this).attr('href'));
  1595. //
  1596. //            }
  1597. //
  1598. //        })
  1599. //            //    console.log('MATHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
  1600.             //    console.log(materialadmin.DemoDashboard)
  1601.         });
  1602.     </script>
  1603. {% endverbatim %}