diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index 0e098f6a2f..4baccf7a35 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -282,6 +282,11 @@ function BookingListItem(booking: BookingItemProps) { {t("pending_payment")} )} + {booking.paid && ( + + {t("paid")} + + )} {recurringDates !== undefined && (
diff --git a/packages/features/ee/payments/api/webhook.ts b/packages/features/ee/payments/api/webhook.ts index 7dc18d2225..f8bbecb4e2 100644 --- a/packages/features/ee/payments/api/webhook.ts +++ b/packages/features/ee/payments/api/webhook.ts @@ -65,7 +65,10 @@ async function handlePaymentSuccess(event: Stripe.Event) { if (!booking) throw new HttpCode({ statusCode: 204, message: "No booking found" }); - const eventTypeSelect = Prisma.validator()({ recurringEvent: true }); + const eventTypeSelect = Prisma.validator()({ + recurringEvent: true, + requiresConfirmation: true, + }); const eventTypeData = Prisma.validator()({ select: eventTypeSelect }); type EventTypeRaw = Prisma.EventTypeGetPayload; let eventTypeRaw: EventTypeRaw | null = null; @@ -130,6 +133,10 @@ async function handlePaymentSuccess(event: Stripe.Event) { bookingData.references = { create: scheduleResult.referencesToCreate }; } + if (eventTypeRaw?.requiresConfirmation) { + delete bookingData.status; + } + const paymentUpdate = prisma.payment.update({ where: { id: payment.id, diff --git a/packages/trpc/server/routers/viewer/eventTypes.tsx b/packages/trpc/server/routers/viewer/eventTypes.tsx index adbd402252..9c27ba1aa6 100644 --- a/packages/trpc/server/routers/viewer/eventTypes.tsx +++ b/packages/trpc/server/routers/viewer/eventTypes.tsx @@ -504,7 +504,8 @@ export const eventTypesRouter = router({ }; } - if (input?.price) { + if (input?.price || input.metadata?.apps?.stripe?.price) { + data.price = input.price || input.metadata?.apps?.stripe?.price; const paymentCredential = await ctx.prisma.credential.findFirst({ where: { userId: ctx.user.id,