Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
casos_medicos
:
guardar_ausentismo.php.bak
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?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()]); } ?>