diff --git a/packages/features/bookings/lib/handleNewBooking/getRequiresConfirmationFlags.ts b/packages/features/bookings/lib/handleNewBooking/getRequiresConfirmationFlags.ts index c3c354209c13f1..b4fe5640f04789 100644 --- a/packages/features/bookings/lib/handleNewBooking/getRequiresConfirmationFlags.ts +++ b/packages/features/bookings/lib/handleNewBooking/getRequiresConfirmationFlags.ts @@ -16,6 +16,7 @@ export async function getRequiresConfirmationFlags({ userId, paymentAppData, originalRescheduledBookingOrganizerId, + originalRescheduledBookingPaid, bookerEmail, }: { eventType: EventType; @@ -23,6 +24,7 @@ export async function getRequiresConfirmationFlags({ userId: number | undefined; paymentAppData: PaymentAppData; originalRescheduledBookingOrganizerId: number | undefined; + originalRescheduledBookingPaid?: boolean; bookerEmail: string; }) { const requiresConfirmation = await determineRequiresConfirmation(eventType, bookingStartTime, bookerEmail); @@ -30,7 +32,8 @@ export async function getRequiresConfirmationFlags({ const isConfirmedByDefault = determineIsConfirmedByDefault( requiresConfirmation, paymentAppData.price, - userReschedulingIsOwner + userReschedulingIsOwner, + originalRescheduledBookingPaid ); return { @@ -87,7 +90,12 @@ function isUserReschedulingOwner( function determineIsConfirmedByDefault( requiresConfirmation: boolean, price: number, - userReschedulingIsOwner: boolean + userReschedulingIsOwner: boolean, + originalRescheduledBookingPaid?: boolean ): boolean { + // When rescheduling an already-paid booking, auto-confirm since payment was already collected + if (originalRescheduledBookingPaid && !requiresConfirmation) { + return true; + } return (!requiresConfirmation && price === 0) || userReschedulingIsOwner; } diff --git a/packages/features/bookings/lib/service/RegularBookingService.ts b/packages/features/bookings/lib/service/RegularBookingService.ts index f34a38e88d8825..d71ab1a69f0f3a 100644 --- a/packages/features/bookings/lib/service/RegularBookingService.ts +++ b/packages/features/bookings/lib/service/RegularBookingService.ts @@ -743,6 +743,7 @@ async function handler( bookingStartTime: reqBody.start, userId, originalRescheduledBookingOrganizerId: originalRescheduledBooking?.user?.id, + originalRescheduledBookingPaid: !!originalRescheduledBooking?.paid, paymentAppData, bookerEmail, });