<?php

abstract class BaseComisiones extends BaseObject implements Persistent {

    protected static $peer;
    protected $id;
    protected $codare;
    protected $tipcomi;
    protected $codpro;
    protected $fecha;
    protected $objetivo;
    protected $actividad;
    protected $observa;
    protected $created_at;
    protected $update_at;
    protected $username;
    protected $estado = 1;
    protected $activo = 1;
    protected $vigencia = 0;
    protected $justificacion;
    protected $interrupcion = '0';
    protected $id_original;
    protected $destinos_add;
    protected $exterior;
    protected $tipo_exterior;
    protected $trm;
    protected $aplica_porcentaje;
    protected $cdp;
    protected $rubro;
    protected $id_transporte;
    protected $pasaje_aereo;
    protected $id_firma;
    protected $tipo_gasto;
    protected $rubro_extra;
    protected $aAreas;
    protected $aTiposComision;
    protected $aProyectos;
    protected $collDestinosComisionadoss;
    protected $lastDestinosComisionadosCriteria = null;
    protected $collComisionadosPlantas;
    protected $lastComisionadosPlantaCriteria = null;
    protected $collTarifasDestinos;
    protected $lastTarifasDestinoCriteria = null;
    protected $collComisionadosContratos;
    protected $lastComisionadosContratoCriteria = null;
    protected $collComisionadosObjss;
    protected $lastComisionadosObjsCriteria = null;
    protected $collDestinoss;
    protected $lastDestinosCriteria = null;
    protected $alreadyInSave = false;
    protected $alreadyInValidation = false;

    public function getId() {

        return $this->id;
    }

    public function getCodare() {

        return $this->codare;
    }

    public function getTipcomi() {

        return $this->tipcomi;
    }

    public function getCodpro() {

        return $this->codpro;
    }

