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 } } } } }