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 @@
{{ trans('admin/licenses/form.seats') }}
- {{ number_format($license->availCount()->count()) }} / {{ number_format($license->seats) }}
+ {{ number_format($license->availCount()->count() - number_format($unreassignable_seats_count) ) }} / {{ number_format($license->seats)}}