Support oft parent groups
This commit is contained in:
@@ -4,6 +4,8 @@ namespace App\Domains\Event\Actions\ShortSignUp;
|
||||
|
||||
use App\Domains\Event\Actions\SignUp\SignUpCommand;
|
||||
use App\Domains\Event\Actions\SignUp\SignUpRequest;
|
||||
use App\Models\ParentGroup;
|
||||
use App\Models\Tenant;
|
||||
use App\ValueObjects\Age;
|
||||
|
||||
/**
|
||||
@@ -53,18 +55,21 @@ class ShortSignUpCommand {
|
||||
return $response;
|
||||
}
|
||||
|
||||
// Stamm: bei genau einem teilnehmenden Stamm wird dieser gesetzt, bei mehreren muss gewählt werden,
|
||||
// ohne teilnehmende Stämme bleibt die Zuordnung leer.
|
||||
$localGroups = $this->request->event->localGroups;
|
||||
$localGroup = null;
|
||||
// Gruppe (Local oder Parent Group, je nach Veranstaltung): bei genau einer Option wird diese gesetzt, bei
|
||||
// mehreren muss gewählt werden, ohne Optionen bleibt die Zuordnung leer.
|
||||
$groupOptions = $this->request->event->participantGroupOptions();
|
||||
$participantGroup = null;
|
||||
|
||||
if ($localGroups->count() === 1) {
|
||||
$localGroup = $localGroups->first();
|
||||
} elseif ($localGroups->count() > 1) {
|
||||
$localGroup = $localGroups->firstWhere('id', $this->request->localGroupId);
|
||||
if ($groupOptions->count() === 1) {
|
||||
$participantGroup = $groupOptions->first();
|
||||
} elseif ($groupOptions->count() > 1) {
|
||||
$participantGroup = $groupOptions->firstWhere('id', $this->request->localGroupId);
|
||||
|
||||
if ($localGroup === null) {
|
||||
$response->message = 'Bitte einen Stamm auswählen.';
|
||||
if ($participantGroup === null) {
|
||||
$response->message = sprintf(
|
||||
'Bitte bei „%s" eine Auswahl treffen.',
|
||||
$this->request->event->participantGroupType()->label(),
|
||||
);
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
@@ -87,7 +92,7 @@ class ShortSignUpCommand {
|
||||
lastname: $this->request->lastname,
|
||||
nickname: $this->request->nickname,
|
||||
participationType: $participationType,
|
||||
localGroup: $localGroup,
|
||||
localGroup: $participantGroup instanceof Tenant ? $participantGroup : null,
|
||||
birthday: $this->request->birthday,
|
||||
address_1: self::PLACEHOLDER,
|
||||
address_2: null,
|
||||
@@ -123,6 +128,7 @@ class ShortSignUpCommand {
|
||||
addonItems: [],
|
||||
feeType: $this->request->feeType,
|
||||
siblingReduction: false,
|
||||
parentGroup: $participantGroup instanceof ParentGroup ? $participantGroup : null,
|
||||
);
|
||||
|
||||
$signUpResponse = new SignUpCommand($signUpRequest)->execute();
|
||||
|
||||
Reference in New Issue
Block a user