From c7bdad649a81442d4b8cdb150147fbd61c45b6af Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 20 Aug 2025 16:06:11 -0700 Subject: [PATCH] Build out command --- .../CleanDeclinedAccessoryCheckouts.php | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/Console/Commands/CleanDeclinedAccessoryCheckouts.php b/app/Console/Commands/CleanDeclinedAccessoryCheckouts.php index 9825d615be..bf2e420595 100644 --- a/app/Console/Commands/CleanDeclinedAccessoryCheckouts.php +++ b/app/Console/Commands/CleanDeclinedAccessoryCheckouts.php @@ -30,9 +30,7 @@ class CleanDeclinedAccessoryCheckouts extends Command */ public function handle() { - // $accessoryCheckouts = AccessoryCheckout::where('assigned_type', User::class)->get(); - // - // dd($accessoryCheckouts); + $accessoryCheckouts = AccessoryCheckout::where('assigned_type', User::class)->get(); $declinedCheckoutAcceptances = CheckoutAcceptance::query() ->where([ @@ -44,7 +42,23 @@ class CleanDeclinedAccessoryCheckouts extends Command ->declined() ->get(); - + $declinedCheckoutAcceptances->map(function (CheckoutAcceptance $acceptance) use ($accessoryCheckouts) { + $matchedCheckouts = $accessoryCheckouts->filter(function ($checkout) use ($acceptance) { + return $checkout->accessory_id == $acceptance->checkoutable_id + && $checkout->assigned_to == $acceptance->assigned_to_id + && $checkout->created_at == $acceptance->created_at; + }); + + $acceptance->setRelation('accessoryCheckouts', $matchedCheckouts); + + return $acceptance; + }); + + $checkoutsToDelete = $declinedCheckoutAcceptances->pluck('accessoryCheckouts')->flatten(); + + if ($this->confirm("Delete {$checkoutsToDelete->count()} entries from the accessory_checkout table?")) { + $checkoutsToDelete->each(fn($checkout) => $checkout->delete()); + } return 0; }