public function import() { if ($this->validate()) { if (($handle = fopen($this->datafile->tempName, "r")) !== false) { $notImported = []; while (($data = fgetcsv($handle)) !== false) { /** @var $employee Employee */ if (($employee = Employee::findOne(['organic_number' => $data[0]])) !== null) { $employee->post = $data[2]; $employee->save(); } else { $notImported[] = ['personnel_number' => $data[0], 'name' => $data[1], 'post' => $data[2], 'division1' => $data[3], 'division2' => $data[4], 'division3' => $data[5], 'group' => $data[6]]; } } fclose($handle); $this->_notImported->allModels = $notImported; return; } throw new \Exception('Предоставленный файл невозможно открыть'); } }
public function actionUpdate() { foreach (Number::find()->all() as $number) { $history = []; foreach ($number->history as $item) { /** @var Employee $employee */ $employee = Employee::findOne(['id' => $item['ownerId']]); if (!is_null($employee)) { $newItem = ['ownerName' => $employee->fullName, 'ownerPost' => $employee->post]; if (isset($item['rentDate'])) { $newItem['rentDate'] = $item['rentDate']; } if (isset($item['returnDate'])) { $newItem['returnDate'] = $item['returnDate']; } $history[] = $newItem; } $number->history = $history; $number->save(false); } } }