Your IP : 216.73.216.79


Current Path : /var/www/html/dvs/backend/modules/directory/models/
Upload File :
Current File : /var/www/html/dvs/backend/modules/directory/models/DirectorySearch.php

<?php

namespace backend\modules\directory\models;

use yii\base\Model;
use yii\data\ArrayDataProvider;
use backend\modules\directory\models\Directory;
use yii;

class DirectorySearch extends Directory {

    public $directory_id;
    public $directory_division_code;
    public $directory_division_label;
    public $directory_unit_code;
    public $directory_unit_label;
    public $directory_name;
    public $directory_email;
    public $directory_designation;
    public $directory_phone;
    public $directory_fax;
    public $directory_dob;
    public $directory_figure;

    public function rules() {
        return [
            [[
            'directory_id',
            'directory_division_code',
            'directory_division_label',
            'directory_unit_code',
            'directory_unit_label',
            'directory_name',
            'directory_email',
            'directory_designation',
            'directory_phone',
            'directory_fax',
            'directory_dob',
            'directory_figure',
                ], 'safe'],
        ];
    }

    public function scenarios() {
        // bypass scenarios() implementation in the parent class
        return Model::scenarios();
    }

    public function search($params) {

        $this->load($params);

        if (!$this->validate()) {
            return $dataProvider;
        }

        $search_field = "";
        if (!empty($this->directory_name))
            $search_field .= "&directory_name=" . $this->directory_name;
        if (!empty($this->directory_designation))
            $search_field .= "&directory_designation=" . $this->directory_designation;
        if (!empty($this->directory_unit_code))
            $search_field .= "&directory_unit_code=" . $this->directory_unit_code;

        if (\backend\modules\mimin\models\User::userrole() == 'admin-branch') {
            $user_branch = Yii::$app->user->identity->branch;
            if ($user_branch == 1)
                $search_field .= "&directory_unit_arr=28";
            if ($user_branch == 2)
                $search_field .= "&directory_unit_arr=10";
            if ($user_branch == 3)
                $search_field .= "&directory_unit_arr=31";
            if ($user_branch == 4)
                $search_field .= "&directory_unit_arr=27";
            if ($user_branch == 5)
                $search_field .= "&directory_unit_arr=26";
            if ($user_branch == 6)
                $search_field .= "&directory_unit_arr=29";
            if ($user_branch == 7)
                $search_field .= "&directory_unit_arr=12";
            if ($user_branch == 8)
                $search_field .= "&directory_unit_arr=11";
            if ($user_branch == 9)
                $search_field .= "&directory_unit_arr=9";
            if ($user_branch == 10)
                $search_field .= "&directory_unit_arr=25";
            if ($user_branch == 11)
                $search_field .= "&directory_unit_arr=30";
            if ($user_branch == 12)
                $search_field .= "&directory_unit_arr=34";
            if ($user_branch == 13)
                $search_field .= "&directory_unit_arr=32,33";
            if ($user_branch == 14)
                $search_field .= "&directory_unit_arr=35";
            if ($user_branch == 15)
                $search_field .= "&directory_unit_arr=0";
            if ($user_branch == 16)
                $search_field .= "&directory_unit_arr=1,2,3,5,6,7,8";
        }

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_FAILONERROR, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_URL, Yii::$app->params['intranetDirectory'] . "&id=14" . $search_field);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $server_output = curl_exec($ch);
        curl_close($ch);
        $arr = json_decode($server_output, true);

        $dataProvider = new ArrayDataProvider([
            'allModels' => $arr,
            'key' => 'directory_id',
            'pagination' => ['pageSize' => false,],
        ]);

        return $dataProvider;
    }

}