$(document).ready(function () { cargarEmpleados(); // Cargar empleados en la tabla function cargarEmpleados() { $.ajax({ url: 'https://worktimehub.com/cp/obtener_empleados.php', type: 'GET', dataType: 'json', // Esto automáticamente convierte la respuesta en JSON success: function (empleados) { console.log("Datos recibidos:", empleados); let html = ''; empleados.forEach(emp => { html += `
No hay registros de asistencia en este rango de fechas.
"; } else { Object.keys(reporte).forEach(semana => { html += `| Details | Hours |
|---|---|
|
${dia.fecha} Time in: ${dia.hora_entrada} Time out: ${dia.hora_salida} ${dia.hora_salida === '00:00:00' ? '<- NO MARCASTE TU SALIDA HABLA CON EL ADMINISTRADOR' : ''} ${dia.detalles === '' ? '<- Edita la descripcion de tu trabajo' : ''} ${dia.detalles} | ${parseFloat(dia.horas).toFixed(2)} |
Total Horas Semana ${semana}: ${parseFloat(reporte[semana]['total_horas']).toFixed(2)}
`; totalHorasGlobal += parseFloat(reporte[semana]['total_horas']); }); html += `Total de Horas Trabajadas: ${totalHorasGlobal.toFixed(2)}
`;
html += '';
html += '
'; } $('#reporte-asistencia').html(html); } $(document).on('click', '#generar-pdf', function () { let empleado_id = $('#empleado_id').val(); let fecha_inicio = $('#fecha_inicio').val(); let fecha_fin = $('#fecha_fin').val(); window.open(`generar_reporte_pdf.php?empleado_id=${empleado_id}&fecha_inicio=${fecha_inicio}&fecha_fin=${fecha_fin}`, '_blank'); }); // reporte asistencia --------------------------- // ENVIO DE CORREO ------------------------------ $(document).ready(function () { // Mostrar modal y fondo cuando se presiona "Enviar horas" $(document).on('click', '#enviar-horas', function () { $('#fondo-transparente, #confirmacion-modal').fadeIn(); $('#confirmacion-modal').modal('show'); $('#confirmar-boton').show(); }); // Cerrar modal y fondo con botón "X" $(document).on('click', '#cerrar-modal', function () { $('#fondo-transparente, #confirmacion-modal').fadeOut(); $('#confirmacion-modal').modal('hide'); $('#fondo-transparente').hide(); }); // Habilitar el botón de envío solo si se marca el checkbox $('#confirmar-envio').change(function () { $('#confirmar-boton').prop('disabled', !$(this).prop('checked')); }); // Enviar el correo y mostrar mensaje de confirmación $(document).on('click', '#confirmar-boton', function () { $('#confirmar-boton').hide(); let empleado_id = $('#empleado_id').val(); let empleado_nombre = $('#empleado_id option:selected').text(); let fecha_inicio = $('#fecha_inicio').val(); let fecha_fin = $('#fecha_fin').val(); let empleado_nombre_encoded = encodeURIComponent(empleado_nombre); let reporte_url = `https://worktimehub.com/cp/generar_reporte_pdf.php?empleado_id=${empleado_id}&fecha_inicio=${fecha_inicio}&fecha_fin=${fecha_fin}`; $.ajax({ url: 'enviar_correo.php', type: 'POST', data: { empleado_nombre: empleado_nombre, reporte_url: reporte_url, fecha_inicio: fecha_inicio, fecha_fin: fecha_fin }, success: function () { $('#confirmacion-modal').fadeOut(); $('#confirmacion-modal').modal('hide'); $('#mensaje-enviado').fadeIn(); $('#mensaje-enviado').modal('show'); }, error: function () { alert('❌ Error al enviar el correo.'); } }); }); // Cerrar mensaje de confirmación y ocultar el fondo $(document).on('click', '#cerrar-mensaje', function () { $('#mensaje-enviado, #fondo-transparente').fadeOut(); $('#mensaje-enviado').modal('hide'); $('#fondo-transparente').hide(); }); }); // ENVIO DE CORREO ------------------------------ FIN // Abrir el modal con datos del asistencias seleccionado $(document).on('click', '.editarasistencia', function () { let idasistencia = $(this).data('idasistencia'); console.log("ID del asistencia seleccionado: ", idasistencia); $.ajax({ url: 'obtener_asistencia_e.php?id='+idasistencia, // Esto se procesará correctamente en PHP type: 'GET', dataType: 'json', success: function (asistencias) { console.log("Datos de asistencias recibidos:", asistencias); let asistencia = asistencias.find(emp => emp.id == idasistencia); if (asistencia) { // Llenar el modal con los datos de la asistencia $('#edit-id-asistencias').val(asistencia.id); $('#edit-hora_entrada').val(asistencia.hora_entrada); $('#edit-hora_salida').val(asistencia.hora_salida); $('#edit-fecha').val(asistencia.fecha); $('#edit-hora_entrada-text').text(asistencia.hora_entrada); $('#edit-hora_salida-text').text(asistencia.hora_salida); $('#edit-fecha-text').text(asistencia.fecha); $('#edit-detalles').val(asistencia.detalles); $('#edit-pago_hora').val(asistencia.pago_hora); $('#modal-editar-asistencias').modal('show'); } else { console.error("Asistencia no encontrada en la lista."); } }, error: function (xhr, status, error) { console.error("Error al obtener asistencia:", error); console.log("Respuesta del servidor:", xhr.responseText); } }); }); $('#form-asistencia-2').on('submit', function (e) { e.preventDefault(); console.log($(this).serialize()); $.ajax({ url: 'editar_asistencia.php', type: 'POST', data: $(this).serialize(), success: function (response) { alert("Actualizado ok"); $("#mensaje").text("Actualizado asistencia OK") .removeClass("alert-danger").addClass("alert-success").removeClass("d-none"); console.log("Actualizado ok"); $('#modal-editar-asistencias').modal('hide'); // Recuperar los valores actuales del formulario de filtro let empleado_id = $('#empleado_id').val(); let fecha_inicio = $('#fecha_inicio').val(); let fecha_fin = $('#fecha_fin').val(); // Hacer una nueva consulta para obtener los datos actualizados $.ajax({ url: 'obtener_asistencias.php', type: 'GET', data: { empleado_id, fecha_inicio, fecha_fin }, dataType: 'json', success: function (reporteActualizado) { console.log("Datos actualizados:", reporteActualizado); mostrarReporte(reporteActualizado); // Ahora llamamos a la función con datos actualizados }, error: function (xhr, status, error) { console.error("Error al obtener datos actualizados:", error); } }); } }); }); // eliminar sistencia ---- $(document).ready(function() { $("#btn-eliminar-asistencia").click(function() { var idAsistencia = $("#edit-id-asistencias").val(); if (!idAsistencia) { alert("No se ha seleccionado una asistencia válida."); return; } if (confirm("¿Estás seguro de que deseas eliminar esta asistencia? Esta acción no se puede deshacer.")) { $.ajax({ url: "eliminar_asistencia.php", type: "POST", data: { id: idAsistencia }, dataType: "json", success: function(response) { if (response.success) { alert("Asistencia eliminada correctamente."); $("#modal-editar-asistencias").modal("hide"); // location.reload(); $('#form-reporte').trigger('submit'); } else { alert("Error al eliminar: " + response.error); } }, error: function() { alert("Hubo un error en la solicitud."); } }); } }); }); // fin eliminar asistencia ----------------------- });