stampa ddt
This commit is contained in:
@@ -77,21 +77,21 @@ class TicketListCubit extends Cubit<TicketListState> {
|
||||
loadTickets(refresh: true); // Applica i filtri e ricarica
|
||||
}
|
||||
|
||||
void toggleTicketSelection(String ticketId) {
|
||||
final currentSelection = Set<String>.from(state.selectedTicketIds);
|
||||
if (currentSelection.contains(ticketId)) {
|
||||
currentSelection.remove(ticketId);
|
||||
void toggleTicketSelection(TicketModel ticket) {
|
||||
final currentSelection = Set<TicketModel>.from(state.selectedTickets);
|
||||
if (currentSelection.contains(ticket)) {
|
||||
currentSelection.remove(ticket);
|
||||
} else {
|
||||
currentSelection.add(ticketId);
|
||||
currentSelection.add(ticket);
|
||||
}
|
||||
emit(state.copyWith(selectedTicketIds: currentSelection));
|
||||
emit(state.copyWith(selectedTickets: currentSelection));
|
||||
}
|
||||
|
||||
void clearSelection() {
|
||||
emit(state.copyWith(selectedTicketIds: {}));
|
||||
emit(state.copyWith(selectedTickets: {}));
|
||||
}
|
||||
|
||||
void selectAll(List<String> ticketIds) {
|
||||
emit(state.copyWith(selectedTicketIds: ticketIds.toSet()));
|
||||
void selectAll(List<TicketModel> tickets) {
|
||||
emit(state.copyWith(selectedTickets: tickets.toSet()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class TicketListState extends Equatable {
|
||||
final bool isLoading;
|
||||
final bool hasReachedMax;
|
||||
final String errorMessage;
|
||||
final Set<String> selectedTicketIds;
|
||||
final Set<TicketModel> selectedTickets;
|
||||
|
||||
// Filtri attivi
|
||||
final String? searchTerm;
|
||||
@@ -21,7 +21,7 @@ class TicketListState extends Equatable {
|
||||
this.isLoading = false,
|
||||
this.hasReachedMax = false,
|
||||
this.errorMessage = '',
|
||||
this.selectedTicketIds = const {},
|
||||
this.selectedTickets = const {},
|
||||
this.searchTerm,
|
||||
this.dateRange,
|
||||
this.statusFilter,
|
||||
@@ -34,7 +34,7 @@ class TicketListState extends Equatable {
|
||||
bool? isLoading,
|
||||
bool? hasReachedMax,
|
||||
String? errorMessage,
|
||||
Set<String>? selectedTicketIds,
|
||||
Set<TicketModel>? selectedTickets,
|
||||
String? searchTerm,
|
||||
DateTimeRange? dateRange,
|
||||
TicketStatus? statusFilter,
|
||||
@@ -54,7 +54,7 @@ class TicketListState extends Equatable {
|
||||
statusFilter: clearStatus ? null : (statusFilter ?? this.statusFilter),
|
||||
ticketTypeFilter: ticketTypeFilter ?? this.ticketTypeFilter,
|
||||
staffIdFilter: staffIdFilter ?? this.staffIdFilter,
|
||||
selectedTicketIds: selectedTicketIds ?? this.selectedTicketIds,
|
||||
selectedTickets: selectedTickets ?? this.selectedTickets,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ class TicketListState extends Equatable {
|
||||
isLoading,
|
||||
hasReachedMax,
|
||||
errorMessage,
|
||||
selectedTicketIds,
|
||||
selectedTickets,
|
||||
searchTerm,
|
||||
dateRange,
|
||||
statusFilter,
|
||||
|
||||
@@ -6,6 +6,8 @@ import 'package:flux/features/documents/models/shipment_document_model.dart';
|
||||
import 'package:flux/features/master_data/providers/models/provider_location_model.dart';
|
||||
import 'package:flux/features/master_data/providers/models/provider_model.dart';
|
||||
import 'package:flux/features/settings/document_sequence/data/document_sequence_repository.dart';
|
||||
import 'package:flux/features/settings/document_sequence/models/document_sequence_model.dart';
|
||||
import 'package:flux/features/tickets/models/ticket_model.dart';
|
||||
import 'package:get_it/get_it.dart';
|
||||
|
||||
part 'ticket_shipping_state.dart';
|
||||
@@ -85,27 +87,6 @@ class TicketShippingCubit extends Cubit<TicketShippingState> {
|
||||
Future<void> toggleAutoNumber(bool value) async {
|
||||
// Aggiorniamo subito l'UI per mostrare che lo switch si è acceso
|
||||
emit(state.copyWith(isAutoNumber: value));
|
||||
|
||||
if (value) {
|
||||
// Se lo switch è acceso, chiediamo il numero al DB
|
||||
try {
|
||||
final nextNumber = await _sequenceRepository.getNextDocumentNumber(
|
||||
'ddt',
|
||||
);
|
||||
|
||||
emit(
|
||||
state.copyWith(
|
||||
document: state.document.copyWith(docNumber: nextNumber),
|
||||
),
|
||||
);
|
||||
} catch (e) {
|
||||
// Se qualcosa va storto, spegniamo lo switch e mostriamo l'errore
|
||||
emit(state.copyWith(isAutoNumber: false, errorMessage: e.toString()));
|
||||
}
|
||||
} else {
|
||||
// Se lo spegne, svuotiamo semplicemente il campo
|
||||
emit(state.copyWith(document: state.document.copyWith(docNumber: '')));
|
||||
}
|
||||
}
|
||||
|
||||
// Metodo unico e pulito per aggiornare i campi testuali/numerici del documento
|
||||
@@ -131,7 +112,7 @@ class TicketShippingCubit extends Cubit<TicketShippingState> {
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> confirmShipment({required String newTicketStatus}) async {
|
||||
Future<void> confirmShipment({required TicketStatus newTicketStatus}) async {
|
||||
if (state.document.providerId.isEmpty ||
|
||||
state.document.destinationLocationId.isEmpty) {
|
||||
emit(
|
||||
@@ -142,7 +123,7 @@ class TicketShippingCubit extends Cubit<TicketShippingState> {
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (state.document.docNumber.trim().isEmpty) {
|
||||
if (!state.isAutoNumber && state.document.docNumber.trim().isEmpty) {
|
||||
emit(
|
||||
state.copyWith(
|
||||
status: TicketShippingStatus.failure,
|
||||
@@ -153,6 +134,17 @@ class TicketShippingCubit extends Cubit<TicketShippingState> {
|
||||
}
|
||||
|
||||
emit(state.copyWith(status: TicketShippingStatus.loading));
|
||||
if (state.isAutoNumber) {
|
||||
try {
|
||||
final nextNumber = await _sequenceRepository.getNextDocumentNumber(
|
||||
DocumentType.shipment.name,
|
||||
);
|
||||
updateDocument(docNumber: nextNumber);
|
||||
} catch (e) {
|
||||
emit(state.copyWith(isAutoNumber: false, errorMessage: e.toString()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await _repository.createShipmentDocument(
|
||||
|
||||
@@ -17,7 +17,7 @@ class TicketShippingState extends Equatable {
|
||||
required this.document,
|
||||
this.availableProviders = const [],
|
||||
this.availableLocations = const [],
|
||||
this.isAutoNumber = false,
|
||||
this.isAutoNumber = true,
|
||||
this.errorMessage,
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user