reworked operation (#12)

Reviewed-on: #12
Co-authored-by: Mark M2 Macbook <marco@catelli.it>
Co-committed-by: Mark M2 Macbook <marco@catelli.it>
This commit is contained in:
2026-05-04 15:36:42 +02:00
committed by brontomark
parent 9f57207a39
commit 94ad524bae
110 changed files with 5831 additions and 5306 deletions

View File

@@ -15,13 +15,14 @@ class ProviderFormSheet extends StatefulWidget {
class _ProviderFormSheetState extends State<ProviderFormSheet> {
late TextEditingController _nameController;
late bool _telefoniaFissa;
late bool _telefoniaMobile;
late bool _energia;
late bool _assicurazioni;
late bool _intrattenimento;
late bool _finanziamenti;
late bool _altro;
late bool _landline;
late bool _mobile;
late bool _energy;
late bool _insurance;
late bool _entertainment;
late bool _financing;
late bool _telepass;
late bool _other;
late bool _isActive;
final List<String> _tempSelectedStoreIds =
[]; // Per gestire la selezione temporanea dei negozi
@@ -33,14 +34,15 @@ class _ProviderFormSheetState extends State<ProviderFormSheet> {
for (final store in p?.associatedStores ?? []) {
_tempSelectedStoreIds.add(store.id!);
}
_nameController = TextEditingController(text: p?.nome ?? '');
_telefoniaFissa = p?.telefoniaFissa ?? false;
_telefoniaMobile = p?.telefoniaMobile ?? false;
_energia = p?.energia ?? false;
_assicurazioni = p?.assicurazioni ?? false;
_intrattenimento = p?.intrattenimento ?? false;
_finanziamenti = p?.finanziamenti ?? false;
_altro = p?.altro ?? false;
_nameController = TextEditingController(text: p?.name ?? '');
_landline = p?.landline ?? false;
_mobile = p?.mobile ?? false;
_energy = p?.energy ?? false;
_insurance = p?.insurance ?? false;
_entertainment = p?.entertainment ?? false;
_financing = p?.financing ?? false;
_telepass = p?.telepass ?? false;
_other = p?.other ?? false;
_isActive = p?.isActive ?? true;
}
@@ -57,14 +59,15 @@ class _ProviderFormSheetState extends State<ProviderFormSheet> {
final cubit = context.read<ProvidersCubit>();
final provider = ProviderModel(
id: widget.initialProvider?.id, // Se nullo, Supabase farà insert
nome: _nameController.text.trim(),
telefoniaFissa: _telefoniaFissa,
telefoniaMobile: _telefoniaMobile,
energia: _energia,
assicurazioni: _assicurazioni,
intrattenimento: _intrattenimento,
finanziamenti: _finanziamenti,
altro: _altro,
name: _nameController.text.trim(),
landline: _landline,
mobile: _mobile,
energy: _energy,
insurance: _insurance,
entertainment: _entertainment,
financing: _financing,
telepass: _telepass,
other: _other,
isActive: _isActive,
companyId:
'', // Verrà ignorato dal toMap e gestito dal Cubit/SessionBloc se hai messo la logica lì
@@ -110,38 +113,43 @@ class _ProviderFormSheetState extends State<ProviderFormSheet> {
),
_buildSwitch(
"Energia (Luce/Gas)",
_energia,
(v) => setState(() => _energia = v),
_energy,
(v) => setState(() => _energy = v),
),
_buildSwitch(
"Telefonia Fissa",
_telefoniaFissa,
(v) => setState(() => _telefoniaFissa = v),
_landline,
(v) => setState(() => _landline = v),
),
_buildSwitch(
"Telefonia Mobile",
_telefoniaMobile,
(v) => setState(() => _telefoniaMobile = v),
_mobile,
(v) => setState(() => _mobile = v),
),
_buildSwitch(
"Assicurazioni",
_assicurazioni,
(v) => setState(() => _assicurazioni = v),
_insurance,
(v) => setState(() => _insurance = v),
),
_buildSwitch(
"Intrattenimento",
_intrattenimento,
(v) => setState(() => _intrattenimento = v),
_entertainment,
(v) => setState(() => _entertainment = v),
),
_buildSwitch(
"Finanziamenti",
_finanziamenti,
(v) => setState(() => _finanziamenti = v),
_financing,
(v) => setState(() => _financing = v),
),
_buildSwitch(
"Telepass",
_telepass,
(v) => setState(() => _telepass = v),
),
_buildSwitch(
"Altro/Accessori",
_altro,
(v) => setState(() => _altro = v),
_other,
(v) => setState(() => _other = v),
),
const Divider(),
_buildSwitch(
@@ -164,7 +172,7 @@ class _ProviderFormSheetState extends State<ProviderFormSheet> {
store.id,
);
return CheckboxListTile(
title: Text(store.nome),
title: Text(store.name),
value: isAssociated,
onChanged: (val) {
setState(() {

View File

@@ -93,7 +93,7 @@ class _ProvidersMasterDataScreenState extends State<ProvidersMasterDataScreen> {
),
),
title: Text(
provider.nome,
provider.name,
style: const TextStyle(fontWeight: FontWeight.bold),
),
subtitle: _buildCardSubtitle(
@@ -141,12 +141,13 @@ class _ProvidersMasterDataScreenState extends State<ProvidersMasterDataScreen> {
return Wrap(
spacing: 4,
children: [
if (p.telefoniaFissa || p.telefoniaMobile)
_smallTag("📞 Tel", Colors.blue),
if (p.energia) _smallTag("⚡ Energy", Colors.orange),
if (p.assicurazioni) _smallTag("🛡️ Assic", Colors.teal),
if (p.intrattenimento) _smallTag("📺 Ent", Colors.red),
if (p.altro) _smallTag("📦 Altro", Colors.grey),
if (p.landline || p.mobile) _smallTag("📞 Tel", Colors.blue),
if (p.energy) _smallTag("⚡ Energy", Colors.orange),
if (p.insurance) _smallTag("🛡️ Assic", Colors.teal),
if (p.entertainment) _smallTag("📺 Ent", Colors.red),
if (p.financing) _smallTag("💰 Fin", Colors.purple),
if (p.telepass) _smallTag("🏎️ Telepass", Colors.yellow),
if (p.other) _smallTag("📦 Altro", Colors.grey),
],
);
}