Billing: fatture manuali, profilo obbligatorio e piani Stripe mensile/annuale.

Rimuove link al portale Stripe in area cliente, aggiunge flusso admin per PDF
fattura e email, blocca checkout senza dati di fatturazione, allinea prezzi
a €4,90/€39,90 e €9,90/€69,90, locale italiano e documentazione deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 17:10:12 +02:00
parent 148402a97c
commit a5e781729c
78 changed files with 2457 additions and 424 deletions

View File

@@ -1,19 +1,23 @@
<%# locals: (club:, entitlements: nil, subscription: nil) %>
<%# locals: (club:, entitlements: nil, subscription: nil, on_billing_page: false) %>
<% current_plan = entitlements&.plan || subscription&.plan || Plan["free"] %>
<p style="color:#aaa;margin-bottom:8px">
Società: <strong><%= club.name %></strong>
· Piano attuale: <strong><%= current_plan.name %></strong>
(valido per tutte le squadre)
· <%= link_to "Gestisci abbonamento", public_club_billing_path(club) %>
<% unless local_assigns[:on_billing_page] %>
· <%= link_to "Gestisci abbonamento", public_club_billing_path(club) %>
<% end %>
</p>
<% if subscription&.stripe_subscription_id.present? %>
<p style="color:#888;font-size:0.9rem;margin-top:0">
Stato Stripe: <strong><%= subscription.status %></strong>
<% if subscription.current_period_end.present? %>
· Rinnovo: <strong><%= l(subscription.current_period_end, format: :long) %></strong>
<% end %>
<% if subscription.cancel_at_period_end? %>
· <span style="color:#e53935">Disdetta alla scadenza</span>
<span style="color:#e53935">
Abbonamento valido fino al
<strong><%= subscription.current_period_end.present? ? l_local(subscription.current_period_end.to_date) : "fine periodo" %></strong>,
poi piano Free.
</span>
<% elsif subscription.current_period_end.present? %>
Prossimo rinnovo: <strong><%= l_local(subscription.current_period_end) %></strong>
<% end %>
</p>
<% end %>