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()]);
}
?>