app/Plugin/SalesReport42/Resource/template/admin/index.twig line 1

Open in your IDE?
  1. {#
  2.  This file is part of the Sales Report plugin
  3. Copyright (C) EC-CUBE CO.,LTD. All Rights Reserved.
  4.  For the full copyright and license information, please view the LICENSE
  5.  file that was distributed with this source code.
  6. #}
  7. {% extends '@admin/default_frame.twig' %}
  8. {% block title %}{{ 'sales_report.admin.title'|trans }}{% endblock %}
  9. {% form_theme form '@admin/Form/bootstrap_4_horizontal_layout.html.twig' %}
  10. {% block javascript %}
  11.     <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.3.0/Chart.js" integrity="sha384-flDTcmsJ2GUugPAgAMrEXML3nSGciiqQJkAcUPwL6l5lm8K5ydDoLV/Ad3vyFWOi" crossorigin="anonymous"></script>
  12.     {% block chart %}{% endblock %}
  13.     <script>
  14.         $(function () {
  15.             if ($('[type="date"]').prop('type') != 'date') {
  16.                 // input type属性でdateが利用できるかどうか(カレンダー表示できないブラウザ対応)
  17.                 $.when(
  18.                     $.getScript("{{ asset('assets/js/vendor/moment.min.js', 'admin') }}"),
  19.                     $.getScript("{{ asset('assets/js/vendor/moment-with-locales.min.js', 'admin') }}"),
  20.                     $.getScript("{{ asset('assets/js/vendor/tempusdominus-bootstrap-4.min.js', 'admin') }}")
  21.                 ).done(function() {
  22.                     $('input[id$=_start]').datetimepicker({
  23.                         locale: '{{ eccube_config.locale }}',
  24.                         format: 'YYYY-MM-DD',
  25.                         useCurrent: false,
  26.                         buttons: {
  27.                             showToday: true,
  28.                             showClose: true
  29.                         }
  30.                     });
  31.                     $('input[id$=_end]').datetimepicker({
  32.                         locale: '{{ eccube_config.locale }}',
  33.                         format: 'YYYY-MM-DD',
  34.                         useCurrent: false,
  35.                         buttons: {
  36.                             showToday: true,
  37.                             showClose: true
  38.                         }
  39.                     });
  40.                 });
  41.             }
  42.             $('#btn-monthly').on('click', function () {
  43.                 $('#{{ form.term_type.vars.id }}').val('monthly');
  44.                 document.form1.submit();
  45.             });
  46.             $('#btn-term').on('click', function () {
  47.                 $('#{{ form.term_type.vars.id }}').val('term');
  48.                 document.form1.submit();
  49.             });
  50.         });
  51.         function moneyFormat(money) {
  52.             return money.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  53.         }
  54.         jQuery.fn.tableToCSV = function() {
  55.             var clean_text = function(text){
  56.                 text = text.replace(/"/g, '""');
  57.                 return '"' + text + '"';
  58.             };
  59.             $(this).each(function(){
  60.                 var table = $(this);
  61.                 var caption = $('.box-title').text();
  62.                 var title = [];
  63.                 var rows = [];
  64.                 $(this).find('tr').each(function(){
  65.                     var data = [];
  66.                     $(this).find('th').each(function(){
  67.                         var text = $(this).text();
  68.                         title.push(text);
  69.                     });
  70.                     $(this).find('td').each(function(){
  71.                         var td = $(this);
  72.                         var text = td.text();
  73.                         if(td.hasClass('price-format')) {
  74.                             td.find('span').each(function() {
  75.                                 text = $(this).text().trim();
  76.                                 if (text != '-') {
  77.                                     text = Math.round(text);
  78.                                 } else {
  79.                                     text = 0;
  80.                                 }
  81.                                 data.push(text);
  82.                             });
  83.                         } else {
  84.                             data.push(text);
  85.                         }
  86.                     });
  87.                     data = data.join(',');
  88.                     rows.push(data);
  89.                 });
  90.                 title = title.join(',');
  91.                 rows = rows.join('\n');
  92.                 var csv = title + rows;
  93.                 var ts = new Date();
  94.                 var fileName;
  95.                 ts = ts.getFullYear().toString() + (ts.getMonth() + 1) + ts.getDate() + ts.getHours() + ts.getMinutes() + ts.getSeconds();
  96.                 if(caption == ''){
  97.                     fileName = ts + '.csv';
  98.                 } else {
  99.                     fileName = caption + '_' + ts + '.csv';
  100.                 }
  101.                 // if microsoft IE
  102.                 if (navigator.msSaveBlob) {
  103.                     navigator.msSaveBlob(new Blob([csv], { type: 'text/csv;charset=utf-8;' }), fileName);
  104.                 } else {
  105.                     var uri = 'data:text/csv;charset=utf-8,' + encodeURIComponent(csv);
  106.                     var download_link = document.createElement('a');
  107.                     download_link.href = uri;
  108.                     download_link.download = fileName;
  109.                     document.body.appendChild(download_link);
  110.                     download_link.click();
  111.                     document.body.removeChild(download_link);
  112.                 }
  113.             });
  114.         };
  115.     </script>
  116. {% endblock javascript %}
  117. {% block main %}
  118.     <form role="form" name="form1" id="form1" method="post" action="{{ action }}" novalidate>
  119.         {{ form_widget(form._token) }}
  120.         {{ form_widget(form.term_type) }}
  121.         <div class="c-contentsArea__cols">
  122.             <div class="c-contentsArea__primaryCol">
  123.                 <div class="c-primaryCol">
  124.                     <div class="card rounded border-0 mb-4">
  125.                         <div class="card-header">
  126.                             <span class="card-title">{{ report_title }}</span>
  127.                         </div>
  128.                         <div class="card-body">
  129.                             {% block option %}{% endblock %}
  130.                             <div class="row">
  131.                                 <div class="col-3"><span>{{ 'sales_report.admin.index.001'|trans }}</span></div>
  132.                                 <div class="col mb-2">
  133.                                     <div class="row justify-content-start">
  134.                                         <div class="w-auto">
  135.                                             <div class="align-items-center d-flex">
  136.                                                 {{ form_widget(form.monthly_year, {'attr': {'class':'float-start'}}) }}
  137.                                                 {{ 'sales_report.admin.label.monthly_year'|trans }}
  138.                                             </div>
  139.                                             {{ form_errors(form.monthly_year) }}
  140.                                         </div>
  141.                                         <div class="w-auto">
  142.                                             <div class="align-items-center d-flex">
  143.                                                 {{ form_widget(form.monthly_month, {'attr': {'class':'float-start'}}) }}
  144.                                                 {{ 'sales_report.admin.label.monthly_month'|trans }}
  145.                                             </div>
  146.                                             {{ form_errors(form.monthly_month) }}
  147.                                         </div>
  148.                                         <div class="w-auto">
  149.                                             <button id="btn-monthly" class="btn btn-ec-conversion px-5" data-style="expand-right" type="submit">{{ 'sales_report.admin.index.002'|trans }}</button>
  150.                                         </div>
  151.                                     </div>
  152.                                 </div>
  153.                             </div>
  154.                             <div class="row">
  155.                                 <div class="col-3"><span>{{ 'sales_report.admin.index.003'|trans }}</span></div>
  156.                                 <div class="col mb-2">
  157.                                     <div class="row justify-content-start">
  158.                                         <div class="w-auto">
  159.                                             {{ form_widget(form.term_start, {'attr': {'placeholder': 'sales_report.admin.placholder'|trans}}) }}
  160.                                             {{ form_errors(form.term_start) }}
  161.                                         </div>
  162.                                         <div class="w-auto text-center p-0">
  163.                                             <span class="align-middle">~</span>
  164.                                         </div>
  165.                                         <div class="w-auto">
  166.                                             {{ form_widget(form.term_end, {'attr': {'placeholder': 'sales_report.admin.placholder'|trans}}) }}
  167.                                             {{ form_errors(form.term_end) }}
  168.                                         </div>
  169.                                         <div class="w-auto">
  170.                                             <button id="btn-term" class="btn btn-ec-conversion px-5 text-nowrap" data-style="expand-right" type="submit">{{ 'sales_report.admin.index.004'|trans }}</button>
  171.                                         </div>
  172.                                     </div>
  173.                                 </div>
  174.                             </div>
  175.                         </div>
  176.                     </div>
  177.                     <div class="card rounded border-0 mb-4">
  178.                         {% if app.request.method == 'POST' and rawData is not null %}
  179.                             <div class="card-body container">
  180.                                 <div class="col-12">
  181.                                     <canvas id="chart"></canvas>
  182.                                 </div>
  183.                             </div>
  184.                         {% endif %}
  185.                         {% block table %}{% endblock %}
  186.                     </div>
  187.                 </div>
  188.             </div>
  189.         </div>
  190.     </form>
  191. {% endblock main %}