<?php include("./conexion.php"); $cedula = $_GET['cedula'] ?? ($_POST['cedula'] ?? ''); if (empty($cedula)) { echo "<div class='alert alert-warning'>No se indicó la cédula del paciente.</div>"; exit; } ?> <div class="container-fluid"> <div class="d-flex justify-content-between align-items-center mb-3"> <h6 class="m-0 fw-bold text-success">Recomendaciones del paciente</h6> <!-- botón programático (mejor para pestañas dinamicas) --> <button type="button" id="btnNuevaRecomendacion" class="btn btn-sm btn-success"> ➕ Nueva Recomendación </button> </div> <?php $sql = "SELECT id, fecha, entidad, quien_emite, funciones_actuales, funciones_nuevas, fecha_inicio, fecha_fin, tiempo_dias FROM recomendaciones_paciente WHERE cedula = ? ORDER BY fecha DESC"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $cedula); $stmt->execute(); $res = $stmt->get_result(); ?> <div class="table-responsive"> <table class="table table-bordered table-sm align-middle"> <thead class="table-success"> <tr> <th>Fecha</th> <th>Entidad</th> <th>Emitido por</th> <th>Funciones Actuales</th> <th>Funciones Nuevas</th> <th>Inicio</th> <th>Fin</th> <th>Días</th> </tr> </thead> <tbody> <?php if ($res && $res->num_rows > 0): ?> <?php while($r = $res->fetch_assoc()): ?> <tr> <td><?=htmlspecialchars($r['fecha'])?></td> <td><?=htmlspecialchars($r['entidad'])?></td> <td><?=htmlspecialchars($r['quien_emite'])?></td> <td><?=nl2br(htmlspecialchars($r['funciones_actuales']))?></td> <td><?=nl2br(htmlspecialchars($r['funciones_nuevas']))?></td> <td><?=htmlspecialchars($r['fecha_inicio'])?></td> <td><?=htmlspecialchars($r['fecha_fin']) ?: '-'?></td> <td><?=htmlspecialchars($r['tiempo_dias'])?></td> </tr> <?php endwhile; ?> <?php else: ?> <tr><td colspan="8" class="text-center text-muted">Sin recomendaciones registradas</td></tr> <?php endif; ?> </tbody> </table> </div> </div> <!-- MODAL NUEVA RECOMENDACIÓN --> <div class="modal fade" id="modalRecomendacion" tabindex="-1" aria-hidden="true"> <div class="modal-dialog modal-lg"> <form class="modal-content" id="formRecomendacion"> <div class="modal-header bg-success text-white"> <h5 class="modal-title">Nueva Recomendación</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Cerrar"></button> </div> <div class="modal-body"> <input type="hidden" name="cedula" value="<?=htmlspecialchars($cedula)?>"> <div class="row g-3"> <div class="col-md-4"> <label class="form-label">Fecha</label> <input type="datetime-local" name="fecha" class="form-control form-control-sm" required> </div> <div class="col-md-4"> <label class="form-label">Entidad</label> <select name="entidad" class="form-control form-control-sm" required> <option value="">Seleccione...</option> <option value="ARL">ARL</option> <option value="EPS">EPS</option> <option value="MEDICO EMPRESA">MÉDICO EMPRESA</option> </select> </div> <div class="col-md-4"> <label class="form-label">Quién Emite</label> <input type="text" name="quien_emite" class="form-control form-control-sm" required> </div> <div class="col-12"> <label class="form-label">Funciones Actuales</label> <textarea name="funciones_actuales" class="form-control form-control-sm" rows="2"></textarea> </div> <div class="col-12"> <label class="form-label">Funciones Nuevas</label> <textarea name="funciones_nuevas" class="form-control form-control-sm" rows="2"></textarea> </div> <div class="col-md-4"> <label class="form-label">Fecha Inicio</label> <input type="date" name="fecha_inicio" id="rec_fecha_inicio" class="form-control form-control-sm"> </div> <div class="col-md-4"> <label class="form-label">Fecha Fin</label> <input type="date" name="fecha_fin" id="rec_fecha_fin" class="form-control form-control-sm"> </div> <div class="col-md-4"> <label class="form-label">Tiempo (días)</label> <input type="number" name="tiempo_dias" id="rec_tiempo_dias" class="form-control form-control-sm" min="0" value="0" readonly> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-success btn-sm">Guardar</button> </div> </form> </div> </div> <script> // ---- Apertura programática del modal (evita problemas si el contenido se carga via include/AJAX) ---- (function(){ // Asegúrate de que bootstrap esté disponible if (typeof bootstrap === 'undefined') { console.warn('Bootstrap JS no está cargado. Asegúrate de incluir bootstrap.bundle.min.js en la página padre.'); } const btn = document.getElementById('btnNuevaRecomendacion'); if (btn) { btn.addEventListener('click', function(){ // Si bootstrap Modal existe, úsalo; si no, intenta fallback con atributos if (typeof bootstrap !== 'undefined' && bootstrap.Modal) { const modalEl = document.getElementById('modalRecomendacion'); const modal = new bootstrap.Modal(modalEl); modal.show(); } else { // fallback: si data-bs attributes funcionan const modalTrigger = document.querySelector('[data-bs-toggle="modal"][data-bs-target="#modalRecomendacion"]'); if (modalTrigger) modalTrigger.click(); else alert('No se puede mostrar el modal: falta Bootstrap JS.'); } }); } // ---- Calculo automático de dias entre fechas ---- const fechaInicio = document.getElementById('rec_fecha_inicio'); const fechaFin = document.getElementById('rec_fecha_fin'); const campoDias = document.getElementById('rec_tiempo_dias'); function calcularDias() { const fi = fechaInicio.value; const ff = fechaFin.value; if (!fi) { campoDias.value = ''; return; } if (!ff) { campoDias.value = ''; return; } // permitimos dejar fecha_fin vacía const d1 = new Date(fi); const d2 = new Date(ff); const diff = Math.ceil((d2 - d1) / (1000*60*60*24)); campoDias.value = diff >= 0 ? diff : 0; } if (fechaInicio) fechaInicio.addEventListener('change', calcularDias); if (fechaFin) fechaFin.addEventListener('change', calcularDias); // ---- Envío AJAX del formulario ---- const form = document.getElementById('formRecomendacion'); if (form) { form.addEventListener('submit', function(e){ e.preventDefault(); const submitBtn = form.querySelector('button[type="submit"]'); submitBtn.disabled = true; const data = new FormData(form); fetch('pacientes/guardar_recomendacion.php', { method: 'POST', body: data }) .then(r => r.text()) .then(text => { // cerrar modal y recargar la sección (mejor que recargar toda la página) if (typeof bootstrap !== 'undefined' && bootstrap.Modal) { const modalEl = document.getElementById('modalRecomendacion'); bootstrap.Modal.getInstance(modalEl)?.hide(); } // intentamos recargar solo el contenedor: si el archivo esta incluido directamente en la página padre, // lo más simple es recargar la página para ver el nuevo registro. alert(text); location.reload(); }) .catch(err => { alert('Error al guardar: ' + err); }) .finally(()=> submitBtn.disabled = false); }); } })(); </script>