diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php
index affdbda069..884915aaaf 100644
--- a/app/Http/Controllers/ReportsController.php
+++ b/app/Http/Controllers/ReportsController.php
@@ -637,7 +637,7 @@ class ReportsController extends Controller
}
if ($request->has('eol')) {
- $row[] = ($asset->eol) ? $asset->present()->eol_date() : '';
+ $row[] = ($asset->purchase_date!='') ? $asset->present()->eol_date() : '';
}
if ($request->has('order')) {
diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php
index d3ebe34316..2252a154d0 100755
--- a/app/Http/Controllers/UsersController.php
+++ b/app/Http/Controllers/UsersController.php
@@ -1147,4 +1147,24 @@ class UsersController extends Controller
return response()->json(['message' => trans('admin/settings/general.two_factor_reset_error')], 500);
}
}
+
+ /**
+ * LDAP form processing.
+ *
+ * @author Aladin Alaily
+ * @since [v1.8]
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function print($id)
+ {
+
+ $user = User::where('id',$id)->withTrashed()->first();
+ $assets = Asset::where('assigned_to', $id)->where('assigned_type', User::class)->with('model', 'model.category')->get();
+ $licenses = $user->licenses()->get();
+ $accessories = $user->accessories()->get();
+ $consumables = $user->consumables()->get();
+ return view('users/print')->with('assets', $assets)->with('licenses',$licenses)->with('accessories', $accessories)->with('consumables', $consumables);
+
+ }
+
}
diff --git a/app/Http/Transformers/AssetsTransformer.php b/app/Http/Transformers/AssetsTransformer.php
index b3435df54e..0f8109dc1c 100644
--- a/app/Http/Transformers/AssetsTransformer.php
+++ b/app/Http/Transformers/AssetsTransformer.php
@@ -31,6 +31,7 @@ class AssetsTransformer
'name'=> e($asset->model->name)
] : null,
'model_number' => (($asset->model) && ($asset->model->model_number)) ? e($asset->model->model_number) : null,
+ 'eol' => ($asset->purchase_date!='') ? Helper::getFormattedDateObject($asset->present()->eol_date(), 'date') : null ,
'status_label' => ($asset->assetstatus) ? [
'id' => (int) $asset->assetstatus->id,
'name'=> e($asset->present()->statusText),
diff --git a/app/Http/Transformers/ComponentsTransformer.php b/app/Http/Transformers/ComponentsTransformer.php
index bb24cafb0b..cf51b55d79 100644
--- a/app/Http/Transformers/ComponentsTransformer.php
+++ b/app/Http/Transformers/ComponentsTransformer.php
@@ -23,7 +23,7 @@ class ComponentsTransformer
'id' => (int) $component->id,
'name' => e($component->name),
'image' => ($component->image) ? e(url('/').'/uploads/components/'.e($component->image)) : null,
- 'serial_number' => ($component->serial) ? e($component->serial) : null,
+ 'serial' => ($component->serial) ? e($component->serial) : null,
'location' => ($component->location) ? [
'id' => (int) $component->location->id,
'name' => e($component->location->name)
@@ -34,6 +34,10 @@ class ComponentsTransformer
'id' => (int) $component->category->id,
'name' => e($component->category->name)
] : null,
+ 'location' => ($component->location) ? [
+ 'id' => (int) $component->location->id,
+ 'name' => e($component->location->name)
+ ] : null,
'order_number' => e($component->order_number),
'purchase_date' => Helper::getFormattedDateObject($component->purchase_date, 'date'),
'purchase_cost' => Helper::formatCurrencyOutput($component->purchase_cost),
diff --git a/app/Http/Transformers/ConsumablesTransformer.php b/app/Http/Transformers/ConsumablesTransformer.php
index 426cfb9d41..3d68697a58 100644
--- a/app/Http/Transformers/ConsumablesTransformer.php
+++ b/app/Http/Transformers/ConsumablesTransformer.php
@@ -30,7 +30,7 @@ class ConsumablesTransformer
'location' => ($consumable->location) ? ['id' => (int) $consumable->location->id, 'name' => e($consumable->location->name)] : null,
'manufacturer' => ($consumable->manufacturer) ? ['id' => (int) $consumable->manufacturer->id, 'name' => e($consumable->manufacturer->name)] : null,
'min_amt' => (int) $consumable->min_amt,
- 'model_number' => e($consumable->model_number),
+ 'model_number' => ($consumable->model_number!='') ? e($consumable->model_number) : null,
'remaining' => $consumable->numRemaining(),
'order_number' => e($consumable->order_number),
'purchase_cost' => Helper::formatCurrencyOutput($consumable->purchase_cost),
diff --git a/app/Models/Asset.php b/app/Models/Asset.php
index 15510e8588..230f4c7db8 100644
--- a/app/Models/Asset.php
+++ b/app/Models/Asset.php
@@ -128,7 +128,11 @@ class Asset extends Depreciable
public function availableForCheckout()
{
- if ((empty($this->assigned_to)) && (empty($this->deleted_at)) && ($this->assetstatus->deployable == 1)) {
+ if (
+ (empty($this->assigned_to)) &&
+ (empty($this->deleted_at)) &&
+ (($this->assetstatus) && ($this->assetstatus->deployable == 1)))
+ {
return true;
}
return false;
diff --git a/app/Presenters/AssetPresenter.php b/app/Presenters/AssetPresenter.php
index f24d922531..d5b87b8e0d 100644
--- a/app/Presenters/AssetPresenter.php
+++ b/app/Presenters/AssetPresenter.php
@@ -147,6 +147,13 @@ class AssetPresenter extends Presenter
"visible" => false,
"title" => trans('general.order_number'),
'formatter' => "orderNumberObjFilterFormatter"
+ ], [
+ "field" => "eol",
+ "searchable" => false,
+ "sortable" => false,
+ "visible" => false,
+ "title" => trans('general.eol'),
+ "formatter" => "dateDisplayFormatter"
], [
"field" => "warranty_months",
"searchable" => true,
diff --git a/app/Presenters/ComponentPresenter.php b/app/Presenters/ComponentPresenter.php
index 6983b73d11..2ea797c4e6 100644
--- a/app/Presenters/ComponentPresenter.php
+++ b/app/Presenters/ComponentPresenter.php
@@ -50,6 +50,12 @@ class ComponentPresenter extends Presenter
"title" => trans('general.image'),
"visible" => false,
"formatter" => 'imageFormatter',
+ ],[
+ "field" => "serial",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('admin/hardware/form.serial'),
+ "formatter" => "componentsLinkFormatter"
], [
"field" => "category",
"searchable" => true,
@@ -74,6 +80,12 @@ class ComponentPresenter extends Presenter
"sortable" => false,
"title" => trans('general.min_amt'),
"visible" => true,
+ ], [
+ "field" => "location",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.location'),
+ "formatter" => "locationsLinkObjFormatter"
], [
"field" => "order_number",
"searchable" => true,
diff --git a/app/Presenters/ConsumablePresenter.php b/app/Presenters/ConsumablePresenter.php
index 2089771cc0..334398fabd 100644
--- a/app/Presenters/ConsumablePresenter.php
+++ b/app/Presenters/ConsumablePresenter.php
@@ -56,6 +56,11 @@ class ConsumablePresenter extends Presenter
"sortable" => true,
"title" => trans('general.category'),
"formatter" => "categoriesLinkObjFormatter"
+ ],[
+ "field" => "model_number",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.model_no'),
],[
"field" => "item_no",
"searchable" => true,
@@ -79,6 +84,19 @@ class ConsumablePresenter extends Presenter
"sortable" => false,
"title" => trans('general.min_amt'),
"visible" => true,
+ ], [
+ "field" => "location",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.location'),
+ "formatter" => "locationsLinkObjFormatter"
+ ], [
+ "field" => "manufacturer",
+ "searchable" => true,
+ "sortable" => true,
+ "title" => trans('general.manufacturer'),
+ "visible" => false,
+ "formatter" => "manufacturersLinkObjFormatter"
], [
"field" => "order_number",
"searchable" => true,
diff --git a/config/version.php b/config/version.php
index 63e25a3d90..9ed0644a2c 100644
--- a/config/version.php
+++ b/config/version.php
@@ -1,10 +1,10 @@
'v4.1.7',
- 'full_app_version' => 'v4.1.7 - build 3031-g4f3c932',
- 'build_version' => '3031',
+ 'app_version' => 'v4.1.8-pre',
+ 'full_app_version' => 'v4.1.8-pre - build 3034',
+ 'build_version' => '3034',
'prerelease_version' => '',
'hash_version' => 'g4f3c932',
- 'full_hash' => 'v4.1.6-37-g4f3c932',
+ 'full_hash' => 'v4.1.7-37-g4f3c932',
'branch' => 'master',
);
diff --git a/resources/views/users/print.blade.php b/resources/views/users/print.blade.php
new file mode 100644
index 0000000000..ce5415b36f
--- /dev/null
+++ b/resources/views/users/print.blade.php
@@ -0,0 +1,192 @@
+
+
+
+
+ Assigned to {{ $user->present()->fullName() }}
+
+
+
+Assigned to {{ $user->present()->fullName() }}
+
+@if ($assets->count() > 0)
+ @php
+ $counter = 1;
+ @endphp
+
+
+
+ {{ trans('general.assets') }} |
+
+
+
+
+ |
+ Asset Tag |
+ Name |
+ Category |
+ Model |
+ Serial |
+ Checked Out |
+
+
+
+ @foreach ($assets as $asset)
+
+
+ {{ $counter }} |
+ {{ $asset->asset_tag }} |
+ {{ $asset->name }} |
+ {{ $asset->model->category->name }} |
+ {{ $asset->model->name }} |
+ {{ $asset->serial }} |
+
+ {{ $asset->last_checkout }} |
+
+ @php
+ $counter++
+ @endphp
+ @endforeach
+
+@endif
+
+@if ($licenses->count() > 0)
+
+
+
+
+ {{ trans('general.licenses') }} |
+
+
+
+
+ |
+ Name |
+ Serial/Product Key |
+ Checked Out |
+
+
+ @php
+ $lcounter = 1;
+ @endphp
+
+ @foreach ($licenses as $license)
+
+
+ {{ $lcounter }} |
+ {{ $license->name }} |
+ {{ $license->serial }} |
+ {{ $license->assetlog->first()->created_at }} |
+
+ @php
+ $lcounter++
+ @endphp
+ @endforeach
+
+@endif
+
+
+@if ($accessories->count() > 0)
+
+
+
+
+ {{ trans('general.accessories') }} |
+
+
+
+
+ |
+ Name |
+ Category |
+ Checked Out |
+
+
+ @php
+ $acounter = 1;
+ @endphp
+
+ @foreach ($accessories as $accessory)
+
+
+ {{ $acounter }} |
+ {{ $accessory->manufacturer->name }} {{ $accessory->name }} {{ $accessory->model_number }} |
+ {{ $accessory->category->name }} |
+ {{ $accessory->assetlog->first()->created_at }} |
+
+ @php
+ $acounter++
+ @endphp
+ @endforeach
+
+@endif
+
+@if ($consumables->count() > 0)
+
+
+
+
+ {{ trans('general.consumables') }} |
+
+
+
+
+ |
+ Name |
+ Category |
+ Checked Out |
+
+
+ @php
+ $ccounter = 1;
+ @endphp
+
+ @foreach ($consumables as $consumable)
+
+
+ {{ $ccounter }} |
+ {{ $consumable->manufacturer->name }} {{ $consumable->name }} {{ $consumable->model_number }} |
+ {{ $consumable->category->name }} |
+ {{ $consumable->assetlog->first()->created_at }} |
+
+ @php
+ $ccounter++
+ @endphp
+ @endforeach
+
+@endif
+
+
+
+
+
+
+ Signed Off By: |
+ ________________________________________________________ |
+ |
+ Date: |
+ ________________________________________________________ |
+
+
+
+
+
+
diff --git a/resources/views/users/view.blade.php b/resources/views/users/view.blade.php
index c78c576559..88c3003210 100755
--- a/resources/views/users/view.blade.php
+++ b/resources/views/users/view.blade.php
@@ -216,6 +216,10 @@
+
+
@can('delete', $user)
@if ($user->deleted_at=='')
diff --git a/routes/web/users.php b/routes/web/users.php
index 56d35cf81c..8e467f14d7 100644
--- a/routes/web/users.php
+++ b/routes/web/users.php
@@ -17,6 +17,13 @@ Route::group([ 'prefix' => 'users', 'middleware' => ['auth']], function () {
'{userId}/deletefile/{fileId}',
[ 'as' => 'userfile.destroy', 'uses' => 'UsersController@getDeleteFile' ]
);
+
+ Route::get(
+ '{userId}/print',
+ [ 'as' => 'users.print', 'uses' => 'UsersController@print' ]
+ );
+
+
Route::get(
'{userId}/showfile/{fileId}',
[ 'as' => 'show/userfile', 'uses' => 'UsersController@displayFile' ]