Ejemplo n.º 1
0
 /**
  * Returns current period instance
  *
  * @return <Doctrine_Object> instance of Period
  */
 public static function getCurrentPeriod()
 {
     $date = Period::getCurPeriodDate();
     $oPeriod = PeriodTable::getInstance()->findOneByDate($date);
     if (!$oPeriod instanceof Period) {
         // выставить новые тарифы на новый период
         UserTable::setNewTariffs();
         $oPeriod = new Period();
         // вычислить стоимость 1к знаков
         if (($prev = Period::getPrevPeriod()) === false) {
             $price1k = SettingTable::getOptionByName('price1k')->getValue();
         } else {
             // рассчитать веса пользователей
             UserTable::countWeights($prev);
             if (($price1k = VoteTable::getVoted1k($prev)) === false) {
                 $price1k = $prev->get1k();
             }
         }
         $oPeriod->set1k(number_format((double) $price1k, 2));
         // выставить процент
         $oPeriod->setR2rShare(number_format(Setting::getValueByName('percent_r2r'), 2, '.', ''));
         // --
         $oPeriod->setDate($date);
         $oPeriod->save();
         //throw new sfException('Cannot get current period. Error in DB data');
     }
     return $oPeriod;
 }
Ejemplo n.º 2
0
 public static function getAllTariffs()
 {
     $out[User::STANDART] = SettingTable::getOptionByName(User::STANDART)->getValue();
     $out[User::EXPERT] = SettingTable::getOptionByName(User::EXPERT)->getValue();
     $out[User::SUPER] = SettingTable::getOptionByName(User::SUPER)->getValue();
     return $out;
 }
Ejemplo n.º 3
0
 public function puserDailyPayment()
 {
     $aTariffs = SettingTable::getAllTariffs();
     $oBalanceSystem = BalanceSystem::getCurrentBalanceInstance();
     $aPUsers = UserTable::getPUsersActive();
     foreach ($aPUsers as $oPUser) {
         $transaction = new Transaction();
         $transaction->puserDailyPayment($oPUser, $oBalanceSystem, $aTariffs);
     }
 }
 protected function execute($arguments = array(), $options = array())
 {
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'])->getConnection();
     $settings = SettingTable::getInstance()->findAll();
     $this->log(sprintf('%s records found.', count($settings)));
     foreach ($settings as $setting) {
         $this->logSection($setting->getSettingName(), $setting->getText());
     }
 }
Ejemplo n.º 5
0
 public static function forTransaction(Transaction $transaction, $url_success = '')
 {
     $u_id = $transaction->getIdReceiver();
     $u = UserTable::getInstance()->findOneById($u_id);
     switch ($u->getUtype()) {
         case 'puser':
             $onpay_login = SettingTable::getInstance()->findOneByName('pOnpayLogin')->getValue();
             $private_code = SettingTable::getInstance()->findOneByName('pApiCode')->getValue();
             break;
         case 'uuser':
             $onpay_login = SettingTable::getInstance()->findOneByName('uOnpayLogin')->getValue();
             $private_code = SettingTable::getInstance()->findOneByName('uApiCode')->getValue();
             break;
         default:
             throw new sfException('Неизвестный тип пользователя в транзакции при инициализации платежа OnPay');
             break;
     }
     return new OnPay($onpay_login, $private_code, $transaction->getId(), $transaction->getAmount(), $url_success);
 }
Ejemplo n.º 6
0
 /**
  * Processing Forms
  * @param sfWebRequest $request
  * @param sfForm $form
  * @return <boolean>
  */
 protected function processForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         if (isset($form['balance_add'])) {
             $user = $this->getUser()->getGuardUser();
             // заводим новую транзакцию и передаем пользователя платежной системе
             $transaction = $user->addFunds($form->getValue('balance_add'));
             $pay_test = SettingTable::getInstance()->findOneByName('Платежи в тестовом режиме');
             if ((int) $pay_test->getValue() > 0) {
                 $user->addFundsFin($transaction);
             } else {
                 // создаем объект онпей и затем редиректим на форму платежа
                 $onpay = OnPay::forTransaction($transaction, $this->generateUrl('profile_u_account', array(), true));
                 return $onpay->processFirstStep();
             }
             return true;
         }
         $user = $form->save();
         return true;
     }
     return false;
 }
Ejemplo n.º 7
0
 /**
  * Return price for this content
  *
  * @return decimal
  */
 public function getPrice()
 {
     $settings = SettingTable::getInstance()->getSettings();
     return round($this->getLettersK() / 10 * $settings->getPrice_1k()) / 100;
 }
Ejemplo n.º 8
0
 protected function processUserForm(sfWebRequest $request, sfForm $form)
 {
     $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     if ($form->isValid()) {
         $user = $this->getUser()->getGuardUser();
         if (isset($form['tariff_change'])) {
             return $user->setNewTariff($form->getValue('tariff_change'));
         } elseif (isset($form['balance_add'])) {
             $transaction = $user->addFunds($form->getValue('balance_add'));
             $pay_test = SettingTable::getInstance()->findOneByName('Платежи в тестовом режиме');
             if ((int) $pay_test->getValue() > 0) {
                 $user->addFundsFin($transaction);
                 return true;
             } else {
                 // создаем объект онпей и затем редиректим на форму платежа
                 $onpay = OnPay::forTransaction($transaction, $this->generateUrl('profile_p_user', array(), true));
                 return $onpay->processFirstStep();
             }
         } else {
             $user = $form->save();
         }
         return true;
     }
     return $form;
 }
Ejemplo n.º 9
0
 public static function getValueByName($name)
 {
     $out = SettingTable::getOptionByName($name);
     return $out->getValue();
 }