Your IP : 216.73.216.79


Current Path : /var/www/html/masjid/frontend/controllers/
Upload File :
Current File : /var/www/html/masjid/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);
        echo $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';

                $sendEmail = Yii::$app->emailModule->sendemail($row->email_address, $row->email_subject, $row->email_content);
                if ($sendEmail == 'success') {
                    $row->save(false);
                }
            }
        }
    }

    //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) {

                    //hantar notification ke penyelia
                    $noti_code = 'noti-penyelia-belum-menilai';
                    $noti_content = file_get_contents(Yii::$app->params['notiContent'] . '?code=' . $noti_code . '&participation_id=' . $row['participation_id']);
                    if (!empty($noti_content)) {
                        $modelNoti = new \common\models\NotificationLog();
                        $modelNoti->noti_receiver_id = $row['participation_supervisor_id'];
                        $modelNoti->noti_sender_id = $row['participation_user_id'];
                        $modelNoti->noti_title = \common\models\NotificationTemplate::getname($noti_code);
                        $modelNoti->noti_content = $noti_content;
                        $modelNoti->noti_url = 'index.php?id=1&page_id=43';
                        $modelNoti->noti_read_status = 0;
                        $modelNoti->created_at = date("Y-m-d H:i:s");
                        $modelNoti->created_by = 0;
                        $modelNoti->created_user_type = 'cron';
                        $modelNoti->updated_at = date("Y-m-d H:i:s");
                        $modelNoti->updated_by = 0;
                        $modelNoti->updated_user_type = 'cron';
                        if ($modelNoti->save(false)) {
                            //hantar emel ke penyelia
                            $email_code = 'email-penyelia-belum-menilai';
                            $email_content = file_get_contents(Yii::$app->params['notiContent'] . '?code=' . $email_code . '&noti_id=' . $modelNoti->noti_id);
                            $modelEmail = new \common\models\NotificationEmailLog();
                            $modelEmail->email_address = \backend\modules\fruserdynav2\models\FrontendUser::getemail($modelNoti->noti_receiver_id);
                            $modelEmail->email_subject = \common\models\NotificationTemplate::getname($email_code);
                            $modelEmail->email_content = $email_content;
                            $modelEmail->created_at = date("Y-m-d H:i:s");
                            $modelEmail->created_by = 0;
                            $modelEmail->created_user_type = 'cron';
                            $modelEmail->updated_at = date("Y-m-d H:i:s");
                            $modelEmail->updated_by = 0;
                            $modelEmail->updated_user_type = 'cron';

                            //send email
                            $sendEmail = Yii::$app->emailModule->sendemail($modelEmail->email_address, $modelEmail->email_subject, $modelEmail->email_content);
                            if ($sendEmail == 'success') {
                                $modelEmail->email_send_status = 1;
                            } else {
                                $modelEmail->email_send_status = 0;
                            }
                            $modelEmail->save(false);
                        }
                    }
                }
            }
        }
    }

}