public function updateDataIndicadores($idTree)
 {
     $criterio = new Criteria();
     $criterio->add(IndicatorsScPeer::TREE_ID, $idTree);
     $criterio->add(IndicatorsScPeer::ULTIMO_NODO, 1, Criteria::NOT_EQUAL);
     $listIndicadores = IndicatorsScPeer::doSelect($criterio);
     $countListIndicadores = IndicatorsScPeer::doCount($criterio);
     if ($countListIndicadores > 0) {
         foreach ($listIndicadores as $row) {
             $criteria = new Criteria();
             $criteria->add(DataIndicadoresPeer::INDICADOR_ID, $row->getId());
             DataIndicadoresPeer::doDelete($criteria);
         }
     }
     return array("success" => true, "message" => "exito");
 }
 public function haveChildren($treeBean = null)
 {
     if ($treeBean != null && is_object($treeBean)) {
         $criterio_busqueda = new Criteria();
         $criterio_busqueda->add(IndicatorsScPeer::TREE_ID, $treeBean->getId());
         $criterio_busqueda->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
         $listIndicator = IndicatorsScPeer::doSelect($criterio_busqueda);
         $countIndicator = IndicatorsScPeer::doCount($criterio_busqueda);
         if ($countIndicator > 0) {
             return array("success" => true, "message" => "{haveChildren}-success", "object" => $listIndicator);
         } else {
             return array("success" => false, "message" => "{haveChildren}-objeto no encontrado");
         }
     } else {
         return array("success" => false, "message" => "{haveChildren}-parametro invalido");
     }
 }
 /**
  * Returns the number of related IndicatorsSc objects.
  *
  * @param      Criteria $criteria
  * @param      boolean $distinct
  * @param      PropelPDO $con
  * @return     int Count of related IndicatorsSc objects.
  * @throws     PropelException
  */
 public function countIndicatorsScs(Criteria $criteria = null, $distinct = false, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(UserScPeer::DATABASE_NAME);
     } else {
         $criteria = clone $criteria;
     }
     if ($distinct) {
         $criteria->setDistinct();
     }
     $count = null;
     if ($this->collIndicatorsScs === null) {
         if ($this->isNew()) {
             $count = 0;
         } else {
             $criteria->add(IndicatorsScPeer::RESPONSABLE_ID, $this->id);
             $count = IndicatorsScPeer::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(IndicatorsScPeer::RESPONSABLE_ID, $this->id);
             if (!isset($this->lastIndicatorsScCriteria) || !$this->lastIndicatorsScCriteria->equals($criteria)) {
                 $count = IndicatorsScPeer::doCount($criteria, false, $con);
             } else {
                 $count = count($this->collIndicatorsScs);
             }
         } else {
             $count = count($this->collIndicatorsScs);
         }
     }
     return $count;
 }
 public function executeReturn_nodes_childrens(sfWebRequest $request)
 {
     //aca retorno lista de indicadores inferiores
     //primero valido si tiene conectores inferiores
     $indicador_padre_id = $request->getParameter('indicatorPk');
     //si tiene concetores inferiores envio la lista de conectores inferiores
     //en la consuta solo necesito id-configuracion(valor asignado por padre)-titulo
     $criterio_busqueda = new Criteria();
     /*0*/
     $criterio_busqueda->addSelectColumn(IndicatorsScPeer::ID);
     /*1*/
     $criterio_busqueda->addSelectColumn(IndicatorsScPeer::CONECTORES_CONFIGURE);
     /*2*/
     $criterio_busqueda->addSelectColumn(IndicatorsScPeer::TITULO);
     $criterio_busqueda->add(IndicatorsScPeer::PREVIOUS_ID, $indicador_padre_id);
     $criterio_busqueda->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
     $lista_indicadores_hijos = IndicatorsScPeer::doSelectStmt($criterio_busqueda);
     $this->count = IndicatorsScPeer::doCount($criterio_busqueda);
     $this->list = $lista_indicadores_hijos;
 }
 private function soy_padre($indicador)
 {
     $criterio = new Criteria();
     $criterio->add(IndicatorsScPeer::PREVIOUS_ID, $indicador->getId());
     $cantidad = IndicatorsScPeer::doCount($criterio);
     if ($cantidad > 0) {
         return true;
     } else {
         return false;
     }
 }
 public function executeDelete_indicador(sfWebRequest $request)
 {
     $indicator = $request->getParameter('indicator');
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     if ($user != null) {
         try {
             $conn = Propel::getConnection();
             $conn->beginTransaction();
             $indicadorBean = IndicatorsScPeer::retrieveByPK($indicator);
             if (is_object($indicadorBean)) {
                 $id_tree = $indicadorBean->getTreeId();
                 $criterio_indicadores = new Criteria();
                 $criterio_indicadores->add(IndicatorsScPeer::PARENTS, '%p' . $indicadorBean->getId() . 's%', Criteria::LIKE);
                 $criterio_update = new Criteria();
                 $criterio_update->add(IndicatorsScPeer::FLAG, 'eliminado');
                 BasePeer::doUpdate($criterio_indicadores, $criterio_update, $conn);
                 //antes de eliminar el indicador vamos a revisar si el indicador antesesor
                 //seria el ultimo nodo y asi cambiarle su estado de ultimo_nodo a true
                 /*aca reviso si hay indicadores que todovia dependan del anterior indicador*/
                 $criterio_set_estado = new Criteria();
                 $criterio_set_estado->add(IndicatorsScPeer::PREVIOUS_ID, $indicadorBean->getPreviousId());
                 /*si es asi entonces no cambio nada encambio si no hay ninguno entonces quiere decir
                  * que ese indicador quedaria como ultimo y entonces tendria que cambiarle el estado */
                 $cantidad_de_registros = IndicatorsScPeer::doCount($criterio_set_estado);
                 /* menor igual 1 por que por logica por lo menos me va botar 1 resultado esta
                  * consulta (por el indicador actual)
                  */
                 if ($cantidad_de_registros <= 1) {
                     $indicador_update = IndicatorsScPeer::retrieveByPK($indicadorBean->getPreviousId());
                     $indicador_update->setUltimoNodo(true);
                     $indicador_update->save();
                 }
                 $indicadorBean->setFlag('eliminado');
                 $indicadorBean->save();
                 $conn->commit();
                 /*Despues de eliminar el o los nodos vamos a enviar nuevamente el arbol y
                  * sus indicadores (nodos) para que se arme nuevamente.
                  */
                 $criterio = new Criteria();
                 $criterio->add(TreeScPeer::USER_ID, $user->getId());
                 $criterio->add(TreeScPeer::ID, $id_tree);
                 $tree = TreeScPeer::doSelectOne($criterio);
                 $criterio->clear();
                 if (is_object($tree)) {
                     $criterio->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
                     $criterio->add(IndicatorsScPeer::TREE_ID, $tree->getId());
                     $criterio->addAscendingOrderByColumn(IndicatorsScPeer::PREVIOUS_ID);
                     $list_indicadores_send = IndicatorsScPeer::doSelect($criterio);
                     $this->lista_indicadores = $list_indicadores_send;
                     $this->tree = $tree;
                 }
                 $conn = Propel::close();
                 return sfView::SUCCESS;
             } else {
                 $this->message = 'el indicador no existe';
                 $conn = Propel::close();
                 return sfView::ERROR;
             }
         } catch (Exception $e) {
             $conn = Propel::close();
             return sfView::ERROR;
         }
     } else {
         $this->message = 'session expired';
         $conn = Propel::close();
         return sfView::ERROR;
     }
 }