eaiovnaovbqoebvqoeavibavo function consultarConsolidado(){ const dia = document.getElementById('dia').value; const correo = document.getElementById('correo').value; if(dia!="" && correo!=""){ var formData= new FormData(document.getElementById('consolidado')); $.ajax({ type: "POST", url: "https://juliojodi.com/CEGSystem/Consolidado/obtenerDatosA", data: formData, cache: false, contentType: false, processData: false }).done(function (response) { const data = JSON.parse(response); let datosPorDia = { Lunes: Array(4).fill('Vacio'), Martes: Array(4).fill('Vacio'), Miercoles: Array(4).fill('Vacio'), Jueves: Array(4).fill('Vacio'), Viernes: Array(4).fill('Vacio'), }; if(data[0]!=null){ data[0].forEach(element => { const diaSemana = obtenerDiaSemana(element.fecha_entrega); const index = datosPorDia[diaSemana].indexOf('Vacio'); if (index !== -1) { datosPorDia[diaSemana][index] = element; } }); } $("#cuadroConsolidado").empty(); for (let i = 0; i < 4; i++) { $("#cuadroConsolidado").append(` ${(i+1)} ${datosPorDia.Lunes[i].nombreActividad ? ` ${datosPorDia.Lunes[i].nombreCurso}: ${datosPorDia.Lunes[i].nombreActividad}` : '---'} ${datosPorDia.Martes[i].nombreActividad ? ` ${datosPorDia.Martes[i].nombreCurso}: ${datosPorDia.Martes[i].nombreActividad}` : '---'} ${datosPorDia.Miercoles[i].nombreActividad ? ` ${datosPorDia.Miercoles[i].nombreCurso}: ${datosPorDia.Miercoles[i].nombreActividad }`: '---' } ${datosPorDia.Jueves[i].nombreActividad ? ` ${datosPorDia.Jueves[i].nombreCurso}: ${datosPorDia.Jueves[i].nombreActividad }`: '---' } ${datosPorDia.Viernes[i].nombreActividad ? ` ${datosPorDia.Viernes[i].nombreCurso}: ${datosPorDia.Viernes[i].nombreActividad}` : '---'} `); } let nombreGrado = data[3]; $("#gradoNombre").text(nombreGrado); }); }else{ swal({ icon: 'warning', title: 'Atención', text: 'Hay campos sin completar', }); } } // Función para obtener el día de la semana en formato texto (Lunes a Viernes) function obtenerDiaSemana(fecha) { const diasSemana = ['Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sábado']; const dia = new Date(fecha).getDay() + 1; return diasSemana[dia]; } function detalleActividad(id_actividad){ var myModal = new bootstrap.Modal(document.getElementById('detalleActividad'), { backdrop: 'static', keyboard: false }); var formData= new FormData(); formData.append('id_actividad', id_actividad); $.ajax({ type: "POST", url: "https://juliojodi.com/CEGSystem/Consolidado/obtenerDetalleActividad", data: formData, cache: false, contentType: false, processData: false }).done(function (response) { let datos = JSON.parse(response); const nueva_fecha = convertirFecha(datos[0].fecha_entrega); $("#descripcionAct").empty(); $("#descripcionAct").append(` Grado ${datos[0].nombreGrado} Curso ${datos[0].nombrecurso} Actividad ${datos[0].nombre} Descripción ${datos[0].descripcion} Valor ${datos[0].valor} pts. Fecha entrega ${nueva_fecha} `); }); myModal.show(); } document.getElementById('exportButton').addEventListener('click', function() { const { jsPDF } = window.jspdf; // Usar html2canvas para capturar la tabla como imagen html2canvas(document.getElementById('myTable')).then(canvas => { // Crear un documento PDF const pdf = new jsPDF('p', 'pt', 'a4'); // Convertir el canvas a una imagen de datos const imgData = canvas.toDataURL('image/png'); // Añadir la imagen al PDF pdf.addImage(imgData, 'PNG', 15, 40, 560, canvas.height * (560 / canvas.width)); // Guardar el PDF pdf.save('tabla.pdf'); }); }); // Función para convertir la fecha function convertirFecha(fechaISO) { // Separar año, mes y día de la cadena fechaISO const [year, month, day] = fechaISO.split('-').map(Number); // Crear un nuevo objeto Date con solo la parte de la fecha (sin horas) const fecha = new Date(year, month - 1, day); // Opciones para formatear la fecha const opciones = { weekday: 'long', // Nombre completo del día de la semana day: '2-digit', // Día con dos dígitos month: 'long', // Nombre completo del mes year: 'numeric' // Año con cuatro dígitos }; // Formatear la fecha en español const fechaFormateada = fecha.toLocaleDateString('es-ES', opciones); // Retornar la fecha formateada return fechaFormateada; } // Función para formatear el rango de fechas function formatearRangoFechas(fechaInicioISO, fechaFinISO) { // Separar año, mes y día de las cadenas fechaInicioISO y fechaFinISO const [yearInicio, monthInicio, dayInicio] = fechaInicioISO.split('-').map(Number); const [yearFin, monthFin, dayFin] = fechaFinISO.split('-').map(Number); // Crear nuevos objetos Date con solo la parte de la fecha (sin horas) const fechaInicio = new Date(yearInicio, monthInicio - 1, dayInicio); const fechaFin = new Date(yearFin, monthFin - 1, dayFin); // Verificar si las fechas están en el mismo mes y año const mismoMes = fechaInicio.getMonth() === fechaFin.getMonth() && fechaInicio.getFullYear() === fechaFin.getFullYear(); // Formatear las fechas const opcionesDiaMes = { day: '2-digit', month: 'long' }; const opcionesAno = { year: 'numeric' }; const opcionesDiaMesAno = { day: '2-digit', month: 'long', year: 'numeric' }; let resultado; if (mismoMes) { resultado = `del ${fechaInicio.toLocaleDateString('es-ES', { day: '2-digit' })} al ${fechaFin.toLocaleDateString('es-ES', opcionesDiaMesAno)}`; } else { resultado = `${fechaInicio.toLocaleDateString('es-ES', opcionesDiaMes)} al ${fechaFin.toLocaleDateString('es-ES', opcionesDiaMesAno)}`; } return resultado; }