Your IP : 216.73.216.79


Current Path : /var/www/html/ekursusv2/frontend/runtime/frontendpage/
Upload File :
Current File : /var/www/html/ekursusv2/frontend/runtime/frontendpage/165_1781747174042228800-content-426.php

<?php 
/*** CONTENT_ID-426***/
use yii\helpers\Html;
use yii\grid\GridView;
use yii\helpers\Url;
use yii\helpers\ArrayHelper;
use yii\data\ActiveDataProvider;
use yii\widgets\ActiveForm;
use frontend\models\CourseApplication;

$search_course = Yii::$app->getRequest()->getQueryParam('search_course');
$search_name = Yii::$app->getRequest()->getQueryParam('search_name');
$search_ic = Yii::$app->getRequest()->getQueryParam('search_ic');

/*if(!empty(Yii::$app->getRequest()->getQueryParam('action')) && Yii::$app->getRequest()->getQueryParam('action') == 'delete'){
    $id = Yii::$app->getRequest()->getQueryParam('id');
    if (($model = CourseApplication::findOne($id)) !== null) {
        
        //send email to admin
        $queryAdmin = new \yii\db\Query(); 
        $queryAdmin->select(['dmg_user.*'])
            ->from('dmg_user')
            ->innerJoin('course','course.created_by=dmg_user.id')
            ->innerJoin('course_timetable','course.course_id=course_timetable.timetable_course_id')
            ->where(['=','course_timetable.timetable_id',$model->application_course_id]);
        $modelAdmin = $queryAdmin->one();
        if(!empty($modelAdmin)){
            $to_mail = $modelAdmin['email'];
            $subject_mail = 'Pembatalan Permohonan Menyertai Kursus';
            $content_mail = '<p>Assalamualaikum dan Salam Sejahtera,</p>
            <p>
                Adalah dimaklumkan bahawa '.$model->staff->staff_name.' ('.$model->staff->staff_ic_no.') ingin membatalkan permohonan menyertai kursus 
                '.$model->course->course_name.' yang akan berlangsung pada '.date("d/m/Y", strtotime($model->timetable->timetable_start_date)).'.
            </p>
            <p>Sekian, harap maklum</p>';
            Yii::$app->emailModule->sendemail($to_mail, $subject_mail, $content_mail);
        }
        
        if($model->delete()){
                echo "<script>
                Swal.fire({
                    icon: 'success',
                    title: 'Berjaya',
                    html: 'Permohonan kursus telah dibatalkan',
                }).then((result) => {
                    window.location.href = '/portal-main/application-list';
                });
            </script>";
        }
    }
}*/

if(!empty(Yii::$app->getRequest()->getQueryParam('action')) && Yii::$app->getRequest()->getQueryParam('action') == 'confirmattendance'){
    $id = Yii::$app->getRequest()->getQueryParam('id');
    if (($model = CourseApplication::findOne($id)) !== null) {
        $model->confirm_attend_status=1;
        if($model->save()){
            
            //send email to admin
            $queryAdmin = new \yii\db\Query(); 
            $queryAdmin->select(['dmg_user.*'])
                ->from('dmg_user')
                ->innerJoin('course','course.created_by=dmg_user.id')
                ->innerJoin('course_timetable','course.course_id=course_timetable.timetable_course_id')
                ->where(['=','course_timetable.timetable_id',$model->application_course_id]);
            $modelAdmin = $queryAdmin->one();
            if(!empty($modelAdmin)){
                $to_mail = $modelAdmin['email'];
                $subject_mail = 'Pengesahan Kehadiran Kursus';
                $content_mail = '<p>Assalamualaikum dan Salam Sejahtera,</p>
                <p>
                    Adalah dimaklumkan bahawa '.$model->staff->staff_name.' ('.$model->staff->staff_ic_no.') telah membuat pengesahan menyertai kursus 
                    '.$model->course->course_name.' yang akan berlangsung pada '.date("d/m/Y", strtotime($model->timetable->timetable_start_date)).'.
                </p>
                <p>Sekian, harap maklum</p>';
                Yii::$app->emailModule->sendemail($to_mail, $subject_mail, $content_mail);
            }
            
                echo "<script>
                Swal.fire({
                    icon: 'success',
                    title: 'Berjaya',
                    html: 'Status kehadiran telah dikemaskini',
                }).then((result) => {
                    window.location.href = '/portal-main/application-list';
                });
            </script>";
        }
    }
}

if(!empty(Yii::$app->getRequest()->getQueryParam('action')) && Yii::$app->getRequest()->getQueryParam('action') == 'confirmattendancenotattend'){
    $id = Yii::$app->getRequest()->getQueryParam('id');
    if (($model = CourseApplication::findOne($id)) !== null) {
        $model->confirm_attend_status=2;
        if($model->save()){
                echo "<script>
                Swal.fire({
                    icon: 'success',
                    title: 'Berjaya',
                    html: 'Status kehadiran telah dikemaskini',
                }).then((result) => {
                    window.location.href = '/portal-main/application-list';
                });
            </script>";
        }
    }
}


