Ejemplo n.º 1
0
 public function search($params)
 {
     $query = Logreport::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['logreport_id' => SORT_DESC]]]);
     $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;
     }
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_id'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_executetime', Proc::Time));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_date', Proc::Date));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_errors'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_updates'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_additions'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_amount'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_missed'));
     $query->andFilterWhere(Proc::WhereConstruct($this, 'logreport_memoryused'));
     return $dataProvider;
 }
Ejemplo n.º 2
0
 private static function DeleteOldReports()
 {
     $countreports = Importconfig::findOne(1);
     if (!empty($countreports)) {
         $files = glob('importreports/*.xlsx');
         if (count($files) > $countreports->logreport_reportcount) {
             $ToDelete = Logreport::find()->select(['logreport_id'])->orderBy(['logreport_id' => SORT_ASC])->limit(count($files) - $countreports->logreport_reportcount)->asArray()->all();
         }
         if (!empty($ToDelete)) {
             foreach ($ToDelete as $row) {
                 Traflog::deleteAll(['id_logreport' => $row['logreport_id']]);
                 Matlog::deleteAll(['id_logreport' => $row['logreport_id']]);
                 Employeelog::deleteAll(['id_logreport' => $row['logreport_id']]);
                 Logreport::findOne($row['logreport_id'])->delete();
                 $fileroot = 'importreports/Отчет импорта в систему Фрегат N' . $row['logreport_id'] . '.xlsx';
                 if (DIRECTORY_SEPARATOR !== '/') {
                     $fileroot = mb_convert_encoding($fileroot, 'Windows-1251', 'UTF-8');
                 }
                 unlink($fileroot);
             }
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Сеттер для списока ID отчетов, подлежащих удалению из базы данных и файловой системы.
  */
 private function setNeedDeleteReports()
 {
     if ($this->getCountReportsFiles() > $this->getMaxReportsFiles()) {
         $this->_needDeleteReports = Logreport::find()->select(['logreport_id'])->orderBy(['logreport_id' => SORT_ASC])->limit($this->getCountReportsFiles() - $this->getMaxReportsFiles())->asArray()->all();
     }
 }
Ejemplo n.º 4
0
 /**
  * @return bool
  */
 protected function isChanged()
 {
     $Field = $this->getMaxFileLastDate();
     if (!$Field) {
         return false;
     }
     if (empty(Logreport::find()->count()) || $this->getDebug()) {
         return true;
     }
     $fileLastDateFromDB = Logreport::find()->max($Field);
     if (empty($fileLastDateFromDB)) {
         return false;
     }
     return strtotime($this->fileLastDate) > strtotime($fileLastDateFromDB);
 }