checkAndSyncPending method
Future<void>
checkAndSyncPending()
- Cuando recobra conexión, revisa la tabla de pendientes y los sube uno a uno.
Implementation
Future<void> checkAndSyncPending() async {
if (await Connectivity().checkConnectivity() == ConnectivityResult.none)
return;
debugPrint(
'🔄 checkAndSyncPending: Recuperada conexión. Revisando pendientes...');
final pendientes = await _dbHelper.getPendingMetodoMuestreoEspecie();
for (var item in pendientes) {
final data = jsonDecode(item['data']);
debugPrint('➡️ Intentando subir PENDIENTE ID=${data['id']}');
final success = await upload(data);
if (success) {
// Si se subió correctamente, elimina de pendientes
await _dbHelper.deletePendingMetodoMuestreoEspecie(item['id']);
debugPrint(
'✔️ Pendiente sincronizado y eliminado de la tabla → ID=${data['id']}');
await _sendNotification(
'Pendiente Muestreo sincronizado', 'ID=${data['id']}');
} else {
debugPrint(
'❌ Error al sincronizar pendiente ID=${data['id']}. Detengo intento.');
await _sendNotification(
'Error de sincronización', 'Pendiente ID=${data['id']} no enviado');
break;
}
}
}