File "Ausentismo.php"

Full Path: C:/wamp64/www/casos_medicos1/model/Ausentismo.php
File size: 3.64 KB
MIME-type: text/x-php
Charset: utf-8

<?php
require_once __DIR__ . '/conexion.php';

class Ausentismo {
    private $conn;

    public function __construct() {
        $db = new Conexion();
        $this->conn = $db->getConexion();
    }

    public function buscarEmpleadoPorCedula($cedula) {
    // Datos de conexión (puedes reutilizar los de tu archivo conexion.php)
    $servername = "192.200.100.40";
    $username = "SANMARINO";
    $password = "sanmarino2021*";
    $dbname = "almuerzo";

    // Conexión a la base de datos "almuerzo"
    $connAlmuerzo = new mysqli($servername, $username, $password, $dbname);

    if ($connAlmuerzo->connect_error) {
        return null;
    }

    $sql = "SELECT nombre, ccosto, descripcion, cargo FROM empleados WHERE cedula = ?";
    $stmt = $connAlmuerzo->prepare($sql);
    $stmt->bind_param("s", $cedula);
    $stmt->execute();
    $result = $stmt->get_result();

    $empleado = null;
    if ($row = $result->fetch_assoc()) {
        $empleado = [
            'nombre' => $row['nombre'],
            'ccosto' => $row['ccosto'],
            'descripcion' => $row['descripcion'],
            'cargo' => $row['cargo']
        ];
    }

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

    return $empleado;
}


    public function guardar($data, $files) {
        try {
            // Funciones internas para leer archivos
            $leerArchivo = function($campo) use ($files) {
                return (isset($files[$campo]) && $files[$campo]['error'] == 0)
                    ? file_get_contents($files[$campo]['tmp_name'])
                    : null;
            };

            $nombreArchivo = function($campo) use ($files) {
                return isset($files[$campo]['name']) ? $files[$campo]['name'] : null;
            };

            $sql = "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())";

            $stmt = $this->conn->prepare($sql);
            if (!$stmt) {
                throw new Exception('Error al preparar: ' . $this->conn->error);
            }

            $values = [
                $data['cedula'] ?? null,
                $data['nombre'] ?? null,
                $data['ccosto'] ?? null,
                $data['cargo'] ?? null,
                $data['telefono'] ?? null,
                $data['correo'] ?? null,
                $data['tipo_incapacidad'] ?? null,
                $data['eps'] ?? null,
                $data['fecha_inicio'] ?? null,
                $data['fecha_fin'] ?? null,
                intval($data['dias'] ?? 0),
                $leerArchivo('certificado'),
                $nombreArchivo('certificado'),
                $leerArchivo('epicrisis'),
                $nombreArchivo('epicrisis'),
                $leerArchivo('furips'),
                $nombreArchivo('furips'),
                $leerArchivo('registro_civil'),
                $nombreArchivo('registro_civil')
            ];

            $types = str_repeat('s', count($values));
            $stmt->bind_param($types, ...$values);

            if (!$stmt->execute()) {
                throw new Exception('Error al ejecutar: ' . $stmt->error);
            }

            return true;
        } catch (Exception $e) {
            error_log('❌ Error al guardar ausentismo: ' . $e->getMessage());
            return false;
        }
    }
}