templates/common/sidebar.html.twig line 1

Open in your IDE?
  1. {# templates/partials/sidebar.html.twig #}
  2. {# ==== COLORES DINÁMICOS SEGÚN BRANDING ==== #}
  3. {% set sidebarBg = '#101230' %}
  4. {% set sidebarAccent = '#32aaf0' %}
  5. {% if branding_current is defined and branding_current is not null %}
  6.     {% if branding_current.secondaryColor is not empty %}
  7.         {% set sidebarBg = branding_current.secondaryColor %}
  8.     {% elseif branding_current.primaryColor is not empty %}
  9.         {% set sidebarBg = branding_current.primaryColor %}
  10.     {% endif %}
  11.     {% if branding_current.accentColor is not empty %}
  12.         {% set sidebarAccent = branding_current.accentColor %}
  13.     {% elseif branding_current.primaryColor is not empty %}
  14.         {% set sidebarAccent = branding_current.primaryColor %}
  15.     {% endif %}
  16. {% endif %}
  17. {% set iconAccentStyle = 'color: ' ~ sidebarAccent ~ ' !important;' %}
  18. {# Config global de módulos (Configuration guardada en sesión como _modules) #}
  19. {% set modules = app.session.get('_modules') ?? {} %}
  20. {# Permisos finales para mostrar módulos en sidebar #}
  21. {% set canClients   = modules.mcliente %}
  22. {% set canProviders = modules.mproveedor %}
  23. {% set canSpaces    = modules.mspaces %}
  24. {% set canVenues    = modules.mvenues %}
  25. {% set canSage      = modules.msage %}
  26. {% set canSettings  = modules.msettings %}
  27. {% set canCatering  = modules.mcatering %}
  28. {% set canAv        = modules.mav %}
  29. {% set canInventory = modules.minven %}
  30. {% set canLegends   = modules.mlegends %}
  31. {% set canAdmin = modules.madmin %}
  32. {# Tipo de acceso actual (venues / catering / av) #}
  33. {% set current_access = app.session.get('current_access_type') ?? null %}
  34. {# 1. Primero se define _r (esto ya lo tienes en tu archivo, asegúrate de que esté arriba) #}
  35. {% set _r = app.request.get('_route') %}
  36. {# 2. Ahora ya puedes usar _r para el módulo LEGEND #}
  37. {% set legend_routes = [
  38.     'venues_statistics_legends', 'reservation_invoice_legends_list'
  39. ] %}
  40. {% set legends_open = _r in legend_routes %}
  41. {# Ajuste entre los 3 módulos principales:
  42.    - Si está en VENUES   -> no mostramos CATERING ni AV
  43.    - Si está en CATERING -> no mostramos VENUES ni AV
  44.    - Si está en AV       -> no mostramos VENUES ni CATERING
  45. #}
  46. {% if current_access == 'venues' %}
  47.     {% set canCatering = false %}
  48.     {% set canAv       = false %}
  49. {% elseif current_access == 'catering' %}
  50.     {% set canVenues   = false %}
  51.     {% set canAv       = false %}
  52. {% elseif current_access == 'av' %}
  53.     {% set canVenues   = false %}
  54.     {% set canCatering = false %}
  55. {% endif %}
  56. {% block stylesheets %}
  57. <style>
  58.     :root {
  59.         --sidebar-bg: {{ sidebarBg }};
  60.         --sidebar-accent: {{ sidebarAccent }};
  61.     }
  62.     {#span:hover {#}
  63.     {#    color: {{ sidebarAccent }};#}
  64.     {#}#}
  65. </style>
  66. {% endblock %}
  67. <div class="sidebar sidebar-main" id="sidebar-accordion">
  68.     <div class="sidebar-content">
  69.         
  70.         {# --- LOGO (Trasladado desde el Navbar) --- #}
  71.         <div class="sidebar-logo" style="text-align: center; padding: 10px 20px; border-bottom: 1px solid rgba(255,255,255,0.1); margin-bottom: 20px; min-height: 60px; display: flex; align-items: center; justify-content: center;">
  72.             <a href="/" style="display: block;">
  73.                 {% if branding_current is defined and branding_current.logoPath is not empty %}
  74.                     <img src="{{ asset(branding_current.logoPath) }}" alt="{{ branding_current.name }}" style="max-height: 60px; max-width: 100%; object-fit: contain;">
  75.                 {% elseif asset_exists('/assets/images/platform/logo.png') %}
  76.                     <img src="{{ asset('assets/images/platform/logo.png') }}" alt="Mante" style="max-height: 60px; max-width: 100%; object-fit: contain;">
  77.                 {% else %}
  78.                     <img src="{{ asset('assets/images/placeholder.png') }}" alt="Mante" style="max-height: 60px; max-width: 100%; object-fit: contain;">
  79.                 {% endif %}
  80.             </a>
  81.         </div>
  82.         {# dejamos mods por compatibilidad puntual si hiciera falta, aunque ya no lo usamos para permisos #}
  83.         {% set mods = app.session.get('_modules') %}
  84.         {# ==== helpers de ruta para abrir el bloque correspondiente ==== #}
  85.         {% set _r = app.request.get('_route') %}
  86.         {# INICIALIZACIÓN POR DEFECTO: Añade estas líneas aquí arriba #}
  87.         {% set current_space_id = null %}
  88.         {% set current_lounge_id = null %}
  89.         {% if space is defined %}
  90.             {# ID del espacio actual (si aplica) #}
  91.             {% set current_space_id = app.request.attributes.get('id') %}
  92.             {% if current_space_id is not null %}
  93.                 {% set current_space_id = current_space_id * 1 %}
  94.             {% endif %}
  95.         {% endif %}
  96.         {# Si nos viene la variable currentSpaceId #}
  97.         {% if currentSpaceId is defined %}
  98.             {% set current_lounge_id = current_space_id %}
  99.             {% set current_space_id = currentSpaceId * 1 %}
  100.         {% endif %}
  101.         {# Flags de apertura por ruta #}
  102.         {% set clients_open   = (_r starts with 'client_') or (_r in ['group_index']) %}
  103.         {% set suppliers_open = (_r starts with 'supplier_') or (_r in ['supplier_group_index']) %}
  104.         {% set venues_routes = [
  105.             'calendar_events_all', 'calendar_events_visits', 'app_space_index','reservations_venues_list_lounges','reservations_blueprints_home',
  106.             'reservations_venues_addvisit','reservations_venues_add',
  107.             'reservations_venues_index','reservation_invoice_list','reservations_venues_edit_general',
  108.             'reservations_venues_list_statistics','reservations_venues_list_stats_quoting','reservations_venues_list_stats_tarif',
  109.             'reservations_venues_list_statistics_client','reservations_venues_list_statistics_products',
  110.             'reservations_venues_services_stat_home','reservations_venues_loaded_reservations', 'reservations_venues_add_simple'
  111.         ] %}
  112.         {% set venues_open = _r in venues_routes %}
  113.         {% set higotrigo_open = '/higotrigo/' in app.request.pathinfo %}
  114.         {% set inventory_open = '/inventory/' in app.request.pathinfo %}
  115.         {% set sage_routes = [
  116.             'sage_families_list','sage_subfamilies_list','sage_vat_rates_list',
  117.             'sage_articles_list','sage_payment_methods_list','app_sage_payment_index'
  118.         ] %}
  119.         {% set sage_open = _r in sage_routes %}
  120.         {% set settings_routes = [
  121.             'settingsgeneral_index','users','addAction','printIndex','supplier_types'
  122.         ] %}
  123.         {% set settings_open = _r in settings_routes %}
  124.         {# ==== VENUES ==== #}
  125.         {% if canVenues %}
  126.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  127.                 <div class="category-title">
  128.                     <a href="javascript:void(0)"
  129.                        data-toggle="collapse"
  130.                        data-target="#menu-venues"
  131.                        data-parent="#sidebar-accordion"
  132.                        aria-expanded="{{ venues_open or app.session.get('current_access_type') == 'venues' ? 'true' : 'false' }}"
  133.                        class="{{ venues_open or app.session.get('current_access_type') == 'venues' ? '' : 'collapsed' }} text-default">
  134.                         <i class="glyphicon glyphicon-map-marker"></i>
  135.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Venues</span>
  136.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  137.                     </a>
  138.                 </div>
  139.                 <div id="menu-venues" class="category-content collapse {% if venues_open or app.session.get('current_access_type') == 'venues' %}in{% endif %}">
  140.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  141. {#                        <li class="{% if _r == 'calendar_events_all' %}active{% endif %}">#}
  142. {#                            <a href="{{ path('calendar_events_all') }}">#}
  143. {#                                <i class="icon-calendar"></i>#}
  144. {#                                <span style="margin-left:8px">{% trans %}Calendario Unificado{% endtrans %}</span>#}
  145. {#                            </a>#}
  146. {#                        </li>#}
  147.                         <li class="{% if _r == 'calendar_events_visits' %}active{% endif %}">
  148.                             <a href="{{ path('calendar_events_visits') }}">
  149.                                 <i class="icon-calendar5"></i>
  150.                                 <span style="margin-left:8px">{% trans %}Calendario de Visitas{% endtrans %}</span>
  151.                             </a>
  152.                         </li>
  153.                         <li class="{% if _r == 'app_space_index' %}active{% endif %}">
  154.                             <a href="{{ path('app_space_index') }}">
  155.                                 <i class="glyphicon glyphicon-home"></i>
  156.                                 <span style="margin-left:8px">{% trans %}Venues{% endtrans %}</span>
  157.                             </a>
  158.                         </li>
  159.                         <li id="gp-edit-lounges" class="{% if _r == 'reservations_venues_list_lounges' %}active{% endif %}">
  160.                             <a href="{{ path('reservations_venues_list_lounges') }}">
  161.                                 <i class="glyphicon glyphicon-star"></i>
  162.                                 <span style="margin-left: 8px;">{% trans %}Lounges{% endtrans %}</span>
  163.                             </a>
  164.                         </li>
  165.                         <li id="gp-new-visit" class="{% if _r == 'reservations_venues_addvisit' %}active{% endif %}">
  166.                             <a href="{{ path('reservations_venues_addvisit') }}">
  167.                                 <i class="glyphicon glyphicon-bookmark"></i>
  168.                                 <span style="margin-left: 8px;">{% trans %}Visits{% endtrans %}</span>
  169.                             </a>
  170.                         </li>
  171.                         <li id="gp-new-record" class="{% if _r == 'reservations_venues_add_simple' %}active{% endif %}">
  172.                             <a href="{{ path('reservations_venues_add_simple') }}">
  173.                                 <i class="icon-folder-plus"></i>
  174.                                 <span style="margin-left: 8px;">{% trans %}Nuevo Expediente{% endtrans %}</span>
  175.                             </a>
  176.                         </li>
  177.                         <li id="gp-list-records" class="{% if _r == 'reservations_venues_index' %}active{% endif %}">
  178.                             <a href="{{ path('reservations_venues_index') }}">
  179.                                 <i class="glyphicon glyphicon-list"></i>
  180.                                 <span style="margin-left: 8px;">{% trans %}Listado de Expedientes{% endtrans %}</span>
  181.                             </a>
  182.                         </li>
  183.                         <li>
  184.                             <a href="{{ path('reservation_assist') }}">
  185.                                 <i class="icon-calendar5"></i>
  186.                                 <span style="margin-left:8px">{% trans %}Listado de Asistencias{% endtrans %}</span>
  187.                             </a>
  188.                         </li>
  189.                         <li id="gp-invoice-list" class="{% if _r == 'reservation_invoice_list' %}active{% endif %}">
  190.                             <a href="{{ path('reservation_invoice_list') }}">
  191.                                 <i class="glyphicon glyphicon-euro"></i>
  192.                                 <span style="margin-left: 8px;">{% trans %}Facturación{% endtrans %}</span>
  193.                             </a>
  194.                         </li>
  195.                         <li id="gp-edit-tariff" class="{% if _r == 'reservations_venues_edit_general' %}active{% endif %}">
  196.                             <a href="{{ path('reservations_venues_edit_general') }}">
  197.                                 <i class="glyphicon glyphicon-check"></i>
  198.                                 <span style="margin-left: 8px;">{% trans %}Tarifario{% endtrans %}</span>
  199.                             </a>
  200.                         </li>
  201.                         <li id="gp-stats-general" class="{% if _r == 'venues_statistics' %}active{% endif %}">
  202.                             <a href="{{ path('venues_statistics') }}">
  203.                                 <i class="glyphicon glyphicon-signal"></i>
  204.                                 <span style="margin-left: 8px;">{% trans %}Estadísticas{% endtrans %}</span>
  205.                             </a>
  206.                         </li>
  207.                         <li id="gp-stats-general" class="{% if _r == 'app_doc_contract_model_index' %}active{% endif %}">
  208.                             <a href="{{ path('app_doc_contract_model_index') }}">
  209.                                 <i class="glyphicon glyphicon-inbox"></i>
  210.                                 <span style="margin-left: 8px;">{% trans %}Modelos de Contrato{% endtrans %}</span>
  211.                             </a>
  212.                         </li>
  213.                     </ul>
  214.                 </div>
  215.             </div>
  216.         {% endif %}
  217.         {# === CATERING === #}
  218.         {% if canCatering %}
  219.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  220.                 <div class="category-title">
  221.                     <a href="javascript:void(0)" data-toggle="collapse" data-target="#menu-higotrigo"
  222.                        data-parent="#sidebar-accordion" aria-expanded="{{ higotrigo_open or app.session.get('current_access_type') == 'catering' ? 'true' : 'false' }}"
  223.                        class="{{ higotrigo_open or app.session.get('current_access_type') == 'catering' ? '' : 'collapsed' }} text-default">
  224.                         <i class="icon-basket"></i>
  225.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Catering</span>
  226.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  227.                     </a>
  228.                 </div>
  229.                 <div id="menu-higotrigo" class="category-content collapse {% if higotrigo_open or app.session.get('current_access_type') == 'catering' %}in{% endif %}">
  230.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  231.                         {# --- Calendario --- #}
  232.                         <li class="{% if _r == 'ht_calendar' %}active{% endif %}">
  233.                             <a href="/higotrigo/calendar">
  234.                                 <i class="icon-calendar"></i>
  235.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Calendario{% endtrans %}</span>
  236.                             </a>
  237.                         </li>
  238.                         {# --- Prueba de Menú / Visitas --- #}
  239.                         <li class="{% if _r == 'app_higotrigo_ht_visit_index' %}active{% endif %}">
  240.                             <a href="{{ path('app_higotrigo_ht_visit_index') }}">
  241.                                 <i class="icon-chair"></i>
  242.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Prueba de Menú{% endtrans %}</span>
  243.                             </a>
  244.                         </li>
  245.                         {# --- Submenú: Expedientes --- #}
  246.                         {% set open_files = _r in ['app_ht_file_index','app_ht_file_new','app_ht_ten_days_ahead','app_ht_invoice_index', 'app_ht_proforma_index'] %}
  247.                         <li>
  248.                         <li class="{% if _r == 'app_ht_file_index' %}active{% endif %}">
  249.                             <a class="" href="{{ path('app_ht_file_index') }}">
  250.                                 <i class="icon-list"></i>
  251.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Expedientes{% endtrans %}</span>
  252.                             </a>
  253.                         </li>
  254.                         <li class="{% if _r == 'app_ht_file_new' %}active{% endif %}">
  255.                             <a class="" href="{{ path('app_ht_file_new') }}">
  256.                                 <i class="icon-folder-plus"></i>
  257.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Expediente{% endtrans %}</span>
  258.                             </a>
  259.                         </li>
  260.                         <li class="{% if _r == 'app_ht_ten_days_ahead' %}active{% endif %}">
  261.                             <a class="" href="{{ path('app_ht_ten_days_ahead') }}">
  262.                                 <i class="icon-eye"></i>
  263.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Previsión Semanal{% endtrans %}</span>
  264.                             </a>
  265.                         </li>
  266.                         <li class="{% if _r == 'app_ht_invoice_index' %}active{% endif %}">
  267.                             <a class="" href="{{ path('app_ht_invoice_index') }}">
  268.                                 <i class="icon-coin-euro"></i>
  269.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Facturación{% endtrans %}</span>
  270.                             </a>
  271.                         </li>
  272.                         <li class="{% if _r == 'app_ht_proforma_index' %}active{% endif %}">
  273.                             <a class="" href="{{ path('app_ht_proforma_index') }}">
  274.                                 <i class="icon-file-text"></i>
  275.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Proformas{% endtrans %}</span>
  276.                             </a>
  277.                         </li>
  278.                         </li>
  279.                         {# --- Submenú: Cocina --- #}
  280.                         {% set open_kitchen = _r in [
  281.                             'app_product_index','app_product_new',
  282.                             'app_family_index','app_family_new',
  283.                             'app_escandallo_index','app_escandallo_new',
  284.                             'app_family_escandallo_index','app_family_escandallo_new',
  285.                             'app_ht_menu_index','app_ht_menu_new'
  286.                         ] %}
  287.                         <li>
  288.                             <a href="javascript:void(0)" data-toggle="collapse" data-target="#submenu-ht-kitchen" aria-expanded="{{ open_kitchen ? 'true' : 'false' }}" class="{{ open_kitchen ? '' : 'collapsed' }}">
  289.                                 <i class="icon-coffee"></i>
  290.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Cocina{% endtrans %}</span>
  291.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  292.                             </a>
  293.                             <ul id="submenu-ht-kitchen" class="collapse {% if open_kitchen %}in{% endif %}">
  294.                                 <li class="{% if _r == 'app_product_index' %}active{% endif %}">
  295.                                     <a class="" href="{{ path('app_product_index') }}">
  296.                                         <i class="icon-list"></i>
  297.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Productos{% endtrans %}</span>
  298.                                     </a>
  299.                                 </li>
  300.                                 <li class="{% if _r == 'app_product_new' %}active{% endif %}">
  301.                                     <a class="" href="{{ path('app_product_new') }}">
  302.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  303.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Producto{% endtrans %}</span>
  304.                                     </a>
  305.                                 </li>
  306.                                 <li class="{% if _r == 'app_family_index' %}active{% endif %}">
  307.                                     <a class="" href="{{ path('app_family_index') }}">
  308.                                         <i class="icon-list"></i>
  309.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Familia de Productos{% endtrans %}</span>
  310.                                     </a>
  311.                                 </li>
  312.                                 <li class="{% if _r == 'app_family_new' %}active{% endif %}">
  313.                                     <a class="" href="{{ path('app_family_new') }}">
  314.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  315.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva Familia de Producto{% endtrans %}</span>
  316.                                     </a>
  317.                                 </li>
  318.                                 <li><hr></li>
  319.                                 <li class="{% if _r == 'app_escandallo_index' %}active{% endif %}">
  320.                                     <a class="" href="{{ path('app_escandallo_index') }}">
  321.                                         <i class="icon-list"></i>
  322.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Escandallos{% endtrans %}</span>
  323.                                     </a>
  324.                                 </li>
  325.                                 <li class="{% if _r == 'app_escandallo_new' %}active{% endif %}">
  326.                                     <a class="" href="{{ path('app_escandallo_new') }}">
  327.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  328.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Escandallo{% endtrans %}</span>
  329.                                     </a>
  330.                                 </li>
  331.                                 <li class="{% if _r == 'app_family_escandallo_index' %}active{% endif %}">
  332.                                     <a class="" href="{{ path('app_family_escandallo_index') }}">
  333.                                         <i class="icon-list"></i>
  334.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Familia de Escandallos{% endtrans %}</span>
  335.                                     </a>
  336.                                 </li>
  337.                                 <li class="{% if _r == 'app_family_escandallo_new' %}active{% endif %}">
  338.                                     <a class="" href="{{ path('app_family_escandallo_new') }}">
  339.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  340.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva Familia de Escandallo{% endtrans %}</span>
  341.                                     </a>
  342.                                 </li>
  343.                                 <li><hr></li>
  344.                                 <li class="{% if _r == 'app_ht_menu_index' %}active{% endif %}">
  345.                                     <a class="" href="{{ path('app_ht_menu_index') }}">
  346.                                         <i class="icon-list"></i>
  347.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Menú{% endtrans %}</span>
  348.                                     </a>
  349.                                 </li>
  350.                                 <li class="{% if _r == 'app_ht_menu_new' %}active{% endif %}">
  351.                                     <a class="" href="{{ path('app_ht_menu_new') }}">
  352.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  353.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Menú{% endtrans %}</span>
  354.                                     </a>
  355.                                 </li>
  356.                             </ul>
  357.                         </li>
  358.                         {# --- Submenú: Estadísticas --- #}
  359.                         {% if canAdmin %}
  360.                             {% set open_stats = _r in ['app_higotrigo_ht_statistics_home','app_higotrigo_ht_statistics_production'] %}
  361.                             <li>
  362.                                 <a href="javascript:void(0)" data-toggle="collapse" data-target="#submenu-ht-stats" aria-expanded="{{ open_stats ? 'true' : 'false' }}" class="{{ open_stats ? '' : 'collapsed' }}">
  363.                                     <i class="icon-stats-bars2"></i>
  364.                                     <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Estadísticas{% endtrans %}</span>
  365.                                     <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  366.                                 </a>
  367.                                 <ul id="submenu-ht-stats" class="collapse {% if open_stats %}in{% endif %}">
  368.                                     <li class="{% if _r == 'app_higotrigo_ht_statistics_home' %}active{% endif %}">
  369.                                         <a class="" href="{{ path('app_higotrigo_ht_statistics_home') }}">
  370.                                             <i class="icon-stairs position-left"></i>
  371.                                             <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Informe de Facturación{% endtrans %}</span>
  372.                                         </a>
  373.                                     </li>
  374.                                     <li class="{% if _r == 'app_higotrigo_ht_statistics_production' %}active{% endif %}">
  375.                                         <a class="" href="{{ path('app_higotrigo_ht_statistics_production') }}">
  376.                                             <i class="icon-stairs position-left"></i>
  377.                                             <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Informe de Producción{% endtrans %}</span>
  378.                                         </a>
  379.                                     </li>
  380.                                 </ul>
  381.                             </li>
  382.                         {% endif %}
  383.                     </ul>
  384.                 </div>
  385.             </div>
  386.         {% endif %}
  387.         {# ==== AV EXPRESS ==== #}
  388.         {% set avexpress_routes = [
  389.             'ave_add_file','ave_list_product','ave_calendarav','ave_list_file','ave_list_invoices',
  390.             'ave_new_template','ave_list_template','ave_list_productfilelocation','reservations_venues',
  391.             'ave_monthly_benefits'
  392.         ] %}
  393.         {% set avexpress_open = (_r in avexpress_routes) or ('/avexpress/' in app.request.pathinfo) %}
  394.         {% if canAv %}
  395.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  396.                 <div class="category-title">
  397.                     <a href="javascript:void(0)"
  398.                        data-toggle="collapse"
  399.                        data-target="#menu-avexpress"
  400.                        data-parent="#sidebar-accordion"
  401.                        aria-expanded="{{ avexpress_open or app.session.get('current_access_type') == 'av' ? 'true' : 'false' }}"
  402.                        class="{{ avexpress_open or app.session.get('current_access_type') == 'av' ? '' : 'collapsed' }} text-default">
  403.                         <i class="glyphicon glyphicon-facetime-video"></i>
  404.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{% trans %}Audiovisuals{% endtrans %}</span>
  405.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  406.                     </a>
  407.                 </div>
  408.                 <div id="menu-avexpress" class="category-content collapse {% if avexpress_open or app.session.get('current_access_type') == 'av' %}in{% endif %}">
  409.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  410.                         <li class="{% if _r == 'ave_add_file' %}active{% endif %}">
  411.                             <a class="" href="{{ path('ave_add_file') }}">
  412.                                 <i class="icon-folder-plus"></i>
  413.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo expediente{% endtrans %}</span>
  414.                             </a>
  415.                         </li>
  416.                         <li class="{% if _r == 'ave_list_product' %}active{% endif %}">
  417.                             <a class="" href="{{ path('ave_list_product') }}" target="_blank">
  418.                                 <i class="glyphicon glyphicon-plus"></i>
  419.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo producto{% endtrans %}</span>
  420.                             </a>
  421.                         </li>
  422.                         <li class="{% if _r == 'ave_calendarav' %}active{% endif %}">
  423.                             <a class="" href="{{ path('ave_calendarav') }}">
  424.                                 <i class="icon-calendar"></i>
  425.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Calendario{% endtrans %}</span>
  426.                             </a>
  427.                         </li>
  428.                         <li class="{% if _r == 'ave_list_file' %}active{% endif %}">
  429.                             <a class="" href="{{ path('ave_list_file') }}">
  430.                                 <i class="glyphicon glyphicon-list"></i>
  431.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listado de expedientes{% endtrans %}</span>
  432.                             </a>
  433.                         </li>
  434.                         <li class="{% if _r == 'ave_list_product' %}active{% endif %}">
  435.                             <a class="" href="{{ path('ave_list_product') }}">
  436.                                 <i class="glyphicon glyphicon-list-alt"></i>
  437.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listado de productos{% endtrans %}</span>
  438.                             </a>
  439.                         </li>
  440.                         <li class="{% if _r == 'ave_list_invoices' %}active{% endif %}">
  441.                             <a class="" href="{{ path('ave_list_invoices') }}">
  442.                                 <i class="glyphicon glyphicon-euro"></i>
  443.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Facturación{% endtrans %}</span>
  444.                             </a>
  445.                         </li>
  446.                         {# --- Submenú: Plantillas --- #}
  447.                         {% set av_tpl_open = _r in ['ave_new_template','ave_list_template'] %}
  448.                         <li>
  449.                             <a href="javascript:void(0)"
  450.                                data-toggle="collapse"
  451.                                data-target="#submenu-avexpress-templates"
  452.                                aria-expanded="{{ av_tpl_open ? 'true' : 'false' }}"
  453.                                class="{{ av_tpl_open ? '' : 'collapsed' }}">
  454.                                 <i class="glyphicon glyphicon-duplicate"></i>
  455.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Plantillas{% endtrans %}</span>
  456.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  457.                             </a>
  458.                             <ul id="submenu-avexpress-templates" class="collapse {% if av_tpl_open %}in{% endif %}">
  459.                                 <li class="{% if _r == 'ave_new_template' %}active{% endif %}">
  460.                                     <a class="" href="{{ path('ave_new_template') }}">
  461.                                         <i class="glyphicon glyphicon-plus"></i>
  462.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva plantilla{% endtrans %}</span>
  463.                                     </a>
  464.                                 </li>
  465.                                 <li class="{% if _r == 'ave_list_template' %}active{% endif %}">
  466.                                     <a class="" href="{{ path('ave_list_template') }}">
  467.                                         <i class="glyphicon glyphicon-edit"></i>
  468.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Modificar plantillas{% endtrans %}</span>
  469.                                     </a>
  470.                                 </li>
  471.                             </ul>
  472.                         </li>
  473.                         {# --- Submenú: Paquetes --- #}
  474.                         {% set av_pck_open = _r in ['ave_package','ave_package_list'] %}
  475.                         <li>
  476.                             <a href="javascript:void(0)"
  477.                                data-toggle="collapse"
  478.                                data-target="#submenu-avexpress-packages"
  479.                                aria-expanded="{{ av_pck_open ? 'true' : 'false' }}"
  480.                                class="{{ av_pck_open ? '' : 'collapsed' }}">
  481.                                 <i class="glyphicon glyphicon-inbox"></i>
  482.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Paquetes{% endtrans %}</span>
  483.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  484.                             </a>
  485.                             <ul id="submenu-avexpress-packages" class="collapse {% if av_pck_open %}in{% endif %}">
  486.                                 <li class="{% if _r == 'ave_package' %}active{% endif %}">
  487.                                     <a class="" href="{{ path('ave_package') }}">
  488.                                         <i class="glyphicon glyphicon-plus"></i>
  489.                                         <span>{% trans %}Nuevo paquete{% endtrans %}</span>
  490.                                     </a>
  491.                                 </li>
  492.                                 <li class="{% if _r == 'ave_package_list' %}active{% endif %}">
  493.                                     <a class="" href="{{ path('ave_package_list') }}">
  494.                                         <i class="glyphicon glyphicon-edit"></i>
  495.                                         <span>{% trans %}Modificar paquete{% endtrans %}</span>
  496.                                     </a>
  497.                                 </li>
  498.                             </ul>
  499.                         </li>
  500.                         {# --- Submenú: Otros --- #}
  501.                         {% set av_other_open = _r in ['ave_list_productfilelocation','reservations_venues','ave_monthly_benefits'] or ('/avexpress/liststatistics' in app.request.pathinfo) %}
  502.                         <li>
  503.                             <a href="javascript:void(0)"
  504.                                data-toggle="collapse"
  505.                                data-target="#submenu-avexpress-others"
  506.                                aria-expanded="{{ av_other_open ? 'true' : 'false' }}"
  507.                                class="{{ av_other_open ? '' : 'collapsed' }}">
  508.                                 <i class="glyphicon glyphicon-option-horizontal"></i>
  509.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Otros{% endtrans %}</span>
  510.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  511.                             </a>
  512.                             <ul id="submenu-avexpress-others" class="collapse {% if av_other_open %}in{% endif %}">
  513.                                 <li class="{% if _r == 'ave_list_productfilelocation' %}active{% endif %}">
  514.                                     <a class="" href="{{ path('ave_list_productfilelocation') }}">
  515.                                         <i class="glyphicon glyphicon-map-marker"></i>
  516.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Agregar / Listar Ubicaciones{% endtrans %}</span>
  517.                                     </a>
  518.                                 </li>
  519.                                 <li class="{% if _r == 'ave_monthly_benefits' %}active{% endif %}">
  520.                                     <a class="" href="{{ path('ave_monthly_benefits') }}">
  521.                                         <i class="glyphicon glyphicon-stats"></i>
  522.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Beneficios{% endtrans %}</span>
  523.                                     </a>
  524.                                 </li>
  525.                                 <li class="{% if '/avexpress/liststatistics' in app.request.pathinfo %}active{% endif %}">
  526.                                     <a class="" href="/avexpress/liststatistics">
  527.                                         <i class="glyphicon glyphicon-signal"></i>
  528.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Estadísticas de Facturación{% endtrans %}</span>
  529.                                     </a>
  530.                                 </li>
  531.                             </ul>
  532.                         </li>
  533.                     </ul>
  534.                 </div>
  535.             </div>
  536.         {% endif %}
  537.         {# ==== ESPACIOS (raíz) ==== #}
  538.         {% if canSpaces %}
  539.             {% for space in spaces %}
  540.                 {% set space_open = (_r starts with 'calendar_by') and (current_space_id == space.id) %}
  541.                 <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  542.                     <div class="category-title">
  543.                         <a href="javascript:void(0)"
  544.                            data-toggle="collapse"
  545.                            data-target="#submenu-space-{{ space.id }}"
  546.                            data-parent="#sidebar-accordion"
  547.                            aria-expanded="{{ space_open ? 'true' : 'false' }}"
  548.                            class="{{ space_open ? '' : 'collapsed' }} text-default">
  549.                             <i class="glyphicon glyphicon-home"></i>
  550.                             <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{{ space.name }}</span>
  551.                             <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  552.                         </a>
  553.                     </div>
  554.                     <div id="submenu-space-{{ space.id }}" class="category-content collapse {% if space_open %}in{% endif %}">
  555.                         <ul class="nav nav-pills nav-stacked nav-sidebar">
  556.                             <li class="{% if _r == 'calendar_by_space' and current_space_id == space.id %}active{% endif %}">
  557.                                 <a href="{{ path('calendar_by_space', { id: space.id }) }}">
  558.                                     <i class="icon-calendar"></i>
  559.                                     <span style="margin-left:8px">Calendario {{ space.name }}</span>
  560.                                 </a>
  561.                             </li>
  562.                             <li class="{% if _r == 'reservations_venues_space_index' and current_space_id == space.id %}active{% endif %}">
  563.                                 <a href="{{ path('reservations_venues_space_index', { idspace: space.id }) }}">
  564.                                     <i class="glyphicon glyphicon-list"></i>
  565.                                     <span style="margin-left:8px">Listado Expedientes {{ space.name }}</span>
  566.                                 </a>
  567.                             </li>
  568. {#                            {% if space.reservationLounges is defined and space.reservationLounges|length > 0 %}#}
  569. {#                                {% for lounge in space.reservationLounges %}#}
  570. {#                                    {% set current_lounge_id = current_lounge_id is defined ? current_lounge_id : null %}#}
  571. {#                                    <li class="{% if _r == 'calendar_by_lounge' and current_lounge_id == lounge.id %}active{% endif %}">#}
  572. {#                                        <a href="{{ path('calendar_by_lounge', { id: lounge.id }) }}">#}
  573. {#                                            <i class="icon-calendar"></i>#}
  574. {#                                            <span style="margin-left:8px">Calendario {{ lounge.name }}</span>#}
  575. {#                                        </a>#}
  576. {#                                    </li>#}
  577. {#                                {% endfor %}#}
  578. {#                            {% else %}#}
  579. {#                                <li class="disabled">#}
  580. {#                                    <a href="javascript:void(0)">#}
  581. {#                                        <i class="icon-calendar"></i>#}
  582. {#                                        <span style="margin-left:8px">Sin salas</span>#}
  583. {#                                    </a>#}
  584. {#                                </li>#}
  585. {#                            {% endif %}#}
  586.                         </ul>
  587.                     </div>
  588.                 </div>
  589.             {% else %}
  590.                 <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  591.                     <div class="category-title">
  592.                         <span style="margin-left:8px; letter-spacing: 1px;" class="text-muted">No hay venues definidos</span>
  593.                     </div>
  594.                 </div>
  595.             {% endfor %}
  596.         {% endif %}
  597.         {# ==== INVENTARIO ==== #}
  598.         {% if canInventory %}
  599.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  600.                 <div class="category-title">
  601.                     <a
  602.                             href="javascript:void(0)"
  603.                             data-toggle="collapse"
  604.                             data-target="#menu-inventario"
  605.                             data-parent="#sidebar-accordion"
  606.                             aria-expanded="{{ inventory_open ? 'true' : 'false' }}"
  607.                             class="{{ inventory_open ? '' : 'collapsed' }} text-default">
  608.                         <i class="glyphicon glyphicon-user"></i>
  609.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Inventario</span>
  610.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  611.                     </a>
  612.                 </div>
  613.                 <div id="menu-inventario" class="category-content collapse {% if inventory_open %}in{% endif %}">
  614.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  615.                         <li class="{% if _r == 'inventory_item_new' %}active{% endif %}">
  616.                             <a href="{{ path('inventory_item_new') }}">
  617.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  618.                                 <span style="margin-left:8px">Añadir Item</span>
  619.                             </a>
  620.                         </li>
  621.                     </ul>
  622.                 </div>
  623.             </div>
  624.         {% endif %}
  625.         {# ==== SAGE ==== #}
  626.         {% if canSage %}
  627.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  628.                 <div class="category-title">
  629.                     <a href="javascript:void(0)"
  630.                        data-toggle="collapse"
  631.                        data-target="#menu-sage"
  632.                        data-parent="#sidebar-accordion"
  633.                        aria-expanded="{{ sage_open ? 'true' : 'false' }}"
  634.                        class="{{ sage_open ? '' : 'collapsed' }} text-default">
  635.                         <i class="glyphicon glyphicon-list-alt"></i>
  636.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">SAGE</span>
  637.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  638.                     </a>
  639.                 </div>
  640.                 <div id="menu-sage" class="category-content collapse {% if sage_open %}in{% endif %}">
  641.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  642.                         <li class="{% if _r == 'sage_families_list' %}active{% endif %}">
  643.                             <a href="{{ path('sage_families_list') }}">
  644.                                 <i class="glyphicon glyphicon-th-large"></i>
  645.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Familias</span>
  646.                             </a>
  647.                         </li>
  648.                         <li class="{% if _r == 'sage_subfamilies_list' %}active{% endif %}">
  649.                             <a href="{{ path('sage_subfamilies_list') }}">
  650.                                 <i class="glyphicon glyphicon-th"></i>
  651.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Subfamilias</span>
  652.                             </a>
  653.                         </li>
  654.                         <li class="{% if _r == 'sage_vat_rates_list' %}active{% endif %}">
  655.                             <a href="{{ path('sage_vat_rates_list') }}">
  656.                                 <i class="glyphicon glyphicon-euro"></i>
  657.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Tipos de IVA</span>
  658.                             </a>
  659.                         </li>
  660.                         <li class="{% if _r == 'sage_articles_list' %}active{% endif %}">
  661.                             <a href="{{ path('sage_articles_list') }}">
  662.                                 <i class="glyphicon glyphicon-book"></i>
  663.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Artículos</span>
  664.                             </a>
  665.                         </li>
  666.                         <li class="{% if _r == 'sage_payment_methods_list' %}active{% endif %}">
  667.                             <a href="{{ path('sage_payment_methods_list') }}">
  668.                                 <i class="glyphicon glyphicon-credit-card"></i>
  669.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Formas de pago</span>
  670.                             </a>
  671.                         </li>
  672.                         <li class="{% if _r == 'sage_financial_account_list' %}active{% endif %}">
  673.                             <a href="{{ path('sage_financial_account_list') }}">
  674.                                 <i class="glyphicon glyphicon-piggy-bank"></i>
  675.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Cuentas financieras</span>
  676.                             </a>
  677.                         </li>
  678.                         <li id="reservations-add">
  679.                             <a href="{{ path('app_sage_payment_index') }}">
  680.                                 <i class="glyphicon glyphicon-usd"></i>
  681.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Cobros</span>
  682.                             </a>
  683.                         </li>
  684.                     </ul>
  685.                 </div>
  686.             </div>
  687.         {% endif %}
  688.         {# ==== CLIENTES ==== #}
  689.         {% if canClients %}
  690.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  691.                 <div class="category-title">
  692.                     <a href="javascript:void(0)"
  693.                        data-toggle="collapse"
  694.                        data-target="#menu-clientes"
  695.                        data-parent="#sidebar-accordion"
  696.                        aria-expanded="{{ clients_open ? 'true' : 'false' }}"
  697.                        class="{{ clients_open ? '' : 'collapsed' }} text-default">
  698.                         <i class="glyphicon glyphicon-briefcase iconos"></i>
  699.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Clientes</span>
  700.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  701.                     </a>
  702.                 </div>
  703.                 <div id="menu-clientes" class="category-content collapse {% if clients_open %}in{% endif %}">
  704.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  705.                         <li class="{% if _r == 'client_list_simple_letters' %}active{% endif %}">
  706.                             <a href="{{ path('client_list_simple_letters', {ind:0}) }}">
  707.                                 <i class="glyphicon glyphicon-list-alt"></i>
  708.                                 <span style="margin-left:8px">Listado Clientes (A ~ Z)</span>
  709.                             </a>
  710.                         </li>
  711.                         <li class="{% if _r == 'client_add' %}active{% endif %}">
  712.                             <a href="{{ path('client_add') }}">
  713.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  714.                                 <span style="margin-left:8px">Añadir Cliente</span>
  715.                             </a>
  716.                         </li>
  717.                         <li class="{% if _r == 'client_list_MyClients' %}active{% endif %}">
  718.                             <a href="{{ path('client_list_MyClients') }}">
  719.                                 <i class="glyphicon glyphicon-pushpin"></i>
  720.                                 <span style="margin-left:8px">{% trans %}My Clients{% endtrans %}</span>
  721.                             </a>
  722.                         </li>
  723.                         <li class="{% if _r == 'client_list_NoClient' %}active{% endif %}">
  724.                             <a href="{{ path('client_list_NoClient') }}">
  725.                                 <i class="glyphicon glyphicon-alert"></i>
  726.                                 <span style="margin-left:8px">{% trans %}Not Clients{% endtrans %}</span>
  727.                             </a>
  728.                         </li>
  729.                     </ul>
  730.                 </div>
  731.             </div>
  732.         {% endif %}
  733.         {# ==== PROVEEDORES ==== #}
  734.         {% if canProviders %}
  735.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  736.                 <div class="category-title">
  737.                     <a href="javascript:void(0)"
  738.                        data-toggle="collapse"
  739.                        data-target="#menu-proveedores"
  740.                        data-parent="#sidebar-accordion"
  741.                        aria-expanded="{{ suppliers_open ? 'true' : 'false' }}"
  742.                        class="{{ suppliers_open ? '' : 'collapsed' }} text-default">
  743.                         <i class="glyphicon glyphicon-user"></i>
  744.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Proveedores</span>
  745.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  746.                     </a>
  747.                 </div>
  748.                 <div id="menu-proveedores" class="category-content collapse {% if suppliers_open %}in{% endif %}">
  749.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  750.                         <li class="{% if _r == 'supplier_index_simple_letters' %}active{% endif %}">
  751.                             <a href="{{ path('supplier_index_simple_letters', {ind:0}) }}">
  752.                                 <i class="glyphicon glyphicon-list-alt"></i>
  753.                                 <span style="margin-left:8px">Listado Proveedores (A ~ Z)</span>
  754.                             </a>
  755.                         </li>
  756.                         <li class="{% if _r == 'supplier_add' %}active{% endif %}">
  757.                             <a href="{{ path('supplier_add') }}">
  758.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  759.                                 <span style="margin-left:8px">Añadir Proveedor</span>
  760.                             </a>
  761.                         </li>
  762.                     </ul>
  763.                 </div>
  764.             </div>
  765.         {% endif %}
  766.         {# ==== MODULO LEGEND ==== #}
  767.         {% if canLegends %} {# Usamos canVenues como permiso base, o puedes crear un canLegend #}
  768.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  769.                 <div class="category-title">
  770.                     <a href="javascript:void(0)"
  771.                        data-toggle="collapse"
  772.                        data-target="#menu-legend"
  773.                        data-parent="#sidebar-accordion"
  774.                        aria-expanded="{{ legends_open ? 'true' : 'false' }}"
  775.                        class="{{ legends_open ? '' : 'collapsed' }} text-default">
  776.                         {# Icono de estrella o diamante para diferenciar LEGEND #}
  777.                         <i class="glyphicon glyphicon-star"></i>
  778.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px; letter-spacing: 1px;">ESPACIO LEGENDS</span>
  779.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  780.                     </a>
  781.                 </div>
  782.                 <div id="menu-legend" class="category-content collapse {% if app.user.team.id == 18 %}in{% endif %}">
  783.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  784.                         <li>
  785.                             <a href="/">
  786.                                 <i class="glyphicon glyphicon-calendar"></i>
  787.                                 <span style="margin-left:8px">Calendario LEGENDS</span>
  788.                             </a>
  789.                         </li>
  790.                         <li class="{% if _r == 'venues_statistics_legends' %}active{% endif %}">
  791.                             <a href="{{ path('venues_statistics_legends') }}">
  792.                                 <i class="glyphicon glyphicon-signal"></i>
  793.                                 <span style="margin-left:8px">Estadísticas LEGENDS</span>
  794.                             </a>
  795.                         </li>
  796.                         <li class="{% if _r == 'reservation_invoice_legends_list' %}active{% endif %}">
  797.                             <a href="{{ path('reservation_invoice_legends_list') }}">
  798.                                 <i class="glyphicon glyphicon-euro"></i>
  799.                                 <span style="margin-left:8px">Facturación LEGENDS</span>
  800.                             </a>
  801.                         </li>
  802.                         <li class="{% if _r == 'reservation_quote_legends' %}active{% endif %}">
  803.                             <a href="{{ path('reservation_quotation_legends_list') }}">
  804.                                 <i class="glyphicon glyphicon-bookmark"></i>
  805.                                 <span style="margin-left:8px">Cotización LEGENDS</span>
  806.                             </a>
  807.                         </li>
  808.                         <li>
  809.                     </ul>
  810.                 </div>
  811.             </div>
  812.         {% endif %}
  813.         {# ==== SETTINGS ==== #}
  814.         {% if canSettings %}
  815.             <hr style="margin: 20px">
  816.             <div class="sidebar-category sidebar-category-visible" style="margin-top:30px;">
  817.                 <div class="category-title">
  818.                     <a href="javascript:void(0)"
  819.                        data-toggle="collapse"
  820.                        data-target="#menu-platform-settings"
  821.                        data-parent="#sidebar-accordion"
  822.                        aria-expanded="{{ settings_open ? 'true' : 'false' }}"
  823.                        class="{{ settings_open ? '' : 'collapsed' }} text-default">
  824.                         <i class="glyphicon glyphicon-cog"></i>
  825.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{% trans %}Settings{% endtrans %}</span>
  826.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  827.                     </a>
  828.                 </div>
  829.                 <div id="menu-platform-settings" class="category-content collapse {% if settings_open %}in{% endif %}">
  830.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  831.                         <li class="{% if _r == 'settingsgeneral_index' %}active{% endif %}">
  832.                             <a href="{{ path('settingsgeneral_index') }}">
  833.                                 <i class="icon-cog position-left"></i>
  834.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}General{% endtrans %}</span>
  835.                             </a>
  836.                         </li>
  837.                         <li class="{% if _r == 'settingsbranding_index' %}active{% endif %}">
  838.                             <a href="{{ path('settingsbranding_index') }}">
  839.                                 <i class="icon-ampersand position-left"></i>
  840.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Branding{% endtrans %}</span>
  841.                             </a>
  842.                         </li>
  843.                         <li class="{% if _r == 'users' %}active{% endif %}">
  844.                             <a href="{{ path('users') }}">
  845.                                 <i class="icon-people position-left"></i>
  846.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Users{% endtrans %}</span>
  847.                             </a>
  848.                         </li>
  849.                         <li class="{% if _r == 'addAction' %}active{% endif %}">
  850.                             <a href="{{ path('addAction') }}">
  851.                                 <i class="icon-key position-left"></i>
  852.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Permissions{% endtrans %}</span>
  853.                             </a>
  854.                         </li>
  855.                         <li class="{% if _r == 'printIndex' %}active{% endif %}">
  856.                             <a href="{{ path('printIndex') }}">
  857.                                 <i class="icon-earth position-left"></i>
  858.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Edit Locations{% endtrans %}</span>
  859.                             </a>
  860.                         </li>
  861.                         <li class="{% if _r == 'supplier_types' %}active{% endif %}">
  862.                             <a href="{{ path('supplier_types') }}">
  863.                                 <i class="icon-users4 position-left"></i>
  864.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Supplier Type{% endtrans %}</span>
  865.                             </a>
  866.                         </li>
  867.                         <li class="{% if _r == 'settings_configuration_edit' %}active{% endif %}">
  868.                             <a href="{{ path('settings_configuration_edit') }}">
  869.                                 <i class="note-icon-menu-check position-left"></i>
  870.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Modules{% endtrans %}</span>
  871.                             </a>
  872.                         </li>
  873.                         <li class="{% if _r == 'status_color_index' %}active{% endif %}">
  874.                             <a href="{{ path('status_color_index') }}">
  875.                                 <i class="icon-paint-format position-left"></i>
  876.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Status Colors{% endtrans %}</span>
  877.                             </a>
  878.                         </li>
  879.                     </ul>
  880.                 </div>
  881.                 <br><br><br>
  882.             </div>
  883.         {% endif %}
  884.     </div>
  885. </div>