Add some checks in order to avoid bugs and change variable name

This commit is contained in:
cmorenov1402
2025-03-19 13:48:07 +01:00
parent 0963578910
commit 58bcca9dca
+12 -8
View File
@@ -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);
}