diff --git a/app/Http/Controllers/Api/ImportController.php b/app/Http/Controllers/Api/ImportController.php
index 13f430121..8df9961cf 100644
--- a/app/Http/Controllers/Api/ImportController.php
+++ b/app/Http/Controllers/Api/ImportController.php
@@ -177,6 +177,9 @@ class ImportController extends Controller
case 'asset':
$redirectTo = 'hardware.index';
break;
+ case 'assetmodel':
+ $redirectTo = 'models.index';
+ break;
case 'accessory':
$redirectTo = 'accessories.index';
break;
diff --git a/app/Importer/AssetModelImporter.php b/app/Importer/AssetModelImporter.php
index 888265a95..cdf18dab2 100644
--- a/app/Importer/AssetModelImporter.php
+++ b/app/Importer/AssetModelImporter.php
@@ -59,18 +59,22 @@ class AssetModelImporter extends ItemImporter
$this->item['manufacturer'] = trim($this->findCsvMatch($row, 'manufacturer'));
$this->item['min_amt'] = trim($this->findCsvMatch($row, 'min_amt'));
$this->item['model_number'] = trim($this->findCsvMatch($row, 'model_number'));
+ $this->item['eol'] = trim($this->findCsvMatch($row, 'eol'));
$this->item['notes'] = trim($this->findCsvMatch($row, 'notes'));
- $this->item['user_id'] = auth()->id();
+ $this->item['created_by'] = auth()->id();
+
+ $this->item['requestable'] = trim(($this->fetchHumanBoolean($this->findCsvMatch($row, 'requestable'))) == 1) ? '1' : 0;
+ $assetmodel->requestable = $this->item['requestable'];
if (!empty($this->item['category'])) {
- if ($category = $this->createOrFetchCategory($row, 'category')) {
- $this->item['category_id'] = $category->id;
+ if ($category = $this->createOrFetchCategory($this->item['category'])) {
+ $this->item['category_id'] = $category;
}
}
if (!empty($this->item['manufacturer'])) {
- if ($manufacturer = $this->createOrFetchManufacturer($row, 'manufacturer')) {
- $this->item['manufacturer_id'] = $manufacturer->id;
+ if ($manufacturer = $this->createOrFetchManufacturer($this->item['manufacturer'])) {
+ $this->item['manufacturer_id'] = $manufacturer;
}
}
diff --git a/app/Importer/ItemImporter.php b/app/Importer/ItemImporter.php
index 16ae494c1..6acca1ad2 100644
--- a/app/Importer/ItemImporter.php
+++ b/app/Importer/ItemImporter.php
@@ -287,6 +287,7 @@ class ItemImporter extends Importer
$classname = class_basename(get_class($this));
$item_type = strtolower(substr($classname, 0, strpos($classname, 'Importer')));
+ // If we're importing asset models only (without attached assets), override the category type to asset
if ($item_type == 'assetmodel') {
$item_type = 'asset';
}
@@ -302,7 +303,7 @@ class ItemImporter extends Importer
if ($category) {
- $this->log('A matching category: '.$asset_category.' already exists');
+ $this->log('A matching category: '.$category->name.' already exists');
return $category->id;
}
diff --git a/app/Livewire/Importer.php b/app/Livewire/Importer.php
index 164b6411d..6ebf00ff8 100644
--- a/app/Livewire/Importer.php
+++ b/app/Livewire/Importer.php
@@ -346,7 +346,7 @@ class Importer extends Component
'notes' => trans('general.item_notes', ['item' => trans('admin/hardware/form.model')]),
'min_amt' => trans('mail.min_QTY'),
'fieldset' => trans('admin/models/general.fieldset'),
- 'category_type' => 'category type',
+ 'eol' => 'eol',
];
@@ -570,15 +570,13 @@ class Importer extends Component
$this->message_type = 'success';
unset($this->files);
-
return;
}
- $this->message = trans('admin/hardware/message.import.file_delete_error');
- $this->message_type = 'danger';
- }
- }
- }
+ $this->message = trans('admin/hardware/message.import.file_delete_error');
+ $this->message_type = 'danger';
+
+
}
public function clearMessage()
diff --git a/database/factories/ImportFactory.php b/database/factories/ImportFactory.php
index 0b0f79aa4..79435a640 100644
--- a/database/factories/ImportFactory.php
+++ b/database/factories/ImportFactory.php
@@ -143,4 +143,23 @@ class ImportFactory extends Factory
return $attributes;
});
}
+
+ /**
+ * Create an asset model import type.
+ *
+ * @return static
+ */
+ public function assetmodel()
+ {
+ return $this->state(function (array $attributes) {
+ $fileBuilder = Importing\AssetModelsImportFileBuilder::new();
+
+ $attributes['name'] = "{$attributes['name']} Asset Model";
+ $attributes['import_type'] = 'assetmodel';
+ $attributes['header_row'] = $fileBuilder->toCsv()[0];
+ $attributes['first_row'] = $fileBuilder->firstRow();
+
+ return $attributes;
+ });
+ }
}
diff --git a/resources/views/livewire/importer.blade.php b/resources/views/livewire/importer.blade.php
index be590593b..1832e64d8 100644
--- a/resources/views/livewire/importer.blade.php
+++ b/resources/views/livewire/importer.blade.php
@@ -177,7 +177,7 @@
@endif
- @if ($activeFile->import_type != 'location' && $activeFile->import_type == 'assetmodel' && $update)
+ @if ($this->activeFile->import_type != 'location' && $this->activeFile->import_type == 'assetmodel' && $update)