<?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 planOperativoModelo extends Modelo
{
    private $atIdUsuario;
    private $atIdEmpleado;
    public function __construct()
    {
        parent::__construct();
        $this->atIdUsuario = Session::metObtener('idUsuario');
        $this->atIdEmpleado = Session::metObtener('idEmpleado');
    }

    public function metContar($tabla,$anio,$campo,$extra=false)
    {
        $generarOrdenPost = $this->_db->query("
            SELECT
              count(*) AS cantidad
            FROM
            $tabla
            WHERE
            $campo='$anio' 
            $extra
              ");
        //var_dump($generarOrdenPost);
        $generarOrdenPost->setFetchMode(PDO::FETCH_ASSOC);
        return $generarOrdenPost->fetch();
    }

    public function metBuscarDependencia($id)
    {
        $generarOrdenPost = $this->_db->query("
            SELECT
              *
            FROM
            a004_dependencia
            WHERE
            pk_num_dependencia='$id'
              ");
        $generarOrdenPost->setFetchMode(PDO::FETCH_ASSOC);
        return $generarOrdenPost->fetch();
    }

    public function metMostrarPlan($idPlan){
        $mostrarPlan = $this->_db->query("
              SELECT
                po_b001_poa.*,
                  case po_b001_poa.ind_estado
                      when 'PR' then 'Preparado'
                      when 'RV' then 'Revisado'
                      when 'AP' then 'Aprobado'
                      when 'AN' then 'Anulado'
                      when 'RP' then 'Reprogramado'
                    end as estatus,
                    a004_dependencia.ind_dependencia,
                    po_b005_plan_estrategico.ind_periodo
              FROM
                po_b001_poa 
                INNER JOIN a004_dependencia ON po_b001_poa.fk_a004_num_dependencia = a004_dependencia.pk_num_dependencia
                INNER JOIN po_b005_plan_estrategico ON po_b001_poa.fk_pob005_num_plan_estrategico = po_b005_plan_estrategico.pk_num_plan_estrategico
              WHERE
                pk_num_poa='$idPlan' 
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetch();
    }

    public function metMostrarDetalles($id){
        $mostrarPlan = $this->_db->query("
              SELECT
                *,
                po_b003_actividad.pk_num_actividad,
                po_b003_actividad.ind_descripcion AS actividad,
                po_b004_productos.pk_num_productos,
                (
                po_b002_poa_detalle.ind_trimestre_planificado1 +
                po_b002_poa_detalle.ind_trimestre_planificado2 +
                po_b002_poa_detalle.ind_trimestre_planificado3 +
                po_b002_poa_detalle.ind_trimestre_planificado4
                ) as totalPlanificado,
                (
                po_b002_poa_detalle.num_mes1 +
                po_b002_poa_detalle.num_mes2 +
                po_b002_poa_detalle.num_mes3 +
                po_b002_poa_detalle.num_mes4 +
                po_b002_poa_detalle.num_mes5 +
                po_b002_poa_detalle.num_mes6 +
                po_b002_poa_detalle.num_mes7 +
                po_b002_poa_detalle.num_mes8 +
                po_b002_poa_detalle.num_mes9 +
                po_b002_poa_detalle.num_mes10 +
                po_b002_poa_detalle.num_mes11 +
                po_b002_poa_detalle.num_mes12 
                ) as totalRealizado,
                po_b002_poa_detalle.ind_descripcion AS producto,
                po_b004_productos.cod_producto,
                po_b002_poa_detalle.ind_objetivo_general,
                po_b002_poa_detalle.num_horas_hombre,
                po_b002_poa_detalle.num_cantidad_hombre
              FROM
                po_b002_poa_detalle
                INNER JOIN po_b003_actividad ON po_b002_poa_detalle.fk_pob003_num_actividad = po_b003_actividad.pk_num_actividad
                INNER JOIN po_b004_productos ON po_b002_poa_detalle.fk_pob004_num_producto = po_b004_productos.pk_num_productos
                INNER JOIN po_b007_estrategico_operativo ON po_b002_poa_detalle.pk_num_poa_detalle = po_b007_estrategico_operativo.fk_pob002_num_poa_detalle
              WHERE
                pk_num_estrategico_operativo='$id'
                ORDER BY po_b003_actividad.pk_num_actividad ASC, po_b004_productos.pk_num_productos ASC 
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

    public function metMostrarDetalles2($id,$where = false,$where2 = false){

        if($where)
            $where = " AND po_b002_poa_detalle.fk_pob003_num_actividad = '$where'";
        if($where2)
            $where2 = " AND po_b002_poa_detalle.fk_pob006_num_plan_estrategico_detalle = '$where2'";
        $mostrarPlan = $this->_db->query("
              SELECT
                po_b002_poa_detalle.*,
                po_b004_productos.cod_producto,
                po_b004_productos.fk_a006_num_miscelaneos_tipo_producto as tipo_producto,
                po_b004_productos.ind_observacion_general,
                (
                po_b002_poa_detalle.num_mes1 +
                po_b002_poa_detalle.num_mes2 +
                po_b002_poa_detalle.num_mes3 +
                po_b002_poa_detalle.num_mes4 +
                po_b002_poa_detalle.num_mes5 +
                po_b002_poa_detalle.num_mes6 +
                po_b002_poa_detalle.num_mes7 +
                po_b002_poa_detalle.num_mes8 +
                po_b002_poa_detalle.num_mes9 +
                po_b002_poa_detalle.num_mes10 +
                po_b002_poa_detalle.num_mes11 +
                po_b002_poa_detalle.num_mes12 
                ) as totalRealizado
              FROM
                po_b002_poa_detalle
                INNER JOIN po_b004_productos ON po_b002_poa_detalle.fk_pob004_num_producto = po_b004_productos.pk_num_productos
              WHERE
                fk_pob001_num_poa='$id'
                 $where $where2
              ORDER BY po_b004_productos.cod_producto ASC
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

    public function metMostrarDetalles3($id,$idDet){
        $mostrarPlan = $this->_db->query("
              SELECT
                po_b002_poa_detalle.*,
                po_b003_actividad.ind_descripcion AS actividad,
                po_b003_actividad.cod_actividad,
                CASE
                	WHEN LENGTH(SUBSTRING_INDEX(po_b003_actividad.cod_actividad, '.', -1)) > 1 THEN po_b003_actividad.cod_actividad
                    ELSE CONCAT(SUBSTRING_INDEX(po_b003_actividad.cod_actividad, '.', 2),'.0',SUBSTRING_INDEX(po_b003_actividad.cod_actividad, '.', -1))
                END as cod_orden
              FROM
                po_b002_poa_detalle
                INNER JOIN po_b003_actividad ON po_b002_poa_detalle.fk_pob003_num_actividad = po_b003_actividad.pk_num_actividad
                INNER JOIN po_b007_estrategico_operativo ON po_b007_estrategico_operativo.fk_pob002_num_poa_detalle = po_b002_poa_detalle.pk_num_poa_detalle
              WHERE
                fk_pob001_num_poa='$id' AND po_b007_estrategico_operativo.fk_pob006_num_plan_estrategico_detalle = '$idDet'
                GROUP BY fk_pob003_num_actividad
                ORDER BY cod_orden ASC
        ");
        /*
                        INNER JOIN a019_seguridad_dependencia AS seguridad ON seguridad.fk_a004_num_dependencia = po_b003_actividad.fk_a004_num_dependencia
                      AND seguridad.fk_a018_num_seguridad_usuario = '".Session::metObtener('idUsuario')."' AND seguridad.fk_a015_num_seguridad_aplicacion = '22'
        */
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

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

    public function metListarPlanEst(){
        $mostrarPlan = $this->_db->query("
              SELECT
                *
              FROM
                po_b005_plan_estrategico
                WHERE num_estatus = 1
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

    public function metBuscarProducto($id){
        $mostrarPlan = $this->_db->query("
              SELECT
                  po_b004_productos.*,
                  po_b003_actividad.ind_descripcion AS actividad,
                  po_b003_actividad.pk_num_actividad AS idAct
                FROM po_b004_productos
                INNER JOIN po_b003_actividad ON po_b004_productos.fk_pob003_num_actividad = po_b003_actividad.pk_num_actividad
                INNER JOIN a019_seguridad_dependencia AS seguridad ON seguridad.fk_a004_num_dependencia = po_b003_actividad.fk_a004_num_dependencia
                      AND seguridad.fk_a018_num_seguridad_usuario = '".Session::metObtener('idUsuario')."' AND seguridad.fk_a015_num_seguridad_aplicacion = '22'
                WHERE po_b004_productos.pk_num_productos = '$id'
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetch();
    }

    public function metBuscarPuntos($id){
        $mostrarPlan = $this->_db->query("
            SELECT
              po_b006_plan_estrategico_detalle.*
            FROM
              po_b006_plan_estrategico_detalle
            WHERE
              po_b006_plan_estrategico_detalle.pk_num_plan_estrategico_detalle = '$id'
            UNION
              (
              SELECT
                po_b006_plan_estrategico_detalle.*
              FROM
                po_b006_plan_estrategico_detalle
              WHERE
                po_b006_plan_estrategico_detalle.pk_num_plan_estrategico_detalle < '$id' AND ind_tipo = 'General'
              ORDER BY
                pk_num_plan_estrategico_detalle DESC
              LIMIT 0,
              1
            )
        ");
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

    public function metMostrarPlanEstDet($idPlan,$group = false){

        if($group)
            $group = ' GROUP BY po_b006_plan_estrategico_detalle.pk_num_plan_estrategico_detalle ';
        $mostrarPlan = $this->_db->query("
            SELECT
              po_b006_plan_estrategico_detalle.*,
              po_b007_estrategico_operativo.pk_num_estrategico_operativo
            FROM
              po_b006_plan_estrategico_detalle
            INNER JOIN
              po_b007_estrategico_operativo ON po_b006_plan_estrategico_detalle.pk_num_plan_estrategico_detalle = po_b007_estrategico_operativo.fk_pob006_num_plan_estrategico_detalle
            INNER JOIN
              po_b002_poa_detalle ON po_b007_estrategico_operativo.fk_pob002_num_poa_detalle = po_b002_poa_detalle.pk_num_poa_detalle
            WHERE
              po_b002_poa_detalle.fk_pob001_num_poa = '$idPlan'
              $group
              ORDER BY po_b006_plan_estrategico_detalle.codigo_objetivo ASC
        ");
        //var_dump($mostrarPlan);
        $mostrarPlan->setFetchMode(PDO::FETCH_ASSOC);
        return $mostrarPlan->fetchAll();
    }

    public function metCrearPlan($datos)
    {
        $this->_db->beginTransaction();
        $registroPlan = $this->_db->prepare("
          INSERT INTO
            po_b001_poa
          SET
              cod_poa=:cod_poa,
              fec_anio=:fec_anio,
              fk_pob005_num_plan_estrategico=:fk_pob005_num_plan_estrategico,
              fec_inicio=:fec_inicio,
              fec_fin=:fec_fin,
              ind_estado=:ind_estado,
              num_monto_presupuesto=:num_monto_presupuesto,
              fk_a004_num_dependencia=:fk_a004_num_dependencia,
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW(),
              fk_rhb001_num_empleado_prepara='$this->atIdEmpleado',
              fec_preparado=NOW()
           ");
        /*
              txt_descripcion=:txt_descripcion,
              txt_objetivo_especifico=:txt_objetivo_especifico,
              txt_objetivo_general=:txt_objetivo_general,
              txt_objetivo_estrategico=:txt_objetivo_estrategico,*/

        $registroPlan->execute(array(
            'cod_poa'=>$datos['codigo'],
            'fec_anio'=>date('Y'),
            'fk_pob005_num_plan_estrategico'=>$datos['periodo'],
            'fec_inicio'=>$datos['fecInicio'],
            'fec_fin'=>$datos['fecFin'],
            'ind_estado'=>'PR',
            /*
            'txt_descripcion'=>$datos['descripcion'],
            'txt_objetivo_especifico'=>$datos['objetivoEspecifico'],
            'txt_objetivo_general'=>$datos['objetivoGeneral'],
            'txt_objetivo_estrategico'=>$datos['objetivoEstrategico'],
            */
            'num_monto_presupuesto'=>$datos['num_monto_presupuesto'],
            'fk_a004_num_dependencia'=>$datos['dependencia'],
        ));

        $idRegistro= $this->_db->lastInsertId();

        $registroPlan2 = $this->_db->prepare("
          INSERT INTO
            po_b002_poa_detalle
          SET
              ind_trimestre_planificado1=:ind_trimestre_planificado1,
              ind_trimestre_planificado2=:ind_trimestre_planificado2,
              ind_trimestre_planificado3=:ind_trimestre_planificado3,
              ind_trimestre_planificado4=:ind_trimestre_planificado4,
              ind_descripcion=:ind_descripcion,
              num_cantidad_producto=:num_cantidad_producto,
              num_horas_hombre=:num_horas_hombre,
              num_cantidad_hombre=:num_cantidad_hombre,
              ind_objetivo_general=:ind_objetivo_general,
              num_monto_presupuesto=:num_monto_presupuesto,
              fk_pob006_num_plan_estrategico_detalle=:fk_pob006_num_plan_estrategico_detalle,
              fk_pob004_num_producto=:fk_pob004_num_producto,
              fk_pob003_num_actividad=:fk_pob003_num_actividad,
              fk_pob001_num_poa=:fk_pob001_num_poa,
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW()
           ");

        $registroPlan3 = $this->_db->prepare("
          INSERT INTO
            po_b007_estrategico_operativo
          SET
              fk_pob006_num_plan_estrategico_detalle=:fk_pob006_num_plan_estrategico_detalle,
              ind_objetivo=:ind_objetivo,
              fk_pob002_num_poa_detalle=:fk_pob002_num_poa_detalle
           ");

        foreach ($datos['especifico'] as $key1=>$value1) {
            foreach ($datos['descripcionP'][$key1] as $key=>$value) {
                $registroPlan2->execute(array(
                    'ind_trimestre_planificado1'=>$datos['trimestre1'][$key1][$key],
                    'ind_trimestre_planificado2'=>$datos['trimestre2'][$key1][$key],
                    'ind_trimestre_planificado3'=>$datos['trimestre3'][$key1][$key],
                    'ind_trimestre_planificado4'=>$datos['trimestre4'][$key1][$key],
                    'ind_descripcion'=>$value,
                    'num_cantidad_producto'=>$datos['cantidad'][$key1][$key],
                    'num_horas_hombre'=>$datos['horasH'][$key1][$key],
                    'num_cantidad_hombre'=>$datos['cantH'][$key1][$key],
                    'ind_objetivo_general'=>$datos['observacionP'][$key1][$key],
                    'num_monto_presupuesto'=>$datos['montoPresP'][$key1][$key],
                    'fk_pob006_num_plan_estrategico_detalle'=>$key1,
                    'fk_pob004_num_producto'=>$key,
                    'fk_pob003_num_actividad'=>$datos['actividad'][$key1][$key],
                    'fk_pob001_num_poa'=>$idRegistro,
                ));

                $idRegistro2= $this->_db->lastInsertId();

                $det = $this->metBuscarPuntos($datos['especifico'][$key1][$key]);

                $registroPlan3->execute(array(
                    'fk_pob006_num_plan_estrategico_detalle'=>$datos['especifico'][$key1][$key],
                    'ind_objetivo'=>$det[1]['ind_objetivo'],
                    'fk_pob002_num_poa_detalle'=>$idRegistro2,
                ));
            }
        }

        $fallaTansaccion = $registroPlan->errorInfo();
        $fallaTansaccion2 = $registroPlan2->errorInfo();

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

    }

    public function metModificarPlan($datos)
    {
        $this->_db->beginTransaction();
        $modificarRegistro=$this->_db->prepare("
              UPDATE
                po_b001_poa
              SET
                fk_pob005_num_plan_estrategico=:fk_pob005_num_plan_estrategico,
                fec_inicio=:fec_inicio,
                fec_fin=:fec_fin,
                num_monto_presupuesto=:num_monto_presupuesto,
                fk_a004_num_dependencia=:fk_a004_num_dependencia,
                fk_a018_num_seguridad_usuario='$this->atIdUsuario',
                fec_ultima_modificacion=NOW()
              WHERE
                pk_num_poa=:pk_num_poa
            ");
        $modificarRegistro->execute(array(
            'fk_pob005_num_plan_estrategico'=>$datos['periodo'],
            'fec_inicio'=>$datos['fecInicio'],
            'fec_fin'=>$datos['fecFin'],
            'num_monto_presupuesto'=>$datos['num_monto_presupuesto'],
            'fk_a004_num_dependencia'=>$datos['dependencia'],
            'pk_num_poa'=>$datos['idPlan'],
        ));

        $detalles = $this->metMostrarDetalles2($datos['idPlan']);
        foreach ($detalles as $detalle) {
            $this->_db->query("DELETE FROM po_b007_estrategico_operativo WHERE fk_pob002_num_poa_detalle='".$detalle['pk_num_poa_detalle']."'");
            $this->_db->query("ALTER TABLE po_b007_estrategico_operativo AUTO_INCREMENT=1");
        }

        $this->_db->query("DELETE FROM po_b002_poa_detalle WHERE fk_pob001_num_poa='".$datos['idPlan']."'");
        $this->_db->query("ALTER TABLE po_b002_poa_detalle AUTO_INCREMENT=1");

        $registroPlan2 = $this->_db->prepare("
          INSERT INTO
            po_b002_poa_detalle
          SET
              ind_trimestre_planificado1=:ind_trimestre_planificado1,
              ind_trimestre_planificado2=:ind_trimestre_planificado2,
              ind_trimestre_planificado3=:ind_trimestre_planificado3,
              ind_trimestre_planificado4=:ind_trimestre_planificado4,
              ind_descripcion=:ind_descripcion,
              num_cantidad_producto=:num_cantidad_producto,
              num_horas_hombre=:num_horas_hombre,
              num_cantidad_hombre=:num_cantidad_hombre,
              ind_objetivo_general=:ind_objetivo_general,
              num_monto_presupuesto=:num_monto_presupuesto,
              fk_pob006_num_plan_estrategico_detalle=:fk_pob006_num_plan_estrategico_detalle,
              fk_pob004_num_producto=:fk_pob004_num_producto,
              fk_pob003_num_actividad=:fk_pob003_num_actividad,
              fk_pob001_num_poa=:fk_pob001_num_poa,
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW()
           ");

        $registroPlan3 = $this->_db->prepare("
          INSERT INTO
            po_b007_estrategico_operativo
          SET
              fk_pob006_num_plan_estrategico_detalle=:fk_pob006_num_plan_estrategico_detalle,
              ind_objetivo=:ind_objetivo,
              fk_pob002_num_poa_detalle=:fk_pob002_num_poa_detalle
           ");

        foreach ($datos['especifico'] as $key1=>$value1) {
            foreach ($datos['descripcionP'][$key1] as $key=>$value) {

                $registroPlan2->execute(array(
                    'ind_trimestre_planificado1'=>$datos['trimestre1'][$key1][$key],
                    'ind_trimestre_planificado2'=>$datos['trimestre2'][$key1][$key],
                    'ind_trimestre_planificado3'=>$datos['trimestre3'][$key1][$key],
                    'ind_trimestre_planificado4'=>$datos['trimestre4'][$key1][$key],
                    'ind_descripcion'=>$value,
                    'num_cantidad_producto'=>$datos['cantidad'][$key1][$key],
                    'num_horas_hombre'=>$datos['horasH'][$key1][$key],
                    'num_cantidad_hombre'=>$datos['cantH'][$key1][$key],
                    'ind_objetivo_general'=>$datos['observacionP'][$key1][$key],
                    'num_monto_presupuesto'=>$datos['montoPresP'][$key1][$key],
                    'fk_pob001_num_poa'=>$datos['idPlan'],
                    'fk_pob006_num_plan_estrategico_detalle'=>$key1,
                    'fk_pob004_num_producto'=>$key,
                    'fk_pob003_num_actividad'=>$datos['actividad'][$key1][$key],
                ));

                $idRegistro2= $this->_db->lastInsertId();

                $det = $this->metBuscarPuntos($datos['especifico'][$key1][$key]);

                $registroPlan3->execute(array(
                    'fk_pob006_num_plan_estrategico_detalle'=>$datos['especifico'][$key1][$key],
                    'ind_objetivo'=>$det[1]['ind_objetivo'],
                    'fk_pob002_num_poa_detalle'=>$idRegistro2,
                ));

            }
        }


        $error = $modificarRegistro->errorInfo();
        $error2 = $registroPlan2->errorInfo();
        if(!empty($error[1]) && !empty($error[2])){
            $this->_db->rollBack();
            return $error;
        }elseif(!empty($error2[1]) && !empty($error2[2])){
            $this->_db->rollBack();
            return $error2;
        }else{
            $this->_db->commit();
            return $datos['idPlan'];
        }
    }

    public function metEjecutarDetalle($datos)
    {
        $this->_db->beginTransaction();

        $registroPlan2 = $this->_db->prepare("
          UPDATE
            po_b002_poa_detalle
          SET
              num_mes1=:num_mes1,
              num_mes2=:num_mes2,
              num_mes3=:num_mes3,
              num_mes4=:num_mes4,
              num_mes5=:num_mes5,
              num_mes6=:num_mes6,
              num_mes7=:num_mes7,
              num_mes8=:num_mes8,
              num_mes9=:num_mes9,
              num_mes10=:num_mes10,
              num_mes11=:num_mes11,
              num_mes12=:num_mes12,
              ind_trimestre_observacion1=:ind_trimestre_observacion1,
              ind_trimestre_observacion2=:ind_trimestre_observacion2,
              ind_trimestre_observacion3=:ind_trimestre_observacion3,
              ind_trimestre_observacion4=:ind_trimestre_observacion4,
              ind_trimestre_evaluacion1=:ind_trimestre_evaluacion1,
              ind_trimestre_evaluacion2=:ind_trimestre_evaluacion2,
              ind_trimestre_evaluacion3=:ind_trimestre_evaluacion3,
              ind_trimestre_evaluacion4=:ind_trimestre_evaluacion4,
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW()
              WHERE pk_num_poa_detalle=:pk_num_poa_detalle
           ");

        $registroPlan2->execute(array(
            'num_mes1'=>$datos['mes1'],
            'num_mes2'=>$datos['mes2'],
            'num_mes3'=>$datos['mes3'],
            'num_mes4'=>$datos['mes4'],
            'num_mes5'=>$datos['mes5'],
            'num_mes6'=>$datos['mes6'],
            'num_mes7'=>$datos['mes7'],
            'num_mes8'=>$datos['mes8'],
            'num_mes9'=>$datos['mes9'],
            'num_mes10'=>$datos['mes10'],
            'num_mes11'=>$datos['mes11'],
            'num_mes12'=>$datos['mes12'],
            'ind_trimestre_observacion1'=>$datos['obs1'],
            'ind_trimestre_observacion2'=>$datos['obs2'],
            'ind_trimestre_observacion3'=>$datos['obs3'],
            'ind_trimestre_observacion4'=>$datos['obs4'],
            'ind_trimestre_evaluacion1'=>$datos['ev1'],
            'ind_trimestre_evaluacion2'=>$datos['ev2'],
            'ind_trimestre_evaluacion3'=>$datos['ev3'],
            'ind_trimestre_evaluacion4'=>$datos['ev4'],
            'pk_num_poa_detalle'=>$datos['idDet'],
        ));


        $error2 = $registroPlan2->errorInfo();
        if(!empty($error2[1]) && !empty($error2[2])){
            $this->_db->rollBack();
            return $error2;
        }else{
            $this->_db->commit();
            return $datos['idDet'];
        }
    }

    public function metActualizarPlan($idPlan,$opcion){
        $this->_db->beginTransaction();
        $set = '';
        if($opcion=='RV')
            $set = "
                  fec_revisado=NOW(),
                  fk_rhb001_num_empleado_revisa='$this->atIdEmpleado', ";
        if($opcion=='AP')
            $set = "
                  fec_aprobado=NOW(),
                  fk_rhb001_num_empleado_aprueba='$this->atIdEmpleado', ";
        if($opcion=='CE')
            $set = "
                  fec_cerrado=NOW(),
                  fk_rhb001_num_empleado_cierra='$this->atIdEmpleado', ";
        if($opcion=='AN')
            $set = " ";

        $actualizar=$this->_db->prepare("
            UPDATE
              po_b001_poa
            SET
              $set
              ind_estado='$opcion',
              fk_a018_num_seguridad_usuario='$this->atIdUsuario',
              fec_ultima_modificacion=NOW()
            WHERE
            pk_num_poa=:pk_num_poa
            ");
        $actualizar->execute(array(
            'pk_num_poa'=>$idPlan
        ));

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

}

?>