templates/role/user/ticket/list.html.twig line 1

Open in your IDE?
  1. {% extends 'role/user/ticket/index.html.twig' %}
  2. {% block title %}Ticket - Lista{% endblock %}
  3. {% block pageTitleH1 %}Ticket - Lista{% endblock %}
  4. {% block pageTitleBreadcrumb %}
  5.     <li class="breadcrumb-item"><a href="{{ path ('user_tickets') }}">Ticket</a></li>
  6.     <li class="breadcrumb-item"><a href="javascript:void(0)">Lista</a></li>
  7. {% endblock %}
  8. {% block subMenuLeft %}
  9.     <li class="nav-item"><a class="nav-link" href="{{ path ('user_index') }}">Scrivania</a></li>
  10. {% endblock %}
  11. {% block subMenuRight %}
  12.     {% if app.user.getAccountTypology == 'agency' %}
  13.         <li class="nav-item"><a class="nav-link" href="{{ path('user_ticket_download_email') }}">Scarica da email</a></li>
  14.         {% if TICKET_DOWNLOAD_FROM_OTHER %}<li class="nav-item"><a class="nav-link" href="{{ path('user_ticket_download_email_other') }}">Scarica da email "Altro"</a></li>{% endif %}
  15.     {% endif %}
  16. {% endblock %}
  17. {% block content %}
  18.     <section class="m_tb_50p p_lr_30p">
  19.         <div class="row">
  20.             <div class="col-12">
  21.                 <h3 class="form_title">Ticket</h3>
  22.                 <hr class="m_t_none">
  23.             </div>
  24.             {% if app.user.getAccountTypology == 'agency' %}
  25.                 {# Agenzia #}
  26.                 <div class="col-12">
  27.                     <div class="tabs clearfix">
  28.                         <ul class="tab-nav clearfix">
  29.                             <li>
  30.                                 <a id="btn_tab_error" href="#error" class="tab_session" data-filterTab="error">
  31.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Con errori"><i class="icon-warning-sign font_20"></i>{{ errorCount }}</span>
  32.                                     <span class="d-none d-lg-block">Con errori ({{ errorCount }})</span>
  33.                                 </a>
  34.                             </li>
  35.                             <li>
  36.                                 <a id="btn_tab_to_assign" href="#toAssign" class="tab_session" data-filterTab="to_assign">
  37.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Da assegnare"><i class="icon-pencil-alt font_20"></i>{{ toAssignCount }}</span>
  38.                                     <span class="d-none d-lg-block">Da assegnare ({{ toAssignCount }})</span>
  39.                                 </a>
  40.                             </li>
  41.                             <li>
  42.                                 <a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
  43.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Assegnati"><i class="icon-tag font_20"></i>{{ assignedCount }}</span>
  44.                                     <span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
  45.                                 </a>
  46.                             </li>
  47.                             <li>
  48.                                 <a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
  49.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Presi in carico"><i class="icon-cog font_20"></i>{{ takenChargeCount }}</span>
  50.                                     <span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
  51.                                 </a>
  52.                             </li>
  53.                             <li>
  54.                                 <a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
  55.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Richiesta sospensione"><i class="icon-clock font_20"></i>{{ suspensionRequestCount }}</span>
  56.                                     <span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
  57.                                 </a>
  58.                             </li>
  59.                             <li>
  60.                                 <a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
  61.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Sospesi"><i class="icon-clock font_20"></i>{{ suspendedCount }}</span>
  62.                                     <span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
  63.                                 </a>
  64.                             </li>
  65.                             <li>
  66.                                 <a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
  67.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi"><i class="icon-check font_20"></i>{{ closedCount }}</span>
  68.                                     <span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
  69.                                 </a>
  70.                             </li>
  71.                             <li>
  72.                                 <a id="btn_tab_closed_on_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_on_portal">
  73.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi su fornitore"><i class="icon-checkmark font_20"></i>{{ closedPortalCount }}</span>
  74.                                     <span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
  75.                                 </a>
  76.                             </li>
  77.                             <li>
  78.                                 <a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
  79.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Annullati"><i class="icon-minus-sign font_20"></i>{{ canceledCount }}</span>
  80.                                     <span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
  81.                                 </a>
  82.                             </li>
  83.                             <li>
  84.                                 <a id="btn_tab_wrong" href="#wrong" class="tab_session" data-filterTab="wrong">
  85.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Errati"><i class="icon-remove-sign font_20"></i>{{ wrongCount }}</span>
  86.                                     <span class="d-none d-lg-block">Errati ({{ wrongCount }})</span>
  87.                                 </a>
  88.                             </li>
  89.                         </ul>
  90.                         <div class="tab-container">
  91.                             {# Con errori #}
  92.                             <div class="tab-content clearfix" id="error">
  93.                                 <div class="row">
  94.                                     <div class="col-12">
  95.                                         <a id="button_0_wrong" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Errato</a>
  96.                                     </div>
  97.                                     <div class="col-12 overflow_a">
  98.                                         <table class="table table-bordered table-hover font_12">
  99.                                             <thead>
  100.                                                 <tr>
  101.                                                     <form method="get" action="{{ path ('user_ticket_list') }}" id="formFilter_0">
  102.                                                         <td class="td_action"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_red" src="{{ asset (icon_delete) }}"></a></td>
  103.                                                         <td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
  104.                                                         <td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
  105.                                                         <td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
  106.                                                         <td><input type="text" class="form-control" id="filter_operation_value_0" readonly onClick="filterOperations0()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_operation_id_0" name="operation" value="{{ filters.operation|default() }}"/></td>
  107.                                                         <td><input type="text" class="form-control" id="filter_supplier_value_0" readonly onClick="filterSuppliers0()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_supplier_id_0" name="supplier" value="{{ filters.supplier|default() }}"/></td>
  108.                                                         <td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
  109.                                                         <td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
  110.                                                         <td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
  111.                                                         <td><input type="text" class="form-control daterange font_12" id="daterange_0" inputmode="search" autocomplete="off" name="datetimeStart" style="height: 38px" date-filter="range"/></td>
  112.                                                         <td colspan="2"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_action icon_green" src="{{ asset (icon_search) }}"></button></td>
  113.                                                         <input id="sort_field_0" type="hidden" name="sortField" value="{{ filters.sortField|default() }}"/>
  114.                                                         <input id="sort_order_0" type="hidden" name="sortOrder" value="{{ filters.sortOrder|default() }}"/>
  115.                                                     </form>
  116.                                                 </tr>
  117.                                                 <tr class="bg_pr color_w">
  118.                                                     <th class="td_action txt_a_c">
  119.                                                         <div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
  120.                                                             <input id="ticket_0_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll(0)">
  121.                                                             <label for="ticket_0_all_checkboxes" class="m_b_none"></label>
  122.                                                         </div>
  123.                                                     </th>
  124.                                                     <th class="td_w_120p">N°<button type="button" onClick="setOrderBy0('t.number')" data-orderField="t.number" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  125.                                                     <th class="td_w_120p">Termid<button type="button" onClick="setOrderBy0('tt.code')" data-orderField="tt.code" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  126.                                                     <th class="td_w_200p">Cliente<button type="button" onClick="setOrderBy0('c.nickname')" data-orderField="c.nickname" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  127.                                                     <th class="td_w_150p">Operazione <i style="font-weight:400">(Dettagli)</i><button type="button" onClick="setOrderBy0('o.value')" data-orderField="o.value" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  128.                                                     <th class="td_w_130p">Fornitore <i style="font-weight:400">(SLOT)</i><button type="button" onClick="setOrderBy0('s.name')" data-orderField="s.name" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  129.                                                     <th class="td_w_130p">Tariffa<button type="button" onClick="setOrderBy0('ot.value')" data-orderField="ot.value" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  130.                                                     <th class="td_w_130p">Città<button type="button" onClick="setOrderBy1('t.idCity')" data-orderField="t.idCity" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  131.                                                     <th class="td_w_70p txt_a_c">Prov<button type="button" onClick="setOrderBy1('t.idProvince')" data-orderField="t.idProvince" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  132.                                                     <th class="td_w_140p">Data/Ora ricezione<button type="button" onClick="setOrderBy0('t.datetimeStart')" data-orderField="t.datetimeStart" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  133.                                                     <th>Descrizione errore</th>
  134.                                                     <th></th>
  135.                                                 </tr>
  136.                                             </thead>
  137.                                             <tbody>
  138.                                                 {% if errorTickets|length > 0 %}
  139.                                                     {% for ticket in errorTickets %}
  140.                                                         <tr>
  141.                                                             <td class="td_w_30p">
  142.                                                                 <div class="switch">
  143.                                                                     <input id="ticket_checkbox_{{ ticket.id }}" class="switch-toggle switch-flat-mini switch-toggle-flat ticket_0_checkbox" type="checkbox" value="{{ ticket.id }}" onChange="javascript: updateButtons(0)">
  144.                                                                     <label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
  145.                                                                 </div>
  146.                                                             </td>
  147.                                                             <td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
  148.                                                             <td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
  149.                                                             <td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
  150.                                                             <td id="ticket_operation_{{ ticket.id }}">{{ ticket.operation.value }}
  151.                                                                 {% if ticket.operation.getKeyValueByValue('Dettagli operazione') and ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) != null %}
  152.                                                                     <br><i>({{ ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) }} 
  153.                                                                         {% if ticket.operation.getKeyValueByValue('Cluster') and ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Cluster')) != null %}
  154.                                                                             Cluster {{ ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Cluster'))}}
  155.                                                                         {% endif %}
  156.                                                                     )</i>
  157.                                                                 {% endif %}
  158.                                                             </td>
  159.                                                             <td id="ticket_supplier_{{ ticket.id }}">{{ ticket.operation.supplier }}{% if ticket.displayJsonValueByColumn('SLOT') != null %}<br><i>({{ ticket.displayJsonValueByColumn('SLOT') }})</i>{% endif %}</td>
  160.                                                             <td>{% if ticket.operationTariffAmount != null %}{{ ticket.operationTariffAmount.value|default() }}{% endif %}</td>
  161.                                                             <td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}{% endif %}</td>
  162.                                                             <td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
  163.                                                             <td>{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  164.                                                             <td>{{ ticket.systemErrorDetails|raw }}</td>
  165.                                                             <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':ticket.id}) }}"><img class="icon_pr" data-bs-toggle="tooltip" title="Scheda" src="{{ asset(icon_sheet) }}"></a></td>
  166.                                                         </tr>
  167.                                                     {% endfor %}
  168.                                                 {% else %}
  169.                                                     {% include 'components/twig/notice_filter_no_match.html.twig' %}
  170.                                                 {% endif %}
  171.                                             </tbody>
  172.                                         </table>
  173.                                     </div>
  174.                                 </div>
  175.                             </div>
  176.                             {# To assign #}
  177.                             <div class="tab-content clearfix" id="toAssign">
  178.                                 {% set tickets = toAssignTickets %}
  179.                                 {% set number = 1 %}
  180.                                 {% set multipleSelection = [true, 1, ['assign', 'suspend', 'cancel']] %}
  181.                                 {% set hasEmailTakeCharge = false %}
  182.                                 {% set tabOpenValue = 'to_assign' %}
  183.                                 {% set tab = 'toAssign' %}
  184.                                 {% block ticketsTab %}
  185.                                     <div class="row">
  186.                                         <div class="col-12">
  187.                                             {% if multipleSelection[0] %}
  188.                                                 {% if 'assign' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_assign" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Assegna a tecnico</a>{% endif %}
  189.                                                 {% if 'change' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_change" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Cambia tecnico</a>{% endif %}
  190.                                                 {% if 'print' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_print" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Stampa</a>{% endif %}
  191.                                                 {% if 'suspend' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_suspend" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Sospendi</a>{% endif %}
  192.                                                 {% if 'suspend_end' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_suspend_end" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Sblocca sospensione</a>{% endif %}
  193.                                                 {% if 'approve' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_approve" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Approva sospensione</a>{% endif %}
  194.                                                 {% if 'cancel' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_cancel" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Annulla</a>{% endif %}
  195.                                                 {% if 'closed_portal' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_closed_portal" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Chiuso su portale</a>{% endif %}
  196.                                                 {% if 'wrong' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_wrong" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Errato</a>{% endif %}
  197.                                                 {% if 'delete' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_delete" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Elimina definitivamente</a>{% endif %}
  198.                                                 {% if 'urge' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_urge" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Sollecita</a>{% endif %}
  199.                                             {% endif %}
  200.                                             {% if hasEmailTakeCharge %}<a href="javascript: sendEmailTakeCharge()" class="button button-3d button-mini button-green f_left m_b_10p">Invia email prendi in carico a tutti</a>{% endif %}
  201.                                         </div>
  202.                                         <div class="col-12 overflow_a">
  203.                                             <table class="table table-bordered table-hover font_12">
  204.                                                 <thead>
  205.                                                     <tr>
  206.                                                         <form method="get" action="{{ path ('user_ticket_list') }}" id="formFilter_{{ multipleSelection[1] }}">
  207.                                                             <td class="td_action" {% if multipleSelection[0] %}colspan="2"{% endif %}><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_red" src="{{ asset (icon_delete) }}"></a></td>
  208.                                                             <td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
  209.                                                             <td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
  210.                                                             <td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
  211.                                                             <td><input type="text" class="form-control" id="filter_operation_value_{{ number }}" readonly onClick="filterOperations{{ number }}()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_operation_id_{{ number }}" name="operation" value="{{ filters.operation|default() }}"/></td>
  212.                                                             <td><input type="text" class="form-control" id="filter_supplier_value_{{ number }}" readonly onClick="filterSuppliers{{ number }}()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_supplier_id_{{ number }}" name="supplier" value="{{ filters.supplier|default() }}"/></td>
  213.                                                             <td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
  214.                                                             <td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
  215.                                                             <td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
  216.                                                             {% if tab != 'toAssign' %}
  217.                                                                 <td><input type="text" class="form-control" inputmode="search" name="technician" value="{{ filters.technician|default() }}"/></td>
  218.                                                             {% endif %}
  219.                                                             <td><input type="text" class="form-control daterange daterange1 font_12" id="daterange_{{ number }}_1" autocomplete="off" inputmode="search" name="datetimeStart" style="height: 38px" date-filter="range"/></td>
  220.                                                             {% if tab != 'closed' and tab != 'closedPortal' %}
  221.                                                                 <td><input type="text" class="form-control daterange daterange2 font_12" id="daterange_{{ number }}_2" autocomplete="off" inputmode="search" name="datetimeExpiration" style="height: 38px" date-filter="range"/></td>
  222.                                                             {% else %}
  223.                                                                 <td><input type="text" class="form-control daterange daterange3 font_12" id="daterange_{{ number }}_3" inputmode="search" autocomplete="off" name="datetimeEnd" style="height: 38px" date-filter="range"/></td>
  224.                                                             {% endif %}
  225.                                                             <td><input type="text" class="form-control" inputmode="search" name="waybill" value="{{ filters.waybill|default() }}"/></td>
  226.                                                             <td colspan="3" class="td_action"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_green" src="{{ asset (icon_search) }}"></button></td>
  227.                                                             <input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
  228.                                                             <input id="sort_field_{{ multipleSelection[1] }}" type="hidden" name="sortField" value="{{ filters.sortField|default() }}"/>
  229.                                                             <input id="sort_order_{{ multipleSelection[1] }}" type="hidden" name="sortOrder" value="{{ filters.sortOrder|default() }}"/>
  230.                                                         </form>
  231.                                                     </tr>
  232.                                                     <tr class="bg_pr color_w">
  233.                                                         {% if multipleSelection[0] %}
  234.                                                             <th class="td_action txt_a_c">
  235.                                                                 <div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
  236.                                                                     <input id="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll({{ multipleSelection[1] }})">
  237.                                                                     <label for="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="m_b_none"></label>
  238.                                                                 </div>
  239.                                                             </th>
  240.                                                         {% endif %}
  241.                                                         <th class="td_w_60p txt_a_c">Stato</th>
  242.                                                         <th class="td_w_120p">N°<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('t.number')" data-orderField="t.number" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  243.                                                         <th class="td_w_100p">Termid<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('tt.code')" data-orderField="tt.code" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  244.                                                         <th class="td_w_150p">Cliente<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('c.nickname')" data-orderField="c.nickname" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  245.                                                         <th class="td_w_150p">Operazione <i style="font-weight:400">(Dettagli)</i><button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('o.value')" data-orderField="o.value" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  246.                                                         <th class="td_w_120p">Fornitore <i style="font-weight:400">(SLOT)</i><button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('s.name')" data-orderField="s.name" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  247.                                                         <th class="td_w_120p">Tariffa<button type="button" onClick="setOrderBy0('ot.value')" data-orderField="ot.value" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  248.                                                         <th class="td_w_180p">Città <i style="font-weight:400">(Indirizzo)</i><button type="button" onClick="setOrderBy1('t.idCity')" data-orderField="t.idCity" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  249.                                                         <th class="td_w_70p txt_a_c">Prov<button type="button" onClick="setOrderBy1('t.idProvince')" data-orderField="t.idProvince" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  250.                                                         {% if tab != 'toAssign' %}
  251.                                                             <th class="td_w_150p">Tecnico<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('p.surname')" data-orderField="p.surname" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  252.                                                         {% endif %}
  253.                                                         <th class="td_w_130p txt_a_c">Data/Ora ricezione<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('t.datetimeStart')" data-orderField="t.datetimeStart" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  254.                                                         {% if tab != 'closed' and tab != 'closedPortal' %}
  255.                                                             <th class="td_w_130p txt_a_c">Data/Ora scadenza<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('t.datetimeExpiration')" data-orderField="t.datetimeExpiration" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>                                    
  256.                                                         {% else %}
  257.                                                             <th class="td_w_130p txt_a_c">Data/Ora chiusura<button type="button" onClick="setOrderBy{{ multipleSelection[1] }}('t.datetimeEnd')" data-orderField="t.datetimeEnd" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  258.                                                         {% endif %}
  259.                                                         <th class="td_w_140p">Lettera di vettura<button type="button" onClick="setOrderBy1('t.waybill')" data-orderField="t.waybill" class="f_right filter_arrow"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  260.                                                         <th></th>
  261.                                                     </tr>
  262.                                                 </thead>
  263.                                                 <tbody>
  264.                                                     {% if tickets|length > 0 %}
  265.                                                         {% for ticket in tickets %}
  266.                                                             <tr>
  267.                                                                 {% if multipleSelection[0] %}
  268.                                                                     <td class="td_w_30p">
  269.                                                                         <div class="switch">
  270.                                                                             <input id="ticket_checkbox_{{ ticket.id }}" class="switch-toggle switch-flat-mini switch-toggle-flat ticket_{{ multipleSelection[1] }}_checkbox" type="checkbox" value="{{ ticket.id }}" onChange="javascript: updateButtons({{ multipleSelection[1] }})">
  271.                                                                             <label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
  272.                                                                         </div>
  273.                                                                     </td>
  274.                                                                 {% endif %}
  275.                                                                 <td class="txt_a_c">{{ ticket.displayStatus('icon')|raw }}</td>
  276.                                                                 <td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
  277.                                                                 <td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
  278.                                                                 <td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
  279.                                                                 <td id="ticket_operation_{{ ticket.id }}">{{ ticket.operation.value }}{% if ticket.operation.getKeyValueByValue('Dettagli operazione') and ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) != null %}<br><i>({{ ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) }})</i>{% endif %}</td>
  280.                                                                 <td id="ticket_supplier_{{ ticket.id }}">{{ ticket.supplier }}{% if ticket.displayJsonValueByColumn('SLOT') != null %}<br><i>({{ ticket.displayJsonValueByColumn('SLOT') }})</i>{% endif %}</td>
  281.                                                                 <td>{% if ticket.operationTariffAmount != null %}{{ ticket.operationTariffAmount.value|default() }}{% endif %}</td>
  282.                                                                 <td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}<br><i>({{ ticket.address }})</i>{% endif %}</td>
  283.                                                                 <td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
  284.                                                                 {% if tab != 'toAssign' %}
  285.                                                                     <td>{{ ticket.technician }}</td>
  286.                                                                 {% endif %}
  287.                                                                 <td class="txt_a_c">{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  288.                                                                 {% if tab != 'closed' and tab != 'closedPortal' %}
  289.                                                                     <td class="txt_a_c">{% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  290.                                                                 {% else %}
  291.                                                                     <td class="txt_a_c">{% if ticket.datetimeEnd != null %}{{ ticket.datetimeEnd|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  292.                                                                 {% endif %}
  293.                                                                 <td>{{ ticket.waybill }}</td>
  294.                                                                 <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':ticket.id}) }}"><img class="icon_pr" data-bs-toggle="tooltip" title="Scheda" src="{{ asset(icon_sheet) }}"></a></td>
  295.                                                             </tr>
  296.                                                         {% endfor %}
  297.                                                     {% else %}
  298.                                                         {% include 'components/twig/notice_filter_no_match.html.twig' %}
  299.                                                     {% endif %}
  300.                                                 </tbody>
  301.                                             </table>
  302.                                         </div>
  303.                                         <div class="col-12 navigation txt_a_r">
  304.                                             {{ knp_pagination_render(tickets) }}
  305.                                         </div>
  306.                                     </div>
  307.                                 {% endblock %}
  308.                             </div>
  309.                             {# Assigned #}
  310.                             <div class="tab-content clearfix" id="assigned">
  311.                                 {% set tickets = assignedTickets %}
  312.                                 {% set number = 2 %}
  313.                                 {% set multipleSelection = [true, 2, ['print', 'suspend', 'cancel', 'change']] %}
  314.                                 {% set hasEmailTakeCharge = true %}
  315.                                 {% set tabOpenValue = 'assigned' %}
  316.                                 {% set tab = 'assigned' %}
  317.                                 {{ block('ticketsTab') }}
  318.                             </div>
  319.                             {# Taken charge #}
  320.                             <div class="tab-content clearfix" id="takenCharge">
  321.                                 {% set tickets = takenChargeTickets %}
  322.                                 {% set number = 3 %}
  323.                                 {% if settingBackOffice %} {# SE ACCOUNT AGENZIA E BACKOFFICE GESTISCE TICKET #}
  324.                                     {% set multipleSelection = [true, 3, ['print', 'suspend', 'cancel', 'change', 'urge']] %}
  325.                                 {% else %}
  326.                                     {% set multipleSelection = [true, 3, ['suspend', 'cancel', 'change', 'urge']] %}
  327.                                 {% endif %}
  328.                                 {% set hasEmailTakeCharge = false %}
  329.                                 {% set tabOpenValue = 'taken_charge' %}
  330.                                 {% set tab = 'takenCharge' %}
  331.                                 {{ block('ticketsTab') }}
  332.                             </div>
  333.                             {# Suspension request #}
  334.                             <div class="tab-content clearfix" id="suspensionRequest">
  335.                                 {% set tickets = suspensionRequestTickets %}
  336.                                 {% set number = 4 %}
  337.                                 {% set multipleSelection = [true, 4, ['cancel', 'approve']] %}
  338.                                 {% set hasEmailTakeCharge = false %}
  339.                                 {% set tabOpenValue = 'suspension_request' %}
  340.                                 {% set tab = 'suspensionRequest' %}
  341.                                 {{ block('ticketsTab') }}
  342.                             </div>
  343.                             {# Suspended #}
  344.                             <div class="tab-content clearfix" id="suspended">
  345.                                 {% set tickets = suspendedTickets %}
  346.                                 {% set number = 5 %}
  347.                                 {% set multipleSelection = [true, 5, ['print', 'suspend_end', 'cancel']] %}
  348.                                 {% set hasEmailTakeCharge = false %}
  349.                                 {% set tabOpenValue = 'suspended' %}
  350.                                 {% set tab = 'suspended' %}
  351.                                 {{ block('ticketsTab') }}
  352.                             </div>
  353.                             {# Closed #}
  354.                             <div class="tab-content clearfix" id="closed">
  355.                                 {% set tickets = closedTickets %}
  356.                                 {% set number = 6 %}
  357.                                 {% set multipleSelection = [true, 6, ['closed_portal']] %}
  358.                                 {% set hasEmailTakeCharge = false %}
  359.                                 {% set tabOpenValue = 'closed' %}
  360.                                 {% set tab = 'closed' %}
  361.                                 {{ block('ticketsTab') }}
  362.                             </div>
  363.                             {# Closed on portal #}
  364.                             <div class="tab-content clearfix" id="closedPortal">
  365.                                 {% set tickets = closedPortalTickets %}
  366.                                 {% set number = 7 %}
  367.                                 {% set multipleSelection = [false, 7, null] %}
  368.                                 {% set hasEmailTakeCharge = false %}
  369.                                 {% set tabOpenValue = 'closed_on_portal' %}
  370.                                 {% set tab = 'closedPortal' %}
  371.                                 {{ block('ticketsTab') }}
  372.                             </div>
  373.                             {# Canceled #}
  374.                             <div class="tab-content clearfix" id="canceled">
  375.                                 {% set tickets = canceledTickets %}
  376.                                 {% set number = 8 %}
  377.                                 {% set multipleSelection = [true, 8, ['wrong']] %}
  378.                                 {% set hasEmailTakeCharge = false %}
  379.                                 {% set tabOpenValue = 'canceled' %}
  380.                                 {% set tab = 'canceled' %}
  381.                                 {{ block('ticketsTab') }}
  382.                             </div>
  383.                             {# Wrong #}
  384.                             <div class="tab-content clearfix" id="wrong">
  385.                                 {% set tickets = wrongTickets %}
  386.                                 {% set number = 9 %}
  387.                                 {% set multipleSelection = [true, 9, ['delete']] %}
  388.                                 {% set hasEmailTakeCharge = false %}
  389.                                 {% set tabOpenValue = 'wrong' %}
  390.                                 {% set tab = 'wrong' %}
  391.                                 {{ block('ticketsTab') }}
  392.                             </div>
  393.                         </div>
  394.                     </div>
  395.                 </div>
  396.             {% elseif app.user.getAccountTypology == 'warehouse' %}
  397.                 {# Magazzino #}
  398.                 <div class="col-12">
  399.                     <div class="tabs clearfix">
  400.                         <ul class="tab-nav clearfix">
  401.                             <li>
  402.                                 <a id="btn_tab_to_assign" href="#toAssign" class="tab_session" data-filterTab="to_assign">
  403.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Da assegnare"><i class="icon-pencil-alt font_20"></i>{{ toAssignCount }}</span>
  404.                                     <span class="d-none d-lg-block">Da assegnare ({{ toAssignCount }})</span>
  405.                                 </a>
  406.                             </li>
  407.                             <li>
  408.                                 <a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
  409.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Assegnati"><i class="icon-tag font_20"></i>{{ assignedCount }}</span>
  410.                                     <span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
  411.                                 </a>
  412.                             </li>
  413.                             <li>
  414.                                 <a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
  415.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Presi in carico"><i class="icon-cog font_20"></i>{{ takenChargeCount }}</span>
  416.                                     <span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
  417.                                 </a>
  418.                             </li>
  419.                             <li>
  420.                                 <a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
  421.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Richiesta sospensione"><i class="icon-clock font_20"></i>{{ suspensionRequestCount }}</span>
  422.                                     <span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
  423.                                 </a>
  424.                             </li>
  425.                             <li>
  426.                                 <a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
  427.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Sospesi"><i class="icon-clock font_20"></i>{{ suspendedCount }}</span>
  428.                                     <span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
  429.                                 </a>
  430.                             </li>
  431.                             <li>
  432.                                 <a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
  433.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi"><i class="icon-check font_20"></i>{{ closedCount }}</span>
  434.                                     <span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
  435.                                 </a>
  436.                             </li>
  437.                             <li>
  438.                                 <a id="btn_tab_closed_on_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_on_portal">
  439.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi su fornitore"><i class="icon-checkmark font_20"></i>{{ closedPortalCount }}</span>
  440.                                     <span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
  441.                                 </a>
  442.                             </li>
  443.                             <li>
  444.                                 <a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
  445.                                     <span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Annullati"><i class="icon-minus-sign font_20"></i>{{ canceledCount }}</span>
  446.                                     <span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
  447.                                 </a>
  448.                             </li>
  449.                             <li>
  450.                                 <a id="btn_tab_wrong" href="#wrong" class="tab_session" data-filterTab="wrong">
  451.                                     <span class="font_16 d-block d-lg-none"data-bs-toggle="tooltip" title="Errati"><i class="icon-remove-sign font_20" ></i>{{ wrongCount }}</span>
  452.                                     <span class="d-none d-lg-block">Errati ({{ wrongCount }})</span>
  453.                                 </a>
  454.                             </li>
  455.                         </ul>
  456.                         <div class="tab-container">
  457.                             {# To assign #}
  458.                             <div class="tab-content clearfix" id="toAssign">
  459.                                 {% set tickets = toAssignTickets %}
  460.                                 {% set number = 1 %}
  461.                                 {% set tabOpenValue = 'to_assign' %}
  462.                                 {% set tab = 'toAssign' %}
  463.                                 {% block ticketsTabW %}
  464.                                     <div class="row">
  465.                                         <div class="col-12 overflow_a">
  466.                                             <table class="table table-bordered table-hover font_12">
  467.                                                 <thead>
  468.                                                     <tr>
  469.                                                         <form method="get" action="{{ path ('user_ticket_list') }}">
  470.                                                             <td class="td_action"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_red" src="{{ asset (icon_delete) }}"></a></td>
  471.                                                             <td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
  472.                                                             <td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
  473.                                                             <td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
  474.                                                             <td><input type="text" class="form-control" inputmode="search" name="operation" value="{{ filters.operation|default() }}"/></td>
  475.                                                             <td><input type="text" class="form-control" id="filter_supplier_value_{{ number }}" readonly onClick="filterSuppliers{{ number }}()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_supplier_id_{{ number }}" name="supplier" value="{{ filters.supplier|default() }}"/></td>
  476.                                                             <td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
  477.                                                             <td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
  478.                                                             <td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
  479.                                                             {% if tab != 'toAssign' %}
  480.                                                                 <td><input type="text" class="form-control" inputmode="search" name="technician" value="{{ filters.technician|default() }}"/></td>
  481.                                                             {% endif %}
  482.                                                             <td><input type="text" class="form-control daterange daterange1 font_12" inputmode="search" autocomplete="off" name="datetimeStart" style="height: 38px" date-filter="range"/></td>
  483.                                                             {% if tab != 'closed' and tab != 'closedPortal' %}
  484.                                                                 <td><input type="text" class="form-control daterange daterange2 font_12" inputmode="search" autocomplete="off" name="datetimeExpiration" style="height: 38px" date-filter="range"/></td>
  485.                                                             {% else %}
  486.                                                                 <td><input type="text" class="form-control daterange daterange3 font_12" inputmode="search" autocomplete="off" name="datetimeEnd" style="height: 38px" date-filter="range"/></td>
  487.                                                             {% endif %}
  488.                                                             <td class="td_action"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_green" src="{{ asset (icon_search) }}"></button></td>
  489.                                                             <input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
  490.                                                         </form>
  491.                                                     </tr>
  492.                                                     <tr class="bg_pr color_w">
  493.                                                         <th class="td_w_60p txt_a_c">Stato</th>
  494.                                                         <th class="td_w_120p">N°</th>
  495.                                                         <th class="td_w_120p">Termid</th>
  496.                                                         <th class="td_w_150p">Cliente</th>
  497.                                                         <th class="td_w_150p">Operazione</th>
  498.                                                         <th class="td_w_150p">Fornitore</th>
  499.                                                         <th class="td_w_130p">Tariffa</th>
  500.                                                         <th class="td_w_130p">Città</th>
  501.                                                         <th class="td_w_70p txt_a_c">Prov</th>
  502.                                                         {% if tab != 'toAssign' %}
  503.                                                             <th class="td_w_150p">Tecnico</th>
  504.                                                         {% endif %}
  505.                                                         <th class="td_w_130p txt_a_c">Data/Ora ricezione</th>
  506.                                                         {% if tab != 'closed' and tab != 'closedPortal' %}
  507.                                                             <th class="td_w_130p txt_a_c">Data/Ora scadenza</th>
  508.                                                         {% else %}
  509.                                                             <th class="td_w_130p txt_a_c">Data/Ora chiusura</th>
  510.                                                         {% endif %}
  511.                                                         <th></th>
  512.                                                     </tr>
  513.                                                 </thead>
  514.                                                 <tbody>
  515.                                                     {% if tickets|length > 0 %}
  516.                                                         {% for ticket in tickets %}
  517.                                                             <tr>
  518.                                                                 <td class="txt_a_c">{{ ticket.displayStatus('icon')|raw }}</td>
  519.                                                                 <td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
  520.                                                                 <td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
  521.                                                                 <td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
  522.                                                                 <td id="ticket_operation_{{ ticket.id }}">{{ ticket.operation.value }}</td>
  523.                                                                 <td id="ticket_supplier_{{ ticket.id }}">{{ ticket.supplier }}</td>
  524.                                                                 <td id="ticket_tariff_{{ ticket.id }}">{{ ticket.operationTariffAmount.value|default() }}</td>
  525.                                                                 <td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}{% endif %}</td>
  526.                                                                 <td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
  527.                                                                 {% if tab != 'toAssign' %}
  528.                                                                     <td>{{ ticket.technician }}</td>
  529.                                                                 {% endif %}
  530.                                                                 <td class="txt_a_c">{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  531.                                                                 {% if tab != 'closed' and tab != 'closedPortal' %}
  532.                                                                     <td class="txt_a_c">{% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  533.                                                                 {% else %}
  534.                                                                     <td class="txt_a_c">{% if ticket.datetimeEnd != null %}{{ ticket.datetimeEnd|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  535.                                                                 {% endif %}
  536.                                                                 <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':ticket.id}) }}"><img class="icon_pr" data-bs-toggle="tooltip" title="Scheda" src="{{ asset(icon_sheet) }}"></a></td>
  537.                                                             </tr>
  538.                                                         {% endfor %}
  539.                                                     {% else %}
  540.                                                         {% include 'components/twig/notice_filter_no_match.html.twig' with {'colspan':'100%'} %}
  541.                                                     {% endif %}
  542.                                                 </tbody>
  543.                                             </table>
  544.                                         </div>
  545.                                         <div class="col-12 navigation txt_a_r">
  546.                                             {{ knp_pagination_render(tickets) }}
  547.                                         </div>
  548.                                     </div>
  549.                                 {% endblock %}
  550.                             </div>
  551.                             {# Assigned #}
  552.                             <div class="tab-content clearfix" id="assigned">
  553.                                 {% set tickets = assignedTickets %}
  554.                                 {% set number = 2 %}
  555.                                 {% set hasEmailTakeCharge = true %}
  556.                                 {% set tabOpenValue = 'assigned' %}
  557.                                 {% set tab = 'assigned' %}
  558.                                 {{ block('ticketsTabW') }}
  559.                             </div>
  560.                             {# Taken charge #}
  561.                             <div class="tab-content clearfix" id="takenCharge">
  562.                                 {% set tickets = takenChargeTickets %}
  563.                                 {% set number = 3 %}
  564.                                 {% set hasEmailTakeCharge = false %}
  565.                                 {% set tabOpenValue = 'taken_charge' %}
  566.                                 {% set tab = 'takenCharge' %}
  567.                                 {{ block('ticketsTabW') }}
  568.                             </div>
  569.                             {# Suspension request #}
  570.                             <div class="tab-content clearfix" id="suspensionRequest">
  571.                                 {% set tickets = suspensionRequestTickets %}
  572.                                 {% set number = 4 %}
  573.                                 {% set hasEmailTakeCharge = false %}
  574.                                 {% set tabOpenValue = 'suspension_request' %}
  575.                                 {% set tab = 'suspensionRequest' %}
  576.                                 {{ block('ticketsTabW') }}
  577.                             </div>
  578.                             {# Suspended #}
  579.                             <div class="tab-content clearfix" id="suspended">
  580.                                 {% set tickets = suspendedTickets %}
  581.                                 {% set number = 5 %}
  582.                                 {% set hasEmailTakeCharge = false %}
  583.                                 {% set tabOpenValue = 'suspended' %}
  584.                                 {% set tab = 'suspended' %}
  585.                                 {{ block('ticketsTabW') }}
  586.                             </div>
  587.                             {# Closed #}
  588.                             <div class="tab-content clearfix" id="closed">
  589.                                 {% set tickets = closedTickets %}
  590.                                 {% set number = 6 %}
  591.                                 {% set hasEmailTakeCharge = false %}
  592.                                 {% set tabOpenValue = 'closed' %}
  593.                                 {% set tab = 'closed' %}
  594.                                 {{ block('ticketsTabW') }}
  595.                             </div>
  596.                             {# Closed on portal #}
  597.                             <div class="tab-content clearfix" id="closedPortal">
  598.                                 {% set tickets = closedPortalTickets %}
  599.                                 {% set number = 7 %}
  600.                                 {% set hasEmailTakeCharge = false %}
  601.                                 {% set tabOpenValue = 'closed_on_portal' %}
  602.                                 {% set tab = 'closedPortal' %}
  603.                                 {{ block('ticketsTabW') }}
  604.                             </div>
  605.                             {# Canceled #}
  606.                             <div class="tab-content clearfix" id="canceled">
  607.                                 {% set tickets = canceledTickets %}
  608.                                 {% set number = 8 %}
  609.                                 {% set hasEmailTakeCharge = false %}
  610.                                 {% set tabOpenValue = 'canceled' %}
  611.                                 {% set tab = 'canceled' %}
  612.                                 {{ block('ticketsTabW') }}
  613.                             </div>
  614.                             {# Wrong #}
  615.                             <div class="tab-content clearfix" id="wrong">
  616.                                 {% set tickets = wrongTickets %}
  617.                                 {% set number = 9 %}
  618.                                 {% set hasEmailTakeCharge = false %}
  619.                                 {% set tabOpenValue = 'wrong' %}
  620.                                 {% set tab = 'wrong' %}
  621.                                 {{ block('ticketsTabW') }}
  622.                             </div>
  623.                         </div>
  624.                     </div>
  625.                 </div>
  626.             {% elseif app.user.getAccountTypology == 'technician' %}
  627.                 {# Tecnici #}
  628.                 <div class="col-12">
  629.                     <div class="tabs clearfix">
  630.                         <ul class="tab-nav clearfix">
  631.                             <li>
  632.                                 <a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
  633.                                     <span class="d-block d-lg-none"><i class="icon-tag" data-bs-toggle="tooltip" title="Assegnati"></i><span class="font_16">({{ assignedCount }})</span></span>
  634.                                     <span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
  635.                                 </a>
  636.                             </li>
  637.                             <li>
  638.                                 <a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
  639.                                     <span class="d-block d-lg-none"><i class="icon-cog" data-bs-toggle="tooltip" title="Presi in carico"></i><span class="font_16">({{ takenChargeCount }})</span></span>
  640.                                     <span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
  641.                                 </a>
  642.                             </li>
  643.                             <li>
  644.                                 <a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
  645.                                     <span class="d-block d-lg-none"><i class="icon-clock" data-bs-toggle="tooltip" title="Richiesta sospensione"></i><span class="font_16">({{ suspensionRequestCount }})</span></span>
  646.                                     <span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
  647.                                 </a>
  648.                             </li>
  649.                             <li>
  650.                                 <a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
  651.                                     <span class="d-block d-lg-none"><i class="icon-clock" data-bs-toggle="tooltip" title="Sospesi"></i><span class="font_16">({{ suspendedCount }})</span></span>
  652.                                     <span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
  653.                                 </a>
  654.                             </li>
  655.                             <li>
  656.                                 <a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
  657.                                     <span class="d-block d-lg-none"><i class="icon-check" data-bs-toggle="tooltip" title="Chiusi"></i><span class="font_16">({{ closedCount }})</span></span>
  658.                                     <span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
  659.                                 </a>
  660.                             </li>
  661.                             <li>
  662.                                 <a id="btn_tab_closed_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_portal">
  663.                                     <span class="d-block d-lg-none"><i class="icon-checkmark" data-bs-toggle="tooltip" title="Chiusi su fornitore"></i><span class="font_16">({{ closedPortalCount }})</span></span>
  664.                                     <span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
  665.                                 </a>
  666.                             </li>
  667.                             <li>
  668.                                 <a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
  669.                                     <span class="d-block d-lg-none"><i class="icon-remove-sign" data-bs-toggle="tooltip" title="Annullati"></i><span class="font_16">({{ canceledCount }})</span></span>
  670.                                     <span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
  671.                                 </a>
  672.                             </li>
  673.                         </ul>
  674.                         <div class="tab-container">
  675.                             {# Assigned #}
  676.                             <div class="tab-content clearfix" id="assigned">
  677.                                 {% set tickets = assignedTickets %}
  678.                                 {% set multipleSelection = [true, 11, ['print']] %}
  679.                                 {% set hasTakeOnCharge = true %}
  680.                                 {% set tabOpenValue = 'assigned' %}
  681.                                 {% block ticketsTab2 %}
  682.                                     <div class="row">
  683.                                         <div class="col-12">
  684.                                             {% if multipleSelection[0] %}
  685.                                                 {% if 'print' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_print" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Stampa</a>{% endif %}
  686.                                                 {% if 'suspend_end' in multipleSelection[2] and settingTechUnlockSuspension.value %}<a id="button_{{ multipleSelection[1] }}_suspend_end" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p">Sblocca sospensione</a>{% endif %}
  687.                                             {% endif %}
  688.                                             {% if hasTakeOnCharge %}<a href="javascript: ticketsTakeCharge()" class="button button-3d button-mini button-green f_right m_b_10p">Prendi in carico</a>{% endif %}
  689.                                         </div>
  690.                                         <div class="col-12 overflow_a">
  691.                                             <table class="table table-bordered table-hover">
  692.                                                 <thead>
  693.                                                     <tr>
  694.                                                         <form method="get" action="{{ path ('user_ticket_list') }}">
  695.                                                             <td class="td_action"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_red" src="{{ asset (icon_delete) }}"></a></td>
  696.                                                             <td><input type="text" class="form-control" inputmode="search" name="all" value="{{ filters.all|default() }}"/></td>
  697.                                                             <td class="td_action"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_green" src="{{ asset (icon_search) }}"></button></td>
  698.                                                             <input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
  699.                                                         </form>
  700.                                                     </tr>
  701.                                                     <tr class="bg_pr color_w">
  702.                                                         {% if multipleSelection[0] %}
  703.                                                             <th>
  704.                                                                 <div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
  705.                                                                     <input id="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll({{ multipleSelection[1] }})">
  706.                                                                     <label for="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="m_b_none"></label>
  707.                                                                 </div>
  708.                                                             </th>
  709.                                                         {% endif %}
  710.                                                         <th colspan="3"></th>
  711.                                                     </tr>
  712.                                                 </thead>
  713.                                                 <tbody>
  714.                                                     {% if tickets|length > 0 %}
  715.                                                         {% for ticket in tickets %}
  716.                                                             {% set ticketBg = "" %}
  717.                                                             {% set ticketTitle = "" %}
  718.                                                             {% if tabOpenValue != 'closed' and tabOpenValue != 'canceled' %}
  719.                                                                 {% if "now"|date('YmdHi') > ticket.datetimeExpiration|date('YmdHi') %}
  720.                                                                     {% set ticketBg = "bg_r_m_h" %}
  721.                                                                     {% set ticketTitle = "Scaduto" %}
  722.                                                                 {% elseif "now"|date('YmdHi') > ticket.datetimeExpiration|date_modify("-1 day")|date('YmdHi') %}
  723.                                                                     {% set ticketBg = "bg_r_m" %}
  724.                                                                     {% set ticketTitle = "Scade in un giorno" %}
  725.                                                                 {% elseif "now"|date('YmdHi') > ticket.datetimeExpiration|date_modify("-2 day")|date('YmdHi') %}
  726.                                                                     {% set ticketBg = "bg_r_l_m" %}
  727.                                                                     {% set ticketTitle = "Scade in due giorni" %}
  728.                                                                 {% endif %}
  729.                                                             {% endif %}
  730.                                                             <tr class="{{ ticketBg }}" data-bs-toggle="tooltip" title="{{ ticketTitle }}">
  731.                                                                 {% if multipleSelection[0] %}
  732.                                                                     <td class="td_action">
  733.                                                                         <div class="switch">
  734.                                                                             <input id="ticket_checkbox_{{ ticket.id }}" class="switch-toggle switch-flat-mini switch-toggle-flat ticket_{{ multipleSelection[1] }}_checkbox" type="checkbox" value="{{ ticket.id }}" onChange="javascript: updateButtons({{ multipleSelection[1] }})">
  735.                                                                             <label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
  736.                                                                         </div>
  737.                                                                     </td>
  738.                                                                 {% endif %}
  739.                                                                 <td colspan="2">
  740.                                                                     <table class="table table_no_padding m_b_none b_none font_12">
  741.                                                                         <tr><td><b>Stato</b>: {{ ticket.displayStatus('string')|raw }}</td></tr>
  742.                                                                         <tr><td><b>N°</b>: <span id="ticket_termid_{{ ticket.id }}">{{ ticket.number }}</span></td></tr>
  743.                                                                         <tr><td><b>Termid</b>: <span id="ticket_number_{{ ticket.id }}">{{ ticket.termid }}</span></td></tr>
  744.                                                                         <tr><td><b>Indirizzo</b>: {% include 'components/twig/display_address.html.twig' with {'type':'ticket', 'obj':ticket} %}</td></tr>
  745.                                                                         <tr><td><b>Cliente</b>: <span id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</span></td></tr>
  746.                                                                         <tr><td><b>Cliente - Indirizzo</b>: {% if ticket.client != null %}{% include 'components/twig/display_address.html.twig' with {'type':'client', 'obj':ticket.client} %}{% else %}---{% endif %}</td></tr>
  747.                                                                         <tr><td><b>Operazione</b>: <span id="ticket_operation_{{ ticket.id }}">{{ ticket.operation }} {% if ticket.operation.getKeyValueByValue('Dettagli operazione') and ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) != null %}<i>({{ ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Dettagli operazione')) }})</i>{% endif %}</span></td></tr>
  748.                                                                         <tr><td><b>Fornitore</b>: <span id="ticket_supplier_{{ ticket.id }}">{{ ticket.supplier }} {% if ticket.displayJsonValueByColumn('SLOT') != null %}<i>({{ ticket.displayJsonValueByColumn('SLOT') }})</i>{% endif %}</span></td></tr>
  749.                                                                         <tr><td><b>Ricezione</b>: {% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr>
  750.                                                                         <tr><td><b>Scadenza</b>: {% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr>
  751.                                                                     </table>
  752.                                                                 </td>
  753.                                                                 <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':ticket.id}) }}"><img class="icon_pr" data-bs-toggle="tooltip" title="Scheda" src="{{ asset(icon_sheet) }}"></a></td>
  754.                                                             </tr>
  755.                                                         {% endfor %}
  756.                                                     {% else %}
  757.                                                         {% include 'components/twig/notice_filter_no_match.html.twig' %}
  758.                                                     {% endif %}
  759.                                                 </tbody>
  760.                                             </table>
  761.                                         </div>
  762.                                         <div class="col-12 navigation txt_a_r">
  763.                                             {{ knp_pagination_render(tickets) }}
  764.                                         </div>
  765.                                     </div>
  766.                                 {% endblock %}
  767.                             </div>
  768.                             {# Taken charge #}
  769.                             <div class="tab-content clearfix" id="takenCharge">
  770.                                 {% set tickets = takenChargeTickets %}
  771.                                 {% set multipleSelection = [true, 12, ['print']] %}
  772.                                 {% set hasTakeOnCharge = false %}
  773.                                 {% set tabOpenValue = 'taken_charge' %}
  774.                                 {{ block('ticketsTab2') }}
  775.                             </div>
  776.                             {# Suspension request #}
  777.                             <div class="tab-content clearfix" id="suspensionRequest">
  778.                                 {% set tickets = suspensionRequestTickets %}
  779.                                 {% set multipleSelection = [false, 13, null] %}
  780.                                 {% set hasTakeOnCharge = false %}
  781.                                 {% set tabOpenValue = 'suspension_request' %}
  782.                                 {{ block('ticketsTab2') }}
  783.                             </div>
  784.                             {# Suspended #}
  785.                             <div class="tab-content clearfix" id="suspended">
  786.                                 {% set tickets = suspendedTickets %}
  787.                                 {% set multipleSelection = [true, 14, ['print', 'suspend_end']] %}
  788.                                 {% set hasTakeOnCharge = false %}
  789.                                 {% set tabOpenValue = 'suspended' %}
  790.                                 {{ block('ticketsTab2') }}
  791.                             </div>
  792.                             {# Closed #}
  793.                             <div class="tab-content clearfix" id="closed">
  794.                                 {% set tickets = closedTickets %}
  795.                                 {% set multipleSelection = [false, 15, null] %}
  796.                                 {% set hasTakeOnCharge = false %}
  797.                                 {% set tabOpenValue = 'closed' %}
  798.                                 {{ block('ticketsTab2') }}
  799.                             </div>
  800.                             {# Closed portal #}
  801.                             <div class="tab-content clearfix" id="closedPortal">
  802.                                 {% set tickets = closedPortalTickets %}
  803.                                 {% set multipleSelection = [false, 16, null] %}
  804.                                 {% set hasTakeOnCharge = false %}
  805.                                 {% set tabOpenValue = 'closed_portal' %}
  806.                                 {{ block('ticketsTab2') }}
  807.                             </div>
  808.                             {# Canceled #}
  809.                             <div class="tab-content clearfix" id="canceled">
  810.                                 {% set tickets = canceledTickets %}
  811.                                 {% set multipleSelection = [false, 17, null] %}
  812.                                 {% set hasTakeOnCharge = false %}
  813.                                 {% set tabOpenValue = 'canceled' %}
  814.                                 {{ block('ticketsTab2') }}
  815.                             </div>
  816.                         </div>
  817.                     </div>
  818.                 </div>
  819.             {% endif %}
  820.         </div>
  821.     </section>
  822.     <div id="multipleModal" class="modal fade" tabindex="-1" role="dialog">
  823.         <div class="modal-dialog modal-lg" role="document">
  824.             <div class="modal-content">
  825.                 <form action="{{ path ('user_ticket_multiple_select_action') }}" method="post">
  826.                     <div class="modal-header"><h3 class="modal-title">Ticket - Selezione multipla</h3></div>
  827.                     <div class="modal-body">
  828.                         <div class="row">
  829.                             <div class="col-12 txt_a_c">
  830.                                 <label class="modal_subtitle">Attenzione!</label><br>
  831.                                 <label class="l_s_none m_b_none f_left">Ticket selezionati:</label>
  832.                                 <table class="table table-sm font_12 b_none txt_a_l" id="tableTickets"></table>
  833.                                 <div id="divCausal" class="display_n">
  834.                                     <label class="l_s_none m_b_none f_left">Causale:</label>
  835.                                     <textarea id="textareaCausal" class="form-control min_h_150p" name="causal"></textarea>
  836.                                 </div>
  837.                                 <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-green' href='javascript:void(0)'>conferma</a> <span id="actionLabel"></span> tutti i ticket sovracitati.</p>
  838.                                 <p class="modal_paragraph">Si è sicuri di voler proseguire?</p>
  839.                             </div>
  840.                         </div>
  841.                         <input type="hidden" id="ticketsIds" name="ids">
  842.                         <input type="hidden" id="action" name="action">
  843.                         <input type="hidden" id="multipleTab" name="tab">
  844.                     </div>
  845.                     <div class="modal-footer">
  846.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  847.                         <button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
  848.                     </div>
  849.                 </form>
  850.             </div>
  851.         </div>
  852.     </div>
  853.     {% if app.user.getAccountTypology == 'agency' %}
  854.         <div id="assignTechnicianModal" class="modal fade" tabindex="-1" role="dialog">
  855.             <div class="modal-dialog" role="document">
  856.                 <div class="modal-content">
  857.                     {{ form_start(formAssignTechnician, {'attr': {'novalidate': 'novalidate'}}) }} 
  858.                         <div class="modal-header"><h3 class="modal-title">Ticket - <span id="tech_span" class="color_w"></span> tecnico</h3></div>
  859.                         <div class="modal-body">
  860.                             <div class="row">
  861.                                 <div class="col-12 form-group">
  862.                                     <label class="form_label">Tecnico (N° ticket: in corso / sospesi)*</label>
  863.                                     <div {{ form_errors(formAssignTechnician.technician) }}>
  864.                                         {{ form_widget(formAssignTechnician.technician, {'attr':{'class':'form-control form-select'}}) }}
  865.                                     </div>
  866.                                 </div>
  867.                             </div>
  868.                             <input type="hidden" id="technicianTicketsIds" name="ids">
  869.                         </div>
  870.                         <div class="modal-footer">
  871.                             <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  872.                             <button type="submit" class="button button-3d button-mini button-green f_right" id="tech_btn"></button>
  873.                         </div>
  874.                     {{ form_end(formAssignTechnician) }}
  875.                 </div>
  876.             </div>
  877.         </div>
  878.         
  879.         <div id="emailTakeChargeModal" class="modal fade" tabindex="-1" role="dialog">
  880.             <div class="modal-dialog" role="document">
  881.                 <div class="modal-content">
  882.                     <form action="{{ path ('user_ticket_send_email_take_charge') }}" method="post">
  883.                         <div class="modal-header"><h3 class="modal-title">Ticket - Email di notifica prendi in carico</h3></div>
  884.                         <div class="modal-body">
  885.                             <div class="row">
  886.                                 <div class="col-12 txt_a_c">
  887.                                     <label class="modal_subtitle">Attenzione!</label>
  888.                                     <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-green' href='javascript:void(0)'>conferma</a> invierai a tutti i tecnici che hanno dei ticket assegnati ma non presi in carico la notifica.<br>Si è sicuri di voler proseguire?</p>
  889.                                 </div>
  890.                             </div>
  891.                         </div>
  892.                         <div class="modal-footer">
  893.                             <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  894.                             <button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
  895.                         </div>
  896.                     </form>
  897.                 </div>
  898.             </div>
  899.         </div>
  900.     {% elseif app.user.getAccountTypology == 'technician' %}
  901.         <div id="takeChargeModal" class="modal fade" tabindex="-1" role="dialog">
  902.             <div class="modal-dialog" role="document">
  903.                 <div class="modal-content">
  904.                     <form action="{{ path ('user_ticket_take_charge') }}" method="post">
  905.                         <div class="modal-header"><h3 class="modal-title">Ticket - Prendi in carico</h3></div>
  906.                         <div class="modal-body">
  907.                             <div class="row">
  908.                                 <div class="col-12 txt_a_c">
  909.                                     <label class="modal_subtitle">Attenzione!</label>
  910.                                     <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-green' href='javascript:void(0)'>conferma</a> prenderai in carico tutti i ticket che ti sono stati assegnati.<br>Si è sicuri di voler proseguire?</p>
  911.                                 </div>
  912.                             </div>
  913.                         </div>
  914.                         <div class="modal-footer">
  915.                             <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  916.                             <button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
  917.                         </div>
  918.                     </form>
  919.                 </div>
  920.             </div>
  921.         </div>
  922.     {% endif %}
  923.     {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
  924.         {% include 'components/modals/filter_supplier.html.twig' with {'number':0, 'suppliers':suppliers} %}
  925.         {% include 'components/modals/filter_supplier.html.twig' with {'number':1, 'suppliers':suppliers} %}
  926.         {% include 'components/modals/filter_supplier.html.twig' with {'number':2, 'suppliers':suppliers} %}
  927.         {% include 'components/modals/filter_supplier.html.twig' with {'number':3, 'suppliers':suppliers} %}
  928.         {% include 'components/modals/filter_supplier.html.twig' with {'number':4, 'suppliers':suppliers} %}
  929.         {% include 'components/modals/filter_supplier.html.twig' with {'number':5, 'suppliers':suppliers} %}
  930.         {% include 'components/modals/filter_supplier.html.twig' with {'number':6, 'suppliers':suppliers} %}
  931.         {% include 'components/modals/filter_supplier.html.twig' with {'number':7, 'suppliers':suppliers} %}
  932.         {% include 'components/modals/filter_supplier.html.twig' with {'number':8, 'suppliers':suppliers} %}
  933.         {% include 'components/modals/filter_supplier.html.twig' with {'number':9, 'suppliers':suppliers} %}
  934.         {% include 'components/modals/filter_operation.html.twig' with {'number':0, 'operations':operations} %}
  935.         {% include 'components/modals/filter_operation.html.twig' with {'number':1, 'operations':operations} %}
  936.         {% include 'components/modals/filter_operation.html.twig' with {'number':2, 'operations':operations} %}
  937.         {% include 'components/modals/filter_operation.html.twig' with {'number':3, 'operations':operations} %}
  938.         {% include 'components/modals/filter_operation.html.twig' with {'number':4, 'operations':operations} %}
  939.         {% include 'components/modals/filter_operation.html.twig' with {'number':5, 'operations':operations} %}
  940.         {% include 'components/modals/filter_operation.html.twig' with {'number':6, 'operations':operations} %}
  941.         {% include 'components/modals/filter_operation.html.twig' with {'number':7, 'operations':operations} %}
  942.         {% include 'components/modals/filter_operation.html.twig' with {'number':8, 'operations':operations} %}
  943.         {% include 'components/modals/filter_operation.html.twig' with {'number':9, 'operations':operations} %}
  944.     {% endif %}
  945. {% endblock %}
  946. {% block javascripts %}
  947. {{ parent() }}
  948. {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
  949.     {% include 'components/js/sort_js.html.twig' with {'number':0, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_0', 'sort_order':'sort_order_0', 'formName':'formFilter_0', 'arrowClass':'filter_arrow'} %}
  950.     {% include 'components/js/sort_js.html.twig' with {'number':1, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_1', 'sort_order':'sort_order_1', 'formName':'formFilter_1', 'arrowClass':'filter_arrow'} %}
  951.     {% include 'components/js/sort_js.html.twig' with {'number':2, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_2', 'sort_order':'sort_order_2', 'formName':'formFilter_2', 'arrowClass':'filter_arrow'} %}
  952.     {% include 'components/js/sort_js.html.twig' with {'number':3, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_3', 'sort_order':'sort_order_3', 'formName':'formFilter_3', 'arrowClass':'filter_arrow'} %}
  953.     {% include 'components/js/sort_js.html.twig' with {'number':4, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_4', 'sort_order':'sort_order_4', 'formName':'formFilter_4', 'arrowClass':'filter_arrow'} %}
  954.     {% include 'components/js/sort_js.html.twig' with {'number':5, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_5', 'sort_order':'sort_order_5', 'formName':'formFilter_5', 'arrowClass':'filter_arrow'} %}
  955.     {% include 'components/js/sort_js.html.twig' with {'number':6, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_6', 'sort_order':'sort_order_6', 'formName':'formFilter_6', 'arrowClass':'filter_arrow'} %}
  956.     {% include 'components/js/sort_js.html.twig' with {'number':7, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_7', 'sort_order':'sort_order_7', 'formName':'formFilter_7', 'arrowClass':'filter_arrow'} %}
  957.     {% include 'components/js/sort_js.html.twig' with {'number':8, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_8', 'sort_order':'sort_order_8', 'formName':'formFilter_8', 'arrowClass':'filter_arrow'} %}
  958.     {% include 'components/js/sort_js.html.twig' with {'number':9, 'actualSortField':filters.sortField, 'actualSortOrder':filters.sortOrder, 'sort_field':'sort_field_9', 'sort_order':'sort_order_9', 'formName':'formFilter_9', 'arrowClass':'filter_arrow'} %}
  959.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':0, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  960.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':1, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  961.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':2, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  962.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':3, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  963.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':4, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  964.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':5, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  965.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':6, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  966.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':7, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  967.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':8, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  968.     {% include 'components/js/filter_supplier_js.html.twig' with {'number':9, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
  969.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':0, 'operations':operations, 'filterOperation':filters.operation} %}
  970.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':1, 'operations':operations, 'filterOperation':filters.operation} %}
  971.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':2, 'operations':operations, 'filterOperation':filters.operation} %}
  972.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':3, 'operations':operations, 'filterOperation':filters.operation} %}
  973.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':4, 'operations':operations, 'filterOperation':filters.operation} %}
  974.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':5, 'operations':operations, 'filterOperation':filters.operation} %}
  975.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':6, 'operations':operations, 'filterOperation':filters.operation} %}
  976.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':7, 'operations':operations, 'filterOperation':filters.operation} %}
  977.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':8, 'operations':operations, 'filterOperation':filters.operation} %}
  978.     {% include 'components/js/filter_operation_group_js.html.twig' with {'number':9, 'operations':operations, 'filterOperation':filters.operation} %}
  979.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_0', 'format':'DD-MM-YYYY HH:mm'} %}
  980.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_1', 'format':'DD-MM-YYYY HH:mm'} %}
  981.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_1', 'format':'DD-MM-YYYY HH:mm'} %}
  982.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_1', 'format':'DD-MM-YYYY HH:mm'} %}
  983.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_1', 'format':'DD-MM-YYYY HH:mm'} %}
  984.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_1', 'format':'DD-MM-YYYY HH:mm'} %}
  985.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_1', 'format':'DD-MM-YYYY HH:mm'} %}
  986.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_1', 'format':'DD-MM-YYYY HH:mm'} %}
  987.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_1', 'format':'DD-MM-YYYY HH:mm'} %}
  988.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_1', 'format':'DD-MM-YYYY HH:mm'} %}
  989.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_2', 'format':'DD-MM-YYYY HH:mm'} %}
  990.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_2', 'format':'DD-MM-YYYY HH:mm'} %}
  991.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_2', 'format':'DD-MM-YYYY HH:mm'} %}
  992.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_2', 'format':'DD-MM-YYYY HH:mm'} %}
  993.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_2', 'format':'DD-MM-YYYY HH:mm'} %}
  994.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_2', 'format':'DD-MM-YYYY HH:mm'} %}
  995.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_2', 'format':'DD-MM-YYYY HH:mm'} %}
  996.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_2', 'format':'DD-MM-YYYY HH:mm'} %}
  997.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_2', 'format':'DD-MM-YYYY HH:mm'} %}
  998.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_3', 'format':'DD-MM-YYYY HH:mm'} %}
  999.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1000.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1001.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1002.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1003.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1004.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1005.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1006.     {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1007. {% endif %}
  1008. <script>
  1009.     $(document).ready(function(){
  1010.         {% if app.session.get('tab_operation_group') != null %}
  1011.             var operationGroupInputs = document.getElementsByClassName('operation_group_input');
  1012.             for(i=0; i<operationGroupInputs.length; i++){
  1013.                 operationGroupInputs.value = "{{ app.session.get('tab_operation_group') }}";
  1014.             }
  1015.             "{{ app.session.remove('tab_operation_group') }}"
  1016.             "{{ app.session.remove('tab_technician') }}"
  1017.         {% endif %}
  1018.         {% if app.session.get('ticketsError') != null %}
  1019.             document.getElementById('ticketsIds').value = "{{ app.session.get('ticketsIds') }}";
  1020.             document.getElementById('action').value = "{{ app.session.get('ticketsAction') }}";
  1021.             var ticketsIds = "{{ app.session.get('ticketsIds') }}";
  1022.             var table = document.getElementById('tableTickets');
  1023.             table.innerHTML = '<tr><th>Numero</th><th>Cliente</th><th>Operazione</th><th>Fornitore</th></tr>';
  1024.             for(i=0; i<ticketsIds.length; i++){
  1025.                 var tr = document.createElement('tr');
  1026.                 var td1 = document.createElement('td');
  1027.                 var td2 = document.createElement('td');
  1028.                 var td3 = document.createElement('td');
  1029.                 var td4 = document.createElement('td');
  1030.                 td1.innerHTML = document.getElementById('ticket_number_' + ticketsIds[i]).innerHTML;
  1031.                 td2.innerHTML = document.getElementById('ticket_client_' + ticketsIds[i]).innerHTML;
  1032.                 td3.innerHTML = document.getElementById('ticket_operation_' + ticketsIds[i]).innerHTML;
  1033.                 td4.innerHTML = document.getElementById('ticket_supplier_' + ticketsIds[i]).innerHTML;
  1034.                 tr.appendChild(td1);
  1035.                 tr.appendChild(td2);
  1036.                 tr.appendChild(td3);
  1037.                 tr.appendChild(td4);
  1038.                 table.appendChild(tr);
  1039.             }
  1040.             switch("{{ app.session.get('ticketsAction') }}"){
  1041.                 case 'suspend':
  1042.                     var label = 'sospenderai';
  1043.                     var title = 'Inserisci una causale per la sospensione';
  1044.                     break;
  1045.                 case 'suspend_end':
  1046.                     var label = 'sbloccherai la sospensione per';
  1047.                     var title = 'Inserisci una causale per sbloccare la sospensione';
  1048.                     break;
  1049.                 default: break;
  1050.             }
  1051.             document.getElementById('actionLabel').innerHTML = label;
  1052.             document.getElementById('divCausal').style.display = 'block';
  1053.             document.getElementById('textareaCausal').style = 'border-color: #CB0C0F';
  1054.             document.getElementById('textareaCausal').setAttribute('data-bs-toggle', 'tooltip');
  1055.             document.getElementById('textareaCausal').setAttribute('data-bs-original-title', title);
  1056.             $('#multipleModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1057.             "{{ app.session.remove('ticketsError') }}"
  1058.         {% endif %}
  1059.         
  1060.         {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
  1061.             var dateRanges = document.getElementsByClassName('daterange1');
  1062.             for(i=0; i<dateRanges.length; i++){
  1063.                 {% if filters.datetimeStart != null %}
  1064.                     dateRanges[i].value = "{{ filters.datetimeStart }}";
  1065.                 {% else %}
  1066.                     dateRanges[i].value = null;
  1067.                 {% endif %}
  1068.             }
  1069.             
  1070.             var dateRanges2 = document.getElementsByClassName('daterange2');
  1071.             for(i=0; i<dateRanges2.length; i++){
  1072.                 {% if filters.datetimeExpiration != null %}
  1073.                     dateRanges2[i].value = "{{ filters.datetimeExpiration }}";
  1074.                 {% else %}
  1075.                     dateRanges2[i].value = null;
  1076.                 {% endif %}
  1077.             }
  1078.             
  1079.             var dateRanges3 = document.getElementsByClassName('daterange3');
  1080.             for(i=0; i<dateRanges3.length; i++){
  1081.                 {% if filters.datetimeEnd != null %}
  1082.                     dateRanges3[i].value = "{{ filters.datetimeEnd }}";
  1083.                 {% else %}
  1084.                     dateRanges3[i].value = null;
  1085.                 {% endif %}
  1086.             }
  1087.         {% endif %}
  1088.     });
  1089.     {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
  1090.         function assignTechnician(type, index){
  1091.             var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
  1092.             const array = [];
  1093.             for(i=0; i<checkboxes.length; i++){
  1094.                 if(checkboxes[i].checked)
  1095.                     array.push(checkboxes[i].value);
  1096.             }
  1097.             
  1098.             document.getElementById('technicianTicketsIds').value = array;
  1099.             switch(type){
  1100.                 case 'assign': document.getElementById('tech_span').innerHTML = 'Assegna'; document.getElementById('tech_btn').innerHTML = 'Assegna'; break;
  1101.                 case 'change': document.getElementById('tech_span').innerHTML = 'Cambia'; document.getElementById('tech_btn').innerHTML = 'Cambia'; break;
  1102.                 default: break;
  1103.             }
  1104.             $('#assignTechnicianModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1105.         }
  1106.         function sendEmailTakeCharge(){
  1107.             $('#emailTakeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1108.         }
  1109.     {% elseif app.user.getAccountTypology == 'technician' %}
  1110.         function ticketsTakeCharge(){
  1111.             $('#takeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1112.         }
  1113.     {% endif %}
  1114.     function selectAll(index){
  1115.         var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
  1116.         var isSelect = document.getElementById("ticket_" + index + "_all_checkboxes").checked;
  1117.         for(i=0; i<checkboxes.length; i++)
  1118.             checkboxes[i].checked = isSelect;
  1119.         updateButtons(index);
  1120.     }
  1121.     
  1122.     function updateButtons(index){
  1123.         var inputSelectAll = document.getElementById('ticket_' + index + '_all_checkboxes');
  1124.         var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
  1125.         switch(index){
  1126.             case 0: var buttonAction = document.getElementById('button_' + index + '_wrong'); break;
  1127.             case 1: var buttonAction = document.getElementById('button_' + index + '_assign'); break;
  1128.             case 4: var buttonAction = document.getElementById('button_' + index + '_cancel'); break;
  1129.             case 6: var buttonAction = document.getElementById('button_' + index + '_closed_portal'); break;
  1130.             case 8: var buttonAction = document.getElementById('button_' + index + '_wrong'); break;
  1131.             case 9: var buttonAction = document.getElementById('button_' + index + '_delete'); break;
  1132.             case 2:
  1133.             case 3:
  1134.             case 5:
  1135.             case 11:
  1136.             case 12:
  1137.             case 14: var buttonAction = document.getElementById('button_' + index + '_print'); break;
  1138.             default: break;
  1139.         }
  1140.         switch(index){
  1141.             case 1: 
  1142.             case 2: var buttonAction2 = document.getElementById('button_' + index + '_cancel'); break;
  1143.             case 3: var buttonAction2 = document.getElementById('button_' + index + '_suspend'); break;
  1144.             case 4: var buttonAction2 = document.getElementById('button_' + index + '_approve'); break;
  1145.             case 5:
  1146.             case 14: var buttonAction2 = document.getElementById('button_' + index + '_suspend_end'); break;
  1147.             default: break;
  1148.         }
  1149.         switch(index){
  1150.             case 1:
  1151.             case 2: var buttonAction3 = document.getElementById('button_' + index + '_suspend'); break;
  1152.             case 3:
  1153.             case 5: var buttonAction3 = document.getElementById('button_' + index + '_cancel'); break;
  1154.             default: break;
  1155.         }
  1156.         switch(index){
  1157.             case 2:
  1158.                 var buttonAction4 = document.getElementById('button_' + index + '_change');
  1159.             case 3:
  1160.                 var buttonAction4 = document.getElementById('button_' + index + '_change');
  1161.                 var buttonAction5 = document.getElementById('button_' + index + '_urge');
  1162.                 break;
  1163.             default: break;
  1164.         }
  1165.         var isAllSelected = true;
  1166.         const array = [];
  1167.         for(i=0; i<checkboxes.length; i++){
  1168.             if(checkboxes[i].checked){
  1169.                 array.push(checkboxes[i].value);
  1170.             }
  1171.             else
  1172.                 isAllSelected = false;
  1173.         }
  1174.         
  1175.         if(!isAllSelected)
  1176.             inputSelectAll.checked = false;
  1177.         
  1178.         if(array.length > 0){
  1179.             buttonAction.className = "button button-3d button-mini button-green f_right m_b_10p";
  1180.             if(buttonAction2 != null) buttonAction2.className = "button button-3d button-mini button-green f_right m_b_10p";
  1181.             if(buttonAction3 != null) buttonAction3.className = "button button-3d button-mini button-green f_right m_b_10p";
  1182.             if(buttonAction4 != null) buttonAction4.className = "button button-3d button-mini button-green f_right m_b_10p";
  1183.             if(buttonAction5 != null) buttonAction5.className = "button button-3d button-mini button-green f_right m_b_10p";
  1184.             switch(index){
  1185.                 case 0: buttonAction.href = "javascript: sendAction('wrong', " + index + ")"; break;
  1186.                 case 1: buttonAction.href = "javascript: assignTechnician('assign', " + index + ")"; break;
  1187.                 case 4: buttonAction.href = "javascript: sendAction('cancel', " + index + ")"; break;
  1188.                 case 6: buttonAction.href = "javascript: sendAction('closed_portal', " + index + ")"; break;
  1189.                 case 8: buttonAction.href = "javascript: sendAction('wrong', " + index + ")"; break;
  1190.                 case 9: buttonAction.href = "javascript: sendAction('delete', " + index + ")"; break;
  1191.                 case 2: 
  1192.                 case 3: 
  1193.                 case 5: 
  1194.                 case 11: 
  1195.                 case 12: 
  1196.                 case 14: buttonAction.href = "javascript: sendAction('print', " + index + ")"; break;
  1197.                 default: break;
  1198.             }
  1199.             switch(index){
  1200.                 case 1: 
  1201.                 case 2: buttonAction2.href = "javascript: sendAction('cancel', " + index + ")"; break;
  1202.                 case 3: buttonAction2.href = "javascript: sendAction('suspend', " + index + ")"; break;
  1203.                 case 4: buttonAction2.href = "javascript: sendAction('approve', " + index + ")"; break;
  1204.                 case 5: 
  1205.                 case 14: buttonAction2.href = "javascript: sendAction('suspend_end', " + index + ")"; break;
  1206.                 default: break;
  1207.             }
  1208.             switch(index){
  1209.                 case 1:
  1210.                 case 2: buttonAction3.href = "javascript: sendAction('suspend', " + index + ")"; break;
  1211.                 case 3:
  1212.                 case 5: buttonAction3.href = "javascript: sendAction('cancel', " + index + ")"; break;
  1213.                 default: break;
  1214.             }
  1215.             switch(index){
  1216.                 case 2:
  1217.                     buttonAction4.href = "javascript: assignTechnician('change', " + index + ")";
  1218.                     break;
  1219.                 case 3:
  1220.                     buttonAction4.href = "javascript: assignTechnician('change', " + index + ")";
  1221.                     buttonAction5.href = "javascript: sendAction('urge', " + index + ")";
  1222.                     break;
  1223.                 default: break;
  1224.             }
  1225.         }
  1226.         else{
  1227.             buttonAction.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1228.             buttonAction.href = "javascript: void(0)";
  1229.             if(buttonAction2 != null){
  1230.                 buttonAction2.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1231.                 buttonAction2.href = "javascript: void(0)";
  1232.             }
  1233.             if(buttonAction3 != null){
  1234.                 buttonAction3.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1235.                 buttonAction3.href = "javascript: void(0)";
  1236.             }
  1237.             if(buttonAction4 != null){
  1238.                 buttonAction4.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1239.                 buttonAction4.href = "javascript: void(0)";
  1240.             }
  1241.             if(buttonAction5 != null){
  1242.                 buttonAction5.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1243.                 buttonAction5.href = "javascript: void(0)";
  1244.             }
  1245.         }
  1246.     }
  1247.     function sendAction(action, index){
  1248.         var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
  1249.         const array = [];
  1250.         for(i=0; i<checkboxes.length; i++){
  1251.             if(checkboxes[i].checked)
  1252.                 array.push(checkboxes[i].value);
  1253.         }
  1254.         document.getElementById('ticketsIds').value = array;
  1255.         document.getElementById('action').value = action;
  1256.         {{ app.session.set('printIndex', 0) }}
  1257.         document.getElementById('divCausal').style.display = 'none';
  1258.         switch(action){
  1259.             case 'wrong': var label = 'renderai errati'; break;
  1260.             case 'print': var label = 'stamperai'; break;
  1261.             case 'take_charge': var label = 'prenderai in carico'; break;
  1262.             case 'suspend': var label = 'sospenderai'; document.getElementById('divCausal').style.display = 'block'; break;
  1263.             case 'suspend_end': var label = 'sbloccherai la sospensione per'; document.getElementById('divCausal').style.display = 'block'; break;
  1264.             case 'cancel': var label = 'annullerai'; break;
  1265.             case 'approve': var label = 'approverai le sospensioni di'; break;
  1266.             case 'delete': var label = 'eliminerai definitivamente'; break;
  1267.             case 'urge': var label = 'solleciterai il tecnico a completare'; break;
  1268.         }
  1269.         document.getElementById('actionLabel').innerHTML = label;
  1270.         var table = document.getElementById('tableTickets');
  1271.         table.innerHTML = '<tr><th>Numero</th><th>Cliente</th><th>Operazione</th><th>Fornitore</th></tr>';
  1272.         for(i=0; i<array.length; i++){
  1273.             var tr = document.createElement('tr');
  1274.             var td1 = document.createElement('td');
  1275.             var td2 = document.createElement('td');
  1276.             var td3 = document.createElement('td');
  1277.             var td4 = document.createElement('td');
  1278.             td1.innerHTML = document.getElementById('ticket_number_' + array[i]).innerHTML;
  1279.             td2.innerHTML = document.getElementById('ticket_client_' + array[i]).innerHTML;
  1280.             td3.innerHTML = document.getElementById('ticket_operation_' + array[i]).innerHTML;
  1281.             td4.innerHTML = document.getElementById('ticket_supplier_' + array[i]).innerHTML;
  1282.             tr.appendChild(td1);
  1283.             tr.appendChild(td2);
  1284.             tr.appendChild(td3);
  1285.             tr.appendChild(td4);
  1286.             table.appendChild(tr);
  1287.         }
  1288.         switch(index){            
  1289.             case 0: document.getElementById('multipleTab').value = 'error'; break;
  1290.             case 1: document.getElementById('multipleTab').value = 'to_assign'; break;
  1291.             case 2: document.getElementById('multipleTab').value = 'assigned'; break;
  1292.             case 3: document.getElementById('multipleTab').value = 'taken_charge'; break;
  1293.             case 4: document.getElementById('multipleTab').value = 'suspension_request'; break;
  1294.             case 5: document.getElementById('multipleTab').value = 'suspended'; break;
  1295.             case 6: document.getElementById('multipleTab').value = 'closed'; break;
  1296.             case 8: document.getElementById('multipleTab').value = 'canceled'; break;
  1297.             case 9: document.getElementById('multipleTab').value = 'wrong'; break;
  1298.             case 11: document.getElementById('multipleTab').value = 'assigned'; break;
  1299.             case 12: document.getElementById('multipleTab').value = 'taken_charge'; break;
  1300.             case 14: document.getElementById('multipleTab').value = 'suspended'; break;
  1301.             default: break;
  1302.         }
  1303.         $('#multipleModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1304.     }
  1305. </script>
  1306. {% endblock %}