X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=controllers%2FItemsController.php;h=17f37b3724085bc70ae2609be7ee0fcbffdbbe3d;hb=fdecb86935b63355c9d7258dd25aa5fa63f2e6b6;hp=95f3fb043826e1a7d830a76e25bcfe8c418c0a28;hpb=d3c6abcb39904ddb59c08542669524f6f445259e;p=invent%2Finvent.git diff --git a/controllers/ItemsController.php b/controllers/ItemsController.php index 95f3fb0..17f37b3 100644 --- a/controllers/ItemsController.php +++ b/controllers/ItemsController.php @@ -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,29 +87,31 @@ class ItemsController extends Controller $model = ModelsController::addIfNeed($options); if ($model[ 'id' ] === FALSE) { - $result[ 'error' ] .= $model[ 'error' ] . '
'; - } - // Создаём новую запись предмета/оборудования - $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[ 'id' ] = $item->id; // Возвращаем идентификатор записанного оборудования - $result[ 'error' ] = ''; + $result[ 'error' ] .= '
' . $model[ 'error' ]; } else { - $result[ 'error' ] .= Yii::t('items', 'Items: Failed to add entry') . print_r($item->errors(), TRUE); + // Создаём новую запись предмета/оборудования + $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[ 'id' ] = $item->id; // Возвращаем идентификатор записанного оборудования + $result[ 'error' ] = ''; + } + else + { + $result[ 'error' ] .= Yii::t('items', 'Items: Failed to add entry: ') . print_r($item->errors, TRUE) . '
'; + } } } } @@ -215,7 +217,7 @@ class ItemsController extends Controller //$message = '[0] = "' . $keys[0] . '", [1] = "' . $keys[1] . '"
'; foreach ($items as $row) { - $message .= $row->model . ' (' . $row->id . ')'; + $message .= $row->modelName . ' (' . $row->id . ')'; } if ($message != '') $message = Yii::t('items', 'Checked item(s): ') . $message; @@ -287,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' ])) @@ -295,7 +298,7 @@ class ItemsController extends Controller { // Сообщение об ошибке $arrayReturn[ 'countErrors' ] = count($arrayRows); - $arrayReturn[ 'errors' ] .= '
' . Yii::t('import', 'Skip all. Key column not found: ') . print_r($arrayRows[0], TRUE); + $arrayReturn[ 'errors' ] .= '
' . Yii::t('import', 'Skip all. Key column(s) "model", "type", "invent", "location", "region", "date" not found: ') . print_r($arrayRows[0], TRUE); } else { @@ -308,7 +311,7 @@ class ItemsController extends Controller { // Сообщим об ошибке $arrayReturn[ 'countErrors' ]++; - $arrayReturn[ 'errors' ] .= '
' . Yii::t('import', 'Location: {location} ({region})', $row) . ' :: ' . $location[ 'error' ]; + $arrayReturn[ 'errors' ] .= '
' . $location[ 'error' ]; } else { @@ -354,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' ] .= '
' . Yii::t('import', 'Moving: {date} (') . $moving->errors['date'][0]. Yii::t('import', '), Inventory number:{invent}, model: {model}, location: {location} ( {region} )' , $row); @@ -423,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)