// {} Librerías e importaciones

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

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

// {}
(() => {

  // ! Declaración de variables
  let
		peticion = { actual: null },
		tabla = {
			instancia: new Tabla({
				columna: {
					peticion: {
						ruta: `${window.aplicacion.enlace}/ejecutar`,
						parametro: {
							procedimiento: 'p_traer_encabezado_reportes',
							renglon: 'EMPLEADOS',
							tipo_reporte: () => tipo_reporte.value
						}
					}
				},
				datos: {
					peticion: {
						ruta: `${window.aplicacion.enlace}/ejecutar?procedimiento=p_traer_empleados`,
						parametro: () => Object.fromEntries(parametros(formularioReporteEmpleados))
					}
				}
			})
		}
	;

	// !
	$.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_ingreso.value = respuesta.desde_fecha;
			desde_fecha_ingreso.min = respuesta.desde_fecha_minima;
			desde_fecha_ingreso.max = respuesta.desde_fecha_maxima;

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

		}
	});

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

		// +
		if (evento.type === 'reset')
			return tabla.instancia.destruir()
		;

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

		// +
		await tabla.instancia.inicializar()

	})

})()
