stampa ddt

This commit is contained in:
2026-05-16 11:51:26 +02:00
parent a166992b04
commit 9a5d0e33bd
16 changed files with 746 additions and 60 deletions

View File

@@ -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(