Skip to content

Conversation

@rehanrehman389
Copy link
Contributor

@rehanrehman389 rehanrehman389 commented Jan 27, 2026

@rehanrehman389
Copy link
Contributor Author

@NagariaHussain Please review the PR and confirm if our understanding of the requested feature is aligned.

@NagariaHussain
Copy link
Contributor

NagariaHussain commented Jan 27, 2026

Instead of "UPI payment" we have to make it generic.

  • "Enable Off-platform payments"
  • Collect proof of payment can be a checkbox (which shows the attach and links to booking)
  • A new payment status field in booking to track "Unpaid", "Paid", "Verification Pending", etc. Maybe even a status field? (We might want to track booking status: Confirmed, Approval Pending, Approved, Rejected).
  • Buzz Custom Field support in the off-platform payments dialog
  • If both online payment gateway and off platform payments are enabled, we show the option in the multi payment gateway dialog (user can control what the label is: e.g. "UPI Payment" etc.

@rehanrehman389
Copy link
Contributor Author

@NagariaHussain i will rebase and add unit test

@NagariaHussain
Copy link
Contributor

Can you update the video and also add relevant screenshots?

@rehanrehman389
Copy link
Contributor Author

@rehanrehman389 rehanrehman389 force-pushed the upi-payment branch 4 times, most recently from 3b16ca6 to fae3ae1 Compare February 5, 2026 03:42
@NagariaHussain
Copy link
Contributor

image

Instead of these 3 fields, let's just make it a HTML editor field, the user should be free to show any type of content they want (QR code they can paste too). E.g. Bank details, etc.

@NagariaHussain
Copy link
Contributor

Check failing tests.

@rehanrehman389 rehanrehman389 force-pushed the upi-payment branch 2 times, most recently from d221640 to df8408c Compare February 9, 2026 15:09
@rehanrehman389
Copy link
Contributor Author

@NagariaHussain good to merge?

@NagariaHussain
Copy link
Contributor

Can you add unit and e2e tests @rehanrehman389 ?

@rehanrehman389
Copy link
Contributor Author

Yes

@rehanrehman389
Copy link
Contributor Author

@NagariaHussain
image

@rehanrehman389
Copy link
Contributor Author

@UmakanthKaspa
Copy link
Contributor

@rehanrehman389
Bug: Tickets are generated and accessible even when booking is "Approval Pending" or "Rejected"

When booking with off-platform payment:

  1. Booking shows "Approval Pending" → but tickets are already generated with QR codes
  2. Booking is "Rejected" → tickets still exist and user can access them from "My Tickets"
  3. Ticket email and Zoom registration happen immediately before organizer verifies payment

Expected:

  • Tickets should only be generated after the organizer clicks Approve
  • On Reject, no tickets should exist (cancelled)
  • Email should be sent only when booking is approved
Screenshot_2026-02-10_22-54-34 Screenshot_2026-02-10_22-56-29 Screenshot_2026-02-10_22-55-44

@UmakanthKaspa
Copy link
Contributor

UmakanthKaspa commented Feb 10, 2026

@rehanrehman389
Minor: Off-platform payment dialog doesn't adapt to dark theme.

Screenshot_2026-02-10_23-12-44 Screenshot_2026-02-10_23-13-10

@NagariaHussain what do u think do free tickets need approval?

Screenshot_2026-02-10_23-40-40

@UmakanthKaspa
Copy link
Contributor

Bug: Guest booking with OTP + off-platform payment is broken

When event has both guest booking (with Email/Phone OTP) and off-platform payment enabled:

  • Off-platform dialog opens and submits without OTP verification
  • Backend rejects with "Verification code is required"
  • Guest booking with verification "None" + off-platform works fine

Root cause: In BookingForm.vue, the off-platform check (line 1128) runs before the OTP check (line 1152), so OTP is skipped.

Expected: OTP verification should happen before showing the off-platform payment dialog.

@NagariaHussain
Copy link
Contributor

The booking should not have been submitted until approved.

@rehansari26
Copy link

rehansari26 commented Feb 11, 2026

The booking should not have been submitted until approved.

So we dont need any custom button here to approve or reject right? @NagariaHussain
User will select manually status as Reject or Approved?

@NagariaHussain
Copy link
Contributor

As discussed, on approve it will set the status to approved (before submit) and submit.

NagariaHussain and others added 9 commits February 12, 2026 00:34
…orrectness

- Extract OFF_PLATFORM_PAYMENT_METHOD and OFF_PLATFORM_DEFAULT_LABEL constants
- Replace insecure inference (missing payment_gateway) with explicit is_off_platform flag
- Extract isOffPlatformGateway() helper in BookingForm to replace 3 inline checks
- Remove redundant default label fallbacks in frontend (trust backend)
- Fix misleading hasattr check in before_submit
- Remove dead off_platform_custom_fields from payload
- Remove console.log from OffPlatformPaymentDialog
- Remove phantom attached_to_field reference
- Add prose-sm class for HTML payment details rendering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ultiple gateways

The non-guest submit path was missing the multi-gateway check, causing it
to always pick the first gateway (Razorpay) and skip the selection dialog
when both Razorpay and off-platform payment were enabled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Reduce padding on payment details div (p-4 → p-3) to prevent double
  indentation from parent container
- Add block and mb-2 to Payment Proof label matching SponsorshipDetails pattern

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use file_name (original filename) instead of name (Frappe doc ID hash).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Strip prose-sm first-child margin-top that caused extra padding above
  the payment details text
- Replace text checkmark with LucideCheckCircle icon for file upload
  success message

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…odebase

Simplifies naming: Off-platform → Offline. Renames DocType fields,
Python constants, Vue components, E2E tests, and Buzz Custom Field
applied_to value ("Offline Payment Form").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update section description to better explain offline payments. Show
"Replace" button text after payment proof is uploaded instead of
"Upload File".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@NagariaHussain NagariaHussain changed the title feat: UPI/QR payment support (manual verification) feat: Offline payments with manual approval Feb 11, 2026
NagariaHussain and others added 5 commits February 12, 2026 01:30
Offline bookings now stay as draft (docstatus=0) instead of being
submitted immediately. Tickets are only generated when an Event Manager
approves the booking. This prevents premature ticket generation for
unverified offline payments.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…reject buttons

- before_submit now throws if someone tries to manually submit an offline
  payment booking, directing them to use Approve or Reject instead
- Approve and Reject buttons are now top-level (no longer hidden in Actions
  dropdown) with primary/danger styling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NagariaHussain and others added 3 commits February 12, 2026 01:49
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@NagariaHussain NagariaHussain merged commit 34e970c into BuildWithHussain:main Feb 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants