Ejemplo n.º 1
0
 /**
  * Импортирует данные
  *
  * @return boolean
  */
 public function import($stock_id)
 {
     if ($this->validate()) {
         // выбираю уже имеющиеся данные
         $dataArray = StockPrognosisRed::query(['stock_id' => $stock_id])->select('date')->column();
         $rows = $this->get('fileRed', $stock_id, $dataArray);
         if (count($rows['insert']) > 0) {
             StockPrognosisRed::batchInsert(['stock_id', 'date', 'delta'], $rows['insert']);
         }
         if ($this->isReplaceExisting) {
             foreach ($rows['update'] as $date => $kurs) {
                 (new Query())->createCommand()->update(StockPrognosisRed::TABLE, ['delta' => $kurs], ['date' => $date, 'stock_id' => $stock_id])->execute();
             }
         }
         // выбираю уже имеющиеся данные
         $dataArray = StockPrognosisBlue::query(['stock_id' => $stock_id])->select('date')->column();
         $rows = $this->get('fileBlue', $stock_id, $dataArray);
         if (count($rows['insert']) > 0) {
             StockPrognosisBlue::batchInsert(['stock_id', 'date', 'delta'], $rows['insert']);
         }
         if ($this->isReplaceExisting) {
             foreach ($rows['update'] as $date => $kurs) {
                 (new Query())->createCommand()->update(StockPrognosisBlue::TABLE, ['delta' => $kurs], ['date' => $date, 'stock_id' => $stock_id])->execute();
             }
         }
         return true;
     } else {
         return false;
     }
 }