// {} Librerías e importaciones

// ! Utilidades
import { parametros } from "../../../utilidades.js";

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

// {}
(() => {

  // ! Declaración de variables
  let
		peticion = { actual: null },
		tabla = {
			elemento: tablaRegistros,
			clase: new Tabla({
				columna: {
					peticion: {
						ruta: `${window.aplicacion.enlace}/ejecutar`,
						parametro: {
							procedimiento: 'p_traer_encabezado_reportes',
							tipo_reporte:() => tipo_reporte.value
						}
					}
				},
				datos: {
					peticion: {
						ruta: '../ejecutar?procedimiento=p_traer_articulos',
						parametro: () => Object.fromEntries(parametros(formularioReporteArticulos))
					}
				}
			})
		}

	// $.ajax({
	// 	url: `${window.aplicacion.enlace}/ejecutar`,
	// 	data: { procedimiento: 'p_traer_fechas' },
	// 	success: function (respuesta) {

	// 		respuesta = respuesta[0];

	// 		$.each(respuesta, (indice, valor) => respuesta[indice] = respuesta[indice].split(' ')[0]);

	// 		desde_fecha.value = respuesta.desde_fecha;
	// 		desde_fecha.min = respuesta.desde_fecha_minima;
	// 		desde_fecha.max = respuesta.desde_fecha_maxima;

	// 		hasta_fecha.value = respuesta.hasta_fecha;
	// 		hasta_fecha.min = respuesta.hasta_fecha_minima;
	// 		hasta_fecha.max = respuesta.hasta_fecha_maxima

	// 	}
	// });

	// !
	$(id_suplidor).focusout(function(evento) {

		// +
    if (!this.value)
			return $(this).trigger('reset')
		;

    // + 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: 'SUPLIDOR',
        id_renglon: this.value
      },
      beforeSend: (peticion, configuracion) => $(this).trigger('reset'),
      success: function(respuesta, estado, peticion) {

				if (!respuesta.length)
					return
				;

				respuesta = respuesta[0];

				window.aplicacion.campo.mascara.id_suplidor.value = respuesta.id_suplidor;
				suplidor.value = respuesta.suplidor

			},
      error: function(peticion, estado) {},
      complete: function(peticion, estado) {}
    })

  });

	// !
	$(formularioReporteArticulos).on('submit reset', function(evento) {

		if (evento.type === 'reset')
			return tabla.clase.destruir()
		;

		if (
			(!document.activeElement.type && !['BODY', 'DIV'].includes(document.activeElement.tagName)) ||
			(document.activeElement.type && document.activeElement.type !== 'submit')
		)
			return
		;

		// +
		tabla.clase.inicializar()

	})

})()
