lavorazione dei ticket

This commit is contained in:
2026-05-14 15:59:46 +02:00
parent 0f9616f19a
commit 89099c2cfd
11 changed files with 437 additions and 205 deletions

View File

@@ -318,4 +318,49 @@ class TicketFormCubit extends Cubit<TicketFormState> {
);
}
}
Future<void> completeTicket({
required TicketResult result,
required double finalPrice,
}) async {
final currentTicket = state.ticket;
if (currentTicket.id == null || currentTicket.id!.isEmpty) return;
// 1. Aggiorniamo il ticket con il nuovo status, l'esito e il prezzo!
final updatedTicket = currentTicket.copyWith(
ticketStatus: TicketStatus.ready,
ticketResult: result,
customerPrice: finalPrice,
);
try {
await _repository.updateTicket(updatedTicket);
// 2. Timeline personalizzata in base all'esito
final esitoTesto = result == TicketResult.success
? "Riparato con successo"
: "Non riparabile/Preventivo rifiutato";
await GetIt.I.get<TrackingRepository>().logQuickEvent(
companyId: currentTicket.companyId,
message:
"Lavorazione completata. Esito: $esitoTesto. Il dispositivo è pronto per il ritiro.",
type: TrackingType.statusChange,
parentId: currentTicket.id!,
parentType: TrackingParentType.ticket,
staffId: currentTicket.assignedToId ?? '',
isInternal: false,
);
emit(state.copyWith(ticket: updatedTicket));
} catch (e) {
emit(
state.copyWith(
status: TicketFormStatus.failure,
errorMessage: 'Errore durante la chiusura: $e',
),
);
}
}
}