827bf12d89
Models & migrations: - platform_settings table (key/value JSON store + Cache::remember 5min) - plans: is_demo bool + trial_days int - companies: is_demo bool Plans: - Demo plan seeded (is_demo=true, is_public=false, all features, 14 trial days) - Trial 14-day plan seeded (is_public=true, basic features) - Plan form: is_demo toggle + trial_days field - Plan table: badge 🎬 Demo / 🎁 N zile trial Central panel: - PaymentSettings page (heroicon-credit-card, sort 90) Form sections: General, Date legale, Stripe, PayPal, Transfer bancar Each gateway collapsible, fields hidden until enabled toggle Saves to platform_settings keyed by `payments.{gateway}` - CompanyResource: is_demo toggle + table description Payment flow (PaymentController): - GET /billing — tenant invoices list with Pay button - POST /pay/{sub} — start checkout (stripe/paypal/bank) - GET /pay/{sub}/{success,cancel} - POST /payments/stripe/webhook — mark paid + extend company.active_until - POST /payments/paypal/webhook — same Views: - site/billing.blade.php — invoices list with payment modal (3 methods) - site/bank-instructions — IBAN/BIC/reference for manual transfer - site/checkout-stub — placeholder until composer require stripe-php - site/payment-{success,cancel} Tenant panel: - userMenuItems → "Facturile mele" link to /billing
19 lines
802 B
PHP
19 lines
802 B
PHP
<!DOCTYPE html>
|
|
<html lang="ro">
|
|
<head><meta charset="UTF-8"><title>Plată anulată</title>
|
|
<style>
|
|
body { font-family: system-ui, sans-serif; background: #fef2f2; padding: 60px 20px; text-align: center; color: #1f2937; }
|
|
.box { max-width: 480px; margin: 0 auto; background:#fff; padding:40px 24px; border-radius:12px; }
|
|
.btn { display:inline-block; margin-top: 16px; padding: 10px 24px; background: #6b7280; color: #fff; border-radius: 8px; text-decoration: none; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="box">
|
|
<div style="font-size:48px;">↩</div>
|
|
<h1 style="color:#ef4444;">Plată anulată</h1>
|
|
<p style="color:#6b7280;">Nu a fost prelevată nicio sumă. Poți încerca din nou oricând.</p>
|
|
<a href="/billing" class="btn">← Înapoi la facturi</a>
|
|
</div>
|
|
</body>
|
|
</html>
|