$query = CourseApplication::find()
    ->innerjoin('staff','course_application.application_staff_id=staff.staff_id')
    ->innerjoin('course_timetable','course_application.application_course_id=course_timetable.timetable_id')
    ->innerjoin('course','course_timetable.timetable_course_id=course.course_id')
    ->where(['=','application_submit_by',Yii::$app->user->identity->id]);

if(!empty($search_course)){
    $query->andwhere(['LIKE','course_name',$search_course]);
}

if(!empty($search_name)){
    $query->andwhere(['LIKE','staff_name',$search_name]);
}

if(!empty($search_ic)){
    $query->andwhere(['LIKE','staff_ic_no',$search_ic]);
}


$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'sort' => ['defaultOrder' => ['application_id' => SORT_DESC]],
    'pagination' => ['pageSize' => false,'route' => 'portal-main/application-list'],
]);

echo '
<div class="page-title-box d-flex align-items-center justify-content-between">
    <ol class="breadcrumb m-0">
        <li class="breadcrumb-item"><a href="/portal-main/dashboard">Utama</a></li>
        <li class="breadcrumb-item active">Status Permohonan</li>
    </ol>
</div>
<div class="card table-responsive">
    <div class="card-body">
        <p class="text-danger">* Hanya kursus dalam status MENUNGGU KELULUSAN sahaja yang dibenarkan untuk pembatalan</p>
        <p class="text-success">* Sila sahkan kehadiran anda pada permohonan yang telah diluluskan</p>
        <p class="text-success">* Sila muat naik Surat Aku Janji pada permohonan yang telah diluluskan sebelum hari kursus</p>
    </div>
</div>
<div class="card table-responsive">
    <div class="card-body">';
        
        $form = ActiveForm::begin(['action' => ['portal-main/application-list'], 'method' => 'get',]);
        echo '<div class="row">
            <div class="col-sm-4"><label>Nama Kursus</label>'.Html::input('text','search_course',$search_course, $options=['class'=>'form-control']).'</div>
            <div class="col-sm-4"><label>Nama Peserta</label>'.Html::input('text','search_name',$search_name, $options=['class'=>'form-control']).'</div>
            <div class="col-sm-4"><label>No. Kad Pengenalan</label>'.Html::input('text','search_ic',$search_ic, $options=['class'=>'form-control']).'</div>
            <div class="col-sm-12 mt-3">
                '.Html::submitButton(Yii::t('app', 'Cari'), ['class' => 'btn btn-outline-primary waves-effect waves-light']).'&nbsp;
                '.Html::a(Yii::t('app', 'Set semula'),['portal-main/application-list'], ['class' => 'btn btn-outline-primary waves-effect waves-light']).'&nbsp;
            </div>
        </div>';
        
        ActiveForm::end();
    
    
    echo GridView::widget([
        'dataProvider' => $dataProvider,
        'summary' => '',
        'emptyText'=>'Rekod Tidak Dijumpai.',
        'tableOptions' => ['class' => 'table table-striped table-bordered table-custom mt-3'],
        'columns' => [
            ['class' => 'yii\grid\SerialColumn', 'contentOptions' => ['class' => 'text-center', 'width' => '1%'],],
            [
                'header' => 'Nama Kursus',
                'value' => function ($model) {
                    return $model->course->course_name;
                }
            ],
            [
                'header' => 'Negeri',
                'value' => function ($model) {
                    return \backend\modules\refdynawebv2\models\Ref::getDesc('STATE', $model->timetable->timetable_state, 'descr_en');
                }
            ],
            [
                'header' => 'Tarikh Kursus',
                'value' => function ($model) {
                    return $model->timetable->timetable_start_date;
                }
            ],
            [
                'header' => 'Nama Peserta',
                'value' => function ($model) {
                    return $model->staff->staff_name;
                }
            ],
            [
                'header' => 'No. Kad Pengenalan',
                'value' => function ($model) {
                    return $model->staff->staff_ic_no;
                }
            ],
            [
                'attribute' => 'application_approval_status',
                'value' => function ($model) {
                    return \backend\modules\refdynawebv2\models\Ref::getDesc('APPLY_STATUS', $model->application_approval_status);
                }
            ],
            [
                'format'=>'raw',
                'header'=>'Status Kehadiran',
                'attribute' => 'confirm_attend_status',
                'value' => function ($model) {
                    $output='';
                    if($model->application_approval_status == 'approved'){
                        $output = \backend\modules\refdynawebv2\models\Ref::getDesc('CONFIRM_ATTEND_STATUS', $model->confirm_attend_status);
                        if ($model->attendance_status == 0 && $model->warning_letter == 1){
                            if (empty($model->notattend_letter))
                                $output = '<span class="text-danger">Tidak hadir. Sila hantar Surat Tunjuk Sebab anda tidak hadir ke kursus.</span>';
                            if (!empty($model->notattend_letter))
                                $output = 'Tidak hadir';
                        }
                    }
                    return $output;
                }
            ],
            [
                'header' => 'Tindakan',
                'class' => 'yii\grid\ActionColumn',
                'headerOptions' => ['class' => 'text-center text-nowrap', 'width' => '10%'],
                'contentOptions' => ['class' => 'text-center text-nowrap', 'width' => '10%'],
                'template' => '{delete}{confirmation}{warningletter}{updatests}{akujanji}',
                'buttons' => [
                    'akujanji' => function ($url, $model){
                        if($model->application_approval_status == 'approved' && $model->confirm_attend_status == 1 && $model->warning_letter == 0){
                            return Html::a('<i class="mdi mdi-upload"></i>', ['portal-main/akujanji','id'=>$model->application_id], [
                                'title' => 'Muat Naik Borang Aku Janji', 
                                'class' => 'action_link', 
                            ]);
                        }
                    },
                    'warningletter' => function ($url, $model){
                        if($model->warning_letter==1){
                            return Html::a('<i class="mdi mdi-file"></i>', ['site/warningletter','id'=>$model->application_id], [
                                'title' => 'Surat peringatan', 
                                'class' => 'action_link',
                                'target'=>'_blank'
                            ]);
                        }
                        
                    },
                    'updatests' => function ($url, $model){
                        if($model->warning_letter==1){
                            return Html::a('<i class="mdi mdi-pencil"></i>', ['portal-main/uploadletter','id'=>$model->application_id], [
                                'title' => 'Muat Naik Surat Tunjuk Sebab', 
                                'class' => 'action_link', 
                            ]);
                        }
                    },
                    'delete' => function ($url, $model){
                        if($model->application_approval_status=='pending'){
                            /*return Html::a('<i class="mdi mdi-trash-can-outline"></i>', null, [
                                'title' => 'Batal permohonan', 
                                'class' => 'action_link', 
                                'href' => 'javascript:void(0);',
                                'onclick' => 'deleteapplication('.$model->application_id.')',
                            ]);*/
                            return Html::a('<i class="mdi mdi-trash-can-outline"></i>', ['portal-main/cancel-application','id'=>$model->application_id], [
                                'title' => 'Batal permohonan', 
                                'class' => 'action_link', 
                            ]);
                        }
                    },
                    'confirmation' => function ($url, $model){
                        if($model->application_approval_status=='approved' && $model->confirm_attend_status == 0){
                            $output = Html::a('<i class="mdi mdi-checkbox-marked-outline"></i>', null, [
                                'title' => 'Sahkan kehadiran', 
                                'class' => 'action_link', 
                                'href' => 'javascript:void(0);',
                                'onclick' => 'confirmattendance('.$model->application_id.')',
                            ]);
                            $output .= Html::a('<i class="mdi mdi-close-box-outline"></i>', ['portal-main/notattend','id'=>$model->application_id], [
                                'title' => 'Tidak akan hadir', 
                                'class' => 'action_link', 
                                //'href' => 'javascript:void(0);',
                                //'onclick' => 'confirmattendancenotattend('.$model->application_id.')',
                            ]);
                            
                            return $output;
                        }
                    },
                ]
            ],
        ],
    ]);
    
    
