<?php

abstract class BaseComisionesPeer {

    const DATABASE_NAME = 'propel';
    const TABLE_NAME = 'COMISIONES';
    const CLASS_DEFAULT = 'lib.model.Comisiones';
    const NUM_COLUMNS = 29;//2020 Indica el numero total de oclumnas de la tabla
    const NUM_LAZY_LOAD_COLUMNS = 0;
    const ID = 'COMISIONES.ID';
    const CODARE = 'COMISIONES.CODARE';
    const TIPCOMI = 'COMISIONES.TIPCOMI';
    const CODPRO = 'COMISIONES.CODPRO';
    const FECHA = 'COMISIONES.FECHA';
    const OBJETIVO = 'COMISIONES.OBJETIVO';
    const ACTIVIDAD = 'COMISIONES.ACTIVIDAD';
    const OBSERVA = 'COMISIONES.OBSERVA';
    const CREATED_AT = 'COMISIONES.CREATED_AT';
    const UPDATE_AT = 'COMISIONES.UPDATE_AT';
    const USERNAME = 'COMISIONES.USERNAME';
    const ESTADO = 'COMISIONES.ESTADO';
    const ACTIVO = 'COMISIONES.ACTIVO';
    const VIGENCIA = 'COMISIONES.VIGENCIA';
    const JUSTIFICACION = 'COMISIONES.JUSTIFICACION';
    const INTERRUPCION = 'COMISIONES.INTERRUPCION';
    const ID_ORIGINAL = 'COMISIONES.ID_ORIGINAL';
    const DESTINOS_ADD = 'COMISIONES.DESTINOS_ADD';
    const EXTERIOR = 'COMISIONES.EXTERIOR';
    const TRM = 'COMISIONES.TRM';
    const APLICA_PORCENTAJE = 'COMISIONES.APLICA_PORCENTAJE';
    const TIPO_EXTERIOR = 'COMISIONES.TIPO_EXTERIOR';
    const CDP = 'COMISIONES.CDP';
    const RUBRO = 'COMISIONES.ID_RUBRO';
    const ID_TRANSPORTE = 'COMISIONES.ID_TRANSPORTE';
    const PASAJE_AEREO = 'COMISIONES.PASAJE_AEREO';
    const ID_FIRMA = 'COMISIONES.ID_FIRMA';
    const TIPO_GASTO = 'COMISIONES.TIPO_GASTO';
    const RUBRO_EXTRA = 'COMISIONES.ID_RUBRO_EXTRA';

