Your IP : 216.73.216.79


Current Path : /var/www/html/learn/frontend/controllers/
Upload File :
Current File : /var/www/html/learn/frontend/controllers/ReportController.php

<?php

namespace frontend\controllers;

use Yii;
use yii\web\Controller;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use yii\data\SqlDataProvider;
use yii\helpers\ArrayHelper;
use kartik\mpdf\Pdf;

class ReportController extends Controller {

    public function actionUserparticipationpdf($user_id = '', $course_year = '') {

        $user_name = '';
        $user_ic = '';
        $user_branch = '';
        $user_state = '';
        if (($modelUser = \backend\modules\fruserdynav2\models\FrontendUser::findOne($user_id)) !== null) {
            $user_name = $modelUser->fullname;
            $user_ic = $modelUser->username;
            $user_branch = \backend\modules\refdynawebv2\models\Ref::getDesc('BRANCH', $modelUser->branch, 'descr');
            $user_state = \backend\modules\refdynawebv2\models\Ref::getDesc('STATE', $modelUser->state, 'descr');
        }

        $minimum_day = \backend\modules\courseTarget\models\CourseTarget::getmindays($course_year);
        $calculate_minimum_hour = $minimum_day * 6;
        $total_user_day = \common\models\CourseParticipation::calculatecoursedays($user_id, $course_year);
        if ($total_user_day >= $minimum_day) {
            $message = '<h2 style="color:#ff9000;text-shadow: 2px 2px black;"><b>TAHNIAH!</b></h2>
        <p>Anda telah mencapai KPI (Key Performance Indicators - Petunjuk Prestasi Utama) elemen mengenai syarat berkursus minima iaitu 
        ' . $minimum_day . ' hari setahun bagi semua kakitangan di Jabatan Pendaftaran Pertubuhan Malaysia.</p>';
        } else {
            $message = '<p>Anda belum mencapai KPI (Key Performance Indicators - Petunjuk Prestasi Utama) elemen mengenai syarat berkursus minima iaitu
        ' . $minimum_day . ' hari setahun bagi semua kakitangan di Jabatan Pendaftaran Pertubuhan Malaysia.</p>';
        }

        $count = 0;
        $course_list = '';
        $query_ext = "";
        $query_ext_arr = [];
        if ($user_id != "")
            $query_ext_arr[] = "participation_user_id='$user_id'";
        if ($course_year != "")
            $query_ext_arr[] = "YEAR(course_start_date)='$course_year'";
        if (!empty($query_ext_arr))
            $query_ext = ' WHERE ' . implode(' AND ', $query_ext_arr);

        $query = "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, 
        u.fullname AS user_name, u.designation AS user_designation, u.state AS user_state, u.service_group AS user_service_group,
        r.record_organizer AS course_location
        FROM course_participation p 
        INNER JOIN course_record r ON p.participation_course_id=r.record_id 
        INNER JOIN frontend_user u ON p.participation_user_id=u.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, 
        u.fullname AS user_name, u.designation AS user_designation, u.state AS user_state, u.service_group AS user_service_group,
        i.course_location
        FROM course_participation p2
        INNER JOIN course_info i ON p2.participation_course_id=i.course_id 
        INNER JOIN frontend_user u ON p2.participation_user_id=u.id 
        INNER JOIN form_submit f ON f.data_id=p2.participation_id AND f.form_id=1 AND f.table_related='course_participation'
        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'
        UNION
        SELECT 
            frontend_user.id AS participation_user_id,
            'interaktif' AS course_category,
            learning_main.learning_title AS course_title,
            'interaktif' AS course_type,
            DATE(learning_enroll.enroll_start) AS course_start_date,
            TIME(learning_enroll.enroll_start)  AS course_start_time,
            DATE_FORMAT(ADDTIME(learning_enroll.enroll_start, CONCAT(learning_main.learning_time,':0:0')), '%Y-%m-%d') AS course_end_date,
            TIME_FORMAT(ADDTIME(learning_enroll.enroll_start, CONCAT(learning_main.learning_time,':0:0')), '%H:%i:%s') AS course_end_time,
            frontend_user.fullname AS user_name, 
            frontend_user.designation AS user_designation, 
            frontend_user.state AS user_state, 
            frontend_user.service_group AS user_service_group,
            'Pembelajaran Interaktif MyLatihan' AS course_location
        FROM 
            learning_enroll INNER JOIN 
            learning_main ON learning_enroll.learning_main=learning_main.learning_id INNER JOIN 
            frontend_user ON frontend_user.id=learning_enroll.frontend_user_id
        WHERE 
            learning_enroll.enroll_progress=100 AND 
            learning_enroll.enroll_certificate IS NOT NULL
        ) t1 " . $query_ext . " ORDER BY user_name,course_start_date ASC";

