| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- typedef SyncProgressCallback = void Function(String message, double progress);
- class SyncOrchestrator {
- final SyncProgressCallback onProgress;
- SyncOrchestrator({required this.onProgress});
- Future<void> executeFullSync() async {
- onProgress('Avvio sincronizzazione...', 0.0);
- // Step 1-5: Upload new data
- await _syncStep('Verifica agente...', 0.05, _syncAgente);
- await _syncStep('Invio nuovi clienti...', 0.10, _syncClientiUpload);
- await _syncStep('Scarico clienti attivi...', 0.15, _syncClientiAttivi);
- await _syncStep('Invio nuove destinazioni...', 0.20, _syncDestinazioni);
- await _syncStep('Invio nuovi ordini...', 0.25, _syncOrdini);
- // Step 6: Download reference data
- await _syncStep('Scarico tabelle...', 0.35, _syncTabelle);
- await _syncStep('Scarico pagamenti...', 0.40, _syncPagamenti);
- await _syncStep('Scarico sconti...', 0.45, _syncSconti);
- await _syncStep('Scarico articoli...', 0.50, _syncArticoli);
- await _syncStep('Scarico listini...', 0.55, _syncListini);
- await _syncStep('Scarico listini articolo...', 0.60, _syncListiniArticolo);
- // Step 7-9: Agent-specific downloads
- await _syncStep('Scarico scadenze...', 0.65, _syncScadenze);
- await _syncStep('Scarico listini cliente...', 0.70, _syncListiniCliente);
- await _syncStep('Scarico sconti cliente...', 0.75, _syncScontiCliente);
- // Step 10-13: Complete
- await _syncStep('Scarico promozioni...', 0.80, _syncPromozioni);
- await _syncStep('Scarico ordini remoti...', 0.85, _syncOrdiniDownload);
- await _syncStep('Scarico statistiche...', 0.90, _syncStatistiche);
- await _syncStep('Verifica parametri...', 0.95, _syncParametri);
- onProgress('Sincronizzazione completata!', 1.0);
- }
- Future<void> _syncStep(String msg, double progress, Future<void> Function() action) async {
- onProgress(msg, progress);
- try {
- await action();
- } catch (e) {
- onProgress('$msg (errore: $e)', progress);
- }
- }
- Future<void> _syncAgente() async { }
- Future<void> _syncClientiUpload() async { }
- Future<void> _syncClientiAttivi() async { }
- Future<void> _syncDestinazioni() async { }
- Future<void> _syncOrdini() async { }
- Future<void> _syncTabelle() async { }
- Future<void> _syncPagamenti() async { }
- Future<void> _syncSconti() async { }
- Future<void> _syncArticoli() async { }
- Future<void> _syncListini() async { }
- Future<void> _syncListiniArticolo() async { }
- Future<void> _syncScadenze() async { }
- Future<void> _syncListiniCliente() async { }
- Future<void> _syncScontiCliente() async { }
- Future<void> _syncPromozioni() async { }
- Future<void> _syncOrdiniDownload() async { }
- Future<void> _syncStatistiche() async { }
- Future<void> _syncParametri() async { }
- }
|