예제 #1
0
 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('Предоставленный файл невозможно открыть');
     }
 }
예제 #2
0
 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);
         }
     }
 }