cid_app/lib/services/profilo_service.dart

114 lines
6.5 KiB
Dart
Raw Permalink Normal View History

2026-04-28 16:00:03 +02:00
import 'package:shared_preferences/shared_preferences.dart';
import '../global_data.dart';
class ProfiloService {
static const String _prefix = "my_profile_";
/// Salva tutti i dati del lato specificato (A o B) nelle SharedPreferences.
static Future<void> salvaProfilo(String lato) async {
final prefs = await SharedPreferences.getInstance();
bool isA = lato == 'A';
// Sezione 6-7 Contraente e Veicolo
2026-05-02 12:00:02 +02:00
await prefs.setString('${_prefix}nome_contraente', isA ? GlobalData.nomeContraenteA : GlobalData.nomeContraenteB);
await prefs.setString('${_prefix}cognome_contraente', isA ? GlobalData.cognomeContraenteA : GlobalData.cognomeContraenteB);
await prefs.setString('${_prefix}cf_contraente', isA ? GlobalData.codiceFiscaleContraenteA : GlobalData.codiceFiscaleContraenteB);
await prefs.setString('${_prefix}indirizzo_contraente', isA ? GlobalData.indirizzoContraenteA : GlobalData.indirizzoContraenteB);
await prefs.setString('${_prefix}cap_contraente', isA ? GlobalData.capContraenteA : GlobalData.capContraenteB);
await prefs.setString('${_prefix}stato_contraente', isA ? GlobalData.statoContraenteA : GlobalData.statoContraenteB);
await prefs.setString('user_tel', lato == 'A' ? GlobalData.nTelefonoMailContraenteA : GlobalData.nTelefonoMailContraenteB);
await prefs.setString('user_email', lato == 'A' ? GlobalData.emailContraenteA : GlobalData.emailContraenteB);
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
await prefs.setString('${_prefix}marca_tipo', isA ? GlobalData.marcaETipoA : GlobalData.marcaETipoB);
await prefs.setString('${_prefix}targa', isA ? GlobalData.targaA : GlobalData.targaB);
await prefs.setString('${_prefix}stato_imm', isA ? GlobalData.statoImmatricolazioneA : GlobalData.statoImmatricolazioneB);
2026-04-28 16:00:03 +02:00
// Sezione 8 Assicurazione
2026-05-02 12:00:02 +02:00
await prefs.setString('${_prefix}denominazione_ass', isA ? GlobalData.denominazioneA : GlobalData.denominazioneB);
await prefs.setString('${_prefix}polizza_ass', isA ? GlobalData.numeroPolizzaA : GlobalData.numeroPolizzaB);
await prefs.setString('${_prefix}agenzia_ass', isA ? GlobalData.agenziaA : GlobalData.agenziaB);
2026-04-28 16:00:03 +02:00
// Sezione 9 Conducente
2026-05-02 12:00:02 +02:00
await prefs.setString('${_prefix}nome_cond', isA ? GlobalData.nomeCondA : GlobalData.nomeCondB);
await prefs.setString('${_prefix}cognome_cond', isA ? GlobalData.cognomeCondA : GlobalData.cognomeCondB);
await prefs.setString('${_prefix}data_nascita_cond', isA ? GlobalData.dataNascitaCondA : GlobalData.dataNascitaCondB);
await prefs.setString('${_prefix}cf_cond', isA ? GlobalData.codFiscaleCondA : GlobalData.codFiscaleCondB);
await prefs.setString('${_prefix}indirizzo_cond', isA ? GlobalData.indirizzoCondA : GlobalData.indirizzoCondB);
await prefs.setString('user_cond_tel', lato == 'A' ? GlobalData.nTelMailCondA : GlobalData.nTelMailCondB);
await prefs.setString('user_cond_email', lato == 'A' ? GlobalData.emailCondA : GlobalData.emailCondB);
await prefs.setString('${_prefix}patente_cond', isA ? GlobalData.nPatenteCondA : GlobalData.nPatenteCondB);
await prefs.setString('${_prefix}scadenza_cond', isA ? GlobalData.scadenzaCondA : GlobalData.scadenzaCondB);
2026-04-28 16:00:03 +02:00
}
/// Verifica se esiste un profilo salvato (almeno un cognome contraente o una targa).
static Future<bool> esisteProfilo() async {
final prefs = await SharedPreferences.getInstance();
String? cognome = prefs.getString('${_prefix}cognome_contraente');
return cognome != null && cognome.trim().isNotEmpty;
}
/// Carica il profilo dalle SharedPreferences in GlobalData per il lato specificato.
static Future<void> caricaProfilo(String lato) async {
final prefs = await SharedPreferences.getInstance();
bool isA = lato == 'A';
String getStr(String key) => prefs.getString('$_prefix$key') ?? "";
if (isA) {
2026-05-02 12:00:02 +02:00
GlobalData.nomeContraenteA = getStr('nome_contraente');
GlobalData.cognomeContraenteA = getStr('cognome_contraente');
GlobalData.codiceFiscaleContraenteA = getStr('cf_contraente');
GlobalData.indirizzoContraenteA = getStr('indirizzo_contraente');
GlobalData.capContraenteA = getStr('cap_contraente');
GlobalData.statoContraenteA = getStr('stato_contraente');
GlobalData.nTelefonoMailContraenteA = prefs.getString('user_tel') ?? "";
GlobalData.emailContraenteA = prefs.getString('user_email') ?? "";
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.marcaETipoA = getStr('marca_tipo');
GlobalData.targaA = getStr('targa');
GlobalData.statoImmatricolazioneA = getStr('stato_imm');
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.denominazioneA = getStr('denominazione_ass');
GlobalData.numeroPolizzaA = getStr('polizza_ass');
GlobalData.agenziaA = getStr('agenzia_ass');
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.nomeCondA = getStr('nome_cond');
GlobalData.cognomeCondA = getStr('cognome_cond');
GlobalData.dataNascitaCondA = getStr('data_nascita_cond');
GlobalData.codFiscaleCondA = getStr('cf_cond');
GlobalData.indirizzoCondA = getStr('indirizzo_cond');
GlobalData.nTelMailCondA = prefs.getString('user_cond_tel') ?? "";
GlobalData.emailCondA = prefs.getString('user_cond_email') ?? "";
GlobalData.nPatenteCondA = getStr('patente_cond');
GlobalData.scadenzaCondA = getStr('scadenza_cond');
2026-04-28 16:00:03 +02:00
} else {
2026-05-02 12:00:02 +02:00
GlobalData.nomeContraenteB = getStr('nome_contraente');
GlobalData.cognomeContraenteB = getStr('cognome_contraente');
GlobalData.codiceFiscaleContraenteB = getStr('cf_contraente');
GlobalData.indirizzoContraenteB = getStr('indirizzo_contraente');
GlobalData.capContraenteB = getStr('cap_contraente');
GlobalData.statoContraenteB = getStr('stato_contraente');
GlobalData.nTelefonoMailContraenteB = prefs.getString('user_tel') ?? "";
GlobalData.emailContraenteB = prefs.getString('user_email') ?? "";
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.marcaETipoB = getStr('marca_tipo');
GlobalData.targaB = getStr('targa');
GlobalData.statoImmatricolazioneB = getStr('stato_imm');
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.denominazioneB = getStr('denominazione_ass');
GlobalData.numeroPolizzaB = getStr('polizza_ass');
GlobalData.agenziaB = getStr('agenzia_ass');
2026-04-28 16:00:03 +02:00
2026-05-02 12:00:02 +02:00
GlobalData.nomeCondB = getStr('nome_cond');
GlobalData.cognomeCondB = getStr('cognome_cond');
GlobalData.dataNascitaCondB = getStr('data_nascita_cond');
GlobalData.codFiscaleCondB = getStr('cf_cond');
GlobalData.indirizzoCondB = getStr('indirizzo_cond');
GlobalData.nTelMailCondB = prefs.getString('user_cond_tel') ?? "";
GlobalData.emailCondB = prefs.getString('user_cond_email') ?? "";
GlobalData.nPatenteCondB = getStr('patente_cond');
GlobalData.scadenzaCondB = getStr('scadenza_cond');
2026-04-28 16:00:03 +02:00
}
}
}