コード例 #1
0
ファイル: CircunscripcionPeer.php プロジェクト: voota/voota
 public static function retrieveForAutoSelect($q, $limit)
 {
     $criteria = new Criteria();
     $pieces = explode(" ", $q);
     $criterions = array();
     $idx = 0;
     $criteria->addJoin(GeoPeer::ID, CircunscripcionPeer::GEO_ID);
     foreach ($pieces as $piece) {
         sfContext::getInstance()->getLogger()->debug("A SEARCH PIECE {$piece}");
         $criterions[$idx] = $criteria->getNewCriterion(GeoPeer::NOMBRE, '%' . $piece . '%', Criteria::LIKE);
         $criteria->addAnd($criterions[$idx]);
         $idx++;
     }
     $criteria->addAscendingOrderByColumn(GeoPeer::NOMBRE);
     $criteria->setLimit($limit);
     $circunscripciones = array();
     foreach (CircunscripcionPeer::doSelect($criteria) as $circunscripcion) {
         $circunscripciones[$circunscripcion->getId()] = (string) $circunscripcion;
     }
     return $circunscripciones;
 }
コード例 #2
0
 protected function execute($arguments = array(), $options = array())
 {
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection();
     $handle = fopen("php://stdin", "r");
     $line = fgets($handle);
     while ($line = fgets($handle)) {
         $data = explode(";", "{$line}");
         $c = new Criteria();
         $c->add(PartidoPeer::ABREVIATURA, $data[5]);
         $partido = PartidoPeer::doSelectOne($c);
         if (!$partido) {
             echo "Not found: (" . $data[5] . ")\n";
             continue;
         }
         $circu = CircunscripcionPeer::retrieveByPK($data[4]);
         $convocatoria = ConvocatoriaPeer::retrieveByPK($data[3]);
         $c = new Criteria();
         $c->add(ListaPeer::CONVOCATORIA_ID, $data[3]);
         $c->add(ListaPeer::CIRCUNSCRIPCION_ID, $data[4]);
         $c->add(ListaPeer::PARTIDO_ID, $partido->getId());
         $lista = ListaPeer::doSelectOne($c);
         if (!$lista) {
             $lista = new Lista();
             $lista->setPartido($partido);
             $lista->setCircunscripcion($circu);
             $lista->setConvocatoria($convocatoria);
             $lista->save();
             echo "Created lista ({$partido}, {$circu})\n";
         }
         $politicos = false;
         $c = new Criteria();
         $c->add("concat(nombre, ' ', apellidos)", trim($data[2]));
         //$c->add('fullname', utf8_encode( trim($data[2]) ), Criteria::EQUAL);
         $politicos = PoliticoPeer::doSelect($c);
         if (count($politicos) != 0) {
             echo "(ASIGNADO) " . $data[2] . "\n";
             $politico = $politicos[0];
         } else {
             echo "(NUEVO) " . $data[2] . "\n";
             $politico = new Politico();
             $nombreApellidos = explode(" ", $data[2]);
             $nombre = array_shift($nombreApellidos);
             $apellidos = implode(" ", $nombreApellidos);
             $politico->setNombre($nombre);
             $politico->setApellidos($apellidos);
             if ($data[7] != '1') {
                 if (count($data) > 10 && trim($data[10]) != '') {
                     $c = new Criteria();
                     $c->add(PartidoPeer::ABREVIATURA, $data[5]);
                     $partido = PartidoPeer::doSelectOne($c);
                     if ($partido) {
                         $politico->setPartido($partido);
                     }
                 } else {
                     $politico->setPartido($lista->getPartido());
                 }
             }
             if ($data[1] && trim($data[1]) != '') {
                 $politico->setSexo($data[1] == "hombre" ? 'H' : 'M');
             }
             $politico->save();
             $politicoI18n = new PoliticoI18n();
             $politicoI18n->setPolitico($politico);
             $politicoI18n->setCulture('es');
             $politicoI18n->save();
             $politicoI18n = new PoliticoI18n();
             $politicoI18n->setPolitico($politico);
             $politicoI18n->setCulture('ca');
             $politicoI18n->save();
         }
         $c = new Criteria();
         $c->add(PoliticoListaPeer::LISTA_ID, $lista->getId());
         $c->add(PoliticoListaPeer::POLITICO_ID, $politico->getId());
         $pl = PoliticoListaPeer::doSelectOne($c);
         if (!$pl) {
             $pl = new PoliticoLista();
             $pl->setLista($lista);
             $pl->setPolitico($politico);
         } else {
             echo "Ya estaba.\n";
         }
         if ($data[6] != '1') {
             $pl->setOrden($data[0]);
         }
         $pl->save();
         //echo $data[2];
     }
     fclose($handle);
 }
