12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import 'dart:async';
- import 'package:flutter/material.dart';
- import '../../viewmodels/viewmodels.dart';
- class PedidoSync {
- static final PedidoSync _instance = PedidoSync._internal();
- Timer? _syncTimer;
- factory PedidoSync() {
- return _instance;
- }
- PedidoSync._internal();
- void startSync(
- PedidoViewModel pedidoViewModel, CorteCajaViewModel corteCajaViewModel) {
- if (_syncTimer != null && _syncTimer!.isActive) return;
- _syncTimer = Timer.periodic(Duration(seconds: 5), (timer) async {
- // Primero sincronizamos pedidos
- bool hasMorePedidosToSync = await pedidoViewModel.sincronizarPedidos();
- // Luego sincronizamos corte de caja
- bool hasMoreCortesToSync =
- await corteCajaViewModel.sincronizarCorteCajas();
- // Opcionalmente, podrías detener el timer si ya no hay nada más que sincronizar.
- // if (!hasMorePedidosToSync && !hasMoreCortesToSync) {
- // timer.cancel();
- // _syncTimer = null;
- // print('Sincronización completa, no hay más datos por sincronizar.');
- // }
- });
- }
- void stopSync() {
- _syncTimer?.cancel();
- _syncTimer = null;
- }
- bool isSyncing() {
- return _syncTimer != null && _syncTimer!.isActive;
- }
- }
|