{% extends 'base.html.twig' %}{% block title %}Scrivania{% endblock %}{% block body_on_load %}onload="hidePreloader();"{% endblock %}{% block pageTitleH1 %}Benvenuto {{ app.user }} ({{ app.user.accountType }}){% endblock %}{% block menu %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_index') }}">Scrivania</a> <ul class="sub-menu-container bg_pr"> {% if app.user.getAccountTypology == 'agency' %} <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_settings') }}">Impostazioni</a></li> {% endif %} <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_utility') }}">Utility</a></li> </ul> </li> {% if app.user.canRead('company') %} <li class="menu-item"><a class="menu-link" href="javascript: void(0)">Azienda</a> <ul class="sub-menu-container bg_pr"> <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_company') }}">Dati anagrafici</a></li> <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_company_economic') }}">Economico</a></li> </ul> </li> {% endif %} <li class="menu-item"> <a class="menu-link" {% if app.user.canRead('anagraphic_users') %}href="{{ path ('user_users_index') }}"{% else %}href="javascript: void(0)"{% endif %}>Utenti</a> <ul class="sub-menu-container bg_pr"> <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_user_profile') }}">Profilo</a></li> {% if app.user.canRead('staff') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_users_staff') }}">Staff</a></li>{% endif %} {% if app.user.canRead('technician') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_users_technicians') }}">Tecnici</a></li>{% endif %} </ul> </li> {% if app.user.canRead('anagraphic') %} <li class="menu-item"> <a class="menu-link" href="{{ path ('user_anagraphics') }}">Anagrafiche</a> {% if app.user.canRead('anagraphic_supplier') or app.user.canRead('anagraphic_producer') or app.user.canRead('anagraphic_client') or app.user.canRead('anagraphic_destination') %} <ul class="sub-menu-container bg_pr"> {% if app.user.canRead('anagraphic_supplier') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_anagraphic_suppliers') }}">Fornitori</a></li>{% endif %} {% if app.user.canRead('anagraphic_producer') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_anagraphic_producers') }}">Produttori</a></li>{% endif %} {% if app.user.canRead('anagraphic_client') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_anagraphic_clients') }}">Clienti</a></li>{% endif %} {% if app.user.canRead('anagraphic_destination') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_anagraphic_destinations') }}">Destinazioni</a></li>{% endif %} </ul> {% endif %} </li> {% endif %} {% if app.user.canRead('product') %} <li class="menu-item"> <a class="menu-link" href="{{ path ('user_product_search') }}">Prodotti</a> {% if app.user.canRead('product') or app.user.canRead('product_category') or app.user.canRead('product_subcategory') or app.user.canRead('product_model') or app.user.canRead('product_component') %} <ul class="sub-menu-container bg_pr"> {% if app.user.canRead('product') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_search') }}">Ricerca</a></li>{% endif %} {% if app.user.canRead('product_category') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_categories') }}">Categorie</a></li>{% endif %} {% if app.user.canRead('product_subcategory') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_subcategories') }}">Sottocategorie</a></li>{% endif %} {% if app.user.canRead('product_component') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_components') }}">Componenti</a></li>{% endif %} {% if app.user.canRead('product_model') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_models') }}">Modelli</a></li>{% endif %} {% if app.user.canRead('product') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_regenerated') }}" target="_blank">Rigenerati</a></li>{% endif %} {% if app.user.canRead('product') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_product_stationary') }}">Fermi</a></li>{% endif %} </ul> {% endif %} </li> {% endif %} {% if app.user.canRead('warehouse') %} {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_warehouse_list') }}">Magazzini</a> <ul class="sub-menu-container bg_pr"> {% for w in global_hqw.headquarterWarehouses %} <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_warehouse_sheet', {'warehouseId':w.id}) }}">{{ w.nickname }}</a></li> {% endfor %} </ul> </li> {% elseif app.user.getAccountTypology == 'technician' %} {% if app.user.warehouses|length == 1 %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_warehouse_sheet', {'warehouseId':app.user.warehouses[0].warehouse.id}) }}">Magazzino</a></li> {% else %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_warehouse_list') }}">Magazzini</a></li> {% endif %} {% endif %} {% endif %} {% if app.user.canRead('transfer') %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_transfer_search') }}">Trasferimenti</a></li> {% endif %} {% if app.user.canRead('ticket') %} <li class="menu-item"> <a class="menu-link" href="{{ path ('user_ticket_list') }}">Ticket</a> <ul class="sub-menu-container bg_pr"> {% if app.user.canRead('ticket') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_ticket_search') }}">Ricerca</a></li>{% endif %} {% if app.user.canRead('ticket') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_ticket_list') }}">Lista</a></li>{% endif %} {% if app.user.getAccountTypology == 'agency' %} <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_ticket_import') }}">Azioni massive da CSV</a></li> <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_ticket_new') }}">Aggiungi manualmente</a></li> {% endif %} </ul> </li> {% endif %} {% if app.user.canRead('intervention') %} <li class="menu-item"><a class="menu-link" href="{{ path ('user_intervention_search') }}">Interventi</a></li> {% endif %} {% if app.user.canRead('configuration') %} <li class="menu-item"> <a class="menu-link" href="{{ path ('user_configurations') }}">Configurazioni</a> <ul class="sub-menu-container bg_pr"> {% if app.user.canRead('configuration_regions') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_regions') }}">Regioni di competenza</a></li>{% endif %} {% if app.user.canRead('configuration_city_alias') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_city_aliases') }}">Alias città</a></li>{% endif %} {% if app.user.canRead('configuration_intervention_outcome') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_intervention_outcomes') }}">Esiti intervento</a></li>{% endif %} {% if app.user.canRead('configuration_intervention_activity_type') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_intervention_activity_types') }}">Tipi attività intervento</a></li>{% endif %} {% if app.user.canRead('configuration_operation_group') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_operation_groups') }}">Gruppi operazione</a></li>{% endif %} {% if app.user.canRead('configuration_account_type') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_account_types') }}">Tipi account</a></li>{% endif %} {% if app.user.canRead('configuration_courier') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_couriers') }}">Corrieri</a></li>{% endif %} {% if app.user.canRead('configuration_ddt_header') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_ddt_headers') }}">Intestazioni DDT</a></li>{% endif %} {% if app.user.canRead('configuration_ddt_causal') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_ddt_causals') }}">Causali DDT</a></li>{% endif %} {% if app.user.canRead('configuration_ticket_column_value') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_ticket_column_values') }}">Descrizione colonna ticket</a></li>{% endif %} {% if global_company.actualCompany.tagTicketActive and app.user.canRead('configuration_ticket_tag') %}<li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_configuration_ticket_tags') }}">Tag ticket</a></li>{% endif %} </ul> </li> {% endif %} <li class="menu-item"> <a class="menu-link" href="javascript: void(0)">Info</a> <ul class="sub-menu-container bg_pr"> <li class="menu-item"><a class="menu-link color_w" href="{{ path ('user_info_updates') }}">Aggiornamenti</a></li> </ul> </li> <li class="menu-item"><a class="menu-link" href="{{ path ('logout') }}"><div>Esci</div></a></li>{% endblock %}{% block subMenuLeft %}{% endblock %}{% block subMenuRight %} {% if app.user.getAccountTypology == 'agency' %} <li class="nav-item"><a class="nav-link" href="{{ path ('user_settings') }}">Impostazioni</a></li> {% else %} <li class="nav-item"><a class="nav-link" href="javascript: void(0)"></a></li> {% endif %}{% endblock %}{% block content %} <section class="m_tb_40p p_lr_30p"> {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'administration' or app.user.getAccountTypology == 'commercial' or app.user.getAccountTypology == 'warehouse' %} {# Agenzia / Amministrazione / Commerciale / Magazzino #} <div class="row"> <div class="col-12 responsive_font_size"> <div class="tabs clearfix m_b_none"> <ul class="tab-nav clearfix"> {% if app.user.canViewTab('desk_ticket') %}<li><a id="btn_tab_tickets" href="#tickets" class="tab_session" data-filterTab="tickets"><i class="icon-tag d-block d-md-none" data-bs-toggle="tooltip" title="Ticket"></i><span class="d-none d-md-block">Ticket</span></a></li>{% endif %} {% if app.user.canViewTab('desk_warehouse') %}<li><a id="btn_tab_warehouses" href="#warehouses" class="tab_session" data-filterTab="warehouses"><i class="icon-warehouse d-block d-md-none" data-bs-toggle="tooltip" title="Magazzini"></i><span class="d-none d-md-block">Magazzini</span></a></li>{% endif %} {% if app.user.canViewTab('desk_operation') %}<li><a id="btn_tab_operations" href="#operations" class="tab_session" data-filterTab="operations"><i class="icon-wrench d-block d-md-none" data-bs-toggle="tooltip" title="Operazioni"></i><span class="d-none d-md-block">Operazioni</span></a></li>{% endif %} {% if app.user.canViewTab('desk_product') %}<li><a id="btn_tab_products" href="#products" class="tab_session" data-filterTab="products"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Prodotti"></i><span class="d-none d-md-block">Prodotti</span></a></li>{% endif %} {% if app.user.canViewTab('desk_search') %}<li><a id="btn_tab_search" href="#search" class="tab_session" data-filterTabsearch="" id="tab_search"><i class="icon-search1 d-block d-md-none" data-bs-toggle="tooltip" title="Ricerca"></i><span class="d-none d-md-block">Ricerca</span></a></li>{% endif %} </ul> <div class="tab-container"> {# Ticket #} {% if app.user.canViewTab('desk_ticket') %} <div class="tab-content clearfix" id="tickets"> <div class="row"> <div class="col-12"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% if app.user.canRead('desk_ticket_summary_ticket') %}<li><a id="btn_tab_ticket" href="#summary_ticket" class="tab_session2" data-filterTab="ticket"><i class="icon-table1 d-block d-md-none" data-bs-toggle="tooltip" title="Situazione ticket"></i><span class="d-none d-md-block">Situazione ticket</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_summary_techs') %}<li><a id="btn_tab_techs" href="#summary_techs" class="tab_session2" data-filterTab="techs"><i class="icon-table1 d-block d-md-none" data-bs-toggle="tooltip" title="Situazione tecnici"></i><span class="d-none d-md-block">Situazione tecnici</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_errors') %}<li><a id="btn_tab_errors" href="#errors" class="tab_session2" data-filterTab="errors"><i class="icon-minus-sign d-block d-md-none" data-bs-toggle="tooltip" title="Con errori ({{ ticketWithErrors|length }})"></i><span class="d-none d-md-block">Con errori ({{ ticketWithErrors|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_suspension_requests') %}<li><a id="btn_tab_suspension_requests" href="#suspension_requests" class="tab_session2" data-filterTab="suspension_requests"><i class="icon-stopwatch d-block d-md-none" data-bs-toggle="tooltip" title="Richieste sospensioni ({{ ticketSuspensionRequest|length }})"></i><span class="d-none d-md-block">Richieste sospensioni ({{ ticketSuspensionRequest|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_closed_portal') %}<li><a id="btn_tab_closed_portal" href="#closed_portal" class="tab_session2" data-filterTab="closed_portal"><i class="icon-lock d-block d-md-none" data-bs-toggle="tooltip" title="Chiusi su fornitore ({{ ticketClosedPortal|length }})"></i><span class="d-none d-md-block">Chiusi su fornitore ({{ ticketClosedPortal|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_waiting_for_material') %}<li><a id="btn_tab_waiting_for_material" href="#waiting_for_material" class="tab_session2" data-filterTab="waiting_for_material">{% include 'components/twig/index/tab_label.html.twig' with {'icon':'icon-truck-loading', 'text':"In attesa di materiale (" ~ ticketWaitingForMaterial|length ~ ")"} %}</a></li>{% endif %} {% if app.user.canRead('desk_ticket_intervention_without_activities') %}<li><a id="btn_tab_intervention_without_activities" href="#intervention_without_activities" class="tab_session2" data-filterTab="intervention_without_activities"><i class="icon-question d-block d-md-none" data-bs-toggle="tooltip" title="Interventi senza attività ({{ interventionWithoutActivities|length }})"></i><span class="d-none d-md-block">Interventi senza attività ({{ interventionWithoutActivities|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_intervention_tariff_out') %}<li><a id="btn_tab_intervention_tariff_out" href="#intervention_tariff_out" class="tab_session2" data-filterTab="intervention_tariff_out"><i class="icon-dollar d-block d-md-none" data-bs-toggle="tooltip" title="Interventi fuori zona ({{ interventionTariffOut|length }})"></i><span class="d-none d-md-block">Interventi fuori zona ({{ interventionTariffOut|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_extras') %}<li><a id="btn_tab_extras" href="#extras" class="tab_session2" data-filterTab="extras"><i class="icon-plus1 d-block d-md-none" data-bs-toggle="tooltip" title="Extra da gestire ({{ interventionExtras|length }})"></i><span class="d-none d-md-block">Extra da gestire ({{ interventionExtras|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_ticket_reminders') %}<li><a id="btn_tab_reminders" href="#reminders" class="tab_session2" data-filterTab="reminders"><i class="icon-clock d-block d-md-none" data-bs-toggle="tooltip" title="Promemoria ({{ ticketReminders|length }})"></i><span class="d-none d-md-block">Promemoria ({{ ticketReminders|length }})</span></a></li>{% endif %} </ul> <div class="tab-container overflow_a"> {% if app.user.canRead('desk_ticket_summary_ticket') %} {# Situazione ticket #} <div class="tab-content clearfix" id="summary_ticket"> <h4 class="form_title">Situazione ticket</h4> <hr class="m_t_none"> <div class="overflow_a"> <table class="table table-bordered responsive_font_size"> <thead> <tr class="bg_pr color_w"> <th class="td_w_120p">Gruppo</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('to_assign', '')">Da assegnare</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('assigned', '')">Assegnati</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('taken_charge', '')">Presi in carico</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('closed', '')">Chiusi</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('suspension_request', '')">Richieste sosp</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('suspended', '')">Sospesi</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('canceled', '')">Annullati</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('wrong', '')">Errati</th> <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTicketList('closed_portal', '')">Chiusi portale</th> <td class="bg_pr" style="padding: 0px 0px 0px px; width: 0px;"></td> <th class="td_w_110p txt_a_c">Totale</th> </tr> </thead> <tbody> {% set total = 0 %} {% for og in operationGroups %} {% set rowTotal = 0 %} <tr> <td>{{ og.value }}</td> {% for ts in ticketStatuses %} {% for ticketGroup in matrixTickets %} {% if ticketGroup[0] == og.id %} {% for grCounts in ticketGroup[1] %} {% if grCounts[0] == ts.id %} {% if app.user.accountTypology == 'technician' %} <td class="txt_a_c a_td_hover" onclick="goToTicketList('{{ ts.slug }}', '{{ og.slug }}')">{{ grCounts[1] }}</td> {% else %} <td class="txt_a_c a_td_hover" onclick="goToTicketList('{{ ts.slug }}', '{{ og.id }}')">{{ grCounts[1] }}</td> {% endif %} {% set rowTotal = rowTotal + grCounts[1] %} {% endif %} {% endfor %} {% endif %} {% endfor %} {% endfor %} <td class="bg_pr"></td> <th class="txt_a_c">{{ rowTotal }}</th> </tr> {% set total = total + rowTotal %} {% endfor %} <tr class="bg_pr"> <td></td> {% for ts in ticketStatuses %} <td></td> {% endfor %} <td></td> <td></td> </tr> <tr> <th>Totale</th> {% for ts in ticketStatuses %} {% set columnTotal = 0 %} {% for ticketGroup in matrixTickets %} {% for grCounts in ticketGroup[1] %} {% if grCounts[0] == ts.id %} {% set columnTotal = columnTotal + grCounts[1] %} {% endif %} {% endfor %} {% endfor %} <th class="txt_a_c">{{ columnTotal }}</th> {% endfor %} <th class="bg_pr"></th> <th class="txt_a_c">{{ total }}</th> </tr> </tbody> </table> </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_summary_techs') %} {# Situazione tecnici #} <div class="tab-content clearfix" id="summary_techs"> <h4 class="form_title">Situazione tecnici - Presi in carico (Assegnati)</h4> <hr class="m_t_none"> <div class="overflow_a"> <table class="table table-bordered responsive_font_size"> <thead> <tr class="bg_pr color_w"> <th class="td_w_120p">Tecnico</th> {% for og in operationGroups %} <th class="td_w_110p txt_a_c a_th_hover" onclick="goToTechTicketList('{{ og.id }}', '')">{{ og.value }}</th> {% endfor %} <td class="bg_pr" style="padding: 0px 0px 0px px; width: 0px;"></td> <th class="td_w_110p txt_a_c">Totali</th> </tr> </thead> <tbody> {% set totalAssigned = 0 %} {% set totalTakenCharge = 0 %} {% for tech in technicians %} {% set rowTotalAssigned = 0 %} {% set rowTotalTakenCharge = 0 %} <tr> <td>{{ tech }}</td> {% for og in operationGroups %} {% for techGroup in matrixTechsTickets %} {% if techGroup[0] == tech.id %} {% for techCounts in techGroup[1] %} {% if techCounts[0] == og.id %} <td class="txt_a_c a_td_hover" onclick='goToTechTicketList("{{ og.id }}", "{{ tech }}")'>{{ techCounts[2] }} {% if techCounts[1] > 0 %}({{ techCounts[1] }}){% endif %}</td> {% set rowTotalAssigned = rowTotalAssigned + techCounts[1] %} {% set rowTotalTakenCharge = rowTotalTakenCharge + techCounts[2] %} {% endif %} {% endfor %} {% endif %} {% endfor %} {% endfor %} <td class="bg_pr"></td> <th class="txt_a_c">{{ rowTotalTakenCharge }} {% if rowTotalAssigned > 0 %}({{ rowTotalAssigned }}){% endif %}</th> </tr> {% set totalAssigned = totalAssigned + rowTotalAssigned %} {% set totalTakenCharge = totalTakenCharge + rowTotalTakenCharge %} {% endfor %} <tr class="bg_pr"> <td></td> {% for og in operationGroups %} <td></td> {% endfor %} <td></td> <td></td> </tr> <tr> <th>Totale</th> {% for og in operationGroups %} {% set columnTotalAssigned = 0 %} {% set columnTotalTakenCharge = 0 %} {% for techGroup in matrixTechsTickets %} {% for techCounts in techGroup[1] %} {% if techCounts[0] == og.id %} {% set columnTotalAssigned = columnTotalAssigned + techCounts[1] %} {% set columnTotalTakenCharge = columnTotalTakenCharge + techCounts[2] %} {% endif %} {% endfor %} {% endfor %} <th class="txt_a_c">{{ columnTotalTakenCharge }} {% if columnTotalAssigned > 0 %}({{ columnTotalAssigned }}){% endif %}</th> {% endfor %} <th class="bg_pr"></th> <th class="txt_a_c">{{ totalTakenCharge }} {% if totalAssigned > 0 %}({{ totalAssigned }}){% endif %}</th> </tr> </tbody> </table> </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_errors') %} {# Con errori #} <div class="tab-content clearfix" id="errors"> <h4 class="form_title">Ticket con errori</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if ticketWithErrors|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_60p">Numero</th> <th class="td_w_130p">Fornitore</th> <th class="td_w_150p">Operazione</th> <th class="td_w_150p">Cliente</th> <th class="td_w_300p">Errore</th> <th></th> </tr> </thead> <tbody> {% for t in ticketWithErrors %} {% if loop.index < 50 %} <tr> <td>{{ t.number }}</td> <td>{{ t.supplier }}</td> <td>{{ t.operation }}</td> <td>{{ t.client }}</td> <td>{{ t.systemErrorDetails }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':t.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if ticketWithErrors|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessuna ticket con errori!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_suspension_requests') %} {# Richieste sospensioni #} <div class="tab-content clearfix" id="suspension_requests"> <h4 class="form_title">Ticket con sospensioni da approvare</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if ticketSuspensionRequest|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_120p">Tipologia</th> <th class="td_w_100p">Numero</th> <th class="td_w_140p">Fornitore</th> <th class="td_w_150p">Operazione</th> <th class="td_w_140p">Cliente</th> <th class="td_w_120p">Tecnico</th> <th></th> </tr> </thead> <tbody> {% for t in ticketSuspensionRequest %} <tr> <td>{{ t.displayStatus('string', settingProcessedActive)|raw }}</td> <td>{{ t.number }}</td> <td>{{ t.supplier }}</td> <td>{{ t.operation }}</td> <td>{{ t.client }}</td> <td>{{ t.technician }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':t.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun ticket con sospensioni da approvare!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_closed_portal') %} {# Chiusi su portale #} <div class="tab-content clearfix" id="closed_portal"> <h4 class="form_title">Ticket chiusi su portale e non su piattaforma</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if ticketClosedPortal|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_100p">Numero</th> <th class="td_w_140p">Fornitore</th> <th class="td_w_250p">Operazione</th> <th class="td_w_200p">Cliente</th> <th class="td_w_170p">Data inizio/Data scadenza</th> <th></th> </tr> </thead> <tbody> {% for t in ticketClosedPortal %} <tr> <td>{{ t.number }}</td> <td>{{ t.supplier }}</td> <td>{{ t.operation }}</td> <td>{{ t.client }}</td> <td>{% if t.datetimeStart != null %}{{ t.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}/{% if t.datetimeExpiration != null %}{{ t.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':t.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessuna ticket con ticket chiuso su portale e non su piattaforma!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_waiting_for_material') %} {# In attesa di materiale #} <div class="tab-content clearfix" id="waiting_for_material"> <h4 class="form_title">Ticket in attesa del materiale</h4> <hr class="m_t_none"> <div class="overflow_a"> {% include 'components/twig/index/ticket_waiting.html.twig' with {'ticketWaitingForMaterial':ticketWaitingForMaterial} %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_intervention_without_activities') %} {# Interventi senza attività #} <div class="tab-content clearfix" id="intervention_without_activities"> <h4 class="form_title">Interventi senza attività</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if interventionWithoutActivities|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_100p">N° ticket</th> <th class="td_w_300p">Data</th> <th class="td_w_300p">Intervento</th> <th class="td_w_200p">Esito</th> <th class="td_w_150p">Tecnico</th> <th class="td_w_150p">Operatore</th> <th></th> </tr> </thead> <tbody> {% for i in interventionWithoutActivities %} <tr> <td>{{ i.ticket.number }}</td> <td>{{ i.datetime|date('d-m-Y H:i') }}</td> <td>{{ i }}</td> <td>{{ i.outcome }}</td> <td>{{ i.technician }}</td> <td>{{ i.operator }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':i.ticket.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda ticket"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun intervento senza attività!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_intervention_tariff_out') %} {# Interventi fuori zona #} <div class="tab-content clearfix" id="intervention_tariff_out"> <h4 class="form_title">Interventi fuori zona</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if interventionTariffOut|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_100p">N° ticket</th> <th class="td_w_150p">Data/Ora</th> <th class="td_w_300p">Intervento</th> <th class="td_w_200p">Esito</th> <th class="td_w_150p">Tecnico</th> <th class="td_w_150p">Operatore</th> <th class="td_w_200p">Città (Provincia)</th> <th></th> </tr> </thead> <tbody> {% for i in interventionTariffOut %} {% if loop.index < 50 %} <tr> <td>{{ i.ticket.number }}</td> <td>{{ i.datetime|date('d-m-Y H:i') }}</td> <td>{{ i }}</td> <td>{{ i.outcome }}</td> <td>{{ i.technician }}</td> <td>{{ i.operator }}</td> <td>{{ i.ticket.idCity|translate_city() }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':i.ticket.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda ticket"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if interventionTariffOut|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun intervento fuori zona da gestire!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_extras') %} {# Extra da gestire #} <div class="tab-content clearfix" id="extras"> <h4 class="form_title">Extra da gestire</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if interventionExtras|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_500p">Intervento</th> <th class="td_w_150p">Tipo</th> <th class="td_w_150p txt_a_c">Ammontare</th> <th class="td_w_100p txt_a_c">Ore</th> <th>Note</th> <th></th> </tr> </thead> <tbody> {% for e in interventionExtras %} <tr> <td>{{ e.intervention }}</td> <td>{{ e.displayType() }}</td> <td class="txt_a_c">{{ e.cost }} €</td> <td class="txt_a_c">{% if e.hours != null %}{{ e.hours }}{% else %}---{% endif %}</td> <td class="font_14">{% if e.notes != null %}{{ e.notes }}{% else %}---{% endif %}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':e.intervention.ticket.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun ticket con extra da gestire!</div> </div> {% endif %} </div> </div> {% endif %} {% if app.user.canRead('desk_ticket_reminders') %} {# Reminder #} <div class="tab-content clearfix" id="reminders"> <h4 class="form_title">Promemoria</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if ticketReminders|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_150p">Data/Ora</th> <th class="td_w_150p">Utente</th> <th>Dettagli</th> <th></th> </tr> </thead> <tbody> {% for r in ticketReminders %} <tr {% if r.datetime|date('YmdHi') < "now"|date('YmdHi') %}class="bg_r_h"{% endif %}> <td>{{ r.datetime|date('d-m-Y H:i') }}</td> <td>{{ r.technician }}</td> <td>{{ r.details }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':r.ticket.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun promemoria presente!</div> </div> {% endif %} </div> </div> {% endif %} </div> </div> </div> </div> </div> {% endif %} {# Magazzini #} {% if app.user.canViewTab('desk_warehouse') %} <div class="tab-content clearfix" id="warehouses"> {% if warehouseAlarms|length == 1 %} {% for warehouseData in warehouseAlarms %} <div class="row"> <div class="col-12"> <h4 class="form_title">{{ warehouseData[1] }}</h4> <hr class="m_t_none m_b_none"> </div> <div class="col-12 overflow_a"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% if app.user.canRead('desk_warehouse_product_to_manage') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_to_manage" href="#{{ warehouseData[0] }}_product_to_manage" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_to_manage"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Prodotti da gestire ({{ warehouseData[2] }})"></i><span class="d-none d-md-block">Prodotti da gestire ({{ warehouseData[2] }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_incoming') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_incoming" href="#{{ warehouseData[0] }}_transfers_incoming" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_incoming"><i class="icon-truck d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti in entrata ({{ warehouseData[3]|length }})"></i><span class="d-none d-md-block">Trasferimenti in entrata ({{ warehouseData[3]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_output') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_output" href="#{{ warehouseData[0] }}_transfers_output" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_output"><i class="icon-truck-loading d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti in uscita ({{ warehouseData[4]|length }})"></i><span class="d-none d-md-block">Trasferimenti in uscita ({{ warehouseData[4]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_ddt_missing') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_ddt_missing" href="#{{ warehouseData[0] }}_transfers_ddt_missing" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_ddt_missing"><i class="icon-signature d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti senza DDT firmato ({{ warehouseData[5]|length }})"></i><span class="d-none d-md-block">Trasferimenti senza DDT firmato ({{ warehouseData[5]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_request_technicians') %}<li><a id="btn_tab_{{ warehouseData[0] }}_request_technicians" href="#{{ warehouseData[0] }}_request_technicians" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_request_technicians"><i class="icon-question d-block d-md-none" data-bs-toggle="tooltip" title="Richieste tecnici ({{ warehouseData[6]|length }})"></i><span class="d-none d-md-block">Richieste tecnici ({{ warehouseData[6]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_stocks_red') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_stocks_red" href="#{{ warehouseData[0] }}_product_stocks_red" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_stocks_red"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Scorte prodotti rosse ({{ warehouseData[7]|length }})"></i><span class="d-none d-md-block">Scorte prodotti rosse ({{ warehouseData[7]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_stocks_yellow') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_stocks_yellow" href="#{{ warehouseData[0] }}_product_stocks_yellow" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_stocks_yellow"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Scorte prodotti gialle ({{ warehouseData[8]|length }})"></i><span class="d-none d-md-block">Scorte prodotti gialle ({{ warehouseData[8]|length }})</span></a></li>{% endif %} </ul> <div class="tab-container"> {# Sede centrale #} {% if app.user.canRead('desk_warehouse_product_to_manage') %} {# Prodotti da gestire #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_to_manage"> <h4 class="form_title">Prodotti da gestire</h4> <hr class="m_t_none"> {% if warehouseData[2] > 0 %} <div class="style-msg infomsg m_b_none"> <div class="sb-msg"><i class="icon-info"></i><strong>Attenzione!</strong> Ci sono {{ warehouseData[2] }} prodotti da gestire in questo magazzino!<a href="{{ path ('user_warehouse_sheet', {'warehouseId':warehouseData[0]}) }}" class="button button-3d button-mini button-amber f_right m_none">Vai al magazzino</a></div> </div> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun prodotto da gestire presente nel magazzino</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_incoming') %} {# Trasferimenti in entrata #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_incoming"> <h4 class="form_title">Trasferimenti in entrata non completati</h4> <hr class="m_t_none"> {% if warehouseData[3]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino provenienza</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[3] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseFrom }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in entrata non completato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_output') %} {# Trasferimenti in uscita #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_output"> <h4 class="form_title">Trasferimenti in uscita non completati</h4> <hr class="m_t_none"> {% if warehouseData[4]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino destinazione</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[4] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseTo }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita non completato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_ddt_missing') %} {# Trasferimenti senza DDT firmato #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_ddt_missing"> <h4 class="form_title">Trasferimenti senza DDT firmato</h4> <hr class="m_t_none"> {% if warehouseData[5]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_80p txt_a_c">Fase</th> <th class="td_w_80p txt_a_c">Fase DDT</th> <th>Magazzino provenienza</th> <th>Magazzino destinazione</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[5] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td class="txt_a_c">{{ pt.displayPhaseDdt('icon')|raw }}</td> <td>{{ pt.warehouseFrom }}</td> <td>{{ pt.warehouseTo }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento senza DDT firmato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_request_technicians') %} {# Richieste tecnici #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_request_technicians"> <h4 class="form_title">Richieste tecnici non gestite</h4> <hr class="m_t_none"> {% if warehouseData[6]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th>Tecnico</th> <th>Magazzino</th> <th>Data</th> <th>Dettagli</th> <th></th> </tr> </thead> <tbody> {% for rt in warehouseData[6] %} <tr> <td>{{ rt.technician }}</td> <td>{{ rt.warehouse }}</td> <td>{{ rt.datetime|date('d-m-Y H:i') }}</td> <td>{{ rt.displayDetails()|raw }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_sheet', {'warehouseId':warehouseData[0]}) }}" data-bs-toggle="tooltip" title="Vai alla scheda magazzino"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun richiesta tecnico non gestita!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_stocks_red') %} {# Scorte prodotti rosse #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_stocks_red"> <h4 class="form_title">Allarmi scorte prodotti rosse</h4> <hr class="m_t_none"> {% if warehouseData[7]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_120p txt_a_c">Qtà disponibile</th> <th class="td_w_120p txt_a_c">Qtà rosso</th> <th>Modello</th> <th>Fornitore</th> </tr> </thead> <tbody> {% for ps in warehouseData[7] %} {% if loop.index < 50 %} <tr> <td class="txt_a_c">{{ ps[0] }}</td> <td class="txt_a_c">{{ ps[1] }}</td> <td>{{ ps[2] }}</td> <td>{{ ps[3] }}</td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if warehouseData[7]|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun allarme scorte prodotto rosse!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_stocks_yellow') %} {# Scorte prodotti giallo #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_stocks_yellow"> <h4 class="form_title">Allarmi scorte prodotti giallo</h4> <hr class="m_t_none"> {% if warehouseData[8]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_120p txt_a_c">Qtà disponibile</th> <th class="td_w_120p txt_a_c">Qtà giallo</th> <th class="td_w_120p txt_a_c">Qtà rosso</th> <th>Modello</th> <th>Fornitore</th> </tr> </thead> <tbody> {% for ps in warehouseData[8] %} {% if loop.index < 50 %} <tr> <td class="txt_a_c">{{ ps[0] }}</td> <td class="txt_a_c">{{ ps[1] }}</td> <td class="txt_a_c">{{ ps[2] }}</td> <td>{{ ps[3] }}</td> <td>{{ ps[4] }}</td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if warehouseData[8]|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun allarme scorte prodotto gialle!</div> </div> {% endif %} </div> {% endif %} </div> </div> </div> </div> {% endfor %} {% else %} <div class="tabs clearfix m_b_none"> <ul class="tab-nav clearfix"> {% for warehouseData in warehouseAlarms %} <li><a id="btn_tab_warehouse_{{ warehouseData[0] }}" href="#warehouse_{{ warehouseData[0] }}" class="tab_session2" data-filterTab="warehouse_{{ warehouseData[0] }}"><i class="icon-warehouse d-block d-md-none" data-bs-toggle="tooltip" title="{{ warehouseData[1] }}"></i><span class="d-none d-md-block">{{ warehouseData[1] }}</span></a></li> {% endfor %} </ul> <div class="tab-container"> {% for warehouseData in warehouseAlarms %} <div class="tab-content clearfix" id="warehouse_{{ warehouseData[0] }}"> <div class="row"> <div class="col-12"> <h4 class="form_title">{{ warehouseData[1] }}</h4> <hr class="m_t_none m_b_none"> </div> <div class="col-12 overflow_a"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% if app.user.canRead('desk_warehouse_product_to_manage') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_to_manage" href="#{{ warehouseData[0] }}_product_to_manage" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_to_manage"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Prodotti da gestire ({{ warehouseData[2] }})"></i><span class="d-none d-md-block">Prodotti da gestire ({{ warehouseData[2] }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_incoming') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_incoming" href="#{{ warehouseData[0] }}_transfers_incoming" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_incoming"><i class="icon-truck d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti in entrata ({{ warehouseData[3]|length }})"></i><span class="d-none d-md-block">Trasferimenti in entrata ({{ warehouseData[3]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_output') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_output" href="#{{ warehouseData[0] }}_transfers_output" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_output"><i class="icon-truck-loading d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti in uscita ({{ warehouseData[4]|length }})"></i><span class="d-none d-md-block">Trasferimenti in uscita ({{ warehouseData[4]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_transfer_ddt_missing') %}<li><a id="btn_tab_{{ warehouseData[0] }}_transfers_ddt_missing" href="#{{ warehouseData[0] }}_transfers_ddt_missing" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_transfers_ddt_missing"><i class="icon-signature d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti senza DDT firmato ({{ warehouseData[5]|length }})"></i><span class="d-none d-md-block">Trasferimenti senza DDT firmato ({{ warehouseData[5]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_request_technicians') %}<li><a id="btn_tab_{{ warehouseData[0] }}_request_technicians" href="#{{ warehouseData[0] }}_request_technicians" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_request_technicians"><i class="icon-question d-block d-md-none" data-bs-toggle="tooltip" title="Richieste tecnici ({{ warehouseData[6]|length }})"></i><span class="d-none d-md-block">Richieste tecnici ({{ warehouseData[6]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_stocks_red') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_stocks_red" href="#{{ warehouseData[0] }}_product_stocks_red" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_stocks_red"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Scorte prodotti rosse ({{ warehouseData[7]|length }})"></i><span class="d-none d-md-block">Scorte prodotti rosse ({{ warehouseData[7]|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_warehouse_stocks_yellow') %}<li><a id="btn_tab_{{ warehouseData[0] }}_product_stocks_yellow" href="#{{ warehouseData[0] }}_product_stocks_yellow" class="tab_session2" data-filterTab="{{ warehouseData[0] }}_product_stocks_yellow"><i class="icon-box d-block d-md-none" data-bs-toggle="tooltip" title="Scorte prodotti gialle ({{ warehouseData[8]|length }})"></i><span class="d-none d-md-block">Scorte prodotti gialle ({{ warehouseData[8]|length }})</span></a></li>{% endif %} </ul> <div class="tab-container"> {# Sede centrale #} {% if app.user.canRead('desk_warehouse_product_to_manage') %} {# Prodotti da gestire #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_to_manage"> <h4 class="form_title">Prodotti da gestire</h4> <hr class="m_t_none"> {% if warehouseData[2] > 0 %} <div class="style-msg infomsg m_b_none"> <div class="sb-msg"><i class="icon-info"></i><strong>Attenzione!</strong> Ci sono {{ warehouseData[2] }} prodotti da gestire in questo magazzino!<a href="{{ path ('user_warehouse_sheet', {'warehouseId':warehouseData[0]}) }}" class="button button-3d button-mini button-amber f_right m_none">Vai al magazzino</a></div> </div> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun prodotto da gestire presente nel magazzino</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_incoming') %} {# Trasferimenti in entrata #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_incoming"> <h4 class="form_title">Trasferimenti in entrata non completati</h4> <hr class="m_t_none"> {% if warehouseData[3]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino provenienza</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[3] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseFrom }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in entrata non completato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_output') %} {# Trasferimenti in uscita #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_output"> <h4 class="form_title">Trasferimenti in uscita non completati</h4> <hr class="m_t_none"> {% if warehouseData[4]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino destinazione</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[4] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseTo }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita non completato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_transfer_ddt_missing') %} {# Trasferimenti senza DDT firmato #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_transfers_ddt_missing"> <h4 class="form_title">Trasferimenti senza DDT firmato</h4> <hr class="m_t_none"> {% if warehouseData[5]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_80p txt_a_c">Fase</th> <th class="td_w_80p txt_a_c">Fase DDT</th> <th>Magazzino provenienza</th> <th>Magazzino destinazione</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in warehouseData[5] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td class="txt_a_c">{{ pt.displayPhaseDdt('icon')|raw }}</td> <td>{{ pt.warehouseFrom }}</td> <td>{{ pt.warehouseTo }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouseData[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento senza DDT firmato!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_request_technicians') %} {# Richieste tecnici #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_request_technicians"> <h4 class="form_title">Richieste tecnici non gestite</h4> <hr class="m_t_none"> {% if warehouseData[6]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th>Tecnico</th> <th>Magazzino</th> <th>Data</th> <th>Dettagli</th> <th></th> </tr> </thead> <tbody> {% for rt in warehouseData[6] %} <tr> <td>{{ rt.technician }}</td> <td>{{ rt.warehouse }}</td> <td>{{ rt.datetime|date('d-m-Y') }}</td> <td>{{ rt.displayDetails()|raw }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_sheet', {'warehouseId':warehouseData[0]}) }}" data-bs-toggle="tooltip" title="Vai alla scheda magazzino"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun richiesta tecnico non gestita!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_stocks_red') %} {# Scorte prodotti rosse #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_stocks_red"> <h4 class="form_title">Allarmi scorte prodotti rosse</h4> <hr class="m_t_none"> {% if warehouseData[7]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_120p txt_a_c">Qtà disponibile</th> <th class="td_w_120p txt_a_c">Qtà rosso</th> <th>Modello</th> <th>Fornitore</th> </tr> </thead> <tbody> {% for ps in warehouseData[7] %} {% if loop.index < 50 %} <tr> <td class="txt_a_c">{{ ps[0] }}</td> <td class="txt_a_c">{{ ps[1] }}</td> <td>{{ ps[2] }}</td> <td>{{ ps[3] }}</td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if warehouseData[7]|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun allarme scorte prodotto rosse!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_warehouse_stocks_yellow') %} {# Scorte prodotti giallo #} <div class="tab-content clearfix" id="{{ warehouseData[0] }}_product_stocks_yellow"> <h4 class="form_title">Allarmi scorte prodotti giallo</h4> <hr class="m_t_none"> {% if warehouseData[8]|length > 0 %} <table class="table table-sm"> <thead> <tr> <th class="td_w_120p txt_a_c">Qtà disponibile</th> <th class="td_w_120p txt_a_c">Qtà giallo</th> <th class="td_w_120p txt_a_c">Qtà rosso</th> <th>Modello</th> <th>Fornitore</th> </tr> </thead> <tbody> {% for ps in warehouseData[8] %} {% if loop.index < 50 %} <tr> <td class="txt_a_c">{{ ps[0] }}</td> <td class="txt_a_c">{{ ps[1] }}</td> <td class="txt_a_c">{{ ps[2] }}</td> <td>{{ ps[3] }}</td> <td>{{ ps[4] }}</td> </tr> {% endif %} {% endfor %} </tbody> </table> {% if warehouseData[8]|length > 50 %} <div class="style-msg alertmsg m_b_none"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> Per ridurre i tempi di caricamento della scrivania, sono visualizzati solo 50 risultati</div> </div> {% endif %} {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun allarme scorte prodotto gialle!</div> </div> {% endif %} </div> {% endif %} </div> </div> </div> </div> </div> {% endfor %} </div> </div> {% endif %} </div> {% endif %} {# Operazioni #} {% if app.user.canViewTab('desk_operation') %} <div class="tab-content clearfix" id="operations"> <div class="row"> <div class="col-12 overflow_a"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% if app.user.canRead('desk_operation_tariffs') %}<li><a id="btn_tab_tariffs" href="#tariffs" class="tab_session2" data-filterTab="tariffs"><i class="icon-euro d-block d-md-none" data-bs-toggle="tooltip" title="Senza tariffe ({{ operationsWithoutTariffs|length }})"></i><span class="d-none d-md-block">Senza tariffe ({{ operationsWithoutTariffs|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_operation_key_mappings') %}<li><a id="btn_tab_key_mappings" href="#key_mappings" class="tab_session2" data-filterTab="key_mappings"><i class="icon-tags d-block d-md-none" data-bs-toggle="tooltip" title="Senza mappatura ticket ({{ operationsWithoutKeyMappings|length }})"></i><span class="d-none d-md-block">Senza mappatura ticket ({{ operationsWithoutKeyMappings|length }})</span></a></li>{% endif %} </ul> <div class="tab-container"> {% if app.user.canRead('desk_operation_tariffs') %} {# Senza tariffe #} <div class="tab-content clearfix" id="tariffs"> <h4 class="form_title">Operazioni senza tariffe</h4> <hr class="m_t_none"> {% if operationsWithoutTariffs|length > 0 %} <table class="table table-sm"> <thead> <tr> <th>Fornitore</th> <th>Operazione</th> <th>Gruppo</th> <th></th> </tr> </thead> <tbody> {% for op in operationsWithoutTariffs %} <tr> <td>{{ op.supplier }}</td> <td>{{ op.value }}</td> <td>{{ op.group }}</td> <td class="td_action"><a href="{{ path ('user_anagraphic_supplier_operation_sheet', {'operationId':op.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessuna operazione senza tariffe inserite!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_operation_key_mappings') %} {# Senza mappatura chiavi ticket #} <div class="tab-content clearfix" id="key_mappings"> <h4 class="form_title">Operazioni senza mappatura chiavi ticket</h4> <hr class="m_t_none"> {% if operationsWithoutKeyMappings|length > 0 %} <table class="table table-sm"> <thead> <tr> <th>Fornitore</th> <th>Operazione</th> <th>Gruppo</th> <th></th> </tr> </thead> <tbody> {% for op in operationsWithoutKeyMappings %} <tr> <td>{{ op.supplier }}</td> <td>{{ op.value }}</td> <td>{{ op.group }}</td> <td class="td_action"><a href="{{ path ('user_anagraphic_supplier_operation_sheet', {'operationId':op.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessuna operazione senza mappatura chiavi ticket!</div> </div> {% endif %} </div> {% endif %} </div> </div> </div> </div> </div> {% endif %} {# Prodotti #} {% if app.user.canViewTab('desk_product') %} <div class="tab-content clearfix" id="products"> {% block productsData %} <div class="row"> <div class="col-12 overflow_a"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% if app.user.canRead('desk_product_doubles') %}<li><a id="btn_tab_doubles" href="#doubles" class="tab_session2" data-filterTab="doubles"><i class="icon-euro d-block d-md-none" data-bs-toggle="tooltip" title="Matricole doppie ({{ doubleProducts|length }})"></i><span class="d-none d-md-block">Matricole doppie ({{ doubleProducts|length }})</span></a></li>{% endif %} {% if app.user.canRead('desk_product_models') %}<li><a id="btn_tab_models" href="#models" class="tab_session2" data-filterTab="models"><i class="icon-tags d-block d-md-none" data-bs-toggle="tooltip" title="Modelli senza fornitori ({{ productModelsSuppliers|length }})"></i><span class="d-none d-md-block">Modelli senza fornitori ({{ productModelsSuppliers|length }})</span></a></li>{% endif %} </ul> <div class="tab-container"> {% if app.user.canRead('desk_product_doubles') %} {# Matricole doppie #} <div class="tab-content clearfix" id="doubles"> <h4 class="form_title">Matricole doppie</h4> <hr class="m_t_none"> {% if doubleProducts|length > 0 %} <table class="table table-sm"> <thead> <tr> <th colspan="3">Prodotto 1</th> <th colspan="3">Prodotto 2</th> </tr> <tr> <th class="txt_a_c">Id</th> <th>Matricola produttore</th> <th>Matricola fornitore</th> <th class="txt_a_c">Id</th> <th>Matricola produttore</th> <th>Matricola fornitore</th> </tr> </thead> <tbody> {% for p in doubleProducts %} <tr> <td class="txt_a_c"><a href="{{ path ('user_product_sheet', {'productId':p[0]}) }}" data-bs-toggle="tooltip" title="Vai alla scheda prodotto" target="_blank" class="underline">{{ p[0] }}</a></td> <td>{{ p[1] }}</td> <td>{{ p[2] }}</td> <td class="txt_a_c"><a href="{{ path ('user_product_sheet', {'productId':p[3]}) }}" data-bs-toggle="tooltip" title="Vai alla scheda prodotto" target="_blank" class="underline">{{ p[3] }}</a></td> <td>{{ p[4] }}</td> <td>{{ p[5] }}</td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessuna matricola doppia presente nel software!</div> </div> {% endif %} </div> {% endif %} {% if app.user.canRead('desk_product_models') %} {# Modelli senza fornitore #} <div class="tab-content clearfix" id="models"> <h4 class="form_title">Modelli senza fornitori configurati</h4> <hr class="m_t_none"> {% if productModelsSuppliers|length > 0 %} <table class="table table-sm"> <thead> <tr> <th>Modello</th> <th>Produttore</th> <th>Sku</th> <th>PartNumber</th> <th>Sottocategoria</th> <th>Categoria</th> <th></th> </tr> </thead> <tbody> {% for pm in productModelsSuppliers %} <tr> <td>{{ pm.name }}</td> <td>{{ pm.producer }}</td> <td>{{ pm.sku }}</td> <td>{{ pm.partNumber }}</td> <td>{{ pm.subcategory }}</td> <td>{{ pm.subcategory.category }}</td> <td class="td_action"><a href="{{ path ('user_product_model_sheet', {'modelId':pm.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda magazzino"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun modello senza fornitore configurato!</div> </div> {% endif %} </div> {% endif %} </div> </div> </div> </div> {% endblock %} </div> {% endif %} {# Cerca #} {% if app.user.canViewTab('desk_search') %} <div class="tab-content clearfix" id="search"> {{ form_start(formSearch, {'attr': {'novalidate': 'novalidate'}}) }} <div class="row"> <div class="col-12 col-md-3"> <h4 class="form_title">Ricerca</h4> <hr class="m_t_none"> <div class="row"> <div class="col-12 form-group"> <label class="form_label">Soggetto*</label> <div {{ form_errors(formSearch.type) }}> <table class="table b_none table_no_padding m_none"> {% for t in formSearch.type %} <tr> <td class="td_w_40p">{{ form_widget(t, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat'}}) }}<label class="m_b_none" for="{{ t.vars.id }}"></label></td> <td><label class="m_b_none form_label">{{ t.vars.label }}</label></td> </tr> {% endfor %} </table> </div> </div> <div class="col-12 form-group"> <label class="form_label">Tipologia*</label> <div {{ form_errors(formSearch.like) }}> <table class="table b_none table_no_padding m_none"> {% for l in formSearch.like %} <tr> <td class="td_w_40p">{{ form_widget(l, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat'}}) }}<label class="m_b_none" for="{{ l.vars.id }}"></label></td> <td><label class="m_b_none form_label">{{ l.vars.label }}</label></td> </tr> {% endfor %} </table> </div> </div> <div class="col-12 form-group"> <label class="form_label">Valore*</label> <div {{ form_errors(formSearch.value) }}> {{ form_widget(formSearch.value) }} </div> </div> <div class="col-12 txt_a_c"> <button type="submit" class="button button-3d button-small button-rounded button-green">Cerca</button> </div> </div> </div> <div class="col-12 col-md-9 overflow_a"> <h4 class="form_title">Risultati ricerca</h4> <hr class="m_t_none"> {% if searchResults|length > 0 %} {% if searchResults|length == 50 %} <div class="style-msg alertmsg m_b_10p"> <div class="sb-msg"><i class="icon-warning-sign"></i><strong>Attenzione!</strong> La ricerca ha prodotto più di 50 risultati; utilizza un filtro più stringente per ottenerne meno!</div> </div> {% endif %} <table class="table table-sm"> <thead> <tr> {% if searchType == 'termid' or searchType == 'n_ticket' %} <th>Stato</th> <th>N° ticket</th> <th>Termid</th> <th>Cliente</th> <th>Fornitore</th> <th>Operazione</th> {% elseif searchType == 'code_producer' or searchType == 'code_supplier' %} <th>Modello</th> <th>Matr. Produttore</th> <th>Matr. Fornitore</th> <th>Termid</th> <th>Magazzino attuale</th> <th>Stato</th> <th>Condizione</th> {% elseif searchType == 'ddt' %} <th>N° DDT</th> <th>Stato</th> <th>Data/Ora</th> <th>Mag. Partenza</th> <th>Mag. Arrivo</th> <th>Stock order</th> {% elseif searchType == 'client_nickname' %} <th>Codice</th> <th>Insegna</th> <th>Indirizzo</th> <th>Telefoni</th> {% else %} <th>Telefono</th> <th>Cliente</th> <th>Indirizzo</th> {% endif %} <th></th> </tr> </thead> <tbody> {% for r in searchResults %} <tr> {% if searchType == 'termid' or searchType == 'n_ticket' %} <td>{{ r.displayStatus('string', settingProcessedActive)|raw }}</td> <td>{{ r.number }}</td> <td>{{ r.termid }}</td> <td>{{ r.client }}</td> <td>{{ r.supplier }}</td> <td>{{ r.operation }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':r.id}) }}"><img class="icon_pr" data-bs-toggle="tooltip" title="Scheda" src="{{ asset(icon_sheet) }}"></a></td> {% elseif searchType == 'code_producer' or searchType == 'code_supplier' %} <td>{{ r.model.name }}</td> <td>{{ r.codeProducer|default('---') }}</td> <td>{{ r.codeSupplier|default('---') }}</td> <td>{{ r.termid|default('---') }}</td> <td>{{ r.actualWarehouse }}</td> <td>{{ r.displayStatus('string')|raw }}</td> <td>{{ r.displayCondition('string-short')|raw }}</td> <td class="td_action"><a href="{{ path ('user_product_sheet', {'productId':r.id}) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> {% elseif searchType == 'ddt' %} <td>{{ r.ddt|default('---') }}</td> <td>{{ r.displayPhase('string')|raw }}</td> <td>{{ r.date|date('d-m-Y H:i') }}</td> <td>{{ r.warehouseFrom }}</td> <td>{{ r.warehouseTo }}</td> <td>{{ r.stockOrder|default('---') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':r.warehouseFrom.id, 'transferId':r.id}) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> {% elseif searchType == 'client_nickname' %} <td>{{ r.code|default('---') }}</td> <td>{{ r.nickname }}</td> <td>{% include 'components/twig/display_address.html.twig' with {'type':'client', 'obj':r} %}</td> <td>{{ r.displayPhones|raw }}</td> <td class="td_action"><a href="{{ path ('user_anagraphic_client_sheet', {'clientId':r.id }) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> {% else %} <td>{{ r.number }}</td> <td>{{ r.client }}</td> <td>{% include 'components/twig/display_address.html.twig' with {'type':'client', 'obj':r.client} %}</td> <td class="td_action"><a href="tel:{{ r.number }}" data-bs-toggle="tooltip" title="Chiama"><img class="icon_pr" src="{{ asset(icon_telephone) }}"></a></td> {% endif %} </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg infomsg m_b_none"> <div class="sb-msg"><i class="icon-info"></i><strong>Info!</strong> La ricerca non ha dato risultati!</div> </div> {% endif %} </div> </div> {{ form_end(formSearch) }} </div> {% endif %} </div> </div> </div> </div> {% elseif app.user.getAccountTypology == 'technician' %} {# Tecnico interno e tecnico partita IVA #} <div class="row"> <div class="col-12"> <div class="tabs clearfix m_b_none"> <ul class="tab-nav clearfix"> <li><a id="btn_tab_tickets" href="#tickets" class="tab_session" data-filterTab="tickets"><i class="icon-tag d-block d-md-none" data-bs-toggle="tooltip" title="Ticket"></i><span class="d-none d-md-block">Ticket</span></a></li> <li><a id="btn_tab_warehouse" href="#warehouse" class="tab_session" data-filterTab="warehouse"><i class="icon-warehouse d-block d-md-none" data-bs-toggle="tooltip" title="Magazzini gestiti"></i><span class="d-none d-md-block">Magazzini gestiti</span></a></li> {% if app.user.canRead('desk_search') %} <li><a href="#search" class="tab_session" id="btn_tab_search" data-filterTab="search"><i class="icon-search1 d-block d-md-none" data-bs-toggle="tooltip" title="Ricerca"></i><span class="d-none d-md-block">Ricerca</span></a></li> {% endif %} </ul> <div class="tab-container"> {# Ticket #} <div class="tab-content clearfix" id="tickets"> <div class="row"> <div class="col-12 overflow_a"> <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> <li><a id="btn_tab_summary" href="#summary" class="tab_session2" data-filterTab="summary"><i class="icon-table1 d-block d-md-none" data-bs-toggle="tooltip" title="Tabella riassuntiva"></i><span class="d-none d-md-block responsive_font_size">Tabella riassuntiva</span></a></li> <li><a id="btn_tab_assigned" href="#assigned" class="tab_session2" data-filterTab="assigned"><i class="icon-user-clock d-block d-md-none" data-bs-toggle="tooltip" title="Da prendere in carico ({{ ticketAssigned|length }})"></i><span class="d-none d-md-block responsive_font_size">Da prendere in carico ({{ ticketAssigned|length }})</span></a></li> <li><a id="btn_tab_reminders" href="#reminders" class="tab_session2" data-filterTab="reminders"><i class="icon-clock d-block d-md-none" data-bs-toggle="tooltip" title="Promemoria ({{ ticketReminders|length }})"></i><span class="d-none d-md-block responsive_font_size">Promemoria ({{ ticketReminders|length }})</span></a></li> </ul> <div class="tab-container"> {# Tabella riassuntiva #} <div class="tab-content clearfix" id="summary"> <h4 class="form_title">Tabella riassuntiva</h4> <hr class="m_t_none"> <div class="overflow_a"> <table class="table table-bordered font_12"> <thead> <tr class="bg_pr color_w"> <th>Gruppo</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('assigned', '')">Assegnati</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('taken_charge', '')">Presi in carico</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('closed', '')">Chiusi</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('suspension_request', '')">Richieste sosp</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('suspended', '')">Sospesi</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('canceled', '')">Annullati</th> <th class="td_w_100p txt_a_c a_th_hover" onclick="javascript: goToTicketList('closed_portal', '')">Chiusi su portale</th> <td class="bg_pr" style="padding: 0px 0px 0px 0px; width: 0px;"></td> <th class="td_w_100p txt_a_c">Totale</th> </tr> </thead> <tbody class="table_td_hover"> {% set total = 0 %} {% for og in operationGroups %} {% set rowTotal = 0 %} <tr> <td class="bg_w">{{ og.value }}</td> {% for ts in ticketStatuses %} {% for ticketGroup in matrixTickets %} {% if ticketGroup[0] == og.id %} {% for grCounts in ticketGroup[1] %} {% if grCounts[0] == ts.id %} {% if app.user.accountTypology == 'technician' %} <td class="txt_a_c a_td_hover" onclick="javascript: goToTicketList('{{ ts.slug }}', '{{ og.slug }}')">{{ grCounts[1] }}</td> {% else %} <td class="txt_a_c a_td_hover" onclick="javascript: goToTicketList('{{ ts.slug }}', '{{ og.id }}')">{{ grCounts[1] }}</td> {% endif %} {% set rowTotal = rowTotal + grCounts[1] %} {% endif %} {% endfor %} {% endif %} {% endfor %} {% endfor %} <td class="bg_pr"></td> <th class="txt_a_c">{{ rowTotal }}</th> </tr> {% set total = total + rowTotal %} {% endfor %} <tr class="bg_pr"> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> <td class="bg_pr"></td> </tr> <tr> <th>Totale</th> {% for ts in ticketStatuses %} {% set columnTotal = 0 %} {% for ticketGroup in matrixTickets %} {% for grCounts in ticketGroup[1] %} {% if grCounts[0] == ts.id %} {% set columnTotal = columnTotal + grCounts[1] %} {% endif %} {% endfor %} {% endfor %} <th class="txt_a_c">{{ columnTotal }}</th> {% endfor %} <th class="bg_pr"></th> <th class="txt_a_c">{{ total }}</th> </tr> </tbody> </table> </div> </div> {# Da prendere in carico #} <div class="tab-content clearfix" id="assigned"> {% if ticketAssigned|length > 0 %} <a href="javascript: ticketsTakeCharge()" class="button button-3d button-mini button-green f_right font_12 m_t_none m_b_none">Prendi in carico</a> {% endif %} <h4 class="form_title">Da prendere in carico</h4> <hr class="m_t_none m_b_5p"> {% if ticketAssigned|length > 0 %} <table class="table table-sm font_12"> <tbody> {% for t in ticketAssigned %} <tr> <td> <table class="table table_no_padding m_b_none b_none font_12"> <tr><td><b>Stato</b>: {{ t.displayStatus('string', settingProcessedActive)|raw }}</td></tr> <tr><td><b>N°</b>: {{ t.number }}</td></tr> <tr><td><b>Indirizzo</b>: {% include 'components/twig/display_address.html.twig' with {'type':'ticket', 'obj':t} %}</td></tr> <tr><td><b>Cliente</b>: {{ t.client }}</td></tr> <tr><td><b>Cliente - Indirizzo</b>: {% if t.client != null %}{% include 'components/twig/display_address.html.twig' with {'type':'client', 'obj':t.client} %}{% else %}---{% endif %}</td></tr> <tr><td><b>Operazione</b>: {{ t.operation }}</td></tr> <tr><td><b>Fornitore</b>: {{ t.supplier }}</td></tr> <tr><td><b>Ricezione</b>: {% if t.datetimeStart != null %}{{ t.datetimeStart|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> <tr><td><b>Scadenza</b>: {% if t.datetimeExpiration != null %}{{ t.datetimeExpiration|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> </table> </td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':t.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun ticket da prendere in carico!</div> </div> {% endif %} </div> {# Reminder #} <div class="tab-content clearfix" id="reminders"> <h4 class="form_title">Promemoria</h4> <hr class="m_t_none"> <div class="overflow_a"> {% if ticketReminders|length > 0 %} <table class="table table-sm responsive_font_size"> <thead> <tr> <th class="td_w_150p">Data/Ora</th> <th>Dettagli</th> <th></th> </tr> </thead> <tbody> {% for r in ticketReminders %} <tr {% if r.datetime|date('YmdHi') < "now"|date('YmdHi') %}class="bg_r_h"{% endif %}> <td>{{ r.datetime|date('d-m-Y H:i') }}</td> <td>{{ r.details }}</td> <td class="td_action"><a href="{{ path ('user_ticket_sheet', {'ticketId':r.ticket.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun promemoria presente!</div> </div> {% endif %} </div> </div> </div> </div> </div> </div> </div> {# Magazzini #} <div class="tab-content clearfix" id="warehouse"> <div class="row"> <div class="col-12 overflow_a"> {% if warehousesTransfers|length == 1 %} {% for wt in warehousesTransfers %} <div class="row"> <div class="col-12"> <h4 class="form_title">{{ wt[1] }}</h4> <hr class="m_t_none"> </div> <div class="col-12 col-lg-4 m_b_20p"> <h5 class="form_title">Trasferimenti in entrata non completati</h5> <hr class="m_t_none m_b_5p"> {% if wt[2]|length > 0 %} <table class="table table-sm font_12"> <tbody> {% for pt in wt[2] %} <tr> <td> <table class="table table_no_padding m_b_none b_none font_12"> <tr><td><b>Fase</b>: {{ pt.displayPhase('string')|raw }}</td></tr> <tr><td><b>Magazzino provenienza</b>: {{ pt.warehouseFrom }}</td></tr> <tr><td><b>Fornitore</b>: {{ pt.supplier }}</td></tr> <tr><td><b>Data creazione</b>: {{ pt.datetimeCreation|date('d-m-Y H:i') }}</td></tr> <tr><td><b>Data invio</b>: {% if pt.datetimeSend != null %}{{ pt.datetimeSend|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> <tr><td><b>Data completamento</b>: {% if pt.datetimeCompletion %}{{ pt.datetimeCompletion|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> </table> </td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in entrata!</div> </div> {% endif %} </div> <div class="col-12 col-lg-4 m_b_20p"> <h5 class="form_title">Trasferimenti in uscita non completati</h5> <hr class="m_t_none m_b_5p"> {% if wt[3]|length > 0 %} <table class="table table-sm font_12"> <tbody> {% for pt in wt[3] %} <tr> <td> <table class="table table_no_padding m_b_none b_none font_12"> <tr><td><b>Fase</b>: {{ pt.displayPhase('string')|raw }}</td></tr> <tr><td><b>Magazzino provenienza</b>: {{ pt.warehouseFrom }}</td></tr> <tr><td><b>Fornitore</b>: {{ pt.supplier }}</td></tr> <tr><td><b>Data creazione</b>: {{ pt.datetimeCreation|date('d-m-Y H:i') }}</td></tr> <tr><td><b>Data invio</b>: {% if pt.datetimeSend != null %}{{ pt.datetimeSend|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> <tr><td><b>Data completamento</b>: {% if pt.datetimeCompletion %}{{ pt.datetimeCompletion|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> </table> </td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita!</div> </div> {% endif %} </div> <div class="col-12 col-lg-4"> <h5 class="form_title">Trasferimenti senza DDT firmato</h5> <hr class="m_t_none m_b_5p"> {% if wt[4]|length > 0 %} <table class="table table-sm font_12"> <tbody> {% for pt in wt[4] %} <tr> <td> <table class="table table_no_padding m_b_none b_none font_12"> <tr><td><b>Fase</b>: {{ pt.displayPhase('string')|raw }}</td></tr> <tr><td><b>Fase DDT</b>: {{ pt.displayPhaseDdt('string')|raw }}</td></tr> <tr><td><b>Magazzino provenienza</b>: {{ pt.warehouseFrom }}</td></tr> <tr><td><b>Magazzino destinazione</b>: {{ pt.warehouseTo }}</td></tr> <tr><td><b>Fornitore</b>: {{ pt.supplier }}</td></tr> <tr><td><b>Data creazione</b>: {{ pt.datetimeCreation|date('d-m-Y H:i') }}</td></tr> <tr><td><b>Data invio</b>: {% if pt.datetimeSend != null %}{{ pt.datetimeSend|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> <tr><td><b>Data completamento</b>: {% if pt.datetimeCompletion %}{{ pt.datetimeCompletion|date('d-m-Y H:i') }}{% else %}---{% endif %}</td></tr> </table> </td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita!</div> </div> {% endif %} </div> </div> {% endfor %} {% else %} <div class="tabs side-tabs clearfix m_b_none"> <ul class="tab-nav tab-nav2 clearfix"> {% for wt in warehousesTransfers %} <li><a id="btn_tab_wt_{{ wt[0] }}" href="#wt_{{ wt[0] }}" class="tab_session2" data-filterTab="wt_{{ wt[0] }}"><i class="icon-warehouse d-block d-md-none" data-bs-toggle="tooltip" title="{{ wt[1] }}"></i><span class="d-none d-md-block font_12">{{ wt[1] }}</span></a></li> {% endfor %} </ul> <div class="tab-container"> {# Magazzini tecnico #} {% for wt in warehousesTransfers %} <div class="tab-content clearfix" id="wt_{{ wt[0] }}"> <div class="row"> <div class="col-12"> <h4 class="form_title">{{ wt[1] }}</h4> <hr class="m_t_none"> </div> <div class="col-12 col-lg-4 m_b_20p"> <h5 class="form_title">Trasferimenti in entrata non completati</h5> <hr class="m_t_none"> {% if wt[2]|length > 0 %} <table class="table table-sm font_12"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino provenienza</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in wt[2] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseFrom }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in entrata non completato!</div> </div> {% endif %} </div> <div class="col-12 col-lg-4 m_b_20p"> <h5 class="form_title">Trasferimenti in uscita non completati</h5> <hr class="m_t_none"> {% if wt[3]|length > 0 %} <table class="table table-sm font_12"> <thead> <tr> <th class="txt_a_c">Fase</th> <th>Magazzino destinazione</th> <th>Fornitore</th> <th>Data creazione</th> <th>Data invio</th> <th>Data completamento</th> <th></th> </tr> </thead> <tbody> {% for pt in wt[3] %} <tr> <td class="txt_a_c">{{ pt.displayPhase('icon')|raw }}</td> <td>{{ pt.warehouseTo }}</td> <td>{{ pt.supplier }}</td> <td>{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeSend|date('d-m-Y H:i') }}</td> <td>{{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita non completato!</div> </div> {% endif %} </div> <div class="col-12 col-lg-4"> <h5 class="form_title">Trasferimenti senza DDT firmato</h5> <hr class="m_t_none m_b_5p"> {% if wt[4]|length > 0 %} <table class="table table-sm font_12"> <tbody> {% for pt in wt[4] %} <tr> <td> <table class="table table_no_padding m_b_none b_none font_12"> <tr><td><b>Fase</b>: {{ pt.displayPhase('string')|raw }}</td></tr> <tr><td><b>Fase DDT</b>: {{ pt.displayPhaseDdt('string')|raw }}</td></tr> <tr><td><b>Magazzino provenienza</b>: {{ pt.warehouseFrom }}</td></tr> <tr><td><b>Magazzino destinazione</b>: {{ pt.warehouseTo }}</td></tr> <tr><td><b>Fornitore</b>: {{ pt.supplier }}</td></tr> <tr><td><b>Data creazione</b>: {{ pt.datetimeCreation|date('d-m-Y H:i') }}</td></tr> <tr><td><b>Data invio</b>: {{ pt.datetimeSend|date('d-m-Y H:i') }}</td></tr> <tr><td><b>Data completamento</b>: {{ pt.datetimeCompletion|date('d-m-Y H:i') }}</td></tr> </table> </td> <td class="td_action"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':wt[0], 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Vai alla scheda trasferimento"><img class="icon_pr" src="{{ asset(icon_sheet) }}"></a></td> </tr> {% endfor %} </tbody> </table> {% else %} <div class="style-msg successmsg m_b_none"> <div class="sb-msg font_12"><i class="icon-thumbs-up"></i><strong>Complimenti!</strong> Nessun trasferimento in uscita!</div> </div> {% endif %} </div> </div> </div> </div> {% endfor %} </div> </div> {% endif %} </div> </div> </div> {# Cerca #} {% if app.user.canRead('desk_search') %} <div class="tab-content clearfix" id="search"> <form action="{{ path ('user_search_redirect') }}" method="post" id="form_search"> <div class="row"> <div class="col-12 col-md-6 m_b_20p"> <h4 class="form_title">Ricerca cliente</h4> <hr class="m_t_none"> <div class="form-group"> <label class="form_label m_b_none">Insegna</label> <input type="text" class="form-control" name="clientNickname"> </div> <div class="form-group"> <label class="form_label m_b_none">Numero di telefono</label> <input type="text" class="form-control" name="clientPhone"> </div> <div class="txt_a_c"> <a href="javascript: submitTechnicianSearch('client')" class="button button-3d button-small button-rounded button-green">Cerca</a> </div> </div> <div class="col-12 col-md-6 m_b_20p"> <h4 class="form_title">Ricerca ticket</h4> <hr class="m_t_none"> <div class="form-group"> <label class="form_label m_b_none">Numero ticket o termid</label> <input type="text" class="form-control" name="number"> </div> <div class="txt_a_c"> <a href="javascript: submitTechnicianSearch('ticket')" class="button button-3d button-small button-rounded button-green">Cerca</a> </div> </div> <div class="col-12 col-md-6"> <h4 class="form_title">Ricerca prodotto</h4> <hr class="m_t_none"> <div class="form-group"> <label class="form_label m_b_none">Matricola produttore</label> <input type="text" class="form-control" name="codeProducer"> </div> <div class="form-group"> <label class="form_label m_b_none">Matricola fornitore</label> <input type="text" class="form-control" name="codeSupplier"> </div> <div class="txt_a_c"> <a href="javascript: submitTechnicianSearch('product')" class="button button-3d button-small button-rounded button-green">Cerca</a> </div> </div> </div> <input type="hidden" id="search_type" name="type"> </form> </div> {% endif %} </div> </div> </div> </div> {% endif %} </section> {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'technician' %} <form action="{{ path ('user_ticket_list_tab') }}" method="post" id="formGoToTickets"> <input type="hidden" id="ticketTabOpen" name="ticketTabOpen"> <input type="hidden" id="ticketOperationGroup" name="ticketOperationGroup"> <input type="hidden" id="ticketTechnician" name="ticketTechnician"> </form> {% endif %} {# Modale notifiche #} <div id="modalAlerts" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document" style="max-width:98%"> <div class="modal-content"> <div class="modal-header"><h3 class="modal-title">Notifiche</h3></div> <div class="modal-body"> </div> <div class="modal-footer txt_a_c"> <a href="javascript:void(0)" class="button button-3d button-mini button-pr" data-bs-dismiss="modal">Chiudi</a> </div> </div> </div> </div> {% if app.user.getAccountTypology != 'technician' and app.user.canWrite('ticket') %} <div id="modalTicketUnlockSuspension" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"><h3 class="modal-title">Ticket - Sblocca sospensione materiale</h3></div> <div class="modal-body"> <input type="hidden" id="ticketUnlockId"> <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> sbloccherai il ticket.<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> <a href="javascript:ticketUnlockSuspensionSubmit()" class="button button-3d button-mini button-green f_right">Conferma</a> </div> </div> </div> </div> {% endif %} {% if 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 %}{% endblock %}{% block javascripts %}{{ parent() }}<script> {# Agenzia #} {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'technician' %} function goToTicketList(tab, operationGroup){ document.getElementById('ticketTabOpen').value = tab; document.getElementById('ticketOperationGroup').value = operationGroup; triggerLoading(); $('#formGoToTickets').submit(); } {% endif %} {% if app.user.getAccountTypology == 'agency' %} function goToTechTicketList(operationGroup, technician){ document.getElementById('ticketTabOpen').value = 'taken_charge'; document.getElementById('ticketOperationGroup').value = operationGroup; document.getElementById('ticketTechnician').value = technician; triggerLoading(); $('#formGoToTickets').submit(); } {% endif %} {% if app.user.getAccountTypology != 'technician' and app.user.canWrite('ticket') %} function unlockSuspension(id){ document.getElementById('ticketUnlockId').value = id; $('#modalTicketUnlockSuspension').modal({backdrop: 'static', keyboard: false}).modal("show"); } function ticketUnlockSuspensionSubmit(){ triggerLoadingInElement('table_ticket_waiting_for_material'); var id = document.getElementById('ticketUnlockId').value; $.post('{{ path ("user_ticket_unlock_waiting_material") }}', {ticketId: id}, function(response){ if(response.code == 200 && response.success){ $.get("{{ path ('user_index_ticket_unlock_refresh') }}", function(data) { $("#table_ticket_waiting_for_material").html(data); }); $.get("{{ path ('user_index_ticket_tab_refresh', {'tab':'waiting_for_material'}) }}", function(data) { $("#btn_tab_waiting_for_material").html(data); }); $('#modalTicketUnlockSuspension').modal("hide"); } }, "json"); $('[data-bs-toggle="tooltip"]').tooltip(); } {% endif %} function openModalAlerts(){ $('#modalAlerts').modal({backdrop: 'static', keyboard: false}).modal("show"); } {% if app.user.getAccountTypology == 'technician' %} function ticketsTakeCharge(){ $('#takeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show"); } function submitTechnicianSearch(type){ document.getElementById('search_type').value = type; triggerLoading(); $('#form_search').submit(); } {% endif %}</script>{% endblock %}