File "guardar_ausentismo.php.bak"

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

<?php
include("conexion.php");
header('Content-Type: application/json');
error_reporting(E_ALL);
ini_set('display_errors',1);

// Función para leer archivos como binario
function leerArchivo($campo){
    if(isset($_FILES[$campo]) && $_FILES[$campo]['error']==0){
        return file_get_contents($_FILES[$campo]['tmp_name']);
    }
    return null;
}

// Función para obtener nombre de archivo
function nombreArchivo($campo){
    return isset($_FILES[$campo]['name']) ? $_FILES[$campo]['name'] : null;
}

// 1️⃣ Campos obligatorios generales
$camposObligatorios = ['cedula','nombre','ccosto','cargo','telefono','correo','tipo_incapacidad','eps'];
foreach($camposObligatorios as $c){
    if(empty($_POST[$c])){
        echo json_encode(["ok"=>false,"msg"=>"Falta el campo: $c"]);
        exit;
    }
}

// 2️⃣ Campos dinámicos obligatorios según tipo de incapacidad
$tipo = $_POST['tipo_incapacidad'];
$camposDinamicos = ['fecha_inicio','fecha_fin','dias'];
foreach($camposDinamicos as $c){
    if(empty($_POST[$c])){
        echo json_encode(["ok"=>false,"msg"=>"Falta el campo: $c"]);
        exit;
    }
}

// 3️⃣ Archivos
$certificado = leerArchivo('certificado');
$certificado_nombre = nombreArchivo('certificado');
$epicrisis = leerArchivo('epicrisis');
$epicrisis_nombre = nombreArchivo('epicrisis');

$furips = null; $furips_nombre = null;
$registro_civil = null; $registro_civil_nombre = null;

// Archivos opcionales según tipo
if($tipo==='Accidente de Tránsito'){
    if(empty($_FILES['furips'])){
        echo json_encode(["ok"=>false,"msg"=>"Falta el archivo FURIPS"]);
        exit;
    }
    $furips = leerArchivo('furips');
    $furips_nombre = nombreArchivo('furips');
}
if($tipo==='Licencia de Maternidad' || $tipo==='Licencia de Paternidad'){
    if(empty($_FILES['registro_civil'])){
        echo json_encode(["ok"=>false,"msg"=>"Falta el archivo Registro Civil"]);
        exit;
    }
    $registro_civil = leerArchivo('registro_civil');
    $registro_civil_nombre = nombreArchivo('registro_civil');
}

try{
    // 4️⃣ Preparar la consulta
    $stmt = $conn->prepare("INSERT INTO ausentismo (
        cedula, nombre, ccosto, cargo, telefono, correo, tipo_incapacidad, eps,
        fecha_inicio, fecha_fin, dias,
        certificado, certificado_nombre,
        epicrisis, epicrisis_nombre,
        furips, furips_nombre,
        registro_civil, registro_civil_nombre,
        fecha_registro
    ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,NOW())");

    if(!$stmt){
        throw new Exception("Error en prepare: ".$conn->error);
    }

    // 5️⃣ Bind de parámetros (19 campos + NOW())
    $stmt->bind_param(
        "ssssssssisssssssss",
        $_POST['cedula'],
        $_POST['nombre'],
        $_POST['ccosto'],
        $_POST['cargo'],
        $_POST['telefono'],
        $_POST['correo'],
        $_POST['tipo_incapacidad'],
        $_POST['eps'],
        $_POST['fecha_inicio'],
        $_POST['fecha_fin'],
        $_POST['dias'],
        $certificado,
        $certificado_nombre,
        $epicrisis,
        $epicrisis_nombre,
        $furips,
        $furips_nombre,
        $registro_civil,
        $registro_civil_nombre
    );

    // 6️⃣ Enviar BLOBs largos
    if($certificado) $stmt->send_long_data(11,$certificado);
    if($epicrisis) $stmt->send_long_data(13,$epicrisis);
    if($furips) $stmt->send_long_data(15,$furips);
    if($registro_civil) $stmt->send_long_data(17,$registro_civil);

    // 7️⃣ Ejecutar
    if($stmt->execute()){
        echo json_encode(["ok"=>true,"msg"=>"Registro guardado correctamente"]);
    } else {
        echo json_encode(["ok"=>false,"msg"=>"Error al guardar: ".$stmt->error]);
    }

    $stmt->close();
    $conn->close();

}catch(Exception $e){
    echo json_encode(["ok"=>false,"msg"=>"Error interno: ".$e->getMessage()]);
}
?>