From 5e1562ae4c40c9956528a4cde4c6d6645ed07b59 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Mon, 13 Jan 2025 14:31:54 -0800 Subject: [PATCH] adds count on tabs and reports and index --- app/Helpers/Helper.php | 12 ++++++++++++ .../Controllers/Licenses/LicensesController.php | 13 ++++++++++--- app/Http/Transformers/LicensesTransformer.php | 4 ++-- app/Models/License.php | 3 ++- resources/lang/en-US/admin/licenses/message.php | 2 +- resources/views/licenses/view.blade.php | 2 +- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index 95a344dce9..7230917684 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -2,6 +2,7 @@ namespace App\Helpers; use App\Models\Accessory; +use App\Models\Actionlog; use App\Models\Asset; use App\Models\AssetModel; use App\Models\Component; @@ -9,6 +10,7 @@ use App\Models\Consumable; use App\Models\CustomField; use App\Models\CustomFieldset; use App\Models\Depreciation; +use App\Models\LicenseSeat; use App\Models\Setting; use App\Models\Statuslabel; use App\Models\License; @@ -1529,4 +1531,14 @@ class Helper } return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error')); } + public static function unReassignableCount($license) + { + + if (!$license->reassignable) { + $count = Actionlog::where('action_type', '=', 'checkin from') + ->where('item_id', '=', $license->id) + ->count(); + return $count; + } + } } diff --git a/app/Http/Controllers/Licenses/LicensesController.php b/app/Http/Controllers/Licenses/LicensesController.php index 6098423ba3..8ddac020b5 100755 --- a/app/Http/Controllers/Licenses/LicensesController.php +++ b/app/Http/Controllers/Licenses/LicensesController.php @@ -248,16 +248,23 @@ class LicensesController extends Controller } $users_count = User::where('autoassign_licenses', '1')->count(); - $total_seats_count = $license->totalSeatsByLicenseID(); + $total_seats_count = (int) $license->totalSeatsByLicenseID(); $available_seats_count = $license->availCount()->count(); - $checkedout_seats_count = ($total_seats_count - $available_seats_count); + $unreassignable_seats_count = Helper::unReassignableCount($license); + if(!$license->reassignable){ + $checkedout_seats_count = ($total_seats_count - $available_seats_count - $unreassignable_seats_count ); + } + else { + $checkedout_seats_count = ($total_seats_count - $available_seats_count); + } $this->authorize('view', $license); return view('licenses.view', compact('license')) ->with('users_count', $users_count) ->with('total_seats_count', $total_seats_count) ->with('available_seats_count', $available_seats_count) - ->with('checkedout_seats_count', $checkedout_seats_count); + ->with('checkedout_seats_count', $checkedout_seats_count) + ->with('unreassignable_seats_count', $unreassignable_seats_count); } diff --git a/app/Http/Transformers/LicensesTransformer.php b/app/Http/Transformers/LicensesTransformer.php index 673ac06b3d..6ae57e6292 100644 --- a/app/Http/Transformers/LicensesTransformer.php +++ b/app/Http/Transformers/LicensesTransformer.php @@ -7,7 +7,7 @@ use App\Models\License; use Illuminate\Support\Facades\Gate; use Illuminate\Database\Eloquent\Collection; -class LicensesTransformer +class LicensesTransformer { public function transformLicenses(Collection $licenses, $total) { @@ -37,7 +37,7 @@ class LicensesTransformer 'notes' => Helper::parseEscapedMarkedownInline($license->notes), 'expiration_date' => Helper::getFormattedDateObject($license->expiration_date, 'date'), 'seats' => (int) $license->seats, - 'free_seats_count' => (int) $license->free_seats_count, + 'free_seats_count' => (int) $license->free_seats_count - Helper::unReassignableCount($license), 'min_amt' => ($license->min_amt) ? (int) ($license->min_amt) : null, 'license_name' => ($license->license_name) ? e($license->license_name) : null, 'license_email' => ($license->license_email) ? e($license->license_email) : null, diff --git a/app/Models/License.php b/app/Models/License.php index 0997c1e57b..5ca621bce7 100755 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -594,7 +594,8 @@ class License extends Depreciable { $total = $this->licenseSeatsCount; $taken = $this->assigned_seats_count; - $diff = ($total - $taken); + $unreassignable = Helper::unReassignableCount($this); + $diff = ($total - $taken - $unreassignable); return (int) $diff; } diff --git a/resources/lang/en-US/admin/licenses/message.php b/resources/lang/en-US/admin/licenses/message.php index 3cda5e00e5..9a0219d857 100644 --- a/resources/lang/en-US/admin/licenses/message.php +++ b/resources/lang/en-US/admin/licenses/message.php @@ -50,7 +50,7 @@ return array( 'checkin' => array( 'error' => 'There was an issue checking in the license. Please try again.', - 'not_reassignable' => 'Seat has been used.', + 'not_reassignable' => 'Seat has been used', 'success' => 'The license was checked in successfully' ), diff --git a/resources/views/licenses/view.blade.php b/resources/views/licenses/view.blade.php index 2de0f9d6e0..7af8676156 100755 --- a/resources/views/licenses/view.blade.php +++ b/resources/views/licenses/view.blade.php @@ -32,7 +32,7 @@ - {{ number_format($license->availCount()->count()) }} / {{ number_format($license->seats) }} + {{ number_format($license->availCount()->count() - number_format($unreassignable_seats_count) ) }} / {{ number_format($license->seats)}}