templates/role/user/warehouse/sheet.html.twig line 1

Open in your IDE?
  1. {% extends 'role/user/index.html.twig' %}
  2. {% block title %}Magazzino - Scheda{% endblock %}
  3. {% block pageTitleH1 %}Magazzino - Scheda{% endblock %}
  4. {% block pageTitleBreadcrumb %}
  5.     <li class="breadcrumb-item"><a href="{{ path('user_warehouse_list') }}">Magazzini</a></li>
  6.     <li class="breadcrumb-item"><a href="javascript:void(0)">Scheda</a></li>
  7. {% endblock %}
  8. {% block subMenuLeft %}
  9.     {% if app.user.warehouses|length == 1 %}
  10.         <li class="nav-item"><a class="nav-link" href="{{ path ('user_index') }}">Scrivania</a></li>
  11.     {% else %}
  12.         <li class="nav-item"><a class="nav-link" href="{{ path ('user_warehouse_list') }}">Magazzini</a></li>
  13.     {% endif %}
  14. {% endblock %}
  15. {% block subMenuRight %}
  16.     {% if app.user.canWrite('warehouse') or (warehouse.jtUser(app.user.id) is not null and warehouse.jtUser(app.user.id).permission == 'RW') %}
  17.         {% if warehouse.headquarter and (app.user.canWrite('warehouse') or app.user.canWrite('warehouse_receive_material')) %}
  18.             <li class="nav-item"><a class="nav-link" href="javascript: transferReceive()">Ricevi materiale</a></li>
  19.         {% endif %}
  20.         <li class="nav-item"><a class="nav-link" href="javascript: transferSend()">Invia materiale</a></li>
  21.     {% endif %}
  22. {% endblock %}
  23. {% block content %}
  24.     {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' %}
  25.         {% set prReqTitle = "Richieste tecnici" %}
  26.         {% set prReqInserted = "Da gestire" %}
  27.         {% set prReqTakeCharge = "Prese in carico" %}
  28.         {% set prReqCompleted = "Gestite" %}
  29.     {% elseif app.user.getAccountTypology == 'technician' %}
  30.         {% set prReqTitle = "Le tue richieste" %}
  31.         {% set prReqInserted = "Inviate" %}
  32.         {% set prReqTakeCharge = "Prese in carico" %}
  33.         {% set prReqCompleted = "Completate" %}
  34.     {% endif %}
  35.     <section class="p_lr_30p m_tb_40p">
  36.         <div class="row">
  37.             <div class="col-12">
  38.                 <h3 class="form_title">Magazzino: {{ warehouse.nickname }}</h3>
  39.                 <hr class="m_t_none">
  40.                 <div class="tabs clearfix">
  41.                     <ul class="tab-nav clearfix">
  42.                         <li><a id="btn_tab_stocks" href="#stocks" class="tab_session" data-filterTab="stocks"><i class="icon-warehouse d-block d-md-none" data-bs-toggle="tooltip" title="Scorte"></i><span class="d-none d-md-block">Scorte</span></a></li>
  43.                         <li><a id="btn_tab_transfers" href="#transfers" class="tab_session" data-filterTab="transfers"><i class="icon-exchange d-block d-md-none" data-bs-toggle="tooltip" title="Trasferimenti"></i><span class="d-none d-md-block">Trasferimenti</span></a></li>
  44.                         <li><a id="btn_tab_data" href="#data" class="tab_session" data-filterTab="data"><i class="icon-users d-block d-md-none" data-bs-toggle="tooltip" title="Dati e utenti"></i><span class="d-none d-md-block">Dati e utenti</span></a></li>
  45.                         {% if (warehouse.headquarter and (app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse')) or app.user.getAccountTypology == 'technician' %}
  46.                             <li><a id="btn_tab_request" href="#technicianRequests" class="tab_session" data-filterTab="request"><i class="icon-question d-block d-md-none" data-bs-toggle="tooltip" title="{{ prReqTitle }}"></i><span class="d-none d-md-block">{{ prReqTitle }}</span></a></li>
  47.                         {% endif %}
  48.                     </ul>
  49.                     <div class="tab-container">
  50.                         {# Scorte #}
  51.                         <div class="tab-content clearfix" id="stocks">
  52.                             <div class="row">
  53.                                 <div class="col-12">
  54.                                     <h4 class="form_title">Scorte in magazzino
  55.                                         <a href="{{ path ('user_warehouse_stocks_export_csv', {'warehouseId':warehouse.id}) }}" class="button button-3d button-mini button-pr m_t_none m_b_none f_right"><i class="icon-file-excel d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Esporta in csv"></i><span class="d-none d-lg-block">Esporta in csv</span></a>
  56.                                         {% if (app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse') %}
  57.                                             {% if warehouse.headquarter and settingRecoverStock.value == 1 %}
  58.                                                 <a href="{{ path ('user_warehouse_stocks_recover', {'warehouseId':warehouse.id}) }}" class="button button-3d button-mini button-green m_t_none m_b_none f_right"><i class="icon-barcode d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Rientra scorte"></i><span class="d-none d-lg-block">Rientra scorte</span></a>
  59.                                             {% endif %}
  60.                                             {% if settingRegisterStock.value == 1 %}
  61.                                                 <a href="{{ path ('user_warehouse_stocks_register', {'warehouseId':warehouse.id}) }}" class="button button-3d button-mini button-green m_t_none m_b_none f_right"><i class="icon-barcode d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Registra scorte"></i><span class="d-none d-lg-block">Registra scorte</span></a>
  62.                                             {% endif %}
  63.                                         {% endif %}
  64.                                         {% if app.user.canWrite('warehouse_inventory') %}
  65.                                             <a href="javascript: stockInventory()" class="button button-3d button-mini button-amber m_t_none m_b_none f_right"><i class="icon-boxes d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Inventario"></i><span class="d-none d-lg-block">Inventario</span></a>
  66.                                         {% endif %}
  67.                                     </h4>
  68.                                     <hr class="m_t_none">
  69.                                 </div>
  70.                                 <div class="col-12">
  71.                                     <div class="tabs clearfix">
  72.                                         <ul class="tab-nav clearfix">
  73.                                             {% if warehouse.headquarter %}
  74.                                                 <li><a id="btn_tab_s_to_manage" href="#to_manage" class="tab_session2" data-filterTab="s_to_manage"><i class="icon-question d-block d-md-none" data-bs-toggle="tooltip" title="Da gestire ({{ toManageProductsCount }})"></i><span class="d-none d-md-block">Da gestire ({{ toManageProductsCount }})</span></a></li>
  75.                                             {% endif %}
  76.                                             <li><a id="btn_tab_s_available" href="#available" class="tab_session2" data-filterTab="s_available"><i class="icon-check d-block d-md-none" data-bs-toggle="tooltip" title="Disponibili ({{ availableProductsCount }})"></i><span class="d-none d-md-block">Disponibili ({{ availableProductsCount }})</span></a></li>
  77.                                             <li><a id="btn_tab_s_not_available" href="#not_available" class="tab_session2" data-filterTab="s_not_available"><i class="icon-minus d-block d-md-none" data-bs-toggle="tooltip" title="Non disponibili ({{ notAvailableProductsCount }})"></i><span class="d-none d-md-block">Non disponibili ({{ notAvailableProductsCount }})</span></a></li>
  78.                                             <li><a id="btn_tab_s_transfer" href="#transfer" class="tab_session2" data-filterTab="s_transfer"><i class="icon-exchange d-block d-md-none" data-bs-toggle="tooltip" title="In trasferimento ({{ transferProductsCount }})"></i><span class="d-none d-md-block">In trasferimento ({{ transferProductsCount }})</span></a></li>
  79.                                         </ul>
  80.                                         <div class="tab-container">
  81.                                             {% if warehouse.headquarter %}
  82.                                                 <div class="tab-content clearfix" id="to_manage">
  83.                                                     <div class="row">
  84.                                                         <div class="col-12">
  85.                                                             <a id="button_0_condition" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-line-alert-circle d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Cambia condizione"></i><span class="d-none d-lg-block">Cambia condizione</span></a>
  86.                                                             <a id="button_0_supplier" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-hand-holding d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Aggiungi fornitori"></i><span class="d-none d-lg-block">Aggiungi fornitori</span></a>
  87.                                                             <a id="button_0_managed" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-wrench d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Gestito"></i><span class="d-none d-lg-block">Gestito</span></a>
  88.                                                         </div>
  89.                                                         <div class="col-12 overflow_a">
  90.                                                             <table class="table table-sm table-bordered responsive_font_size">
  91.                                                                 <thead>
  92.                                                                     <tr>
  93.                                                                         <form method="get" action="{{ path ('user_warehouse_sheet', {'warehouseId':warehouse.id}) }}" id="formFilter_0">
  94.                                                                             <td colspan="3"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params')}) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtri"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a></td>
  95.                                                                             <td class="td_w_150p"><input type="text" inputmode="search" class="form-control" name="codeProducer_0" value="{{ filters.codeProducer_0|default() }}"/></td>
  96.                                                                             <td class="td_w_180p"><input type="text" inputmode="search" class="form-control" name="model_0" value="{{ filters.model_0|default() }}"/></td>
  97.                                                                             <td class="td_w_120p"><input type="text" class="form-control" id="filter_supplier_value_0" readonly onClick="filterSuppliers0()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_supplier_id_0" name="supplier_0" value="{{ filters.supplier_0|default() }}"/></td>
  98.                                                                             <td class="td_w_120p"><input type="text" inputmode="search" class="form-control" name="condition_0" value="{{ filters.condition_0|default() }}"/></td>
  99.                                                                             <td class="td_w_120p d-none d-lg-table-cell"><input type="text" inputmode="search" class="form-control" name="producer_0" value="{{ filters.producer_0|default() }}"/></td>
  100.                                                                             <td class="td_w_150p"><input type="text" inputmode="search" class="form-control" name="codeSupplier_0" value="{{ filters.codeSupplier_0|default() }}"/></td>
  101.                                                                             <td class="td_w_120p d-none d-lg-table-cell"><input type="text" inputmode="search" class="form-control" name="sku_0" value="{{ filters.sku_0|default() }}"/></td>
  102.                                                                             <td class="td_w_120p"><input type="text" inputmode="search" class="form-control" name="technician_0" value="{{ filters.technician_0|default() }}"/></td>
  103.                                                                             <td class="td_w_60p"><input type="text" inputmode="search" class="form-control" name="ddt_0" value="{{ filters.ddt_0|default() }}"/></td>
  104.                                                                             <td class="td_w_20p"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_green icon_action" src="{{ asset (icon_search) }}"></button></td>
  105.                                                                             <input type="hidden" name="filter_tab" value="s_to_manage">
  106.                                                                             <input id="sort_field_0" type="hidden" name="sortField_0" value="{{ filters.sortField_0|default() }}"/>
  107.                                                                             <input id="sort_order_0" type="hidden" name="sortOrder_0" value="{{ filters.sortOrder_0|default() }}"/>
  108.                                                                         </form>
  109.                                                                     </tr>
  110.                                                                     <tr class="bg_pr color_w">
  111.                                                                         <th class="td_w_20p"></th>
  112.                                                                         <th class="td_w_20p">
  113.                                                                             <div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
  114.                                                                                 <input id="stock_0_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll(0, 's_to_manage')">
  115.                                                                                 <label for="stock_0_all_checkboxes" class="m_b_none"></label>
  116.                                                                             </div>
  117.                                                                         </th>
  118.                                                                         <th class="td_w_40p txt_a_c">Ptà<button type="button" onClick="setOrderBy0('p.toManagePriority')" data-orderField="p.toManagePriority" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  119.                                                                         <th>Matr. produttore<button type="button" onClick="setOrderBy0('p.codeProducer')" data-orderField="p.codeProducer" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  120.                                                                         <th>Modello<button type="button" onClick="setOrderBy0('m.name')" data-orderField="m.name" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  121.                                                                         <th>Fornitori</th>                                                                        
  122.                                                                         <th>Condizione<button type="button" onClick="setOrderBy0('c.value')" data-orderField="c.value" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  123.                                                                         <th class="d-none d-lg-table-cell">Produttore<button type="button" onClick="setOrderBy0('pr.name')" data-orderField="pr.name" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  124.                                                                         <th>Matr. fornitore<button type="button" onClick="setOrderBy0('p.codeSupplier')" data-orderField="p.codeSupplier" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  125.                                                                         <th class="d-none d-lg-table-cell">SKU<button type="button" onClick="setOrderBy0('m.sku')" data-orderField="m.sku" class="f_right filter_arrow_0"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  126.                                                                         <th>Tecnico</th>
  127.                                                                         <th colspan="2">DDT</th>
  128.                                                                     </tr>
  129.                                                                 </thead>
  130.                                                                 <tbody>
  131.                                                                     {% if toManageProducts|length > 0 %}
  132.                                                                         {% for product in toManageProducts %}
  133.                                                                             {% set first = true %}
  134.                                                                             {% set suppliersString = '' %}
  135.                                                                             {% for supplier in product.suppliers %}
  136.                                                                                 {% if first %}{% set first = false %}{% else %}{% set suppliersString = suppliersString ~ '-' %}{% endif %}
  137.                                                                                 {% set suppliersString = suppliersString ~ supplier.id %}
  138.                                                                             {% endfor %}
  139.                                                                             <input type="hidden" id="suppliers_ids_string" value="{{ suppliersString }}">
  140.                                                                             <tr {% if product.toManage %}class="bg_to_manage_{{ product.toManagePriority }}"{% endif %}>
  141.                                                                                 <td class="txt_a_c"><a href="{{ path ('user_product_sheet', {'productId':product.id}) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_action icon_pr" src="{{ asset(icon_sheet) }}"></a></td>
  142.                                                                                 <td>
  143.                                                                                     <div class="switch">
  144.                                                                                         <input id="stock_checkbox_{{ product.id }}" class="switch-toggle switch-flat-mini switch-toggle-flat stock_0_checkbox" type="checkbox" value="{{ product.id }}" onChange="javascript: updateButtons(0, 's_to_manage')">
  145.                                                                                         <label for="stock_checkbox_{{ product.id }}" class="m_b_none"></label>
  146.                                                                                     </div>
  147.                                                                                 </td>
  148.                                                                                 <td class="txt_a_c">{{ product.toManagePriority }}</td>
  149.                                                                                 <td id="product_codeProducer_{{ product.id }}"><a href="{{ path ('user_product_sheet', {'productId':product.id}) }}" class="underline" target="_blank">{{ product.codeProducer|default('---') }}</a></td>
  150.                                                                                 <td id="product_model_{{ product.id }}">{{ product.model.name }}</td>
  151.                                                                                 <td>{{ product.displaySuppliers()|raw }}</td>
  152.                                                                                 <td>{{ product.displayCondition('string-short') }}</td>
  153.                                                                                 <td class="d-none d-lg-table-cell">{{ product.model.producer }}</td>
  154.                                                                                 <td id="product_codeSupplier_{{ product.id }}">{{ product.codeSupplier|default('---') }}</td>
  155.                                                                                 <td class="d-none d-lg-table-cell">{{ product.model.sku }}</td>
  156.                                                                                 <td>{% if product.getLastTransfer is not null %}{{ product.getLastTransfer().userFrom }}{% endif %}</td>
  157.                                                                                 <td colspan="2">{{ product.displayTransfersDdt()|raw }}</td>
  158.                                                                             </tr>
  159.                                                                         {% endfor %}
  160.                                                                     {% else %}
  161.                                                                         {% include 'components/twig/notice_no_values.html.twig' with {'message':'Nessun prodotto in questo stato'} %}
  162.                                                                     {% endif %}
  163.                                                                 </tbody>
  164.                                                             </table>
  165.                                                         </div>
  166.                                                         <div class="col-12 navigation txt_a_r">
  167.                                                             {{ knp_pagination_render(toManageProducts) }}
  168.                                                         </div>
  169.                                                     </div>
  170.                                                 </div>
  171.                                             {% endif %}
  172.                                             <div class="tab-content clearfix" id="available">
  173.                                                 {% set number = 1 %}
  174.                                                 {% set tab = 's_available' %}
  175.                                                 {% set status = 'available' %}
  176.                                                 {% set products = availableProducts %}
  177.                                                 {% set multipleSelection = [false, 1, []] %}
  178.                                                 {% if app.user.canWrite('warehouse') or (warehouse.jtUser(app.user.id) != null and warehouse.jtUser(app.user.id).permission == 'RW') %}
  179.                                                     {% if app.user.getAccountTypology != 'technician' %}
  180.                                                         {% set multipleSelection = [true, 1, ['supplier', 'condition', 'send', 'export']] %}
  181.                                                     {% else %}
  182.                                                         {% set multipleSelection = [true, 1, ['condition', 'send', 'export']] %}
  183.                                                     {% endif %}
  184.                                                 {% endif %}
  185.                                                 {% block tableStocks %}
  186.                                                     <div class="row">
  187.                                                         <div class="col-12">
  188.                                                             {% if multipleSelection[0] %}
  189.                                                                 {% if 'condition' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_condition" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-line-alert-circle d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Cambia condizione"></i><span class="d-none d-lg-block">Cambia condizione</span></a>{% endif %}
  190.                                                                 {% if 'supplier' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_supplier" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-hand-holding d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Aggiungi fornitori"></i><span class="d-none d-lg-block">Aggiungi fornitori</span></a>{% endif %}
  191.                                                                 {% if 'send' in multipleSelection[2] %}<a id="button_{{ multipleSelection[1] }}_send" href="javascript: void(0)" class="button button-3d button-mini button-grey f_right m_b_10p p_tb4_lr6"><i class="icon-line-send d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Invia materiale"></i><span class="d-none d-lg-block">Invia materiale</span></a>{% endif %}
  192.                                                                 {% if 'export' in multipleSelection[2] %}<a href="{{ path ('user_warehouse_stocks_export_csv_for_send', {'warehouseId':warehouse.id, 'status':status}) }}" class="button button-3d button-mini button-amber f_right m_b_10p p_tb4_lr6"><i class="icon-line-send d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Esporta per invio"></i><span class="d-none d-lg-block">Esporta per invio</span></a>{% endif %}
  193.                                                             {% endif %}
  194.                                                         </div>
  195.                                                         <div class="col-12 overflow_a">
  196.                                                             <table class="table table-sm table-bordered responsive_font_size v_a_m">
  197.                                                                 <thead>
  198.                                                                     <tr>
  199.                                                                         <form method="get" action="{{ path ('user_warehouse_sheet', {'warehouseId':warehouse.id}) }}" id="formFilter_1">
  200.                                                                             <td {% if multipleSelection[0] %}colspan="2"{% endif %}><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params')}) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a></td>
  201.                                                                             <td class="td_w_150p"><input type="text" inputmode="search" class="form-control" name="codeProducer_1" value="{{ filters.codeProducer_1|default() }}"/></td>
  202.                                                                             <td class="td_w_180p"><input type="text" inputmode="search" class="form-control" name="model_1" value="{{ filters.model_1|default() }}"/></td>
  203.                                                                             <td class="td_w_120p"><input type="text" class="form-control" id="filter_supplier_value_{{ number }}" readonly onClick="filterSuppliers{{ number }}()" data-bs-toggle="tooltip"/><input type="hidden" id="filter_supplier_id_{{ number }}" name="supplier_1" value="{{ filters.supplier_1|default() }}"/></td>
  204.                                                                             <td class="td_w_120p"><input type="text" inputmode="search" class="form-control" name="condition_1" value="{{ filters.condition_1|default() }}"/></td>
  205.                                                                             <td class="td_w_90p d-none d-lg-table-cell"><input type="text" inputmode="search" class="form-control" name="producer_1" value="{{ filters.producer_1|default() }}"/></td>
  206.                                                                             <td class="td_w_150p"><input type="text" inputmode="search" class="form-control" name="codeSupplier_1" value="{{ filters.codeSupplier_1|default() }}"/></td>
  207.                                                                             <td class="td_w_120p d-none d-lg-table-cell"><input type="text" inputmode="search" class="form-control" name="sku_1" value="{{ filters.sku_1|default() }}"/></td>
  208.                                                                             <td class="td_w_120p d-none d-lg-table-cell"><input type="text" class="form-control daterange1last font_12" id="daterange1last_{{ number }}" inputmode="search" autocomplete="off" name="dateLastTransfer_1" style="height: 38px" date-filter="range"/></td>
  209.                                                                             <td class="td_w_60p">
  210.                                                                                 <button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_action icon_green" src="{{ asset (icon_search) }}"></button>
  211.                                                                                 <a href="{{ path ('user_warehouse_stocks_export_csv_filtered', {'warehouseId':warehouse.id, 'status':status}) }}" class="f_right" data-bs-toggle="tooltip" title="Esporta filtrati"><img class="icon_action icon_amber" src="{{ asset (icon_xls) }}"></a>
  212.                                                                             </td>
  213.                                                                             <input type="hidden" name="filter_tab" value="{{ tab }}">
  214.                                                                             <input id="sort_field_1" type="hidden" name="sortField_1" value="{{ filters.sortField_1|default() }}"/>
  215.                                                                             <input id="sort_order_1" type="hidden" name="sortOrder_1" value="{{ filters.sortOrder_1|default() }}"/>
  216.                                                                         </form>
  217.                                                                     </tr>
  218.                                                                     <tr class="bg_pr color_w">
  219.                                                                         <th class="td_w_20p"></th>
  220.                                                                         {% if multipleSelection[0] %}
  221.                                                                             <th class="td_w_20p">
  222.                                                                                 <div class="switch" data-bs-toggle="tooltip" title="Seleziona tutti">
  223.                                                                                     <input id="stock_{{ multipleSelection[1] }}_all_checkboxes" class="switch-toggle switch-flat-mini switch-toggle-flat" type="checkbox" onChange="javascript: selectAll({{ multipleSelection[1] }}, '{{ tab }}')">
  224.                                                                                     <label for="stock_{{ multipleSelection[1] }}_all_checkboxes" class="m_b_none"></label>
  225.                                                                                 </div>
  226.                                                                             </th>
  227.                                                                         {% endif %}
  228.                                                                         <th>Matr. produttore<button type="button" onClick="setOrderBy1('p.codeProducer')" data-orderField="p.codeProducer" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  229.                                                                         <th>Modello<button type="button" onClick="setOrderBy1('m.name')" data-orderField="m.name" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  230.                                                                         <th>Fornitori</th>
  231.                                                                         <th>Condizione<br>(Ultimi riferimenti)<button type="button" onClick="setOrderBy1('c.value')" data-orderField="c.value" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  232.                                                                         <th class="d-none d-lg-table-cell">Produttore<button type="button" onClick="setOrderBy1('pr.name')" data-orderField="pr.name" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  233.                                                                         <th>Matr. fornitore<button type="button" onClick="setOrderBy1('p.codeSupplier')" data-orderField="p.codeSupplier" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  234.                                                                         <th>SKU<button type="button" onClick="setOrderBy1('m.sku')" data-orderField="m.sku" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  235.                                                                         <th colspan="2" class="d-none d-lg-table-cell">Data ultimo trasf.<button type="button" onClick="setOrderBy1('p.dateLastTransfer')" data-orderField="p.dateLastTransfer" class="f_right filter_arrow_1"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  236.                                                                     </tr>
  237.                                                                 </thead>
  238.                                                                 <tbody>
  239.                                                                     {% if products|length > 0 %}
  240.                                                                         {% for product in products %}
  241.                                                                             {% set first = true %}
  242.                                                                             {% set suppliersString = '' %}
  243.                                                                             {% for supplier in product.suppliers %}
  244.                                                                                 {% if first %}{% set first = false %}{% else %}{% set suppliersString = suppliersString ~ '-' %}{% endif %}
  245.                                                                                 {% set suppliersString = suppliersString ~ supplier.id %}
  246.                                                                             {% endfor %}
  247.                                                                             <input type="hidden" id="suppliers_ids_string" value="{{ suppliersString }}">
  248.                                                                             <tr {% if product.toManage %}class="bg_to_manage_{{ product.toManagePriority }}"{% endif %}>
  249.                                                                                 <td class="txt_a_c"><a href="{{ path ('user_product_sheet', {'productId':product.id}) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_action icon_pr" src="{{ asset(icon_sheet) }}"></a></td>
  250.                                                                                 {% if multipleSelection[0] %}
  251.                                                                                     <td>
  252.                                                                                         <div class="switch">
  253.                                                                                             <input id="stock_checkbox_{{ product.id }}" class="switch-toggle switch-flat-mini switch-toggle-flat stock_{{ multipleSelection[1] }}_checkbox" type="checkbox" value="{{ product.id }}" onChange="javascript: updateButtons({{ multipleSelection[1] }}, '{{ tab }}')">
  254.                                                                                             <label for="stock_checkbox_{{ product.id }}" class="m_b_none"></label>
  255.                                                                                         </div>
  256.                                                                                     </td>
  257.                                                                                 {% endif %}
  258.                                                                                 <td id="product_codeProducer_{{ product.id }}">{{ product.codeProducer|default('---') }}</td>
  259.                                                                                 <td id="product_model_{{ product.id }}">{{ product.model.name }}</td>
  260.                                                                                 <td>{{ product.displaySuppliers()|raw }}</td>
  261.                                                                                 <td>{{ product.displayCondition('string-short') }}
  262.                                                                                     {% if product.getLastTicket is not null and tab == "s_not_available" %}<a href="{{ path('user_ticket_sheet', {'ticketId': product.getLastTicket.id }) }}" target="_blank">{{ product.displayLastRefs|raw }}</a>{% endif %}
  263.                                                                                 </td>
  264.                                                                                 <td class="d-none d-lg-table-cell">{{ product.model.producer }}</td>
  265.                                                                                 <td id="product_codeSupplier_{{ product.id }}">{{ product.codeSupplier|default('---') }}</td>
  266.                                                                                 <td>{{ product.model.sku }}</td>
  267.                                                                                 <td colspan="2" class="d-none d-lg-table-cell">{{ product.dateLastTransfer|date('d-m-Y H:i') }}</td>
  268.                                                                             </tr>
  269.                                                                         {% endfor %}
  270.                                                                     {% else %}
  271.                                                                         {% include 'components/twig/notice_no_values.html.twig' with {'message':'Nessun prodotto in questo stato'} %}
  272.                                                                     {% endif %}
  273.                                                                 </tbody>
  274.                                                             </table>
  275.                                                         </div>
  276.                                                         <div class="col-12 navigation txt_a_r">
  277.                                                             {{ knp_pagination_render(products) }}
  278.                                                         </div>
  279.                                                     </div>
  280.                                                 {% endblock %}
  281.                                             </div>
  282.                                             <div class="tab-content clearfix" id="not_available">
  283.                                                 {% set number = 2 %}
  284.                                                 {% set tab = 's_not_available' %}
  285.                                                 {% set status = 'not_available' %}
  286.                                                 {% set products = notAvailableProducts %}
  287.                                                 {% set index = 1 %}
  288.                                                 {% set multipleSelection = [false, 2, []] %}
  289.                                                 {% if app.user.canWrite('warehouse') or (warehouse.jtUser(app.user.id) != null and warehouse.jtUser(app.user.id).permission == 'RW') %}
  290.                                                     {% if app.user.getAccountTypology != 'technician' %}
  291.                                                         {% set multipleSelection = [true, 2, ['supplier', 'condition', 'send', 'export']] %}
  292.                                                     {% else %}
  293.                                                         {% set multipleSelection = [true, 2, ['condition', 'send', 'export']] %}
  294.                                                     {% endif %}
  295.                                                 {% endif %}
  296.                                                 {{ block('tableStocks') }}
  297.                                             </div>
  298.                                             <div class="tab-content clearfix" id="transfer">
  299.                                                 {% set number = 3 %}
  300.                                                 {% set tab = 's_transfer' %}
  301.                                                 {% set status = 'transfer' %}
  302.                                                 {% set products = transferProducts %}
  303.                                                 {% set index = 1 %}
  304.                                                 {% set multipleSelection = [false, null, []] %}
  305.                                                 {{ block('tableStocks') }}
  306.                                             </div>
  307.                                         </div>
  308.                                     </div>
  309.                                 </div>
  310.                             </div>
  311.                         </div>
  312.                         {# Trasferimenti #}
  313.                         <div class="tab-content clearfix" id="transfers">
  314.                             <div class="row">
  315.                                 <div class="col-12">
  316.                                     <h4 class="form_title">Trasferimenti</h4>
  317.                                     <hr class="m_t_none">
  318.                                     <div class="tabs clearfix">
  319.                                         <ul class="tab-nav clearfix">
  320.                                             <li><a id="btn_tab_pt_incoming" href="#incoming" class="tab_session2" data-filterTab="pt_incoming"><i class="icon-download d-block d-md-none" data-bs-toggle="tooltip" title="In entrata ({{ incomingTransfers|length }})"></i><span class="d-none d-md-block">In entrata ({{ incomingTransfers|length }})</span></a></li>
  321.                                             <li><a id="btn_tab_pt_output" href="#output" class="tab_session2" data-filterTab="pt_output"><i class="icon-upload d-block d-md-none" data-bs-toggle="tooltip" title="In uscita ({{ outputTransfers|length }})"></i><span class="d-none d-md-block">In uscita ({{ outputTransfers|length }})</span></a></li>
  322.                                         </ul>
  323.                                         <div class="tab-container">
  324.                                             <div class="tab-content clearfix" id="incoming">
  325.                                                 {% set transfers = incomingTransfers %}
  326.                                                 {% set number = 1 %}
  327.                                                 {% set tabType = 'pt_incoming' %}
  328.                                                 {% block tableTransfers %}
  329.                                                     <div class="row">
  330.                                                         <div class="col-12 overflow_a">
  331.                                                             <table class="table table-bordered table-hover responsive_font_size">
  332.                                                                 <thead>
  333.                                                                     <tr>
  334.                                                                         <form method="get" action="{{ path ('user_warehouse_sheet', {'warehouseId':warehouse.id}) }}" id="formFilter_2">
  335.                                                                             <td colspan="2"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a></td>
  336.                                                                             <td class="td_w_100p"><input type="text" class="form-control daterange2creation font_12" id="daterange2creation_{{ number }}" inputmode="search" autocomplete="off" name="datetimeCreation_2" style="height: 38px" date-filter="range"/></td>
  337.                                                                             <td class="td_w_100p"><input type="text" class="form-control daterange2send font_12" id="daterange2send_{{ number }}" inputmode="search" autocomplete="off" name="datetimeSend_2" style="height: 38px" date-filter="range"/></td>
  338.                                                                             <td class="td_w_100p"><input type="text" class="form-control daterange2completion font_12" id="daterange2completion_{{ number }}" inputmode="search" autocomplete="off" name="datetimeCompletion_2" style="height: 38px" date-filter="range"/></td>
  339.                                                                             <td class="td_w_200p"><input type="text" class="form-control" inputmode="search" name="warehouseFrom_2" value="{{ filters.warehouseFrom_2|default() }}"/></td>
  340.                                                                             <td class="td_w_200p"><input type="text" class="form-control" inputmode="search" name="warehouseTo_2" value="{{ filters.warehouseTo_2|default() }}"/></td>
  341.                                                                             <td class="td_w_80p"><input type="text" class="form-control" inputmode="search" name="ddt_2" value="{{ filters.ddt_2|default() }}"/></td>
  342.                                                                             <td class="td_w_100p"><input type="text" class="form-control" inputmode="search" name="stockOrder_2" value="{{ filters.stockOrder_2|default() }}"/></td>
  343.                                                                             <td class="td_w_20p"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_action icon_green" src="{{ asset (icon_search) }}"></button></td>    
  344.                                                                             <input type="hidden" name="filter_tab" value="{{ tabType }}">
  345.                                                                             <input id="sort_field_2" type="hidden" name="sortField_2" value="{{ filters.sortField_2|default() }}"/>
  346.                                                                             <input id="sort_order_2" type="hidden" name="sortOrder_2" value="{{ filters.sortOrder_2|default() }}"/>
  347.                                                                         </form>
  348.                                                                     </tr>
  349.                                                                     <tr class="bg_pr color_w">
  350.                                                                         <th rowspan="2" class="td_w_20p"></th>
  351.                                                                         <th rowspan="2" class="td_w_100p v_a_m">Fase<button type="button" onClick="setOrderBy2('p.phase')" data-orderField="p.phase" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  352.                                                                         <th colspan="3" class="txt_a_c p_025rem">Data/ora</th>
  353.                                                                         <th rowspan="2" class="v_a_m">Mag. partenza<button type="button" onClick="setOrderBy2('wf.nickname')" data-orderField="wf.nickname" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  354.                                                                         <th rowspan="2" class="v_a_m">Mag. arrivo<button type="button" onClick="setOrderBy2('wt.nickname')" data-orderField="wt.nickname" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  355.                                                                         <th rowspan="2" class="v_a_m">DDT<button type="button" onClick="setOrderBy2('p.ddt')" data-orderField="p.ddt" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  356.                                                                         <th rowspan="2" class="v_a_m">Stock order<button type="button" onClick="setOrderBy2('p.stockOrder')" data-orderField="p.stockOrder" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  357.                                                                         <th rowspan="2"></th>
  358.                                                                     </tr>
  359.                                                                     <tr class="bg_pr color_w">
  360.                                                                         <th class="p_025rem txt_a_c">Creazione<button type="button" onClick="setOrderBy2('p.datetimeCreation')" data-orderField="p.datetimeCreation" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  361.                                                                         <th class="p_025rem txt_a_c">Invio<button type="button" onClick="setOrderBy2('p.datetimeSend')" data-orderField="p.datetimeSend" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  362.                                                                         <th class="p_025rem txt_a_c">Completam{% if app.user.getAccountTypology() != 'technician' %}ento{% endif %}<button type="button" onClick="setOrderBy2('p.datetimeCompletion')" data-orderField="p.datetimeCompletion" class="f_right filter_arrow_2"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  363.                                                                     </tr>
  364.                                                                 </thead>
  365.                                                                 <tbody>
  366.                                                                     {% if transfers|length > 0 %}
  367.                                                                         {% for pt in transfers %}
  368.                                                                             <tr>
  369.                                                                                 <td class="txt_a_c"><a href="{{ path ('user_warehouse_transfer_sheet', {'warehouseId':warehouse.id, 'transferId':pt.id}) }}" data-bs-toggle="tooltip" title="Scheda"><img class="icon_action icon_pr" src="{{ asset (icon_sheet) }}"></a></td>
  370.                                                                                 <td>{{ pt.displayPhase('string')|raw }}</td>
  371.                                                                                 <td class="txt_a_c">{{ pt.datetimeCreation|date('d-m-Y H:i') }}</td>
  372.                                                                                 <td class="txt_a_c">{% if pt.datetimeSend != null %}{{ pt.datetimeSend|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  373.                                                                                 <td class="txt_a_c">{% if pt.datetimeCompletion != null %}{{ pt.datetimeCompletion|date('d-m-Y H:i') }}{% else %}---{% endif %}</td>
  374.                                                                                 <td>{% if pt.warehouseFrom != null %}{{ pt.warehouseFrom }}{% else %}---{% endif %}</td>
  375.                                                                                 <td>{% if pt.warehouseTo != null %}{{ pt.warehouseTo }}{% else %}---{% endif %}</td>
  376.                                                                                 <td>{% if pt.ddtPath != null %}N° {{ pt.ddt }}{% else %}---{% endif %}</td>
  377.                                                                                 <td>{% if pt.stockOrder != null %}{{ pt.stockOrder }}{% else %}---{% endif %}</td>
  378.                                                                                 {% if (warehouse.jtUser(app.user.id) != null and warehouse.jtUser(app.user.id).permission == 'RW') or app.user.canWrite('warehouse') %}
  379.                                                                                     <td class="txt_a_c">
  380.                                                                                         {% if tabType == 'pt_incoming' %}
  381.                                                                                             {% if pt.type == 'destination' %}
  382.                                                                                                 <a href="javascript: transferDelete({{ pt.id }})" data-bs-toggle="tooltip" title="Elimina trasferimento"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a>
  383.                                                                                             {% endif %}
  384.                                                                                         {% elseif tabType == 'pt_output' %}
  385.                                                                                             {% if pt.hasProductsTransfered %}
  386.                                                                                                 <a href="javascript: void(0)" data-bs-toggle="tooltip" title="Impossibile eliminare, alcuni prodotti sono stati già trasferiti!"><img class="icon_action icon_grey" src="{{ asset (icon_delete) }}"></a>
  387.                                                                                             {% else %}
  388.                                                                                                 <a href="javascript: transferDelete({{ pt.id }})" data-bs-toggle="tooltip" title="Elimina trasferimento"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a>
  389.                                                                                             {% endif %}
  390.                                                                                         {% endif %}
  391.                                                                                     </td>
  392.                                                                                 {% endif %}
  393.                                                                             </tr>
  394.                                                                         {% endfor %}
  395.                                                                     {% else %}
  396.                                                                         {% include 'components/twig/notice_no_values.html.twig' with {'message':'Nessuno trasferimento in questo stato'} %}
  397.                                                                     {% endif %}
  398.                                                                 </tbody>
  399.                                                             </table>
  400.                                                         </div>
  401.                                                         <div class="col-12 navigation txt_a_r">
  402.                                                             {{ knp_pagination_render(transfers) }}
  403.                                                         </div>
  404.                                                     </div>
  405.                                                 {% endblock %}
  406.                                             </div>
  407.                                             <div class="tab-content clearfix" id="output">
  408.                                                 {% set transfers = outputTransfers %}
  409.                                                 {% set number = 2 %}
  410.                                                 {% set tabType = 'pt_output' %}
  411.                                                 {{ block('tableTransfers') }}
  412.                                             </div>
  413.                                         </div>
  414.                                     </div>
  415.                                 </div>
  416.                             </div>
  417.                         </div>
  418.                         {# Dati e utenti #}
  419.                         <div class="tab-content clearfix" id="data">
  420.                             <div class="row">
  421.                                 <div class="col-12 col-lg-6">
  422.                                     <h4 class="form_title">Dati generici
  423.                                         {% if app.user.canWrite('warehouse') %}
  424.                                             <a href="javascript: warehouseEdit()" class="f_right" data-bs-toggle="tooltip" title="Modifica"><img class="icon_action icon_amber" src="{{ asset (icon_edit) }}"></a>
  425.                                         {% endif %}
  426.                                     </h4>
  427.                                     <hr class="m_t_none">
  428.                                     <table class="table table-hover responsive_font_size">
  429.                                         <tr>
  430.                                             <th>Nickname</th>
  431.                                             <td>{{ warehouse.nickname }}</td>
  432.                                         </tr>
  433.                                         <tr>
  434.                                             <th>Attivo</th>
  435.                                             <td>{% if warehouse.active %}Sì{% else %}No{% endif %}</td>
  436.                                         </tr>
  437.                                         <tr>
  438.                                             <th>Sede</th>
  439.                                             <td>{% if warehouse.headquarter %}Sì{% else %}No{% endif %}</td>
  440.                                         </tr>
  441.                                         <tr>
  442.                                             <th>Indirizzo DDT</th>
  443.                                             <td>{{ warehouse.address }}</td>
  444.                                         </tr>
  445.                                         <tr>
  446.                                             <th>Fisso/Mobile</th>
  447.                                             <td>{% if warehouse.movable %}Mobile{% else %}Fisso{% endif %}</td>
  448.                                         </tr>
  449.                                     </table>
  450.                                 </div>
  451.                                 <div class="col-12 col-lg-6">
  452.                                     <h4 class="form_title">Utenti</h4>
  453.                                     <hr class="m_t_none">
  454.                                     <table class="table table-hover responsive_font_size">
  455.                                         <thead>
  456.                                             <tr>
  457.                                                 <th>Utente</th>
  458.                                                 <th>Permessi</th>
  459.                                                 <th class="txt_a_c">Principale</th>
  460.                                             </tr>
  461.                                         </thead>
  462.                                         <tbody>
  463.                                             {% for jtuw in warehouse.users %}
  464.                                                 <tr>
  465.                                                     <td>{{ jtuw.user }}</td>
  466.                                                     <td>{{ jtuw.displayPermission }}</td>
  467.                                                     <td class="txt_a_c">{% if jtuw.main %}Sì{% else %}No{% endif %}</td>
  468.                                                 </tr>
  469.                                             {% endfor %}
  470.                                         </tbody>
  471.                                     </table>
  472.                                 </div>
  473.                             </div>
  474.                         </div>
  475.                         {# Richieste tecnici #}
  476.                         {% if (warehouse.headquarter and (app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse')) or app.user.getAccountTypology == 'technician' %}
  477.                             <div class="tab-content clearfix" id="technicianRequests">
  478.                                 <div class="row">
  479.                                     <div class="col-12">
  480.                                         <h4 class="form_title">{{ prReqTitle }}
  481.                                             {% if app.user.getAccountTypology == 'technician' %}
  482.                                                 <a href="{{ path ('user_warehouse_product_request_new', {'warehouseId':warehouse.id}) }}" class="button button-3d button-mini button-green m_t_none m_b_none f_right"><i class="icon-plus d-block d-lg-none m_r_none" data-bs-toggle="tooltip" title="Richiedi materiale"></i><span class="d-none d-lg-block">Richiedi materiale</span></a></li>
  483.                                             {% endif %}
  484.                                         </h4>
  485.                                         <hr class="m_t_none">
  486.                                         <div class="tabs clearfix">
  487.                                             <ul class="tab-nav clearfix">
  488.                                                 <li><a id="btn_tab_pr_inserted" href="#inserted" class="tab_session2" data-filterTab="pr_inserted"><i class="icon-line-send d-block d-md-none" data-bs-toggle="tooltip" title="{{ prReqInserted }} ({{ insertedProductRequestsCount }})"></i><span class="d-none d-md-block">{{ prReqInserted }} ({{ insertedProductRequestsCount }})</span></a></li>
  489.                                                 <li><a id="btn_tab_pr_take_charge" href="#take_charge" class="tab_session2" data-filterTab="pr_take_charge"><i class="icon-cog d-block d-md-none" data-bs-toggle="tooltip" title="{{ prReqTakeCharge }} ({{ takeChargeProductRequestsCount }})"></i><span class="d-none d-md-block">{{ prReqTakeCharge }} ({{ takeChargeProductRequestsCount }})</span></a></li>
  490.                                                 <li><a id="btn_tab_pr_completed" href="#completed" class="tab_session2" data-filterTab="pr_completed"><i class="icon-checkmark d-block d-md-none" data-bs-toggle="tooltip" title="{{ prReqCompleted }} ({{ completedProductRequestsCount }})"></i><span class="d-none d-md-block">{{ prReqCompleted }} ({{ completedProductRequestsCount }})</span></a></li>
  491.                                             </ul>
  492.                                             <div class="tab-container">
  493.                                                 <div class="tab-content clearfix" id="inserted">
  494.                                                     {% set requests = insertedProductRequests %}
  495.                                                     {% set tabType = 'pr_inserted' %}
  496.                                                     {% set number = 1 %}
  497.                                                     {% set tabAction = '' %}
  498.                                                     {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' and warehouse.headquarter %}
  499.                                                         {% set tabAction = 'take_charge' %}
  500.                                                     {% elseif app.user.getAccountTypology == 'technician' %}
  501.                                                         {% set tabAction = 'delete' %}
  502.                                                     {% endif %}
  503.                                                     {% block tableRequests %}
  504.                                                         <div class="row">
  505.                                                             <div class="col-12 overflow_a">
  506.                                                                 <table class="table table-bordered table-hover responsive_font_size">
  507.                                                                     <thead>
  508.                                                                         <tr>
  509.                                                                             <form method="get" action="{{ path ('user_warehouse_sheet', {'warehouseId':warehouse.id}) }}" id="formFilter_3">
  510.                                                                                 <td class="td_w_40p txt_a_c"><a href="{{ path ('remove_filter', {'route':app.request.attributes.get('_route'), 'route_params':app.request.attributes.get('_route_params') }) }}" class="f_right" data-bs-toggle="tooltip" title="Escludi filtro"><img class="icon_action icon_red" src="{{ asset (icon_delete) }}"></a></td>
  511.                                                                                 <td class="td_w_140p"><input type="text" class="form-control daterange3 font_12" id="daterange3_{{ number }}" inputmode="search" autocomplete="off" name="date_3" style="height: 38px" date-filter="range"/></td>
  512.                                                                                 <td><input type="text" class="form-control" inputmode="search" name="technician_3" value="{{ filters.technician_3|default() }}"/></td>
  513.                                                                                 <td><input type="text" class="form-control" inputmode="search" name="warehouse_3" value="{{ filters.warehouse_3|default() }}"/></td>
  514.                                                                                 <td colspan="3" class="td_action"><button type="submit" class="btn bg_w f_left p_0p" data-bs-toggle="tooltip" title="Filtra"><img class="icon_green" src="{{ asset (icon_search) }}"></button></td>    
  515.                                                                                 <input type="hidden" name="filter_tab" value="{{ tabType }}">
  516.                                                                                 <input id="sort_field_3" type="hidden" name="sortField_3" value="{{ filters.sortField_3|default() }}"/>
  517.                                                                                 <input id="sort_order_3" type="hidden" name="sortOrder_3" value="{{ filters.sortOrder_3|default() }}"/>
  518.                                                                             </form>
  519.                                                                         </tr>
  520.                                                                         <tr class="bg_pr color_w">
  521.                                                                             <th colspan="2" class="txt_a_c">Data/Ora<button type="button" onClick="setOrderBy3('pr.datetime')" data-orderField="pr.datetime" class="f_right filter_arrow_3"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  522.                                                                             <th class="td_w_200p">Tecnico<button type="button" onClick="setOrderBy3('p.surname')" data-orderField="p.surname" class="f_right filter_arrow_3"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  523.                                                                             {% if warehouse.headquarter %}
  524.                                                                                 <th class="td_w_200p">Mag. Tecnico<button type="button" onClick="setOrderBy3('w.nickname')" data-orderField="w.nickname" class="f_right filter_arrow_3"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  525.                                                                             {% else %}
  526.                                                                                 <th class="td_w_200p">Mag. Sede<button type="button" onClick="setOrderBy3('wh.nickname')" data-orderField="wh.nickname" class="f_right filter_arrow_3"><img width="18" data-bs-toggle="tooltip" title="Ordina in ordine alfabetico"></button></th>
  527.                                                                             {% endif %}
  528.                                                                             <th class="d-none d-lg-table-cell">Prodotti</th>
  529.                                                                             <th class="d-none d-lg-table-cell">Note</th>
  530.                                                                             <th class="td_action d-table-cell d-lg-none"></th>
  531.                                                                             {% if tabAction == 'delete' or tabAction == 'take_charge' or tabAction == 'complete' %}<th colspan="2"></th>{% endif %}
  532.                                                                         </tr>
  533.                                                                     </thead>
  534.                                                                     <tbody>
  535.                                                                         {% if requests|length > 0 %}
  536.                                                                             {% for pr in requests %}
  537.                                                                                 <input type="hidden" id="request_warehouse_id" value="{{ pr.warehouse.id }}">
  538.                                                                                 <input type="hidden" id="request_warehouse_nickname" value="{{ pr.warehouse.nickname }}">
  539.                                                                                 <input type="hidden" id="request_{{ pr.id }}_details" value="{{ pr.displayDetails }}">
  540.                                                                                 <input type="hidden" id="request_{{ pr.id }}_notes" value="{{ pr.notes }}">
  541.                                                                                 <tr>
  542.                                                                                     <td id="request_{{ pr.id }}_datetime" colspan="2" class="txt_a_c">{{ pr.datetime|date('d-m-Y H:i') }}</td>
  543.                                                                                     <td id="request_{{ pr.id }}_technician">{{ pr.technician }}</td>
  544.                                                                                     {% if warehouse.headquarter %}
  545.                                                                                         <td id="request_{{ pr.id }}_warehouse">{{ pr.warehouse }}</td>
  546.                                                                                     {% else %}
  547.                                                                                         <td id="request_{{ pr.id }}_warehouse_headquarter">{{ pr.warehouseHeadquarter }}</td>
  548.                                                                                     {% endif %}
  549.                                                                                     <td class="d-none d-lg-table-cell">{{ pr.displayDetails|raw }}</td>
  550.                                                                                     <td class="d-none d-lg-table-cell">{{ pr.notes|raw }}</td>
  551.                                                                                     <td class="td_action d-table-cell d-lg-none"><a href="javascript: productRequestSheet({{ pr.id }})" data-bs-toggle="tooltip" title="Scheda"><img class="icon_pr" src="{{ asset (icon_sheet) }}"></a></td>
  552.                                                                                     {% if tabAction == 'delete' %}
  553.                                                                                         <td class="td_action"><a href="javascript: productRequestDelete({{ pr.id }})" data-bs-toggle="tooltip" title="Elimina"><img class="icon_red" src="{{ asset (icon_delete) }}"></a></td>
  554.                                                                                     {% elseif tabAction == 'take_charge' %}
  555.                                                                                         <td class="td_action"><a href="javascript: productRequestTakeCharge({{ pr.id }})" data-bs-toggle="tooltip" title="Prendi in carico"><img class="icon_green" src="{{ asset (icon_thumb_up) }}"></a></td>
  556.                                                                                     {% elseif tabAction == 'complete' %}
  557.                                                                                         <td class="td_action"><a href="javascript: productRequestManaged({{ pr.id }})" data-bs-toggle="tooltip" title="Richiesta gestita"><img class="icon_green" src="{{ asset (icon_select) }}"></a></td>
  558.                                                                                     {% endif %}
  559.                                                                                 </tr>
  560.                                                                             {% endfor %}
  561.                                                                         {% else %}
  562.                                                                             {% include 'components/twig/notice_no_values.html.twig' with {'message':'Nessuna richiesta in questa fase'} %}
  563.                                                                         {% endif %}
  564.                                                                     </tbody>
  565.                                                                 </table>
  566.                                                             </div>
  567.                                                             <div class="col-12 navigation txt_a_r">
  568.                                                                 {{ knp_pagination_render(requests) }}
  569.                                                             </div>
  570.                                                         </div>
  571.                                                     {% endblock %}
  572.                                                 </div>
  573.                                                 <div class="tab-content clearfix" id="take_charge">
  574.                                                     {% set requests = takeChargeProductRequests %}
  575.                                                     {% set tabType = 'pr_take_charge' %}
  576.                                                     {% set number = 2 %}
  577.                                                     {% set tabAction = '' %}
  578.                                                     {% if app.user.getAccountTypology == 'agency' or app.user.getAccountTypology == 'warehouse' and warehouse.headquarter %}
  579.                                                         {% set tabAction = 'complete' %}
  580.                                                     {% endif %}
  581.                                                     {{ block('tableRequests') }}
  582.                                                 </div>
  583.                                                 <div class="tab-content clearfix" id="completed">
  584.                                                     {% set requests = completedProductRequests %}
  585.                                                     {% set tabType = 'pr_completed' %}
  586.                                                     {% set number = 3 %}
  587.                                                     {% set tabAction = '' %}
  588.                                                     {{ block('tableRequests') }}
  589.                                                 </div>
  590.                                             </div>
  591.                                         </div>
  592.                                     </div>
  593.                                 </div>
  594.                             </div>
  595.                         {% endif %}
  596.                     </div>
  597.                 </div>
  598.             </div>
  599.         </div>
  600.     </section>
  601.     {# Inventario #}
  602.     <div id="stockInventoryModal" class="modal fade" tabindex="-1" role="dialog">
  603.         <div class="modal-dialog" role="document">
  604.             <div class="modal-content">
  605.                 {{ form_start(formInventory, {'attr': {'novalidate': 'novalidate'}}) }}
  606.                     <div class="modal-header"><h3 class="modal-title">Verifica inventario</h3></div>
  607.                     <div class="modal-body">
  608.                         <div class="row">
  609.                             <div class="col-12 form-group">
  610.                                 <label class="form_label">Fornitore*</label>
  611.                                 <div {{ form_errors(formInventory.supplier) }}>
  612.                                     {{ form_widget(formInventory.supplier, {'attr':{'class':'form-control form-select'}}) }}
  613.                                 </div>
  614.                             </div>
  615.                             <div class="col-12 form-group">
  616.                                 <label class="form_label">Stato*</label>
  617.                                 <div {{ form_errors(formInventory.status) }}>
  618.                                     {{ form_widget(formInventory.status, {'attr':{'class':'form-control form-select'}}) }}
  619.                                 </div>
  620.                             </div>
  621.                             <div class="col-12">
  622.                                 <label class="form_label">File*</label>
  623.                                 <div {{ form_errors(formInventory.path) }}>
  624.                                     {{ form_widget(formInventory.path, {'attr': {'class':'display_n'}}) }}
  625.                                     {{ form_widget(formInventory.file, {'attr': {'class':'display_n'}}) }}
  626.                                     <div class="input-group">
  627.                                         <span class="input-group-btn"><button id="selectFile2" class="button button-3d button-small button-rounded button-pr button_input_group" type="button">Seleziona</button></span>
  628.                                         <input id="filename2" type="text" class="form-control" readonly>
  629.                                     </div>
  630.                                 </div>
  631.                             </div>
  632.                         </div>
  633.                     </div>
  634.                     <div class="modal-footer">
  635.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  636.                         <button type="submit" class="button button-3d button-mini button-green f_right">Prosegui</button>
  637.                     </div>
  638.                 {{ form_end(formInventory) }}
  639.             </div>
  640.         </div>
  641.     </div>
  642.     
  643.     {# Ricevi #}
  644.     <div id="transferReceiveModal" class="modal fade" tabindex="-1" role="dialog">
  645.         <div class="modal-dialog" role="document">
  646.             <div class="modal-content">
  647.                 {{ form_start(formReceive, {'attr': {'novalidate': 'novalidate'}}) }} 
  648.                     <div class="modal-header"><h3 class="modal-title">Ricevi materiale</h3></div>
  649.                     <div class="modal-body">
  650.                         <div class="row">
  651.                             <div class="col-12 form-group">
  652.                                 <label class="form_label">Magazzino di provenienza*</label>
  653.                                 <div {{ form_errors(formReceive.warehouse) }}>
  654.                                     {{ form_widget(formReceive.warehouse, {'attr':{'class':'form-control form-select'}}) }}
  655.                                 </div>
  656.                             </div>
  657.                             <div class="col-6 form-group">
  658.                                 <label class="form_label">Stock order</label>
  659.                                 <div {{ form_errors(formReceive.stockOrder) }}>
  660.                                     {{ form_widget(formReceive.stockOrder) }}
  661.                                 </div>
  662.                             </div>
  663.                             <div class="col-6 form-group">
  664.                                 <label class="form_label">Inserire DDT?</label>
  665.                                 <div {{ form_errors(formReceive.ddtMandatory) }}>
  666.                                     <table class="m_none">
  667.                                         <tr>
  668.                                             <td class="txt_a_l"><label class="m_b_none m_r_10p l_s_none f_w_500">No</label></td>
  669.                                             <td>{{ form_widget(formReceive.ddtMandatory, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat', 'onChange':'javascript: tranferReceiveShowHideDDT()', 'checked':true}}) }}<label class="m_auto" for="{{ formReceive.ddtMandatory.vars.id }}"></label></td>
  670.                                             <td class="txt_a_l"><label class="m_b_none m_l_10p l_s_none f_w_500">Sì</label></td>
  671.                                         </tr>
  672.                                     </table>
  673.                                 </div>
  674.                             </div>
  675.                         </div>
  676.                         <div class="row" id="row_receive_ddt">
  677.                             <div class="col-6 form-group">
  678.                                 <label class="form_label">Numero DDT*</label>
  679.                                 <div {{ form_errors(formReceive.ddt) }}>
  680.                                     {{ form_widget(formReceive.ddt) }}
  681.                                 </div>
  682.                             </div>
  683.                             <div class="col-6 form-group">
  684.                                 <label class="form_label">DDT*</label>
  685.                                 <div {{ form_errors(formReceive.ddtPath) }}>
  686.                                     {{ form_widget(formReceive.ddtPath, {'attr': {'class':'display_n'}}) }}
  687.                                     {{ form_widget(formReceive.file, {'attr': {'class':'display_n'}}) }}
  688.                                     <div class="input-group">
  689.                                         <span class="input-group-btn"><button id="selectFile1" class="button button-3d button-small button-rounded button-pr button_input_group" type="button">Seleziona</button></span>
  690.                                         <input id="filename1" type="text" class="form-control" readonly>
  691.                                     </div>
  692.                                 </div>
  693.                             </div>
  694.                         </div>
  695.                     </div>
  696.                     <div class="modal-footer">
  697.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  698.                         <button type="submit" class="button button-3d button-mini button-green f_right">Continua</button>
  699.                     </div>
  700.                 {{ form_end(formReceive) }}
  701.             </div>
  702.         </div>
  703.     </div>
  704.     
  705.     {# Invia #}
  706.     <div id="transferSendModal" class="modal fade" tabindex="-1" role="dialog">
  707.         <div class="modal-dialog" role="document">
  708.             <div class="modal-content">
  709.                 {{ form_start(formSend, {'attr': {'novalidate': 'novalidate', 'id':'formSend'}}) }}
  710.                     <div class="modal-header"><h3 class="modal-title">Invia materiale</h3></div>
  711.                     <div class="modal-body">
  712.                         <div class="row" id="row_select_type">
  713.                             <div class="col-12 txt_a_c">
  714.                                 <label class="form_label">A chi stai inviando il materiale?</label>
  715.                             </div>
  716.                             {% if warehouse.headquarter %}
  717.                                 <div class="col-12 col-md-6 txt_a_c">
  718.                                     <a href="javascript: transferSendSetType('destination')" class="button button-3d button-mini button-pr width_200p txt_a_c">Destinazione esterna</a>
  719.                                 </div>
  720.                             {% else %}
  721.                                 <div class="col-12 col-md-6 txt_a_c">
  722.                                     <a href="javascript: transferSendSetType('main')" class="button button-3d button-mini button-pr width_200p txt_a_c">Sede centrale</a>
  723.                                 </div>
  724.                             {% endif %}
  725.                             <div class="col-12 col-md-6 txt_a_c">
  726.                                 <a href="javascript: transferSendSetType('technician')" class="button button-3d button-mini button-pr width_200p txt_a_c" id="a_send_technician">Tecnico</a>
  727.                             </div>
  728.                             {{ form_widget(formSend.type, {'attr':{'class':'display_n'}}) }}
  729.                         </div>
  730.                         <div class="row m_t_30p" id="row_send_data" style="display: none">
  731.                             <div class="col-12">
  732.                                 <h4 class="form_title">Invia materiale a: <span id="span_send_type" class="f_w_b"></span></h4>
  733.                                 <hr class="m_t_none">
  734.                             </div>
  735.                             <div class="col-12 form-group" id="row_user_from_select" style="display: none">
  736.                                 <label class="form_label">Tecnico di partenza*</label>
  737.                                 <div {{ form_errors(formSend.userFrom) }}>
  738.                                     {{ form_widget(formSend.userFrom, {'attr':{'class':'form-control form-select'}}) }}
  739.                                 </div>
  740.                             </div>
  741.                             <div class="col-12 form-group" id="row_user_to_select">
  742.                                 <label class="form_label">Tecnico di destinazione*</label>
  743.                                 <div {{ form_errors(formSend.userTo) }}>
  744.                                     {{ form_widget(formSend.userTo, {'attr':{'class':'form-control form-select', 'onchange':'updateTechnicianWarehouses()'}}) }}
  745.                                 </div>
  746.                             </div>
  747.                             <div class="col-12 form-group" id="row_warehouse_select">
  748.                                 <label class="form_label">Magazzino di destinazione*</label>
  749.                                 <div {{ form_errors(formSend.warehouse) }}>
  750.                                     {{ form_widget(formSend.warehouse, {'attr':{'class':'form-control form-select'}}) }}
  751.                                 </div>
  752.                             </div>
  753.                             <div class="col-12 form-group" id="row_warehouse_selected" style="display: none">
  754.                                 <label class="form_label">Magazzino di destinazione*</label>
  755.                                 <input type="text" readonly="true" class="form-control" id="input_warehouse_display">
  756.                             </div>
  757.                             <div class="col-12 form-group" id="div_send_supplier">
  758.                                 <label class="form_label">Fornitore*</label>
  759.                                 <div {{ form_errors(formSend.supplier) }}>
  760.                                     {{ form_widget(formSend.supplier, {'attr':{'class':'form-control form-select', 'onChange':'showHideDivestment()'}}) }}
  761.                                 </div>
  762.                             </div>
  763.                             <div class="col-12 form-group" id="div_send_ddt_mandatory" style="display: none">
  764.                                 <div {{ form_errors(formSend.ddtMandatory) }}>
  765.                                     {% set checked = false %}
  766.                                     {% if settingDdtMandatory.value %}
  767.                                         {% set checked = true %}
  768.                                     {% endif %}
  769.                                     <table class="table table-sm b_none m_b_none">
  770.                                         <tr>
  771.                                             <td><label class="form_label m_b_none">Caricamento DDT firmato obbligatorio?</label></td>
  772.                                             <td class="td_w_40p txt_a_r"><label class="m_b_none m_r_10p l_s_none f_w_500">No</label></td>
  773.                                             <td class="td_w_40p">{{ form_widget(formSend.ddtMandatory, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat', 'checked':checked}}) }}<label class="m_auto" for="{{ formSend.ddtMandatory.vars.id }}"></label></td>
  774.                                             <td class="td_w_40p txt_a_l"><label class="m_b_none m_l_10p l_s_none f_w_500">Sì</label></td>
  775.                                         </tr>
  776.                                     </table>
  777.                                 </div>
  778.                             </div>
  779.                             <div class="col-12 form-group" id="div_send_divestment" style="display: none">
  780.                                 <div {{ form_errors(formSend.divestment) }}>
  781.                                     <table class="table table-sm b_none m_b_none">
  782.                                         <tr>
  783.                                             <td><label class="form_label m_b_none">è dismissione?</label></td>
  784.                                             <td class="td_w_40p txt_a_r"><label class="m_b_none m_r_10p l_s_none f_w_500">No</label></td>
  785.                                             <td class="td_w_40p">{{ form_widget(formSend.divestment, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat'}}) }}<label class="m_auto" for="{{ formSend.divestment.vars.id }}"></label></td>
  786.                                             <td class="td_w_40p txt_a_l"><label class="m_b_none m_l_10p l_s_none f_w_500">Sì</label></td>
  787.                                         </tr>
  788.                                     </table>
  789.                                 </div>
  790.                             </div>
  791.                         </div>
  792.                     </div>
  793.                     {{ form_widget(formSend.sendStocksIds, {'attr':{'class':'display_n'}}) }}
  794.                     {{ form_widget(formSend.productRequestId, {'attr':{'class':'display_n'}}) }}
  795.                     <div class="modal-footer">
  796.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  797.                         <a id="button_send_submit" href="javascript:void(0)" class="button button-3d button-mini button-grey f_right">Continua</a>
  798.                     </div>
  799.                 {{ form_end(formSend) }}
  800.             </div>
  801.         </div>
  802.     </div>
  803.     
  804.     {# Stock - Gestito #}
  805.     <div id="stockManagedModal" class="modal fade" tabindex="-1" role="dialog">
  806.         <div class="modal-dialog" role="document">
  807.             <div class="modal-content">
  808.                 <form action="{{ path ('user_warehouse_stock_multiple_select_action', {'warehouseId':warehouse.id}) }}" method="post" id="formManaged">
  809.                     <div class="modal-header"><h3 class="modal-title">Prodotti gestiti</h3></div>                        
  810.                     <div class="modal-body">
  811.                         <input type="hidden" id="managedStocksIds" name="ids">
  812.                         <input type="hidden" id="managedAction" name="action">
  813.                         <div class="row">
  814.                             <div class="col-12 txt_a_c">
  815.                                 <label class="modal_subtitle">Attenzione!</label><br>
  816.                                 <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-green' href='javascript:void(0)'>conferma</a> i prodotti selezionati verranno segnati come gestiti.<br>Si Ã¨ sicuri di voler proseguire?</p>
  817.                             </div>
  818.                         </div>
  819.                     </div>
  820.                     <div class="modal-footer">
  821.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  822.                         <button type="button" class="button button-3d button-mini button-green f_right" onclick="javascript: checkSubmit('managed')">Conferma</button>
  823.                     </div>
  824.                 </form>
  825.             </div>
  826.         </div>
  827.     </div>
  828.     
  829.     {# Stock - Aggiungi fornitori #}
  830.     <div id="stockSupplierModal" class="modal fade" tabindex="-1" role="dialog">
  831.         <div class="modal-dialog" role="document">
  832.             <div class="modal-content">
  833.                 <form action="{{ path ('user_warehouse_stock_multiple_select_action', {'warehouseId':warehouse.id}) }}" method="post" id="formSupplier">
  834.                     <div class="modal-header"><h3 class="modal-title">Aggiungi fornitori per i prodotti</h3></div>                        
  835.                     <div class="modal-body">
  836.                         <input type="hidden" id="supplierStocksIds" name="ids">
  837.                         <input type="hidden" id="supplierAction" name="action">
  838.                         <div class="row">
  839.                             <div class="col-12">
  840.                                 <label class="form_label">Seleziona i fornitori da aggiungere</label>
  841.                                 <div id="divErrorSupplier">
  842.                                     {% for s in suppliers %}
  843.                                         <table class="table table_no_padding b_none m_b_none">
  844.                                             <tr>
  845.                                                 <td class="td_w_40p"><input id="input_supplier_{{ s.id }}" type="checkbox" class="switch-toggle switch-flat-mini switch-toggle-flat supplier_checkboxes" name="supplier_{{ s.id }}"><label class="m_b_none" for="input_supplier_{{ s.id }}"></label></td>
  846.                                                 <td><label class="m_b_none form_label">{{ s.name }}</label></td>
  847.                                             </tr>
  848.                                         </table>
  849.                                     {% endfor %}
  850.                                 </div>
  851.                             </div>
  852.                         </div>
  853.                     </div>
  854.                     <div class="modal-footer">
  855.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  856.                         <button type="button" class="button button-3d button-mini button-green f_right" onclick="javascript: checkSubmit('supplier')">Conferma</button>
  857.                     </div>
  858.                 </form>
  859.             </div>
  860.         </div>
  861.     </div>
  862.     {# Stock - Cambio condizione #}
  863.     <div id="stockConditionModal" class="modal fade" tabindex="-1" role="dialog">
  864.         <div class="modal-dialog" role="document">
  865.             <div class="modal-content">
  866.                 <form action="{{ path ('user_warehouse_stock_multiple_select_action', {'warehouseId':warehouse.id}) }}" method="post" id="formCondition">
  867.                     <div class="modal-header"><h3 class="modal-title">Cambia condizione prodotti</h3></div>
  868.                     <div class="modal-body">
  869.                         <input type="hidden" id="conditionStocksIds" name="ids">
  870.                         <input type="hidden" id="conditionAction" name="action">
  871.                         <input type="hidden" id="stockTab" name="tab">
  872.                         <div class="row">
  873.                             <div class="col-12">
  874.                                 <label class="form_label">Seleziona nuova condizione</label>
  875.                                 <div id="divErrorCondition">
  876.                                     <select class="form-control form-select" id="select_product_condition" name="productCondition">
  877.                                         <option></option>
  878.                                         {% for condition in productConditions %}
  879.                                             <option value="{{ condition.id }}">{{ condition.value }}</option>
  880.                                         {% endfor %}
  881.                                     </select>
  882.                                 </div>
  883.                             </div>
  884.                         </div>
  885.                     </div>
  886.                     <div class="modal-footer">
  887.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  888.                         <button type="button" class="button button-3d button-mini button-green f_right" onclick="javascript: checkSubmit('condition')">Conferma</button>
  889.                     </div>
  890.                 </form>
  891.             </div>
  892.         </div>
  893.     </div>
  894.     
  895.     {# Transfer - Elimina #}
  896.     <div id="transferDeleteModal" class="modal fade" tabindex="-1" role="dialog">
  897.         <div class="modal-dialog" role="document">
  898.             <div class="modal-content">
  899.                 <form action="{{ path ('user_warehouse_transfer_delete', {'warehouseId':warehouse.id}) }}" method="post">
  900.                     <div class="modal-header"><h3 class="modal-title">Trasferimento - Elimina</h3></div>
  901.                     <div class="modal-body">
  902.                         <input type="hidden" id="transferDeleteId" name="transferDelId"/>
  903.                         <input type="hidden" name="warehouseId" value="{{ warehouse.id }}"/>
  904.                         <div class="row">
  905.                             <div class="col-12 txt_a_c">
  906.                                 <label class="modal_subtitle">Attenzione!</label>
  907.                                 <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-red' href='javascript:void(0)'>conferma</a> eliminerai il trasferimento.<br>Si Ã¨ sicuri di voler proseguire?</p>
  908.                             </div>
  909.                         </div>
  910.                     </div>
  911.                     <div class="modal-footer">
  912.                         <a href="javascript:void(0)" class="button button-3d button-mini button-green f_left" data-bs-dismiss="modal">Annulla</a>
  913.                         <button type="submit" class="button button-3d button-mini button-red f_right">Conferma</button>
  914.                     </div>
  915.                 </form>
  916.             </div>
  917.         </div>
  918.     </div>    
  919.     
  920.     {# Product request - Sheet #}
  921.     <div id="productRequestSheetModal" class="modal fade" tabindex="-1" role="dialog">
  922.         <div class="modal-dialog" role="document">
  923.             <div class="modal-content">
  924.                 <div class="modal-header"><h3 class="modal-title">Richiesta materiale - Dettaglio</h3></div>
  925.                 <div class="modal-body">
  926.                     <table class="table table-sm responsive_font_size">
  927.                         <tr>
  928.                             <th>Data/Ora</th>
  929.                             <td id="request_sheet_datetime"></td>
  930.                         </tr>
  931.                         <tr>
  932.                             <th>Tecnico</th>
  933.                             <td id="request_sheet_technician"></td>
  934.                         </tr>
  935.                         </tr>
  936.                             <th>Magazzino tecnico</th>
  937.                             <td id="request_sheet_warehouse"></td>
  938.                         </tr>
  939.                         </tr>
  940.                             <th>Magazzino richiesta</th>
  941.                             <td id="request_sheet_warehouse_headquarter"></td>
  942.                         </tr>
  943.                         <tr>
  944.                             <td colspan="2" id="request_sheet_details"></td>
  945.                         </tr>
  946.                         <tr>
  947.                             <th>Note</th>
  948.                             <td id="request_sheet_notes"></td>
  949.                         </tr>
  950.                     </table>
  951.                 </div>
  952.                 <div class="modal-footer txt_a_c">
  953.                     <a href="javascript:void(0)" class="button button-3d button-mini button-red" data-bs-dismiss="modal">Chiudi</a>
  954.                 </div>
  955.             </div>
  956.         </div>
  957.     </div>
  958.     {# Product request - Take charge #}
  959.     <div id="productRequestTakeChargeModal" class="modal fade" tabindex="-1" role="dialog">
  960.         <div class="modal-dialog" role="document">
  961.             <div class="modal-content">
  962.                 <form action="{{ path ('user_warehouse_product_request_take_charge', {'warehouseId':warehouse.id}) }}" method="post">
  963.                     <div class="modal-header"><h3 class="modal-title">Richiesta prodotti - Prendi in carico</h3></div>
  964.                     <div class="modal-body">
  965.                         <input type="hidden" id="product_request_take_charge_id" name="productRequestId">
  966.                         <div class="row">
  967.                             <div class="col-12 txt_a_c">
  968.                                 <label class="modal_subtitle">Attenzione!</label><br>
  969.                                 <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 la richiesta.<br>Si Ã¨ sicuri di voler proseguire?</p>
  970.                             </div>
  971.                         </div>
  972.                     </div>
  973.                     <div class="modal-footer">
  974.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  975.                         <button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
  976.                     </div>
  977.                 </form>
  978.             </div>
  979.         </div>
  980.     </div>
  981.     
  982.     {# Product request - Take charge #}
  983.     <div id="productRequestManagedModal" class="modal fade" tabindex="-1" role="dialog">
  984.         <div class="modal-dialog" role="document">
  985.             <div class="modal-content">
  986.                 <form action="{{ path ('user_warehouse_product_request_managed', {'warehouseId':warehouse.id}) }}" method="post">
  987.                     <div class="modal-header"><h3 class="modal-title">Richiesta prodotti - Gestita</h3></div>
  988.                     <div class="modal-body">
  989.                         <input type="hidden" id="product_request_managed_id" name="productRequestId">
  990.                         <div class="row">
  991.                             <div class="col-12 txt_a_c">
  992.                                 <label class="modal_subtitle">Attenzione!</label><br>
  993.                                 <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-green' href='javascript:void(0)'>conferma</a> dichiarerai gestita la richiesta.<br>Si Ã¨ sicuri di voler proseguire?</p>
  994.                             </div>
  995.                         </div>
  996.                     </div>
  997.                     <div class="modal-footer">
  998.                         <a href="javascript:void(0)" class="button button-3d button-mini button-red f_left" data-bs-dismiss="modal">Annulla</a>
  999.                         <button type="submit" class="button button-3d button-mini button-green f_right">Conferma</button>
  1000.                     </div>
  1001.                 </form>
  1002.             </div>
  1003.         </div>
  1004.     </div>
  1005.     
  1006.     {# Product request - Delete #}
  1007.     <div id="productRequestDeleteModal" class="modal fade" tabindex="-1" role="dialog">
  1008.         <div class="modal-dialog" role="document">
  1009.             <div class="modal-content">
  1010.                 <form action="{{ path ('user_warehouse_product_request_delete', {'warehouseId':warehouse.id}) }}" method="post">
  1011.                     <div class="modal-header"><h3 class="modal-title">Richieste prodotto - Elimina</h3></div>
  1012.                     <div class="modal-body">
  1013.                         <input type="hidden" id="product_request_delete_id" name="productRequestId">
  1014.                         <div class="row">
  1015.                             <div class="col-12 txt_a_c">
  1016.                                 <label class="modal_subtitle">Attenzione!</label><br>
  1017.                                 <p class="modal_paragraph">Cliccando sul bottone <a class='button button-3d button-mini button-red' href='javascript:void(0)'>conferma</a> eliminerai la richiesta.<br>Si Ã¨ sicuri di voler proseguire?</p>
  1018.                             </div>
  1019.                         </div>
  1020.                     </div>
  1021.                     <div class="modal-footer">
  1022.                         <a href="javascript:void(0)" class="button button-3d button-mini button-green f_left" data-bs-dismiss="modal">Annulla</a>
  1023.                         <button type="submit" class="button button-3d button-mini button-red f_right">Conferma</button>
  1024.                     </div>
  1025.                 </form>
  1026.             </div>
  1027.         </div>
  1028.     </div>
  1029. {% endblock %}
  1030. {% block modals %}
  1031.     {% include 'components/modals/filter_supplier.html.twig' with {'number':0, 'suppliers':suppliers} %}
  1032.     {% include 'components/modals/filter_supplier.html.twig' with {'number':1, 'suppliers':suppliers} %}
  1033.     {% include 'components/modals/filter_supplier.html.twig' with {'number':2, 'suppliers':suppliers} %}
  1034.     {% include 'components/modals/filter_supplier.html.twig' with {'number':3, 'suppliers':suppliers} %}
  1035.     {# Dati magazzino #}
  1036.     {% set editWarehouseModalBody %}
  1037.         <input type="hidden" id="warehouseEditId" name="warehouseEditId"/>
  1038.         <div class="row">
  1039.             <div class="col-12 form-group">
  1040.                 <label class="form_label">Nome*</label>
  1041.                 <div {{ form_errors(formEdit.nickname) }}>
  1042.                     {{ form_widget(formEdit.nickname) }}
  1043.                 </div>
  1044.             </div>
  1045.             <div class="col-12 form-group">
  1046.                 <label class="form_label">Indirizzo DDT*</label>
  1047.                 <div {{ form_errors(formEdit.address) }}>
  1048.                     {{ form_widget(formEdit.address) }}
  1049.                 </div>
  1050.             </div>
  1051.             <div class="col-12 col-md-6 form-group">
  1052.                 <label class="form_label">Sede centrale</label>
  1053.                 <div {{ form_errors(formEdit.headquarter) }}>
  1054.                     <table class="m_none">
  1055.                         <tr>
  1056.                             <td class="txt_a_l"><label class="m_b_none m_r_10p l_s_none f_w_500">No</label></td>
  1057.                             <td>{{ form_widget(formEdit.headquarter, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat'}}) }}<label class="m_auto" for="{{ formEdit.headquarter.vars.id }}"></label></td>
  1058.                             <td class="txt_a_l"><label class="m_b_none m_l_10p l_s_none f_w_500">Sì</label></td>
  1059.                         </tr>
  1060.                     </table>
  1061.                 </div>
  1062.             </div>
  1063.             <div class="col-12 col-md-6 form-group">
  1064.                 <label class="form_label">Magazzino mobile</label>
  1065.                 <div {{ form_errors(formEdit.movable) }}>
  1066.                     <table class="m_none">
  1067.                         <tr>
  1068.                             <td class="txt_a_l"><label class="m_b_none m_r_10p l_s_none f_w_500">No</label></td>
  1069.                             <td>{{ form_widget(formEdit.movable, {'attr': {'class':'switch-toggle switch-flat-mini switch-toggle-flat'}}) }}<label class="m_auto" for="{{ formEdit.movable.vars.id }}"></label></td>
  1070.                             <td class="txt_a_l"><label class="m_b_none m_l_10p l_s_none f_w_500">Sì</label></td>
  1071.                         </tr>
  1072.                     </table>
  1073.                 </div>
  1074.             </div>
  1075.         </div>
  1076.     {% endset %}
  1077.     {% set editWarehouseScriptBody %}{% endset %}
  1078.     {% include 'components/modals/edit.html.twig' with {'type':'warehouse', 'form':formEdit, 'text':'Magazzino', 'modalBody':editWarehouseModalBody, 'scriptBody':editWarehouseScriptBody, 'openModal':'openEditModal', 'id':''} %}
  1079. {% endblock %}
  1080. {% block javascripts %}
  1081. {{ parent() }}
  1082. {% include 'components/js/upload_file_js.html.twig' with {'number':'1', 'file':'form_transfer_receive_file', 'path':'form_transfer_receive_ddtPath'} %}
  1083. {% include 'components/js/upload_file_js.html.twig' with {'number':'2', 'file':'form_import_inventory_file', 'path':'form_import_inventory_path'} %}
  1084. {% include 'components/js/sort_js.html.twig' with {'number':0, 'actualSortField':filters.sortField_0, 'actualSortOrder':filters.sortOrder_0, 'sort_field':'sort_field_0', 'sort_order':'sort_order_0', 'formName':'formFilter_0', 'arrowClass':'filter_arrow_0'} %}
  1085. {% include 'components/js/sort_js.html.twig' with {'number':1, 'actualSortField':filters.sortField_1, 'actualSortOrder':filters.sortOrder_1, 'sort_field':'sort_field_1', 'sort_order':'sort_order_1', 'formName':'formFilter_1', 'arrowClass':'filter_arrow_1'} %}
  1086. {% include 'components/js/sort_js.html.twig' with {'number':2, 'actualSortField':filters.sortField_2, 'actualSortOrder':filters.sortOrder_2, 'sort_field':'sort_field_2', 'sort_order':'sort_order_2', 'formName':'formFilter_2', 'arrowClass':'filter_arrow_2'} %}
  1087. {% include 'components/js/sort_js.html.twig' with {'number':3, 'actualSortField':filters.sortField_3, 'actualSortOrder':filters.sortOrder_3, 'sort_field':'sort_field_3', 'sort_order':'sort_order_3', 'formName':'formFilter_3', 'arrowClass':'filter_arrow_3'} %}
  1088. {% include 'components/js/filter_supplier_js.html.twig' with {'number':0, 'suppliers':suppliers, 'filterSupplier':filters.supplier_0} %}
  1089. {% include 'components/js/filter_supplier_js.html.twig' with {'number':1, 'suppliers':suppliers, 'filterSupplier':filters.supplier_1} %}
  1090. {% include 'components/js/filter_supplier_js.html.twig' with {'number':2, 'suppliers':suppliers, 'filterSupplier':filters.supplier_1} %}
  1091. {% include 'components/js/filter_supplier_js.html.twig' with {'number':3, 'suppliers':suppliers, 'filterSupplier':filters.supplier_1} %}
  1092. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange1last_1', 'format':'DD-MM-YYYY HH:mm'} %}
  1093. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange1last_2', 'format':'DD-MM-YYYY HH:mm'} %}
  1094. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange1last_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1095. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2creation_1', 'format':'DD-MM-YYYY HH:mm'} %}
  1096. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2send_1', 'format':'DD-MM-YYYY HH:mm'} %}
  1097. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2completion_1', 'format':'DD-MM-YYYY HH:mm'} %}
  1098. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2creation_2', 'format':'DD-MM-YYYY HH:mm'} %}
  1099. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2send_2', 'format':'DD-MM-YYYY HH:mm'} %}
  1100. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2completion_2', 'format':'DD-MM-YYYY HH:mm'} %}
  1101. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2creation_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1102. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2send_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1103. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange2completion_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1104. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange3_1', 'format':'DD-MM-YYYY HH:mm'} %}
  1105. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange3_2', 'format':'DD-MM-YYYY HH:mm'} %}
  1106. {% include 'components/js/daterangepicker_js.html.twig' with {'id':'daterange3_3', 'format':'DD-MM-YYYY HH:mm'} %}
  1107. <script>
  1108.     $(document).ready(function(){
  1109.         // Inventory
  1110.         {% if app.session.get('openStockInventoryModal') %}
  1111.             stockInventory();
  1112.             {{ app.session.remove('openStockInventoryModal') }}
  1113.         {% endif %}
  1114.         // Receive
  1115.         {% if app.session.get('openTransferReceiveModal') %}
  1116.             transferReceive();
  1117.             {{ app.session.remove('openTransferReceiveModal') }}
  1118.         {% endif %}
  1119.         // Invia
  1120.         {% if app.session.get('openTransferSendModal') %}
  1121.             transferSend();
  1122.             {{ app.session.remove('openTransferSendModal') }}
  1123.         {% endif %}
  1124.         {% if app.session.get('transferStocksIds') %}
  1125.             {{ app.session.remove('transferStocksIds') }}
  1126.         {% endif %}
  1127.         var dateRanges1last = document.getElementsByClassName('daterange1last');
  1128.         {% if filters.dateLastTransfer_1 != null and filters.dateLastTransfer_1 != '' %}
  1129.             for(i=0; i<dateRanges1last.length; i++){
  1130.                 dateRanges1last[i].value = "{{ filters.dateLastTransfer_1 }}";
  1131.             }
  1132.         {% else %}
  1133.             for(i=0; i<dateRanges1last.length; i++){
  1134.                 dateRanges1last[i].value = "";
  1135.             }
  1136.         {% endif %}
  1137.         var dateRanges2creation = document.getElementsByClassName('daterange2creation');
  1138.         {% if filters.datetimeCreation_2 != null and filters.datetimeCreation_2 != '' %}
  1139.             for(i=0; i<dateRanges2creation.length; i++){
  1140.                 dateRanges2creation[i].value = "{{ filters.datetimeCreation_2 }}";
  1141.             }
  1142.         {% else %}
  1143.             for(i=0; i<dateRanges2creation.length; i++){
  1144.                 dateRanges2creation[i].value = "";
  1145.             }
  1146.         {% endif %}
  1147.         
  1148.         var dateRanges2send = document.getElementsByClassName('daterange2send');
  1149.         {% if filters.datetimeSend_2 != null and filters.datetimeSend_2 != '' %}
  1150.             for(i=0; i<dateRanges2send.length; i++){
  1151.                 dateRanges2send[i].value = "{{ filters.datetimeSend_2 }}";
  1152.             }
  1153.         {% else %}
  1154.             for(i=0; i<dateRanges2send.length; i++){
  1155.                 dateRanges2send[i].value = "";
  1156.             }
  1157.         {% endif %}
  1158.         
  1159.         var dateRanges2completion = document.getElementsByClassName('daterange2completion');
  1160.         {% if filters.datetimeCompletion_2 != null and filters.datetimeCompletion_2 != '' %}
  1161.             for(i=0; i<dateRanges2completion.length; i++){
  1162.                 dateRanges2completion[i].value = "{{ filters.datetimeCompletion_2 }}";
  1163.             }
  1164.         {% else %}
  1165.             for(i=0; i<dateRanges2completion.length; i++){
  1166.                 dateRanges2completion[i].value = "";
  1167.             }
  1168.         {% endif %}
  1169.         var dateRanges3 = document.getElementsByClassName('daterange3');
  1170.         {% if filters.date_3 != null and filters.date_3 != '' %}
  1171.             for(i=0; i<dateRanges3.length; i++){
  1172.                 dateRanges3[i].value = "{{ filters.date_3 }}";
  1173.             }
  1174.         {% else %}
  1175.             for(i=0; i<dateRanges3.length; i++){
  1176.                 dateRanges3[i].value = "";
  1177.             }
  1178.         {% endif %}
  1179.     });
  1180.     function selectAll(index, tab){
  1181.         var checkboxes = document.getElementsByClassName('stock_' + index + '_checkbox');
  1182.         var isSelect = document.getElementById('stock_' + index + '_all_checkboxes').checked;
  1183.         for(i=0; i<checkboxes.length; i++)
  1184.             checkboxes[i].checked = isSelect;
  1185.         updateButtons(index, tab);
  1186.     }
  1187.     
  1188.     function updateButtons(index, tab){
  1189.         var inputSelectAll = document.getElementById('stock_' + index + '_all_checkboxes');
  1190.         var checkboxes = document.getElementsByClassName('stock_' + index + '_checkbox');
  1191.         var buttonCondition = document.getElementById('button_' + index + '_condition');
  1192.         if(tab == 's_to_manage')
  1193.             var buttonManaged = document.getElementById('button_' + index + '_managed');
  1194.         {% if app.user.getAccountTypology != 'technician' %}
  1195.             if(tab == 's_to_manage' || tab == 's_available' || tab == 's_not_available')
  1196.                 var buttonSupplier = document.getElementById('button_' + index + '_supplier');
  1197.         {% endif %}
  1198.         if(tab == 's_available' || tab == 's_not_available')
  1199.             var buttonSend = document.getElementById('button_' + index + '_send');
  1200.         var isAllSelected = true;
  1201.         const array = [];
  1202.         for(i=0; i<checkboxes.length; i++){
  1203.             if(checkboxes[i].checked){
  1204.                 array.push(checkboxes[i].value);
  1205.             }
  1206.             else
  1207.                 isAllSelected = false;
  1208.         }
  1209.         
  1210.         if(!isAllSelected)
  1211.             inputSelectAll.checked = false;
  1212.         
  1213.         if(array.length > 0){
  1214.             buttonCondition.className = "button button-3d button-mini button-green f_right m_b_10p";
  1215.             buttonCondition.href = "javascript: sendAction('condition', " + index + ", '" + tab + "')";
  1216.             if(tab == 's_to_manage'){
  1217.                 buttonManaged.className = "button button-3d button-mini button-green f_right m_b_10p";
  1218.                 buttonManaged.href = "javascript: sendAction('managed', " + index + ", '" + tab + "')";
  1219.             }
  1220.             {% if app.user.getAccountTypology != 'technician' %}
  1221.                 if(tab == 's_to_manage' || tab == 's_available' || tab == 's_not_available'){
  1222.                     buttonSupplier.className = "button button-3d button-mini button-green f_right m_b_10p";
  1223.                     buttonSupplier.href = "javascript: sendAction('supplier', " + index + ", '" + tab + "')";
  1224.                 }
  1225.             {% endif %}
  1226.             if(tab == 's_available' || tab == 's_not_available'){
  1227.                 buttonSend.className = "button button-3d button-mini button-green f_right m_b_10p";
  1228.                 buttonSend.href = "javascript: sendAction('send', " + index + ", '" + tab + "')";
  1229.             }
  1230.         }
  1231.         else{
  1232.             buttonCondition.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1233.             buttonCondition.href = "javascript: void(0)";
  1234.             if(tab == 's_to_manage'){
  1235.                 buttonManaged.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1236.                 buttonManaged.href = "javascript: void(0)";
  1237.             }
  1238.             {% if app.user.getAccountTypology != 'technician' %}
  1239.                 if(tab == 's_to_manage' || tab == 's_available' || tab == 's_not_available'){
  1240.                     buttonSupplier.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1241.                     buttonSupplier.href = "javascript: void(0)";
  1242.                 }
  1243.             {% endif %}
  1244.             if(tab == 's_available' || tab == 's_not_available'){
  1245.                 buttonSend.className = "button button-3d button-mini button-grey f_right m_b_10p";
  1246.                 buttonSend.href = "javascript: void(0)";
  1247.             }
  1248.         }
  1249.     }
  1250.     function sendAction(action, index, tab){
  1251.         var checkboxes = document.getElementsByClassName('stock_' + index + '_checkbox');
  1252.         const array = [];
  1253.         for(i=0; i<checkboxes.length; i++){
  1254.             if(checkboxes[i].checked)
  1255.                 array.push(checkboxes[i].value);
  1256.         }
  1257.         switch(action){
  1258.             case 'managed':
  1259.                 document.getElementById('managedStocksIds').value = array;
  1260.                 document.getElementById('managedAction').value = action;
  1261.                 $('#stockManagedModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1262.                 break;
  1263.             case 'supplier':
  1264.                 var checkboxes = document.getElementsByClassName('supplier_checkboxes');
  1265.                 for(i=0; i<checkboxes.length; i++){
  1266.                     checkboxes[i].removeAttribute("checked");
  1267.                     checkboxes[i].checked = false;
  1268.                 }
  1269.                 document.getElementById('supplierStocksIds').value = array;
  1270.                 document.getElementById('supplierAction').value = action;
  1271.                 $('#stockSupplierModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1272.                 break;
  1273.             case 'condition':
  1274.                 document.getElementById('conditionAction').value = action;
  1275.                 document.getElementById('conditionStocksIds').value = array;
  1276.                 switch(index){
  1277.                     case 0: document.getElementById('stockTab').value = 'to_manage'; break;
  1278.                     case 1: document.getElementById('stockTab').value = 'available'; break;
  1279.                     case 2: document.getElementById('stockTab').value = 'not_available'; break;
  1280.                     default: break;
  1281.                 }
  1282.                 $('#stockConditionModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1283.                 break;
  1284.             case 'send':
  1285.                 var a = document.getElementById('a_send_technician');
  1286.                 if(tab == 's_not_available'){
  1287.                     a.href = "javascript: void(0)";
  1288.                     a.className = "button button-3d button-mini button-grey width_200p txt_a_c";
  1289.                 }
  1290.                 else{
  1291.                     a.href = "javascript: transferSendSetType('technician')";
  1292.                     a.className = "button button-3d button-mini button-pr width_200p txt_a_c";
  1293.                 }
  1294.                 document.getElementById('form_transfer_send_sendStocksIds').value = array;
  1295.                 transferSend();
  1296.                 break;
  1297.             default: break;
  1298.         }
  1299.     }
  1300.     function checkSubmit(action){
  1301.         switch(action){
  1302.             case 'managed':
  1303.                 triggerLoading();
  1304.                 $('#formManaged').submit();
  1305.                 break;
  1306.             case 'supplier':
  1307.                 var valid = false;
  1308.                 var checkboxes = document.getElementsByClassName('supplier_checkboxes');
  1309.                 for(i=0; i<checkboxes.length; i++){
  1310.                     if(checkboxes[i].checked){
  1311.                         valid = true;
  1312.                         break;
  1313.                     }
  1314.                 }
  1315.                 if(valid){
  1316.                     triggerLoading();
  1317.                     $('#formSupplier').submit();
  1318.                 }
  1319.                 else{
  1320.                     var divError = document.getElementById('divErrorSupplier');
  1321.                     divError.className = 'error';
  1322.                     divError.children[0].setAttribute('data-bs-toggle', 'tooltip');
  1323.                     divError.children[0].setAttribute('title', 'Campo obbligatorio');
  1324.                 }
  1325.                 break;
  1326.             case 'condition':
  1327.                 if(document.getElementById('select_product_condition').value != 0){
  1328.                     triggerLoading();
  1329.                     $('#formCondition').submit();
  1330.                 }
  1331.                 else{
  1332.                     var divError = document.getElementById('divErrorCondition');
  1333.                     divError.className = 'error';
  1334.                     divError.children[0].setAttribute('data-bs-toggle', 'tooltip');
  1335.                     divError.children[0].setAttribute('title', 'Campo obbligatorio');
  1336.                 }
  1337.                 break;
  1338.             default: break;
  1339.         }
  1340.         $('[data-bs-toggle="tooltip"]').tooltip();
  1341.     }
  1342.     function stockInventory(){
  1343.         $('#stockInventoryModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1344.     }
  1345.     // RICEVI MATERIALE
  1346.     $('#form_transfer_receive_date').datepicker({ autoclose: true, todayHighlight: true, format: "dd-mm-yyyy", startDate: "today" });
  1347.     function transferReceive(){
  1348.         $('#transferReceiveModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1349.     }
  1350.     function tranferReceiveShowHideDDT(){
  1351.         if(document.getElementById('form_transfer_receive_ddtMandatory').checked == true){
  1352.             document.getElementById('row_receive_ddt').style.display = 'flex';
  1353.         }
  1354.         else{
  1355.             document.getElementById('row_receive_ddt').style.display = 'none';
  1356.         }
  1357.     }
  1358.     // INVIA MATERIALE
  1359.     $('#form_transfer_send_date').datepicker({ autoclose: true, todayHighlight: true, format: "dd-mm-yyyy", startDate: "today" });
  1360.     function transferSend(){
  1361.         document.getElementById('form_transfer_send_productRequestId').value = '';
  1362.         document.getElementById('row_select_type').style.display = 'flex';
  1363.         document.getElementById('row_warehouse_select').style.display = 'block';
  1364.         document.getElementById('row_warehouse_selected').style.display = 'none';
  1365.         document.getElementById('row_send_data').className = 'row m_t_30p';
  1366.         $('#transferSendModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1367.     }
  1368.     
  1369.     function transferSendSetType(type){
  1370.         document.getElementById('form_transfer_send_type').value = type;
  1371.         $.post('{{ path ("user_warehouse_transfer_update_warehouses", {"warehouseId":warehouse.id}) }}', {type: type}, function(response){ 
  1372.             if(response.code == 200 && response.success){
  1373.                 switch(type){
  1374.                     case 'technician': 
  1375.                         updateTechnicianWarehouses();
  1376.                         document.getElementById('span_send_type').innerHTML = 'Tecnico';
  1377.                         document.getElementById('div_send_supplier').style.display = 'none';
  1378.                         document.getElementById('div_send_ddt_mandatory').style.display = 'block';
  1379.                         document.getElementById('row_user_to_select').style.display = 'block';
  1380.                         {% if warehouse.headquarter == 0 and app.user.getAccountTypology != 'technician' %}
  1381.                             document.getElementById('row_user_from_select').style.display = 'block';
  1382.                         {% endif %}
  1383.                         break;
  1384.                     case 'destination':
  1385.                         document.getElementById('span_send_type').innerHTML = 'Destinazione esterna';
  1386.                         document.getElementById('div_send_supplier').style.display = 'block';
  1387.                         document.getElementById('div_send_ddt_mandatory').style.display = 'none';
  1388.                         document.getElementById('row_user_to_select').style.display = 'none';
  1389.                         break;
  1390.                     case 'main':
  1391.                         document.getElementById('span_send_type').innerHTML = 'Sede centrale';
  1392.                         document.getElementById('div_send_supplier').style.display = 'none';
  1393.                         document.getElementById('div_send_ddt_mandatory').style.display = 'none';
  1394.                         document.getElementById('row_user_to_select').style.display = 'none';
  1395.                         {% if warehouse.headquarter == 0 and app.user.getAccountTypology != 'technician' %}
  1396.                             document.getElementById('row_user_from_select').style.display = 'block';
  1397.                         {% endif %}
  1398.                         break;
  1399.                     default: break;
  1400.                 }
  1401.                 var select = document.getElementById('form_transfer_send_warehouse');
  1402.                 while(select.options.length){
  1403.                     select.remove(0);
  1404.                 }
  1405.                 var warehouses = JSON.parse(response.warehouses);
  1406.                 for(var i = 0; i < warehouses.length; i++){
  1407.                     var option = new Option(warehouses[i]['nickname'], warehouses[i]['id']);
  1408.                     select.options.add(option);
  1409.                 }
  1410.                 document.getElementById('row_send_data').style.display = 'flex';
  1411.                 document.getElementById('button_send_submit').className = 'button button-3d button-mini button-green f_right';
  1412.                 document.getElementById('button_send_submit').href = 'javascript: transferSendSubmit()';
  1413.             }
  1414.         }, "json");
  1415.     }
  1416.     function showHideDivestment(){
  1417.         var select = document.getElementById('form_transfer_send_supplier');
  1418.         var options = select.children;
  1419.         if(options[select.selectedIndex].innerHTML == 'NEXI BOOK MONETICA' || options[select.selectedIndex].innerHTML == 'NEXI BOOK MEPS' || options[select.selectedIndex].innerHTML == 'NEXI BOOK SIA' || options[select.selectedIndex].innerHTML == 'DS - NEXI BOOK MONETICA' || options[select.selectedIndex].innerHTML == 'DS - NEXI BOOK MEPS' || options[select.selectedIndex].innerHTML == 'DS - NEXI BOOK SIA')
  1420.             document.getElementById('div_send_divestment').style.display = 'block';
  1421.         else
  1422.             document.getElementById('div_send_divestment').style.display = 'none';
  1423.     }
  1424.     function updateTechnicianWarehouses(){
  1425.         technicianId = document.getElementById('form_transfer_send_userTo').value;
  1426.         $.post('{{ path ("user_warehouse_transfer_update_technician_warehouses", {"warehouseId":warehouse.id}) }}', {technicianId: technicianId}, function(response){ 
  1427.             if(response.code == 200 && response.success){
  1428.                 var select = document.getElementById('form_transfer_send_warehouse');
  1429.                 while(select.options.length){
  1430.                     select.remove(0);
  1431.                 }
  1432.                 var warehouses = JSON.parse(response.warehouses);
  1433.                 for(var i = 0; i < warehouses.length; i++){
  1434.                     var option = new Option(warehouses[i]['nickname'], warehouses[i]['id']);
  1435.                     select.options.add(option);
  1436.                 }
  1437.                 document.getElementById('row_send_data').style.display = 'flex';
  1438.             }
  1439.         }, "json");
  1440.     }
  1441.     function transferSendSubmit(){
  1442.         $('#formSend').submit();
  1443.     }
  1444.     function transferDelete(id){
  1445.         document.getElementById("transferDeleteId").value = id;
  1446.         $('#transferDeleteModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1447.     }
  1448.     
  1449.     // GESTISCI RICHIESTE TECNICI
  1450.     function productRequestSheet(id){
  1451.         document.getElementById('request_sheet_datetime').innerHTML = document.getElementById('request_' + id + '_datetime').innerHTML;
  1452.         document.getElementById('request_sheet_technician').innerHTML = document.getElementById('request_' + id + '_technician').innerHTML;
  1453.         document.getElementById('request_sheet_warehouse').innerHTML = document.getElementById('request_' + id + '_warehouse').innerHTML;
  1454.         document.getElementById('request_sheet_warehouse_headquarter').innerHTML = document.getElementById('request_' + id + '_warehouse_headquarter').innerHTML;
  1455.         document.getElementById('request_sheet_details').innerHTML = document.getElementById('request_' + id + '_details').value;
  1456.         document.getElementById('request_sheet_notes').innerHTML = document.getElementById('request_' + id + '_notes').value;
  1457.         $('#productRequestSheetModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1458.     }
  1459.     function productRequestDelete(id){
  1460.         document.getElementById('product_request_delete_id').value = id;
  1461.         $('#productRequestDeleteModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1462.     }
  1463.     {% if warehouse.headquarter %}
  1464.         function productRequestTakeCharge(id){
  1465.             document.getElementById('product_request_take_charge_id').value = id;
  1466.             $('#productRequestTakeChargeModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1467.         }
  1468.         
  1469.         function productRequestManaged(id){
  1470.             document.getElementById('product_request_managed_id').value = id;
  1471.             $('#productRequestManagedModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  1472.         }
  1473.     {% endif %}
  1474. </script>
  1475. {% endblock %}