OSDN Git Service

Откорректированы сообщения и их перевод
[invent/invent.git] / controllers / ItemsController.php
index 16d7b6b..17f37b3 100644 (file)
@@ -61,7 +61,7 @@ class ItemsController extends Controller
     {
         $result = [
             'id' => FALSE,
-            'error' => Yii::t('items', 'Items: Key field missing "invent", "serial", "model"') . print_r($options, TRUE),
+            'error' => Yii::t('items', 'Items: Key field missing "invent" :') . print_r($options, TRUE),
         ];
         // Если указан инвентарный номер
         if (is_array($options) && isset($options[ 'invent' ]))
@@ -87,44 +87,31 @@ class ItemsController extends Controller
                     $model = ModelsController::addIfNeed($options);
                     if ($model[ 'id' ] === FALSE)
                     {
-                        $result[ 'error' ] .= $model[ 'error' ] . '<br />';
+                        $result[ 'error' ] .= '<br />' . $model[ 'error' ];
                     }
-                    // Если указан тип предмета/оборудования
-                    if (isset($options[ 'type' ]))
+                    else
                     {
-                        $type = TypesController::addIfNeed($options[ 'type' ]); // Найдём или добавим тип
-                        // Если тип не добавили
-                        if($type[ 'id' ] === FALSE)
+                        // Создаём новую запись предмета/оборудования
+                        $item = new Items();
+                        $item->name        = isset($options[ 'netName' ]) ? $options[ 'netName' ] : NULL; // Сетевое имя
+
+                        $item->model_id    = $model[ 'id' ];                                              // идентификатор модели (Подготовлено для преобразования)
+                        $item->invent      = isset($options[ 'invent' ]) ? $options[ 'invent' ] : NULL;   // Инвентарный номер
+                        $item->comment     = isset($options[ 'comment' ]) ? $options[ 'comment' ] : NULL; // Коментарий
+                        $item->os          = isset($options[ 'os' ]) ? $options[ 'os' ] : NULL;           // Операционная система
+                        $item->mac         = isset($options[ 'mac' ]) ? $options[ 'mac' ] : NULL;         // MAC-адрес
+                        $item->serial      = isset($options[ 'serial' ]) ? $options[ 'serial' ] : NULL;   // Серийный номер
+                        $item->checked     = false;                                                       // Не инвентризирован (требует внимания после импорта)
+                        // Сохраняем запись
+                        if ($item->validate() && $item->save())
                         {
-                            $result[ 'error' ] = $type[ 'error' ] . '<br />';
-                            $type[ 'id' ] = NULL; // сделаем его пустым
+                            $result[ 'id' ] = $item->id; // Возвращаем идентификатор записанного оборудования
+                            $result[ 'error' ] = '';
+                        }
+                        else
+                        {
+                            $result[ 'error' ] .= Yii::t('items', 'Items: Failed to add entry: ') . print_r($item->errors, TRUE) . '<br />';
                         }
-                    }
-                    // Создаём новую запись предмета/оборудования
-                    $item = new Items();
-                    $item->name        = isset($options[ 'netName' ]) ? $options[ 'netName' ] : NULL; // Сетевое имя
-
-                    $item->model       = isset($options[ 'model' ]) ? $options[ 'model' ] : NULL;     // Наименование
-                    //$item->model_id    = $model[ 'id' ];                                              // идентификатор модели (Подготовлено для преобразования)
-                    $item->type_id     = isset($type[ 'id' ]) ? $type[ 'id' ] : NULL;                 // Идентификатор типа
-                    $item->product     = isset($options[ 'product' ]) ? $options[ 'product' ] : NULL; // Код оборудования
-                    $item->modelnumber = isset($options[ 'modelnum' ]) ? $options[ 'modelnum' ] : NULL; // Номер модели
-
-                    $item->invent      = isset($options[ 'invent' ]) ? $options[ 'invent' ] : NULL;   // Инвентарный номер
-                    $item->comment     = isset($options[ 'comment' ]) ? $options[ 'comment' ] : NULL; // Коментарий
-                    $item->os          = isset($options[ 'os' ]) ? $options[ 'os' ] : NULL;           // Операционная система
-                    $item->mac         = isset($options[ 'mac' ]) ? $options[ 'mac' ] : NULL;         // MAC-адрес
-                    $item->serial      = isset($options[ 'serial' ]) ? $options[ 'serial' ] : NULL;   // Серийный номер
-                    $item->checked     = false;                                                       // Не инвентризирован (требует внимания после импорта)
-                    // Сохраняем запись
-                    if ($item->validate() && $item->save())
-                    {
-                        $result[ 'id' ] = $item->id; // Возвращаем идентификатор записанного оборудования
-                        $result[ 'error' ] = '';
-                    }
-                    else
-                    {
-                        $result[ 'error' ] .= Yii::t('items', 'Items: Failed to add entry') . print_r($item->errors());
                     }
                 }
             }
