/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = RramatDocfiles::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $query->joinWith('idDocfiles');
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['rramat_docfiles_id' => $this->rramat_docfiles_id, 'id_docfiles' => $this->id_docfiles, 'id_recoveryrecieveaktmat' => $params['id']]);
     $query->andFilterWhere(['LIKE', 'idDocfiles.docfiles_ext', $this->getAttribute('idDocfiles.docfiles_ext')]);
     $query->andFilterWhere(['LIKE', 'idDocfiles.docfiles_name', $this->getAttribute('idDocfiles.docfiles_name')]);
     $query->andFilterWhere(['LIKE', 'idDocfiles.docfiles_hash', $this->getAttribute('idDocfiles.docfiles_hash')]);
     Proc::AssignRelatedAttributes($dataProvider, ['idDocfiles.docfiles_ext', 'idDocfiles.docfiles_name', 'idDocfiles.docfiles_hash']);
     return $dataProvider;
 }
Example #2
0
 public static function DeleteDocFile($docfile_id)
 {
     if (!empty($docfile_id)) {
         $existdb1 = RraDocfiles::find()->andWhere(['id_docfiles' => $docfile_id])->count();
         $existdb2 = RramatDocfiles::find()->andWhere(['id_docfiles' => $docfile_id])->count();
         if (empty($existdb1) && empty($existdb2)) {
             $Docfiles = Docfiles::findOne($docfile_id);
             if (!empty($Docfiles)) {
                 $hash = Yii::$app->basePath . '/docs/' . $Docfiles->docfiles_hash;
                 $fileroot = DIRECTORY_SEPARATOR === '/' ? $hash : mb_convert_encoding($hash, 'Windows-1251', 'UTF-8');
                 if ($Docfiles->delete() && file_exists($fileroot)) {
                     return unlink($fileroot);
                 }
             }
         }
     }
     return false;
 }