public function executeCreate_tree(sfWebRequest $request)
 {
     $request->setRequestFormat('json');
     $title = $request->getParameter('item_title');
     $user = $this->getUser()->getAttribute('s_current_user', null);
     if ($user != null) {
         try {
             $conn = Propel::getConnection();
             $conn->beginTransaction();
             $tree_bean = new TreeSc();
             $tree_bean->setName($title);
             $tree_bean->setUserId($user->getId());
             $tree_bean->setConfigureFlag('');
             $tree_bean->setConfigureDesign('');
             $tree_bean->setFlag(1);
             $tree_bean->save();
             $tree_user_bean = new TreeUser();
             $tree_user_bean->setUserId($tree_bean->getUserId());
             $tree_user_bean->setTreeId($tree_bean->getId());
             $tree_user_bean->save();
             $conn->commit();
             $this->message = 'success';
             $this->treepk = $tree_bean->getId();
             $this->title = $tree_bean->getName();
             return sfView::SUCCESS;
         } catch (Exception $e) {
             $this->message = $e->getMessage();
             return sfView::ERROR;
         }
     } else {
         $this->message = 'session expired';
         return sfView::ERROR;
     }
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      TreeSc $value A TreeSc object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(TreeSc $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
 /**
  * Declares an association between this object and a TreeSc object.
  *
  * @param      TreeSc $v
  * @return     TreeUser The current object (for fluent API support)
  * @throws     PropelException
  */
 public function setTreeSc(TreeSc $v = null)
 {
     if ($v === null) {
         $this->setTreeId(NULL);
     } else {
         $this->setTreeId($v->getId());
     }
     $this->aTreeSc = $v;
     // Add binding for other direction of this n:n relationship.
     // If this object has already been added to the TreeSc object, it will not be re-added.
     if ($v !== null) {
         $v->addTreeUser($this);
     }
     return $this;
 }
 private function verificar_insert_data($tree)
 {
     $tree = new TreeSc();
     $tree->getPeriodoId();
     //cada 15 dias
     $criterio = new Criteria();
     $criterio->add(IndicatorsScPeer::FLAG, '%habilitado%', Criteria::LIKE);
     $criterio->add(IndicatorsScPeer::TREE_ID, $tree->getId());
     $indicador = IndicatorsScPeer::doSelectOne($criterio);
     $criterio->clear();
     $criterio->add(DataIndicadoresPeer::INDICADOR_ID, $indicador->getId());
     $criterio->addDescendingOrderByColumn(DataIndicadoresPeer::CREATE_AT);
     $data = DataIndicadoresPeer::doSelectOne($criterio);
     $criterio = new Criteria();
     $criterio->add(DataIndicadoresPeer::INDICADOR_ID, 24);
     $criterio->addDescendingOrderByColumn(DataIndicadoresPeer::CREATE_AT);
     $data = DataIndicadoresPeer::doSelectOne($criterio);
     $ultima_de_fecha_registro = new DateTime($data->getCreateAt());
     $ultima_de_fecha_registro = $ultima_de_fecha_registro->format('Y-m-d');
     $array = explode('-', $ultima_de_fecha_registro);
     $fecha_actual = mktime(0, 0, 0, date('m'), date("d"), date('Y'));
     $fecha_actual = date('Y-m-d', $fecha_actual);
     /* if($fecha_proyectada<=$fecha_actual){}*/
     //semanal
     if ($tree->getPeriodoId() == 1) {
         $fecha_proyectada = mktime(0, 0, 0, $array[1], $array[2] + 7, $array[0]);
         $fecha_proyectada = date('Y-m-d', $fecha_proyectada);
         //cada quincena
     } elseif ($tree->getPeriodoId() == 2) {
         //si el dia de ultimo registro en menos a quince
         //busco el 15 de ese mes
         if ($array[2] < 15) {
             //la fecha programada es:
             $fecha_proyectada = $this->obtener_fecha_por_dia(15);
         } else {
             $fecha_proyectada = $this->obtener_fecha_por_dia(1);
         }
         //cada bimestre
     } elseif ($tree->getPeriodoId() == 3) {
         $fecha_proyectada = mktime(0, 0, 0, $array[1], $array[2] + 0, $array[0]);
         $fecha_proyectada = date('Y-m-d', $fecha_proyectada);
         //cada trimestre
     } else {
         $fecha_proyectada = mktime(0, 0, 0, $array[1], $array[2] + 0, $array[0]);
         $fecha_proyectada = date('Y-m-d', $fecha_proyectada);
     }
 }