lavorazione dei ticket
This commit is contained in:
@@ -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',
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user