| Current Path : /var/www/html/jppmmylatihan/frontend/controllers/ |
| Current File : /var/www/html/jppmmylatihan/frontend/controllers/NotificationController.php |
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class NotificationController extends Controller {
public function actionGetcontent($code = '') {
$output = \common\models\NotificationTemplate::getcontent($code);
return $output;
}
public function actionUpdateread($noti_id) {
if (($model = \common\models\NotificationLog::findOne($noti_id)) !== null) {
$model->noti_read_status = 1;
$model->updated_at = date("Y-m-d H:i:s");
$model->updated_by = Yii::$app->user->identity->id;
$model->updated_user_type = 'frontend_user';
if ($model->save(false)) {
return 'success';
}
}
}
//cron untuk send email
public function actionSendemail() {
$model = \common\models\NotificationEmailLog::find()->where(['email_send_status' => 0])->all();
if (!empty($model)) {
foreach ($model as $row) {
$row->email_send_status = 1;
$row->send_at = date("Y-m-d H:i:s");
$row->updated_at = date("Y-m-d H:i:s");
$row->updated_by = 0;
$row->updated_user_type = 'cron';
$row->save(false);
Yii::$app->emailModule->sendemail($row->email_address, $row->email_subject, $row->email_content);
}
}
}
//cron notification untuk penyelia mengisi borang penilaian
public function actionReminderevaluation() {
//get all course participation & belum di evaluate
$query = "SELECT p.*, i.course_end_date
FROM course_participation p
INNER JOIN course_info i ON i.course_id=p.participation_course_id
LEFT JOIN course_user_evaluation v ON v.evaluation_participation_id=p.participation_id
WHERE
i.course_status = 'done' AND
p.participation_course_type = 'course_info' AND
p.participation_user_status = 'user_confirm' AND
p.participation_supervisor_status = 'supervisor_support' AND
p.participation_coordinator_status = 'coordinator_support' AND
p.participation_status = 'participate_complete' AND
v.evaluation_id IS NULL";
$model = Yii::$app->db->createCommand($query)->queryAll();
if (!empty($model)) {
foreach ($model as $row) {
//check dah lepas 3 bulan ke belum
$dateevaluate = date('Y-m-d', strtotime("+3 months", strtotime($row['course_end_date'])));
if (date('Y-m-d') == $dateevaluate) {
$noti_code = 'noti-penyelia-belum-menilai';
$email_code = 'email-penyelia-belum-menilai';
$noti_receiver_id = $row['participation_supervisor_id'];
$noti_sender_id = $row['participation_user_id'];
$noti_url = 'index.php?id=1&page_id=43';
$data_id = $row['participation_id'];
$created_by = 0;
$user_type = 'cron';
Yii::$app->notification->insertnotificationlog($noti_code, $noti_receiver_id, $noti_sender_id, $noti_url, $email_code, $created_by, $user_type, $data_id);
}
}
}
}
}