Beispiel #1
0
 /**
  * Inserta un proyecto con los datos mínimos
  *
  * @param array $data
  * @return boolean
  */
 public function create($node = \GOTEO_NODE, &$errors = array())
 {
     $user = $_SESSION['user']->id;
     if (empty($user)) {
         return false;
     }
     // cojemos el número de proyecto de este usuario
     $query = self::query("SELECT COUNT(id) as num FROM project WHERE owner = ?", array($user));
     if ($now = $query->fetchObject()) {
         $num = $now->num + 1;
     } else {
         $num = 1;
     }
     // datos del usuario que van por defecto: name->contract_name,  location->location
     $userProfile = User::get($user);
     // datos del userpersonal por defecto a los cammpos del paso 2
     $userPersonal = User::getPersonal($user);
     $values = array(':id' => md5($user . '-' . $num), ':name' => Text::_("El nuevo proyecto de ") . $userProfile->name, ':lang' => 'es', ':status' => 1, ':progress' => 0, ':owner' => $user, ':node' => $node, ':amount' => 0, ':days' => 0, ':created' => date('Y-m-d'), ':contract_name' => $userPersonal->contract_name ? $userPersonal->contract_name : $userProfile->name, ':contract_nif' => $userPersonal->contract_nif, ':phone' => $userPersonal->phone, ':address' => $userPersonal->address, ':zipcode' => $userPersonal->zipcode, ':location' => $userPersonal->location ? $userPersonal->location : $userProfile->location, ':country' => $userPersonal->country ? $userPersonal->country : Check::country(), ':project_location' => $userPersonal->location ? $userPersonal->location : $userProfile->location);
     $campos = array();
     foreach (\array_keys($values) as $campo) {
         $campos[] = \str_replace(':', '', $campo);
     }
     $sql = "REPLACE INTO project (" . implode(',', $campos) . ")\n                 VALUES (" . implode(',', \array_keys($values)) . ")";
     try {
         self::query($sql, $values);
         foreach ($campos as $campo) {
             $this->{$campo} = $values[":{$campo}"];
         }
         return $this->id;
     } catch (\PDOException $e) {
         $errors[] = Text::_("ERROR al crear un nuevo proyecto") . "<br />{$sql}<br /><pre>" . print_r($values, 1) . "</pre>";
         \trace($this);
         die($errors[0]);
         return false;
     }
 }