From b8efa1e26d37a169ce5abb51e26972612ff0e390 Mon Sep 17 00:00:00 2001 From: kbe Date: Sat, 6 Sep 2025 21:29:41 +0200 Subject: [PATCH] feat: Ticket ID now appears on PDF - Promoters can now check the name and ID based on their dashboard --- app/services/ticket_pdf_generator.rb | 40 +++++++++++++++------- app/views/events/payment_success.html.erb | 18 +++++----- app/views/orders/payment_success.html.erb | 6 ++-- app/views/tickets/payment_success.html.erb | 18 +++++----- 4 files changed, 48 insertions(+), 34 deletions(-) diff --git a/app/services/ticket_pdf_generator.rb b/app/services/ticket_pdf_generator.rb index a22f07d..4d5c46d 100755 --- a/app/services/ticket_pdf_generator.rb +++ b/app/services/ticket_pdf_generator.rb @@ -20,14 +20,14 @@ class TicketPdfGenerator # Header pdf.fill_color "2D1B69" pdf.font "Helvetica", style: :bold, size: 24 - pdf.text "ApéroNight", align: :center + pdf.text ENV.fetch("APP_NAME", "Aperonight"), align: :center pdf.move_down 10 # Event name pdf.fill_color "000000" pdf.font "Helvetica", style: :bold, size: 18 pdf.text ticket.event.name, align: :center - pdf.move_down 20 + pdf.move_down 10 # Ticket info box pdf.stroke_color "E5E7EB" @@ -40,21 +40,29 @@ class TicketPdfGenerator pdf.font "Helvetica", size: 12 # Customer name - pdf.text "Ticket Holder:", style: :bold - pdf.text "#{ticket.first_name} #{ticket.last_name}" + pdf.indent 10 do + pdf.text "Ticket Holder:", style: :bold + pdf.text "#{ticket.first_name} #{ticket.last_name}" + end pdf.move_down 8 # Ticket details - pdf.text "Ticket Type:", style: :bold - pdf.text ticket.ticket_type.name + pdf.indent 10 do + pdf.text "Ticket Type:", style: :bold + pdf.text ticket.ticket_type.name + end pdf.move_down 8 - pdf.text "Price:", style: :bold - pdf.text "€#{ticket.price_euros}" + pdf.indent 10 do + pdf.text "Price:", style: :bold + pdf.text "€#{ticket.price_euros}" + end pdf.move_down 8 - pdf.text "Date & Time:", style: :bold - pdf.text ticket.event.start_time.strftime("%B %d, %Y at %I:%M %p") + pdf.indent 10 do + pdf.text "Date & Time:", style: :bold + pdf.text ticket.event.start_time.strftime("%B %d, %Y at %I:%M %p") + end pdf.move_down 20 # Venue information @@ -71,7 +79,7 @@ class TicketPdfGenerator # QR Code pdf.fill_color "000000" pdf.font "Helvetica", style: :bold, size: 14 - pdf.text "Ticket QR Code", align: :center + pdf.text "QR Code", align: :center pdf.move_down 10 # Ensure all required data is present before generating QR code @@ -102,13 +110,19 @@ class TicketPdfGenerator # QR code text pdf.font "Helvetica", size: 8 pdf.fill_color "6B7280" - pdf.text "QR Code: #{ticket.qr_code[0..7]}...", align: :center + pdf.text "#{ticket.qr_code}", align: :center + + + # Ticket ID + pdf.font "Helvetica", size: 8 + pdf.fill_color "6B7280" + pdf.text "Ticket ID: #{ticket.id}", align: :center # Footer pdf.move_down 30 pdf.stroke_color "E5E7EB" pdf.horizontal_line 0, 310 - pdf.move_down 10 + pdf.move_down 6 pdf.font "Helvetica", size: 8 pdf.fill_color "6B7280" diff --git a/app/views/events/payment_success.html.erb b/app/views/events/payment_success.html.erb index 7728897..877b757 100755 --- a/app/views/events/payment_success.html.erb +++ b/app/views/events/payment_success.html.erb @@ -64,7 +64,7 @@ Vos billets - +
<% @tickets.each do |ticket| %>
@@ -82,9 +82,9 @@
- +
- <%= link_to download_ticket_path(ticket, format: :pdf), + <%= link_to ticket_download_path(ticket.qr_code, format: :pdf), class: "inline-flex items-center px-4 py-2 bg-gradient-to-r from-purple-600 to-indigo-600 text-white rounded-lg hover:from-purple-700 hover:to-indigo-700 transition-all duration-200 text-sm font-medium shadow-sm" do %> @@ -93,7 +93,7 @@ <% end %>
- +
@@ -119,7 +119,7 @@