コード例 #3
0
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(CircunscripcionPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(CircunscripcionPeer::DATABASE_NAME);
         $criteria->add(CircunscripcionPeer::ID, $pks, Criteria::IN);
         $objs = CircunscripcionPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
コード例 #4
0
ファイル: actions.class.php プロジェクト: voota/voota
 public function executeAutoCompleteCi($request)
 {
     $this->getResponse()->setContentType('application/json');
     $circunscripciones = CircunscripcionPeer::retrieveForAutoSelect($request->getParameter('q'), $request->getParameter('limit'));
     return $this->renderText(json_encode($circunscripciones));
 }
コード例 #5
0
ファイル: loadMunisTask.class.php プロジェクト: voota/voota
 protected function execute($arguments = array(), $options = array())
 {
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection();
     $handle = fopen("php://stdin", "r");
     $line = fgets($handle);
     while ($line = fgets($handle)) {
         $data = explode(";", "{$line}");
         $c = new Criteria();
         $c->add(GeoPeer::NOMBRE, $data[3]);
         $geos = GeoPeer::doSelect($c);
         $aGeo = false;
         foreach ($geos as $geo) {
             if ($geo->getGeoRelatedByGeoId() != null && $geo->getGeoRelatedByGeoId()->getCodigo() && $geo->getGeoRelatedByGeoId()->getCodigo() != '') {
                 //echo 'geo: ' . $geo->getNombre() . "\n";
                 $aGeo = $geo;
             }
         }
         if (!$aGeo) {
             echo 'Geo not found: (' . $data[3] . ")\n";
             continue;
         }
         $c = new Criteria();
         $c->add(PartidoPeer::ABREVIATURA, $data[5]);
         $partido = PartidoPeer::doSelectOne($c);
         if (!$partido) {
             $partido = new Partido();
             $partido->setAbreviatura($data[5]);
             $partido->setIsActive(true);
             $partido->setNombre($data[5], 'es');
             $partido->setNombre($data[5], 'ca');
             $partido->save();
             echo "Created partido ({$partido})\n";
         }
         $c = new Criteria();
         $c->add(CircunscripcionPeer::GEO_ID, $aGeo->getId());
         $circu = CircunscripcionPeer::doSelectOne($c);
         $c = new Criteria();
         $c->addJoin(ConvocatoriaPeer::ELECCION_ID, EleccionPeer::ID);
         $c->addJoin(EleccionInstitucionPeer::ELECCION_ID, EleccionPeer::ID);
         $c->addJoin(InstitucionPeer::ID, EleccionInstitucionPeer::INSTITUCION_ID);
         $c->add(InstitucionPeer::GEO_ID, $aGeo->getId());
         $convocatoria = ConvocatoriaPeer::doSelectOne($c);
         if (!$convocatoria) {
             echo "Convocatoria not found: ({$geo})\n";
             continue;
         }
         $c = new Criteria();
         $c->add(ListaPeer::CONVOCATORIA_ID, $convocatoria->getId());
         $c->add(ListaPeer::CIRCUNSCRIPCION_ID, $circu->getId());
         $c->add(ListaPeer::PARTIDO_ID, $partido->getId());
         $lista = ListaPeer::doSelectOne($c);
         if (!$lista) {
             $lista = new Lista();
             $lista->setPartido($partido);
             $lista->setCircunscripcion($circu);
             $lista->setConvocatoria($convocatoria);
             $lista->save();
             echo "Created lista ({$partido}, {$circu})\n";
         }
         $politicos = false;
         $c = new Criteria();
         $c->add("concat(nombre, ' ', apellidos)", trim($data[2]));
         //$c->add('fullname', utf8_encode( trim($data[2]) ), Criteria::EQUAL);
         $politicos = PoliticoPeer::doSelect($c);
         if (count($politicos) != 0) {
             echo "(ASIGNADO) " . $data[2] . "\n";
             $politico = $politicos[0];
         } else {
             echo "(NUEVO) " . $data[2] . "\n";
             $politico = new Politico();
             $nombreApellidos = explode(" ", $data[2]);
             $nombre = array_shift($nombreApellidos);
             $apellidos = implode(" ", $nombreApellidos);
             $politico->setNombre($nombre);
             $politico->setApellidos($apellidos);
             if ($data[7] != '1') {
                 if (trim($data[10]) != '') {
                     $c = new Criteria();
                     $c->add(PartidoPeer::ABREVIATURA, $data[5]);
                     $partido = PartidoPeer::doSelectOne($c);
                     if ($partido) {
                         $politico->setPartido($partido);
                     }
                 } else {
                     $politico->setPartido($lista->getPartido());
                 }
             }
             $politico->setSexo($data[1] == "hombre" ? 'H' : 'M');
             $politico->save();
             $politicoI18n = new PoliticoI18n();
             $politicoI18n->setPolitico($politico);
             $politicoI18n->setCulture('es');
             $politicoI18n->save();
             $politicoI18n = new PoliticoI18n();
             $politicoI18n->setPolitico($politico);
             $politicoI18n->setCulture('ca');
             $politicoI18n->save();
         }
         $c = new Criteria();
         $c->add(PoliticoListaPeer::LISTA_ID, $lista->getId());
         $c->add(PoliticoListaPeer::POLITICO_ID, $politico->getId());
         $pl = PoliticoListaPeer::doSelectOne($c);
         if (!$pl) {
             $pl = new PoliticoLista();
             $pl->setLista($lista);
             $pl->setPolitico($politico);
         } else {
             echo "Ya estaba.\n";
         }
         $pl->setOrden($data[0]);
         $pl->save();
     }
     fclose($handle);
 }
コード例 #6
0
ファイル: BaseListaCalle.php プロジェクト: voota/voota
 /**
  * Get the associated Circunscripcion object
  *
  * @param      PropelPDO Optional Connection object.
  * @return     Circunscripcion The associated Circunscripcion object.
  * @throws     PropelException
  */
 public function getCircunscripcion(PropelPDO $con = null)
 {
     if ($this->aCircunscripcion === null && $this->circunscripcion_id !== null) {
         $this->aCircunscripcion = CircunscripcionPeer::retrieveByPk($this->circunscripcion_id);
         /* The following can be used additionally to
         		   guarantee the related object contains a reference
         		   to this object.  This level of coupling may, however, be
         		   undesirable since it could result in an only partially populated collection
         		   in the referenced object.
         		   $this->aCircunscripcion->addListaCalles($this);
         		 */
     }
     return $this->aCircunscripcion;
 }
コード例 #7
0
ファイル: BaseGeo.php プロジェクト: voota/voota
 /**
  * Returns the number of related Circunscripcion objects.
  *
  * @param      Criteria $criteria
  * @param      boolean $distinct
  * @param      PropelPDO $con
  * @return     int Count of related Circunscripcion objects.
  * @throws     PropelException
  */
 public function countCircunscripcions(Criteria $criteria = null, $distinct = false, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(GeoPeer::DATABASE_NAME);
     } else {
         $criteria = clone $criteria;
     }
     if ($distinct) {
         $criteria->setDistinct();
     }
     $count = null;
     if ($this->collCircunscripcions === null) {
         if ($this->isNew()) {
             $count = 0;
         } else {
             $criteria->add(CircunscripcionPeer::GEO_ID, $this->id);
             $count = CircunscripcionPeer::doCount($criteria, false, $con);
         }
     } else {
         // criteria has no effect for a new object
         if (!$this->isNew()) {
             // the following code is to determine if a new query is
             // called for.  If the criteria is the same as the last
             // one, just return count of the collection.
             $criteria->add(CircunscripcionPeer::GEO_ID, $this->id);
             if (!isset($this->lastCircunscripcionCriteria) || !$this->lastCircunscripcionCriteria->equals($criteria)) {
                 $count = CircunscripcionPeer::doCount($criteria, false, $con);
             } else {
                 $count = count($this->collCircunscripcions);
             }
         } else {
             $count = count($this->collCircunscripcions);
         }
     }
     return $count;
 }
