[LICENSE] Gestione licenze marketing + campi commerciali estesi

- licenseExt.html: dashboard marketing per generare/gestire licenze
  Login JWT super_admin, stats strip (totali/usate/orgs/utenti),
  form genera con label/piano/durata/max-aziende/max-utenti/prezzo/reseller,
  lista paginata con filtri stato+canale, dettaglio modale, revoca/rigenera,
  export CSV e copia token/URL
- Migration 013: invites +max_users_per_org, +price_eur, +reseller_name
  organizations +license_max_users (da provisioning)
- InviteController::create() gestisce nuovi campi, validate() espone max_users_per_org
- ServicesController::provision() salva license_max_users nell'org

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-03-07 15:34:38 +01:00
co-authored by Claude Sonnet 4.6
parent 612befd66d
commit cb0988da27
4 changed files with 962 additions and 26 deletions
@@ -564,8 +564,8 @@ class ServicesController extends BaseController
legal_address, pec, phone, annual_turnover_eur, employees,
sector, nis2_entity_type, status,
provisioned_by, provisioned_at, license_plan, license_expires_at,
lg231_company_id, lg231_order_id)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,\'active\',?,NOW(),?,?,?,?)',
license_max_users, lg231_company_id, lg231_order_id)
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,\'active\',?,NOW(),?,?,?,?,?)',
[
$ragioneSociale,
$company['forma_giuridica'] ?? null,
@@ -585,6 +585,7 @@ class ServicesController extends BaseController
isset($license['duration_months'])
? date('Y-m-d', strtotime('+' . (int)$license['duration_months'] . ' months'))
: date('Y-m-d', strtotime('+12 months')),
$resolvedInvite ? ($resolvedInvite['max_users_per_org'] !== null ? (int)$resolvedInvite['max_users_per_org'] : null) : null,
$caller['company_id'] ?? null,
$license['lg231_order_id'] ?? null,
]