| Current Path : /var/www/html/petraintranet/common/models/ |
| Current File : /var/www/html/petraintranet/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;
}
}