/** * Register the new user provided * @param <type> $user * @return boolean registration result */ public static function register($user) { $user->status = User::STATUS_NOT_CONFIRMED; $user->created = time(); $newPassword = UserService::createPassword(); $user->password = md5($newPassword); // Notify to the user $mail = new Mailer(); $mail->From = '*****@*****.**'; $mail->FromName = 'AutoMotoOcasion'; $mail->AddAddress($user->email); $mail->Subject = Yii::t('user', 'AutoMotoOcasion registration'); $mail->setBodyFromTemplate(array('user' => $user, 'newPassword' => $newPassword), 'mail_register'); if ($mail->Send()) { $user->save(false); return true; } else { return false; } }
/** * Effectue la serialisation de la commande dans la base de données * en utilisant une transaction afin de valider la serialisation * complete de la commande. * * @param <type> $form formulaire de la carte de credit du client * @param <type> $user utilisateur de la session associé au client * @param <type> $address adresse du client * @param <type> $shoppingCart panier de l'utilisateur */ private function registerOrder($form, $user, $address, $shoppingCart) { $conn = Doctrine_Core::getTable('IStoreOrder')->getConnection(); $conn->beginTransaction(); try { // on sauvegarde la carte de credit $creditCard = $form->save(); // on cree une commande en base de données. $order = new IStoreOrder(); $order->setDate(date('Y-m-d')); $order->setCreditCardId($creditCard->getId()); $order->setUserId($user->getId()); $order->save(); // on sauvegarde une copie de l'adresse du client // pour la commande. $orderAddress = new IStoreAddress(); $orderAddress->setStreet($address->getStreet()); $orderAddress->setCity($address->getCity()); $orderAddress->setZipcode($address->getZipcode()); $orderAddress->setCountry($address->getCountry()); $orderAddress->setOrderId($order->getId()); $orderAddress->save(); $order->setAddressId($orderAddress->getId()); $order->save(); // on sauvegarde chaque ligne de la commande foreach ($shoppingCart->getItems() as $item) { $orderLine = new IStoreOrderLine(); $orderLine->setItemId($item->getId()); $orderLine->setOrderId($order->getId()); $orderLine->setQuantity($item->getQuantity()); $orderLine->save(); } $conn->commit(); return $order; } catch (Exception $e) { $conn->rollBack(); throw $e; } }