templates/admin/promocion/acciones.html.twig line 1

Open in your IDE?
  1. <!-- START admin/promocion/acciones.html.twig -->
  2. {% if acciones is not defined %}
  3.     {% set acciones = form.parent.vars.value.acciones %}
  4. {% endif %}
  5. {% if promocion is not defined %}
  6.     {% set promocion = form.parent.vars.value %}
  7. {% endif %}
  8. <table id="acciones" class="table table-bordered table-striped">
  9.     <thead>
  10.         <tr>
  11.             <th>{{ 'form.accion.label.fecha' | trans({}, 'promocionAdmin') }}</th>
  12.             <th>{{ 'form.accion.label.servicios' | trans({}, 'promocionAdmin') }}</th>
  13.             <th>{{ 'form.accion.label.detalle' | trans({}, 'promocionAdmin') }}</th>
  14.             <th>{{ 'form.accion.label.coste' | trans({}, 'promocionAdmin') }}</th>
  15.             <th>{{ 'form.accion.label.precio' | trans({}, 'promocionAdmin') }}</th>
  16.             <th>{{ 'form.accion.label.competitividad' | trans({}, 'promocionAdmin') }}</th>
  17.             <th>{{ 'form.accion.label.info' | trans({}, 'promocionAdmin') }}</th>
  18.         </tr>
  19.     </thead>
  20.     <tbody>
  21.         {% if acciones.count == 0 %}
  22.             <tr><td colspan="7" style="text-align: center;">{{ 'form.accion.no_data' | trans({}, 'promocionAdmin') }}</td></tr>
  23.         {% else %}
  24.             {% for accion in acciones | sort((a, b) => b.fecha <=> a.fecha) %}
  25.                 {% set deletable = is_granted('ROLE_SUPER_ADMIN') and (
  26.                     (instanceof(accion, "\\App\\Entity\\AccionUbicacion") and (accion.isDeletable)) or
  27.                     instanceof(accion, "\\App\\Entity\\AccionServicio") or
  28.                     instanceof(accion, "\\App\\Entity\\AccionMejora") or
  29.                     instanceof(accion, "\\App\\Entity\\AccionVenta") or
  30.                     instanceof(accion, "\\App\\Entity\\AccionAnuncio") or
  31.                     instanceof(accion, "\\App\\Entity\\AccionCompetencia")
  32.                     ) %}
  33.                 {% set editable = accion.isEditable ? 'action-edit ui-tooltip' : '' %}
  34.                 {% set deletableClass = deletable ? 'action-delete' : '' %}
  35.                 {% set accionData = {
  36.                     id: accion.id,
  37.                     tipo:
  38.                         instanceof(accion, "\\App\\Entity\\AccionEstado") ? constant('App\\Enum\\TipoAccionEnum::ACCION_ESTADO') :
  39.                         instanceof(accion, "\\App\\Entity\\AccionServicio") ? constant('App\\Enum\\TipoAccionEnum::ACCION_SERVICIO') :
  40.                         instanceof(accion, "\\App\\Entity\\AccionMejora") ? constant('App\\Enum\\TipoAccionEnum::ACCION_MEJORA') :
  41.                         instanceof(accion, "\\App\\Entity\\AccionVenta") ? constant('App\\Enum\\TipoAccionEnum::ACCION_VENTA') :
  42.                         instanceof(accion, "\\App\\Entity\\AccionAnuncio") ? constant('App\\Enum\\TipoAccionEnum::ACCION_ANUNCIO') :
  43.                         instanceof(accion, "\\App\\Entity\\AccionCompetencia") ? constant('App\\Enum\\TipoAccionEnum::ACCION_COMPETENCIA') :
  44.                         instanceof(accion, "\\App\\Entity\\AccionUbicacion") ? constant('App\\Enum\\TipoAccionEnum::ACCION_UBICACION') :
  45.                         instanceof(accion, "\\App\\Entity\\AccionCheck") ? constant('App\\Enum\\TipoAccionEnum::ACCION_CHECK') :
  46.                         '---',
  47.                     fecha: accion.fecha|date('d-m-Y'),
  48.                     descripcion: accion.descripcion,
  49.                     coste: (instanceof(accion, "\\App\\Entity\\AccionCoste") or instanceof(accion, "\\App\\Entity\\AccionEstado") or instanceof(accion, "\\App\\Entity\\AccionServicio") or instanceof(accion, "\\App\\Entity\\AccionMejora") or instanceof(accion, "\\App\\Entity\\AccionVenta")) ? accion.coste : null,
  50.                     precio: (instanceof(accion, "\\App\\Entity\\AccionAnuncio") or instanceof(accion, "\\App\\Entity\\AccionEstado") or instanceof(accion, "\\App\\Entity\\AccionCompetencia"))  ? accion.precio : null,
  51.                     estado: (instanceof(accion, "\\App\\Entity\\AccionEstado") or instanceof(accion, "\\App\\Entity\\AccionCheck")) ? accion.estado ? accion.estado.key : null,
  52.                     ubicacionActual: instanceof(accion, "\\App\\Entity\\AccionUbicacion") ? accion.ubicacionActual ? accion.ubicacionActual.id : null,
  53.                     ubicacionAnterior: instanceof(accion, "\\App\\Entity\\AccionUbicacion") ? accion.ubicacionAnterior ? accion.ubicacionAnterior.id : null,
  54.                     tipoCargo: (instanceof(accion, "\\App\\Entity\\AccionServicio") or instanceof(accion, "\\App\\Entity\\AccionMejora") or instanceof(accion, "\\App\\Entity\\AccionVenta")) ? accion.tipo ? accion.tipo.id : null,
  55.                     canal: (instanceof(accion, "\\App\\Entity\\AccionAnuncio") or instanceof(accion, "\\App\\Entity\\AccionCompetencia")) ? accion.canal ? accion.canal.id : null,
  56.                     competencia: instanceof(accion, "\\App\\Entity\\AccionCompetencia") ? accion.competencia ? accion.competencia.id : null
  57.                 } %}
  58.                 <tr data-id="{{ accion.id }}" data-accion="{{ accionData|json_encode|e('html_attr') }}">
  59.                     <td class="{{ editable }} {{ deletableClass }}" data-url_edit_accion="{{ path('admin_app_promocion_edit-accion', { id: promocion.id, accionId: accion.id }) }}" data-url_delete_accion="{{ path('admin_app_promocion_delete-accion', {id: promocion.id, accionId: accion.id }) }}">
  60.                         {{ accion.fecha | date('d/m/Y') }}
  61.                         {% if accion.isEditable %}
  62.                             <span class="ui-tooltip-content">
  63.                                 <span class="ui-tooltip-title">Editar acción</span>
  64.                                 <span class="ui-tooltip-description">
  65.                                     Dependiendo de los permisos, se podrá modificar la fecha o eliminar dicha acción.
  66.                                 </span>
  67.                             </span>
  68.                         {% endif %}
  69.                     </td>
  70.                     <td>{{ accion.tipoAccion }}</td>
  71.                     <td>{{ accion | trans({}, 'enum')}}</td>
  72.                     <td>{% if accion.coste is defined and accion.coste is not null %} {{ accion.coste | format_currency('EUR') }} {% endif %}</td>
  73.                     <td>{% if accion.precio is defined and accion.precio is not null %} {{ accion.precio | format_currency('EUR') }} {% endif %}</td>
  74.                     <td>{% if accion.competencia is defined %} {{ accion.competencia }} {% endif %}</td>
  75.                     <td>{{ accion.descripcion }}</td>
  76.                 </tr>
  77.             {% endfor %}
  78.         {% endif %}
  79.     </tbody>
  80.     <tfoot></tfoot>
  81. </table>
  82. <script type="text/javascript">
  83.     $(document).on("click", "#acciones .action-edit", function(e)
  84.     {
  85.         e.preventDefault();
  86.         $(".action-edit_accion").show();
  87.         $tr = $(this).closest("tr");
  88.         const accion = $tr.data("accion");
  89.         $(".with_actions .action-edit_accion").data("id", $tr.data("id"))
  90.         cargarAccionFormulario(accion);
  91.     });
  92.     $(document).on("click", "#acciones .action-delete", function(e)
  93.     {
  94.         e.preventDefault();
  95.         $(".action-delete_accion").show();
  96.         $tr = $(this).closest("tr");
  97.         $(".with_actions .action-delete_accion").data("id", $tr.data("id"));
  98.     });
  99.     function cargarAccionFormulario(accion) {
  100.         $("select[id$=_accionTipo]").val(accion.tipo).trigger("change");
  101.         $("input[id$=_accionFecha]").val(accion.fecha);
  102.         $("textarea[id$=_accionDescripcion]").val(accion.descripcion);
  103.         const precioPromocion = AutoNumeric.getAutoNumericElement($("input[id$=_precioPromocion]")[0]);
  104.         precioPromocion.set(accion.precio);
  105.         const accionCoste = AutoNumeric.getAutoNumericElement($("input[id$=_accionCoste]")[0]);
  106.         accionCoste.set(accion.coste);
  107.         const accionPrecio = AutoNumeric.getAutoNumericElement($("input[id$=_accionPrecio]")[0]);
  108.         accionPrecio.set(accion.precio);
  109.         accion.estado ? $("select[id$=_accionEstado]").val(accion.estado).trigger("change") : null;
  110.         accion.ubicacionActual ? $("select[id$=_accionUbicacion]").val(accion.ubicacionActual).trigger("change") : null;
  111.         accion.tipoCargo ? $("select[id$=_accionServicio]").val(accion.tipoCargo).trigger("change") : null;
  112.         accion.tipoCargo ? $("select[id$=_accionMejora]").val(accion.tipoCargo).trigger("change") : null;
  113.         accion.canal ? $("select[id$=_accionPlataforma]").val(accion.canal).trigger("change") : null;
  114.         accion.tipoCargo ? $("select[id$=_accionVenta]").val(accion.tipoCargo).trigger("change") : null;
  115.         accion.competencia ? $("select[id$=_accionCompetencia]").val(accion.competencia) : null;
  116.         accion.estado ? $("select[id$=_accionCheck]").val(accion.estado) : null;
  117.     }
  118. </script>
  119. <!-- END admin/promocion/acciones.html.twig -->