diff --git a/lib/features/operations/blocs/operations_cubit.dart b/lib/features/operations/blocs/operations_cubit.dart index 536f9eb..88f4441 100644 --- a/lib/features/operations/blocs/operations_cubit.dart +++ b/lib/features/operations/blocs/operations_cubit.dart @@ -1,10 +1,7 @@ import 'package:equatable/equatable.dart'; -import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flux/core/blocs/session/session_cubit.dart'; -import 'package:flux/core/utils/extensions.dart'; -import 'package:flux/features/attachments/models/attachment_model.dart'; import 'package:flux/features/operations/data/operations_repository.dart'; import 'package:flux/features/operations/models/operation_model.dart'; import 'package:get_it/get_it.dart'; diff --git a/lib/features/operations/models/operation_model.dart b/lib/features/operations/models/operation_model.dart index 727eb11..ef2c0b6 100644 --- a/lib/features/operations/models/operation_model.dart +++ b/lib/features/operations/models/operation_model.dart @@ -27,7 +27,7 @@ class OperationModel extends Equatable { final String? id; final DateTime? createdAt; final String type; - final String? subType; + final String? subtype; final String? providerId; final String? providerDisplayName; final String? modelId; @@ -56,7 +56,7 @@ class OperationModel extends Equatable { this.id, this.createdAt, this.type = '', - this.subType, + this.subtype, this.providerId, this.providerDisplayName, this.modelId, @@ -110,7 +110,7 @@ class OperationModel extends Equatable { id: id ?? this.id, createdAt: createdAt ?? this.createdAt, type: type ?? this.type, - subType: subtype ?? this.subType, + subtype: subtype ?? this.subtype, providerId: providerId ?? this.providerId, providerDisplayName: providerDisplayName ?? this.providerDisplayName, modelId: modelId ?? this.modelId, @@ -139,7 +139,7 @@ class OperationModel extends Equatable { id, createdAt, type, - subType, + subtype, providerId, providerDisplayName, modelId, @@ -174,7 +174,7 @@ class OperationModel extends Equatable { ? DateTime.parse(map['created_at']) : null, type: map['type'] as String? ?? '', - subType: map['sub_type'] as String?, + subtype: map['sub_type'] as String?, providerId: map['provider_id'] as String? ?? '', providerDisplayName: "${map['provider']['name']}".myFormat(), modelId: map['model_id'] as String? ?? '', @@ -212,7 +212,7 @@ class OperationModel extends Equatable { return { if (id != null) 'id': id, 'type': type, - 'sub_type': subType, + 'sub_type': subtype, 'provider_id': providerId, 'model_id': modelId, 'description': description, diff --git a/lib/features/operations/ui/operation_form_screen.dart b/lib/features/operations/ui/operation_form_screen.dart index 6da630a..ce185d0 100644 --- a/lib/features/operations/ui/operation_form_screen.dart +++ b/lib/features/operations/ui/operation_form_screen.dart @@ -164,41 +164,46 @@ class _OperationFormScreenState extends State { Expanded( child: BlocBuilder( builder: (context, state) { - /* Decommenta e adatta al tuo CustomersState if (state.status == CustomersStatus.loading) { return const Center(child: CircularProgressIndicator()); } if (state.customers.isEmpty) { - return const Center(child: Text('Nessun cliente trovato.', style: TextStyle(color: Colors.grey))); + return const Center( + child: Text( + 'Nessun cliente trovato.', + style: TextStyle(color: Colors.grey), + ), + ); } - */ + return ListView.builder( controller: scrollController, - itemCount: 10, // Sostituisci con state.customers.length + itemCount: state.customers.length, itemBuilder: (context, index) { - // final customer = state.customers[index]; + final customer = state.customers[index]; return ListTile( - leading: const CircleAvatar( - child: Icon(Icons.person), + leading: CircleAvatar( + child: Text( + customer.name.substring(0, 1).toUpperCase(), + ), ), title: Text( - 'Cliente $index', + customer.name, style: const TextStyle( fontWeight: FontWeight.bold, ), - ), // Sostituisci con customer.name - subtitle: const Text( - '333 1234567', - ), // Sostituisci con customer.phoneNumber + ), + subtitle: Text( + '${customer.phoneNumber} • ${customer.email}', + ), onTap: () { // Aggiorniamo il form tramite il Cubit delle operazioni context .read() .updateOperationFields( - customerId: - 'id_del_cliente_$index', // customer.id + customerId: customer.id, // customer.id customerDisplayName: - 'Cliente $index', // customer.name + customer.name, // customer.name ); Navigator.pop(modalContext); }, @@ -433,8 +438,8 @@ class _OperationFormScreenState extends State { // SOTTO-TIPO (Reattivo) if (['Energy', 'Fin', 'Entertainment'].contains(currentType)) ...[ - DropdownButtonFormField( - value: + DropdownButtonFormField( + initialValue: null, // Sostituisci con currentOp?.subtype quando lo aggiungi decoration: const InputDecoration( labelText: 'Dettaglio (es. Luce, Gas...)', @@ -481,6 +486,7 @@ class _OperationFormScreenState extends State { borderRadius: BorderRadius.circular(8), ), onTap: () async { + final operationsCubit = context.read(); final date = await showDatePicker( context: context, initialDate: DateTime.now().add(const Duration(days: 365)), @@ -488,9 +494,7 @@ class _OperationFormScreenState extends State { lastDate: DateTime.now().add(const Duration(days: 3650)), ); if (date != null) { - context.read().updateOperationFields( - expirationDate: date, - ); + operationsCubit.updateOperationFields(expirationDate: date); } }, ), @@ -505,10 +509,11 @@ class _OperationFormScreenState extends State { icon: const Icon(Icons.remove), onPressed: () { final q = currentOp?.quantity ?? 1; - if (q > 1) + if (q > 1) { context.read().updateOperationFields( quantity: q - 1, ); + } }, ), Text( diff --git a/lib/l10n/app_it.arb b/lib/l10n/app_it.arb index 3e195ea..86bc2ca 100644 --- a/lib/l10n/app_it.arb +++ b/lib/l10n/app_it.arb @@ -50,13 +50,13 @@ "commonNewPassword": "Nuova Password", "commonNote": "Nota", "commonSave": "Salva", - "commonOperation": "Servizio", + "commonOperation": "Operazione", "commonSettings": "Impostazioni", "commonStickyNotes": "Sticky Notes", "commonTask": "Attività", "homeExpiringContracts": "Contratti in scadenza", "homeLatestOperationTickets": "Ultime assistenze", - "homeLatestOperations": "Ultimi Servizi", + "homeLatestOperations": "Ultime Operazioni", "homeMyTasks": "Mie Attività", "homeNewOperationTicket": "Nuova assistenza", "homeNoStoreFound": "Nessun negozio trovato", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 707d88f..6fd9505 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -223,7 +223,7 @@ abstract class AppLocalizations { /// No description provided for @commonOperation. /// /// In it, this message translates to: - /// **'Servizio'** + /// **'Operazione'** String get commonOperation; /// No description provided for @commonSettings. @@ -259,7 +259,7 @@ abstract class AppLocalizations { /// No description provided for @homeLatestOperations. /// /// In it, this message translates to: - /// **'Ultimi Servizi'** + /// **'Ultime Operazioni'** String get homeLatestOperations; /// No description provided for @homeMyTasks. diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 563bdce..f284efa 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -81,7 +81,7 @@ class AppLocalizationsIt extends AppLocalizations { String get commonSave => 'Salva'; @override - String get commonOperation => 'Servizio'; + String get commonOperation => 'Operazione'; @override String get commonSettings => 'Impostazioni'; @@ -99,7 +99,7 @@ class AppLocalizationsIt extends AppLocalizations { String get homeLatestOperationTickets => 'Ultime assistenze'; @override - String get homeLatestOperations => 'Ultimi Servizi'; + String get homeLatestOperations => 'Ultime Operazioni'; @override String get homeMyTasks => 'Mie Attività';