    public function getFecha($format = 'Y-m-d') {

        if ($this->fecha === null || $this->fecha === '') {
            return null;
        } elseif (!is_int($this->fecha)) {
            $ts = strtotime($this->fecha);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse value of [fecha] as date/time value: " . var_export($this->fecha, true));
            }
        } else {
            $ts = $this->fecha;
        }
        if ($format === null) {
            return $ts;
        } elseif (strpos($format, '%') !== false) {
            return strftime($format, $ts);
        } else {
            return date($format, $ts);
        }
    }

    public function getObjetivo() {

        return $this->objetivo;
    }

    public function getActividad() {

        return $this->actividad;
    }

    public function getObserva() {

        return $this->observa;
    }

    public function getCreatedAt($format = 'Y-m-d') {

        if ($this->created_at === null || $this->created_at === '') {
            return null;
        } elseif (!is_int($this->created_at)) {
            $ts = strtotime($this->created_at);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse value of [created_at] as date/time value: " . var_export($this->created_at, true));
            }
        } else {
            $ts = $this->created_at;
        }
        if ($format === null) {
            return $ts;
        } elseif (strpos($format, '%') !== false) {
            return strftime($format, $ts);
        } else {
            return date($format, $ts);
        }
    }

    public function getUpdateAt($format = 'Y-m-d') {

        if ($this->update_at === null || $this->update_at === '') {
            return null;
        } elseif (!is_int($this->update_at)) {
            $ts = strtotime($this->update_at);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse value of [update_at] as date/time value: " . var_export($this->update_at, true));
            }
        } else {
            $ts = $this->update_at;
        }
        if ($format === null) {
            return $ts;
        } elseif (strpos($format, '%') !== false) {
            return strftime($format, $ts);
        } else {
            return date($format, $ts);
        }
    }

    public function getUsername() {

        return $this->username;
    }

    public function getEstado() {

        return $this->estado;
    }

    public function getActivo() {

        return $this->activo;
    }

    public function getVigencia() {

        return $this->vigencia;
    }

    public function getJustificacion() {

        return $this->justificacion;
    }

    public function getInterrupcion() {

        return $this->interrupcion;
    }

    public function getIdOriginal() {

        return $this->id_original;
    }

    public function getDestinosAdd() {

        return $this->destinos_add;
    }

    public function getExterior() {

        return $this->exterior;
    }

    public function getTipoExterior() {

        return $this->tipo_exterior;
    }

    public function getAplicaPorcentaje() {

        return $this->aplica_porcentaje;
    }

    public function getTrm() {

        return $this->trm;
    }

    public function getCdp() {

        return $this->cdp;
    }

    public function getRubro() {

        return $this->rubro;
    }

    public function getIdTransporte() {

        return $this->id_transporte;
    }

    public function getPasajeAereo() {

        return $this->pasaje_aereo;
    }

    public function getIdFirma() {

        return $this->id_firma;
    }

    public function getTipoGasto() {

        return $this->tipo_gasto;
    }

    public function getRubroExtra() {

        return $this->rubro_extra;
    }

    public function setId($v) {

        if ($this->id !== $v) {
            $this->id = $v;
            $this->modifiedColumns[] = ComisionesPeer::ID;
        }
    }

    public function setCodare($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->codare !== $v) {
            $this->codare = $v;
            $this->modifiedColumns[] = ComisionesPeer::CODARE;
        }

        if ($this->aAreas !== null && $this->aAreas->getCodare() !== $v) {
            $this->aAreas = null;
        }
    }

    public function setTipcomi($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->tipcomi !== $v) {
            $this->tipcomi = $v;
            $this->modifiedColumns[] = ComisionesPeer::TIPCOMI;
        }

        if ($this->aTiposComision !== null && $this->aTiposComision->getTipcomi() !== $v) {
            $this->aTiposComision = null;
        }
    }

    public function setCodpro($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->codpro !== $v) {
            $this->codpro = $v;
            $this->modifiedColumns[] = ComisionesPeer::CODPRO;
        }

        if ($this->aProyectos !== null && $this->aProyectos->getCodpro() !== $v) {
            $this->aProyectos = null;
        }
    }

    public function setFecha($v) {

        if ($v !== null && !is_int($v)) {
            $ts = strtotime($v);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse date/time value for [fecha] from input: " . var_export($v, true));
            }
        } else {
            $ts = $v;
        }
        if ($this->fecha !== $ts) {
            $this->fecha = $ts;
            $this->modifiedColumns[] = ComisionesPeer::FECHA;
        }
    }

    public function setObjetivo($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->objetivo !== $v) {
            $this->objetivo = $v;
            $this->modifiedColumns[] = ComisionesPeer::OBJETIVO;
        }
    }

    public function setActividad($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->actividad !== $v) {
            $this->actividad = $v;
            $this->modifiedColumns[] = ComisionesPeer::ACTIVIDAD;
        }
    }

    public function setObserva($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->observa !== $v) {
            $this->observa = $v;
            $this->modifiedColumns[] = ComisionesPeer::OBSERVA;
        }
    }

    public function setCreatedAt($v) {

        if ($v !== null && !is_int($v)) {
            $ts = strtotime($v);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse date/time value for [created_at] from input: " . var_export($v, true));
            }
        } else {
            $ts = $v;
        }
        if ($this->created_at !== $ts) {
            $this->created_at = $ts;
            $this->modifiedColumns[] = ComisionesPeer::CREATED_AT;
        }
    }

    public function setUpdateAt($v) {

        if ($v !== null && !is_int($v)) {
            $ts = strtotime($v);
            if ($ts === -1 || $ts === false) {
                throw new PropelException("Unable to parse date/time value for [update_at] from input: " . var_export($v, true));
            }
        } else {
            $ts = $v;
        }
        if ($this->update_at !== $ts) {
            $this->update_at = $ts;
            $this->modifiedColumns[] = ComisionesPeer::UPDATE_AT;
        }
    }

    public function setUsername($v) {

        if ($this->username !== $v) {
            $this->username = $v;
            $this->modifiedColumns[] = ComisionesPeer::USERNAME;
        }
    }

    public function setEstado($v) {

        if ($this->estado !== $v || $v === 1) {
            $this->estado = $v;
            $this->modifiedColumns[] = ComisionesPeer::ESTADO;
        }
    }

    public function setActivo($v) {

        if ($this->activo !== $v || $v === 1) {
            $this->activo = $v;
            $this->modifiedColumns[] = ComisionesPeer::ACTIVO;
        }
    }

    public function setVigencia($v) {

        if ($this->vigencia !== $v || $v === 0) {
            $this->vigencia = $v;
            $this->modifiedColumns[] = ComisionesPeer::VIGENCIA;
        }
    }

    public function setJustificacion($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->justificacion !== $v) {
            $this->justificacion = $v;
            $this->modifiedColumns[] = ComisionesPeer::JUSTIFICACION;
        }
    }

    public function setInterrupcion($v) {

        if ($v !== null && !is_string($v)) {
            $v = (string) $v;
        }

        if ($this->interrupcion !== $v || $v === '0') {
            $this->interrupcion = $v;
            $this->modifiedColumns[] = ComisionesPeer::INTERRUPCION;
        }
    }

    public function setIdOriginal($v) {

        if ($this->id_original !== $v) {
            $this->id_original = $v;
            $this->modifiedColumns[] = ComisionesPeer::ID_ORIGINAL;
        }
    }

    public function setDestinosAdd($v) {

        if ($this->destinos_add !== $v) {
            $this->destinos_add = $v;
            $this->modifiedColumns[] = ComisionesPeer::DESTINOS_ADD;
        }
    }

    public function setExterior($v) {

        if ($this->exterior !== $v) {
            $this->exterior = $v;
            $this->modifiedColumns[] = ComisionesPeer::EXTERIOR;
        }
    }

    public function setTipoExterior($v) {

        if ($this->tipo_exterior !== $v) {
            $this->tipo_exterior = $v;
            $this->modifiedColumns[] = ComisionesPeer::TIPO_EXTERIOR;
        }
    }

    public function setTrm($v) {

        if ($this->trm !== $v) {
            $this->trm = $v;
            $this->modifiedColumns[] = ComisionesPeer::TRM;
        }
    }

    public function setCdp($v) {

        if ($this->cdp !== $v) {
            $this->cdp = $v;
            $this->modifiedColumns[] = ComisionesPeer::CDP;
        }
    }

    public function setRubro($v) {

        if ($this->rubro !== $v) {
            $this->rubro = $v;
            $this->modifiedColumns[] = ComisionesPeer::RUBRO;
        }
    }

    public function setRubroExtra($v) {

        if ($this->rubro_extra !== $v) {
            $this->rubro_extra = $v;
            $this->modifiedColumns[] = ComisionesPeer::RUBRO_EXTRA;
        }
    }

    public function setIdTransporte($v) {

        if ($this->id_transporte !== $v) {
            $this->id_transporte = $v;
            $this->modifiedColumns[] = ComisionesPeer::ID_TRANSPORTE;
        }
    }

    public function setPasajeAereo($v) {

        if ($this->pasaje_aereo !== $v) {
            $this->pasaje_aereo = $v;
            $this->modifiedColumns[] = ComisionesPeer::PASAJE_AEREO;
        }
    }

    public function setIdFirma($v) {

        if ($this->id_firma !== $v) {
            $this->id_firma = $v;
            $this->modifiedColumns[] = ComisionesPeer::ID_FIRMA;
        }
    }

    public function setTipoGasto($v) {

        if ($this->tipo_gasto !== $v) {
            $this->tipo_gasto = $v;
            $this->modifiedColumns[] = ComisionesPeer::TIPO_GASTO;
        }
    }

    public function setAplicaPorcentaje($v) {

        if ($this->aplica_porcentaje !== $v) {
            $this->aplica_porcentaje = $v;
            $this->modifiedColumns[] = ComisionesPeer::APLICA_PORCENTAJE;
        }
    }

    public function hydrate(ResultSet $rs, $startcol = 1) {
        //try {

            $this->id = $rs->getFloat($startcol + 0);

            $this->codare = $rs->getString($startcol + 1);

            $this->tipcomi = $rs->getString($startcol + 2);

            $this->codpro = $rs->getString($startcol + 3);

            $this->fecha = $rs->getDate($startcol + 4, null);

            $this->objetivo = $rs->getString($startcol + 5);

            $this->actividad = $rs->getString($startcol + 6);

            $this->observa = $rs->getString($startcol + 7);

            $this->created_at = $rs->getDate($startcol + 8, null);

            $this->update_at = $rs->getDate($startcol + 9, null);

            $this->username = $rs->getFloat($startcol + 10);

            $this->estado = $rs->getFloat($startcol + 11);

            $this->activo = $rs->getFloat($startcol + 12);

            $this->vigencia = $rs->getFloat($startcol + 13);

            $this->justificacion = $rs->getString($startcol + 14);

            $this->interrupcion = $rs->getString($startcol + 15);

            $this->id_original = $rs->getFloat($startcol + 16);

            $this->destinos_add = $rs->getString($startcol + 17);

            $this->exterior = $rs->getString($startcol + 18);

            $this->trm = $rs->getString($startcol + 19);

            $this->aplica_porcentaje = $rs->getString($startcol + 20);

            $this->tipo_exterior = $rs->getString($startcol + 21);

            $this->cdp = $rs->getFloat($startcol + 22);

            $this->rubro = $rs->getFloat($startcol + 23);

            $this->id_transporte = $rs->getFloat($startcol + 24);

            $this->pasaje_aereo = $rs->getFloat($startcol + 25);

            $this->id_firma = $rs->getFloat($startcol + 26);

            $this->tipo_gasto = $rs->getFloat($startcol + 27);

            $this->rubro_extra = $rs->getFloat($startcol + 28);

            $this->resetModified();

            $this->setNew(false);

            return $startcol + 29;
        //} catch (Exception $e) {
        //    throw new PropelException("Error populating Comisiones object", $e);
        //}
    }

    public function delete($con = null) {
        if ($this->isDeleted()) {
            throw new PropelException("This object has already been deleted.");
        }

        if ($con === null) {
            $con = Propel::getConnection(ComisionesPeer::DATABASE_NAME);
        }

        try {
            $con->begin();
            ComisionesPeer::doDelete($this, $con);
            $this->setDeleted(true);
            $con->commit();
        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }
    }

    public function save($con = null) {
        if ($this->isNew() && !$this->isColumnModified(ComisionesPeer::CREATED_AT)) {
            $this->setCreatedAt(time());
        }

        if ($this->isDeleted()) {
            throw new PropelException("You cannot save an object that has been deleted.");
        }

        if ($con === null) {
            $con = Propel::getConnection(ComisionesPeer::DATABASE_NAME);
        }

        try {
            $con->begin();
            $affectedRows = $this->doSave($con);
            $con->commit();
            return $affectedRows;
        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }
    }

    protected function doSave($con) {
        $affectedRows = 0;
        if (!$this->alreadyInSave) {
            $this->alreadyInSave = true;



            if ($this->aAreas !== null) {
                if ($this->aAreas->isModified()) {
                    $affectedRows += $this->aAreas->save($con);
                }
                $this->setAreas($this->aAreas);
            }

            if ($this->aTiposComision !== null) {
                if ($this->aTiposComision->isModified()) {
                    $affectedRows += $this->aTiposComision->save($con);
                }
                $this->setTiposComision($this->aTiposComision);
            }

            if ($this->aProyectos !== null) {
                if ($this->aProyectos->isModified()) {
                    $affectedRows += $this->aProyectos->save($con);
                }
                $this->setProyectos($this->aProyectos);
            }


            if ($this->isModified()) {
                if ($this->isNew()) {
                    $pk = ComisionesPeer::doInsert($this, $con);
                    $affectedRows += 1;
                    $this->setNew(false);
                } else {
                    $affectedRows += ComisionesPeer::doUpdate($this, $con);
                }
                $this->resetModified();
            }

            if ($this->collDestinosComisionadoss !== null) {
                foreach ($this->collDestinosComisionadoss as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            if ($this->collComisionadosPlantas !== null) {
                foreach ($this->collComisionadosPlantas as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            if ($this->collTarifasDestinos !== null) {
                foreach ($this->collTarifasDestinos as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            if ($this->collComisionadosContratos !== null) {
                foreach ($this->collComisionadosContratos as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            if ($this->collComisionadosObjss !== null) {
                foreach ($this->collComisionadosObjss as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            if ($this->collDestinoss !== null) {
                foreach ($this->collDestinoss as $referrerFK) {
                    if (!$referrerFK->isDeleted()) {
                        $affectedRows += $referrerFK->save($con);
                    }
                }
            }

            $this->alreadyInSave = false;
        }
        return $affectedRows;
    }

    protected $validationFailures = array();

    public function getValidationFailures() {
        return $this->validationFailures;
    }

    public function validate($columns = null) {
        $res = $this->doValidate($columns);
        if ($res === true) {
            $this->validationFailures = array();
            return true;
        } else {
            $this->validationFailures = $res;
            return false;
        }
    }

    protected function doValidate($columns = null) {
        if (!$this->alreadyInValidation) {
            $this->alreadyInValidation = true;
            $retval = null;

            $failureMap = array();



            if ($this->aAreas !== null) {
                if (!$this->aAreas->validate($columns)) {
                    $failureMap = array_merge($failureMap, $this->aAreas->getValidationFailures());
                }
            }

            if ($this->aTiposComision !== null) {
                if (!$this->aTiposComision->validate($columns)) {
                    $failureMap = array_merge($failureMap, $this->aTiposComision->getValidationFailures());
                }
            }

            if ($this->aProyectos !== null) {
                if (!$this->aProyectos->validate($columns)) {
                    $failureMap = array_merge($failureMap, $this->aProyectos->getValidationFailures());
                }
            }


            if (($retval = ComisionesPeer::doValidate($this, $columns)) !== true) {
                $failureMap = array_merge($failureMap, $retval);
            }


            if ($this->collDestinosComisionadoss !== null) {
                foreach ($this->collDestinosComisionadoss as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }

            if ($this->collComisionadosPlantas !== null) {
                foreach ($this->collComisionadosPlantas as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }

            if ($this->collTarifasDestinos !== null) {
                foreach ($this->collTarifasDestinos as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }

            if ($this->collComisionadosContratos !== null) {
                foreach ($this->collComisionadosContratos as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }

            if ($this->collComisionadosObjss !== null) {
                foreach ($this->collComisionadosObjss as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }

            if ($this->collDestinoss !== null) {
                foreach ($this->collDestinoss as $referrerFK) {
                    if (!$referrerFK->validate($columns)) {
                        $failureMap = array_merge($failureMap, $referrerFK->getValidationFailures());
                    }
                }
            }


            $this->alreadyInValidation = false;
        }

        return (!empty($failureMap) ? $failureMap : true);
    }

    public function getByName($name, $type = BasePeer::TYPE_PHPNAME) {
        $pos = ComisionesPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
        return $this->getByPosition($pos);
    }

    public function getByPosition($pos) {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getCodare();
                break;
            case 2:
                return $this->getTipcomi();
                break;
            case 3:
                return $this->getCodpro();
                break;
            case 4:
                return $this->getFecha();
                break;
            case 5:
                return $this->getObjetivo();
                break;
            case 6:
                return $this->getActividad();
                break;
            case 7:
                return $this->getObserva();
                break;
            case 8:
                return $this->getCreatedAt();
                break;
            case 9:
                return $this->getUpdateAt();
                break;
            case 10:
                return $this->getUsername();
                break;
            case 11:
                return $this->getEstado();
                break;
            case 12:
                return $this->getActivo();
                break;
            case 13:
                return $this->getVigencia();
                break;
            case 14:
                return $this->getJustificacion();
                break;
            case 15:
                return $this->getInterrupcion();
                break;
            case 16:
                return $this->getIdOriginal();
                break;
            case 17:
                return $this->getDestinosAdd();
                break;
            case 18:
                return $this->getExterior();
                break;
            case 19:
                return $this->getTrm();
                break;
            case 20:
                return $this->getAplicaPorcentaje();
                break;
            case 21:
                return $this->getTipoExterior();
                break;
            case 22:
                return $this->getCdp();
                break;
            case 23:
                return $this->getRubro();
                break;
            case 24:
                return $this->getIdTransporte();
                break;
            case 25:
                return $this->getPasajeAereo();
                break;
            case 26:
                return $this->getIdFirma();
                break;
            case 27:
                return $this->getTipoGasto();
                break;
            case 28:
                return $this->getRubroExtra();
                break;
            default:
                return null;
                break;
        }
    }

    public function toArray($keyType = BasePeer::TYPE_PHPNAME) {
        $keys = ComisionesPeer::getFieldNames($keyType);
        $result = array(
            $keys[0] => $this->getId(),
            $keys[1] => $this->getCodare(),
            $keys[2] => $this->getTipcomi(),
            $keys[3] => $this->getCodpro(),
            $keys[4] => $this->getFecha(),
            $keys[5] => $this->getObjetivo(),
            $keys[6] => $this->getActividad(),
            $keys[7] => $this->getObserva(),
            $keys[8] => $this->getCreatedAt(),
            $keys[9] => $this->getUpdateAt(),
            $keys[10] => $this->getUsername(),
            $keys[11] => $this->getEstado(),
            $keys[12] => $this->getActivo(),
            $keys[13] => $this->getVigencia(),
            $keys[14] => $this->getJustificacion(),
            $keys[15] => $this->getInterrupcion(),
            $keys[16] => $this->getIdOriginal(),
            $keys[17] => $this->getDestinosAdd(),
            $keys[18] => $this->getExterior(),
            $keys[19] => $this->getTrm(),
            $keys[20] => $this->getAplicaPorcentaje(),
            $keys[21] => $this->getTipoExterior(),
            $keys[22] => $this->getCdp(),
            $keys[23] => $this->getRubro(),
            $keys[24] => $this->getIdTransporte(),
            $keys[25] => $this->getPasajeAereo(),
            $keys[26] => $this->getIdFirma(),
            $keys[27] => $this->getTipoGasto(),
            $keys[28] => $this->getRubroExtra(),
        );
        return $result;
    }

    public function setByName($name, $value, $type = BasePeer::TYPE_PHPNAME) {
        $pos = ComisionesPeer::translateFieldName($name, $type, BasePeer::TYPE_NUM);
        return $this->setByPosition($pos, $value);
    }

    public function setByPosition($pos, $value) {
        switch ($pos) {
            case 0:
                $this->setId($value);
                break;
            case 1:
                $this->setCodare($value);
                break;
            case 2:
                $this->setTipcomi($value);
                break;
            case 3:
                $this->setCodpro($value);
                break;
            case 4:
                $this->setFecha($value);
                break;
            case 5:
                $this->setObjetivo($value);
                break;
            case 6:
                $this->setActividad($value);
                break;
            case 7:
                $this->setObserva($value);
                break;
            case 8:
                $this->setCreatedAt($value);
                break;
            case 9:
                $this->setUpdateAt($value);
                break;
            case 10:
                $this->setUsername($value);
                break;
            case 11:
                $this->setEstado($value);
                break;
            case 12:
                $this->setActivo($value);
                break;
            case 13:
                $this->setVigencia($value);
                break;
            case 14:
                $this->setJustificacion($value);
                break;
            case 15:
                $this->setInterrupcion($value);
                break;
            case 16:
                $this->setIdOriginal($value);
                break;
            case 17:
                $this->setDestinosAdd($value);
                break;
            case 18:
                $this->setExterior($value);
                break;
            case 19:
                $this->setTrm($value);
                break;
            case 20:
                $this->setAplicaPorcentaje($value);
                break;
            case 21:
                $this->setTipoExterior($value);
                break;
            case 22:
                $this->setCdp($value);
                break;
            case 23:
                $this->setRubro($value);
                break;
            case 24:
                $this->setIdTransporte($value);
                break;
            case 25:
                $this->setPasajeAereo($value);
                break;
            case 26:
                $this->setIdFirma($value);
                break;
            case 27:
                $this->setTipoGasto($value);
                break;
            case 23:
                $this->setRubroExtra($value);
                break;
        }
    }

    public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) {
        $keys = ComisionesPeer::getFieldNames($keyType);

        if (array_key_exists($keys[0], $arr))
            $this->setId($arr[$keys[0]]);
        if (array_key_exists($keys[1], $arr))
            $this->setCodare($arr[$keys[1]]);
        if (array_key_exists($keys[2], $arr))
            $this->setTipcomi($arr[$keys[2]]);
        if (array_key_exists($keys[3], $arr))
            $this->setCodpro($arr[$keys[3]]);
        if (array_key_exists($keys[4], $arr))
            $this->setFecha($arr[$keys[4]]);
        if (array_key_exists($keys[5], $arr))
            $this->setObjetivo($arr[$keys[5]]);
        if (array_key_exists($keys[6], $arr))
            $this->setActividad($arr[$keys[6]]);
        if (array_key_exists($keys[7], $arr))
            $this->setObserva($arr[$keys[7]]);
        if (array_key_exists($keys[8], $arr))
            $this->setCreatedAt($arr[$keys[8]]);
        if (array_key_exists($keys[9], $arr))
            $this->setUpdateAt($arr[$keys[9]]);
        if (array_key_exists($keys[10], $arr))
            $this->setUsername($arr[$keys[10]]);
        if (array_key_exists($keys[11], $arr))
            $this->setEstado($arr[$keys[11]]);
        if (array_key_exists($keys[12], $arr))
            $this->setActivo($arr[$keys[12]]);
        if (array_key_exists($keys[13], $arr))
            $this->setVigencia($arr[$keys[13]]);
        if (array_key_exists($keys[14], $arr))
            $this->setJustificacion($arr[$keys[14]]);
        if (array_key_exists($keys[15], $arr))
            $this->setInterrupcion($arr[$keys[15]]);
        if (array_key_exists($keys[16], $arr))
            $this->setIdOriginal($arr[$keys[16]]);
        if (array_key_exists($keys[17], $arr))
            $this->setDestinosAdd($arr[$keys[17]]);
        if (array_key_exists($keys[18], $arr))
            $this->setExterior($arr[$keys[18]]);
        if (array_key_exists($keys[19], $arr))
            $this->setTrm($arr[$keys[19]]);
        if (array_key_exists($keys[20], $arr))
            $this->setAplicaPorcentaje($arr[$keys[20]]);
        if (array_key_exists($keys[21], $arr))
            $this->setTipoExterior($arr[$keys[21]]);
        if (array_key_exists($keys[22], $arr))
            $this->setCdp($arr[$keys[22]]);
        if (array_key_exists($keys[23], $arr))
            $this->setRubro($arr[$keys[23]]);
        if (array_key_exists($keys[24], $arr))
            $this->setIdTransporte($arr[$keys[24]]);
        if (array_key_exists($keys[25], $arr))
            $this->setPasajeAereo($arr[$keys[25]]);
        if (array_key_exists($keys[26], $arr))
            $this->setIdFirma($arr[$keys[26]]);
        if (array_key_exists($keys[27], $arr))
            $this->setTipoGasto($arr[$keys[27]]);
        if (array_key_exists($keys[28], $arr))
            $this->setRubroExtra($arr[$keys[28]]);
    }

    public function buildCriteria() {
        $criteria = new Criteria(ComisionesPeer::DATABASE_NAME);

        if ($this->isColumnModified(ComisionesPeer::ID))
            $criteria->add(ComisionesPeer::ID, $this->id);
        if ($this->isColumnModified(ComisionesPeer::CODARE))
            $criteria->add(ComisionesPeer::CODARE, $this->codare);
        if ($this->isColumnModified(ComisionesPeer::TIPCOMI))
            $criteria->add(ComisionesPeer::TIPCOMI, $this->tipcomi);
        if ($this->isColumnModified(ComisionesPeer::CODPRO))
            $criteria->add(ComisionesPeer::CODPRO, $this->codpro);
        if ($this->isColumnModified(ComisionesPeer::FECHA))
            $criteria->add(ComisionesPeer::FECHA, $this->fecha);
        if ($this->isColumnModified(ComisionesPeer::OBJETIVO))
            $criteria->add(ComisionesPeer::OBJETIVO, $this->objetivo);
        if ($this->isColumnModified(ComisionesPeer::ACTIVIDAD))
            $criteria->add(ComisionesPeer::ACTIVIDAD, $this->actividad);
        if ($this->isColumnModified(ComisionesPeer::OBSERVA))
            $criteria->add(ComisionesPeer::OBSERVA, $this->observa);
        if ($this->isColumnModified(ComisionesPeer::CREATED_AT))
            $criteria->add(ComisionesPeer::CREATED_AT, $this->created_at);
        if ($this->isColumnModified(ComisionesPeer::UPDATE_AT))
            $criteria->add(ComisionesPeer::UPDATE_AT, $this->update_at);
        if ($this->isColumnModified(ComisionesPeer::USERNAME))
            $criteria->add(ComisionesPeer::USERNAME, $this->username);
        if ($this->isColumnModified(ComisionesPeer::ESTADO))
            $criteria->add(ComisionesPeer::ESTADO, $this->estado);
        if ($this->isColumnModified(ComisionesPeer::ACTIVO))
            $criteria->add(ComisionesPeer::ACTIVO, $this->activo);
        if ($this->isColumnModified(ComisionesPeer::VIGENCIA))
            $criteria->add(ComisionesPeer::VIGENCIA, $this->vigencia);
        if ($this->isColumnModified(ComisionesPeer::JUSTIFICACION))
            $criteria->add(ComisionesPeer::JUSTIFICACION, $this->justificacion);
        if ($this->isColumnModified(ComisionesPeer::INTERRUPCION))
            $criteria->add(ComisionesPeer::INTERRUPCION, $this->interrupcion);
        if ($this->isColumnModified(ComisionesPeer::ID_ORIGINAL))
            $criteria->add(ComisionesPeer::ID_ORIGINAL, $this->id_original);
        if ($this->isColumnModified(ComisionesPeer::DESTINOS_ADD))
            $criteria->add(ComisionesPeer::DESTINOS_ADD, $this->destinos_add);
        if ($this->isColumnModified(ComisionesPeer::EXTERIOR))
            $criteria->add(ComisionesPeer::EXTERIOR, $this->exterior);
        if ($this->isColumnModified(ComisionesPeer::TRM))
            $criteria->add(ComisionesPeer::TRM, $this->trm);
        if ($this->isColumnModified(ComisionesPeer::APLICA_PORCENTAJE))
            $criteria->add(ComisionesPeer::APLICA_PORCENTAJE, $this->aplica_porcentaje);
        if ($this->isColumnModified(ComisionesPeer::TIPO_EXTERIOR))
            $criteria->add(ComisionesPeer::TIPO_EXTERIOR, $this->tipo_exterior);
        if ($this->isColumnModified(ComisionesPeer::CDP))
            $criteria->add(ComisionesPeer::CDP, $this->cdp);
        if ($this->isColumnModified(ComisionesPeer::RUBRO))
            $criteria->add(ComisionesPeer::RUBRO, $this->rubro);
        if ($this->isColumnModified(ComisionesPeer::ID_TRANSPORTE))
            $criteria->add(ComisionesPeer::ID_TRANSPORTE, $this->id_transporte);
        if ($this->isColumnModified(ComisionesPeer::PASAJE_AEREO))
            $criteria->add(ComisionesPeer::PASAJE_AEREO, $this->pasaje_aereo);
        if ($this->isColumnModified(ComisionesPeer::ID_FIRMA))
            $criteria->add(ComisionesPeer::ID_FIRMA, $this->id_firma);
        if ($this->isColumnModified(ComisionesPeer::TIPO_GASTO))
            $criteria->add(ComisionesPeer::TIPO_GASTO, $this->tipo_gasto);
        if ($this->isColumnModified(ComisionesPeer::RUBRO_EXTRA))
            $criteria->add(ComisionesPeer::RUBRO_EXTRA, $this->rubro_extra);

        return $criteria;
    }

    public function buildPkeyCriteria() {
        $criteria = new Criteria(ComisionesPeer::DATABASE_NAME);

        $criteria->add(ComisionesPeer::ID, $this->id);
        $criteria->add(ComisionesPeer::VIGENCIA, $this->vigencia);

        return $criteria;
    }

    public function getPrimaryKey() {
        $pks = array();

        $pks[0] = $this->getId();

        $pks[1] = $this->getVigencia();

        return $pks;
    }

    public function setPrimaryKey($keys) {

        $this->setId($keys[0]);

        $this->setVigencia($keys[1]);
    }

    public function copyInto($copyObj, $deepCopy = false) {

        $copyObj->setCodare($this->codare);

        $copyObj->setTipcomi($this->tipcomi);

        $copyObj->setCodpro($this->codpro);

        $copyObj->setFecha($this->fecha);

        $copyObj->setObjetivo($this->objetivo);

        $copyObj->setActividad($this->actividad);

        $copyObj->setObserva($this->observa);

        $copyObj->setCreatedAt($this->created_at);

        $copyObj->setUpdateAt($this->update_at);

        $copyObj->setUsername($this->username);

        $copyObj->setEstado($this->estado);

        $copyObj->setActivo($this->activo);

        $copyObj->setJustificacion($this->justificacion);

        $copyObj->setInterrupcion($this->interrupcion);

        $copyObj->setIdOriginal($this->id_original);

        $copyObj->setDestinosAdd($this->destinos_add);

        $copyObj->setExterior($this->exterior);

        $copyObj->setTrm($this->trm);

        $copyObj->setAplicaPorcentaje($this->aplica_porcentaje);

        $copyObj->setTipoExterior($this->tipo_exterior);

        $copyObj->setCdp($this->cdp);

        $copyObj->setRubro($this->rubro);

        $copyObj->setIdTransporte($this->id_transporte);

        $copyObj->setPasajeAereo($this->pasaje_aereo);

        $copyObj->setIdFirma($this->id_firma);

        $copyObj->setTipoGasto($this->tipo_gasto);

        $copyObj->setRubroExtra($this->rubro_extra);


        if ($deepCopy) {
            $copyObj->setNew(false);

            foreach ($this->getDestinosComisionadoss() as $relObj) {
                $copyObj->addDestinosComisionados($relObj->copy($deepCopy));
            }

            foreach ($this->getComisionadosPlantas() as $relObj) {
                $copyObj->addComisionadosPlanta($relObj->copy($deepCopy));
            }

            foreach ($this->getTarifasDestinos() as $relObj) {
                $copyObj->addTarifasDestino($relObj->copy($deepCopy));
            }

            foreach ($this->getComisionadosContratos() as $relObj) {
                $copyObj->addComisionadosContrato($relObj->copy($deepCopy));
            }

            foreach ($this->getComisionadosObjss() as $relObj) {
                $copyObj->addComisionadosObjs($relObj->copy($deepCopy));
            }

            foreach ($this->getDestinoss() as $relObj) {
                $copyObj->addDestinos($relObj->copy($deepCopy));
            }
        }

        $copyObj->setNew(true);

        $copyObj->setId(NULL);
        $copyObj->setVigencia('null');
    }

    public function copy($deepCopy = false) {
        $clazz = get_class($this);
        $copyObj = new $clazz();
        $this->copyInto($copyObj, $deepCopy);
        return $copyObj;
    }

    public function getPeer() {
        if (self::$peer === null) {
            self::$peer = new ComisionesPeer();
        }
        return self::$peer;
    }

    public function setAreas($v) {


        if ($v === null) {
            $this->setCodare(NULL);
        } else {
            $this->setCodare($v->getCodigo());
        }


        $this->aAreas = $v;
    }

    public function getAreas($con = null) {

        if ($this->aAreas === null && (($this->codare !== "" && $this->codare !== null))) {
            $c = new Criteria;
            $c->add(AreasPeer::CODIGO, $this->codare);
            $area = AreasPeer::doSelectOne($c);
            $this->aAreas = AreasPeer::retrieveByPK($area->getIdArea(), $con);
        }
        return $this->aAreas;
    }

    public function setTiposComision($v) {


        if ($v === null) {
            $this->setTipcomi(NULL);
        } else {
            $this->setTipcomi($v->getTipcomi());
        }


        $this->aTiposComision = $v;
    }

    public function getTiposComision($con = null) {
        if ($this->aTiposComision === null && (($this->tipcomi !== "" && $this->tipcomi !== null))) {
            $this->aTiposComision = TiposComisionPeer::retrieveByPK($this->tipcomi, $con);
        }
        return $this->aTiposComision;
    }

    public function setProyectos($v) {


        if ($v === null) {
            $this->setCodpro(NULL);
        } else {
            $this->setCodpro($v->getCodigo());
        }


        $this->aProyectos = $v;
    }

    public function getProyectos($con = null) {
        if ($this->aProyectos === null && (($this->codpro !== "" && $this->codpro !== null))) {
            $c = new Criteria;
            $c->add(ProyectosPeer::CODIGO, $this->codpro);
            $c->add(ProyectosPeer::ANO_FISCAL, $this->vigencia);
            $proyecto = ProyectosPeer::doSelectOne($c);

            $this->aProyectos = ProyectosPeer::retrieveByPK($proyecto->getId(), $con);
        }
        return $this->aProyectos;
    }

    public function initDestinosComisionadoss() {
        if ($this->collDestinosComisionadoss === null) {
            $this->collDestinosComisionadoss = array();
        }
    }

    public function getDestinosComisionadoss($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinosComisionadoss === null) {
            if ($this->isNew()) {
                $this->collDestinosComisionadoss = array();
            } else {

                $criteria->add(DestinosComisionadosPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                DestinosComisionadosPeer::addSelectColumns($criteria);
                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(DestinosComisionadosPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(DestinosComisionadosPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                DestinosComisionadosPeer::addSelectColumns($criteria);
                if (!isset($this->lastDestinosComisionadosCriteria) || !$this->lastDestinosComisionadosCriteria->equals($criteria)) {
                    $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastDestinosComisionadosCriteria = $criteria;
        return $this->collDestinosComisionadoss;
    }

    public function countDestinosComisionadoss($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(DestinosComisionadosPeer::ID, $this->getId());

        $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(DestinosComisionadosPeer::ID, $this->getId());

        $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

        return DestinosComisionadosPeer::doCount($criteria, $distinct, $con);
    }

    public function addDestinosComisionados(DestinosComisionados $l) {
        $this->collDestinosComisionadoss[] = $l;
        $l->setComisiones($this);
    }

    public function getDestinosComisionadossJoinTerceros($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinosComisionadoss === null) {
            if ($this->isNew()) {
                $this->collDestinosComisionadoss = array();
            } else {

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinTerceros($criteria, $con);
            }
        } else {

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastDestinosComisionadosCriteria) || !$this->lastDestinosComisionadosCriteria->equals($criteria)) {
                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinTerceros($criteria, $con);
            }
        }
        $this->lastDestinosComisionadosCriteria = $criteria;

        return $this->collDestinosComisionadoss;
    }

    public function getDestinosComisionadossJoinMunicipios($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinosComisionadoss === null) {
            if ($this->isNew()) {
                $this->collDestinosComisionadoss = array();
            } else {

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinMunicipios($criteria, $con);
            }
        } else {

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastDestinosComisionadosCriteria) || !$this->lastDestinosComisionadosCriteria->equals($criteria)) {
                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinMunicipios($criteria, $con);
            }
        }
        $this->lastDestinosComisionadosCriteria = $criteria;

        return $this->collDestinosComisionadoss;
    }

    public function getDestinosComisionadossJoinTransportes($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinosComisionadoss === null) {
            if ($this->isNew()) {
                $this->collDestinosComisionadoss = array();
            } else {

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinTransportes($criteria, $con);
            }
        } else {

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosComisionadosPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastDestinosComisionadosCriteria) || !$this->lastDestinosComisionadosCriteria->equals($criteria)) {
                $this->collDestinosComisionadoss = DestinosComisionadosPeer::doSelectJoinTransportes($criteria, $con);
            }
        }
        $this->lastDestinosComisionadosCriteria = $criteria;

        return $this->collDestinosComisionadoss;
    }

    public function initComisionadosPlantas() {
        if ($this->collComisionadosPlantas === null) {
            $this->collComisionadosPlantas = array();
        }
    }

    public function getComisionadosPlantas($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosPlantas === null) {
            if ($this->isNew()) {
                $this->collComisionadosPlantas = array();
            } else {

                $criteria->add(ComisionadosPlantaPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                ComisionadosPlantaPeer::addSelectColumns($criteria);
                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(ComisionadosPlantaPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosPlantaPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                ComisionadosPlantaPeer::addSelectColumns($criteria);
                if (!isset($this->lastComisionadosPlantaCriteria) || !$this->lastComisionadosPlantaCriteria->equals($criteria)) {
                    $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastComisionadosPlantaCriteria = $criteria;
        return $this->collComisionadosPlantas;
    }

    public function countComisionadosPlantas($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

        return ComisionadosPlantaPeer::doCount($criteria, $distinct, $con);
    }

    public function addComisionadosPlanta(ComisionadosPlanta $l) {
        $this->collComisionadosPlantas[] = $l;
        $l->setComisiones($this);
    }

    public function getComisionadosPlantasJoinTerceros($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosPlantas === null) {
            if ($this->isNew()) {
                $this->collComisionadosPlantas = array();
            } else {

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinTerceros($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosPlantaCriteria) || !$this->lastComisionadosPlantaCriteria->equals($criteria)) {
                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinTerceros($criteria, $con);
            }
        }
        $this->lastComisionadosPlantaCriteria = $criteria;

        return $this->collComisionadosPlantas;
    }

    public function getComisionadosPlantasJoinTransportes($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosPlantas === null) {
            if ($this->isNew()) {
                $this->collComisionadosPlantas = array();
            } else {

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinTransportes($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosPlantaCriteria) || !$this->lastComisionadosPlantaCriteria->equals($criteria)) {
                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinTransportes($criteria, $con);
            }
        }
        $this->lastComisionadosPlantaCriteria = $criteria;

        return $this->collComisionadosPlantas;
    }

    public function getComisionadosPlantasJoinRegionales($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosPlantas === null) {
            if ($this->isNew()) {
                $this->collComisionadosPlantas = array();
            } else {

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinRegionales($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosPlantaPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosPlantaCriteria) || !$this->lastComisionadosPlantaCriteria->equals($criteria)) {
                $this->collComisionadosPlantas = ComisionadosPlantaPeer::doSelectJoinRegionales($criteria, $con);
            }
        }
        $this->lastComisionadosPlantaCriteria = $criteria;

        return $this->collComisionadosPlantas;
    }

    public function initTarifasDestinos() {
        if ($this->collTarifasDestinos === null) {
            $this->collTarifasDestinos = array();
        }
    }

    public function getTarifasDestinos($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collTarifasDestinos === null) {
            if ($this->isNew()) {
                $this->collTarifasDestinos = array();
            } else {

                $criteria->add(TarifasDestinoPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(TarifasDestinoPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                TarifasDestinoPeer::addSelectColumns($criteria);
                $this->collTarifasDestinos = TarifasDestinoPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(TarifasDestinoPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(TarifasDestinoPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                TarifasDestinoPeer::addSelectColumns($criteria);
                if (!isset($this->lastTarifasDestinoCriteria) || !$this->lastTarifasDestinoCriteria->equals($criteria)) {
                    $this->collTarifasDestinos = TarifasDestinoPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastTarifasDestinoCriteria = $criteria;
        return $this->collTarifasDestinos;
    }

    public function countTarifasDestinos($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

        $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

        $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

        return TarifasDestinoPeer::doCount($criteria, $distinct, $con);
    }

    public function addTarifasDestino(TarifasDestino $l) {
        $this->collTarifasDestinos[] = $l;
        $l->setComisiones($this);
    }

    public function getTarifasDestinosJoinTerceros($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collTarifasDestinos === null) {
            if ($this->isNew()) {
                $this->collTarifasDestinos = array();
            } else {

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                $this->collTarifasDestinos = TarifasDestinoPeer::doSelectJoinTerceros($criteria, $con);
            }
        } else {

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastTarifasDestinoCriteria) || !$this->lastTarifasDestinoCriteria->equals($criteria)) {
                $this->collTarifasDestinos = TarifasDestinoPeer::doSelectJoinTerceros($criteria, $con);
            }
        }
        $this->lastTarifasDestinoCriteria = $criteria;

        return $this->collTarifasDestinos;
    }

    public function getTarifasDestinosJoinTarifasTaxis($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collTarifasDestinos === null) {
            if ($this->isNew()) {
                $this->collTarifasDestinos = array();
            } else {

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

                $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

                $this->collTarifasDestinos = TarifasDestinoPeer::doSelectJoinTarifasTaxis($criteria, $con);
            }
        } else {

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getId());

            $criteria->add(TarifasDestinoPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastTarifasDestinoCriteria) || !$this->lastTarifasDestinoCriteria->equals($criteria)) {
                $this->collTarifasDestinos = TarifasDestinoPeer::doSelectJoinTarifasTaxis($criteria, $con);
            }
        }
        $this->lastTarifasDestinoCriteria = $criteria;

        return $this->collTarifasDestinos;
    }

    public function initComisionadosContratos() {
        if ($this->collComisionadosContratos === null) {
            $this->collComisionadosContratos = array();
        }
    }

    public function getComisionadosContratos($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosContratos === null) {
            if ($this->isNew()) {
                $this->collComisionadosContratos = array();
            } else {

                $criteria->add(ComisionadosContratoPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                ComisionadosContratoPeer::addSelectColumns($criteria);
                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(ComisionadosContratoPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosContratoPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                ComisionadosContratoPeer::addSelectColumns($criteria);
                if (!isset($this->lastComisionadosContratoCriteria) || !$this->lastComisionadosContratoCriteria->equals($criteria)) {
                    $this->collComisionadosContratos = ComisionadosContratoPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastComisionadosContratoCriteria = $criteria;
        return $this->collComisionadosContratos;
    }

    public function countComisionadosContratos($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

        return ComisionadosContratoPeer::doCount($criteria, $distinct, $con);
    }

    public function addComisionadosContrato(ComisionadosContrato $l) {
        $this->collComisionadosContratos[] = $l;
        $l->setComisiones($this);
    }

    public function getComisionadosContratosJoinTerceros($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosContratos === null) {
            if ($this->isNew()) {
                $this->collComisionadosContratos = array();
            } else {

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinTerceros($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosContratoCriteria) || !$this->lastComisionadosContratoCriteria->equals($criteria)) {
                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinTerceros($criteria, $con);
            }
        }
        $this->lastComisionadosContratoCriteria = $criteria;

        return $this->collComisionadosContratos;
    }

    public function getComisionadosContratosJoinTransportes($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosContratos === null) {
            if ($this->isNew()) {
                $this->collComisionadosContratos = array();
            } else {

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinTransportes($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosContratoCriteria) || !$this->lastComisionadosContratoCriteria->equals($criteria)) {
                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinTransportes($criteria, $con);
            }
        }
        $this->lastComisionadosContratoCriteria = $criteria;

        return $this->collComisionadosContratos;
    }

    public function getComisionadosContratosJoinRegionales($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosContratos === null) {
            if ($this->isNew()) {
                $this->collComisionadosContratos = array();
            } else {

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinRegionales($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosContratoPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosContratoCriteria) || !$this->lastComisionadosContratoCriteria->equals($criteria)) {
                $this->collComisionadosContratos = ComisionadosContratoPeer::doSelectJoinRegionales($criteria, $con);
            }
        }
        $this->lastComisionadosContratoCriteria = $criteria;

        return $this->collComisionadosContratos;
    }

    public function initComisionadosObjss() {
        if ($this->collComisionadosObjss === null) {
            $this->collComisionadosObjss = array();
        }
    }

    public function getComisionadosObjss($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosObjss === null) {
            if ($this->isNew()) {
                $this->collComisionadosObjss = array();
            } else {

                $criteria->add(ComisionadosObjsPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosObjsPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                ComisionadosObjsPeer::addSelectColumns($criteria);
                $this->collComisionadosObjss = ComisionadosObjsPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(ComisionadosObjsPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosObjsPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                ComisionadosObjsPeer::addSelectColumns($criteria);
                if (!isset($this->lastComisionadosObjsCriteria) || !$this->lastComisionadosObjsCriteria->equals($criteria)) {
                    $this->collComisionadosObjss = ComisionadosObjsPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastComisionadosObjsCriteria = $criteria;
        return $this->collComisionadosObjss;
    }

    public function countComisionadosObjss($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

        $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

        return ComisionadosObjsPeer::doCount($criteria, $distinct, $con);
    }

    public function addComisionadosObjs(ComisionadosObjs $l) {
        $this->collComisionadosObjss[] = $l;
        $l->setComisiones($this);
    }

    public function getComisionadosObjssJoinTerceros($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosObjss === null) {
            if ($this->isNew()) {
                $this->collComisionadosObjss = array();
            } else {

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosObjss = ComisionadosObjsPeer::doSelectJoinTerceros($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosObjsCriteria) || !$this->lastComisionadosObjsCriteria->equals($criteria)) {
                $this->collComisionadosObjss = ComisionadosObjsPeer::doSelectJoinTerceros($criteria, $con);
            }
        }
        $this->lastComisionadosObjsCriteria = $criteria;

        return $this->collComisionadosObjss;
    }

    public function getComisionadosObjssJoinObjetosGasto($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collComisionadosObjss === null) {
            if ($this->isNew()) {
                $this->collComisionadosObjss = array();
            } else {

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

                $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

                $this->collComisionadosObjss = ComisionadosObjsPeer::doSelectJoinObjetosGasto($criteria, $con);
            }
        } else {

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getId());

            $criteria->add(ComisionadosObjsPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastComisionadosObjsCriteria) || !$this->lastComisionadosObjsCriteria->equals($criteria)) {
                $this->collComisionadosObjss = ComisionadosObjsPeer::doSelectJoinObjetosGasto($criteria, $con);
            }
        }
        $this->lastComisionadosObjsCriteria = $criteria;

        return $this->collComisionadosObjss;
    }

    public function initDestinoss() {
        if ($this->collDestinoss === null) {
            $this->collDestinoss = array();
        }
    }

    public function getDestinoss($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinoss === null) {
            if ($this->isNew()) {
                $this->collDestinoss = array();
            } else {

                $criteria->add(DestinosPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(DestinosPeer::ID_COMISION, $this->getVigencia());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                DestinosPeer::addSelectColumns($criteria);
                $this->collDestinoss = DestinosPeer::doSelect($criteria, $con);
            }
        } else {
            if (!$this->isNew()) {


                $criteria->add(DestinosPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(DestinosPeer::ID_COMISION, $this->getVigencia());


                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());


                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                DestinosPeer::addSelectColumns($criteria);
                if (!isset($this->lastDestinosCriteria) || !$this->lastDestinosCriteria->equals($criteria)) {
                    $this->collDestinoss = DestinosPeer::doSelect($criteria, $con);
                }
            }
        }
        $this->lastDestinosCriteria = $criteria;
        return $this->collDestinoss;
    }

    public function countDestinoss($criteria = null, $distinct = false, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

        $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

        $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

        $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

        return DestinosPeer::doCount($criteria, $distinct, $con);
    }

    public function addDestinos(Destinos $l) {
        $this->collDestinoss[] = $l;
        $l->setComisiones($this);
    }

    public function getDestinossJoinMunicipios($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinoss === null) {
            if ($this->isNew()) {
                $this->collDestinoss = array();
            } else {

                $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                $this->collDestinoss = DestinosPeer::doSelectJoinMunicipios($criteria, $con);
            }
        } else {

            $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastDestinosCriteria) || !$this->lastDestinosCriteria->equals($criteria)) {
                $this->collDestinoss = DestinosPeer::doSelectJoinMunicipios($criteria, $con);
            }
        }
        $this->lastDestinosCriteria = $criteria;

        return $this->collDestinoss;
    }

    public function getDestinossJoinDepartamentos($criteria = null, $con = null) {
        if ($criteria === null) {
            $criteria = new Criteria();
        } elseif ($criteria instanceof Criteria) {
            $criteria = clone $criteria;
        }

        if ($this->collDestinoss === null) {
            if ($this->isNew()) {
                $this->collDestinoss = array();
            } else {

                $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

                $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

                $this->collDestinoss = DestinosPeer::doSelectJoinDepartamentos($criteria, $con);
            }
        } else {

            $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getId());

            $criteria->add(DestinosPeer::VIGENCIA, $this->getVigencia());

            if (!isset($this->lastDestinosCriteria) || !$this->lastDestinosCriteria->equals($criteria)) {
                $this->collDestinoss = DestinosPeer::doSelectJoinDepartamentos($criteria, $con);
            }
        }
        $this->lastDestinosCriteria = $criteria;

        return $this->collDestinoss;
    }

}
