public function executeSave(sfWebRequest $request)
 {
     for ($i = 1; $i < 10; $i++) {
         $id_data = $request->getParameter('idfecha' . $i);
         if ($id_data != "") {
             $data = DataIndicadoresPeer::retrieveByPK($id_data);
             if ($data->getData() != $request->getParameter('f' . $i)) {
                 $data->setData($request->getParameter('f' . $i));
                 $data->save();
                 //aca verificamos si el ultimo registro
                 $rpt = $this->is_the_last_record($data);
                 if ($rpt) {
                     $indicador = IndicatorsScPeer::retrieveByPK($data->getIndicadorId());
                     if (is_object($indicador)) {
                         $indicador->setValorActualEntregado($request->getParameter('f' . $i));
                         $indicador->save();
                     }
                     $criterio = new Criteria();
                     $criterio->add(IndicatorsScPeer::TREE_ID, $indicador->getTreeId());
                     $criterio->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
                     $criterio->add(IndicatorsScPeer::ULTIMO_NODO, 1);
                     $criterio->addAscendingOrderByColumn(IndicatorsScPeer::PREVIOUS_ID);
                     $list_indicadores = IndicatorsScPeer::doSelect($criterio);
                     foreach ($list_indicadores as $row) {
                         $var = $this->recalcular($row);
                     }
                     //set a los valores de actuales de los indicadores
                 }
             }
         }
     }
 }
 public function executeSave(sfWebRequest $request)
 {
     $lib = new my_lib();
     for ($i = 1; $i < 10; $i++) {
         $id_data = $request->getParameter('idfecha' . $i);
         if ($id_data != "") {
             $data = DataIndicadoresPeer::retrieveByPK($id_data);
             if ($data->getData() != $request->getParameter('f' . $i)) {
                 $data->setData($request->getParameter('f' . $i));
                 $data->save();
                 /*
                  * aca verificamos si el ultimo registo (de la tabla group_data)
                  * 
                  */
                 $rpt = $this->is_the_last_record($data);
                 if ($rpt) {
                     $indicador = IndicatorsScPeer::retrieveByPK($data->getIndicadorId());
                     if (is_object($indicador)) {
                         $respuesta = $lib->getTipoConector($data->getIndicadorId());
                         $indicador->setValorActualEntregado($request->getParameter('f' . $i));
                         $indicador->save();
                     }
                     /*
                      * Obtengo los indicadores que tienen indicadores hijos ( ultimos indicadores )
                      * o comienzo a recacular todos los valores Actuales de todos los indicadores
                      */
                     $criterio = new Criteria();
                     $criterio->add(IndicatorsScPeer::TREE_ID, $indicador->getTreeId());
                     $criterio->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
                     $criterio->add(IndicatorsScPeer::ULTIMO_NODO, 1);
                     $criterio->addAscendingOrderByColumn(IndicatorsScPeer::PREVIOUS_ID);
                     $list_indicadores = IndicatorsScPeer::doSelect($criterio);
                     foreach ($list_indicadores as $row) {
                         if ($row->getPreviousId() != 0) {
                             $var = $this->recalcular($row, $data->getCreateAt());
                         }
                     }
                     //set a los valores de actuales de los indicadores
                 }
             }
         }
     }
 }