    private static $phpNameMap = null;
    private static $fieldNames = array(
        BasePeer::TYPE_PHPNAME => array('Id', 'Codare', 'Tipcomi', 'Codpro', 'Fecha', 'Objetivo', 'Actividad', 'Observa', 'CreatedAt', 'UpdateAt', 'Username', 'Estado', 'Activo', 'Vigencia', 'Justificacion', 'Interrupcion', 'IdOriginal', 'DestinosAdd', 'Exterior', 'Trm', 'AplicaPorcentaje', 'TipoExterior','Cdp','IdRubro','IdTransporte',
            'PasajeAereo','IdFirma','TipoGasto','IdRubroExtra',),
        BasePeer::TYPE_COLNAME => array(ComisionesPeer::ID, ComisionesPeer::CODARE, ComisionesPeer::TIPCOMI, ComisionesPeer::CODPRO, ComisionesPeer::FECHA, ComisionesPeer::OBJETIVO, ComisionesPeer::ACTIVIDAD, ComisionesPeer::OBSERVA, ComisionesPeer::CREATED_AT, ComisionesPeer::UPDATE_AT, ComisionesPeer::USERNAME, ComisionesPeer::ESTADO, ComisionesPeer::ACTIVO, ComisionesPeer::VIGENCIA, ComisionesPeer::JUSTIFICACION, ComisionesPeer::INTERRUPCION, ComisionesPeer::ID_ORIGINAL, ComisionesPeer::DESTINOS_ADD, ComisionesPeer::EXTERIOR, ComisionesPeer::TRM, ComisionesPeer::APLICA_PORCENTAJE, ComisionesPeer::TIPO_EXTERIOR,ComisionesPeer::CDP,ComisionesPeer::RUBRO,
            ComisionesPeer::ID_TRANSPORTE,ComisionesPeer::PASAJE_AEREO,ComisionesPeer::ID_FIRMA,ComisionesPeer::TIPO_GASTO,ComisionesPeer::RUBRO_EXTRA,),
        BasePeer::TYPE_FIELDNAME => array('ID', 'CODARE', 'TIPCOMI', 'CODPRO', 'FECHA', 'OBJETIVO', 'ACTIVIDAD', 'OBSERVA', 'CREATED_AT', 'UPDATE_AT', 'USERNAME', 'ESTADO', 'ACTIVO', 'VIGENCIA', 'JUSTIFICACION', 'INTERRUPCION', 'ID_ORIGINAL', 'DESTINOS_ADD', 'EXTERIOR', 'TRM', 'APLICA_PORCENTAJE', 'TIPO_EXTERIOR','CDP','ID_RUBRO','ID_TRANSPORTE',
            'PASAJE_AEREO','ID_FIRMA','TIPO_GASTO','ID_RUBRO_EXTRA',),
        BasePeer::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,)
    );
    private static $fieldKeys = array(
        BasePeer::TYPE_PHPNAME => array('Id' => 0, 'Codare' => 1, 'Tipcomi' => 2, 'Codpro' => 3, 'Fecha' => 4, 'Objetivo' => 5, 'Actividad' => 6, 'Observa' => 7, 'CreatedAt' => 8, 'UpdateAt' => 9, 'Username' => 10, 'Estado' => 11, 'Activo' => 12, 'Vigencia' => 13, 'Justificacion' => 14, 'Interrupcion' => 15, 'IdOriginal' => 16, 'DestinosAdd' => 17, 'Exterior' => 18, 'Trm' => 19, 'AplicaPorcentaje' => 20, 'TipoExterior' => 21,'Cdp' => 22,'IdRubro' => 23,'IdTransporte' => 24,
            'PasajeAereo' => 25,'IdFirma' => 26,'TipoGasto' => 27,'IdRubroExtra' => 28,),
        BasePeer::TYPE_COLNAME => array(ComisionesPeer::ID => 0, ComisionesPeer::CODARE => 1, ComisionesPeer::TIPCOMI => 2, ComisionesPeer::CODPRO => 3, ComisionesPeer::FECHA => 4, ComisionesPeer::OBJETIVO => 5, ComisionesPeer::ACTIVIDAD => 6, ComisionesPeer::OBSERVA => 7, ComisionesPeer::CREATED_AT => 8, ComisionesPeer::UPDATE_AT => 9, ComisionesPeer::USERNAME => 10, ComisionesPeer::ESTADO => 11, ComisionesPeer::ACTIVO => 12, ComisionesPeer::VIGENCIA => 13, ComisionesPeer::JUSTIFICACION => 14, ComisionesPeer::INTERRUPCION => 15, ComisionesPeer::ID_ORIGINAL => 16, ComisionesPeer::DESTINOS_ADD => 17, ComisionesPeer::EXTERIOR => 18, ComisionesPeer::TRM => 19, ComisionesPeer::APLICA_PORCENTAJE => 20, ComisionesPeer::TIPO_EXTERIOR => 21,ComisionesPeer::CDP => 22,ComisionesPeer::RUBRO => 23,ComisionesPeer::ID_TRANSPORTE => 24,
            ComisionesPeer::PASAJE_AEREO => 25,ComisionesPeer::ID_FIRMA => 26,ComisionesPeer::TIPO_GASTO => 27,ComisionesPeer::ID_RUBRO_EXTRA => 28,),
        BasePeer::TYPE_FIELDNAME => array('ID' => 0, 'CODARE' => 1, 'TIPCOMI' => 2, 'CODPRO' => 3, 'FECHA' => 4, 'OBJETIVO' => 5, 'ACTIVIDAD' => 6, 'OBSERVA' => 7, 'CREATED_AT' => 8, 'UPDATE_AT' => 9, 'USERNAME' => 10, 'ESTADO' => 11, 'ACTIVO' => 12, 'VIGENCIA' => 13, 'JUSTIFICACION' => 14, 'INTERRUPCION' => 15, 'ID_ORIGINAL' => 16, 'DESTINOS_ADD' => 17, 'EXTERIOR' => 18, 'TRM' => 19, 'APLICA_PORCENTAJE' => 20, 'TIPO_EXTERIOR' => 21,'CDP'=> 22,'ID_RUBRO'=> 23,'ID_TRANSPORTE' => 24,
            'PASAJE_AEREO' => 25,'ID_FIRMA' => 26,'TIPO_GASTO' => 27,'ID_RUBRO_EXTRA'=> 28,),
        BasePeer::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,)
    );

    public static function getMapBuilder() {
        return BasePeer::getMapBuilder('lib.model.map.ComisionesMapBuilder');
    }

    public static function getPhpNameMap() {
        if (self::$phpNameMap === null) {
            $map = ComisionesPeer::getTableMap();
            $columns = $map->getColumns();
            $nameMap = array();
            foreach ($columns as $column) {
                $nameMap[$column->getPhpName()] = $column->getColumnName();
            }
            self::$phpNameMap = $nameMap;
        }
        return self::$phpNameMap;
    }

    static public function translateFieldName($name, $fromType, $toType) {
        $toNames = self::getFieldNames($toType);
        $key = isset(self::$fieldKeys[$fromType][$name]) ? self::$fieldKeys[$fromType][$name] : null;
        if ($key === null) {
            throw new PropelException("'$name' could not be found in the field names of type '$fromType'. These are: " . print_r(self::$fieldKeys[$fromType], true));
        }
        return $toNames[$key];
    }

    static public function getFieldNames($type = BasePeer::TYPE_PHPNAME) {
        if (!array_key_exists($type, self::$fieldNames)) {
            throw new PropelException('Method getFieldNames() expects the parameter $type to be one of the class constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, TYPE_NUM. ' . $type . ' was given.');
        }
        return self::$fieldNames[$type];
    }

    public static function alias($alias, $column) {
        return str_replace(ComisionesPeer::TABLE_NAME . '.', $alias . '.', $column);
    }

    public static function addSelectColumns(Criteria $criteria) {

        $criteria->addSelectColumn(ComisionesPeer::ID);

        $criteria->addSelectColumn(ComisionesPeer::CODARE);

        $criteria->addSelectColumn(ComisionesPeer::TIPCOMI);

        $criteria->addSelectColumn(ComisionesPeer::CODPRO);

        $criteria->addSelectColumn(ComisionesPeer::FECHA);

        $criteria->addSelectColumn(ComisionesPeer::OBJETIVO);

        $criteria->addSelectColumn(ComisionesPeer::ACTIVIDAD);

        $criteria->addSelectColumn(ComisionesPeer::OBSERVA);

        $criteria->addSelectColumn(ComisionesPeer::CREATED_AT);

        $criteria->addSelectColumn(ComisionesPeer::UPDATE_AT);

        $criteria->addSelectColumn(ComisionesPeer::USERNAME);

        $criteria->addSelectColumn(ComisionesPeer::ESTADO);

        $criteria->addSelectColumn(ComisionesPeer::ACTIVO);

        $criteria->addSelectColumn(ComisionesPeer::VIGENCIA);

        $criteria->addSelectColumn(ComisionesPeer::JUSTIFICACION);

        $criteria->addSelectColumn(ComisionesPeer::INTERRUPCION);

        $criteria->addSelectColumn(ComisionesPeer::ID_ORIGINAL);

        $criteria->addSelectColumn(ComisionesPeer::DESTINOS_ADD);

        $criteria->addSelectColumn(ComisionesPeer::EXTERIOR);

        $criteria->addSelectColumn(ComisionesPeer::TRM);

        $criteria->addSelectColumn(ComisionesPeer::APLICA_PORCENTAJE);

        $criteria->addSelectColumn(ComisionesPeer::TIPO_EXTERIOR);

        $criteria->addSelectColumn(ComisionesPeer::CDP);

        $criteria->addSelectColumn(ComisionesPeer::RUBRO);

        $criteria->addSelectColumn(ComisionesPeer::ID_TRANSPORTE);

        $criteria->addSelectColumn(ComisionesPeer::PASAJE_AEREO);

        $criteria->addSelectColumn(ComisionesPeer::ID_FIRMA);

        $criteria->addSelectColumn(ComisionesPeer::TIPO_GASTO);//se comenta ya que daña el modelo de comisiones - 20191230//BASEAreasPeer No se agrega o corre las columnas en doSelectJoinAll de basecomisionespeer - 20170106

        $criteria->addSelectColumn(ComisionesPeer::RUBRO_EXTRA);
    }

    const COUNT = 'COUNT(COMISIONES.ID)';
    const COUNT_DISTINCT = 'COUNT(DISTINCT COMISIONES.ID)';

    public static function doCount(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doSelectOne(Criteria $criteria, $con = null) {
        $critcopy = clone $criteria;
        $critcopy->setLimit(1);
        $objects = ComisionesPeer::doSelect($critcopy, $con);
        if ($objects) {
            return $objects[0];
        }
        return null;
    }

    public static function doSelect(Criteria $criteria, $con = null) {
        return ComisionesPeer::populateObjects(ComisionesPeer::doSelectRS($criteria, $con));
    }

    public static function doSelectRS(Criteria $criteria, $con = null) {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }

        if (!$criteria->getSelectColumns()) {
            $criteria = clone $criteria;
            ComisionesPeer::addSelectColumns($criteria);
        }

        $criteria->setDbName(self::DATABASE_NAME);

        return BasePeer::doSelect($criteria, $con);
    }

    public static function populateObjects(ResultSet $rs) {
        $results = array();

        $cls = ComisionesPeer::getOMClass();
        $cls = sfPropel::import($cls);
        while ($rs->next()) {

            $obj = new $cls();
            $obj->hydrate($rs);
            $results[] = $obj;
        }
        return $results;
    }

    public static function doCountJoinAreas(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doCountJoinTiposComision(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doCountJoinProyectos(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doSelectJoinAreas(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;
        AreasPeer::addSelectColumns($c);

        $c->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);
        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = AreasPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol);

            $newObject = true;
            foreach ($results as $temp_obj1) {
                $temp_obj2 = $temp_obj1->getAreas();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }
            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }
            $results[] = $obj1;
        }
        return $results;
    }

    public static function doSelectJoinTiposComision(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;
        TiposComisionPeer::addSelectColumns($c);

        $c->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);
        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = TiposComisionPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol);

            $newObject = true;
            foreach ($results as $temp_obj1) {
                $temp_obj2 = $temp_obj1->getTiposComision();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }
            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }
            $results[] = $obj1;
        }
        return $results;
    }

    public static function doSelectJoinProyectos(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;
        ProyectosPeer::addSelectColumns($c);

        $c->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);
        $c->add(ProyectosPeer::ESTADO, 1);
        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = ProyectosPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol);

            $newObject = true;
            foreach ($results as $temp_obj1) {
                $temp_obj2 = $temp_obj1->getProyectos();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }
            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }
            $results[] = $obj1;
        }
        return $results;
    }

    public static function doCountJoinAll(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $criteria->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $criteria->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doSelectJoinAll(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol2 = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;

        AreasPeer::addSelectColumns($c);
        $startcol3 = $startcol2 + AreasPeer::NUM_COLUMNS;

        TiposComisionPeer::addSelectColumns($c);
        $startcol4 = $startcol3 + TiposComisionPeer::NUM_COLUMNS;

        ProyectosPeer::addSelectColumns($c);
        $startcol5 = $startcol4 + ProyectosPeer::NUM_COLUMNS;

        $c->addJoin(ComisionesPeer::CODARE, AreasPeer::CODIGO);

        $c->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $c->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODIGO);
        $c->add(ProyectosPeer::ESTADO, 1);
        /* echo BasePeer::createSelectSql($c,$con);
          die(); */
        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);



            $omClass = AreasPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol2);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj2 = $temp_obj1->getAreas();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }



            $omClass = TiposComisionPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj3 = new $cls();
            $obj3->hydrate($rs, $startcol3);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj3 = $temp_obj1->getTiposComision();
                if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj3->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj3->initComisioness();
                $obj3->addComisiones($obj1);
            }



            $omClass = ProyectosPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj4 = new $cls();
            $obj4->hydrate($rs, $startcol4);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj4 = $temp_obj1->getProyectos();
                if ($temp_obj4->getPrimaryKey() === $obj4->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj4->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj4->initComisioness();
                $obj4->addComisiones($obj1);
            }

            $results[] = $obj1;
        }
        return $results;
    }

    public static function doCountJoinAllExceptAreas(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $criteria->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doCountJoinAllExceptTiposComision(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $criteria->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doCountJoinAllExceptProyectos(Criteria $criteria, $distinct = false, $con = null) {
        $criteria = clone $criteria;

        $criteria->clearSelectColumns()->clearOrderByColumns();
        if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) {
            $criteria->addSelectColumn(ComisionesPeer::COUNT_DISTINCT);
        } else {
            $criteria->addSelectColumn(ComisionesPeer::COUNT);
        }

        foreach ($criteria->getGroupByColumns() as $column) {
            $criteria->addSelectColumn($column);
        }

        $criteria->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $criteria->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $rs = ComisionesPeer::doSelectRS($criteria, $con);
        if ($rs->next()) {
            return $rs->getInt(1);
        } else {
            return 0;
        }
    }

    public static function doSelectJoinAllExceptAreas(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol2 = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;

        TiposComisionPeer::addSelectColumns($c);
        $startcol3 = $startcol2 + TiposComisionPeer::NUM_COLUMNS;

        ProyectosPeer::addSelectColumns($c);
        $startcol4 = $startcol3 + ProyectosPeer::NUM_COLUMNS;

        $c->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);

        $c->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);


        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = TiposComisionPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol2);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj2 = $temp_obj1->getTiposComision();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }

            $omClass = ProyectosPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj3 = new $cls();
            $obj3->hydrate($rs, $startcol3);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj3 = $temp_obj1->getProyectos();
                if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj3->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj3->initComisioness();
                $obj3->addComisiones($obj1);
            }

            $results[] = $obj1;
        }
        return $results;
    }

    public static function doSelectJoinAllExceptTiposComision(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol2 = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;

        AreasPeer::addSelectColumns($c);
        $startcol3 = $startcol2 + AreasPeer::NUM_COLUMNS;

        ProyectosPeer::addSelectColumns($c);
        $startcol4 = $startcol3 + ProyectosPeer::NUM_COLUMNS;

        $c->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $c->addJoin(ComisionesPeer::CODPRO, ProyectosPeer::CODPRO);


        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = AreasPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol2);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj2 = $temp_obj1->getAreas();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }

            $omClass = ProyectosPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj3 = new $cls();
            $obj3->hydrate($rs, $startcol3);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj3 = $temp_obj1->getProyectos();
                if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj3->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj3->initComisioness();
                $obj3->addComisiones($obj1);
            }

            $results[] = $obj1;
        }
        return $results;
    }

    public static function doSelectJoinAllExceptProyectos(Criteria $c, $con = null) {
        $c = clone $c;

        if ($c->getDbName() == Propel::getDefaultDB()) {
            $c->setDbName(self::DATABASE_NAME);
        }

        ComisionesPeer::addSelectColumns($c);
        $startcol2 = (ComisionesPeer::NUM_COLUMNS - ComisionesPeer::NUM_LAZY_LOAD_COLUMNS) + 1;

        AreasPeer::addSelectColumns($c);
        $startcol3 = $startcol2 + AreasPeer::NUM_COLUMNS;

        TiposComisionPeer::addSelectColumns($c);
        $startcol4 = $startcol3 + TiposComisionPeer::NUM_COLUMNS;

        $c->addJoin(ComisionesPeer::CODARE, AreasPeer::CODARE);

        $c->addJoin(ComisionesPeer::TIPCOMI, TiposComisionPeer::TIPCOMI);


        $rs = BasePeer::doSelect($c, $con);
        $results = array();

        while ($rs->next()) {

            $omClass = ComisionesPeer::getOMClass();

            $cls = sfPropel::import($omClass);
            $obj1 = new $cls();
            $obj1->hydrate($rs);

            $omClass = AreasPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj2 = new $cls();
            $obj2->hydrate($rs, $startcol2);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj2 = $temp_obj1->getAreas();
                if ($temp_obj2->getPrimaryKey() === $obj2->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj2->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj2->initComisioness();
                $obj2->addComisiones($obj1);
            }

            $omClass = TiposComisionPeer::getOMClass();


            $cls = sfPropel::import($omClass);
            $obj3 = new $cls();
            $obj3->hydrate($rs, $startcol3);

            $newObject = true;
            for ($j = 0, $resCount = count($results); $j < $resCount; $j++) {
                $temp_obj1 = $results[$j];
                $temp_obj3 = $temp_obj1->getTiposComision();
                if ($temp_obj3->getPrimaryKey() === $obj3->getPrimaryKey()) {
                    $newObject = false;
                    $temp_obj3->addComisiones($obj1);
                    break;
                }
            }

            if ($newObject) {
                $obj3->initComisioness();
                $obj3->addComisiones($obj1);
            }

            $results[] = $obj1;
        }
        return $results;
    }

    static public function getUniqueColumnNames() {
        return array();
    }

    public static function getTableMap() {
        return Propel::getDatabaseMap(self::DATABASE_NAME)->getTable(self::TABLE_NAME);
    }

    public static function getOMClass() {
        return ComisionesPeer::CLASS_DEFAULT;
    }

    public static function doInsert($values, $con = null) {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }

        if ($values instanceof Criteria) {
            $criteria = clone $values;
        } else {
            $criteria = $values->buildCriteria();
        }


        $criteria->setDbName(self::DATABASE_NAME);

        try {
            $con->begin();
            $pk = BasePeer::doInsert($criteria, $con);
            $con->commit();
        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }

        return $pk;
    }

    public static function doUpdate($values, $con = null) {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }

        $selectCriteria = new Criteria(self::DATABASE_NAME);

        if ($values instanceof Criteria) {
            $criteria = clone $values;
            $comparison = $criteria->getComparison(ComisionesPeer::ID);
            $selectCriteria->add(ComisionesPeer::ID, $criteria->remove(ComisionesPeer::ID), $comparison);

            $comparison = $criteria->getComparison(ComisionesPeer::VIGENCIA);
            $selectCriteria->add(ComisionesPeer::VIGENCIA, $criteria->remove(ComisionesPeer::VIGENCIA), $comparison);
        } else {
            $criteria = $values->buildCriteria();
            $selectCriteria = $values->buildPkeyCriteria();
        }

        $criteria->setDbName(self::DATABASE_NAME);

        return BasePeer::doUpdate($selectCriteria, $criteria, $con);
    }

    public static function doDeleteAll($con = null) {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }
        $affectedRows = 0;
        try {
            $con->begin();
            $affectedRows += BasePeer::doDeleteAll(ComisionesPeer::TABLE_NAME, $con);
            $con->commit();
            return $affectedRows;
        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }
    }

    public static function doDelete($values, $con = null) {
        if ($con === null) {
            $con = Propel::getConnection(ComisionesPeer::DATABASE_NAME);
        }

        if ($values instanceof Criteria) {
            $criteria = clone $values;
        } elseif ($values instanceof Comisiones) {

            $criteria = $values->buildPkeyCriteria();
        } else {
            $criteria = new Criteria(self::DATABASE_NAME);
            if (count($values) == count($values, COUNT_RECURSIVE)) {
                $values = array($values);
            }
            $vals = array();
            foreach ($values as $value) {

                $vals[0][] = $value[0];
                $vals[1][] = $value[1];
            }

            $criteria->add(ComisionesPeer::ID, $vals[0], Criteria::IN);
            $criteria->add(ComisionesPeer::VIGENCIA, $vals[1], Criteria::IN);
        }

        $criteria->setDbName(self::DATABASE_NAME);

        $affectedRows = 0;
        try {
            $con->begin();

            $affectedRows += BasePeer::doDelete($criteria, $con);
            $con->commit();
            return $affectedRows;
        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }
    }

    public static function doValidate(Comisiones $obj, $cols = null) {
        $columns = array();

        if ($cols) {
            $dbMap = Propel::getDatabaseMap(ComisionesPeer::DATABASE_NAME);
            $tableMap = $dbMap->getTable(ComisionesPeer::TABLE_NAME);

            if (!is_array($cols)) {
                $cols = array($cols);
            }

            foreach ($cols as $colName) {
                if ($tableMap->containsColumn($colName)) {
                    $get = 'get' . $tableMap->getColumn($colName)->getPhpName();
                    $columns[$colName] = $obj->$get();
                }
            }
        } else {
            
        }

        $res = BasePeer::doValidate(ComisionesPeer::DATABASE_NAME, ComisionesPeer::TABLE_NAME, $columns);
        if ($res !== true) {
            $request = sfContext::getInstance()->getRequest();
            foreach ($res as $failed) {
                $col = ComisionesPeer::translateFieldname($failed->getColumn(), BasePeer::TYPE_COLNAME, BasePeer::TYPE_PHPNAME);
                $request->setError($col, $failed->getMessage());
            }
        }

        return $res;
    }

    public static function retrieveByPK($id, $vigencia, $con = null) {
        if ($con === null) {
            $con = Propel::getConnection(self::DATABASE_NAME);
        }
        $criteria = new Criteria();
        $criteria->add(ComisionesPeer::ID, $id);
        $criteria->add(ComisionesPeer::VIGENCIA, $vigencia);
        $v = ComisionesPeer::doSelect($criteria, $con);

        return !empty($v) ? $v[0] : null;
    }

}

if (Propel::isInit()) {
    try {
        BaseComisionesPeer::getMapBuilder();
    } catch (Exception $e) {
        Propel::log('Could not initialize Peer: ' . $e->getMessage(), Propel::LOG_ERR);
    }
} else {
    Propel::registerMapBuilder('lib.model.map.ComisionesMapBuilder');
}

