/** * 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; } }