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 + + + + + + + + + + + + + + + + + + + @foreach ($assets as $asset) + + + + + + + + + + + @php + $counter++ + @endphp + @endforeach +
{{ trans('general.assets') }}
Asset TagNameCategoryModelSerialChecked Out
{{ $counter }}{{ $asset->asset_tag }}{{ $asset->name }}{{ $asset->model->category->name }}{{ $asset->model->name }}{{ $asset->serial }} + {{ $asset->last_checkout }}
+@endif + +@if ($licenses->count() > 0) +

+ + + + + + + + + + + + + + + @php + $lcounter = 1; + @endphp + + @foreach ($licenses as $license) + + + + + + + + @php + $lcounter++ + @endphp + @endforeach +
{{ trans('general.licenses') }}
NameSerial/Product KeyChecked Out
{{ $lcounter }}{{ $license->name }}{{ $license->serial }}{{ $license->assetlog->first()->created_at }}
+@endif + + +@if ($accessories->count() > 0) +

+ + + + + + + + + + + + + + + @php + $acounter = 1; + @endphp + + @foreach ($accessories as $accessory) + + + + + + + + @php + $acounter++ + @endphp + @endforeach +
{{ trans('general.accessories') }}
NameCategoryChecked Out
{{ $acounter }}{{ $accessory->manufacturer->name }} {{ $accessory->name }} {{ $accessory->model_number }}{{ $accessory->category->name }}{{ $accessory->assetlog->first()->created_at }}
+@endif + +@if ($consumables->count() > 0) +

+ + + + + + + + + + + + + + + @php + $ccounter = 1; + @endphp + + @foreach ($consumables as $consumable) + + + + + + + + @php + $ccounter++ + @endphp + @endforeach +
{{ trans('general.consumables') }}
NameCategoryChecked Out
{{ $ccounter }}{{ $consumable->manufacturer->name }} {{ $consumable->name }} {{ $consumable->model_number }}{{ $consumable->category->name }}{{ $consumable->assetlog->first()->created_at }}
+@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 @@
{{ trans('admin/users/general.clone') }}
+
+ Print All Assigned +
+ @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' ]