public function actionCronjob() { $number = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y')); // 31 $billing = Bills::findOne(['id' => 1]); $rate = $billing->monthly_charge / $number; //ATTRIBUTES NEEDED FOR DIACTIVATION $attribute = "Auth-Type"; $operation = ":="; $value = "Reject"; //BILL ALL THE CLIENTS WHOSE STATUS IS 'yes' THE SYSTEM EXCLUDES THE CLIENTS WITH NO. $clients = Clients::find()->where(['status' => 'yes'])->all(); foreach ($clients as $key => $client) { # code... //echo $client->clientAcc."<br>"; $client = Clients::findOne([$client->id]); //IF CLIENT BALANCE IS GREATER THAN THE DAILY BILLING, SUBTRACT THE DAILY FEE. if ($client->balances > $rate) { $client->balances = (string) $client->balances - $rate; echo "Client Balance" . $client->balances; $client->save(); } elseif ($rate > $client->balances) { //DISCONNECT THE CLIENT $customer_radreply = Radreply::findOne(['username' => $client->username]); if (count($customer_radreply) >= 1) { //DO NOTHING SINCE THE USER IS DEACTIVATED } else { $victim_client = new Radreply(); $victim_client->username = $client->username; $victim_client->attribute = $attribute; $victim_client->op = $operation; $victim_client->value = $value; $victim_client->save(); } } elseif ($billing->monthly_charge * 4 > $client->balances && count(Radusergroup::findOne(['username' => $client->username])) == 0) { //SEND SMSES AND EMAILS TO ALERT THE THAT DISCONNECTION IS ABOUT TO TRIGGER // $customer_radgroup = Radreply::findOne(['username' => $client->username]); // $deactivate = Radgroupcheck::findOne(['id'=>1]); $email = Yii::$app->mailer->compose()->setFrom('*****@*****.**')->setTo('*****@*****.**')->setSubject('Message subject')->setHtmlBody('<b>HTML content</b>')->send(); echo "Email sent!"; echo "<pre>"; print_r($email); echo "</pre>"; } //SAVE CHANGES } return $this->render('cronjob'); }
public function getRadreply() { $this->hasOne(Radreply::className(), ['username' => 'username']); }