@@ -230,7 +217,7 @@ class ItemsController extends Controller
                 //$message = '[0] = "' . $keys[0] . '", [1] = "' . $keys[1] . '"<br />';
                 foreach ($items as $row)
                 {
-                    $message .= $row->model . ' (' . $row->id . ')';
+                    $message .= $row->modelName . ' (' . $row->id . ')';
                 }
                 if ($message != '')
                     $message = Yii::t('items', 'Checked item(s): ') . $message;
@@ -302,6 +289,7 @@ class ItemsController extends Controller
         
         // Проверка наличия ключевых полей
         if ((!isset($arrayRows[ 0 ][ 'model' ]))
+            || (!isset($arrayRows[ 0 ][ 'type' ]))
             || (!isset($arrayRows[ 0 ][ 'invent' ]))
             || (!isset($arrayRows[ 0 ][ 'location' ]))
             || (!isset($arrayRows[ 0 ][ 'region' ]))
@@ -310,7 +298,7 @@ class ItemsController extends Controller
         {
             // Сообщение об ошибке
             $arrayReturn[ 'countErrors' ] = count($arrayRows);
-            $arrayReturn[ 'errors' ] .= '<br />' . Yii::t('import', 'Skip all. Key column not found: ') . print_r($arrayRows[0], TRUE);
+            $arrayReturn[ 'errors' ] .= '<br />' . Yii::t('import', 'Skip all. Key column(s) "model", "type", "invent", "location", "region", "date" not found: ') . print_r($arrayRows[0], TRUE);
         }
         else
         {
@@ -323,7 +311,7 @@ class ItemsController extends Controller
                 {
                     // Сообщим об ошибке
                     $arrayReturn[ 'countErrors' ]++;
-                    $arrayReturn[ 'errors' ] .= '<br />' . Yii::t('import', 'Location: {location} ({region})', $row) . ' :: ' . $location[ 'error' ];
+                    $arrayReturn[ 'errors' ] .= '<br />' . $location[ 'error' ];
                 }
                 else
                 {
@@ -369,7 +357,7 @@ class ItemsController extends Controller
                                 else
                                 {
                                     // Запись не удалась, пробуем удалить предмет/оборудование
-                                    Items::find()->where([ 'id' => $item_id, 'checked' => FALSE ])->one()->delete();
+                                    Items::find()->where([ 'id' => $item[ 'id' ], 'checked' => FALSE ])->one()->delete();
                                     // Сообщим об ошибке
                                     $arrayReturn[ 'countErrors' ]++;
                                     $arrayReturn[ 'errors' ] .= '<br />' . Yii::t('import', 'Moving: {date} (') . $moving->errors['date'][0]. Yii::t('import', '), Inventory number:{invent}, model: {model}, location: {location} ( {region} )' , $row);
@@ -438,13 +426,13 @@ class ItemsController extends Controller
                             if (count($columns) == 0)
                             {
                                 // Ищем строку с заголовком таблицы
-                                if ( stripos($row[0], $columnNames[ 'npp' ]) !== FALSE )
+                                if ( stripos($row[0], $columnsNames[ 'npp' ]) !== FALSE )
                                 {
                                     // Перебираем все колонки
                                     foreach ($row as $key => $item)
                                     {
                                         // Перебираем все названия заголовков колонок
-                                        foreach($columnNamses as $name => $text)
+                                        foreach($columnsNames as $name => $text)
                                         {
                                             // Если название совпало,
                                             if (stripos($item, $text) !== FALSE)