Aggiunge fatturazione club, pagina regia condivisibile senza account, roster squadre e rimuove la modalità controller dall'app (v1.1.0). Co-authored-by: Cursor <cursoragent@cursor.com>
95 lines
3.3 KiB
Plaintext
95 lines
3.3 KiB
Plaintext
<%# locals: (club:, payments:, invoices:) %>
|
||
<section class="billing-documents" style="margin-top:40px">
|
||
<h2>Pagamenti e fatture</h2>
|
||
<p style="color:#888;font-size:0.9rem">
|
||
Qui trovi lo storico dei pagamenti e le fatture emesse alla società.
|
||
I pagamenti premium sono elaborati in modo sicuro tramite Stripe.
|
||
</p>
|
||
|
||
<% unless club.billing_profile_complete? %>
|
||
<div class="flash alert" style="margin:16px 0">
|
||
<strong>Dati di fatturazione incompleti.</strong>
|
||
Compila ragione sociale, indirizzo, P.IVA/CF e SDI o PEC per ricevere le fatture.
|
||
<%= link_to "Completa ora", public_club_billing_profile_path(club), class: "btn btn-secondary", style: "margin-top:10px;display:inline-block" %>
|
||
</div>
|
||
<% else %>
|
||
<p style="color:#888;font-size:0.88rem">
|
||
Intestatario: <%= club.billing_profile_summary %>
|
||
· <%= link_to "Modifica dati", public_club_billing_profile_path(club) %>
|
||
</p>
|
||
<% end %>
|
||
|
||
<% if MatchLiveTv.stripe_enabled? && club.subscription&.stripe_customer_id.present? %>
|
||
<%= button_to "Sincronizza pagamenti da Stripe",
|
||
public_club_billing_sync_payments_path(club),
|
||
class: "btn btn-secondary",
|
||
style: "margin:12px 0" %>
|
||
<% end %>
|
||
|
||
<h3 style="margin-top:28px;font-size:1.1rem">Pagamenti effettuati</h3>
|
||
<% if payments.any? %>
|
||
<table class="data billing-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Data</th>
|
||
<th>Descrizione</th>
|
||
<th>Importo</th>
|
||
<th>Stato</th>
|
||
<th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<% payments.each do |payment| %>
|
||
<tr>
|
||
<td><%= payment.paid_at ? l(payment.paid_at, format: :short) : "—" %></td>
|
||
<td><%= payment.description.presence || payment.plan_slug&.humanize || "Abbonamento" %></td>
|
||
<td><%= payment.formatted_amount %></td>
|
||
<td><%= payment.status %></td>
|
||
<td>
|
||
<% if payment.receipt_url.present? %>
|
||
<%= link_to "Ricevuta Stripe", payment.receipt_url, target: "_blank", rel: "noopener" %>
|
||
<% end %>
|
||
</td>
|
||
</tr>
|
||
<% end %>
|
||
</tbody>
|
||
</table>
|
||
<% else %>
|
||
<p style="color:#888">Nessun pagamento registrato. Dopo un abbonamento premium comparirà qui (anche tramite «Sincronizza pagamenti»).</p>
|
||
<% end %>
|
||
|
||
<h3 style="margin-top:28px;font-size:1.1rem">Fatture</h3>
|
||
<% if invoices.any? %>
|
||
<table class="data billing-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Numero</th>
|
||
<th>Data</th>
|
||
<th>Importo</th>
|
||
<th>Stato</th>
|
||
<th></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<% invoices.each do |invoice| %>
|
||
<tr>
|
||
<td><%= invoice.number %></td>
|
||
<td><%= l(invoice.issued_on) %></td>
|
||
<td><%= invoice.formatted_amount %></td>
|
||
<td><%= invoice.status %></td>
|
||
<td>
|
||
<% if invoice.downloadable? %>
|
||
<%= link_to "Scarica PDF", public_club_billing_invoice_path(club, invoice) %>
|
||
<% else %>
|
||
<span style="color:#888">PDF in preparazione</span>
|
||
<% end %>
|
||
</td>
|
||
</tr>
|
||
<% end %>
|
||
</tbody>
|
||
</table>
|
||
<% else %>
|
||
<p style="color:#888">Nessuna fattura disponibile. Compariranno qui dopo l’emissione.</p>
|
||
<% end %>
|
||
</section>
|