From e45c1bcfe2f408384f9579f545a726adc478cc81 Mon Sep 17 00:00:00 2001 From: Stephanos A Date: Wed, 22 Jul 2026 11:15:30 +0300 Subject: [PATCH] Ticket generation issue resolution --- .../src/modules/tickets/tickets.controller.ts | 11 ----------- .../backoffice/src/app/bookings/page.tsx | 17 +++++++---------- .../backoffice/src/lib/api/index.ts | 2 -- 3 files changed, 7 insertions(+), 23 deletions(-) diff --git a/apps/edr-passenger-api/src/modules/tickets/tickets.controller.ts b/apps/edr-passenger-api/src/modules/tickets/tickets.controller.ts index 9aa21be44..cc53be263 100644 --- a/apps/edr-passenger-api/src/modules/tickets/tickets.controller.ts +++ b/apps/edr-passenger-api/src/modules/tickets/tickets.controller.ts @@ -32,17 +32,6 @@ export class TicketsController { return this.service.generate(bookingId); } - @Post('force-generate/:bookingId') - @PassengerStaff(PASSENGER_PERMS.tickets.generate) - @ApiBearerAuth('IAM-auth') - @ApiOperation({ - summary: 'Force-generate ticket for booking (staff only)', - description: 'Staff override: regenerates tickets for a confirmed booking regardless of prior state.' - }) - forceGenerateTicket(@Param('bookingId') bookingId: string) { - return this.service.generate(bookingId); - } - @Patch('update-seats/:bookingId') @SetMetadata('isPublic', true) @ApiOperation({ diff --git a/apps/edr-passenger-web/backoffice/src/app/bookings/page.tsx b/apps/edr-passenger-web/backoffice/src/app/bookings/page.tsx index 07013269a..66b5c6c5a 100644 --- a/apps/edr-passenger-web/backoffice/src/app/bookings/page.tsx +++ b/apps/edr-passenger-web/backoffice/src/app/bookings/page.tsx @@ -81,15 +81,6 @@ function BookingsPageContent() { const forceConfirmMutation = useMutation({ mutationFn: ({ bookingId, data }: { bookingId: string; data: { paymentReference?: string; paymentMethod?: string; notes?: string } }) => bookingsApi.forceConfirm(bookingId, data), - onSuccess: () => { - queryClient.invalidateQueries({ queryKey: ['bookings'] }); - setSuccessMessage('Payment confirmed and ticket generated successfully'); - setTimeout(() => setSuccessMessage(''), 4000); - setSelectedBooking(null); - setGenerateTicketBooking(null); - setGenerateTicketForm({ paymentReference: '', paymentMethod: '', notes: '' }); - setGenerateTicketTouched({ paymentReference: false, paymentMethod: false }); - }, }); const deleteMutation = useMutation({ @@ -649,7 +640,13 @@ function BookingsPageContent() { setGenerateTicketTouched({ paymentReference: true, paymentMethod: true }); if (!generateTicketForm.paymentReference || !generateTicketForm.paymentMethod) return; forceConfirmMutation.reset(); - smartAssignMutation.mutate(generateTicketBooking.id); + smartAssignMutation.reset(); + forceConfirmMutation.mutate( + { bookingId: generateTicketBooking.id, data: { paymentReference: generateTicketForm.paymentReference, paymentMethod: generateTicketForm.paymentMethod, notes: generateTicketForm.notes } }, + { + onSuccess: () => smartAssignMutation.mutate(generateTicketBooking.id), + }, + ); }} disabled={forceConfirmMutation.isPending || smartAssignMutation.isPending} > diff --git a/apps/edr-passenger-web/backoffice/src/lib/api/index.ts b/apps/edr-passenger-web/backoffice/src/lib/api/index.ts index 095500450..1b917afe2 100644 --- a/apps/edr-passenger-web/backoffice/src/lib/api/index.ts +++ b/apps/edr-passenger-web/backoffice/src/lib/api/index.ts @@ -48,8 +48,6 @@ export const bookingsApi = { apiClient.post(`/payments/${bookingId}/force-confirm`, data), smartAssign: (bookingId: string) => apiClient.post(`/tickets/smart-assign/${bookingId}`, {}), - forceGenerate: (bookingId: string) => - apiClient.post(`/tickets/force-generate/${bookingId}`, {}), }; // Passengers API