Exemplo n.º 1
0
 public static function addFundsFin(Transaction $transaction)
 {
     if ($transaction->getIsPaid()) {
         // транзакция уже была обработана
         return false;
     } else {
         $transaction->addFundsFin();
     }
     // set new balance
     $user = UserTable::getInstance()->findOneById($transaction->getIdReceiver());
     $user->setBalans($transaction->getReceiverBalanceAfter());
     $user->save();
     $amount = $transaction->getAmount();
     // write to BalanceUser instance
     if (!($userBalance = BalanceUserTable::getByUserIdAndPeriodId($user->getId()))) {
         $userBalance = new BalanceUser();
         $userBalance->setPeriod(Period::getCurrentPeriod());
         $userBalance->setUser($user);
     }
     $userBalance->setAddFunds($userBalance->getAddFunds() + $amount);
     $userBalance->save();
     if (!($systemBalance = BalanceSystem::getCurrentBalanceInstance())) {
         sfContext::getInstance()->getLogger()->info('aS4W Error: getCurrentBalanceInstance return false');
         return false;
     }
     if ($user->getUSerTypePrefix() == 'u') {
         $systemBalance->setDepositUser($systemBalance->getDepositUser() + $amount);
     } else {
         switch ($user->getTariff()) {
             case 'standart':
                 $systemBalance->setDepositStandart($systemBalance->getDepositStandart() + $amount);
                 break;
             case 'super':
                 $systemBalance->setDepositSuper($systemBalance->getDepositSuper() + $amount);
                 break;
             case 'expert':
                 $systemBalance->setDepositExpert($systemBalance->getDepositExpert() + $amount);
                 break;
         }
     }
     $systemBalance->save();
     // If user blocked try UnBlock
     if ($user->is_blocked) {
         $user->tryUnBlockUser();
     }
     return true;
 }
Exemplo n.º 2
0
 /**
  * Saves form
  *
  * @param sfForm $form
  * @param <string> $utype
  * @return User $user
  */
 protected function saveForm(sfForm $form)
 {
     $user = $form->save();
     $group = UserGroupTable::getInstance()->findOneBy('name', $user->getUtype());
     $userGroup = new User__Group();
     $userGroup->setUser($user);
     $userGroup->setGroup($group);
     $userGroup->save();
     $userBalance = new BalanceUser();
     $userBalance->setPeriod(Period::getCurrentPeriod());
     $userBalance->setUser($user);
     $userBalance->save();
     $user->setIsBlocked(true);
     $user->setActivationCode(sha1($user->getEmail() . mt_rand(10, 15)));
     $user->save();
     return $user;
 }