File "HojaVida.php"

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

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

class HojaVida
{
    private $conn;

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

    public function obtenerPorCedula($cedula)
    {
        $sql = "SELECT h.*, 
                    afp.nombre AS afp,
                    eps.nombre AS eps,
                    arl.nombre AS arl,
                    emp.nombre AS empresa,
                    pl.nombre AS planta,
                    e.nombre AS estado
                FROM hoja_vida h
                LEFT JOIN afp afp ON afp.id = h.id_afp
                LEFT JOIN eps eps ON eps.id = h.id_eps
                LEFT JOIN arl arl ON arl.id = h.id_arl
                LEFT JOIN empresa emp ON emp.id = h.id_empresa
                LEFT JOIN planta pl ON pl.id = h.id_planta
                LEFT JOIN estado e ON e.id = h.id_estado
                WHERE h.cedula = ?
                LIMIT 1";
        $stmt = $this->conn->prepare($sql);
        $stmt->bind_param("s", $cedula);
        $stmt->execute();
        $result = $stmt->get_result();
        return $result->fetch_assoc();
    }

    public function obtenerListas()
    {
        $listas = [];
        foreach (['afp', 'eps', 'arl', 'empresa', 'planta', 'estado'] as $tabla) {
            $res = $this->conn->query("SELECT id, nombre FROM $tabla ORDER BY nombre");
            $listas[$tabla] = $res->fetch_all(MYSQLI_ASSOC);
        }
        return $listas;
    }

    public function actualizar($datos)
    {
        $sql = "UPDATE hoja_vida SET 
                    nombre=?, fecha_nacimiento=?, edad=?, id_estado=?, id_afp=?, id_eps=?, id_arl=?, id_empresa=?, id_planta=?,
                    regional=?, centro_trabajo=?, tipo_contrato=?, fecha_inicio=?, cargo_inicial=?, cargo_reubicado=?, productividad=?, semanas_cotizacion=?
                WHERE id=?";
        $stmt = $this->conn->prepare($sql);
        $stmt->bind_param(
            "ssiiiiiiissssssiii",
            $datos['nombre'],
            $datos['fecha_nacimiento'],
            $datos['edad'],
            $datos['id_estado'],
            $datos['id_afp'],
            $datos['id_eps'],
            $datos['id_arl'],
            $datos['id_empresa'],
            $datos['id_planta'],
            $datos['regional'],
            $datos['centro_trabajo'],
            $datos['tipo_contrato'],
            $datos['fecha_inicio'],
            $datos['cargo_inicial'],
            $datos['cargo_reubicado'],
            $datos['productividad'],
            $datos['semanas_cotizacion'],
            $datos['id']
        );
        return $stmt->execute();
    }

    public function guardar($datos)
    {
        $sql = "INSERT INTO hoja_vida (  cedula, nombre, foto, fecha_nacimiento, edad,  id_afp, id_eps, id_arl, tipo_contrato,
        id_empresa, id_planta,  regional, centro_trabajo, cargo_inicial,  fecha_inicio, tipo_rehabilitacion,  cargo_reubicado, productividad,
        semanas_cotizacion, id_estado
    ) VALUES (  ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";

        $stmt = $this->conn->prepare($sql);

        $stmt->bind_param(

            "ssssiiiisiissssssdii",

            $datos['cedula'],            // s
            $datos['nombre'],            // s
            $datos['foto'],              // s
            $datos['fecha_nacimiento'],  // s
            $datos['edad'],              // i

            $datos['afp_id'],            // i
            $datos['eps_id'],            // i
            $datos['arl_id'],            // i
            $datos['tipo_contrato'],     // s

            $datos['empresa_id'],        // i
            $datos['planta_id'],         // i

            $datos['regional'],          // s
            $datos['centro_trabajo'],    // s
            $datos['cargo_inicial'],     // s

            $datos['fecha_inicio'],      // s
            $datos['tipo_rehabilitacion'], // s
            $datos['cargo_reubicado'],   // s

            $datos['productividad'],     // d (decimal)
            $datos['semanas_cotizacion'], // i
            $datos['estado_id']          // i
        );

        return $stmt->execute();
    }
}