Exemple #1
0
 /**
  * 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;
     }
 }