templates/MDS/GreenPatioBundle/reservations/list-statistics.html.twig line 1

Open in your IDE?
  1. {% extends 'MDS/GreenPatioBundle/base-reservations.html.twig' %}
  2. {% block pagetitleinterno %}
  3.     <div class="page-title">
  4.         <h4><i class="icon-list position-left"></i> <span class="text-semibold">{% trans %}Green Patio{% endtrans %}</span> - {% trans %}Estadísticas{% endtrans %}</h4>
  5.     </div>
  6. {% endblock %}
  7. {% block breadcrumbs %}
  8.     <ul class="breadcrumb">
  9.         <li><a href="/loungeadmin/list"><i class="icon-home2 position-left"></i>{% trans %}Home{% endtrans %}</a></li>
  10.     </ul>
  11. {% endblock %}
  12. {% block contentReservation %}
  13.     <div class="row settings-page" id="client-client-subpage">
  14.         <div class="col-sm-12">
  15.             <div class="page-header">
  16.                 <div class="col-sm-12 text-right">
  17.                     {% if dateStartReq is not empty and dateEndReq is not empty %}
  18.                         <form name="PrintForecast" method="post" target="_blank"  action="/pdf/greenpatioforecast/" class="form-horizontal" autocomplete="off">
  19.                             <input type="hidden" id="dateStartReq" name="forecast[date_start]" class="form-control hidden" value="{{ dateStartReq }}" />
  20.                             <input type="hidden" id="dateEndReq" name="forecast[date_end]" class="form-control hidden" value="{{ dateEndReq }}" />
  21.                             <div class="col-md-6">
  22.                                 <div class="form-group form-group-material">
  23.                                     <button type="submit" id="forecast_submit" name="forecast_button[send]" class="btn bg-black btn-info btn-lg">{% trans %}Previsión de Ventas en PDF{% endtrans %}</button>
  24.                                 </div>
  25.                             </div>
  26.                         </form>
  27.                     {% endif %}
  28.                     <a href="/reservations-greenpatio/listloungedetails"  class="btn btn-info btn-gl">{% trans %}List Lounge{% endtrans %} <i class="icon-list position-right"></i></a>
  29.                     <a href="/reservations-greenpatio/listperiod"  class="btn btn-success btn-gl">{% trans %}List Period{% endtrans %} <i class="icon-list position-right"></i></a>
  30.                     <a href="/reservations-greenpatio/listgpprices"  class="btn btn-info btn-gl">{% trans %}List Price{% endtrans %} <i class="icon-list position-right"></i></a>
  31.                     <a href="/reservations-greenpatio/list"  class="btn btn-warning btn-gl">{% trans %}Reservation List{% endtrans %} <i class="icon-book position-right"></i></a>
  32.                 </div>
  33.             </div>
  34.         </div>
  35.         {% for flashMessage in app.session.flashbag.get('mensajeclient') %}
  36.             <div class="hidden alertFlashMensaje" data-mensaje="{{ flashMessage }}"></div>
  37.         {% endfor %}
  38.         <div class="col-sm-12 margen-15">
  39.             <div class="panel">
  40.                 <div class="panel-body">
  41.                     <div class="col-md-12" ><strong class="text-info">
  42.                         <legend class="border-teal-800">{% trans %}Consulta de Reservas{% endtrans %}</legend></strong>
  43.                     </div>
  44.                     <form name="ViewForecast" method="post" action="/reservations-greenpatio/responseliststatistics/" class="form-horizontal" autocomplete="off">
  45.                         <div class="col-md-2" style="margin-left: 20px">
  46.                             <label class="control-label" for="forecast_date_start_title">{% trans %}Fecha de inicio{% endtrans %}: </label>
  47.                             {#<input type="date" id="forecast_date_start" name="forecast[date_start]" class="form-control">#}
  48.                             {% if dateStartReq is null  %}
  49.                                 <input type="date" id="forecast_date_start" name="forecast[date_start]" class="form-control">
  50.                             {% else %}
  51.                                 <input type="date" id="forecast_date_start" name="forecast[date_start]" class="form-control" value="{{ dateStartReq|date("Y-m-d") }}">
  52.                             {% endif %}
  53.                         </div>
  54.                         <div class="col-md-2" style="margin-left: 20px">
  55.                             <label class="control-label" for="forecast_date_end_title">{% trans %}Fecha de fin{% endtrans %}: </label>
  56.                             {#<input type="date" id="forecast_date_start" name="forecast[date_end]" class="form-control">#}
  57.                             {% if dateEndReq is null  %}
  58.                                 <input type="date" id="forecast_date_end" name="forecast[date_end]" class="form-control">
  59.                             {% else %}
  60.                                 <input type="date" id="forecast_date_end" name="forecast[date_end]" class="form-control" value="{{ dateEndReq|date("Y-m-d") }}">
  61.                             {% endif %}
  62.                         </div>
  63.                         <div class="col-md-2" style="margin-left: 20px">
  64.                             <div class="col-md-6"><label class="control-label text-left">{% trans %}Client{% endtrans %}</label></div>
  65.                             <div class="col-md-12">
  66.                                 <select id="client" name="client" class="form-control">
  67.                                     <option value="">{% trans %}Select a client{% endtrans %}</option>
  68.                                     {% for client in clients %}
  69.                                         {% if client.Id == clientId %}
  70.                                             <option value="{{ client.id }}" selected="selected">{{ client.name|capitalize }} </option>
  71.                                         {% else %}
  72.                                             <option value="{{ client.id }}">{{ client.name|capitalize }}  </option>
  73.                                         {% endif %}
  74.                                     {% endfor %}
  75.                                 </select>
  76.                             </div>
  77.                         </div>
  78.                         <div class="col-xs-12 col-lg-5" style="margin-left: 20px; z-index: 1;">
  79.                             <div class="col-xs-12"><label class="control-label text-center">{% trans %}Estado de la reserva{% endtrans %}</label></div>
  80.                             <div class="col-xs-12"></div>
  81.                             <div class="col-xs-6 col-lg-2" style="padding-top: -5px; padding-left: 10px">
  82.                                 <div class="checkbox checkbox-switchery switchery-lg switchery-double text-left" title="">
  83.                                       <label>
  84.                                         {#<input type="checkbox" class="switchery-info boolDelete" id="boolBlocked" name="boolStatus[Blocked]" checked="checked" onchange="changeChkLounge();">#}
  85.                                           {% if boolBlocked is defined and boolBlocked == true %}
  86.                                               <input type="checkbox" class="switchery-info boolDelete" id="boolBlocked" name="boolStatus[Blocked]" checked="checked" onchange="changeChkLounge();">
  87.                                           {% else %}
  88.                                               <input type="checkbox" class="switchery-info boolDelete" id="boolBlocked" name="boolStatus[Blocked]" onchange="changeChkLounge();">
  89.                                           {% endif %}
  90.                                     </label>
  91.                                     <label class="control-label text-left" style="padding-top: 10px">{% trans %}Bloqueado{% endtrans %}</label>
  92.                                 </div>
  93.                             </div>
  94.                             <div class="col-xs-6 col-lg-2" style="padding-top: -5px; padding-left: 10px">
  95.                                 <div class="checkbox checkbox-switchery switchery-lg switchery-double text-left" title="">
  96.                                     <label>
  97.                                         {#<input type="checkbox" class="switchery-info boolDelete" id="boolConfirmed" name="boolStatus[Confirmed]" checked="checked" onchange="changeChkLounge();">#}
  98.                                         {% if boolConfirmed is defined and boolConfirmed == true %}
  99.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolConfirmed" name="boolStatus[Confirmed]" checked="checked" onchange="changeChkLounge();">
  100.                                         {% else %}
  101.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolConfirmed" name="boolStatus[Confirmed]" onchange="changeChkLounge();">
  102.                                         {% endif %}
  103.                                     </label>
  104.                                     <label class="control-label text-left" style="padding-top: 10px">{% trans %}Confirmado{% endtrans %}</label>
  105.                                 </div>
  106.                             </div>
  107.                             <div class="col-xs-6 col-lg-2" style="padding-top: -5px; padding-left: 10px">
  108.                                 <div class="checkbox checkbox-switchery switchery-lg switchery-double text-left" title="">
  109.                                     <label>
  110.                                         {#<input type="checkbox" class="switchery-info boolDelete" id="boolQuoted" name="boolStatus[Quoted]" checked="checked" onchange="changeChkLounge();">#}
  111.                                         {% if boolQuoted is defined and boolQuoted == true %}
  112.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolQuoted" name="boolStatus[Quoted]" checked="checked" onchange="changeChkLounge();">
  113.                                         {% else %}
  114.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolQuoted" name="boolStatus[Quoted]" onchange="changeChkLounge();">
  115.                                         {% endif %}
  116.                                     </label>
  117.                                     <label class="control-label text-left" style="padding-top: 10px">{% trans %}Cotizado{% endtrans %}</label>
  118.                                 </div>
  119.                             </div>
  120.                             <div class="col-xs-6 col-lg-2" style="padding-top: -5px; padding-left: 10px">
  121.                                 <div class="checkbox checkbox-switchery switchery-lg switchery-double text-left" title="">
  122.                                     <label>
  123.                                         {#<input type="checkbox" class="switchery-info boolDelete" id="boolInvoiced" name="boolStatus[Invoiced]" checked="checked" onchange="changeChkLounge();">#}
  124.                                         {% if boolInvoiced is defined and boolInvoiced == true %}
  125.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolInvoiced" name="boolStatus[Invoiced]" checked="checked" onchange="changeChkLounge();">
  126.                                         {% else %}
  127.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolInvoiced" name="boolStatus[Invoiced]" onchange="changeChkLounge();">
  128.                                         {% endif %}
  129.                                     </label>
  130.                                     <label class="control-label text-left" style="padding-top: 10px">{% trans %}Facturado{% endtrans %}</label>
  131.                                 </div>
  132.                             </div>
  133.                             <div class="col-xs-6 col-lg-2" style="padding-top: -5px; padding-left: 10px">
  134.                                 <div class="checkbox checkbox-switchery switchery-lg switchery-double text-left" title="">
  135.                                     <label>
  136.                                         {#<input type="checkbox" class="switchery-info boolDelete" id="boolInvoiced" name="boolStatus[Cancel]" checked="checked" onchange="changeChkLounge();">#}
  137.                                         {% if boolCancel is defined and boolCancel == true %}
  138.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolCancel" name="boolStatus[Cancel]" checked="checked" onchange="changeChkLounge();">
  139.                                         {% else %}
  140.                                             <input type="checkbox" class="switchery-info boolDelete" id="boolCancel" name="boolStatus[Cancel]" onchange="changeChkLounge();">
  141.                                         {% endif %}
  142.                                     </label>
  143.                                     <label class="control-label text-left" style="padding-top: 10px">{% trans %}Cancelado{% endtrans %}</label>
  144.                                 </div>
  145.                             </div>
  146.                         </div>
  147.                         <div class="col-md-12" style="margin-top: 20px"></div>
  148.                         <style>
  149.                             /* Estilo para ajustar la lista dropdown */
  150.                             .dropdown-menu {
  151.                             max-height: 200px;
  152.                             overflow-y: auto;
  153.                             }
  154.                             /* Ajustar la apariencia de la lista */
  155.                             .dropdown-menu label {
  156.                             padding: 5px 15px;
  157.                             display: block;
  158.                             }
  159.                             /* Estilo adicional para alinear los checkbox con el texto */
  160.                             .checkbox-inline input {
  161.                             margin-right: 10px;
  162.                             }
  163.                         </style>
  164.                         <div class="col-md-12 col-xs-12" style="padding-left: 40px; padding-right: 40px">
  165.                             <div class="form-group form-group-material">
  166.                                 {#<label class="control-label is-visible">#}
  167.                                     {#<label for="supplier_tags2" class="control-label is-visible required">{% trans %}Tags{% endtrans %}</label>#}
  168.                                 {#</label>#}
  169.                                 <div id="multiselect_tags" class="input-group col-sm-12 InputTagsSpinner multi-select-full" style="width: 100%">
  170.                                     <div class="dropdown" style="width: 100%">
  171.                                         <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="width: 100%">
  172.                                             {% trans %}Todas las Salas{% endtrans %}
  173.                                             <span class="caret"></span>
  174.                                         </button>
  175.                                         <ul class="dropdown-menu" aria-labelledby="dropdownMenu" style="width: 100%">
  176.                                             {% for sala in salas %}
  177.                                                 <li>
  178.                                                     <label class="checkbox-inline">
  179.                                                         <input type="checkbox" name="tags[tags2][]" value="{{ sala.id }}"> {{ sala.name }}
  180.                                                     </label>
  181.                                                 </li>
  182.                                             {% endfor %}
  183.                                         </ul>
  184.                                     </div>
  185.                                     <input type="hidden" id="selected_salas" name="selected_salas" value="">
  186.                                 </div>
  187.                                 <span class="help-block"></span>
  188.                             </div>
  189.                         </div>
  190.                         <div class="col-md-12" style="margin-top: 20px"></div>
  191.                         <div class="col-md-4"></div>
  192.                         <div class="col-md-4">
  193.                             <div class="form-group form-group-material">
  194.                                 <button type="submit" id="forecast_submit" name="forecast_button[send]" class="btn bg-success btn-block btn-lg">{% trans %}Buscar{% endtrans %}</button>
  195.                             </div>
  196.                         </div>
  197.                     </form>
  198.                 </div>
  199.             </div>
  200.         </div>
  201.         {% if data is not empty %}
  202.             <div class="col-md-12 margen-15">
  203.                 <div class="panel">
  204.                     <div class="panel-heading">
  205.                         <div class="panel-body border-blue">
  206.                             <div class="col-md-12 col-xs-12" ><strong class="text-info">
  207.                                 <legend class="border-teal-800">{% trans %}Listado de Reservas{% endtrans %}</legend></strong>
  208.                                 {{ consulta }}
  209.                                 <br>
  210.                                 <br>
  211.                                 <br>
  212.                             </div>
  213.                             <table id="table-client" class="table datatable-sum table-bordered table-hover datatable-highlight">
  214.                                 <thead>
  215.                                 <tr>
  216.                                     <th>{% trans %}Fecha de inicio{% endtrans %}</th>
  217.                                     <th>{% trans %}Client{% endtrans %}</th>
  218.                                     <th>{% trans %}Título{% endtrans %}</th>
  219.                                     <th>{% trans %}Status{% endtrans %}</th>
  220.                                     <th>{% trans %}Espacios{% endtrans %}</th>
  221.                                     <th>{% trans %}Venta Neta{% endtrans %}</th>
  222.                                     <th>{% trans %}Iva{% endtrans %}</th>
  223.                                     <th class="text-center">{% trans %}Actions{% endtrans %}</th>
  224.                                 </tr>
  225.                                 </thead>
  226.                                 <tbody>
  227.                                     {% for resv in data %}
  228.                                         <tr>
  229.                                             <td><div class="hidden">{{ resv.dateStart|date("Y/m/d") }}</div>{{ resv.dateStart|date('d/m/Y')}}</td>
  230.                                             <td>{{ resv.clientName }}</td>
  231.                                             <td>{{ resv.title }}</td>
  232.                                             <td>{{ resv.status }}</td>
  233.                                             <td>
  234.                                                 {% for key, spaceName in resv.txtArrayLoungesNames %}
  235.                                                     {% if key > 21 and key < 30 %}
  236.                                                         <span class="badge bg-primary-400 heading-text" style="font-size: small"> {{ spaceName }} </span> {# CVR #}
  237.                                                     {% else %}
  238.                                                         {% if key > 29 %}
  239.                                                             <span class="badge bg-brown-400 heading-text" style="font-size: small"> {{ spaceName }} </span> {# BLV #}
  240.                                                         {% else %}
  241.                                                             <span class="badge badge-success text-center" style="font-size: small"> {{ spaceName }} </span>   {# GP #}
  242.                                                         {% endif %}
  243.                                                     {% endif %}
  244.                                                 {% endfor %}
  245.                                             </td>
  246.                                             <td>{{ resv.neto|number_format(2, ',', '.')}}</td>
  247.                                             <td>{{ resv.vat|number_format(2, ',', '.')}}</td>
  248.                                             <td class="text-center">
  249.                                                 <ul class="icons-list">
  250.                                                     <li class="dropdown">
  251.                                                         <a class="btn border-info text-info btn-flat btn-rounded btn-icon btn-lg" href="#" class="dropdown-toggle" data-toggle="dropdown">
  252.                                                             <i class="icon-menu9"></i>
  253.                                                         </a>
  254.                                                         <ul class="dropdown-menu dropdown-menu-right bg-teal-400">
  255.                                                             <li><a href="/reservations-greenpatio/editsimple/{{ resv.reservationId }}"><i class="icon-eye pull-right"></i> {% trans %}Ver Reserva{% endtrans %}</a></li>
  256.                                                         </ul>
  257.                                                     </li>
  258.                                                 </ul>
  259.                                             </td>
  260.                                         </tr>
  261.                                     {% endfor %}
  262.                                 </tbody>
  263.                                 <tfoot>
  264.                                 <tr>
  265.                                     <th colspan="5" class="text-right">Previsión de Venta en tabla: </th>
  266.                                     <th colspan="1"></th>
  267.                                     <th colspan="1"></th>
  268.                                     <th colspan="1"></th>
  269.                                 </tr>
  270.                                 </tfoot>
  271.                             </table>
  272.                             <form name="ExcelForecast" method="post" action="/reservations-greenpatio/xlsstatistics/" class="form-horizontal" autocomplete="off">
  273.                                 <input id="xlsDateStartReq" name="xls[dateStartReq]" class="hidden" value="{{ dateStartReq }}">
  274.                                 <input id="xlsDateEndReq" name="xls[dateEndReq]" class="hidden" value="{{ dateEndReq }}">
  275.                                 <input id="xlsClientId" name="xls[clientId]" class="hidden" value="{{ clientId }}">
  276.                                 <input id="xlsBoolBlocked" name="xls[boolBlocked]" class="hidden" value="{{ boolBlocked }}">
  277.                                 <input id="xlsBoolConfirmed" name="xls[boolConfirmed]" class="hidden" value="{{ boolConfirmed }}">
  278.                                 <input id="xlsBoolQuoted" name="xls[boolQuoted]" class="hidden" value="{{ boolQuoted }}">
  279.                                 <input id="xlsBoolInvoiced" name="xls[boolInvoiced]" class="hidden" value="{{ boolInvoiced }}">
  280.                                 <input id="xlsBoolCancel" name="xls[boolCancel]" class="hidden" value="{{ boolCancel }}">
  281.                                 <input id="arraySalasId" name="xls[arraySalasId]" class="hidden" value="{{ arraySalasId }}">
  282.                                 <input id="selectedSalasNames" name="xls[selectedSalasNames]" class="hidden" value="{{ selectedSalasNames }}">
  283.                                 <div class="col-md-10"></div>
  284.                                 <div class="col-md-2">
  285.                                     <div class="form-group form-group-material">
  286.                                         <button type="submit" id="excel_submit" name="excel_button[send]" class="btn bg-info btn-block btn-lg"><i class="icon-file-excel position-right"></i>{% trans %}&nbsp; Exportar a Excel{% endtrans %}</button>
  287.                                     </div>
  288.                                 </div>
  289.                             </form>
  290.                         </div>
  291.                     </div>
  292.                 </div>
  293.             </div>
  294.         {% endif %}
  295.     </div>
  296. {% endblock %}
  297. {% block javascripts %}
  298.     {{ parent() }}
  299.     <script type="text/javascript" src="{{ asset('assets/js/plugins/forms/styling/uniform.min.js') }}"></script>
  300.     <script type="text/javascript" src="{{ asset('assets/js/plugins/forms/styling/switch.min.js') }}"></script>
  301.     <script type="text/javascript" src="{{ asset('assets/js/pages/form_checkboxes_radios.js') }}"></script>
  302.     <script type="text/javascript" src="{{ asset('assets/js/plugins/forms/selects/select2.min.js') }}"></script>
  303.     <script type="text/javascript" src="{{ asset('assets/js/pages/greenpatio/list-reservation.js') }}"></script>
  304.     <script type="text/javascript" src="{{ asset('assets/js/plugins/forms/styling/switchery.min.js') }}"></script>
  305.     <script type="text/javascript" src="{{ asset('assets/js/pages/proposal/switchery-proposal.js') }}"></script>
  306.     <script type="text/javascript" src="{{ asset('assets/js/plugins/tables/datatables/datatables.min.js') }}"></script>
  307.     <script type="text/javascript" src="{{ asset('assets/js/plugins/tables/datatables/extensions/responsive.min.js') }}"></script>
  308.     <script type="text/javascript" src="{{ asset('assets/js/pages/greenpatio/datatables_sum_gp_statistics.js') }}"></script>
  309.     <script type="text/javascript" src="{{ asset('assets/js/pages/datatables_advanced.js') }}"></script>
  310.     <script>
  311.         var checkboxes = document.querySelectorAll('.dropdown-menu input[type="checkbox"]');
  312.         var dropdownButton = document.querySelector('#dropdownMenu');
  313.         var hiddenInput = document.querySelector('#selected_salas');
  314.         checkboxes.forEach(function (checkbox) {
  315.             checkbox.addEventListener('change', updateSelections); // Event for PC
  316.             checkbox.addEventListener('click', updateSelections);  // Add click for mobile
  317.             checkbox.addEventListener('touchstart', updateSelections); // Add touchstart for mobile
  318.         });
  319.         function updateSelections() {
  320.             var selected = [];
  321.             checkboxes.forEach(function (checkbox) {
  322.                 if (checkbox.checked) {
  323.                     selected.push(checkbox.parentElement.textContent.trim());
  324.                 }
  325.             });
  326.             dropdownButton.textContent = selected.length > 0 ? selected.join(', ') : 'Todas las Salas';
  327.             hiddenInput.value = selected.join(',');
  328.         }
  329.     </script>
  330. {% endblock %}