File "ausentismo_publico.php"

Full Path: C:/wamp64/www/casos_medicos/ausentismo_publico.php
File size: 7.6 KB
MIME-type: text/x-php
Charset: utf-8

<?php
include("conexion.php");
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Registro Público de Ausentismo - Avicampo</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
    body { background-color: #f3f6f3; font-family: 'Segoe UI', sans-serif; }
    .navbar-custom { background: linear-gradient(90deg,#2d7a2e,#1f5c20,#28a745); height:70px; color:#fff; box-shadow:0 4px 6px rgba(0,0,0,0.2);}
    .navbar-custom img { height:45px; margin-right:10px;}
    .navbar-custom span { font-size:1.5rem; font-weight:600;}
    .container-form { background:#fff; border-radius:15px; box-shadow:0 4px 8px rgba(0,0,0,0.15); margin-top:25px; padding:25px; max-width:900px;}
    .section-title { font-size:1.2rem; font-weight:700; color:#2d7a2e; margin-top:15px; margin-bottom:10px; border-bottom:2px solid #28a745;}
    label { color:#2d7a2e; font-weight:600;}
    input:disabled, select:disabled { background-color:#e9ecef;}
    .btn-success { background:linear-gradient(90deg,#2d7a2e,#28a745); border:none;}
    .btn-success:hover { background:#1f5c20;}
    .alert { font-weight:500;}
</style>
</head>
<body>

<nav class="navbar navbar-custom d-flex align-items-center px-3">
<img src="imagen/avicampo.png" alt="Logo Avicampo">
<span>Registro de Ausentismo</span>
</nav>

<div class="container container-form">
<form id="formAusentismo" method="post" enctype="multipart/form-data">

  <!-- Información del Empleado -->
  <div class="section-title"><i class="bi bi-person-circle"></i> Información del Empleado</div>
  <div class="row mb-3">
    <div class="col-md-6">
      <label>Cédula:</label>
      <input type="text" name="cedula" id="cedula" class="form-control" placeholder="Ingrese cédula" required>
    </div>
    <div class="col-md-6">
      <label>Nombre:</label>
      <input type="text" id="nombre" name="nombre" class="form-control" readonly>
    </div>
  </div>

  <div class="row mb-3">
    <div class="col-md-6">
      <label>Centro de Costo:</label>
      <input type="text" id="ccosto" name="ccosto" class="form-control" readonly>
    </div>
    <div class="col-md-6">
      <label>Cargo:</label>
      <input type="text" id="cargo" name="cargo" class="form-control" readonly>
    </div>
  </div>

  <div class="row mb-3">
    <div class="col-md-6">
      <label>Teléfono:</label>
      <input type="text" name="telefono" id="telefono" class="form-control" placeholder="Ingrese teléfono" required>
    </div>
    <div class="col-md-6">
      <label>Correo electrónico:</label>
      <input type="email" name="correo" id="correo" class="form-control" placeholder="Ingrese correo" required>
    </div>
  </div>

  <div id="noEncontrado" class="alert alert-warning" style="display:none;">
    ⚠️ No se encontró ningún empleado con esa cédula.
  </div>

  <!-- Detalle del Ausentismo -->
  <div class="section-title"><i class="bi bi-file-earmark-medical"></i> Detalle del Ausentismo</div>
  <div class="mb-3">
    <label>Tipo de Incapacidad:</label>
    <select id="tipo_incapacidad" name="tipo_incapacidad" class="form-select" required>
      <option value="">Seleccione...</option>
      <option value="Enfermedad General">Enfermedad General</option>
      <option value="Accidente de Tránsito">Accidente de Tránsito</option>
      <option value="Licencia de Maternidad">Licencia de Maternidad</option>
      <option value="Licencia de Paternidad">Licencia de Paternidad</option>
    </select>
  </div>

  <div class="mb-3">
    <label>EPS:</label>
    <select id="eps" name="eps" class="form-select" required>
      <option value="">Seleccione...</option>
      <option value="SOS">SOS</option>
      <option value="SANITAS">SANITAS</option>
      <option value="SURA">SURA</option>
      <option value="NUEVA EPS">NUEVA EPS</option>
    </select>
  </div>

  <div id="camposDinamicos"></div>

  <div class="text-center mt-4">
    <button type="submit" class="btn btn-success px-4"><i class="bi bi-save"></i> Guardar Registro</button>
  </div>

</form>
</div>

<script>
  $(document).ready(function(){
    // Buscar empleado por cédula
    $('#cedula').on('keyup change', function(){
      let cedula = $(this).val().trim();
      if(cedula.length>=4){
        $.post('buscar_empleado.php',{cedula:cedula},function(resp){
          if(resp.encontrado){
            $('#nombre').val(resp.nombre);
            $('#ccosto').val(resp.ccosto);
            $('#cargo').val(resp.cargo);
            $('#noEncontrado').hide();
          } else {
            $('#nombre,#ccosto,#cargo').val('');
            $('#noEncontrado').show();
          }
        },'json');
      } else {
        $('#nombre,#ccosto,#cargo').val('');
        $('#noEncontrado').hide();
      }
    });

  // Campos dinámicos
  $('#tipo_incapacidad').change(function(){
    const tipo = $(this).val();
    let html = '';
    if(tipo!==''){
      html += `<div class="row mb-3">
        <div class="col-md-6"><label>Fecha Inicio:</label><input type="date" name="fecha_inicio" id="fecha_inicio" class="form-control" required></div>
        <div class="col-md-6"><label>Fecha Fin:</label><input type="date" name="fecha_fin" id="fecha_fin" class="form-control" required></div>
      </div>
      <div class="mb-3"><label>Días:</label><input type="number" name="dias" id="dias" class="form-control" readonly></div>
      <div class="mb-3"><label>Certificado (PDF/Imagen):</label><input type="file" name="certificado" class="form-control" accept=".pdf,image/*" required></div>
      <div class="mb-3"><label>Epicrisis (PDF/Imagen):</label><input type="file" name="epicrisis" class="form-control" accept=".pdf,image/*" required></div>`;

      if(tipo==='Accidente de Tránsito'){
        html += `<div class="mb-3"><label>FURIPS (PDF/Imagen):</label><input type="file" name="furips" class="form-control" accept=".pdf,image/*" required></div>`;
      }
      if(tipo==='Licencia de Maternidad'||tipo==='Licencia de Paternidad'){
        html += `<div class="mb-3"><label>Registro Civil (PDF/Imagen):</label><input type="file" name="registro_civil" class="form-control" accept=".pdf,image/*" required></div>`;
      }
    }
    $('#camposDinamicos').html(html);
  });

  // Calcular días automáticamente
  $(document).on('change','#fecha_inicio,#fecha_fin',function(){
    const inicio=new Date($('#fecha_inicio').val());
    const fin=new Date($('#fecha_fin').val());
    if(!isNaN(inicio)&&!isNaN(fin)){
      const diff=Math.round((fin-inicio)/(1000*60*60*24))+1;
      $('#dias').val(diff>0?diff:0);
    }
  });

  // Envío AJAX
  $('#formAusentismo').submit(function(e){
    e.preventDefault();
    const formData = new FormData(this);
    $.ajax({
      url:'guardar_ausentismo.php',
      type:'POST',
      data:formData,
      processData:false,
      contentType:false,
      dataType:'json',
      success:function(resp){
        if(resp.ok){
          alert("✅ Registro guardado correctamente");
          $('#formAusentismo')[0].reset();
          $('#camposDinamicos').html('');
        }else{
          alert("⚠️ "+resp.msg);
        }
      },
      error:function(xhr){
        console.error(xhr.responseText);
        alert("❌ Error al conectar con el servidor. Revisa consola.");
      }
    });
  });

});
</script>
</body>
</html>