public static function countTareasPendientes() { $c = TareaPeer::getCriterioAlcance(); $hoy = new Date(); $hoy_str = $hoy->toString(FMT_DATEMYSQL); $c->addAnd(TareaPeer::FECHA_INICIO, $hoy_str, Criteria::LESS_EQUAL); $c->addAnd(TareaPeer::FECHA_VENCIMIENTO, $hoy_str, Criteria::GREATER_EQUAL); //$c->addAnd();//tomar en cuenta los estados? $cuantas = TareaPeer::doCount($c); //param 2: distinct. return $cuantas; }
/** * Returns the number of related Tarea objects. * * @param Criteria $criteria * @param boolean $distinct * @param PropelPDO $con * @return int Count of related Tarea objects. * @throws PropelException */ public function countTareas(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) { if ($criteria === null) { $criteria = new Criteria(UsuarioPeer::DATABASE_NAME); } else { $criteria = clone $criteria; } if ($distinct) { $criteria->setDistinct(); } $count = null; if ($this->collTareas === null) { if ($this->isNew()) { $count = 0; } else { $criteria->add(TareaPeer::ID_USUARIO, $this->id_usuario); $count = TareaPeer::doCount($criteria, $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(TareaPeer::ID_USUARIO, $this->id_usuario); if (!isset($this->lastTareaCriteria) || !$this->lastTareaCriteria->equals($criteria)) { $count = TareaPeer::doCount($criteria, $con); } else { $count = count($this->collTareas); } } else { $count = count($this->collTareas); } } return $count; }
/** * Para modo telemarketing directo. Muestra la llamada solicitada, para la campaña actual. * Es un bucle infinito, a no ser que se acaben todas las llamadas, pendientes. * @version 02-04-09 * @author Ana Martín */ public function mostrarLlamada($num_llamada) { /* Para calcular el número total de llamadas que le quedan. */ $c = $this->getCriterio(); $c->add(TareaPeer::ID_ESTADO_TAREA, TareaPeer::ID_ESTADO_EVENTO_PLANEADO); $c->add(TareaPeer::FECHA_INICIO, date('Y-m-d H:i:s'), Criteria::LESS_EQUAL); $numero_total = TareaPeer::doCount($c); /*Fin para*/ $c = $this->getCriterio(); $c->add(TareaPeer::ID_ESTADO_TAREA, TareaPeer::ID_ESTADO_EVENTO_PLANEADO); $c->add(TareaPeer::FECHA_INICIO, date('Y-m-d H:i:s'), Criteria::LESS_EQUAL); $c->addDescendingOrderByColumn(TareaPeer::FECHA_INICIO); $c->setOffset($num_llamada); $tarea = TareaPeer::doSelectOne($c); if ($tarea) { return $this->redirect('tareas/show?id_tarea=' . $tarea->getPrimaryKey() . '&num_llam=' . $num_llamada . '&numero_total=' . $numero_total); } else { if ($num_llamada != 0) { $this->mostrarLlamada(0); } else { $this->getUser()->setFlash('notice_error', 'No hay llamadas pendientes aún, para esta campaña. Intentelo más tarde o pruebe con otra campaña'); return $this->redirect('tareas/telemarketingDirecto'); } } }