// {} Librerías e importaciones

// ! Tabla
import Tabla from "../../../elementos/tabla.js";

// {}
(() => {

  // ! Declaración de variables
  let peticion = { actual: null }

  // !
  new Tabla({
    columna: {
      peticion: {
        ruta: `${window.aplicacion.enlace}/ejecutar`,
        parametro: { procedimiento: 'p_traer_encabezado_registros' }
      }
    },
    datos: {
      peticion: {
        ruta: `${window.aplicacion.enlace}/ejecutar`,
        parametro: {
          procedimiento: 'p_traer_registros_combinados',
          renglon: 'TIPOS_CUENTAS'
        }
      }
    },
    configuracion: {
      dom: `ft`,
      pageLength: -1
    }
  }).inicializar();

  // !
  $('#tablaRegistros tbody').on('dblclick', 'tr', function(evento) {

    // + Condición para verificar si la
    // + petición existe y cancelarla
    peticion.actual &&
    peticion.actual.abort();

    // + Petición hacía el
    // + controlador 'traerRegistros'
    peticion.actual = $.ajax({
      url: `${window.aplicacion.enlace}/ejecutar`,
      data: {
        procedimiento: 'p_traer_unico_registro',
        renglon: 'TIPO_CUENTA',
        id_renglon: $(evento.target).parent().find('.id').text()
      },
      beforeSend: function(peticion, configuracion) {},
      success: function(respuesta, estado, peticion) {},
      error: function(peticion, estado) {},
      complete: function(peticion, estado) {},
      formulario: { elemento: formularioTiposCuentas }
    })

  });

  // !
  $(botonLimpiar).click(function(evento) {

    $('#tablaRegistros tr.table-active').removeClass('active')

  });

  // !
  $(document).on('ajaxSuccess', function(evento, configuracion) {

    if (
      window.aplicacion.peticion.formulario.elemento === formularioTiposCuentas &&
      window.aplicacion.peticion.formulario.exitosa.propiedades === window.aplicacion.peticion.exitosa.propiedades
    )
      $("#tablaRegistros").DataTable().ajax.reload()

  })

})()
