Skip to content

Commit 25fcdab

Browse files
authored
Merge pull request #328 from HiEventsDev/develop
main <- develop
2 parents 6df23ed + 12efd7d commit 25fcdab

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

backend/app/Http/Request/Attendee/CreateAttendeeRequest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public function rules(): array
1313
{
1414
return [
1515
'ticket_id' => ['int', 'required'],
16-
'ticket_price_id' => ['int', 'nullable'],
16+
'ticket_price_id' => ['int', 'nullable', 'required'],
1717
'email' => ['required', 'email'],
1818
'first_name' => 'string|required',
1919
'last_name' => 'string',

backend/app/Services/Handlers/Attendee/CreateAttendeeHandler.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,11 @@ public function handle(CreateAttendeeDTO $attendeeDTO): AttendeeDomainObject
6969
TicketDomainObjectAbstract::EVENT_ID => $attendeeDTO->event_id,
7070
]);
7171

72+
$ticketPriceId = $this->getTicketPriceId($attendeeDTO, $ticket);
73+
7274
$availableQuantity = $this->ticketRepository->getQuantityRemainingForTicketPrice(
7375
$attendeeDTO->ticket_id,
74-
$attendeeDTO->ticket_price_id,
76+
$ticketPriceId,
7577
);
7678

7779
if ($availableQuantity <= 0) {
@@ -80,7 +82,6 @@ public function handle(CreateAttendeeDTO $attendeeDTO): AttendeeDomainObject
8082
' please adjust the ticket\'s available quantity.'));
8183
}
8284

83-
$ticketPriceId = $this->getTicketPriceId($attendeeDTO, $ticket);
8485

8586
$this->processTaxesAndFees($attendeeDTO);
8687

backend/app/Services/Handlers/Attendee/EditAttendeeHandler.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public function handle(EditAttendeeDTO $editAttendeeDTO): AttendeeDomainObject
4747
private function adjustTicketQuantities(AttendeeDomainObject $attendee, EditAttendeeDTO $editAttendeeDTO): void
4848
{
4949
if ($attendee->getTicketPriceId() !== $editAttendeeDTO->ticket_price_id) {
50-
$this->ticketQuantityService->decreaseQuantitySold($editAttendeeDTO->ticket_price_id);
51-
$this->ticketQuantityService->increaseQuantitySold($attendee->getTicketPriceId());
50+
$this->ticketQuantityService->decreaseQuantitySold($attendee->getTicketPriceId());
51+
$this->ticketQuantityService->increaseQuantitySold($editAttendeeDTO->ticket_price_id);
5252
}
5353
}
5454

@@ -59,6 +59,7 @@ private function updateAttendee(EditAttendeeDTO $editAttendeeDTO): AttendeeDomai
5959
'last_name' => $editAttendeeDTO->last_name,
6060
'email' => $editAttendeeDTO->email,
6161
'ticket_id' => $editAttendeeDTO->ticket_id,
62+
'ticket_price_id' => $editAttendeeDTO->ticket_price_id,
6263
], [
6364
'event_id' => $editAttendeeDTO->event_id,
6465
]);
@@ -82,6 +83,13 @@ private function validateTicketId(EditAttendeeDTO $editAttendeeDTO): void
8283
]);
8384
}
8485

86+
$ticketPriceIds = $ticket->getTicketPrices()->map(fn($ticketPrice) => $ticketPrice->getId())->toArray();
87+
if (!in_array($editAttendeeDTO->ticket_price_id, $ticketPriceIds, true)) {
88+
throw ValidationException::withMessages([
89+
'ticket_price_id' => __('Ticket price ID is not valid'),
90+
]);
91+
}
92+
8593
$availableQuantity = $this->ticketRepository->getQuantityRemainingForTicketPrice(
8694
ticketId: $editAttendeeDTO->ticket_id,
8795
ticketPriceId: $ticket->getType() === TicketType::TIERED->name

frontend/src/components/modals/EditAttendeeModal/index.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@ export const EditAttendeeModal = ({onClose, attendeeId}: EditAttendeeModalProps)
5050

5151
}, [isFetched]);
5252

53+
useEffect(() => {
54+
if (!form.values.ticket_id) {
55+
return;
56+
}
57+
58+
let ticketPriceId = event?.tickets?.find(ticket => ticket.id == form.values.ticket_id)?.prices?.[0]?.id;
59+
form.setValues({
60+
...form.values,
61+
ticket_price_id: String(ticketPriceId),
62+
});
63+
}, [form.values.ticket_id]);
64+
5365
const handleSubmit = (values: EditAttendeeRequest) => {
5466
mutation.mutate({
5567
attendeeId: attendeeId,

0 commit comments

Comments
 (0)