Your IP : 216.73.216.79


Current Path : /var/www/html/mnrb/common/models/
Upload File :
Current File : /var/www/html/mnrb/common/models/CourseParticipation.php

<?php

namespace common\models;

use Yii;

/**
 * This is the model class for table "course_participation".
 *
 * @property int $participation_id
 * @property string|null $participation_course_type
 * @property string|null $participation_course_id
 * @property string|null $participation_added_by
 * @property int|null $participation_user_id
 * @property string|null $participation_user_status
 * @property int|null $participation_supervisor_id
 * @property string|null $participation_supervisor_status
 * @property int|null $participation_coordinator_id
 * @property string|null $participation_coordinator_status
 * @property string|null $created_at
 * @property string|null $created_by
 * @property string|null $created_user_type
 * @property string|null $updated_at
 * @property string|null $updated_by
 * @property string|null $updated_user_type
 */
class CourseParticipation extends \yii\db\ActiveRecord {

    /**
     * {@inheritdoc}
     */
    public static function tableName() {
        return 'course_participation';
    }

    /**
     * {@inheritdoc}
     */
    public function rules() {
        return [
            [['participation_user_id', 'participation_supervisor_id', 'participation_coordinator_id'], 'integer'],
            [['participation_course_type', 'participation_course_id', 'participation_added_by', 'participation_user_status', 'participation_supervisor_status', 'participation_coordinator_status', 'created_by', 'created_user_type', 'updated_by', 'updated_user_type', 'created_at', 'updated_at', 'remarks', 'participation_status', 'participation_driver_status', 'cancel_remarks'], 'safe'],
                //[['participation_course_type', 'participation_course_id', 'participation_added_by', 'participation_user_status', 'participation_supervisor_status', 'participation_coordinator_status', 'created_by', 'created_user_type', 'updated_by', 'updated_user_type'], 'string', 'max' => 255],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels() {
        return [
            'participation_id' => Yii::t('app', 'Participation ID'),
            'participation_course_type' => Yii::t('app', 'Participation Course Type'),
            'participation_course_id' => Yii::t('app', 'Participation Course ID'),
            'participation_added_by' => Yii::t('app', 'Participation Added By'),
            'participation_user_id' => Yii::t('app', 'Participation User ID'),
            'participation_user_status' => Yii::t('app', 'User Status'),
            'participation_supervisor_id' => Yii::t('app', 'Supervisor'),
            'participation_supervisor_status' => Yii::t('app', 'Supervisor Status'),
            'participation_coordinator_id' => Yii::t('app', 'Coordinator'),
            'participation_coordinator_status' => Yii::t('app', 'Coordinator Status'),
            'created_at' => Yii::t('app', 'Created At'),
            'created_by' => Yii::t('app', 'Created By'),
            'created_user_type' => Yii::t('app', 'Created User Type'),
            'updated_at' => Yii::t('app', 'Updated At'),
            'updated_by' => Yii::t('app', 'Updated By'),
            'updated_user_type' => Yii::t('app', 'Updated User Type'),
        ];
    }

    public static function getsupervisorstatus($course_type, $course_id, $lang = '') {
        $output = '';
        if (($model = self::findOne(['participation_course_type' => $course_type, 'participation_course_id' => $course_id])) !== null) {
            if ($lang == 'en')
                $output = \backend\modules\refdynawebv2\models\Ref::getDesc('PARTICIPATE_STATUS', $model->participation_supervisor_status, 'descr_en');
            else
                $output = \backend\modules\refdynawebv2\models\Ref::getDesc('PARTICIPATE_STATUS', $model->participation_supervisor_status, 'descr');
        }
        return $output;
    }

    public static function calculatecoursedays($user_id, $year = '') {
        $sql = "SELECT * FROM (
        SELECT p.participation_user_id, 
        'merekod' AS course_category, r.record_course_name AS course_title, r.record_type AS course_type, 
        r.record_start_date AS course_start_date,  r.record_start_time AS course_start_time,  
        r.record_end_date AS course_end_date,  r.record_end_time AS course_end_time
        FROM course_participation p 
        INNER JOIN course_record r ON p.participation_course_id=r.record_id
        WHERE 
                p.participation_status='participate_complete' AND 
                p.participation_supervisor_status='supervisor_approve' AND 
                p.participation_course_type='course_record' 
        UNION
        SELECT p2.participation_user_id, 
        'takwim' AS course_category, i.course_title AS course_title, i.course_type AS course_type, 
        i.course_start_date AS course_start_date,  i.course_start_time AS course_start_time,  
        i.course_end_date AS course_end_date,  i.course_end_time AS course_end_time
        FROM course_participation p2
        INNER JOIN course_info i ON p2.participation_course_id=i.course_id
        WHERE 
                i.course_status = 'done' AND  
                p2.participation_course_type='course_info' AND
                p2.participation_status='participate_complete' AND 
                p2.participation_user_status='user_confirm' AND
                p2.participation_supervisor_status='supervisor_support' AND 
                p2.participation_coordinator_status='coordinator_support'
        ) t1 WHERE participation_user_id='$user_id'";
        if (!empty($year))
            $sql .= " AND YEAR(course_start_date)='$year'";
        $sql .= " ORDER BY course_start_date DESC";
        $model = Yii::$app->db->createCommand($sql)->queryAll();
        $total_user_hour = 0;
        if (!empty($model)) {
            foreach ($model as $row) {
                $start_course = $row['course_start_date'] . ' ' . $row['course_start_time'];
                $end_course = $row['course_end_date'] . ' ' . $row['course_end_time'];

                if ($row['course_start_date'] != $row['course_end_date']) {
                    $datediff = strtotime($row['course_end_date']) - strtotime($row['course_start_date']);
                    $datediff2 = round($datediff / (60 * 60 * 24)) + 1;
                    $total_user_hour += $datediff2 * 6;
                } else {
                    $date1 = new \DateTime($start_course);
                    $date2 = $date1->diff(new \DateTime($end_course));
                    $total_user_hour += $date2->h;
                }
            }
        }
        $total_user_day = $total_user_hour / 6;
        $output = floor($total_user_day);
        return $output;
    }

}