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

@@ -7,11 +7,14 @@ RSpec.describe ClubBillingProfile do
sport: "volleyball",
primary_color: "#e53935",
secondary_color: "#ffffff",
billing_entity_type: "company",
billing_legal_name: "ASD Test",
billing_email: "billing@test.it",
billing_address_line: "Via Roma 1",
billing_city: "Milano",
billing_province: "MI",
billing_postal_code: "20100",
billing_country: "IT",
billing_vat_number: "12345678901",
billing_recipient_code: "ABCDEFG"
)
@@ -26,4 +29,16 @@ RSpec.describe ClubBillingProfile do
club.billing_pec = nil
expect(club.billing_profile_complete?).to be false
end
it "requires P.IVA for companies" do
club.billing_vat_number = nil
expect(club.billing_profile_complete?).to be false
expect(club.billing_profile_errors).to include("Partita IVA")
end
it "requires Codice Fiscale for individuals" do
club.update!(billing_entity_type: "individual", billing_vat_number: nil, billing_fiscal_code: nil)
club.billing_fiscal_code = "RSSMRA80A01H501U"
expect(club.billing_profile_complete?).to be true
end
end