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','reservations_venues_gp_cvr_calendar',
  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 id="gp-invoice-list" class="{% if _r == 'reservation_invoice_list' %}active{% endif %}">
  184.                             <a href="{{ path('reservation_invoice_list') }}">
  185.                                 <i class="glyphicon glyphicon-euro"></i>
  186.                                 <span style="margin-left: 8px;">{% trans %}Facturación{% endtrans %}</span>
  187.                             </a>
  188.                         </li>
  189.                         <li id="gp-edit-tariff" class="{% if _r == 'reservations_venues_edit_general' %}active{% endif %}">
  190.                             <a href="{{ path('reservations_venues_edit_general') }}">
  191.                                 <i class="glyphicon glyphicon-check"></i>
  192.                                 <span style="margin-left: 8px;">{% trans %}Tarifario{% endtrans %}</span>
  193.                             </a>
  194.                         </li>
  195.                         <li id="gp-stats-general" class="{% if _r == 'venues_statistics' %}active{% endif %}">
  196.                             <a href="{{ path('venues_statistics') }}">
  197.                                 <i class="glyphicon glyphicon-signal"></i>
  198.                                 <span style="margin-left: 8px;">{% trans %}Estadísticas{% endtrans %}</span>
  199.                             </a>
  200.                         </li>
  201.                         <li id="gp-stats-general" class="{% if _r == 'app_doc_contract_model_index' %}active{% endif %}">
  202.                             <a href="{{ path('app_doc_contract_model_index') }}">
  203.                                 <i class="glyphicon glyphicon-inbox"></i>
  204.                                 <span style="margin-left: 8px;">{% trans %}Modelos de Contrato{% endtrans %}</span>
  205.                             </a>
  206.                         </li>
  207.                     </ul>
  208.                 </div>
  209.             </div>
  210.         {% endif %}
  211.         {# === CATERING === #}
  212.         {% if canCatering %}
  213.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  214.                 <div class="category-title">
  215.                     <a href="javascript:void(0)" data-toggle="collapse" data-target="#menu-higotrigo"
  216.                        data-parent="#sidebar-accordion" aria-expanded="{{ higotrigo_open or app.session.get('current_access_type') == 'catering' ? 'true' : 'false' }}"
  217.                        class="{{ higotrigo_open or app.session.get('current_access_type') == 'catering' ? '' : 'collapsed' }} text-default">
  218.                         <i class="icon-basket"></i>
  219.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Catering</span>
  220.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  221.                     </a>
  222.                 </div>
  223.                 <div id="menu-higotrigo" class="category-content collapse {% if higotrigo_open or app.session.get('current_access_type') == 'catering' %}in{% endif %}">
  224.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  225.                         {# --- Calendario --- #}
  226.                         <li class="{% if _r == 'ht_calendar' %}active{% endif %}">
  227.                             <a href="/higotrigo/calendar">
  228.                                 <i class="icon-calendar"></i>
  229.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Calendario{% endtrans %}</span>
  230.                             </a>
  231.                         </li>
  232.                         {# --- Prueba de Menú / Visitas --- #}
  233.                         <li class="{% if _r == 'app_higotrigo_ht_visit_index' %}active{% endif %}">
  234.                             <a href="{{ path('app_higotrigo_ht_visit_index') }}">
  235.                                 <i class="icon-chair"></i>
  236.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Prueba de Menú{% endtrans %}</span>
  237.                             </a>
  238.                         </li>
  239.                         {# --- Submenú: Expedientes --- #}
  240.                         {% 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'] %}
  241.                         <li>
  242.                         <li class="{% if _r == 'app_ht_file_index' %}active{% endif %}">
  243.                             <a class="" href="{{ path('app_ht_file_index') }}">
  244.                                 <i class="icon-list"></i>
  245.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Expedientes{% endtrans %}</span>
  246.                             </a>
  247.                         </li>
  248.                         <li class="{% if _r == 'app_ht_file_new' %}active{% endif %}">
  249.                             <a class="" href="{{ path('app_ht_file_new') }}">
  250.                                 <i class="icon-folder-plus"></i>
  251.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Expediente{% endtrans %}</span>
  252.                             </a>
  253.                         </li>
  254.                         <li class="{% if _r == 'app_ht_ten_days_ahead' %}active{% endif %}">
  255.                             <a class="" href="{{ path('app_ht_ten_days_ahead') }}">
  256.                                 <i class="icon-eye"></i>
  257.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Previsión Semanal{% endtrans %}</span>
  258.                             </a>
  259.                         </li>
  260.                         <li class="{% if _r == 'app_ht_invoice_index' %}active{% endif %}">
  261.                             <a class="" href="{{ path('app_ht_invoice_index') }}">
  262.                                 <i class="icon-coin-euro"></i>
  263.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Facturación{% endtrans %}</span>
  264.                             </a>
  265.                         </li>
  266.                         <li class="{% if _r == 'app_ht_proforma_index' %}active{% endif %}">
  267.                             <a class="" href="{{ path('app_ht_proforma_index') }}">
  268.                                 <i class="icon-file-text"></i>
  269.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Proformas{% endtrans %}</span>
  270.                             </a>
  271.                         </li>
  272.                         </li>
  273.                         {# --- Submenú: Cocina --- #}
  274.                         {% set open_kitchen = _r in [
  275.                             'app_product_index','app_product_new',
  276.                             'app_family_index','app_family_new',
  277.                             'app_escandallo_index','app_escandallo_new',
  278.                             'app_family_escandallo_index','app_family_escandallo_new',
  279.                             'app_ht_menu_index','app_ht_menu_new'
  280.                         ] %}
  281.                         <li>
  282.                             <a href="javascript:void(0)" data-toggle="collapse" data-target="#submenu-ht-kitchen" aria-expanded="{{ open_kitchen ? 'true' : 'false' }}" class="{{ open_kitchen ? '' : 'collapsed' }}">
  283.                                 <i class="icon-coffee"></i>
  284.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Cocina{% endtrans %}</span>
  285.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  286.                             </a>
  287.                             <ul id="submenu-ht-kitchen" class="collapse {% if open_kitchen %}in{% endif %}">
  288.                                 <li class="{% if _r == 'app_product_index' %}active{% endif %}">
  289.                                     <a class="" href="{{ path('app_product_index') }}">
  290.                                         <i class="icon-list"></i>
  291.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Productos{% endtrans %}</span>
  292.                                     </a>
  293.                                 </li>
  294.                                 <li class="{% if _r == 'app_product_new' %}active{% endif %}">
  295.                                     <a class="" href="{{ path('app_product_new') }}">
  296.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  297.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Producto{% endtrans %}</span>
  298.                                     </a>
  299.                                 </li>
  300.                                 <li class="{% if _r == 'app_family_index' %}active{% endif %}">
  301.                                     <a class="" href="{{ path('app_family_index') }}">
  302.                                         <i class="icon-list"></i>
  303.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Familia de Productos{% endtrans %}</span>
  304.                                     </a>
  305.                                 </li>
  306.                                 <li class="{% if _r == 'app_family_new' %}active{% endif %}">
  307.                                     <a class="" href="{{ path('app_family_new') }}">
  308.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  309.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva Familia de Producto{% endtrans %}</span>
  310.                                     </a>
  311.                                 </li>
  312.                                 <li><hr></li>
  313.                                 <li class="{% if _r == 'app_escandallo_index' %}active{% endif %}">
  314.                                     <a class="" href="{{ path('app_escandallo_index') }}">
  315.                                         <i class="icon-list"></i>
  316.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Escandallos{% endtrans %}</span>
  317.                                     </a>
  318.                                 </li>
  319.                                 <li class="{% if _r == 'app_escandallo_new' %}active{% endif %}">
  320.                                     <a class="" href="{{ path('app_escandallo_new') }}">
  321.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  322.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Escandallo{% endtrans %}</span>
  323.                                     </a>
  324.                                 </li>
  325.                                 <li class="{% if _r == 'app_family_escandallo_index' %}active{% endif %}">
  326.                                     <a class="" href="{{ path('app_family_escandallo_index') }}">
  327.                                         <i class="icon-list"></i>
  328.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Familia de Escandallos{% endtrans %}</span>
  329.                                     </a>
  330.                                 </li>
  331.                                 <li class="{% if _r == 'app_family_escandallo_new' %}active{% endif %}">
  332.                                     <a class="" href="{{ path('app_family_escandallo_new') }}">
  333.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  334.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva Familia de Escandallo{% endtrans %}</span>
  335.                                     </a>
  336.                                 </li>
  337.                                 <li><hr></li>
  338.                                 <li class="{% if _r == 'app_ht_menu_index' %}active{% endif %}">
  339.                                     <a class="" href="{{ path('app_ht_menu_index') }}">
  340.                                         <i class="icon-list"></i>
  341.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listar Menú{% endtrans %}</span>
  342.                                     </a>
  343.                                 </li>
  344.                                 <li class="{% if _r == 'app_ht_menu_new' %}active{% endif %}">
  345.                                     <a class="" href="{{ path('app_ht_menu_new') }}">
  346.                                         <i class="glyphicon glyphicon-plus-sign"></i>
  347.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo Menú{% endtrans %}</span>
  348.                                     </a>
  349.                                 </li>
  350.                             </ul>
  351.                         </li>
  352.                         {# --- Submenú: Estadísticas --- #}
  353.                         {% if canAdmin %}
  354.                             {% set open_stats = _r in ['app_higotrigo_ht_statistics_home','app_higotrigo_ht_statistics_production'] %}
  355.                             <li>
  356.                                 <a href="javascript:void(0)" data-toggle="collapse" data-target="#submenu-ht-stats" aria-expanded="{{ open_stats ? 'true' : 'false' }}" class="{{ open_stats ? '' : 'collapsed' }}">
  357.                                     <i class="icon-stats-bars2"></i>
  358.                                     <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Estadísticas{% endtrans %}</span>
  359.                                     <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  360.                                 </a>
  361.                                 <ul id="submenu-ht-stats" class="collapse {% if open_stats %}in{% endif %}">
  362.                                     <li class="{% if _r == 'app_higotrigo_ht_statistics_home' %}active{% endif %}">
  363.                                         <a class="" href="{{ path('app_higotrigo_ht_statistics_home') }}">
  364.                                             <i class="icon-stairs position-left"></i>
  365.                                             <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Informe de Facturación{% endtrans %}</span>
  366.                                         </a>
  367.                                     </li>
  368.                                     <li class="{% if _r == 'app_higotrigo_ht_statistics_production' %}active{% endif %}">
  369.                                         <a class="" href="{{ path('app_higotrigo_ht_statistics_production') }}">
  370.                                             <i class="icon-stairs position-left"></i>
  371.                                             <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Informe de Producción{% endtrans %}</span>
  372.                                         </a>
  373.                                     </li>
  374.                                 </ul>
  375.                             </li>
  376.                         {% endif %}
  377.                     </ul>
  378.                 </div>
  379.             </div>
  380.         {% endif %}
  381.         {# ==== AV EXPRESS ==== #}
  382.         {% set avexpress_routes = [
  383.             'ave_add_file','ave_list_product','ave_calendarav','ave_list_file','ave_list_invoices',
  384.             'ave_new_template','ave_list_template','ave_list_productfilelocation','reservations_venues',
  385.             'ave_monthly_benefits'
  386.         ] %}
  387.         {% set avexpress_open = (_r in avexpress_routes) or ('/avexpress/' in app.request.pathinfo) %}
  388.         {% if canAv %}
  389.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  390.                 <div class="category-title">
  391.                     <a href="javascript:void(0)"
  392.                        data-toggle="collapse"
  393.                        data-target="#menu-avexpress"
  394.                        data-parent="#sidebar-accordion"
  395.                        aria-expanded="{{ avexpress_open or app.session.get('current_access_type') == 'av' ? 'true' : 'false' }}"
  396.                        class="{{ avexpress_open or app.session.get('current_access_type') == 'av' ? '' : 'collapsed' }} text-default">
  397.                         <i class="glyphicon glyphicon-facetime-video"></i>
  398.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{% trans %}Audiovisuals{% endtrans %}</span>
  399.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  400.                     </a>
  401.                 </div>
  402.                 <div id="menu-avexpress" class="category-content collapse {% if avexpress_open or app.session.get('current_access_type') == 'av' %}in{% endif %}">
  403.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  404.                         <li class="{% if _r == 'ave_add_file' %}active{% endif %}">
  405.                             <a class="" href="{{ path('ave_add_file') }}">
  406.                                 <i class="icon-folder-plus"></i>
  407.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo expediente{% endtrans %}</span>
  408.                             </a>
  409.                         </li>
  410.                         <li class="{% if _r == 'ave_list_product' %}active{% endif %}">
  411.                             <a class="" href="{{ path('ave_list_product') }}" target="_blank">
  412.                                 <i class="glyphicon glyphicon-plus"></i>
  413.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nuevo producto{% endtrans %}</span>
  414.                             </a>
  415.                         </li>
  416.                         <li class="{% if _r == 'ave_calendarav' %}active{% endif %}">
  417.                             <a class="" href="{{ path('ave_calendarav') }}">
  418.                                 <i class="icon-calendar"></i>
  419.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Calendario{% endtrans %}</span>
  420.                             </a>
  421.                         </li>
  422.                         <li class="{% if _r == 'ave_list_file' %}active{% endif %}">
  423.                             <a class="" href="{{ path('ave_list_file') }}">
  424.                                 <i class="glyphicon glyphicon-list"></i>
  425.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listado de expedientes{% endtrans %}</span>
  426.                             </a>
  427.                         </li>
  428.                         <li class="{% if _r == 'ave_list_product' %}active{% endif %}">
  429.                             <a class="" href="{{ path('ave_list_product') }}">
  430.                                 <i class="glyphicon glyphicon-list-alt"></i>
  431.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Listado de productos{% endtrans %}</span>
  432.                             </a>
  433.                         </li>
  434.                         <li class="{% if _r == 'ave_list_invoices' %}active{% endif %}">
  435.                             <a class="" href="{{ path('ave_list_invoices') }}">
  436.                                 <i class="glyphicon glyphicon-euro"></i>
  437.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Facturación{% endtrans %}</span>
  438.                             </a>
  439.                         </li>
  440.                         {# --- Submenú: Plantillas --- #}
  441.                         {% set av_tpl_open = _r in ['ave_new_template','ave_list_template'] %}
  442.                         <li>
  443.                             <a href="javascript:void(0)"
  444.                                data-toggle="collapse"
  445.                                data-target="#submenu-avexpress-templates"
  446.                                aria-expanded="{{ av_tpl_open ? 'true' : 'false' }}"
  447.                                class="{{ av_tpl_open ? '' : 'collapsed' }}">
  448.                                 <i class="glyphicon glyphicon-duplicate"></i>
  449.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Plantillas{% endtrans %}</span>
  450.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  451.                             </a>
  452.                             <ul id="submenu-avexpress-templates" class="collapse {% if av_tpl_open %}in{% endif %}">
  453.                                 <li class="{% if _r == 'ave_new_template' %}active{% endif %}">
  454.                                     <a class="" href="{{ path('ave_new_template') }}">
  455.                                         <i class="glyphicon glyphicon-plus"></i>
  456.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Nueva plantilla{% endtrans %}</span>
  457.                                     </a>
  458.                                 </li>
  459.                                 <li class="{% if _r == 'ave_list_template' %}active{% endif %}">
  460.                                     <a class="" href="{{ path('ave_list_template') }}">
  461.                                         <i class="glyphicon glyphicon-edit"></i>
  462.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Modificar plantillas{% endtrans %}</span>
  463.                                     </a>
  464.                                 </li>
  465.                             </ul>
  466.                         </li>
  467.                         {# --- Submenú: Paquetes --- #}
  468.                         {% set av_pck_open = _r in ['ave_package','ave_package_list'] %}
  469.                         <li>
  470.                             <a href="javascript:void(0)"
  471.                                data-toggle="collapse"
  472.                                data-target="#submenu-avexpress-packages"
  473.                                aria-expanded="{{ av_pck_open ? 'true' : 'false' }}"
  474.                                class="{{ av_pck_open ? '' : 'collapsed' }}">
  475.                                 <i class="glyphicon glyphicon-inbox"></i>
  476.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Paquetes{% endtrans %}</span>
  477.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  478.                             </a>
  479.                             <ul id="submenu-avexpress-packages" class="collapse {% if av_pck_open %}in{% endif %}">
  480.                                 <li class="{% if _r == 'ave_package' %}active{% endif %}">
  481.                                     <a class="" href="{{ path('ave_package') }}">
  482.                                         <i class="glyphicon glyphicon-plus"></i>
  483.                                         <span>{% trans %}Nuevo paquete{% endtrans %}</span>
  484.                                     </a>
  485.                                 </li>
  486.                                 <li class="{% if _r == 'ave_package_list' %}active{% endif %}">
  487.                                     <a class="" href="{{ path('ave_package_list') }}">
  488.                                         <i class="glyphicon glyphicon-edit"></i>
  489.                                         <span>{% trans %}Modificar paquete{% endtrans %}</span>
  490.                                     </a>
  491.                                 </li>
  492.                             </ul>
  493.                         </li>
  494.                         {# --- Submenú: Otros --- #}
  495.                         {% set av_other_open = _r in ['ave_list_productfilelocation','reservations_venues','ave_monthly_benefits'] or ('/avexpress/liststatistics' in app.request.pathinfo) %}
  496.                         <li>
  497.                             <a href="javascript:void(0)"
  498.                                data-toggle="collapse"
  499.                                data-target="#submenu-avexpress-others"
  500.                                aria-expanded="{{ av_other_open ? 'true' : 'false' }}"
  501.                                class="{{ av_other_open ? '' : 'collapsed' }}">
  502.                                 <i class="glyphicon glyphicon-option-horizontal"></i>
  503.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Otros{% endtrans %}</span>
  504.                                 <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  505.                             </a>
  506.                             <ul id="submenu-avexpress-others" class="collapse {% if av_other_open %}in{% endif %}">
  507.                                 <li class="{% if _r == 'ave_list_productfilelocation' %}active{% endif %}">
  508.                                     <a class="" href="{{ path('ave_list_productfilelocation') }}">
  509.                                         <i class="glyphicon glyphicon-map-marker"></i>
  510.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Agregar / Listar Ubicaciones{% endtrans %}</span>
  511.                                     </a>
  512.                                 </li>
  513.                                 <li class="{% if _r == 'ave_monthly_benefits' %}active{% endif %}">
  514.                                     <a class="" href="{{ path('ave_monthly_benefits') }}">
  515.                                         <i class="glyphicon glyphicon-stats"></i>
  516.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Beneficios{% endtrans %}</span>
  517.                                     </a>
  518.                                 </li>
  519.                                 <li class="{% if '/avexpress/liststatistics' in app.request.pathinfo %}active{% endif %}">
  520.                                     <a class="" href="/avexpress/liststatistics">
  521.                                         <i class="glyphicon glyphicon-signal"></i>
  522.                                         <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Estadísticas de Facturación{% endtrans %}</span>
  523.                                     </a>
  524.                                 </li>
  525.                             </ul>
  526.                         </li>
  527.                     </ul>
  528.                 </div>
  529.             </div>
  530.         {% endif %}
  531.         {# ==== ESPACIOS (raíz) ==== #}
  532.         {% if canSpaces %}
  533.             {% for space in spaces %}
  534.                 {% set space_open = (_r starts with 'calendar_by') and (current_space_id == space.id) %}
  535.                 <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  536.                     <div class="category-title">
  537.                         <a href="javascript:void(0)"
  538.                            data-toggle="collapse"
  539.                            data-target="#submenu-space-{{ space.id }}"
  540.                            data-parent="#sidebar-accordion"
  541.                            aria-expanded="{{ space_open ? 'true' : 'false' }}"
  542.                            class="{{ space_open ? '' : 'collapsed' }} text-default">
  543.                             <i class="glyphicon glyphicon-home"></i>
  544.                             <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{{ space.name }}</span>
  545.                             <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  546.                         </a>
  547.                     </div>
  548.                     <div id="submenu-space-{{ space.id }}" class="category-content collapse {% if space_open %}in{% endif %}">
  549.                         <ul class="nav nav-pills nav-stacked nav-sidebar">
  550.                             <li class="{% if _r == 'calendar_by_space' and current_space_id == space.id %}active{% endif %}">
  551.                                 <a href="{{ path('calendar_by_space', { id: space.id }) }}">
  552.                                     <i class="icon-calendar"></i>
  553.                                     <span style="margin-left:8px">Calendario {{ space.name }}</span>
  554.                                 </a>
  555.                             </li>
  556.                             <li class="{% if _r == 'reservations_venues_space_index' and current_space_id == space.id %}active{% endif %}">
  557.                                 <a href="{{ path('reservations_venues_space_index', { idspace: space.id }) }}">
  558.                                     <i class="glyphicon glyphicon-list"></i>
  559.                                     <span style="margin-left:8px">Listado Expedientes {{ space.name }}</span>
  560.                                 </a>
  561.                             </li>
  562. {#                            {% if space.reservationLounges is defined and space.reservationLounges|length > 0 %}#}
  563. {#                                {% for lounge in space.reservationLounges %}#}
  564. {#                                    {% set current_lounge_id = current_lounge_id is defined ? current_lounge_id : null %}#}
  565. {#                                    <li class="{% if _r == 'calendar_by_lounge' and current_lounge_id == lounge.id %}active{% endif %}">#}
  566. {#                                        <a href="{{ path('calendar_by_lounge', { id: lounge.id }) }}">#}
  567. {#                                            <i class="icon-calendar"></i>#}
  568. {#                                            <span style="margin-left:8px">Calendario {{ lounge.name }}</span>#}
  569. {#                                        </a>#}
  570. {#                                    </li>#}
  571. {#                                {% endfor %}#}
  572. {#                            {% else %}#}
  573. {#                                <li class="disabled">#}
  574. {#                                    <a href="javascript:void(0)">#}
  575. {#                                        <i class="icon-calendar"></i>#}
  576. {#                                        <span style="margin-left:8px">Sin salas</span>#}
  577. {#                                    </a>#}
  578. {#                                </li>#}
  579. {#                            {% endif %}#}
  580.                         </ul>
  581.                     </div>
  582.                 </div>
  583.             {% else %}
  584.                 <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  585.                     <div class="category-title">
  586.                         <span style="margin-left:8px; letter-spacing: 1px;" class="text-muted">No hay venues definidos</span>
  587.                     </div>
  588.                 </div>
  589.             {% endfor %}
  590.         {% endif %}
  591.         {# ==== INVENTARIO ==== #}
  592.         {% if canInventory %}
  593.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  594.                 <div class="category-title">
  595.                     <a
  596.                             href="javascript:void(0)"
  597.                             data-toggle="collapse"
  598.                             data-target="#menu-inventario"
  599.                             data-parent="#sidebar-accordion"
  600.                             aria-expanded="{{ inventory_open ? 'true' : 'false' }}"
  601.                             class="{{ inventory_open ? '' : 'collapsed' }} text-default">
  602.                         <i class="glyphicon glyphicon-user"></i>
  603.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Inventario</span>
  604.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  605.                     </a>
  606.                 </div>
  607.                 <div id="menu-inventario" class="category-content collapse {% if inventory_open %}in{% endif %}">
  608.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  609.                         <li class="{% if _r == 'inventory_item_new' %}active{% endif %}">
  610.                             <a href="{{ path('inventory_item_new') }}">
  611.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  612.                                 <span style="margin-left:8px">Añadir Item</span>
  613.                             </a>
  614.                         </li>
  615.                     </ul>
  616.                 </div>
  617.             </div>
  618.         {% endif %}
  619.         {# ==== SAGE ==== #}
  620.         {% if canSage %}
  621.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  622.                 <div class="category-title">
  623.                     <a href="javascript:void(0)"
  624.                        data-toggle="collapse"
  625.                        data-target="#menu-sage"
  626.                        data-parent="#sidebar-accordion"
  627.                        aria-expanded="{{ sage_open ? 'true' : 'false' }}"
  628.                        class="{{ sage_open ? '' : 'collapsed' }} text-default">
  629.                         <i class="glyphicon glyphicon-list-alt"></i>
  630.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">SAGE</span>
  631.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  632.                     </a>
  633.                 </div>
  634.                 <div id="menu-sage" class="category-content collapse {% if sage_open %}in{% endif %}">
  635.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  636.                         <li class="{% if _r == 'sage_families_list' %}active{% endif %}">
  637.                             <a href="{{ path('sage_families_list') }}">
  638.                                 <i class="glyphicon glyphicon-th-large"></i>
  639.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Familias</span>
  640.                             </a>
  641.                         </li>
  642.                         <li class="{% if _r == 'sage_subfamilies_list' %}active{% endif %}">
  643.                             <a href="{{ path('sage_subfamilies_list') }}">
  644.                                 <i class="glyphicon glyphicon-th"></i>
  645.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Subfamilias</span>
  646.                             </a>
  647.                         </li>
  648.                         <li class="{% if _r == 'sage_vat_rates_list' %}active{% endif %}">
  649.                             <a href="{{ path('sage_vat_rates_list') }}">
  650.                                 <i class="glyphicon glyphicon-euro"></i>
  651.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Tipos de IVA</span>
  652.                             </a>
  653.                         </li>
  654.                         <li class="{% if _r == 'sage_articles_list' %}active{% endif %}">
  655.                             <a href="{{ path('sage_articles_list') }}">
  656.                                 <i class="glyphicon glyphicon-book"></i>
  657.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Artículos</span>
  658.                             </a>
  659.                         </li>
  660.                         <li class="{% if _r == 'sage_payment_methods_list' %}active{% endif %}">
  661.                             <a href="{{ path('sage_payment_methods_list') }}">
  662.                                 <i class="glyphicon glyphicon-credit-card"></i>
  663.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Formas de pago</span>
  664.                             </a>
  665.                         </li>
  666.                         <li class="{% if _r == 'sage_financial_account_list' %}active{% endif %}">
  667.                             <a href="{{ path('sage_financial_account_list') }}">
  668.                                 <i class="glyphicon glyphicon-piggy-bank"></i>
  669.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Cuentas financieras</span>
  670.                             </a>
  671.                         </li>
  672.                         <li id="reservations-add">
  673.                             <a href="{{ path('app_sage_payment_index') }}">
  674.                                 <i class="glyphicon glyphicon-usd"></i>
  675.                                 <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Cobros</span>
  676.                             </a>
  677.                         </li>
  678.                     </ul>
  679.                 </div>
  680.             </div>
  681.         {% endif %}
  682.         {# ==== CLIENTES ==== #}
  683.         {% if canClients %}
  684.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  685.                 <div class="category-title">
  686.                     <a href="javascript:void(0)"
  687.                        data-toggle="collapse"
  688.                        data-target="#menu-clientes"
  689.                        data-parent="#sidebar-accordion"
  690.                        aria-expanded="{{ clients_open ? 'true' : 'false' }}"
  691.                        class="{{ clients_open ? '' : 'collapsed' }} text-default">
  692.                         <i class="glyphicon glyphicon-briefcase iconos"></i>
  693.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Clientes</span>
  694.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  695.                     </a>
  696.                 </div>
  697.                 <div id="menu-clientes" class="category-content collapse {% if clients_open %}in{% endif %}">
  698.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  699.                         <li class="{% if _r == 'client_list_simple_letters' %}active{% endif %}">
  700.                             <a href="{{ path('client_list_simple_letters', {ind:0}) }}">
  701.                                 <i class="glyphicon glyphicon-list-alt"></i>
  702.                                 <span style="margin-left:8px">Listado Clientes (A ~ Z)</span>
  703.                             </a>
  704.                         </li>
  705.                         <li class="{% if _r == 'client_add' %}active{% endif %}">
  706.                             <a href="{{ path('client_add') }}">
  707.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  708.                                 <span style="margin-left:8px">Añadir Cliente</span>
  709.                             </a>
  710.                         </li>
  711.                         <li class="{% if _r == 'client_list_MyClients' %}active{% endif %}">
  712.                             <a href="{{ path('client_list_MyClients') }}">
  713.                                 <i class="glyphicon glyphicon-pushpin"></i>
  714.                                 <span style="margin-left:8px">{% trans %}My Clients{% endtrans %}</span>
  715.                             </a>
  716.                         </li>
  717.                         <li class="{% if _r == 'client_list_NoClient' %}active{% endif %}">
  718.                             <a href="{{ path('client_list_NoClient') }}">
  719.                                 <i class="glyphicon glyphicon-alert"></i>
  720.                                 <span style="margin-left:8px">{% trans %}Not Clients{% endtrans %}</span>
  721.                             </a>
  722.                         </li>
  723.                     </ul>
  724.                 </div>
  725.             </div>
  726.         {% endif %}
  727.         {# ==== PROVEEDORES ==== #}
  728.         {% if canProviders %}
  729.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  730.                 <div class="category-title">
  731.                     <a href="javascript:void(0)"
  732.                        data-toggle="collapse"
  733.                        data-target="#menu-proveedores"
  734.                        data-parent="#sidebar-accordion"
  735.                        aria-expanded="{{ suppliers_open ? 'true' : 'false' }}"
  736.                        class="{{ suppliers_open ? '' : 'collapsed' }} text-default">
  737.                         <i class="glyphicon glyphicon-user"></i>
  738.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">Proveedores</span>
  739.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  740.                     </a>
  741.                 </div>
  742.                 <div id="menu-proveedores" class="category-content collapse {% if suppliers_open %}in{% endif %}">
  743.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  744.                         <li class="{% if _r == 'supplier_index_simple_letters' %}active{% endif %}">
  745.                             <a href="{{ path('supplier_index_simple_letters', {ind:0}) }}">
  746.                                 <i class="glyphicon glyphicon-list-alt"></i>
  747.                                 <span style="margin-left:8px">Listado Proveedores (A ~ Z)</span>
  748.                             </a>
  749.                         </li>
  750.                         <li class="{% if _r == 'supplier_add' %}active{% endif %}">
  751.                             <a href="{{ path('supplier_add') }}">
  752.                                 <i class="glyphicon glyphicon-plus-sign"></i>
  753.                                 <span style="margin-left:8px">Añadir Proveedor</span>
  754.                             </a>
  755.                         </li>
  756.                     </ul>
  757.                 </div>
  758.             </div>
  759.         {% endif %}
  760.         {# ==== MODULO LEGEND ==== #}
  761.         {% if canLegends %} {# Usamos canVenues como permiso base, o puedes crear un canLegend #}
  762.             <div class="sidebar-category sidebar-category-visible" style="margin-top:10px;">
  763.                 <div class="category-title">
  764.                     <a href="javascript:void(0)"
  765.                        data-toggle="collapse"
  766.                        data-target="#menu-legend"
  767.                        data-parent="#sidebar-accordion"
  768.                        aria-expanded="{{ legends_open ? 'true' : 'false' }}"
  769.                        class="{{ legends_open ? '' : 'collapsed' }} text-default">
  770.                         {# Icono de estrella o diamante para diferenciar LEGEND #}
  771.                         <i class="glyphicon glyphicon-star"></i>
  772.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px; letter-spacing: 1px;">ESPACIO LEGENDS</span>
  773.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  774.                     </a>
  775.                 </div>
  776.                 <div id="menu-legend" class="category-content collapse {% if app.user.team.id == 18 %}in{% endif %}">
  777.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  778.                         <li>
  779.                             <a href="/">
  780.                                 <i class="glyphicon glyphicon-calendar"></i>
  781.                                 <span style="margin-left:8px">Calendario LEGENDS</span>
  782.                             </a>
  783.                         </li>
  784.                         <li class="{% if _r == 'venues_statistics_legends' %}active{% endif %}">
  785.                             <a href="{{ path('venues_statistics_legends') }}">
  786.                                 <i class="glyphicon glyphicon-signal"></i>
  787.                                 <span style="margin-left:8px">Estadísticas LEGENDS</span>
  788.                             </a>
  789.                         </li>
  790.                         <li class="{% if _r == 'reservation_invoice_legends_list' %}active{% endif %}">
  791.                             <a href="{{ path('reservation_invoice_legends_list') }}">
  792.                                 <i class="glyphicon glyphicon-euro"></i>
  793.                                 <span style="margin-left:8px">Facturación LEGENDS</span>
  794.                             </a>
  795.                         </li>
  796.                         <li class="{% if _r == 'reservation_quote_legends' %}active{% endif %}">
  797.                             <a href="{{ path('reservation_quotation_legends_list') }}">
  798.                                 <i class="glyphicon glyphicon-bookmark"></i>
  799.                                 <span style="margin-left:8px">Cotización LEGENDS</span>
  800.                             </a>
  801.                         </li>
  802.                         <li>
  803.                     </ul>
  804.                 </div>
  805.             </div>
  806.         {% endif %}
  807.         {# ==== SETTINGS ==== #}
  808.         {% if canSettings %}
  809.             <hr style="margin: 20px">
  810.             <div class="sidebar-category sidebar-category-visible" style="margin-top:30px;">
  811.                 <div class="category-title">
  812.                     <a href="javascript:void(0)"
  813.                        data-toggle="collapse"
  814.                        data-target="#menu-platform-settings"
  815.                        data-parent="#sidebar-accordion"
  816.                        aria-expanded="{{ settings_open ? 'true' : 'false' }}"
  817.                        class="{{ settings_open ? '' : 'collapsed' }} text-default">
  818.                         <i class="glyphicon glyphicon-cog"></i>
  819.                         <span class="uppercase" style="margin-left:8px; letter-spacing: 1px;">{% trans %}Settings{% endtrans %}</span>
  820.                         <i class="glyphicon pull-right glyphicon-chevron-down"></i>
  821.                     </a>
  822.                 </div>
  823.                 <div id="menu-platform-settings" class="category-content collapse {% if settings_open %}in{% endif %}">
  824.                     <ul class="nav nav-pills nav-stacked nav-sidebar">
  825.                         <li class="{% if _r == 'settingsgeneral_index' %}active{% endif %}">
  826.                             <a href="{{ path('settingsgeneral_index') }}">
  827.                                 <i class="icon-cog position-left"></i>
  828.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}General{% endtrans %}</span>
  829.                             </a>
  830.                         </li>
  831.                         <li class="{% if _r == 'settingsbranding_index' %}active{% endif %}">
  832.                             <a href="{{ path('settingsbranding_index') }}">
  833.                                 <i class="icon-ampersand position-left"></i>
  834.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Branding{% endtrans %}</span>
  835.                             </a>
  836.                         </li>
  837.                         <li class="{% if _r == 'users' %}active{% endif %}">
  838.                             <a href="{{ path('users') }}">
  839.                                 <i class="icon-people position-left"></i>
  840.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Users{% endtrans %}</span>
  841.                             </a>
  842.                         </li>
  843.                         <li class="{% if _r == 'addAction' %}active{% endif %}">
  844.                             <a href="{{ path('addAction') }}">
  845.                                 <i class="icon-key position-left"></i>
  846.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Permissions{% endtrans %}</span>
  847.                             </a>
  848.                         </li>
  849.                         <li class="{% if _r == 'printIndex' %}active{% endif %}">
  850.                             <a href="{{ path('printIndex') }}">
  851.                                 <i class="icon-earth position-left"></i>
  852.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Edit Locations{% endtrans %}</span>
  853.                             </a>
  854.                         </li>
  855.                         <li class="{% if _r == 'supplier_types' %}active{% endif %}">
  856.                             <a href="{{ path('supplier_types') }}">
  857.                                 <i class="icon-users4 position-left"></i>
  858.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Supplier Type{% endtrans %}</span>
  859.                             </a>
  860.                         </li>
  861.                         <li class="{% if _r == 'settings_configuration_edit' %}active{% endif %}">
  862.                             <a href="{{ path('settings_configuration_edit') }}">
  863.                                 <i class="note-icon-menu-check position-left"></i>
  864.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Modules{% endtrans %}</span>
  865.                             </a>
  866.                         </li>
  867.                         <li class="{% if _r == 'status_color_index' %}active{% endif %}">
  868.                             <a href="{{ path('status_color_index') }}">
  869.                                 <i class="icon-paint-format position-left"></i>
  870.                                 <span style="margin-left:8px; letter-spacing: 1px;">{% trans %}Status Colors{% endtrans %}</span>
  871.                             </a>
  872.                         </li>
  873.                     </ul>
  874.                 </div>
  875.                 <br><br><br>
  876.             </div>
  877.         {% endif %}
  878.     </div>
  879. </div>