From 58bcca9dca88997c368aeea2bda8e65786bcac7d Mon Sep 17 00:00:00 2001 From: cmorenov1402 Date: Wed, 19 Mar 2025 13:48:07 +0100 Subject: [PATCH] Add some checks in order to avoid bugs and change variable name --- src/EventListener/GatewayCheckoutListener.php | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/EventListener/GatewayCheckoutListener.php b/src/EventListener/GatewayCheckoutListener.php index 95b6032..d436d64 100644 --- a/src/EventListener/GatewayCheckoutListener.php +++ b/src/EventListener/GatewayCheckoutListener.php @@ -35,26 +35,30 @@ class GatewayCheckoutListener public function postPersist(Checkout $checkout, PostPersistEventArgs $args): void { + if ($checkout === null) { + return; + } + $objectManager = $args->getObjectManager(); $charges = $checkout->getCharges()->toArray(); $owner = $checkout->getOrigin()->getUser(); // Group charges for projects - $chargesByProject = []; + $chargesInProjectMap = []; foreach ($charges as $charge) { $project = $charge->getTarget()->getProject(); - $chargesByProject[$project->getId()][] = $charge; - } - - // Create Project Support for each project - foreach ($chargesByProject as $chargeByProject) { - $project = $chargeByProject[0]->getTarget()->getProject(); if ($project === null) { continue; } - $support = $this->createSupport($project, $owner, $chargeByProject); + $chargesInProjectMap[$project->getId()][] = $charge; + } + + // Create Project Support for each project + foreach ($chargesInProjectMap as $chargesInProject) { + $project = $chargesInProject[0]->getTarget()->getProject(); + $support = $this->createSupport($project, $owner, $chargesInProject); $objectManager->persist($support); }