// {} 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 },
		campo = { id_nomina: window.aplicacion.campo.selector.id_nomina },
		tabla = {
			instancia: new Tabla({
				columna: {
					peticion: {
						ruta: `${window.aplicacion.enlace}/ejecutar`,
						parametro: {
							procedimiento: 'p_traer_encabezado_reportes',
							renglon: 'NOMINAS',
							tipo_reporte:() => tipo_reporte.value
						}
					}
				},
				datos: {
					peticion: {
						ruta: `${window.aplicacion.enlace}/ejecutar?procedimiento=p_traer_nominas`,
						parametro: () => Object.fromEntries(parametros(formularioReporteNominas))
					}
				}
			})
		}

	// !
	$(id_proyecto).on('select2:select',function() {

		campo.id_nomina.parametros();

		campo.id_nomina.peticion('opciones')

	});

	// !
	$(formularioReporteNominas).on('submit reset', 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
		;

		// +
		tabla.instancia.inicializar()

	});

	// !
	$('#tablaRegistros').on('draw.dt', function(evento) {

		if (!this.classList.contains('dataTable'))
			return
		;

		// +
		function obtenerColumna(indiceColumna) {
			let pie = $('#tablaRegistros').DataTable().column(indiceColumna, { page: 'current' });
			return {
				valor: $(pie.footer()).text().replaceAll(',', ''),
				actualizar: (valor) => {
					$(pie.footer()).html(valor)
				}
			};
		}

		// ?
		$(obtenerColumna(0).actualizar(`Total`));

	});

})()