Important

- Veuillez télécharger et sauvegarder vos billets. Présentez-les à l'entrée du lieu pour accéder à l'événement. + Veuillez télécharger et sauvegarder vos billets. Présentez-les à l'entrée du lieu pour accéder à l'événement. Un email de confirmation avec vos billets a été envoyé à votre adresse email.

@@ -128,15 +128,15 @@
- <%= link_to dashboard_path, + <%= link_to dashboard_path, class: "inline-flex items-center justify-center px-6 py-3 bg-gradient-to-r from-purple-600 to-indigo-600 text-white rounded-xl hover:from-purple-700 hover:to-indigo-700 transition-all duration-200 font-medium shadow-sm" do %> Tableau de bord <% end %> - - <%= link_to events_path, + + <%= link_to events_path, class: "inline-flex items-center justify-center px-6 py-3 bg-white text-gray-700 rounded-xl border border-gray-300 hover:bg-gray-50 transition-all duration-200 font-medium shadow-sm" do %> @@ -147,4 +147,4 @@
- \ No newline at end of file + diff --git a/app/views/orders/payment_success.html.erb b/app/views/orders/payment_success.html.erb index d42f5ca..8a9181f 100644 --- a/app/views/orders/payment_success.html.erb +++ b/app/views/orders/payment_success.html.erb @@ -64,7 +64,7 @@

Vos billets

- + <% @order.tickets.each do |ticket| %>
@@ -127,7 +127,7 @@

Gardez vos billets sur votre téléphone ou imprimez-les.

<% @order.tickets.each do |ticket| %> - <%= link_to download_ticket_path(ticket), class: "inline-flex items-center px-3 py-2 border border-purple-300 rounded-md text-sm font-medium text-purple-700 bg-purple-50 hover:bg-purple-100 transition-colors mr-2 mb-2" do %> + <%= link_to ticket_download_path(ticket.qr_code), class: "inline-flex items-center px-3 py-2 border border-purple-300 rounded-md text-sm font-medium text-purple-700 bg-purple-50 hover:bg-purple-100 transition-colors mr-2 mb-2" do %> @@ -188,4 +188,4 @@
-
\ No newline at end of file + diff --git a/app/views/tickets/payment_success.html.erb b/app/views/tickets/payment_success.html.erb index 7728897..877b757 100755 --- a/app/views/tickets/payment_success.html.erb +++ b/app/views/tickets/payment_success.html.erb @@ -64,7 +64,7 @@ Vos billets - +
<% @tickets.each do |ticket| %>
@@ -82,9 +82,9 @@
- +
- <%= link_to download_ticket_path(ticket, format: :pdf), + <%= link_to ticket_download_path(ticket.qr_code, format: :pdf), class: "inline-flex items-center px-4 py-2 bg-gradient-to-r from-purple-600 to-indigo-600 text-white rounded-lg hover:from-purple-700 hover:to-indigo-700 transition-all duration-200 text-sm font-medium shadow-sm" do %> @@ -93,7 +93,7 @@ <% end %>
- +
@@ -119,7 +119,7 @@

Important

- Veuillez télécharger et sauvegarder vos billets. Présentez-les à l'entrée du lieu pour accéder à l'événement. + Veuillez télécharger et sauvegarder vos billets. Présentez-les à l'entrée du lieu pour accéder à l'événement. Un email de confirmation avec vos billets a été envoyé à votre adresse email.

@@ -128,15 +128,15 @@
- <%= link_to dashboard_path, + <%= link_to dashboard_path, class: "inline-flex items-center justify-center px-6 py-3 bg-gradient-to-r from-purple-600 to-indigo-600 text-white rounded-xl hover:from-purple-700 hover:to-indigo-700 transition-all duration-200 font-medium shadow-sm" do %> Tableau de bord <% end %> - - <%= link_to events_path, + + <%= link_to events_path, class: "inline-flex items-center justify-center px-6 py-3 bg-white text-gray-700 rounded-xl border border-gray-300 hover:bg-gray-50 transition-all duration-200 font-medium shadow-sm" do %> @@ -147,4 +147,4 @@
- \ No newline at end of file +