echo '</div>
</div>';

echo "<script>
    function deleteapplication(id){
        Swal.fire({
          title: 'Batal permohonan',
          text: 'Anda pasti untuk batalkan permohonan kursus ini?',
          icon: 'warning',
          showCancelButton: true,
          confirmButtonColor: '#3085d6',
          cancelButtonColor: '#d33',
          confirmButtonText: 'Ya, teruskan!',
          cancelButtonText: 'Tidak',
        }).then((result) => {
          if (result.isConfirmed) {
            window.location.href = '/portal-main/application-list?action=delete&id='+id;
          }
        });
    }
    
    function confirmattendance(id){
        Swal.fire({
          title: 'Sahkan kehadiran',
          text: 'Anda pasti akan hadir kursus ini?',
          icon: 'warning',
          showCancelButton: true,
          confirmButtonColor: '#3085d6',
          cancelButtonColor: '#d33',
          confirmButtonText: 'Ya',
          cancelButtonText: 'Batal',
        }).then((result) => {
          if (result.isConfirmed) {
            window.location.href = '/portal-main/application-list?action=confirmattendance&id='+id;
          }
        });
    }
    
    function confirmattendancenotattend(id){
        Swal.fire({
          title: 'Sahkan kehadiran',
          text: 'Anda pasti tidak akan hadir kursus ini?',
          icon: 'warning',
          showCancelButton: true,
          confirmButtonColor: '#3085d6',
          cancelButtonColor: '#d33',
          confirmButtonText: 'Ya',
          cancelButtonText: 'Batal',
        }).then((result) => {
          if (result.isConfirmed) {
            window.location.href = '/portal-main/application-list?action=confirmattendancenotattend&id='+id;
          }
        });
    }
    
    
</script>";

?>