File "recomendaciones.php.bak"

Full Path: C:/wamp64/www/casos_medicos/pacientes/recomendaciones.php.bak
File size: 7.93 KB
MIME-type: text/x-php
Charset: utf-8

<?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>
            <input type="text" name="entidad" class="form-control form-control-sm" required>
          </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>