        $dataProvider = new SqlDataProvider(['sql' => $query, 'pagination' => ['pageSize' => false],]);
        if (!empty($dataProvider->models)) {
            foreach ($dataProvider->models as $row) {
                $count++;

                $course_user_hour = "";
                $start_course = $row['course_start_date'] . ' ' . $row['course_start_time'];
                $end_course = $row['course_end_date'] . ' ' . $row['course_end_time'];

                if ($row['course_category'] == 'interaktif') {
                    $date1 = new \DateTime($start_course);
                    $date2 = $date1->diff(new \DateTime($end_course));
                    $course_user_hour = $date2->h . ' jam ';
                } else {
                    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;
                        $course_user_hour = $datediff2 . ' hari';
                    } else {
                        $date1 = new \DateTime($start_course);
                        $date2 = $date1->diff(new \DateTime($end_course));
                        $course_user_hour = $date2->h . ' jam ';
                    }
                }

                $course_organizer = '';
                if ($row['course_category'] == 'takwim')
                    $course_organizer = 'JPPM';
                else
                    $course_organizer = 'Lain-Lain';

                $course_list .= '<tr>
                        <td>' . $count . '</td>
                        <td>' . $row['course_title'] . '</td>
                        <td>' . $course_organizer . '</td>
                        <td>' . $row['course_location'] . '</td>
                        <td>' . date("d/m/Y", strtotime($row['course_start_date'])) . '</td>
                        <td>' . date("d/m/Y", strtotime($row['course_end_date'])) . '</td>
                        <td>' . $course_user_hour . '</td>
                    </tr>';
            }
        } else {
            $course_list = '<tr><td colspan="7">Tiada rekod</td></tr>';
        }


        $content = '
            <div style="text-align:center;line-height:1.5em;">
                <h4 style="color:#ff9000;text-shadow: 1px 1px gray;"><b>SENARAI KURSUS YANG TELAH DIHADIRI SEPANJANG TAHUN ' . $course_year . '</b></h4>
                <h4 style="color:#008962;text-shadow: 1px 1px gray;"><b>DI JABATAN PENDAFTARAN PERTUBUHAN MALAYSIA</b></h4>
                <br>
                <p>Nama : <b>' . $user_name . '</b></p>
                <p>No. MyKad : <b>' . $user_ic . '</b></p> 
                <p>Bahagian / JPPM Negeri : <b>' . $user_state . '</b></p>
                <p>Unit / Cawangan / Seksyen : <b>' . $user_branch . '</b></p>
            </div><br>
            <table class="table table-report">
                <thead>
                    <tr>
                        <th >Bil</th>
                        <th>Nama Kursus</th>
                        <th>Anjuran</th>
                        <th>Tempat</th>
                        <th>Tarikh Mula</th>
                        <th>Tarikh Akhir</th>
                        <th>Tempoh</th>
                    </tr>
                </thead>
                <tbody>' . $course_list . '</tbody>
                <tfoot>
                    <tr>
                        <th colspan="6" style="text-align:right;">Jumlah</th>
                        <th>' . $total_user_day . ' hari</th>
                    </tr>
                </tfoot>
            </table>
            <div style="text-align:center;line-height:1.5em;">
                <p>Bilangan hari berkursus bagi tahun ' . $course_year . ' adalah ' . $total_user_day . ' hari</p>
                ' . $message . '
            </div>';
        $pdf = new Pdf([
            'mode' => Pdf::MODE_BLANK,
            'filename' => 'Laporan Individu.pdf',
            'format' => Pdf::FORMAT_A4,
            'orientation' => Pdf::ORIENT_LANDSCAPE,
            'destination' => Pdf::DEST_DOWNLOAD,
            'content' => $content,
            'cssInline' => '.table-report thead tr th{background-color:#008962;color:white;border-bottom:3px solid #fd910b;} 
                .table-report tbody tr:nth-child(even) td{background-color:rgba(0,137,98,0.1);border:0;padding:1em 0.5em;} 
                .table-report tbody tr:nth-child(odd) td{background-color:rgba(252,143,0,0.1);border:0;padding:1em 0.5em;}
                .table-report tfoot tr th{background-color:#008962;color:white;border-top:3px solid #fd910b;} ',
        ]);
        return $pdf->render();
    }

    public function actionUserparticipation($user_id = '', $state_id = '', $course_year = '') {
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        $sheet->setCellValue('A1', strtoupper('Nama Pengguna'));
        $sheet->setCellValue('B1', strtoupper('Jawatan'));
        $sheet->setCellValue('C1', strtoupper('Bahagian / JPPM Negeri'));
        $sheet->setCellValue('D1', strtoupper('Kumpulan Perkhidmatan'));
        $sheet->setCellValue('E1', strtoupper('Tajuk Kursus'));
        $sheet->setCellValue('F1', strtoupper('Jenis Kursus'));
        $sheet->setCellValue('G1', strtoupper('Jenis Permohonan'));
        $sheet->setCellValue('H1', strtoupper('Tarikh Mula Kursus'));
        $sheet->setCellValue('I1', strtoupper('Masa Mula Kursus'));
        $sheet->setCellValue('J1', strtoupper('Tarikh Akhir Kursus'));
        $sheet->setCellValue('K1', strtoupper('Masa Akhir Kursus'));
        $sheet->setCellValue('L1', strtoupper('Tempoh Kursus'));
        $count = 1;

        $query_ext = "";
        $query_ext_arr = [];
        if ($user_id != "")
            $query_ext_arr[] = "participation_user_id='$user_id'";
        if ($state_id != "")
            $query_ext_arr[] = "user_state='$state_id'";
        if ($course_year != "")
            $query_ext_arr[] = "YEAR(course_start_date)='$course_year'";
        if (!empty($query_ext_arr))
            $query_ext = ' WHERE ' . implode(' AND ', $query_ext_arr);
        //print_r($query_ext_arr);

        $query = "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, 
        u.fullname AS user_name, u.designation AS user_designation, u.state AS user_state, u.service_group AS user_service_group
        FROM course_participation p 
        INNER JOIN course_record r ON p.participation_course_id=r.record_id 
        INNER JOIN frontend_user u ON p.participation_user_id=u.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, 
        u.fullname AS user_name, u.designation AS user_designation, u.state AS user_state, u.service_group AS user_service_group
        FROM course_participation p2
        INNER JOIN course_info i ON p2.participation_course_id=i.course_id 
        INNER JOIN frontend_user u ON p2.participation_user_id=u.id 
        INNER JOIN form_submit f ON f.data_id=p2.participation_id AND f.form_id=1 AND f.table_related='course_participation'
        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 " . $query_ext . " ORDER BY user_name,course_start_date ASC";
        $dataProvider = new SqlDataProvider(['sql' => $query, 'pagination' => ['pageSize' => false],]);
        foreach ($dataProvider->models as $row) {
            $count++;
            $course_type = '';
            if ($row['course_category'] == 'takwim')
                $course_type = strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('COURSE_TYPE', $row['course_type'], 'descr'));
            if ($row['course_category'] == 'merekod')
                $course_type = strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('COURSE_RECORD', $row['course_type'], 'descr'));


            $course_user_hour = "";
            $start_course = $row['course_start_date'] . ' ' . $row['course_start_time'];
            $end_course = $row['course_end_date'] . ' ' . $row['course_end_time'];

            $date1 = new \DateTime($start_course);
            $date2 = $date1->diff(new \DateTime($end_course));

            if ($row['course_start_date'] != $row['course_end_date'])
                $course_user_hour = ($date2->d + 1) . ' HARI ';
            else
                $course_user_hour = $date2->h . ' JAM ';

            $sheet->setCellValue('A' . $count, strtoupper($row['user_name']));
            $sheet->setCellValue('B' . $count, strtoupper($row['user_designation']));
            $sheet->setCellValue('C' . $count, strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('STATE', $row['user_state'], 'descr')));
            $sheet->setCellValue('D' . $count, strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('SERVICE_GROUP', $row['user_service_group'], 'descr')));
            $sheet->setCellValue('E' . $count, strtoupper($row['course_title']));
            $sheet->setCellValue('F' . $count, $course_type);
            $sheet->setCellValue('G' . $count, strtoupper($row['course_category']));
            $sheet->setCellValue('H' . $count, strtoupper(date("j M Y", strtotime($row['course_start_date']))));
            $sheet->setCellValue('I' . $count, strtoupper(date("h:i A", strtotime($row['course_start_time']))));
            $sheet->setCellValue('J' . $count, strtoupper(date("j M Y", strtotime($row['course_end_date']))));
            $sheet->setCellValue('K' . $count, strtoupper(date("h:i A", strtotime($row['course_end_time']))));
            $sheet->setCellValue('L' . $count, $course_user_hour);
        }
        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Permohonan Kursus.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    public function actionSupervisorevaluation($course_id = '') {
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $questionArr = [];
        $alphabetArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
            'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ',
            'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ',];

        $modelQuestion = \backend\modules\formTemplate\models\FormItem::find()
                ->innerJoin('form_category', 'form_item.category_id=form_category.category_id')
                ->where(['=', 'form_category.form_id', 3])
                ->orderBy(['form_category.category_sort' => SORT_ASC, 'form_item.item_sort' => SORT_ASC])
                ->all();
        if (!empty($modelQuestion)) {
            foreach ($modelQuestion as $rowQuestion) {
                $category_name = '';
                $modelCategory = \backend\modules\formTemplate\models\FormCategory::findOne($rowQuestion->category_id);
                if (!empty($modelCategory))
                    $category_name = $modelCategory->category_name;

                $arr = [
                    'category_id' => $rowQuestion->category_id,
                    'category_name' => $category_name,
                    'item_id' => $rowQuestion->item_id,
                    'item_name' => $rowQuestion->item_name,
                    'item_name2' => $rowQuestion->item_name2
                ];
                $questionArr[] = $arr;
            }
        }

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', 'Nama Pengguna');
        $countAlphabet = 1;
        if (!empty($questionArr)) {
            foreach ($questionArr as $questionDetail) {
                $countAlphabet++;
                $questionTitle = $questionDetail['category_name'] . ' : ' . $questionDetail['item_name'] . ' - ' . $questionDetail['item_name2'];
                $sheet->setCellValue($alphabetArr[$countAlphabet] . '1', $questionTitle);
            }
        }

        $evaluationArr = ArrayHelper::map(\backend\modules\formTemplate\models\FormSubmit::find()
                                ->innerJoin('course_participation', 'course_participation.participation_id=form_submit.data_id')
                                ->where(['=', 'course_participation.participation_course_id', $course_id])
                                ->andwhere(['=', 'form_submit.form_id', '3'])
                                ->andwhere(['=', 'form_submit.table_related', 'course_participation'])
                                ->all(), 'submit_id', 'data_id');
        $countRow = 1;
        if (!empty($evaluationArr)) {
            foreach ($evaluationArr as $submit_id => $participation_id) {
                $countRow++;

                $course_title = '';
                $user_name = '';
                $sqlInfo = "SELECT i.course_title, u.fullname AS user_name FROM course_participation p
          INNER JOIN course_info i ON i.course_id=p.participation_course_id
          INNER JOIN frontend_user u ON u.id=p.participation_user_id
          WHERE p.participation_id=" . $participation_id;
                $modelInfo = Yii::$app->db->createCommand($sqlInfo)->queryAll();
                if (!empty($modelInfo)) {
                    foreach ($modelInfo as $rowInfo) {
                        $course_title = $rowInfo['course_title'];
                        $user_name = $rowInfo['user_name'];
                    }
                }

                $sheet->setCellValue('A' . $countRow, $course_title);
                $sheet->setCellValue('B' . $countRow, $user_name);

                $countAlphabet = 1;
                if (!empty($questionArr)) {
                    foreach ($questionArr as $questionDetail) {
                        $countAlphabet++;
                        $userAnswer = '';
                        $modelSubmit = \backend\modules\formTemplate\models\FormSubmit::findOne($submit_id);
                        if (!empty($modelSubmit)) {
                            $form_data_arr = json_decode($modelSubmit->form_data, true);
                            if (!empty($form_data_arr)) {
                                foreach ($form_data_arr as $submitted_form_data) {
                                    $item_list = $submitted_form_data['item_list'];
                                    if (!empty($item_list)) {
                                        foreach ($item_list as $item_data) {
                                            if ($item_data['item_id'] == $questionDetail['item_id'])
                                                $userAnswer = $item_data['user_answer'];
                                        }
                                    }
                                }
                            }
                        }
                        $cellNo = $alphabetArr[$countAlphabet] . $countRow;
                        $sheet->setCellValue($cellNo, $userAnswer);
                    }
                }
            }
        }

        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Keberkesanan Kursus (Penyelia).xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    public function actionUserevaluation($course_id = '') {
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $questionArr = [];
        $alphabetArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
            'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ',
            'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ',];

        $modelQuestion = \backend\modules\formTemplate\models\FormItem::find()
                ->innerJoin('form_category', 'form_item.category_id=form_category.category_id')
                ->where(['=', 'form_category.form_id', 4])
                ->orderBy(['form_category.category_sort' => SORT_ASC, 'form_item.item_sort' => SORT_ASC])
                ->all();
        if (!empty($modelQuestion)) {
            foreach ($modelQuestion as $rowQuestion) {
                $category_name = '';
                $modelCategory = \backend\modules\formTemplate\models\FormCategory::findOne($rowQuestion->category_id);
                if (!empty($modelCategory))
                    $category_name = $modelCategory->category_name;

                $arr = [
                    'category_id' => $rowQuestion->category_id,
                    'category_name' => $category_name,
                    'item_id' => $rowQuestion->item_id,
                    'item_name' => $rowQuestion->item_name,
                    'item_name2' => $rowQuestion->item_name2
                ];
                $questionArr[] = $arr;
            }
        }

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', 'Nama Pengguna');
        $countAlphabet = 1;
        if (!empty($questionArr)) {
            foreach ($questionArr as $questionDetail) {
                $countAlphabet++;
                $questionTitle = $questionDetail['category_name'] . ' : ' . $questionDetail['item_name'] . ' - ' . $questionDetail['item_name2'];
                $sheet->setCellValue($alphabetArr[$countAlphabet] . '1', $questionTitle);
            }
        }

        $evaluationArr = ArrayHelper::map(\backend\modules\formTemplate\models\FormSubmit::find()
                                ->innerJoin('course_participation', 'course_participation.participation_id=form_submit.data_id')
                                ->where(['=', 'course_participation.participation_course_id', $course_id])
                                ->andwhere(['=', 'form_submit.form_id', '4'])
                                ->andwhere(['=', 'form_submit.table_related', 'course_participation'])
                                ->all(), 'submit_id', 'data_id');
        $countRow = 1;
        if (!empty($evaluationArr)) {
            foreach ($evaluationArr as $submit_id => $participation_id) {
                $countRow++;

                $course_title = '';
                $user_name = '';
                $sqlInfo = "SELECT i.course_title, u.fullname AS user_name FROM course_participation p
          INNER JOIN course_info i ON i.course_id=p.participation_course_id
          INNER JOIN frontend_user u ON u.id=p.participation_user_id
          WHERE p.participation_id=" . $participation_id;
                $modelInfo = Yii::$app->db->createCommand($sqlInfo)->queryAll();
                if (!empty($modelInfo)) {
                    foreach ($modelInfo as $rowInfo) {
                        $course_title = $rowInfo['course_title'];
                        $user_name = $rowInfo['user_name'];
                    }
                }

                $sheet->setCellValue('A' . $countRow, $course_title);
                $sheet->setCellValue('B' . $countRow, $user_name);

                $countAlphabet = 1;
                if (!empty($questionArr)) {
                    foreach ($questionArr as $questionDetail) {
                        $countAlphabet++;
                        $userAnswer = '';
                        $modelSubmit = \backend\modules\formTemplate\models\FormSubmit::findOne($submit_id);
                        if (!empty($modelSubmit)) {
                            $form_data_arr = json_decode($modelSubmit->form_data, true);
                            if (!empty($form_data_arr)) {
                                foreach ($form_data_arr as $submitted_form_data) {
                                    $item_list = $submitted_form_data['item_list'];
                                    if (!empty($item_list)) {
                                        foreach ($item_list as $item_data) {
                                            if ($item_data['item_id'] == $questionDetail['item_id'])
                                                $userAnswer = $item_data['user_answer'];
                                        }
                                    }
                                }
                            }
                        }
                        $cellNo = $alphabetArr[$countAlphabet] . $countRow;
                        $sheet->setCellValue($cellNo, $userAnswer);
                    }
                }
            }
        }

        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Keberkesanan Kursus (Pengguna).xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    public function actionCourseevaluation($course_id = '') {
        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $questionArr = [];
        $alphabetArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
            'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ',
            'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ'];

        $modelQuestion = \backend\modules\formTemplate\models\FormItem::find()
                ->innerJoin('form_category', 'form_item.category_id=form_category.category_id')
                ->where(['=', 'form_category.form_id', 1])
                ->where(['=', 'form_category.category_id', 1])
                ->orderBy(['form_category.category_sort' => SORT_ASC, 'form_item.item_sort' => SORT_ASC])
                ->all();
        if (!empty($modelQuestion)) {
            foreach ($modelQuestion as $rowQuestion) {
                $category_name = '';
                $modelCategory = \backend\modules\formTemplate\models\FormCategory::findOne($rowQuestion->category_id);
                if (!empty($modelCategory))
                    $category_name = $modelCategory->category_name;
                $arr = [
                    'category_id' => $rowQuestion->category_id,
                    'category_name' => $category_name,
                    'item_id' => $rowQuestion->item_id,
                    'item_name' => $rowQuestion->item_name,
                    'item_name2' => $rowQuestion->item_name2,
                    'speaker_name' => '',
                ];
                $questionArr[] = $arr;
            }
        }

        $speaker_arr = [];
        $query = "SELECT * FROM course_info WHERE course_id=" . $course_id;
        $modelCourse = Yii::$app->db->createCommand($query)->queryAll();
        if (!empty($modelCourse)) {
            foreach ($modelCourse as $rowCourse) {
                $speaker_arr = json_decode($rowCourse['course_speaker']);
            }
        }

        if (!empty($speaker_arr)) {
            foreach ($speaker_arr as $speaker_name) {
                $modelQuestion = \backend\modules\formTemplate\models\FormItem::find()
                        ->innerJoin('form_category', 'form_item.category_id=form_category.category_id')
                        ->where(['=', 'form_category.form_id', 1])
                        ->where(['=', 'form_category.category_id', 2])
                        ->orderBy(['form_category.category_sort' => SORT_ASC, 'form_item.item_sort' => SORT_ASC])
                        ->all();
                if (!empty($modelQuestion)) {
                    foreach ($modelQuestion as $rowQuestion) {
                        $category_name = '';
                        $modelCategory = \backend\modules\formTemplate\models\FormCategory::findOne($rowQuestion->category_id);
                        if (!empty($modelCategory))
                            $category_name = $modelCategory->category_name;
                        $arr = [
                            'category_id' => $rowQuestion->category_id,
                            'category_name' => $category_name,
                            'item_id' => $rowQuestion->item_id,
                            'item_name' => $rowQuestion->item_name,
                            'item_name2' => $rowQuestion->item_name2,
                            'speaker_name' => $speaker_name,
                        ];
                        $questionArr[] = $arr;
                    }
                }
            }
        }

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', 'Nama Pengguna');
        $countAlphabet = 1;
        if (!empty($questionArr)) {
            foreach ($questionArr as $questionDetail) {
                $countAlphabet++;
                //$questionTitle = $questionDetail['category_name'] . ' : ' . $questionDetail['item_name'] . ' - ' . $questionDetail['speaker_name'];
                $sheet->setCellValue($alphabetArr[$countAlphabet] . '1', $questionDetail['category_name']);
                $sheet->setCellValue($alphabetArr[$countAlphabet] . '2', $questionDetail['item_name']);
                $sheet->setCellValue($alphabetArr[$countAlphabet] . '3', $questionDetail['speaker_name']);
            }
        }

        $evaluationArr = ArrayHelper::map(\backend\modules\formTemplate\models\FormSubmit::find()
                                ->innerJoin('course_participation', 'course_participation.participation_id=form_submit.data_id')
                                ->where(['=', 'course_participation.participation_course_id', $course_id])
                                ->andwhere(['=', 'form_submit.form_id', '1'])
                                ->andwhere(['=', 'form_submit.table_related', 'course_participation'])
                                ->all(), 'submit_id', 'data_id');
        $countRow = 3;

        if (!empty($evaluationArr)) {
            foreach ($evaluationArr as $submit_id => $participation_id) {
                $countRow++;

                $course_title = '';
                $user_name = '';
                $sqlInfo = "SELECT i.course_title, u.fullname AS user_name FROM course_participation p
          INNER JOIN course_info i ON i.course_id=p.participation_course_id
          INNER JOIN frontend_user u ON u.id=p.participation_user_id
          WHERE p.participation_id=" . $participation_id;
                $modelInfo = Yii::$app->db->createCommand($sqlInfo)->queryAll();
                if (!empty($modelInfo)) {
                    foreach ($modelInfo as $rowInfo) {
                        $course_title = $rowInfo['course_title'];
                        $user_name = $rowInfo['user_name'];
                    }
                }

                $sheet->setCellValue('A' . $countRow, $course_title);
                $sheet->setCellValue('B' . $countRow, $user_name);

                $countAlphabet = 1;
                if (!empty($questionArr)) {
                    foreach ($questionArr as $questionDetail) {
                        $countAlphabet++;
                        $userAnswer = '';
                        $modelSubmit = \backend\modules\formTemplate\models\FormSubmit::findOne($submit_id);
                        if (!empty($modelSubmit)) {
                            $form_data_arr = json_decode($modelSubmit->form_data, true);
                            if (!empty($form_data_arr)) {
                                foreach ($form_data_arr as $submitted_form_data) {
                                    $item_list = $submitted_form_data['item_list'];
                                    if (!empty($item_list)) {
                                        foreach ($item_list as $item_data) {

                                            if (!empty($questionDetail['speaker_name'])) {
                                                if ($item_data['item_id'] == $questionDetail['item_id'] && $item_data['speaker_name'] == $questionDetail['speaker_name'])
                                                    $userAnswer = $item_data['user_answer'];
                                            } else {
                                                if ($item_data['item_id'] == $questionDetail['item_id'])
                                                    $userAnswer = $item_data['user_answer'];
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        $cellNo = $alphabetArr[$countAlphabet] . $countRow;
                        $sheet->setCellValue($cellNo, $userAnswer);
                    }
                }
            }
        }
        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Penilaian Kursus.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    /* public function actionUserevaluation($course_title = '', $user_name = '') {
      $spreadsheet = new Spreadsheet();
      $sheet = $spreadsheet->getActiveSheet();

      $query = "SELECT u.fullname AS user_name, i.course_title,
      v.evaluation_knowledge_before, v.evaluation_knowledge_after, v.evaluation_skill_before, v.evaluation_skill_after, v.evaluation_objective, v.evaluation_remarks
      FROM course_user_evaluation v
      INNER JOIN course_participation p ON p.participation_id=v.evaluation_participation_id
      INNER JOIN course_info i ON i.course_id=p.participation_course_id
      INNER JOIN frontend_user u ON u.id=p.participation_user_id
      WHERE
      u.fullname LIKE '%$user_name%' AND
      i.course_title LIKE '%$course_title%'
      ORDER BY i.course_end_date, i.course_title DESC";

      $dataProvider = new SqlDataProvider(['sql' => $query, 'pagination' => ['pageSize' => false],]);

      $sheet->setCellValue('A1', 'Tajuk Kursus');
      $sheet->setCellValue('B1', 'Nama Pengguna');
      $sheet->setCellValue('C1', 'Pengetahuan yang berkaitan dengan kursus ini (%) Sebelum Berkursus');
      $sheet->setCellValue('D1', 'Pengetahuan yang berkaitan dengan kursus ini (%) Selepas Berkursus');
      $sheet->setCellValue('E1', 'Kemahiran menyelesaikan masalah yang berkaitan dengan kursus yang diikuti (%) Sebelum Berkursus');
      $sheet->setCellValue('F1', 'Kemahiran menyelesaikan masalah yang berkaitan dengan kursus yang diikuti (%) Selepas Berkursus');
      $sheet->setCellValue('G1', 'Adakah objektif kursus ini tercapai?');
      $sheet->setCellValue('H1', 'Ulasan Penyelia');
      $count1 = 1;
      foreach ($dataProvider->models as $row) {
      $count1++;
      $sheet->setCellValue('A' . $count1, strtoupper($row['course_title']));
      $sheet->setCellValue('B' . $count1, strtoupper($row['user_name']));
      $sheet->setCellValue('C' . $count1, strtoupper($row['evaluation_knowledge_before']));
      $sheet->setCellValue('D' . $count1, strtoupper($row['evaluation_knowledge_after']));
      $sheet->setCellValue('E' . $count1, strtoupper($row['evaluation_skill_before']));
      $sheet->setCellValue('F' . $count1, strtoupper($row['evaluation_skill_after']));
      $sheet->setCellValue('G' . $count1, strtoupper($row['evaluation_objective']));
      $sheet->setCellValue('H' . $count1, strtoupper($row['evaluation_remarks']));
      }

      $writer = new Xlsx($spreadsheet);
      header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
      header('Content-Disposition: attachment;filename="Laporan Keberkesanan Kursus.xlsx"');
      header('Cache-Control: max-age=0');
      $writer->save('php://output');
      exit();
      } */

    public function actionExpenses($course_title = '', $course_type = '', $record_year = '') {

        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();
        $query = "SELECT * FROM (
	SELECT e.expenses_course_type, i.course_title AS course_title, DATE (e.created_at) AS date_record, 
	e.expenses_package_name, e.expenses_accommodation, e.expenses_dobi, e.expenses_meal, e.expenses_consultant, 
	e.expenses_speaker, e.expenses_others, e.expenses_total, e.expenses_impact_form, e.expenses_remarks 
	FROM course_expenses e 
	INNER JOIN course_info i ON i.course_id=e.expenses_course_id 
	WHERE e.expenses_course_type = 'EXPENSES01'
		UNION 
	SELECT e.expenses_course_type, e.expenses_course_name AS course_title, DATE (e.created_at) AS date_record,  
	e.expenses_package_name, e.expenses_accommodation, e.expenses_dobi, e.expenses_meal, e.expenses_consultant, 
	e.expenses_speaker, e.expenses_others, e.expenses_total, e.expenses_impact_form, e.expenses_remarks
	FROM course_expenses e 
	WHERE e.expenses_course_type = 'EXPENSES02'
        ) t1 WHERE 
            course_title LIKE '%$course_title%' AND 
            expenses_course_type LIKE '%$course_type%' AND 
            YEAR(date_record) LIKE '%$record_year%' 
        ORDER BY date_record DESC";
        $dataProvider = new SqlDataProvider(['sql' => $query, 'pagination' => ['pageSize' => false],]);

        $sheet->setCellValue('A1', 'Tarikh Rekod');
        $sheet->setCellValue('B1', 'Jenis Kursus');
        $sheet->setCellValue('C1', 'Tajuk Kursus');
        $sheet->setCellValue('D1', 'Jumlah Kos');
        $sheet->setCellValue('E1', 'Nama Pakej');
        $sheet->setCellValue('F1', 'Kos Penginapan');
        $sheet->setCellValue('G1', 'Kos Dobi');
        $sheet->setCellValue('H1', 'Kos Makan');
        $sheet->setCellValue('I1', 'Kos Konsultan');
        $sheet->setCellValue('J1', 'Kos Penceramah');
        $sheet->setCellValue('K1', 'Kos Lain-Lain');
        $sheet->setCellValue('L1', 'Borang Impak');
        $sheet->setCellValue('M1', 'Catatan');
        $count1 = 1;
        foreach ($dataProvider->models as $row) {
            $count1++;
            $sheet->setCellValue('A' . $count1, date("d/m/Y", strtotime($row['date_record'])));
            $sheet->setCellValue('B' . $count1, strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('EXPENSES_TYPE', $row['expenses_course_type'], 'descr')));
            $sheet->setCellValue('C' . $count1, strtoupper($row['course_title']));
            $sheet->setCellValue('D' . $count1, $row['expenses_total']);
            $sheet->setCellValue('E' . $count1, strtoupper($row['expenses_package_name']));
            $sheet->setCellValue('F' . $count1, $row['expenses_accommodation']);
            $sheet->setCellValue('G' . $count1, $row['expenses_dobi']);
            $sheet->setCellValue('H' . $count1, $row['expenses_meal']);
            $sheet->setCellValue('I' . $count1, $row['expenses_consultant']);
            $sheet->setCellValue('J' . $count1, $row['expenses_speaker']);
            $sheet->setCellValue('K' . $count1, $row['expenses_others']);
            $sheet->setCellValue('L' . $count1, strtoupper(\backend\modules\refdynawebv2\models\Ref::getDesc('EXPENSES_FORM', $row['expenses_impact_form'], 'descr')));
            $sheet->setCellValue('M' . $count1, strtoupper($row['expenses_remarks']));
        }

        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Perbelanjaan Kursus.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    public function actionCancelapplication($course_title = '', $user_name = '') {

        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        $query = "SELECT u.fullname AS user_name, i.course_title, p.cancel_remarks
        FROM course_participation p 
        INNER JOIN course_info i ON i.course_id=p.participation_course_id 
        INNER JOIN frontend_user u ON u.id=p.participation_user_id
        WHERE 
            p.participation_user_status = 'user_cancel' AND 
            p.participation_course_type = 'course_info' AND 
            i.course_title LIKE '%$course_title%' AND 
            u.fullname LIKE '%$user_name%'";

        $dataProvider = new SqlDataProvider(['sql' => $query, 'pagination' => ['pageSize' => false],]);

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', 'Nama Pengguna');
        $sheet->setCellValue('C1', 'Alasan Pembatalan');
        $count1 = 1;
        foreach ($dataProvider->models as $row) {
            $count1++;
            $sheet->setCellValue('A' . $count1, strtoupper($row['course_title']));
            $sheet->setCellValue('B' . $count1, strtoupper($row['user_name']));
            $sheet->setCellValue('C' . $count1, strtoupper($row['cancel_remarks']));
        }

        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Laporan Pembatalan Penyertaan.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

    public function actionPrintattendancelist($course_id = '') {

        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        $course_name = '';
        $course_date = '';
        $course_time = '';
        $course_location = '';
        if (($modelCourse = \backend\modules\courseInfo\models\CourseInfo::findOne($course_id)) !== null) {
            $course_name = $modelCourse->course_title;
            if ($modelCourse->course_start_date == $modelCourse->course_end_date)
                $course_date = date("j M Y", strtotime($modelCourse->course_start_date));
            else
                $course_date = date("j M Y", strtotime($modelCourse->course_start_date)) . ' hingga ' . date("j M Y", strtotime($modelCourse->course_end_date));

            $course_time = date("h:i A", strtotime($modelCourse->course_start_time)) . ' hingga ' . date("h:i A", strtotime($modelCourse->course_end_time));
            $course_location = $modelCourse->course_location;
        }

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', $course_name);
        $sheet->setCellValue('A2', 'Tarikh');
        $sheet->setCellValue('B2', $course_date);
        $sheet->setCellValue('A3', 'Masa');
        $sheet->setCellValue('B3', $course_time);
        $sheet->setCellValue('A4', 'Lokasi');
        $sheet->setCellValue('B4', $course_location);

        $sheet->setCellValue('A5', 'BIL.');
        $sheet->setCellValue('B5', 'NAMA');
        $sheet->setCellValue('C5', 'NO. K/P');
        $sheet->setCellValue('D5', 'BAHAGIAN / JPPM NEGERI');

        $count_user = 0;
        $count_row = 5;

        $model2 = \backend\modules\courseParticipation\models\CourseParticipation::find()->innerJoin('frontend_user', 'course_participation.participation_user_id=frontend_user.id')
                ->where(['=', 'participation_course_type', 'course_info'])
                ->andwhere(['=', 'participation_course_id', $course_id])
                ->andwhere(['=', 'participation_user_status', 'user_confirm'])
                ->andwhere(['=', 'participation_supervisor_status', 'supervisor_support'])
                ->andwhere(['=', 'participation_coordinator_status', 'coordinator_support'])
                ->orderBy(['frontend_user.fullname' => SORT_ASC])
                ->all();
        if (!empty($model2)) {
            foreach ($model2 as $row2) {
                $count_user++;
                $count_row++;

                $sheet->setCellValue('A' . $count_row, $count_user);
                $sheet->setCellValue('B' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::getname($row2->participation_user_id));
                $sheet->setCellValue('C' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::geticno($row2->participation_user_id));
                $sheet->setCellValue('D' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::getstate($row2->participation_user_id));
            }
        }

        $spreadsheet->getActiveSheet()->getStyle('A5:D5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('f3eff4');


        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Senarai Kehadiran Peserta.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }
	
	public function actionPrintattendancelist2($course_id = '') {

        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        $course_name = '';
        $course_date = '';
        $course_time = '';
        $course_location = '';
        if (($modelCourse = \backend\modules\courseInfo\models\CourseInfo::findOne($course_id)) !== null) {
            $course_name = $modelCourse->course_title;
            if ($modelCourse->course_start_date == $modelCourse->course_end_date)
                $course_date = date("j M Y", strtotime($modelCourse->course_start_date));
            else
                $course_date = date("j M Y", strtotime($modelCourse->course_start_date)) . ' hingga ' . date("j M Y", strtotime($modelCourse->course_end_date));

            $course_time = date("h:i A", strtotime($modelCourse->course_start_time)) . ' hingga ' . date("h:i A", strtotime($modelCourse->course_end_time));
            $course_location = $modelCourse->course_location;
        }

        $sheet->setCellValue('A1', 'Tajuk Kursus');
        $sheet->setCellValue('B1', $course_name);
        $sheet->setCellValue('A2', 'Tarikh');
        $sheet->setCellValue('B2', $course_date);
        $sheet->setCellValue('A3', 'Masa');
        $sheet->setCellValue('B3', $course_time);
        $sheet->setCellValue('A4', 'Lokasi');
        $sheet->setCellValue('B4', $course_location);

        $sheet->setCellValue('A5', 'BIL.');
        $sheet->setCellValue('B5', 'NAMA');
        $sheet->setCellValue('C5', 'NO. K/P');
        $sheet->setCellValue('D5', 'BAHAGIAN / JPPM NEGERI');

        $count_user = 0;
        $count_row = 5;

        $model2 = \backend\modules\courseParticipation\models\CourseParticipation::find()->innerJoin('frontend_user', 'course_participation.participation_user_id=frontend_user.id')
                ->where(['=', 'participation_course_type', 'course_info'])
                ->andwhere(['=', 'participation_course_id', $course_id])
                ->andwhere(['=', 'participation_user_status', 'user_confirm'])
                ->andwhere(['=', 'participation_supervisor_status', 'supervisor_support'])
                ->andwhere(['=', 'participation_coordinator_status', 'coordinator_support'])
				->andwhere(['=','attendance','1'])
                ->orderBy(['frontend_user.fullname' => SORT_ASC])
                ->all();
        if (!empty($model2)) {
            foreach ($model2 as $row2) {
                $count_user++;
                $count_row++;

                $sheet->setCellValue('A' . $count_row, $count_user);
                $sheet->setCellValue('B' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::getname($row2->participation_user_id));
                $sheet->setCellValue('C' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::geticno($row2->participation_user_id));
                $sheet->setCellValue('D' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::getstate($row2->participation_user_id));
            }
        }

        $spreadsheet->getActiveSheet()->getStyle('A5:D5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('f3eff4');


        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Senarai Kehadiran Peserta.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }


    public function actionTraininganalysis($search_start_date = '', $search_end_date = '') {

        $spreadsheet = new Spreadsheet();
        $sheet = $spreadsheet->getActiveSheet();

        $sheet->setCellValue('A1', 'NAMA PENGGUNA');
        $sheet->setCellValue('B1', 'BIDANG');
        $sheet->setCellValue('C1', 'CADANGAN KURSUS');
        $sheet->setCellValue('D1', 'JENIS KOMPTENSI');
        $sheet->setCellValue('E1', 'TAHAP KEPERLUAN KURSUS');
        $sheet->setCellValue('F1', 'TARIKH HANTAR');
        $count_row = 1;

        $query = \backend\modules\trainingAnalysis\models\TrainingAnalysis::find();
        if (!empty($search_start_date) && !empty($search_end_date)) {
            $query->andfilterwhere(['BETWEEN', 'DATE(created_at)', $search_start_date, $search_end_date]);
        }
        $query->orderBy(['created_at' => SORT_DESC]);
        $model = $query->all();
        if (!empty($model)) {
            foreach ($model as $row) {
                $count_row++;
                $sheet->setCellValue('A' . $count_row, \backend\modules\fruserdynav2\models\FrontendUser::getname($row->created_by));
                $sheet->setCellValue('B' . $count_row, \backend\modules\refdynawebv2\models\Ref::getDesc('ANALYSIS_AREA', $row->analysis_area, 'descr'));
                $sheet->setCellValue('C' . $count_row, $row->analysis_course_name);
                $sheet->setCellValue('D' . $count_row, \backend\modules\refdynawebv2\models\Ref::getDesc('ANALYSIS_COMPETENCE', $row->analysis_competence, 'descr'));
                $sheet->setCellValue('E' . $count_row, \backend\modules\refdynawebv2\models\Ref::getDesc('ANALYSIS_STAGE', $row->analysis_stage, 'descr'));
                $sheet->setCellValue('F' . $count_row, date("d-m-Y", strtotime($row->created_at)));
            }
        }

        $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)->getStartColor()->setARGB('d2f8d2');
        $writer = new Xlsx($spreadsheet);
        header('Content-Type: application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="Analisa Latihan.xlsx"');
        header('Cache-Control: max-age=0');
        $writer->save('php://output');
        exit();
    }

}