autoreplace service operation

This commit is contained in:
2026-05-01 09:51:42 +02:00
parent 87b4661d33
commit 9c8576ada5
26 changed files with 136 additions and 134 deletions

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/features/operations/blocs/services_cubit.dart';
import 'package:flux/features/operations/blocs/operations_cubit.dart';
import 'package:flux/features/operations/models/service_model.dart';
import 'package:flux/features/operations/utils/service_actions.dart';
import 'package:go_router/go_router.dart';
@@ -107,8 +107,8 @@ class _ServicesScreenState extends State<ServicesScreen> {
);
}
final service = state.allServices[index];
return _buildServiceCard(context, service);
final operation = state.allServices[index];
return _buildServiceCard(context, operation);
},
),
);
@@ -121,7 +121,7 @@ class _ServicesScreenState extends State<ServicesScreen> {
);
}
Widget _buildServiceCard(BuildContext context, ServiceModel service) {
Widget _buildServiceCard(BuildContext context, ServiceModel operation) {
return Card(
margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
elevation: 2,
@@ -132,14 +132,14 @@ class _ServicesScreenState extends State<ServicesScreen> {
children: [
Expanded(
child: Text(
service.customerDisplayName ?? "Cliente sconosciuto",
operation.customerDisplayName ?? "Cliente sconosciuto",
style: const TextStyle(
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
),
if (service.isBozza)
if (operation.isBozza)
const Chip(
label: Text(
"BOZZA",
@@ -155,20 +155,20 @@ class _ServicesScreenState extends State<ServicesScreen> {
children: [
const SizedBox(height: 4),
Text(
"Pratica: ${service.number}${service.createdAt?.day}/${service.createdAt?.month}/${service.createdAt?.year}",
"Pratica: ${operation.number}${operation.createdAt?.day}/${operation.createdAt?.month}/${operation.createdAt?.year}",
),
const SizedBox(height: 8),
// I nostri mini-chip per i servizi attivati
Wrap(
spacing: 6,
children: [
if (service.al > 0 || service.mnp > 0)
if (operation.al > 0 || operation.mnp > 0)
_miniBadge("📞 Tel", Colors.blue),
if (service.energyServices.isNotEmpty)
if (operation.energyServices.isNotEmpty)
_miniBadge("⚡ Energy", Colors.green),
if (service.finServices.isNotEmpty)
if (operation.finServices.isNotEmpty)
_miniBadge("💰 Fin", Colors.purple),
if (service.entertainmentServices.isNotEmpty)
if (operation.entertainmentServices.isNotEmpty)
_miniBadge("📺 Ent", Colors.red),
],
),
@@ -176,10 +176,12 @@ class _ServicesScreenState extends State<ServicesScreen> {
),
trailing: const Icon(Icons.chevron_right),
onTap: () => context.pushNamed(
'service-form',
extra: service, // <-- LA MAGIA È QUI: Passa l'oggetto intero!
'operation-form',
extra: operation, // <-- LA MAGIA È QUI: Passa l'oggetto intero!
// Teniamo anche il parametro URL per coerenza di routing
queryParameters: service.id != null ? {'serviceId': service.id!} : {},
queryParameters: operation.id != null
? {'serviceId': operation.id!}
: {},
),
),
);