fix macos pdf

This commit is contained in:
2026-05-16 14:30:23 +02:00
parent 9a5d0e33bd
commit b3f463b688
10 changed files with 49 additions and 57 deletions

View File

@@ -0,0 +1,50 @@
import 'package:flux/features/tickets/models/shipment_document_model.dart';
import 'package:flux/features/master_data/providers/models/provider_model.dart';
import 'package:flux/features/master_data/providers/models/provider_role.dart';
import 'package:flux/features/tickets/models/ticket_model.dart';
import 'package:get_it/get_it.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
class TicketsShipmentRepository {
final _supabase = GetIt.I.get<SupabaseClient>();
Future<List<ProviderModel>> fetchRepairCenters() async {
try {
final response = await _supabase
.from('provider')
.select('*, provider_locations (*)')
.eq('is_active', true)
.order('name');
final allProviders = (response as List)
.map((row) => ProviderModel.fromMap(row as Map<String, dynamic>))
.toList();
// Filtriamo lato client per prendere SOLO i repairCenter
return allProviders
.where((p) => p.roles.contains(ProviderRole.repairCenter))
.toList();
} catch (e) {
throw ('Errore caricamento laboratori: $e');
}
}
// NUOVO METODO: Salva il DDT e aggiorna i Ticket
Future<void> createShipmentDocument({
required ShipmentDocumentModel document,
required TicketStatus newTicketStatus, // es: 'shipped' o 'inExternalLab'
}) async {
try {
// 1. Inseriamo il singolo Documento di Trasporto
await _supabase.from('shipment_documents').insert(document.toMap());
// 2. Aggiorniamo lo stato di TUTTI i ticket inclusi nel DDT
await _supabase
.from('ticket')
.update({'ticket_status': newTicketStatus.value})
.inFilter('id', document.ticketIds);
} catch (e) {
throw ('Errore durante la creazione della spedizione: $e');
}
}
}