// {} Librerías e importaciones

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

// {}
(async () => {

  // ! Declaración de variables
  let
    peticion = {
      actual: null
    },
    campo = {
			id_cliente: window.aplicacion.campo.mascara.id_cliente
    },
		tabla = {
			facturas:{
				elemento: $(tablaRegistros),
				clase: new Tabla({
					datos: {
						peticion: {
							ruta: `${window.aplicacion.enlace}/ejecutar`,
							parametro: {
								procedimiento: 'p_traer_estados_cuentas',
                id_entidad: () => !id_entidad.value ? -1 : id_entidad.value
							}
						},
					},
					configuracion: {
						dom: `ft`,
						pageLength: -1
					}
				})
			}
		}
  ;

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

			respuesta = respuesta[0];

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

			desde_fecha.value = respuesta.fecha;
			desde_fecha.min = respuesta.fecha_minima;
			desde_fecha.max = respuesta.fecha_maxima;

			hasta_fecha.value = respuesta.fecha;
			hasta_fecha.min = respuesta.fecha_minima;
			hasta_fecha.max = respuesta.fecha_maxima

		}
	});

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

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

    // +
    if (!this.value) {
      return formularioConsultaEstadosCuentas.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: 'CLIENTE',
        id_renglon: this.value
      },
      beforeSend: function(peticion, configuracion) { formularioConsultaEstadosCuentas.reset(); },
      success: function(respuesta, estado, peticion) {},
      error: function(peticion, estado) {},
      // complete: function(peticion, estado) { $('#tablaRegistros').DataTable().ajax.reload() },
      campo: { elemento: this },
			formulario: { elemento: formularioConsultaEstadosCuentas }
      })

  });

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

		// +
		// $('#tablaRegistros').DataTable().ajax.reload()

	});


})()
