public function actionTopUpSelected() { $formModel = new TopupForm(); $numberOfAccounts = RemoteDataCache::model()->count(); $topupLogsTotalToday = 0; $datasources = $this->loadDataSources(); $chartInitialData = $datasources['iniChartData']; $sipAccountTempContainer = $datasources['sipAccountStr']; //append the current campaign foreach ($sipAccountTempContainer as $key => $currentAccount) { $campaignInformationRetriever = Yii::app()->campaignInformationRetriever; $sipAccountTempContainer[$key] = $key + 1 . " - " . $campaignInformationRetriever->getInformation($currentAccount) . " - " . $sipAccountTempContainer[$key]; } $sipAccountsStr = json_encode($datasources['sipAccountStr']); $chartLabels = json_encode($sipAccountTempContainer); $seriesDataStr = json_encode($datasources['chartSeriesData']); $allSipAccounts = array(); /*retrieve all accounts to be topped up*/ /*get all subsip logs from Vicilogs*/ $criteria = new CDbCriteria(); $criteria->compare("date(logDate)", date("Y-m-d")); $criteria->compare("action_type", 'SUB_ACCOUNT_TOPUP'); $criteria->order = "logDate DESC"; $logRecsTodayDataProvider = new CActiveDataProvider('ViciLogAction', array('criteria' => $criteria, 'pagination' => array('pageSize' => 20))); /** * Topup implementation */ if (isset($_POST['TopupForm'])) { $formModel->attributes = $_POST['TopupForm']; if ($formModel->validate()) { $numberOfAffectedAccounts = $formModel->topupAccounts(); Yii::app()->user->setFlash("success", "Success! All {$numberOfAffectedAccounts} account(s) are topped up."); $this->redirect(array('/subSipAccount/topUpSelected')); } } foreach ($logRecsTodayDataProvider->data as $key => $value) { $topupLogsTotalToday += $value->topUpValue; } $allSipAccounts = $this->getRemoteDataCacheAccounts(); //append current campaign //List of force agent options $forceAgentModelAll = ForceAgentTable::model()->findAll(); $listForceAgentCollection = CHtml::listData($forceAgentModelAll, 'force_agent_value', 'force_agent_lbl'); $this->render('topUpSelected', compact('chartLabels', 'formModel', 'allSipAccounts', 'topupLogsTotalToday', 'logRecsTodayDataProvider', 'numberOfAccounts', 'sipAccountsStr', 'sipAccountsStr', 'seriesDataStr', 'listForceAgentCollection')); }
public function autoTopUpCheck(RemoteDataCache $dataCache) { /** * @var AutoTopupConfiguration $autoTopUpConfiguration */ /*get autoconfiguration */ Yii::trace('searching auto topup configuration', 'disable_trace'); $autoTopUpCriteria = new CDbCriteria(); $autoTopUpCriteria->compare("remote_data_cache", $dataCache->id); $autoTopUpConfiguration = AutoTopupConfiguration::model()->find($autoTopUpCriteria); /*check if active */ if ($autoTopUpConfiguration && $autoTopUpConfiguration->activated && $autoTopUpConfiguration->budget > 0) { Yii::trace("auto configuration found configuration id : {$autoTopUpConfiguration->id} under {$dataCache->id}", 'disable_trace'); /*topup using topup value*/ $formModel = new TopupForm(); $formModel->accounts = $dataCache->sub_user; //load the single account $formModel->topupvalue = $autoTopUpConfiguration->topUpValue; if ($autoTopUpConfiguration->topUpValue > $autoTopUpConfiguration->budget) { Yii::trace('Budget worned out', 'disable_trace'); $formModel->topupvalue = $autoTopUpConfiguration->budget; //no more budget $autoTopUpConfiguration->budget = 0; } else { Yii::trace('Decreasing budget', 'disable_trace'); //decrease the allotted budget $autoTopUpConfiguration->budget -= $autoTopUpConfiguration->topUpValue; } Yii::trace('Saving budget', 'disable_trace'); $autoTopUpConfiguration->save(); //update the allotted budget Yii::trace('Budget saved', 'disable_trace'); $formModel->andActivate = true; /*activate account*/ Yii::trace('About to topup', 'disable_trace'); $formModel->topupAccounts(); Yii::trace('Topup done', 'disable_trace'); } else { if ($autoTopUpConfiguration) { Yii::trace('auto config found', 'disable_trace'); if ($autoTopUpConfiguration->activated) { Yii::trace('auto config activated', 'disable_trace'); } else { Yii::trace('auto config disabled', 'disable_trace'); } if ($autoTopUpConfiguration->budget > 0) { Yii::trace('auto config budget is greater than zero', 'disable_trace'); } else { Yii::trace('auto config is zero', 'disable_trace'); } Yii::trace('budget is ' . $autoTopUpConfiguration->budget, 'disable_trace'); } else { Yii::trace('no auto config found', 'disable_trace'); } } }