Your IP : 216.73.216.79


Current Path : /var/www/html/dosm/backend/models/industrial_training/
Upload File :
Current File : /var/www/html/dosm/backend/models/industrial_training/Senarai_permohonan.php

<?php

namespace backend\models\industrial_training;

use Yii;
use yii\behaviors\TimestampBehavior;
use yii\behaviors\BlameableBehavior;
use yii\db\Expression;
use yii\db\ActiveRecord;
use asinfotrack\yii2\audittrail\behaviors\AuditTrailBehavior;

/**
 * This is the model class for table "senarai_permohonan".
 *
 */
class Senarai_permohonan extends \yii\db\ActiveRecord
{

    public $cover1;

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

    public function behaviors()
    {
        return [
            'audittrail' => [
                'class' => AuditTrailBehavior::className(),
                // some of the optional configurations
                // 'ignoredAttributes' => ['created_at', 'updated_at'],
                'consoleUserId' => 1,
                'attributeOutput' => [
                    'desktop_id' => function ($value) {
                        $model = Desktop::findOne($value);
                        return sprintf('%s %s', $model->manufacturer, $model->device_name);
                    },
                    'last_checked' => 'datetime',
                ],
            ],
        ];
    }

    /**
     * @inheritdoc
     */
     
    //nisya comment 11112024
    // public function rules()
    // {
    //     return [
    //         [[
    //             'jantina', 'peringkat_pengajian', 'kampus_cawangan',
    //             'alamat', 'nama', 'no_kad_pengenalan',
    //             'emel', 'no_telefon', 'cgpa', 'lokasi_mohon1',
    //             'jarak_antara_rumah_dan_lokasi_mohon',
    //             'tarikh_mula_jangka_masa_latihan', 'tarikh_akhir_jangka_masa_latihan',
    //             'status_pemohon', 'nama_institusi_pengajian_tinggi', 'lokasi_mohon1',
    //             'salinan_kad_pengenalan', 'surat_iringan', 'surat_sokongan_institut_pengajian_tinggi', 'resume', 'mini_transkrip_akademik'
    //         ], 'required'],
    //         [['salinan_kad_pengenalan', 'surat_iringan', 'surat_sokongan_institut_pengajian_tinggi', 'resume', 'mini_transkrip_akademik', 'upload_passport_photo'], 'file', 'skipOnEmpty' => false, 'extensions' => ['pdf', 'png', 'jpg', 'jpeg'], 'maxSize' => 1024 * 1024 * 1],
    //         [[
    //             'updated_at'
    //         ], 'safe'],
    //     ];
    // }
    
