<?php
/************************************************************************************************************
 * DEV: CONTRALORIA DEL ESTADO.
 * MODULO: Logistica
 * PROGRAMADORES.____________________________________________________________________________________________
 * | # | NOMBRE.              | CORREO.                                 | TELEFONO.         | CONTRALORIA
 * | 1 | Fernando Rosillo     | f.rosillo@contraloriamonagas.gob.ve     | 0414-8807980      | MONAGAS
 * | 2 |
 * |_________________________________________________________________________________________________________
 * **********************************************************************************************************/
class actividadModelo extends Modelo
{
    private $atIdUsuario;
    public function __construct()
    {
        parent::__construct();
        $this->atIdUsuario = Session::metObtener('idUsuario');
    }

    public function metMostrarActividad($idActividad){
        $mostrarActividad = $this->_db->query("
              SELECT
                po_b003_actividad.*
              FROM
                po_b003_actividad
              WHERE
                po_b003_actividad.pk_num_actividad='$idActividad'
        ");
        $mostrarActividad->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarActividad->fetch();
    }

    public function metListarDependencias(){
        $mostrarActividad = $this->_db->query("
              SELECT
                a004_dependencia.*
              FROM
                a004_dependencia
                INNER JOIN a019_seguridad_dependencia AS seguridad ON seguridad.fk_a004_num_dependencia = a004_dependencia.pk_num_dependencia
                      AND seguridad.fk_a018_num_seguridad_usuario = '".Session::metObtener('idUsuario')."' AND seguridad.fk_a015_num_seguridad_aplicacion = '22'
        ");
        $mostrarActividad->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarActividad->fetchAll();
    }

    public function metCrearActividad($datos)
    {
        $this->_db->beginTransaction();
        $registroActividad = $this->_db->prepare("
          INSERT INTO
            po_b003_actividad
          SET
            cod_actividad=:cod_actividad,
            fk_a004_num_dependencia=:fk_a004_num_dependencia,
            ind_descripcion=:ind_descripcion,
            fec_creacion=NOW(),
            fec_ultima_modificacion=NOW(),
            fk_a018_num_seguridad_usuario=$this->atIdUsuario
           ");

        $registroActividad->execute(array(
            'cod_actividad'=>$datos['codigo'],
            'fk_a004_num_dependencia'=>$datos['dependencia'],
            'ind_descripcion'=>$datos['descripcion'],
        ));

        $idRegistro= $this->_db->lastInsertId();
        $fallaTansaccion = $registroActividad->errorInfo();

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

    }

    public function metModificarActividad($idActividad,$datos)
    {
        $this->_db->beginTransaction();
        $modificarRegistro=$this->_db->prepare("
          UPDATE
              po_b003_actividad
          SET
              cod_actividad=:cod_actividad,
              fk_a004_num_dependencia=:fk_a004_num_dependencia,
              ind_descripcion=:ind_descripcion,
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW()
          WHERE
              pk_num_actividad='$idActividad'
            ");
        $modificarRegistro->execute(array(
            'cod_actividad'=>$datos['codigo'],
            'fk_a004_num_dependencia'=>$datos['dependencia'],
            'ind_descripcion'=>$datos['descripcion'],
        ));
        $error = $modificarRegistro->errorInfo();
        if(!empty($error[1]) && !empty($error[2])){
            $this->_db->rollBack();
            return $error;
        }else{
            $this->_db->commit();
            return $idActividad;
        }
    }

    public function metEliminarActividad($idActividad){
        $this->_db->beginTransaction();
        $eliminaridActividad=$this->_db->prepare("
            DELETE FROM
            po_b003_actividad
            WHERE
            pk_num_actividad=:pk_num_actividad
            ");
        $eliminaridActividad->execute(array(
            'pk_num_actividad'=>$idActividad
        ));

        $error = $eliminaridActividad->errorInfo();
        if(!empty($error[1]) && !empty($error[2])){
            $this->_db->rollBack();
            return $error;
        }else{
            $this->_db->commit();
            return $idActividad;
        }
    }

}

?>