Your IP : 216.73.216.124


Current Path : /var/www/html/chatbot/backend/models/
Upload File :
Current File : /var/www/html/chatbot/backend/models/Menu.php

<?php

namespace backend\models;

use Yii;
use common\models\Dermaga;
use asinfotrack\yii2\audittrail\behaviors\AuditTrailBehavior;

/**
 * This is the model class for table "ost_menu".
 *
 * @property integer $id
 * @property string $menu_txt
 * @property string $menu_loc
 * @property integer $menu_parent_id
 * @property string $default_menu
 * @property integer $sort
 * @property string $icon_name
 * @property string $balloon_title
 * @property integer $module_ind
 * @property string $remarks
 * @property string $hide_ind
 * @property string $pic
 * @property string $menucat
 * @property string $modulecd
 */
class Menu extends Dermaga
{
    
    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
     */
    public static function tableName()
    {
        return 'dmg_menu';
    }
    
    public $menu_txtbm;

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['menu_txt'],'required'],
            [['menu_parent_id', 'sort', 'module_ind'], 'integer'],
            [['pic'], 'string'],
            [['modulecd','menucat','created_at', 'updated_at', 'deleted_at'], 'safe'],
            [['menu_txt', 'menu_loc', 'balloon_title', 'remarks'], 'string', 'max' => 100],
            [['default_menu', 'hide_ind'], 'string', 'max' => 1],
            [['icon_name', 'created_by', 'updated_by'], 'string', 'max' => 50],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'menu_txt' =>  Yii::t('app','Menu/Fungsi'),
            'menu_txtbm' =>  Yii::t('app','Menu/Function (Malay Version)'),
            'menu_loc' =>  Yii::t('app','Lokasi Menu'),
            'menu_parent_id' =>  Yii::t('app','Menu Sub'),
            'default_menu' =>  Yii::t('app','Default'),
            'sort' =>  Yii::t('app','Turutan'),
            'icon_name' =>  Yii::t('app','Ikon'),
            'balloon_title' =>  Yii::t('app','Balloon Title'),
            'module_ind' =>  Yii::t('app','Menu Sub?'),
            'remarks' =>  Yii::t('app','Remarks'),
            'hide_ind' =>  Yii::t('app','Tidak Aktif?'),
            'pic' =>  Yii::t('app','Pic'),
            'modulecd'=> Yii::t('app','Menu Utama'),
            'menucat' =>  Yii::t('app','Kategori Menu'),
        ];
    }
    
    public function getPortfolio() {
        return $this->hasOne(MainMenu::className(), ['code' => 'modulecd'])->andWhere(['cat' => 'MAIN']);
    }
    
    public function getModules() {
        return $this->hasOne(Menu::className(), ['id' => 'menu_parent_id']);
    }
    
    
    public function getListMenu() {
         $list = Menu::find()
                ->select('a.menu_txt')
                ->from('dmg_menu a')
                ->innerJoin('dmg_main_menu b', 'a.modulecd=b.code')
                ->where('b.code=16')
                 ->orWhere('b.code=18')
                 ->orWhere('b.code=20')
                 ->all();
         
         return $list;
    }
    
    public function getDefaultMenu(){
        $menus = Menu::findAll()
                ->where(['default_menu'=>'1'])
                ->andWhere(['hide_ind'=>'0'])
                ->andWhere(['module_ind'=>'1'])
                ->orderBy('sort')
                ->all();
        return $menus;
    }
    
    public function displayModule() {
        if ($this->module_ind == 0)
            return 'No';
        else
            return 'Yes';
    }
    
    public function displayActive() {
        if ($this->hide_ind == 0)
            return 'No';
        else
            return 'Yes';
    }
}