{% extends 'role/user/ticket/index.html.twig' %}
{% block title %}Ticket - Lista{% endblock %}
{% block pageTitleH1 %}Ticket - Lista{% endblock %}
{% block pageTitleBreadcrumb %}
<li class="breadcrumb-item"><a href="{{ path ('user_tickets') }}">Ticket</a></li>
<li class="breadcrumb-item"><a href="javascript:void(0)">Lista</a></li>
{% endblock %}
{% block subMenuLeft %}
<li class="nav-item"><a class="nav-link" href="{{ path ('user_index') }}">Scrivania</a></li>
{% endblock %}
{% block subMenuRight %}
{% if app.user.getAccountTypology == 'agency' %}
<li class="nav-item"><a class="nav-link" href="{{ path('user_ticket_download_email') }}">Scarica da email</a></li>
{% 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 %}
{% endif %}
{% endblock %}
{% block content %}
<section class="m_tb_50p p_lr_30p">
<div class="row">
<div class="col-12">
<h3 class="form_title">Ticket</h3>
<hr class="m_t_none">
</div>
{% if app.user.getAccountTypology == 'agency' %}
{# Agenzia #}
<div class="col-12">
<div class="tabs clearfix">
<ul class="tab-nav clearfix">
<li>
<a id="btn_tab_error" href="#error" class="tab_session" data-filterTab="error">
<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>
<span class="d-none d-lg-block">Con errori ({{ errorCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_to_assign" href="#toAssign" class="tab_session" data-filterTab="to_assign">
<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>
<span class="d-none d-lg-block">Da assegnare ({{ toAssignCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Assegnati"><i class="icon-tag font_20"></i>{{ assignedCount }}</span>
<span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
<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>
<span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
<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>
<span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Sospesi"><i class="icon-clock font_20"></i>{{ suspendedCount }}</span>
<span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi"><i class="icon-check font_20"></i>{{ closedCount }}</span>
<span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed_on_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_on_portal">
<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>
<span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
<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>
<span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_wrong" href="#wrong" class="tab_session" data-filterTab="wrong">
<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>
<span class="d-none d-lg-block">Errati ({{ wrongCount }})</span>
</a>
</li>
</ul>
<div class="tab-container">
{# Con errori #}
<div class="tab-content clearfix" id="error">
<div class="row">
<div class="col-12">
<a id="button_0_wrong" href="javascript: void()" class="button button-3d button-mini button-grey f_right m_b_10p">Errato</a>
</div>
<div class="col-12 overflow_a">
<table class="table table-bordered table-hover font_12">
<thead>
<tr>
<form method="get" action="{{ path ('user_ticket_list') }}" id="formFilter_0">
<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>
<td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
<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>
<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>
<td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
<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>
<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>
<input id="sort_field_0" type="hidden" name="sortField" value="{{ filters.sortField|default() }}"/>
<input id="sort_order_0" type="hidden" name="sortOrder" value="{{ filters.sortOrder|default() }}"/>
</form>
</tr>
<tr class="bg_pr color_w">
<th class="td_action txt_a_c">
<div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
<input id="ticket_0_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll(0)">
<label for="ticket_0_all_checkboxes" class="m_b_none"></label>
</div>
</th>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<th>Descrizione errore</th>
<th></th>
</tr>
</thead>
<tbody>
{% if errorTickets|length > 0 %}
{% for ticket in errorTickets %}
<tr>
<td class="td_w_30p">
<div class="switch">
<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)">
<label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
</div>
</td>
<td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
<td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
<td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
<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')) }}
{% if ticket.operation.getKeyValueByValue('Cluster') and ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Cluster')) != null %}
Cluster {{ ticket.displayJsonValueByColumn(ticket.operation.getKeyValueByValue('Cluster'))}}
{% endif %}
)</i>
{% endif %}
</td>
<td id="ticket_supplier_{{ ticket.id }}">{{ ticket.operation.supplier }}{% if ticket.displayJsonValueByColumn('SLOT') != null %}<br><i>({{ ticket.displayJsonValueByColumn('SLOT') }})</i>{% endif %}</td>
<td>{% if ticket.operationTariffAmount != null %}{{ ticket.operationTariffAmount.value|default() }}{% endif %}</td>
<td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}{% endif %}</td>
<td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
<td>{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
<td>{{ ticket.systemErrorDetails|raw }}</td>
<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>
</tr>
{% endfor %}
{% else %}
{% include 'components/twig/notice_filter_no_match.html.twig' %}
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
{# To assign #}
<div class="tab-content clearfix" id="toAssign">
{% set tickets = toAssignTickets %}
{% set number = 1 %}
{% set multipleSelection = [true, 1, ['assign', 'suspend', 'cancel']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'to_assign' %}
{% set tab = 'toAssign' %}
{% block ticketsTab %}
<div class="row">
<div class="col-12">
{% if multipleSelection[0] %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% 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 %}
{% endif %}
{% 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 %}
</div>
<div class="col-12 overflow_a">
<table class="table table-bordered table-hover font_12">
<thead>
<tr>
<form method="get" action="{{ path ('user_ticket_list') }}" id="formFilter_{{ multipleSelection[1] }}">
<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>
<td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
<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>
<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>
<td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
{% if tab != 'toAssign' %}
<td><input type="text" class="form-control" inputmode="search" name="technician" value="{{ filters.technician|default() }}"/></td>
{% endif %}
<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>
{% if tab != 'closed' and tab != 'closedPortal' %}
<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>
{% else %}
<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>
{% endif %}
<td><input type="text" class="form-control" inputmode="search" name="waybill" value="{{ filters.waybill|default() }}"/></td>
<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>
<input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
<input id="sort_field_{{ multipleSelection[1] }}" type="hidden" name="sortField" value="{{ filters.sortField|default() }}"/>
<input id="sort_order_{{ multipleSelection[1] }}" type="hidden" name="sortOrder" value="{{ filters.sortOrder|default() }}"/>
</form>
</tr>
<tr class="bg_pr color_w">
{% if multipleSelection[0] %}
<th class="td_action txt_a_c">
<div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
<input id="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll({{ multipleSelection[1] }})">
<label for="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="m_b_none"></label>
</div>
</th>
{% endif %}
<th class="td_w_60p txt_a_c">Stato</th>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
{% if tab != 'toAssign' %}
<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>
{% endif %}
<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>
{% if tab != 'closed' and tab != 'closedPortal' %}
<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>
{% else %}
<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>
{% endif %}
<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>
<th></th>
</tr>
</thead>
<tbody>
{% if tickets|length > 0 %}
{% for ticket in tickets %}
<tr>
{% if multipleSelection[0] %}
<td class="td_w_30p">
<div class="switch">
<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] }})">
<label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
</div>
</td>
{% endif %}
<td class="txt_a_c">{{ ticket.displayStatus('icon')|raw }}</td>
<td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
<td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
<td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
<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>
<td id="ticket_supplier_{{ ticket.id }}">{{ ticket.supplier }}{% if ticket.displayJsonValueByColumn('SLOT') != null %}<br><i>({{ ticket.displayJsonValueByColumn('SLOT') }})</i>{% endif %}</td>
<td>{% if ticket.operationTariffAmount != null %}{{ ticket.operationTariffAmount.value|default() }}{% endif %}</td>
<td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}<br><i>({{ ticket.address }})</i>{% endif %}</td>
<td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
{% if tab != 'toAssign' %}
<td>{{ ticket.technician }}</td>
{% endif %}
<td class="txt_a_c">{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% if tab != 'closed' and tab != 'closedPortal' %}
<td class="txt_a_c">{% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% else %}
<td class="txt_a_c">{% if ticket.datetimeEnd != null %}{{ ticket.datetimeEnd|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% endif %}
<td>{{ ticket.waybill }}</td>
<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>
</tr>
{% endfor %}
{% else %}
{% include 'components/twig/notice_filter_no_match.html.twig' %}
{% endif %}
</tbody>
</table>
</div>
<div class="col-12 navigation txt_a_r">
{{ knp_pagination_render(tickets) }}
</div>
</div>
{% endblock %}
</div>
{# Assigned #}
<div class="tab-content clearfix" id="assigned">
{% set tickets = assignedTickets %}
{% set number = 2 %}
{% set multipleSelection = [true, 2, ['print', 'suspend', 'cancel', 'change']] %}
{% set hasEmailTakeCharge = true %}
{% set tabOpenValue = 'assigned' %}
{% set tab = 'assigned' %}
{{ block('ticketsTab') }}
</div>
{# Taken charge #}
<div class="tab-content clearfix" id="takenCharge">
{% set tickets = takenChargeTickets %}
{% set number = 3 %}
{% if settingBackOffice %} {# SE ACCOUNT AGENZIA E BACKOFFICE GESTISCE TICKET #}
{% set multipleSelection = [true, 3, ['print', 'suspend', 'cancel', 'change', 'urge']] %}
{% else %}
{% set multipleSelection = [true, 3, ['suspend', 'cancel', 'change', 'urge']] %}
{% endif %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'taken_charge' %}
{% set tab = 'takenCharge' %}
{{ block('ticketsTab') }}
</div>
{# Suspension request #}
<div class="tab-content clearfix" id="suspensionRequest">
{% set tickets = suspensionRequestTickets %}
{% set number = 4 %}
{% set multipleSelection = [true, 4, ['cancel', 'approve']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'suspension_request' %}
{% set tab = 'suspensionRequest' %}
{{ block('ticketsTab') }}
</div>
{# Suspended #}
<div class="tab-content clearfix" id="suspended">
{% set tickets = suspendedTickets %}
{% set number = 5 %}
{% set multipleSelection = [true, 5, ['print', 'suspend_end', 'cancel']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'suspended' %}
{% set tab = 'suspended' %}
{{ block('ticketsTab') }}
</div>
{# Closed #}
<div class="tab-content clearfix" id="closed">
{% set tickets = closedTickets %}
{% set number = 6 %}
{% set multipleSelection = [true, 6, ['closed_portal']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'closed' %}
{% set tab = 'closed' %}
{{ block('ticketsTab') }}
</div>
{# Closed on portal #}
<div class="tab-content clearfix" id="closedPortal">
{% set tickets = closedPortalTickets %}
{% set number = 7 %}
{% set multipleSelection = [false, 7, null] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'closed_on_portal' %}
{% set tab = 'closedPortal' %}
{{ block('ticketsTab') }}
</div>
{# Canceled #}
<div class="tab-content clearfix" id="canceled">
{% set tickets = canceledTickets %}
{% set number = 8 %}
{% set multipleSelection = [true, 8, ['wrong']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'canceled' %}
{% set tab = 'canceled' %}
{{ block('ticketsTab') }}
</div>
{# Wrong #}
<div class="tab-content clearfix" id="wrong">
{% set tickets = wrongTickets %}
{% set number = 9 %}
{% set multipleSelection = [true, 9, ['delete']] %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'wrong' %}
{% set tab = 'wrong' %}
{{ block('ticketsTab') }}
</div>
</div>
</div>
</div>
{% elseif app.user.getAccountTypology == 'warehouse' %}
{# Magazzino #}
<div class="col-12">
<div class="tabs clearfix">
<ul class="tab-nav clearfix">
<li>
<a id="btn_tab_to_assign" href="#toAssign" class="tab_session" data-filterTab="to_assign">
<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>
<span class="d-none d-lg-block">Da assegnare ({{ toAssignCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Assegnati"><i class="icon-tag font_20"></i>{{ assignedCount }}</span>
<span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
<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>
<span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
<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>
<span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Sospesi"><i class="icon-clock font_20"></i>{{ suspendedCount }}</span>
<span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
<span class="font_16 d-block d-lg-none" data-bs-toggle="tooltip" title="Chiusi"><i class="icon-check font_20"></i>{{ closedCount }}</span>
<span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed_on_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_on_portal">
<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>
<span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
<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>
<span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_wrong" href="#wrong" class="tab_session" data-filterTab="wrong">
<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>
<span class="d-none d-lg-block">Errati ({{ wrongCount }})</span>
</a>
</li>
</ul>
<div class="tab-container">
{# To assign #}
<div class="tab-content clearfix" id="toAssign">
{% set tickets = toAssignTickets %}
{% set number = 1 %}
{% set tabOpenValue = 'to_assign' %}
{% set tab = 'toAssign' %}
{% block ticketsTabW %}
<div class="row">
<div class="col-12 overflow_a">
<table class="table table-bordered table-hover font_12">
<thead>
<tr>
<form method="get" action="{{ path ('user_ticket_list') }}">
<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>
<td><input type="text" class="form-control" inputmode="search" name="number" value="{{ filters.number|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="termid" value="{{ filters.termid|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="client" value="{{ filters.client|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="operation" value="{{ filters.operation|default() }}"/></td>
<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>
<td><input type="text" class="form-control" inputmode="search" name="tariff" value="{{ filters.tariff|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="city" value="{{ filters.city|default() }}"/></td>
<td><input type="text" class="form-control" inputmode="search" name="province" value="{{ filters.province|default() }}"/></td>
{% if tab != 'toAssign' %}
<td><input type="text" class="form-control" inputmode="search" name="technician" value="{{ filters.technician|default() }}"/></td>
{% endif %}
<td><input type="text" class="form-control daterange daterange1 font_12" inputmode="search" autocomplete="off" name="datetimeStart" style="height: 38px" date-filter="range"/></td>
{% if tab != 'closed' and tab != 'closedPortal' %}
<td><input type="text" class="form-control daterange daterange2 font_12" inputmode="search" autocomplete="off" name="datetimeExpiration" style="height: 38px" date-filter="range"/></td>
{% else %}
<td><input type="text" class="form-control daterange daterange3 font_12" inputmode="search" autocomplete="off" name="datetimeEnd" style="height: 38px" date-filter="range"/></td>
{% endif %}
<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>
<input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
</form>
</tr>
<tr class="bg_pr color_w">
<th class="td_w_60p txt_a_c">Stato</th>
<th class="td_w_120p">N°</th>
<th class="td_w_120p">Termid</th>
<th class="td_w_150p">Cliente</th>
<th class="td_w_150p">Operazione</th>
<th class="td_w_150p">Fornitore</th>
<th class="td_w_130p">Tariffa</th>
<th class="td_w_130p">Città</th>
<th class="td_w_70p txt_a_c">Prov</th>
{% if tab != 'toAssign' %}
<th class="td_w_150p">Tecnico</th>
{% endif %}
<th class="td_w_130p txt_a_c">Data/Ora ricezione</th>
{% if tab != 'closed' and tab != 'closedPortal' %}
<th class="td_w_130p txt_a_c">Data/Ora scadenza</th>
{% else %}
<th class="td_w_130p txt_a_c">Data/Ora chiusura</th>
{% endif %}
<th></th>
</tr>
</thead>
<tbody>
{% if tickets|length > 0 %}
{% for ticket in tickets %}
<tr>
<td class="txt_a_c">{{ ticket.displayStatus('icon')|raw }}</td>
<td id="ticket_number_{{ ticket.id }}">{{ ticket.number }}</td>
<td id="ticket_termid_{{ ticket.id }}">{{ ticket.termid }}</td>
<td id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</td>
<td id="ticket_operation_{{ ticket.id }}">{{ ticket.operation.value }}</td>
<td id="ticket_supplier_{{ ticket.id }}">{{ ticket.supplier }}</td>
<td id="ticket_tariff_{{ ticket.id }}">{{ ticket.operationTariffAmount.value|default() }}</td>
<td>{% if ticket.idCity != null %}{{ ticket.idCity|translate_city_only }}{% endif %}</td>
<td class="txt_a_c">{% if ticket.idProvince != null %}{{ ticket.idProvince|translate_province_sign }}{% endif %}</td>
{% if tab != 'toAssign' %}
<td>{{ ticket.technician }}</td>
{% endif %}
<td class="txt_a_c">{% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% if tab != 'closed' and tab != 'closedPortal' %}
<td class="txt_a_c">{% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% else %}
<td class="txt_a_c">{% if ticket.datetimeEnd != null %}{{ ticket.datetimeEnd|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
{% endif %}
<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>
</tr>
{% endfor %}
{% else %}
{% include 'components/twig/notice_filter_no_match.html.twig' with {'colspan':'100%'} %}
{% endif %}
</tbody>
</table>
</div>
<div class="col-12 navigation txt_a_r">
{{ knp_pagination_render(tickets) }}
</div>
</div>
{% endblock %}
</div>
{# Assigned #}
<div class="tab-content clearfix" id="assigned">
{% set tickets = assignedTickets %}
{% set number = 2 %}
{% set hasEmailTakeCharge = true %}
{% set tabOpenValue = 'assigned' %}
{% set tab = 'assigned' %}
{{ block('ticketsTabW') }}
</div>
{# Taken charge #}
<div class="tab-content clearfix" id="takenCharge">
{% set tickets = takenChargeTickets %}
{% set number = 3 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'taken_charge' %}
{% set tab = 'takenCharge' %}
{{ block('ticketsTabW') }}
</div>
{# Suspension request #}
<div class="tab-content clearfix" id="suspensionRequest">
{% set tickets = suspensionRequestTickets %}
{% set number = 4 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'suspension_request' %}
{% set tab = 'suspensionRequest' %}
{{ block('ticketsTabW') }}
</div>
{# Suspended #}
<div class="tab-content clearfix" id="suspended">
{% set tickets = suspendedTickets %}
{% set number = 5 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'suspended' %}
{% set tab = 'suspended' %}
{{ block('ticketsTabW') }}
</div>
{# Closed #}
<div class="tab-content clearfix" id="closed">
{% set tickets = closedTickets %}
{% set number = 6 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'closed' %}
{% set tab = 'closed' %}
{{ block('ticketsTabW') }}
</div>
{# Closed on portal #}
<div class="tab-content clearfix" id="closedPortal">
{% set tickets = closedPortalTickets %}
{% set number = 7 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'closed_on_portal' %}
{% set tab = 'closedPortal' %}
{{ block('ticketsTabW') }}
</div>
{# Canceled #}
<div class="tab-content clearfix" id="canceled">
{% set tickets = canceledTickets %}
{% set number = 8 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'canceled' %}
{% set tab = 'canceled' %}
{{ block('ticketsTabW') }}
</div>
{# Wrong #}
<div class="tab-content clearfix" id="wrong">
{% set tickets = wrongTickets %}
{% set number = 9 %}
{% set hasEmailTakeCharge = false %}
{% set tabOpenValue = 'wrong' %}
{% set tab = 'wrong' %}
{{ block('ticketsTabW') }}
</div>
</div>
</div>
</div>
{% elseif app.user.getAccountTypology == 'technician' %}
{# Tecnici #}
<div class="col-12">
<div class="tabs clearfix">
<ul class="tab-nav clearfix">
<li>
<a id="btn_tab_assigned" href="#assigned" class="tab_session" data-filterTab="assigned">
<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>
<span class="d-none d-lg-block">Assegnati ({{ assignedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_taken_charge" href="#takenCharge" class="tab_session" data-filterTab="taken_charge">
<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>
<span class="d-none d-lg-block">Presi in carico ({{ takenChargeCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspension_request" href="#suspensionRequest" class="tab_session" data-filterTab="suspension_request">
<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>
<span class="d-none d-lg-block">Richiesta sospensione ({{ suspensionRequestCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_suspended" href="#suspended" class="tab_session" data-filterTab="suspended">
<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>
<span class="d-none d-lg-block">Sospesi ({{ suspendedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed" href="#closed" class="tab_session" data-filterTab="closed">
<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>
<span class="d-none d-lg-block">Chiusi ({{ closedCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_closed_portal" href="#closedPortal" class="tab_session" data-filterTab="closed_portal">
<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>
<span class="d-none d-lg-block">Chiusi su fornitore ({{ closedPortalCount }})</span>
</a>
</li>
<li>
<a id="btn_tab_canceled" href="#canceled" class="tab_session" data-filterTab="canceled">
<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>
<span class="d-none d-lg-block">Annullati ({{ canceledCount }})</span>
</a>
</li>
</ul>
<div class="tab-container">
{# Assigned #}
<div class="tab-content clearfix" id="assigned">
{% set tickets = assignedTickets %}
{% set multipleSelection = [true, 11, ['print']] %}
{% set hasTakeOnCharge = true %}
{% set tabOpenValue = 'assigned' %}
{% block ticketsTab2 %}
<div class="row">
<div class="col-12">
{% if multipleSelection[0] %}
{% 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 %}
{% 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 %}
{% endif %}
{% if hasTakeOnCharge %}<a href="javascript: ticketsTakeCharge()" class="button button-3d button-mini button-green f_right m_b_10p">Prendi in carico</a>{% endif %}
</div>
<div class="col-12 overflow_a">
<table class="table table-bordered table-hover">
<thead>
<tr>
<form method="get" action="{{ path ('user_ticket_list') }}">
<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>
<td><input type="text" class="form-control" inputmode="search" name="all" value="{{ filters.all|default() }}"/></td>
<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>
<input type="hidden" name="filter_tab" value="{{ tabOpenValue }}">
</form>
</tr>
<tr class="bg_pr color_w">
{% if multipleSelection[0] %}
<th>
<div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
<input id="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll({{ multipleSelection[1] }})">
<label for="ticket_{{ multipleSelection[1] }}_all_checkboxes" class="m_b_none"></label>
</div>
</th>
{% endif %}
<th colspan="3"></th>
</tr>
</thead>
<tbody>
{% if tickets|length > 0 %}
{% for ticket in tickets %}
{% set ticketBg = "" %}
{% set ticketTitle = "" %}
{% if tabOpenValue != 'closed' and tabOpenValue != 'canceled' %}
{% if "now"|date('YmdHi') > ticket.datetimeExpiration|date('YmdHi') %}
{% set ticketBg = "bg_r_m_h" %}
{% set ticketTitle = "Scaduto" %}
{% elseif "now"|date('YmdHi') > ticket.datetimeExpiration|date_modify("-1 day")|date('YmdHi') %}
{% set ticketBg = "bg_r_m" %}
{% set ticketTitle = "Scade in un giorno" %}
{% elseif "now"|date('YmdHi') > ticket.datetimeExpiration|date_modify("-2 day")|date('YmdHi') %}
{% set ticketBg = "bg_r_l_m" %}
{% set ticketTitle = "Scade in due giorni" %}
{% endif %}
{% endif %}
<tr class="{{ ticketBg }}" data-bs-toggle="tooltip" title="{{ ticketTitle }}">
{% if multipleSelection[0] %}
<td class="td_action">
<div class="switch">
<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] }})">
<label for="ticket_checkbox_{{ ticket.id }}" class="m_b_none"></label>
</div>
</td>
{% endif %}
<td colspan="2">
<table class="table table_no_padding m_b_none b_none font_12">
<tr><td><b>Stato</b>: {{ ticket.displayStatus('string')|raw }}</td></tr>
<tr><td><b>N°</b>: <span id="ticket_termid_{{ ticket.id }}">{{ ticket.number }}</span></td></tr>
<tr><td><b>Termid</b>: <span id="ticket_number_{{ ticket.id }}">{{ ticket.termid }}</span></td></tr>
<tr><td><b>Indirizzo</b>: {% include 'components/twig/display_address.html.twig' with {'type':'ticket', 'obj':ticket} %}</td></tr>
<tr><td><b>Cliente</b>: <span id="ticket_client_{{ ticket.id }}">{{ ticket.client }}</span></td></tr>
<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>
<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>
<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>
<tr><td><b>Ricezione</b>: {% if ticket.datetimeStart != null %}{{ ticket.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr>
<tr><td><b>Scadenza</b>: {% if ticket.datetimeExpiration != null %}{{ ticket.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr>
</table>
</td>
<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>
</tr>
{% endfor %}
{% else %}
{% include 'components/twig/notice_filter_no_match.html.twig' %}
{% endif %}
</tbody>
</table>
</div>
<div class="col-12 navigation txt_a_r">
{{ knp_pagination_render(tickets) }}
</div>
</div>
{% endblock %}
</div>
{# Taken charge #}
<div class="tab-content clearfix" id="takenCharge">
{% set tickets = takenChargeTickets %}
{% set multipleSelection = [true, 12, ['print']] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'taken_charge' %}
{{ block('ticketsTab2') }}
</div>
{# Suspension request #}
<div class="tab-content clearfix" id="suspensionRequest">
{% set tickets = suspensionRequestTickets %}
{% set multipleSelection = [false, 13, null] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'suspension_request' %}
{{ block('ticketsTab2') }}
</div>
{# Suspended #}
<div class="tab-content clearfix" id="suspended">
{% set tickets = suspendedTickets %}
{% set multipleSelection = [true, 14, ['print', 'suspend_end']] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'suspended' %}
{{ block('ticketsTab2') }}
</div>
{# Closed #}
<div class="tab-content clearfix" id="closed">
{% set tickets = closedTickets %}
{% set multipleSelection = [false, 15, null] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'closed' %}
{{ block('ticketsTab2') }}
</div>
{# Closed portal #}
<div class="tab-content clearfix" id="closedPortal">
{% set tickets = closedPortalTickets %}
{% set multipleSelection = [false, 16, null] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'closed_portal' %}
{{ block('ticketsTab2') }}
</div>
{# Canceled #}
<div class="tab-content clearfix" id="canceled">
{% set tickets = canceledTickets %}
{% set multipleSelection = [false, 17, null] %}
{% set hasTakeOnCharge = false %}
{% set tabOpenValue = 'canceled' %}
{{ block('ticketsTab2') }}
</div>
</div>
</div>
</div>
{% endif %}
</div>
</section>
<div id="multipleModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<form action="{{ path ('user_ticket_multiple_select_action') }}" method="post">
<div class="modal-header"><h3 class="modal-title">Ticket - Selezione multipla</h3></div>
<div class="modal-body">
<div class="row">
<div class="col-12 txt_a_c">
<label class="modal_subtitle">Attenzione!</label><br>
<label class="l_s_none m_b_none f_left">Ticket selezionati:</label>
<table class="table table-sm font_12 b_none txt_a_l" id="tableTickets"></table>
<div id="divCausal" class="display_n">
<label class="l_s_none m_b_none f_left">Causale:</label>
<textarea id="textareaCausal" class="form-control min_h_150p" name="causal"></textarea>
</div>
<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>
<p class="modal_paragraph">Si è sicuri di voler proseguire?</p>
</div>
</div>
<input type="hidden" id="ticketsIds" name="ids">
<input type="hidden" id="action" name="action">
<input type="hidden" id="multipleTab" name="tab">
</div>
<div class="modal-footer">
<a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
<button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
</div>
</form>
</div>
</div>
</div>
{% if app.user.getAccountTypology == 'agency' %}
<div id="assignTechnicianModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
{{ form_start(formAssignTechnician, {'attr': {'novalidate': 'novalidate'}}) }}
<div class="modal-header"><h3 class="modal-title">Ticket - <span id="tech_span" class="color_w"></span> tecnico</h3></div>
<div class="modal-body">
<div class="row">
<div class="col-12 form-group">
<label class="form_label">Tecnico (N° ticket: in corso / sospesi)*</label>
<div {{ form_errors(formAssignTechnician.technician) }}>
{{ form_widget(formAssignTechnician.technician, {'attr':{'class':'form-control form-select'}}) }}
</div>
</div>
</div>
<input type="hidden" id="technicianTicketsIds" name="ids">
</div>
<div class="modal-footer">
<a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
<button type="submit" class="button button-3d button-mini button-green f_right" id="tech_btn"></button>
</div>
{{ form_end(formAssignTechnician) }}
</div>
</div>
</div>
<div id="emailTakeChargeModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form action="{{ path ('user_ticket_send_email_take_charge') }}" method="post">
<div class="modal-header"><h3 class="modal-title">Ticket - Email di notifica prendi in carico</h3></div>
<div class="modal-body">
<div class="row">
<div class="col-12 txt_a_c">
<label class="modal_subtitle">Attenzione!</label>
<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>
</div>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
<button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
</div>
</form>
</div>
</div>
</div>
{% elseif app.user.getAccountTypology == 'technician' %}
<div id="takeChargeModal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form action="{{ path ('user_ticket_take_charge') }}" method="post">
<div class="modal-header"><h3 class="modal-title">Ticket - Prendi in carico</h3></div>
<div class="modal-body">
<div class="row">
<div class="col-12 txt_a_c">
<label class="modal_subtitle">Attenzione!</label>
<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>
</div>
</div>
</div>
<div class="modal-footer">
<a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
<button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
</div>
</form>
</div>
</div>
</div>
{% endif %}
{% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':0, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':1, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':2, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':3, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':4, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':5, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':6, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':7, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':8, 'suppliers':suppliers} %}
{% include 'components/modals/filter_supplier.html.twig' with {'number':9, 'suppliers':suppliers} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':0, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':1, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':2, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':3, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':4, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':5, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':6, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':7, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':8, 'operations':operations} %}
{% include 'components/modals/filter_operation.html.twig' with {'number':9, 'operations':operations} %}
{% endif %}
{% endblock %}
{% block javascripts %}
{{ parent() }}
{% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% 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'} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':0, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':1, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':2, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':3, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':4, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':5, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':6, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':7, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':8, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_supplier_js.html.twig' with {'number':9, 'suppliers':suppliers, 'filterSupplier':filters.supplier} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':0, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':1, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':2, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':3, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':4, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':5, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':6, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':7, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':8, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/filter_operation_group_js.html.twig' with {'number':9, 'operations':operations, 'filterOperation':filters.operation} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_0', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_1', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_2', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_1_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_2_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_3_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_4_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_5_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_6_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_7_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_8_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange_9_3', 'format':'DD-MM-YYYY HH:mm'} %}
{% endif %}
<script>
$(document).ready(function(){
{% if app.session.get('tab_operation_group') != null %}
var operationGroupInputs = document.getElementsByClassName('operation_group_input');
for(i=0; i<operationGroupInputs.length; i++){
operationGroupInputs.value = "{{ app.session.get('tab_operation_group') }}";
}
"{{ app.session.remove('tab_operation_group') }}"
"{{ app.session.remove('tab_technician') }}"
{% endif %}
{% if app.session.get('ticketsError') != null %}
document.getElementById('ticketsIds').value = "{{ app.session.get('ticketsIds') }}";
document.getElementById('action').value = "{{ app.session.get('ticketsAction') }}";
var ticketsIds = "{{ app.session.get('ticketsIds') }}";
var table = document.getElementById('tableTickets');
table.innerHTML = '<tr><th>Numero</th><th>Cliente</th><th>Operazione</th><th>Fornitore</th></tr>';
for(i=0; i<ticketsIds.length; i++){
var tr = document.createElement('tr');
var td1 = document.createElement('td');
var td2 = document.createElement('td');
var td3 = document.createElement('td');
var td4 = document.createElement('td');
td1.innerHTML = document.getElementById('ticket_number_' + ticketsIds[i]).innerHTML;
td2.innerHTML = document.getElementById('ticket_client_' + ticketsIds[i]).innerHTML;
td3.innerHTML = document.getElementById('ticket_operation_' + ticketsIds[i]).innerHTML;
td4.innerHTML = document.getElementById('ticket_supplier_' + ticketsIds[i]).innerHTML;
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
tr.appendChild(td4);
table.appendChild(tr);
}
switch("{{ app.session.get('ticketsAction') }}"){
case 'suspend':
var label = 'sospenderai';
var title = 'Inserisci una causale per la sospensione';
break;
case 'suspend_end':
var label = 'sbloccherai la sospensione per';
var title = 'Inserisci una causale per sbloccare la sospensione';
break;
default: break;
}
document.getElementById('actionLabel').innerHTML = label;
document.getElementById('divCausal').style.display = 'block';
document.getElementById('textareaCausal').style = 'border-color: #CB0C0F';
document.getElementById('textareaCausal').setAttribute('data-bs-toggle', 'tooltip');
document.getElementById('textareaCausal').setAttribute('data-bs-original-title', title);
$('#multipleModal').modal({backdrop: 'static', keyboard: false}).modal("show");
"{{ app.session.remove('ticketsError') }}"
{% endif %}
{% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
var dateRanges = document.getElementsByClassName('daterange1');
for(i=0; i<dateRanges.length; i++){
{% if filters.datetimeStart != null %}
dateRanges[i].value = "{{ filters.datetimeStart }}";
{% else %}
dateRanges[i].value = null;
{% endif %}
}
var dateRanges2 = document.getElementsByClassName('daterange2');
for(i=0; i<dateRanges2.length; i++){
{% if filters.datetimeExpiration != null %}
dateRanges2[i].value = "{{ filters.datetimeExpiration }}";
{% else %}
dateRanges2[i].value = null;
{% endif %}
}
var dateRanges3 = document.getElementsByClassName('daterange3');
for(i=0; i<dateRanges3.length; i++){
{% if filters.datetimeEnd != null %}
dateRanges3[i].value = "{{ filters.datetimeEnd }}";
{% else %}
dateRanges3[i].value = null;
{% endif %}
}
{% endif %}
});
{% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
function assignTechnician(type, index){
var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
const array = [];
for(i=0; i<checkboxes.length; i++){
if(checkboxes[i].checked)
array.push(checkboxes[i].value);
}
document.getElementById('technicianTicketsIds').value = array;
switch(type){
case 'assign': document.getElementById('tech_span').innerHTML = 'Assegna'; document.getElementById('tech_btn').innerHTML = 'Assegna'; break;
case 'change': document.getElementById('tech_span').innerHTML = 'Cambia'; document.getElementById('tech_btn').innerHTML = 'Cambia'; break;
default: break;
}
$('#assignTechnicianModal').modal({backdrop: 'static', keyboard: false}).modal("show");
}
function sendEmailTakeCharge(){
$('#emailTakeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show");
}
{% elseif app.user.getAccountTypology == 'technician' %}
function ticketsTakeCharge(){
$('#takeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show");
}
{% endif %}
function selectAll(index){
var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
var isSelect = document.getElementById("ticket_" + index + "_all_checkboxes").checked;
for(i=0; i<checkboxes.length; i++)
checkboxes[i].checked = isSelect;
updateButtons(index);
}
function updateButtons(index){
var inputSelectAll = document.getElementById('ticket_' + index + '_all_checkboxes');
var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
switch(index){
case 0: var buttonAction = document.getElementById('button_' + index + '_wrong'); break;
case 1: var buttonAction = document.getElementById('button_' + index + '_assign'); break;
case 4: var buttonAction = document.getElementById('button_' + index + '_cancel'); break;
case 6: var buttonAction = document.getElementById('button_' + index + '_closed_portal'); break;
case 8: var buttonAction = document.getElementById('button_' + index + '_wrong'); break;
case 9: var buttonAction = document.getElementById('button_' + index + '_delete'); break;
case 2:
case 3:
case 5:
case 11:
case 12:
case 14: var buttonAction = document.getElementById('button_' + index + '_print'); break;
default: break;
}
switch(index){
case 1:
case 2: var buttonAction2 = document.getElementById('button_' + index + '_cancel'); break;
case 3: var buttonAction2 = document.getElementById('button_' + index + '_suspend'); break;
case 4: var buttonAction2 = document.getElementById('button_' + index + '_approve'); break;
case 5:
case 14: var buttonAction2 = document.getElementById('button_' + index + '_suspend_end'); break;
default: break;
}
switch(index){
case 1:
case 2: var buttonAction3 = document.getElementById('button_' + index + '_suspend'); break;
case 3:
case 5: var buttonAction3 = document.getElementById('button_' + index + '_cancel'); break;
default: break;
}
switch(index){
case 2:
var buttonAction4 = document.getElementById('button_' + index + '_change');
case 3:
var buttonAction4 = document.getElementById('button_' + index + '_change');
var buttonAction5 = document.getElementById('button_' + index + '_urge');
break;
default: break;
}
var isAllSelected = true;
const array = [];
for(i=0; i<checkboxes.length; i++){
if(checkboxes[i].checked){
array.push(checkboxes[i].value);
}
else
isAllSelected = false;
}
if(!isAllSelected)
inputSelectAll.checked = false;
if(array.length > 0){
buttonAction.className = "button button-3d button-mini button-green f_right m_b_10p";
if(buttonAction2 != null) buttonAction2.className = "button button-3d button-mini button-green f_right m_b_10p";
if(buttonAction3 != null) buttonAction3.className = "button button-3d button-mini button-green f_right m_b_10p";
if(buttonAction4 != null) buttonAction4.className = "button button-3d button-mini button-green f_right m_b_10p";
if(buttonAction5 != null) buttonAction5.className = "button button-3d button-mini button-green f_right m_b_10p";
switch(index){
case 0: buttonAction.href = "javascript: sendAction('wrong', " + index + ")"; break;
case 1: buttonAction.href = "javascript: assignTechnician('assign', " + index + ")"; break;
case 4: buttonAction.href = "javascript: sendAction('cancel', " + index + ")"; break;
case 6: buttonAction.href = "javascript: sendAction('closed_portal', " + index + ")"; break;
case 8: buttonAction.href = "javascript: sendAction('wrong', " + index + ")"; break;
case 9: buttonAction.href = "javascript: sendAction('delete', " + index + ")"; break;
case 2:
case 3:
case 5:
case 11:
case 12:
case 14: buttonAction.href = "javascript: sendAction('print', " + index + ")"; break;
default: break;
}
switch(index){
case 1:
case 2: buttonAction2.href = "javascript: sendAction('cancel', " + index + ")"; break;
case 3: buttonAction2.href = "javascript: sendAction('suspend', " + index + ")"; break;
case 4: buttonAction2.href = "javascript: sendAction('approve', " + index + ")"; break;
case 5:
case 14: buttonAction2.href = "javascript: sendAction('suspend_end', " + index + ")"; break;
default: break;
}
switch(index){
case 1:
case 2: buttonAction3.href = "javascript: sendAction('suspend', " + index + ")"; break;
case 3:
case 5: buttonAction3.href = "javascript: sendAction('cancel', " + index + ")"; break;
default: break;
}
switch(index){
case 2:
buttonAction4.href = "javascript: assignTechnician('change', " + index + ")";
break;
case 3:
buttonAction4.href = "javascript: assignTechnician('change', " + index + ")";
buttonAction5.href = "javascript: sendAction('urge', " + index + ")";
break;
default: break;
}
}
else{
buttonAction.className = "button button-3d button-mini button-grey f_right m_b_10p";
buttonAction.href = "javascript: void(0)";
if(buttonAction2 != null){
buttonAction2.className = "button button-3d button-mini button-grey f_right m_b_10p";
buttonAction2.href = "javascript: void(0)";
}
if(buttonAction3 != null){
buttonAction3.className = "button button-3d button-mini button-grey f_right m_b_10p";
buttonAction3.href = "javascript: void(0)";
}
if(buttonAction4 != null){
buttonAction4.className = "button button-3d button-mini button-grey f_right m_b_10p";
buttonAction4.href = "javascript: void(0)";
}
if(buttonAction5 != null){
buttonAction5.className = "button button-3d button-mini button-grey f_right m_b_10p";
buttonAction5.href = "javascript: void(0)";
}
}
}
function sendAction(action, index){
var checkboxes = document.getElementsByClassName('ticket_' + index + '_checkbox');
const array = [];
for(i=0; i<checkboxes.length; i++){
if(checkboxes[i].checked)
array.push(checkboxes[i].value);
}
document.getElementById('ticketsIds').value = array;
document.getElementById('action').value = action;
{{ app.session.set('printIndex', 0) }}
document.getElementById('divCausal').style.display = 'none';
switch(action){
case 'wrong': var label = 'renderai errati'; break;
case 'print': var label = 'stamperai'; break;
case 'take_charge': var label = 'prenderai in carico'; break;
case 'suspend': var label = 'sospenderai'; document.getElementById('divCausal').style.display = 'block'; break;
case 'suspend_end': var label = 'sbloccherai la sospensione per'; document.getElementById('divCausal').style.display = 'block'; break;
case 'cancel': var label = 'annullerai'; break;
case 'approve': var label = 'approverai le sospensioni di'; break;
case 'delete': var label = 'eliminerai definitivamente'; break;
case 'urge': var label = 'solleciterai il tecnico a completare'; break;
}
document.getElementById('actionLabel').innerHTML = label;
var table = document.getElementById('tableTickets');
table.innerHTML = '<tr><th>Numero</th><th>Cliente</th><th>Operazione</th><th>Fornitore</th></tr>';
for(i=0; i<array.length; i++){
var tr = document.createElement('tr');
var td1 = document.createElement('td');
var td2 = document.createElement('td');
var td3 = document.createElement('td');
var td4 = document.createElement('td');
td1.innerHTML = document.getElementById('ticket_number_' + array[i]).innerHTML;
td2.innerHTML = document.getElementById('ticket_client_' + array[i]).innerHTML;
td3.innerHTML = document.getElementById('ticket_operation_' + array[i]).innerHTML;
td4.innerHTML = document.getElementById('ticket_supplier_' + array[i]).innerHTML;
tr.appendChild(td1);
tr.appendChild(td2);
tr.appendChild(td3);
tr.appendChild(td4);
table.appendChild(tr);
}
switch(index){
case 0: document.getElementById('multipleTab').value = 'error'; break;
case 1: document.getElementById('multipleTab').value = 'to_assign'; break;
case 2: document.getElementById('multipleTab').value = 'assigned'; break;
case 3: document.getElementById('multipleTab').value = 'taken_charge'; break;
case 4: document.getElementById('multipleTab').value = 'suspension_request'; break;
case 5: document.getElementById('multipleTab').value = 'suspended'; break;
case 6: document.getElementById('multipleTab').value = 'closed'; break;
case 8: document.getElementById('multipleTab').value = 'canceled'; break;
case 9: document.getElementById('multipleTab').value = 'wrong'; break;
case 11: document.getElementById('multipleTab').value = 'assigned'; break;
case 12: document.getElementById('multipleTab').value = 'taken_charge'; break;
case 14: document.getElementById('multipleTab').value = 'suspended'; break;
default: break;
}
$('#multipleModal').modal({backdrop: 'static', keyboard: false}).modal("show");
}
</script>
{% endblock %}