<?php

/**
 * Subclass for performing query and update operations on the 'COMISIONADOS_OBJS' table.
 *
 * 
 *
 * @package lib.model
 */
class ComisionadosObjsPeer extends BaseComisionadosObjsPeer {

    /**
     * Retorna todos los objetos de gasto para un comisionado en una comision dada
     * @param unknown_type $nitocc
     * @param unknown_type $id_comision
     * @param unknown_type $vigencia
     * @return array objetos de gasto
     */
    public static function getAllObjetosGasto($nitocc, $id_comision, $vigencia) {
        
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->addAscendingOrderByColumn(ComisionadosObjsPeer::CODOBJ);
        //$c->add(ComisionadosObjsPeer::ESTADO,1);

        return ComisionadosObjsPeer::doSelectJoinObjetosGasto($c);
    }

    public static function getGastosViajeNoViajes($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        $c->addJoin(ComisionadosObjsPeer::CODOBJ, ObjetosGastoPeer::CODOBJ);
        $c->addAscendingOrderByColumn(ObjetosGastoPeer::DESOBJ);
        return ComisionadosObjsPeer::doSelect($c);
    }

    public static function getGastosViajeNoViaticos($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        //$c->add(ComisionadosObjsPeer::CODOBJ, '07', Criteria::NOT_EQUAL);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        $c->addJoin(ComisionadosObjsPeer::CODOBJ, ObjetosGastoPeer::CODIGO);
        $c->addAscendingOrderByColumn(ObjetosGastoPeer::DESCRIPCION);
        return ComisionadosObjsPeer::doSelect($c);
    }

    public static function getSumaGastosViajeNoViajes($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;
        //echo "codigo_obj_viatico_pla " + $codigo_obj_viatico_pla; die();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;

        $suma = 0;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        //$c->add(ComisionadosObjsPeer::CODOBJ,'06',Criteria::NOT_EQUAL);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->addAnd(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con, Criteria::NOT_EQUAL);//cambio de 07 por codigo_obj_viatico - 20200420, se agrega el addAnd para filtro doble: 20200528
        //Al filtrar con Criteria::NOT_EQUAL no es posible mas de un valor, por lo tanto se toma todos los valores y se restan viaticos y taxis totales - 20200527::LAVILA
        $c->add(ComisionadosObjsPeer::ESTADO, 1);

        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
        //    $suma -= $obj->getViaticos();
        //    $suma -= $obj->getTaxis();
        endforeach;
        //echo "suma " + $suma; die();
        return $suma;
    }

    public static function getSumaGastosViajeNoViaticos($nitocc, $id_comision, $vigencia) {
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        $suma = 0;
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
            $suma -= $obj->getViaticos();
            $suma -= $obj->getTaxis();

        endforeach;

        return $suma;
    }

    public static function getSumaViaticos($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;


        $suma = 0;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        //$c->add(ComisionadosObjsPeer::CODOBJ, '07');
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
        endforeach;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        //$c->add(ComisionadosObjsPeer::CODOBJ, '07');
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
        endforeach;

        return $suma;
    }

    public static function getSumaViaticosReal($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;


        $suma = 0;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getViaticos();
        endforeach;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getViaticos();
        endforeach;

        return $suma;
    }

    public static function getSumaViaticosMenosTaxis($nitocc, $id_comision, $vigencia) {

        /**
         * Codigo de objeto de gasto segun vigencia y rubro - 20200113
          //"1- Funcionario 2- Contratistas" - 20200421
         */
        $con = Propel::getConnection();

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,1) = 1
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_pla = $codigo;

        $sql = "SELECT
rub.id_clase_presup,
ele.id_elementos_gasto,
rub.id_rubro,
obj.*
FROM objetos_gasto obj

left join pr_rubro_presup_v rub
on replace(replace(obj.cod_rubro,'-',''),' ','') = replace(replace(rub.rubro,'-',''),' ','')

left join pr_elementos_gasto ele
on ele.id_objeto_gasto = obj.id
and ele.id_rubro = rub.id_rubro

where
obj.ano_fiscal = " . $vigencia . "
and replace(replace(cod_rubro,'-',''),' ','') in (SELECT replace(replace(rubro,'-',''),' ','') FROM pr_rubro_presup_v)
and nvl(obj.id_tipo_comisionado,2) = 2
and obj.viatico = 1
and ele.viatico = 1
and rub.aplica_comision = 1 ";

        $sentencia = $con->prepareStatement($sql);
        $datos_comis = $sentencia->executeQuery();
        $codigo = '07';
        while ($datos_comis->next()) {
            $codigo = $datos_comis->getString('CODIGO');
            $id_clase_presup = $datos_comis->getString('ID_CLASE_PRESUP');
            $id_rubro = $datos_comis->getString('ID_RUBRO');
            $id_elementos_gasto = $datos_comis->getString('ID_ELEMENTOS_GASTO');
            $id_objeto_gasto = $datos_comis->getString('ID');
        }
        //echo $codigo;
        $codigo_obj_viatico_con = $codigo;

        $suma = 0;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_pla);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
            $suma -= $obj->getViaticos();
            $suma -= $obj->getTaxis();
        endforeach;

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codigo_obj_viatico_con);//cambio de 07 por codigo_obj_viatico - 20200420
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
            $suma -= $obj->getViaticos();
            $suma -= $obj->getTaxis();
        endforeach;

        return $suma;
    }


    //Este suma los gatos, menos viaticos y taxis - 20200421
    public static function getSumaGastosMenosTaxis($nitocc, $id_comision, $vigencia) {

        $suma = 0;

        //Se elimina que solo sean del registro de viaticos, sino que tome todos los gastos - 20200421
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
            $suma -= $obj->getViaticos();
            $suma -= $obj->getTaxis();
        endforeach;

        return $suma;
    }


    //Este suma los gatos todos objetos por nitocc - 20200421
    public static function getSumaGastosNitocc($nitocc, $id_comision, $vigencia) {

        $suma = 0;

        //Se elimina que solo sean del registro de viaticos, sino que tome todos los gastos - 20200421
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
        endforeach;

        return $suma;
    }

    public static function getSumaGastos($id_comision, $vigencia) {

        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        $suma = 0;
        foreach (ComisionadosObjsPeer::doSelect($c) as $obj):
            $suma += $obj->getValor();
        endforeach;

        return $suma;
    }

    public static function getSumaObjetosComisionado($id_comision, $nitocc) {
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::ESTADO, 1);
        $objs = ComisionadosObjsPeer::doSelect($c);
        $suma = 0;
        foreach ($objs as $obj):
            $suma += $obj->getValor();
        endforeach;
        return $suma;
    }

    /**
     * Busca un objeto de gasto. Por defecto codigo 06
     * @param $id_comision
     * @param  $nitocc
     * @param  $vigencia
     * @param  $codobj
     * @return ComisionadoObj object
     */
    public static function getObjeto($id_comision, $nitocc, $vigencia, $codobj = '07') {
        $c = new Criteria();
        $c->add(ComisionadosObjsPeer::NITOCC, $nitocc);
        $c->add(ComisionadosObjsPeer::ID_COMISION, $id_comision);
        $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
        $c->add(ComisionadosObjsPeer::CODOBJ, $codobj);
        return ComisionadosObjsPeer::doSelectOne($c);
    }

}