    //nisya add 11112024
    public function rules()
    {
        return [
            // List of required fields
            [[
                'jantina', 'peringkat_pengajian', 'kampus_cawangan','bidang_pengajian',
                'alamat', 'nama', 'no_kad_pengenalan',
                'emel', 'no_telefon', 'cgpa', 'lokasi_mohon1','pengangkutan_yang_akan_digunakan',
                'jarak_antara_rumah_dan_lokasi_mohon',
                'tarikh_mula_jangka_masa_latihan', 'tarikh_akhir_jangka_masa_latihan',
                'status_pemohon', 'nama_institusi_pengajian_tinggi', 'lokasi_mohon2',
                'salinan_kad_pengenalan', 'surat_iringan', 'surat_sokongan_institut_pengajian_tinggi', 'resume', 'mini_transkrip_akademik'
            ], 'required'],
            
            // List of extension restricted
            [
                [
                    'salinan_kad_pengenalan', 
                    'surat_iringan', 
                    'surat_sokongan_institut_pengajian_tinggi', 
                    'resume', 
                    'mini_transkrip_akademik'
                ], 
                'file', 
                'skipOnEmpty' => false, 
                'extensions' => 'pdf', 
                'checkExtensionByMimeType' => false, // Disable MIME-type check
                'maxSize' => 1024 * 1024, // 1MB limit
                'message' => 'Only files with extensions pdf are allowed.'
            ],
            ['upload_passport_photo', 
                'file', 
                'skipOnEmpty' => false, 
                'extensions' => ['pdf', 'png', 'jpg', 'jpeg'], 
                'checkExtensionByMimeType' => false, // Disable MIME-type check
                'maxSize' => 1024 * 1024, // 1MB limit
                'message' => 'Only files with extensions pdf, png, jpg, jpeg are allowed.'
            ],
            
            //List of validation control
            [
                [
                    'salinan_kad_pengenalan', 
                    'surat_iringan', 
                    'surat_sokongan_institut_pengajian_tinggi', 
                    'resume', 
                    'mini_transkrip_akademik', 
                    'upload_passport_photo'
                ],
                'match', 
                'pattern' => '/^[a-zA-Z.@\_\'\s]+$/u', 
                'message' => 'The filename contains invalid characters. Only letters, spaces, and certain special characters (.,@-\'()) are allowed'
            ],    
            [['no_kad_pengenalan','no_telefon',], 'match', 'pattern' => '/^\d+$/', 'message' => 'Invalid characters. Only numbers is allowed','on' => ['default']],
            [['cgpa','jarak_antara_rumah_dan_lokasi_mohon'], 'match', 'pattern' => '/^\d+(\.\d+)?$/', 'message' => 'Invalid characters. Only numbers and special characters . is allowed'],
            ['nama', 'match', 'pattern' => '/^[a-zA-Z.@\'\s]+$/', 'message' => 'Invalid characters. Only letters, spaces, and certain special characters (.@\') are allowed'],
            ['bidang_pengajian', 'match', 'pattern' => '/^[a-zA-Z.,\'\/\(\)\s]+$/', 'message' => 'Invalid characters. Only letters, spaces, and certain special characters (.,/\'()) are allowed'],
            ['kampus_cawangan', 'match', 'pattern' => '/^[a-zA-Z0-9.,\(\)\/\s]+$/', 'message' => 'Invalid characters. Only letters, numbers, spaces, and certain special characters (.,/()) are allowed'],
            ['alamat', 'match', 'pattern' => '/^[a-zA-Z0-9.,@\'\-\/\s\[\]\(\)]+$/', 'message' => 'Invalid characters. Only letters, numbers, spaces, and certain special characters (.,@-\'/[]()) are allowed'],
            ['emel', 'email', 'message' => 'Invalid characters in Email.'],                                                         
            [
                [
                    'jantina', 'nama_institusi_pengajian_tinggi', 'lokasi_mohon1', 'lokasi_mohon2', 
                    'peringkat_pengajian','pengangkutan_yang_akan_digunakan'
                ], 
                'match', 
                'pattern' => '/^[a-zA-Z0-9,\-\'\(\)\s]+$/u', 
                'message' => 'Invalid characters. Only letters, numbers, spaces, and certain special characters (,-\'()) are allowed'
            ],
            
             //date control
            [['tarikh_mula_jangka_masa_latihan', 'tarikh_akhir_jangka_masa_latihan'], 'date', 'format' => 'php:Y-m-d'],
        
            // Rule to ensure start date is greater than the current date
            ['tarikh_mula_jangka_masa_latihan', 'compare', 'compareValue' => date('Y-m-d'), 'operator' => '>', 'type' => 'date', 'message' => 'Industrial Training Start Date must be after today.'],
            
            // Rule to ensure end date is greater than start date
            ['tarikh_akhir_jangka_masa_latihan', 'compare', 'compareAttribute' => 'tarikh_mula_jangka_masa_latihan', 'operator' => '>', 'type' => 'date', 'message' => 'Industrial Training Deadline must be after Industrial Training Start Date.'],
            
            
            // Mark updated_at as safe
            [['updated_at'], 'safe'],
        ];
    }

    public function attributeLabels()
    {
        return [
            'no_kad_pengenalan' => Yii::t('app', 'No.Kad Pengenalan'),
            'emel' => Yii::t('app', 'E-mel'),
            'no_telefon' => Yii::t('app', 'No. Telefon Bimbit'),
            'cgpa' => Yii::t('app', 'CGPA'),
            'lokasi_mohon1' => Yii::t('app', 'Lokasi Permohonan 1'),
            'lokasi_mohon2' => Yii::t('app', 'Lokasi Permohonan 2'),
            'jarak_antara_rumah_dan_lokasi_mohon' => Yii::t('app', 'Jarak Antara Rumah Dan Lokasi Permohonan'),
            'tarikh_mula_jangka_masa_latihan' => Yii::t('app', 'Tarikh Mula Latihan Industri'),
            'tarikh_akhir_jangka_masa_latihan' => Yii::t('app', 'Tarikh Akhir Latihan Industri'),
            'salinan_kad_pengenalan' => Yii::t('app', 'Salinan kad pengenalan'),
            'surat_iringan' => Yii::t('app', 'Surat iringan'),
            'surat_sokongan_institut_pengajian_tinggi' => Yii::t('app', 'Surat sokongan pengajian tinggi'),
            'resume' => Yii::t('app', 'Resume'),
            'mini_transkrip_akademik' => Yii::t('app', 'Mini transkrip akademik'),
            'status_pemohon' => Yii::t('app', 'Disclaimer'),
            'updated_at' => Yii::t('app', 'Tarikh Permohonan')
        ];
    }
}