<?php


class tipoObjetoModelo extends Modelo
{
    private $atIdEmpleado;

    public function __construct()
    {
        parent::__construct();
        $this->atIdEmpleado = Session::metObtener('idEmpleado');
    }

    public function metListarTipoObjeto()
    {
        $registro = $this->_db->query(
            "SELECT 
                        * 
                    FROM 
                        pa_c008_tipo_objeto 
                    order by pk_num_tipo_objeto desc"
        );
        $registro->setFetchMode(PDO::FETCH_ASSOC);
        return $registro->fetchAll();
    }

    public function metGetTipoObjeto($pk_num_tipo_objeto)
    {
        $registro = $this->_db->query(
            "
            select 
                pa_c008_tipo_objeto.*,
                concat(persona_modifica.ind_nombre1,' ',persona_modifica.ind_apellido1) as persona_modifica
                
            from pa_c008_tipo_objeto
                left join rh_b001_empleado on pa_c008_tipo_objeto.fk_rhb001_num_empleado = rh_b001_empleado.pk_num_empleado
                left join a003_persona as persona_modifica on rh_b001_empleado.fk_a003_num_persona = persona_modifica.pk_num_persona
            where pk_num_tipo_objeto = " . $pk_num_tipo_objeto . " 
            "
        );
        $registro->setFetchMode(PDO::FETCH_ASSOC);
        $registro = $registro->fetchAll();
        $registro = $registro[0];
        return $registro;
    }

    public function metInsertTipoObjeto($descripcion){
        $this->_db->beginTransaction();


        $insertRecorrido = $this->_db->prepare("
            INSERT INTO
                pa_c008_tipo_objeto
            set 
                descripcion=:descripcion,
                fk_rhb001_num_empleado=:fk_rhb001_num_empleado
                
            ");

        $insertRecorrido->execute(array(
            'fk_rhb001_num_empleado' => $this->atIdEmpleado,
            'descripcion' => $descripcion
        ));
        $idAgregado = $this->_db->lastInsertId();
        $fallaTansaccion = $insertRecorrido->errorInfo();


        if (!empty($fallaTansaccion[1]) && !empty($fallaTansaccion[2])) {
            $this->_db->rollBack();
        } else {
            $this->_db->commit();
        }


        return $idAgregado;
    }

    public function metUpdateTipoObjeto($id,$descripcion){
        $this->_db->beginTransaction();


        $updateRecorrido = $this->_db->prepare("
            UPDATE
                pa_c008_tipo_objeto
            set 
                fk_rhb001_num_empleado=:fk_rhb001_num_empleado,
                descripcion=:descripcion,
                fecha_modificacion=now()
            where pa_c008_tipo_objeto.pk_num_tipo_objeto=".$id
        );

        $updateRecorrido->execute(array(
            'fk_rhb001_num_empleado' => $this->atIdEmpleado,
            'descripcion' => $descripcion
        ));
        $fallaTansaccion = $updateRecorrido->errorInfo();


        if (!empty($fallaTansaccion[1]) && !empty($fallaTansaccion[2])) {
            $this->_db->rollBack();
            return 0;
        } else {
            $this->_db->commit();
            return 1;
        }

    }



}


