Fix service fee missing from Stripe invoices
The StripeInvoiceService was only creating line items for tickets but missing the 1€ service fee, causing a discrepancy where customers paid 26€ via Stripe checkout but the generated invoice only showed 25€. - Add service fee line item to Stripe invoices in StripeInvoiceService - Update all related tests to expect two line items (tickets + service fee) - Fix order controller test to account for service fee in total calculation Now Stripe invoices properly match the amount paid: tickets + 1€ service fee. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -147,6 +147,7 @@ class StripeInvoiceService
|
||||
end
|
||||
|
||||
def add_line_items_to_invoice(customer, invoice)
|
||||
# Add ticket line items
|
||||
@order.tickets.group_by(&:ticket_type).each do |ticket_type, tickets|
|
||||
quantity = tickets.count
|
||||
|
||||
@@ -164,6 +165,20 @@ class StripeInvoiceService
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
# Add service fee line item
|
||||
service_fee_cents = 100 # 1€ service fee
|
||||
Stripe::InvoiceItem.create({
|
||||
customer: customer.id,
|
||||
invoice: invoice.id,
|
||||
amount: service_fee_cents,
|
||||
currency: "eur",
|
||||
description: "Frais de service - Frais de traitement de la commande",
|
||||
metadata: {
|
||||
item_type: "service_fee",
|
||||
amount_cents: service_fee_cents
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
def build_line_item_description(ticket_type, tickets)
|
||||
|
||||
Reference in New Issue
Block a user