public function executeStart_tree(sfWebRequest $request)
 {
     $tree_id = $request->getParameter('treeId');
     $tree_id = explode('-', $tree_id);
     $tree_id = $tree_id[1];
     $token = $request->getParameter('token');
     $user = $this->getUser()->getAttribute(sfConfig::get('app_session_current_user'), null);
     $token_session = $this->getUser()->getAttribute(sfConfig::get('app_session_tree_production'), null);
     if ($token_session != null) {
         if ($user != null) {
             $tree = TreeScPeer::retrieveByPK($tree_id);
             if (is_object($tree)) {
                 if ($tree->getFlag() == 1) {
                     if ($token_session == $token) {
                         $tree->setProduccion('production');
                         $tree->setUpdateAt(time());
                         $tree->save();
                         $criterio = new Criteria();
                         $criterio->add(IndicatorsScPeer::TREE_ID, $tree->getId());
                         $criterio->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
                         $criterio->add(IndicatorsScPeer::ULTIMO_NODO, 1);
                         $criterio->addAscendingOrderByColumn(IndicatorsScPeer::PREVIOUS_ID);
                         $list_indicadores = IndicatorsScPeer::doSelect($criterio);
                         $group_data = new GroupDataIndicadores();
                         $group_data->setTreeId($tree->getId());
                         $group_data->setCreateAt(time());
                         $group_data->save();
                         foreach ($list_indicadores as $row) {
                             $data = new DataIndicadores();
                             $data->setIndicadorId($row->getId());
                             $data->setUserId($row->getResponsableId());
                             $data->setGroupData($group_data->getId());
                             if ($row->getValorActualEntregado() != '') {
                                 $data->setData($row->getValorActualEntregado());
                             } else {
                                 $data->setData(0);
                             }
                             $data->setCreateAt(time());
                             $data->setUpdateAt(time());
                             $data->save();
                             $this->recalcular($data->getIndicatorsSc());
                         }
                         $this->getUser()->getAttributeHolder()->remove(sfConfig::get('app_session_tree_production'));
                         $serviceProjection = new ProjectionsService();
                         $serviceProjection->generateData($tree->getId());
                         $this->redirect('@projections_start?idTree=' . $tree->getId());
                     } else {
                         return sfView::ERROR;
                     }
                 } else {
                     $this->message = 'flag tree incorrect';
                     return sfView::ERROR;
                 }
             } else {
                 $this->message = 'tree not found';
                 return sfView::ERROR;
             }
         } else {
             $this->message = 'session expired';
             return sfView::ERROR;
         }
     } else {
         $this->message = 'token error';
         return sfView::ERROR;
     }
 }
<?php

$service = new ProjectionsService();
$data = '{"columnas":[{"name":"' . $indicator->getTitulo() . '"}],"array":[';
$dataValue = "";
$contador = 1;
foreach ($object_rows as $obj) {
    $data = $data . '{"fecha":"' . date('d-m-Y', strtotime($obj->getUpdateAt())) . '","data":';
    $response = $service->returnValueProjection($indicator->getId(), date('Y-m-d 00:00:00', strtotime($obj->getUpdateAt())));
    $dataValue = $contador == count($object_rows) ? $obj->getData() . ',"vo":' . $response['vo'] . ',"vd":' . $response['vo'] . ',"vm":' . $response['vm'] . '}]}' : $obj->getData() . ',"vo":' . $response['vo'] . ',"vd":' . $response['vo'] . ',"vm":' . $response['vm'] . '},';
    $contador++;
    $data = $data . $dataValue;
}
echo $data;