Your IP : 216.73.216.79


Current Path : /var/www/html/chatbot/frontend/controllers/
Upload File :
Current File : /var/www/html/chatbot/frontend/controllers/SiteController.php

<?php
namespace frontend\controllers;

use Yii;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use frontend\models\application\DlsAiApplicationid;
use frontend\models\application\DlsAiApplication;
use frontend\models\application\DlsAiDirectorowner;
use frontend\models\application\DlsAiAuthorizeduser;
use backend\models\application\AiAppstatus;
use frontend\models\application\DlsAiDocupload;
use Hashids\Hashids;
use backend\models\Template;
use backend\models\Staff;

/**
 * Site controller
 */
class SiteController extends Controller
{

    public $csrfwhitelist = [
        'save-app-info',
        'save-app-director',
        'save-app-authorized-officer',
        'delete-director',
        'delete-officer',
    ];

    /**
     * @inheritdoc
     */
    public function beforeAction($action)
    {            
        if (in_array($action->id, $this->csrfwhitelist)) {
            $this->enableCsrfValidation = false;
        }

        return parent::beforeAction($action);
    }

    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'only' => ['logout', 'signup'],
                'rules' => [
                    [
                        'actions' => ['signup', 'generateid', 'save-app-info', 'save-app-director','logout','get-form-data', 'get-director-data','get-appstatus', 'get-doc-upload-data', 'save-app-authorize-officer','get-authorized-officer-data', 'delete-officer'],
                        'allow' => true,
                        'roles' => ['?'],
                    ],
                    [
                        'actions' => ['logout'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    // 'logout' => ['post'],
                    'save-app-info' => ['post'],
                    'save-app-director' => ['post']
                ],
            ],
        ];
    }

    /*field map for input name and db col*/
    private function fieldmap(){
        return [
            "kategori"                    =>  "aiap_transportcategory",
            "jenis_orang"                 =>  "aiap_persontype",
            "mod_pengangkutan"            =>  "aiap_transportationmode",
            "no_syarikat_pemohon"         =>  "aiap_businessno",
            "nama_pemohon"                =>  "aiap_applicantname",
            "nama_pengendali"             =>  "aiap_operatorname",
            "kod_pengendali"              =>  "aiap_operatorcode",
            "negara_asal_pengendali"      =>  "aiap_countryorigin",
            "alamat_1_perniagaan"         =>  "aiap_businessaddress1",
            "alamat_2_perniagaan"         =>  "aiap_businessaddress2",
            "alamat_3_perniagaan"         =>  "aiap_businessaddress3",
            "alamat_poskod_perniagaan"    =>  "aiap_businessposcode",
            "alamat_negeri_perniagaan"    =>  "aiap_businessstate",
            "alamat_negara_perniagaan"    =>  "aiap_businesscountry",
            "alamat_11_perniagaan"        =>  "aiap_correspondenceaddress1",
            "alamat_12_perniagaan"        =>  "aiap_correspondenceaddress2",
            "alamat_13_perniagaan"        =>  "aiap_correspondenceaddress3",
            "alamat_poskod_perniagaan_1"  =>  "aiap_correspondenceposcode",
            "alamat_negeri_perniagaan_1"  =>  "aiap_correspondencestate",
            "alamat_negara_perniagaan_1"  =>  "aiap_correspondencecountry",
            "nama_perdagangan_pengendali" =>  "aiap_operatortradename",
            "no_telefon"                  =>  "aiap_telno",
            "no_telefon_code"             =>  "aiap_telnocode",
            "no_fax"                      =>  "aiap_faxno",
            "no_fax_code"                 =>  "aiap_faxnocode",
            "alamat_emel"                 =>  "aiap_email",
            "ahli_persatuan"              =>  "aiap_memberassociate",
            "cukai_pendapatan"            =>  "aiap_incometax",
            "tarikh_mula"                 =>  "aiap_datecommencement",
            "bilangan_orang_asean"        =>  "aiap_estimatepersonasean",
            "bilangan_orang_lain"         =>  "aiap_estimatepersonnotasean",
            "nama_akaun"                  =>  "aiap_acchaldername",
            "nama_bank"                   =>  "aiap_bankname",
            "jenis_akaun"                 =>  "aiap_accounttype",
            "nombor_swift"                =>  "aiap_swiftcode",
            "alamat_bank"                 =>  "aiap_bankaddress",
            "nombor_akaun"                =>  "aiap_noaccount",
            "hubungi_nama"                =>  "aiap_contactname",
            "hubungi_tel"                 =>  "aiap_contacttelno",
            "hubungi_tel_code"            =>  "aiap_contacttelnocode",
            "hubungi_fax"                 =>  "aiap_contactfaxno",
            "hubungi_fax_code"            =>  "aiap_contactfaxnocode",
            "hubungi_emel"                =>  "aiap_contactemail",
            "akuan_tarikh"                =>  "aiap_declarationdate",
            "akuan_nama"                  =>  "aiap_nameofapplicant",
            "akuan_ic"                    =>  "aiap_icofapplicant",
            "akuan_jawatan"				  =>  "aiap_designationofapplicant",
            "akuan_warganegara"           =>  "aiap_nationalityofapplicant",
            "alamat_11_pengendali"		  =>  "aiap_operatoraddress1",
            "alamat_12_pengendali"		  =>  "aiap_operatoraddress2",
            "alamat_13_pengendali"		  =>  "aiap_operatoraddress3",
            "alamat_poskod_pengendali"	  =>  "aiap_operatorpostcode",
            "alamat_negeri_pengendali"	  =>  "aiap_operatorstate",
            "alamat_negara_pengendali"	  =>  "aiap_operatorcountry",
            "alamat_negara_pengendali"	  =>  "aiap_operatorcountry",
            "hubungi_nama_surname"		  =>  "aiap_contactsurname",
        ];
    }

    /**
     * @inheritdoc
     */
    public function actions()
    {
        return [
            'error' => [
                'class' => 'yii\web\ErrorAction',
            ],
            'captcha' => [
                'class' => 'yii\captcha\CaptchaAction',
                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            ],
        ];
    }

    /**
     * Displays homepage.
     *
     * @return mixed
     */
    public function actionIndex()
    {
        return $this->render('index');
    }

    /**
     * Logs in a user.
     *
     * @return mixed
     */
    public function actionLogin()
    {  
        if (!\Yii::$app->user->isGuest) {
            return $this->redirect(['site/index','id'=>'2','page_id'=>'5']);
        }

        $model = new LoginForm();
        if ($model->load(Yii::$app->request->post()) && $model->loginFrontend()) {
            return $this->redirect(['site/index','id'=>'2','page_id'=>'5']);
        } else {
            // return $this->render('login', [
            //     'model' => $model,
            // ]);
            yii::$app->session->setFlash('danger','Id atau Katalaluan salah.');
            return $this->redirect(['index']);
        }
    }

    /**
     * Logs out the current user.
     *
     * @return mixed
     */
    public function actionLogout()
    {
        Yii::$app->user->logout();

        return $this->goHome();
    }

    /**
     * Displays contact page.
     *
     * @return mixed
     */
    public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
                Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
            } else {
                Yii::$app->session->setFlash('error', 'There was an error sending email.');
            }

            return $this->refresh();
        } else {
            return $this->render('contact', [
                'model' => $model,
            ]);
        }
    }

    /**
     * Displays about page.
     *
     * @return mixed
     */
    public function actionAbout()
    {
        return $this->render('about');
    }

    /**
     * Signs user up.
     *
     * @return mixed
     */
    public function actionSignup()
    {
        $model = new SignupForm();
        if ($model->load(Yii::$app->request->post())) {
            if ($user = $model->signup()) {
                if (Yii::$app->getUser()->login($user)) {
                    return $this->goHome();
                }
            }
        }

        return $this->render('signup', [
            'model' => $model,
        ]);
    }

    /**
     * Requests password reset.
     *
     * @return mixed
     */
    public function actionRequestPasswordReset()
    {
        $model = new PasswordResetRequestForm();
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail()) {
                Yii::$app->session->setFlash('success', 'Check your email for further instructions.');

                return $this->goHome();
            } else {
                Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
            }
        }

        return $this->render('requestPasswordResetToken', [
            'model' => $model,
        ]);
    }

    /**
     * Resets password.
     *
     * @param string $token
     * @return mixed
     * @throws BadRequestHttpException
     */
    public function actionResetPassword($token)
    {
        try {
            $model = new ResetPasswordForm($token);
        } catch (InvalidParamException $e) {
            throw new BadRequestHttpException($e->getMessage());
        }

        if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
            Yii::$app->session->setFlash('success', 'New password was saved.');

            return $this->goHome();
        }

        return $this->render('resetPassword', [
            'model' => $model,
        ]);
    }

    public function actionFrontendDashboard(){
        return $this->render('frontend-dashboard');
    }

    public function actionGenerateid(){
        $result = [];
        
        /*generate id*/
        $result = yii::$app->db->createCommand('SELECT UUID() AS UUID')->queryOne();

        /*insert id*/
        $now = date('Y-m-d H:i:s');
        $model = new DlsAiApplicationid();
        $model->aiad_aiapid = $result['UUID'];
        $model->created_at  = $now;
        
        if($model->save()){
            $result['PK'] = $model->aiad_id;
            $result['CREATED_AT'] = $now;
            
            return $this->asJson($result);
        }

    }

    public function actionSaveAppInfo(int $stat=null){
        /*object*/
        $result = [];
        
        /*flag*/
        $isnewrecord = false;

        /*convert json to array*/
        $formdata = json_decode($_POST['formJSON']);

        /*assign id*/
        $id = $_POST['UUID'] ?? null;

        /*application*/
        $model = DlsAiApplication::find()->where(['aiap_uuid'=> $id])->one();


        if(empty($model)){
            /* new instance if id no exist */
            $model = new DlsAiApplication();

            /*set uiid*/
            $model->aiap_uuid = $id;

            /*created at*/
            $model->created_at = date('Y-m-d H:i:s');

            /*flag*/
            $isnewrecord = true;
        }

        /*map array to field send by form*/
        $fieldmap = $this->fieldmap();

        /*date*/
        $datefield = [
            'aiap_datecommencement',
            'aiap_declarationdate'
        ];

        /* loop trough each map*/
        foreach ($formdata as $data) {
            if(isset($fieldmap[$data->name])){

                if(in_array($fieldmap[$data->name],$datefield)){
                    // $myDateTime = \DateTime::createFromFormat('d/m/Y', '22/02/2019');
                    $datetime = \DateTime::createFromFormat('d/m/Y', $data->value);
                    
                    if(!$datetime == false){
                        $model->{$fieldmap[$data->name]} = $datetime->format('Y-m-d');
                    }
                    continue;
                }

                $model->{$fieldmap[$data->name]} = $data->value;
            }
        }

        try{

            if(empty($id)){
                throw new \Exception("NO UUID PRESENT", 1);
                
            }

            if($model->save()){


                /*app status*/
                $chkappstat = AiAppstatus::find()->where(['aias_applicationid'=> $model->aiap_id,'aias_activeind' => '1'])->one();

                /*application id*/
                $hashids = new Hashids(Yii::$app->params['urlidcryptokey'] , 6);
                $result['APPID'] = $hashids->encode($model->aiap_id);

                /*if record is new  */
                if($stat === 1 && empty($chkappstat)){

                    /*set status for new application*/
                    $appstat = new AiAppstatus();
                    $appstat->aias_applicationid = $model->aiap_id;
                    $appstat->aias_statuscode = 'N';
                    $appstat->aias_activeind  = '1';

                    $appstat->save();

                    /*sent first time email*/
                    $email = Template::find()->where(['dt_id' => 9])->one();

                    $content = $email->dt_header;
                    $content .= "<hr>";
                    $content .= $email->dt_title;
                    $content .= $email->dt_body;
                    $content .= $email->dt_footer;

                    $emailprop = [
                        '#NAMAPEMOHON#'    => $model->aiap_applicantname,
                        '#NAMAOPERATOR#'    => $model->aiap_operatorname,
                        '#NOPERNIAGAAN#'    => $model->aiap_businessno,
                        '#IDPERMOHONAN#'    => $result['APPID']
                    ];

                    $contentfinal = strtr($content,$emailprop);
                    $appemail = [
                        $model->aiap_email,
                        $model->aiap_contactemail
                    ];

                    /*email to applicant*/
                    Yii::$app->mailer->compose()
                            ->setFrom('programmerost4490@gmail.com')
                            ->setTo($appemail)
                            ->setSubject($email->dt_title)
                            ->setTextBody('Plain text content')
                            ->setHtmlBody($contentfinal)
                            ->send();


                    /*email to admin*/
                    $staff = Staff::find()->joinWith('roles')->where(['role_code'=>'SUP'])->all();
                    $staffemail = [];

                    foreach ($staff as $staffkey) {
                        $staffemail[] = $staffkey->user->email;
                    }

                    /*sent first time email*/
                    $emailadmin = Template::find()->where(['dt_id' => 12])->one();

                    $contentadmin = $emailadmin->dt_header;
                    $contentadmin .= "<hr>";
                    $contentadmin .= $emailadmin->dt_title;
                    $contentadmin .= $emailadmin->dt_body;
                    $contentadmin .= $emailadmin->dt_footer;

                    $epropadmin = [
                        '#NAMAPEMOHON#'    => $model->aiap_applicantname,
                        '#NAMAOPERATOR#'    => $model->aiap_operatorname,
                        '#NOPERNIAGAAN#'    => $model->aiap_businessno,
                        '#IDPERMOHONAN#'    => $result['APPID']
                    ];

                    $contentfinaladmin = strtr($contentadmin,$epropadmin);


                    Yii::$app->mailer->compose()
                            ->setFrom('programmerost4490@gmail.com')
                            ->setTo($staffemail)
                            ->setSubject($email->dt_title)
                            ->setTextBody('Plain text content')
                            ->setHtmlBody($contentfinaladmin)
                            ->send();



                /*if record come from reject status*/
                }elseif (isset($chkappstat->aias_statuscode) && $chkappstat->aias_statuscode == 'R' && $stat === 1) {
                    /*check status*/
                    $chkappstat->aias_activeind = '0';
                    $chkappstat->save(false);

                    /*set status for new application*/
                    $appstat = new AiAppstatus();
                    $appstat->aias_applicationid = $model->aiap_id;
                    $appstat->aias_statuscode = 'U';
                    $appstat->aias_activeind  = '1';

                    $appstat->save();
                }

                /*director reassign pk if exist*/
                $director = DlsAiDirectorowner::find()->where(['aiad_uuid'=>$id])->all();

                if(!empty($director)){
                    foreach ($director as $dkey) {
                        $dkey->aiad_applicationid = $model->aiap_id;
                        $dkey->save();
                    }
                }


                /*officer reassign pk if exist*/
                $officer = DlsAiAuthorizeduser::find()->where(['aiau_uuid'=>$id])->all();

                if(!empty($officer)){
                    foreach ($officer as $dkey) {
                        $dkey->aiau_applicationid = $model->aiap_id;
                        $dkey->save();
                    }
                }


                /*document upload reassign pk if exist*/
                $docupload = DlsAiDocupload::find()->where(['aidu_uuid'=>$id])->all();

                if(!empty($docupload)){
                    foreach ($docupload as $dockey) {
                        $dockey->aidu_applicationid = $model->aiap_id;
                        $dockey->save();
                    }
                }

                /*status*/
                $result['STATUS'] = "OK";
                $result['DATE']   = date('Y-m-d H:i:s');
            	$result['ID'] = $model->aiap_id;

                return $this->asJson($result);
            }else{

                /*status*/
                $result['DATE'] = date('Y-m-d H:i:s');
                $result['STATUS'] = "ERROR";
                $result['MESSAGE'] = $model->errors;
                return $this->asJson($result);
            }

        }catch(\Exception $e){

                var_dump($e);
                /*status*/
                $result['DATE'] = date('Y-m-d H:i:s');
                $result['STATUS'] = "ERROR";
                $result['MESSAGE'] = $e->getMessage();
                return $this->asJson($result);
        }

    }

    public function actionSaveAppDirector($rowid=null){

        /*object*/
        $result = [];

        /*convert json to array*/
        $formdata = json_decode($_POST['formJSON']);

        /*assign id*/
        $id = $_POST['UUID'];

        if(!empty($rowid)){
        	$model = DlsAiDirectorowner::findOne($rowid);
        }else{
        	$model = new DlsAiDirectorowner();
        }

        $model->aiad_uuid = $id;

        /*map array to field send by form*/
        $fieldmap = [
            "nama_pengarah"         => "aiad_name",
            "alamat_pengarah"       => "aiad_address",
            "tel_pengarah"          => "aiad_notel",
            "ic_pengarah"           => "aiad_ic",
            "warganegara_pengarah"  => "aiad_citizenship",
            "tarikh_pengarah"       => "aiad_appoinmentdate",
            "no_telefon_pengarah_code"	=> "aiad_notel",
        ];

          /* loop trough each map*/
        foreach ($formdata as $data) {
            if(isset($fieldmap[$data->name])){
                $model->{$fieldmap[$data->name]} = $data->value;

                if($data->name == "tarikh_pengarah")
                	$model->{$fieldmap[$data->name]} = date('Y-m-d', strtotime($data->value));
            }
        }

        
        if($model->save()){
            $result['DATE']   = date('Y-m-d H:i:s');
            $result['STATUS'] = "OK";
            $result['UUID']  = $id;
            $result['ID']  = $model->aiad_id;
            return $this->asJson($result);
        }else{
            $result['DATE'] = date('Y-m-d H:i:s');
            $result['STATUS'] = "ERROR";
            $result['MESSAGE'] = $model->errors;
            return $this->asJson($result);
        }
    }

    public function actionSaveAppAuthorizedOfficer($rowid=null){

    	/*object*/
        $result = [];

        /*convert json to array*/
        $formdata = json_decode($_POST['formJSON']);

        /*assign id*/
        $id = $_POST['UUID'];

        if(!empty($rowid)){
        	$model = DlsAiAuthorizeduser::findOne($rowid);
        }else{
        	$model = new DlsAiAuthorizeduser();
        }

        $model->aiau_uuid = $id;

        /*map array to field send by form*/
        $fieldmap = [
            "nama_individu_dibenarkan"	=> "aiau_name",
            "ic_individu_dibenarkan"	=> "aiau_ic",
            "kod_notel_dibenarkan"      => "aiau_notelcode",
            "notel_dibenarkan"          => "aiau_notel",
            "emel_dibenarkan"			=> "aiau_email",
            "jawatan_dibenarkan"		=> "aiau_designation",
        ];

          /* loop trough each map*/
        foreach ($formdata as $data) {
            if(isset($fieldmap[$data->name])){
                $model->{$fieldmap[$data->name]} = $data->value;
            }
        }

        
        if($model->save()){
            $result['DATE']   = date('Y-m-d H:i:s');
            $result['STATUS'] = "OK";
            $result['UUID']  = $id;
            $result['ID']  = $model->aiau_id;
            return $this->asJson($result);
        }else{
            $result['DATE'] = date('Y-m-d H:i:s');
            $result['STATUS'] = "ERROR";
            $result['MESSAGE'] = $model->errors;
            return $this->asJson($result);
        }


    }

    public function actionDeleteDirector($id){
        /*model*/
        $director = DlsAiDirectorowner::findOne($id);
        $director->delete(); 

        return $this->asJson(['STATUS'=>'OK','DATE' => date('Y-m-d H:i:s'),'ID'=>$id]);
    }

    public function actionDeleteOfficer($id){
        /*model*/
        $director = DlsAiAuthorizeduser::findOne($id);
        $director->delete(); 

        return $this->asJson(['STATUS'=>'OK','DATE' => date('Y-m-d H:i:s'),'ID'=>$id]);
    }

    public function actionGetFormData(string $uuid){
        /*application*/
        $model = DlsAiApplication::find()->where(['aiap_uuid'=> $uuid])->one();

        if(!empty($model)){
            /*status*/
            $appstat = AiAppstatus::find()->where(['aias_applicationid'=> $model->aiap_id, 'aias_activeind' => '1'])->one();

            if(!empty($appstat)){
                if($appstat->aias_statuscode != 'N' && $appstat->aias_statuscode != 'U'){
                    $result['STATUS'] = "DATA_PROCESS_EXCEPTION";
                    $result['MESSAGE'] = "Data anda sudah pun diproses. Anda akan memulakan pengisian permohonan yang baru";

                    $this->asJson($result);
                }
            }

            /*flip array*/
            $fieldmap = array_flip($this->fieldmap());

            /*date*/
	        $datefield = [
	            'aiap_datecommencement',
	            'aiap_declarationdate'
	        ];

            $i=0;
            foreach ($model->attributes as $mkey => $mval) {
                

                if(isset($fieldmap[$mkey]))
                    $result['APPDATA'][$i]['fieldname'] =  $fieldmap[$mkey];

                $result['APPDATA'][$i]['dbcolname'] =  $mkey;
                $result['APPDATA'][$i]['value']     = $mval;

                if(in_array($mkey,$datefield)){
                    	// $myDateTime = \DateTime::createFromFormat('d/m/Y', '22/02/2019');
                    	$datetime = new \DateTime($mval);
                    
                    	if(!$datetime == false){
                        	$result['APPDATA'][$i]['value'] = $datetime->format('d/m/Y');
	                    }
                	}

            $i++;}
                        
            /*application id*/
            $hashids = new Hashids(Yii::$app->params['urlidcryptokey'] , 6);
            $result['APPID'] = $hashids->encode($model->aiap_id);
            $result['ID'] = $model->aiap_id;

            //debug
            // $result['APPIDDECODE'] = $hashids->decode($result['APPID']);
            if(!empty($appstat)){
                $result['APPSTATUS'] = $appstat->aias_statuscode;
            }else{
                $result['APPSTATUS'] = null;
            }
            
            $result['STATUS'] = "OK";
        }else{    
            $result['STATUS'] = "NULL_RECORD";
            $result['MESSAGE'] = "NO DATA FOUND FOR APPLICATION ";
        }

        $result['DATE']   = date('Y-m-d H:i:s');
        $result['UUID']  = $uuid;
        
        return $this->asJson($result);
    }

    public function actionGetDirectorData(string $uuid){

    	/*model*/
        $director = DlsAiDirectorowner::find()->where(['aiad_uuid' => $uuid])->all();

        if(!empty($director)){
        	foreach ($director as $dkey) {
        		/*change date format*/
        		$appointdate = new \DateTime($dkey->aiad_appoinmentdate);
        		$dkey->aiad_appoinmentdate = $appointdate->format('d/m/Y');

        		/*put result into array*/
        		$result['DIRECTOR'][] = $dkey->attributes;
			}

        	$result['STATUS'] = "OK";
        }else{
        	$result['STATUS'] = "NULL_RECORD";
        	$result['MESSAGE'] = "NO DATA FOUND FOR DIRECTOR";
        }

        return $this->asJson($result);

    }

    public function actionGetAuthorizedOfficerData(string $uuid){

    	/*model*/
        $officer = DlsAiAuthorizeduser::find()->where(['aiau_uuid' => $uuid])->all();

        if(!empty($officer)){
        	foreach ($officer as $dkey) {
        		$result['OFFICER'][] = $dkey->attributes;
			}

        	$result['STATUS'] = "OK";
        }else{
        	$result['STATUS'] = "NULL_RECORD";
        	$result['MESSAGE'] = "NO DATA FOUND FOR DIRECTOR";
        }

        return $this->asJson($result);

    }

    public function actionGetAppstatus(string $appid){

    	$result = [];
    	
    	if(!empty($appid)){
    		
    		/*decode*/
    		$hashids = new Hashids(Yii::$app->params['urlidcryptokey'] , 6);
    		$id = $hashids->decode($appid);

    		$appstat = AiAppstatus::find()->where(['aias_applicationid'=> $id,'aias_activeind' => '1'])->one();
            $appdata = DlsAiApplication::findOne($id);

    		if(!empty($appstat)){
                $result['UUID'] = $appdata->aiap_uuid;
    			$result['STATUS'] = 'OK';
    			$result['APPSTAT'] = $appstat->attributes;
    		}else{
                
                if(!empty($appdata)){
                    $result['UUID'] = $appdata->aiap_uuid;
                    $result['STATUS'] = 'OK';
                    $result['APPSTAT'] = ['aias_statuscode'=>'N'];
                }else{
                    $result['STATUS'] = 'NULL_RECORD';
                    $result['MESSAGE'] = 'NO DATA FOR THIS APPID';
                }
    		}

    	}

    	return $this->asJson($result);

    }

    public function actionGetDocUploadData(string $uuid){

    	/*model*/
        $director = DlsAiDocupload::find()->where(['aidu_uuid' => $uuid])->all();

        if(!empty($director)){
        	foreach ($director as $dkey) {
        		$result['DOCUPLOAD'][] = $dkey->attributes;
			}

        	$result['STATUS'] = "OK";
        }else{
        	$result['STATUS'] = "NULL_RECORD";
        	$result['MESSAGE'] = "NO DATA FOUND FOR UPLOAD";
        }

        return $this->asJson($result);

    }

    public function actionGetAppidbyid($id){
    	$hashids = new Hashids(Yii::$app->params['urlidcryptokey'] , 6);
        return $hashids->encode($id);
    }

    public function actionStub(){

        $staff = Staff::find()->joinWith('roles')->where(['role_code'=>'SUP'])->all();
        $staffemail = [];

        foreach ($staff as $staffkey) {
            $staffemail[] = $staffkey->user->email;
        }

        var_dump($staffemail);
    }
}