Make invoice emitter configurable via environment variables

Add environment variables for invoice company details to allow customization without code changes. Update invoice view and Stripe service to use these configurable values.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
kbe
2025-09-10 10:16:24 +02:00
parent ca35abe01d
commit 2fb0e1fdbb
3 changed files with 31 additions and 6 deletions

View File

@@ -30,6 +30,16 @@ SMTP_AUTHENTICATION=plain
SMTP_ENABLE_STARTTLS=false SMTP_ENABLE_STARTTLS=false
# SMTP_STARTTLS=true # SMTP_STARTTLS=true
# Invoice Emitter Configuration
INVOICE_COMPANY_NAME=AperoNight
INVOICE_COMPANY_ADDRESS_LINE_1=123 Avenue des Événements
INVOICE_COMPANY_ADDRESS_LINE_2=75000 Paris, France
INVOICE_COMPANY_EMAIL=contact@apero-night.fr
INVOICE_COMPANY_PHONE=
INVOICE_COMPANY_WEBSITE=
INVOICE_COMPANY_VAT_NUMBER=
INVOICE_COMPANY_SIRET=
# Application variables # Application variables
STRIPE_PUBLISHABLE_KEY=pk_test_51S1M7BJWx6G2LLIXYpTvi0hxMpZ4tZSxkmr2Wbp1dQ73MKNp4Tyu4xFJBqLXK5nn4E0nEf2tdgJqEwWZLosO3QGn00kMvjXWGW STRIPE_PUBLISHABLE_KEY=pk_test_51S1M7BJWx6G2LLIXYpTvi0hxMpZ4tZSxkmr2Wbp1dQ73MKNp4Tyu4xFJBqLXK5nn4E0nEf2tdgJqEwWZLosO3QGn00kMvjXWGW
STRIPE_SECRET_KEY=sk_test_51S1M7BJWx6G2LLIXK2pdLpRKb9Mgd3sZ30N4ueVjHepgxQKbWgMVJoa4v4ESzHQ6u6zJjO4jUvgLYPU1QLyAiFTN00sGz2ortW STRIPE_SECRET_KEY=sk_test_51S1M7BJWx6G2LLIXK2pdLpRKb9Mgd3sZ30N4ueVjHepgxQKbWgMVJoa4v4ESzHQ6u6zJjO4jUvgLYPU1QLyAiFTN00sGz2ortW

View File

@@ -103,7 +103,7 @@ class StripeInvoiceService
name: customer_name, name: customer_name,
metadata: { metadata: {
user_id: @order.user.id, user_id: @order.user.id,
created_by: "aperonight_system" created_by: "#{ENV.fetch('INVOICE_COMPANY_NAME', 'aperonight').downcase}_system"
} }
}) })
@@ -133,7 +133,7 @@ class StripeInvoiceService
order_id: @order.id, order_id: @order.id,
user_id: @order.user.id, user_id: @order.user.id,
event_name: @order.event.name, event_name: @order.event.name,
created_by: "aperonight_system", created_by: "#{ENV.fetch('INVOICE_COMPANY_NAME', 'aperonight').downcase}_system",
payment_method: "checkout_session" payment_method: "checkout_session"
}, },
description: "Invoice for #{@order.event.name} - Order ##{@order.id}", description: "Invoice for #{@order.event.name} - Order ##{@order.id}",

View File

@@ -31,11 +31,26 @@
<div> <div>
<h3 class="text-lg font-semibold text-gray-900 mb-3">Émis par</h3> <h3 class="text-lg font-semibold text-gray-900 mb-3">Émis par</h3>
<div class="bg-purple-50 rounded-lg p-4 border border-purple-200"> <div class="bg-purple-50 rounded-lg p-4 border border-purple-200">
<h4 class="font-semibold text-purple-900">AperoNight</h4> <h4 class="font-semibold text-purple-900"><%= ENV.fetch("INVOICE_COMPANY_NAME", "AperoNight") %></h4>
<div class="mt-2 space-y-1 text-sm text-purple-700"> <div class="mt-2 space-y-1 text-sm text-purple-700">
<p>123 Avenue des Événements</p> <% if ENV["INVOICE_COMPANY_ADDRESS_LINE_1"].present? %>
<p>75000 Paris, France</p> <p><%= ENV["INVOICE_COMPANY_ADDRESS_LINE_1"] %></p>
<p>contact@apero-night.fr</p> <% end %>
<% if ENV["INVOICE_COMPANY_ADDRESS_LINE_2"].present? %>
<p><%= ENV["INVOICE_COMPANY_ADDRESS_LINE_2"] %></p>
<% end %>
<% if ENV["INVOICE_COMPANY_EMAIL"].present? %>
<p><%= ENV["INVOICE_COMPANY_EMAIL"] %></p>
<% end %>
<% if ENV["INVOICE_COMPANY_PHONE"].present? %>
<p><%= ENV["INVOICE_COMPANY_PHONE"] %></p>
<% end %>
<% if ENV["INVOICE_COMPANY_VAT_NUMBER"].present? %>
<p>TVA: <%= ENV["INVOICE_COMPANY_VAT_NUMBER"] %></p>
<% end %>
<% if ENV["INVOICE_COMPANY_SIRET"].present? %>
<p>SIRET: <%= ENV["INVOICE_COMPANY_SIRET"] %></p>
<% end %>
</div> </div>
</div> </div>
</div> </div>