// {} Librerías e importaciones

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

// {}
(async () => {

  // ! Declaración de variables
  let
    peticion = { actual: null },
    tabla = {
      elemento: $(tablaRegistros),
      clase: new Tabla({
        datos: {
          peticion: {
            ruta: `${window.aplicacion.enlace}/ejecutar`,
            parametro: {
              procedimiento: 'p_traer_registros_combinados',
              renglon: 'TIPOS_DOCUMENTOS'
            },
          },
        },
        configuracion: { dom: `ft`, }
      })
    }

  // !
	await tabla.clase.inicializar();
	tabla.instancia = tabla.elemento.DataTable();

  tabla.elemento.find('tbody').on('dblclick', 'tr', function(evento) {

		// +
		if (tabla.elemento.find('td.dataTables_empty').length)
			return
		;

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

    // + Petición hacia el
    // + controlador 'traerRegistros'
    peticion.actual = $.ajax({
      url: `${window.aplicacion.enlace}/ejecutar`,
      type: 'GET',
      data: {
        procedimiento: 'p_traer_unico_registro',
        renglon: 'TIPO_DOCUMENTO',
        id_renglon: $(evento.currentTarget).find('.id').text()
      },
      beforeSend: function (peticion, configuracion) {},
      success: function (respuesta,peticion, estado) {},
      error: function(peticion,estado) {},
      complete: function(peticion,estado) {},
      formulario: { elemento: formularioTiposDocumentos }

    })

  });

	$(document).on('ajaxSuccess', (evento, configuracion) => {

    if (
      window.aplicacion.peticion.formulario.elemento === formularioTiposDocumentos &&
      window.aplicacion.peticion.formulario.exitosa.propiedades === window.aplicacion.peticion.exitosa.propiedades
    )
      tabla.instancia.ajax.reload()

  })

})()