コード例 #8
0
ファイル: BaseListaPeer.php プロジェクト: voota/voota
 /**
  * Selects a collection of Lista objects pre-filled with all related objects except Convocatoria.
  *
  * @param      Criteria  $criteria
  * @param      PropelPDO $con
  * @param      String    $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN
  * @return     array Array of Lista objects.
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function doSelectJoinAllExceptConvocatoria(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $criteria = clone $criteria;
     // Set the correct dbName if it has not been overridden
     // $criteria->getDbName() will return the same object if not set to another value
     // so == check is okay and faster
     if ($criteria->getDbName() == Propel::getDefaultDB()) {
         $criteria->setDbName(self::DATABASE_NAME);
     }
     ListaPeer::addSelectColumns($criteria);
     $startcol2 = ListaPeer::NUM_COLUMNS - ListaPeer::NUM_LAZY_LOAD_COLUMNS;
     PartidoPeer::addSelectColumns($criteria);
     $startcol3 = $startcol2 + (PartidoPeer::NUM_COLUMNS - PartidoPeer::NUM_LAZY_LOAD_COLUMNS);
     CircunscripcionPeer::addSelectColumns($criteria);
     $startcol4 = $startcol3 + (CircunscripcionPeer::NUM_COLUMNS - CircunscripcionPeer::NUM_LAZY_LOAD_COLUMNS);
     $criteria->addJoin(ListaPeer::PARTIDO_ID, PartidoPeer::ID, $join_behavior);
     $criteria->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID, $join_behavior);
     // symfony_behaviors behavior
     foreach (sfMixer::getCallables(self::getMixerPreSelectHook(__FUNCTION__)) as $sf_hook) {
         call_user_func($sf_hook, 'BaseListaPeer', $criteria, $con);
     }
     $stmt = BasePeer::doSelect($criteria, $con);
     $results = array();
     while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
         $key1 = ListaPeer::getPrimaryKeyHashFromRow($row, 0);
         if (null !== ($obj1 = ListaPeer::getInstanceFromPool($key1))) {
             // We no longer rehydrate the object, since this can cause data loss.
             // See http://propel.phpdb.org/trac/ticket/509
             // $obj1->hydrate($row, 0, true); // rehydrate
         } else {
             $cls = ListaPeer::getOMClass(false);
             $obj1 = new $cls();
             $obj1->hydrate($row);
             ListaPeer::addInstanceToPool($obj1, $key1);
         }
         // if obj1 already loaded
         // Add objects for joined Partido rows
         $key2 = PartidoPeer::getPrimaryKeyHashFromRow($row, $startcol2);
         if ($key2 !== null) {
             $obj2 = PartidoPeer::getInstanceFromPool($key2);
             if (!$obj2) {
                 $cls = PartidoPeer::getOMClass(false);
                 $obj2 = new $cls();
                 $obj2->hydrate($row, $startcol2);
                 PartidoPeer::addInstanceToPool($obj2, $key2);
             }
             // if $obj2 already loaded
             // Add the $obj1 (Lista) to the collection in $obj2 (Partido)
             $obj2->addLista($obj1);
         }
         // if joined row is not null
         // Add objects for joined Circunscripcion rows
         $key3 = CircunscripcionPeer::getPrimaryKeyHashFromRow($row, $startcol3);
         if ($key3 !== null) {
             $obj3 = CircunscripcionPeer::getInstanceFromPool($key3);
             if (!$obj3) {
                 $cls = CircunscripcionPeer::getOMClass(false);
                 $obj3 = new $cls();
                 $obj3->hydrate($row, $startcol3);
                 CircunscripcionPeer::addInstanceToPool($obj3, $key3);
             }
             // if $obj3 already loaded
             // Add the $obj1 (Lista) to the collection in $obj3 (Circunscripcion)
             $obj3->addLista($obj1);
         }
         // if joined row is not null
         $results[] = $obj1;
     }
     $stmt->closeCursor();
     return $results;
 }
コード例 #9
0
ファイル: Convocatoria.php プロジェクト: voota/voota
 public function getResults($geoName = false, $sorted = true)
 {
     $aKey = "Convocatoria_" . $this->getId() . "-{$geoName}-{$sorted}";
     $cache = sfcontext::getInstance()->getViewCacheManager() ? sfcontext::getInstance()->getViewCacheManager()->getCache() : false;
     if ($cache) {
         $key = md5($aKey);
         $data = unserialize($cache->get($key));
     } else {
         $data = false;
     }
     if (!$data) {
         $res = array();
         $c = new Criteria();
         $c->addJoin(ListaPeer::PARTIDO_ID, PartidoPeer::ID);
         $c->add(ListaPeer::CONVOCATORIA_ID, $this->getId());
         $c->setDistinct();
         $res['partidos'] = PartidoPeer::doSelect($c);
         // Circus
         $c = new Criteria();
         $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID);
         $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID);
         $c->add(ListaPeer::CONVOCATORIA_ID, $this->getId());
         $c->addAscendingOrderByColumn(GeoPeer::NOMBRE);
         $c->setDistinct();
         //$this->geos = GeoPeer::doSelect( $c );
         $res['circus'] = CircunscripcionPeer::doSelect($c);
         $instituciones = $this->getEleccion()->getEleccionInstitucions();
         //$this->institucionName = $instituciones[0]->getInstitucion();
         $res['institucionName'] = $instituciones[0]->getInstitucion();
         // Minimo de votos necesario para obtener escaño
         $listas = $this->getListas();
         if ($geoName) {
             $c = new Criteria();
             $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID);
             $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID);
             $c->add(ListaPeer::CONVOCATORIA_ID, $this->getId());
             $c->add(GeoPeer::NOMBRE, $geoName);
             //$this->geos = GeoPeer::doSelect( $c );
             $circu = CircunscripcionPeer::doSelectOne($c);
             $numEscanyos = $circu->getEscanyos();
         } else {
             $numEscanyos = 0;
             $circuCounted = array();
             foreach ($listas as $lista) {
                 if (!in_array($lista->getCircunscripcion()->getId(), $circuCounted)) {
                     $circuCounted[] = $lista->getCircunscripcion()->getId();
                     $numEscanyos += $lista->getCircunscripcion()->getEscanyos();
                 }
             }
         }
         $listaElectoral = ListaElectoral::getInstance($this->getId(), false, $geoName);
         $politicos = $listaElectoral->getPoliticos();
         $idx = 0;
         //$this->minSumu = 0;
         $res['minSumu'] = 0;
         //$this->minSumd = 0;
         $res['minSumd'] = 0;
         $res['lastDate'] = null;
         $res['apellidos'] = '';
         $res['nombre'] = '';
         foreach ($politicos as $politico) {
             $idx++;
             if ($idx == $numEscanyos + 1) {
                 $res['minSumu'] = $politico->getSumu();
                 $res['minSumd'] = $politico->getSumd();
                 $res['lastDate'] = $politico->getLastDate();
                 $res['apellidos'] = $politico->getApellidos();
                 $res['nombre'] = $politico->getNombre();
             }
         }
         // Ordenar por escaños
         if ($sorted) {
             $idx = 0;
             $res['totalEscanyos'] = 0;
             foreach ($res['partidos'] as $partido) {
                 $listaElectoral = new ListaElectoral($this->getId(), $partido->getId(), $geoName);
                 $escanyos = $listaElectoral->getEscanyos($res['minSumu'], $res['minSumd'], $res['lastDate'], $res['apellidos']);
                 $res['totalEscanyos'] += $escanyos;
                 for ($j = 0; $j < $idx; $j++) {
                     $listaElectoral2 = ListaElectoral::getInstance($this->getId(), $res['partidos'][$j]->getId(), $geoName);
                     if ($listaElectoral2->getEscanyos($res['minSumu'], $res['minSumd'], $res['lastDate'], $res['apellidos']) < $escanyos) {
                         $partidoTmp = clone $res['partidos'][$idx];
                         $res['partidos'][$idx] = $res['partidos'][$j];
                         $res['partidos'][$j] = $partidoTmp;
                     }
                 }
                 $idx++;
             }
         }
         $data = $res;
         if ($cache) {
             $n = rand(0, 100);
             $cache->set($key, serialize($data ? $data : "zero"), 3600 * $n / 100);
         }
     }
     return $data == "zero" ? 0 : $data;
 }
コード例 #10
0
ファイル: BaseCircunscripcion.php プロジェクト: voota/voota
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = CircunscripcionPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setGeoId($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setEscanyos($arr[$keys[2]]);
     }
 }
コード例 #11
0
ファイル: ListaElectoral.class.php プロジェクト: voota/voota
 public function getEscanyos($minSumu, $minSumd, $lastDate, $apellidos)
 {
     $cache = sfcontext::getInstance()->getViewCacheManager() ? sfcontext::getInstance()->getViewCacheManager()->getCache() : false;
     if ($cache) {
         $aKey = "Escanyos_" . $this->convocatoriaId . "-" . $this->partidoId . "-" . $this->geoName . "-{$minSumu}-{$minSumd}-{$lastDate}-{$apellidos}";
         $key = md5($aKey);
         $data = unserialize($cache->get($key));
     } else {
         $data = false;
     }
     if (!$data) {
         //echo "($aKey-$key)";
         if ($this->geoName) {
             if (!$this->numEscanyos) {
                 $this->numEscanyos = 0;
                 foreach ($this->politicos as $politico) {
                     if ($politico->getSumu() > $minSumu || $politico->getSumu() == $minSumu && $politico->getSumd() < $minSumd || $politico->getSumu() == $minSumu && $politico->getSumd() == $minSumd && $politico->getLastDate() > $lastDate && $minSumu != 0 || $politico->getSumu() == $minSumu && $politico->getSumd() == $minSumd && $politico->getLastDate() == $lastDate && $politico->getApellidos() > $apellidos && $minSumu != 0) {
                         //echo "(".$politico->getApellidos().",".$politico->getSumu().",".$politico->getSumd().",".$politico->getLastDate().")";
                         $this->numEscanyos++;
                     }
                 }
             }
         } else {
             // Circus
             $c = new Criteria();
             $c->addJoin(ListaPeer::CIRCUNSCRIPCION_ID, CircunscripcionPeer::ID);
             $c->addJoin(CircunscripcionPeer::GEO_ID, GeoPeer::ID);
             $c->add(ListaPeer::CONVOCATORIA_ID, $this->convocatoriaId);
             $c->addAscendingOrderByColumn(GeoPeer::NOMBRE);
             $c->setDistinct();
             $circus = CircunscripcionPeer::doSelect($c);
             $this->numEscanyos = 0;
             foreach ($circus as $circu) {
                 $listaElectoral = new ListaElectoral($this->convocatoriaId, $this->partidoId, $circu->getGeo()->getNombre());
                 $res = $this->convocatoria->getResults($circu->getGeo()->getNombre(), false);
                 $sum = $listaElectoral->getEscanyos($res['minSumu'], $res['minSumd'], $res['lastDate'], $res['apellidos']);
                 $this->numEscanyos += $sum;
             }
         }
         $data = $this->numEscanyos;
         if ($cache) {
             $cache->set($key, serialize($data ? $data : "zero"), 3600);
         }
     }
     return $data == "zero" ? 0 : $data;
 }