Skip to content

Commit 3ae7a77

Browse files
committed
update the snipeit reminder command
1 parent 881c789 commit 3ae7a77

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

app/Console/Commands/SendAcceptanceReminder.php

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33
namespace App\Console\Commands;
44

55
use App\Mail\UnacceptedAssetReminderMail;
6+
use App\Models\Accessory;
67
use App\Models\Asset;
78
use App\Models\CheckoutAcceptance;
9+
use App\Models\Component;
10+
use App\Models\Consumable;
11+
use App\Models\LicenseSeat;
812
use App\Models\Setting;
913
use App\Models\User;
1014
use App\Notifications\CheckoutAssetNotification;
1115
use App\Notifications\CurrentInventory;
1216
use Illuminate\Console\Command;
17+
use Illuminate\Database\Eloquent\Relations\MorphTo;
1318
use Illuminate\Support\Facades\Mail;
1419

1520
class SendAcceptanceReminder extends Command
@@ -45,19 +50,30 @@ public function __construct()
4550
*/
4651
public function handle()
4752
{
48-
$pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset')
49-
->whereHas('checkoutable', function($query) {
50-
$query->where('accepted_at', null)
51-
->where('declined_at', null);
52-
})
53-
->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser'])
54-
->get();
53+
$pending = CheckoutAcceptance::query()
54+
->with([
55+
'checkoutable' => function (MorphTo $morph) {
56+
$morph->morphWith([
57+
Asset::class => ['model.category', 'assignedTo', 'adminuser', 'company', 'checkouts'],
58+
Accessory::class => ['category', 'company', 'checkouts'],
59+
LicenseSeat::class => ['user', 'license', 'checkouts'],
60+
Component::class => ['assignedTo', 'company', 'checkouts'],
61+
Consumable::class => ['company', 'checkouts'],
62+
]);
63+
},
64+
'assignedTo',
65+
])
66+
->whereHasMorph(
67+
'checkoutable',
68+
[Asset::class, Accessory::class, LicenseSeat::class, Component::class, Consumable::class],
69+
fn ($q) => $q->whereNull('accepted_at')
70+
->whereNull('declined_at')
71+
)
72+
->pending()
73+
->get();
5574

5675
$count = 0;
5776
$unacceptedAssetGroups = $pending
58-
->filter(function($acceptance) {
59-
return $acceptance->checkoutable_type == 'App\Models\Asset';
60-
})
6177
->map(function($acceptance) {
6278
return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance];
6379
})

0 commit comments

Comments
 (0)