uploadDetalle method

Future<bool> uploadDetalle(
  1. Map<String, dynamic> detalle
)

Implementation

Future<bool> uploadDetalle(Map<String, dynamic> detalle) async {
  try {
    final prefs = await SharedPreferences.getInstance();
    final token = prefs.getString('token');
    if (token == null) return false;

    final uri = Uri.parse(apiUrl);
    final response = await http.post(
      uri,
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer $token',
      },
      body: jsonEncode(detalle),
    );

    // Aceptar 200 o 201 como éxito
    if (response.statusCode == 200 || response.statusCode == 201) {
      print('✅ Detalle sincronizado con éxito');
      return true;
    } else {
      print('❌ Error en la API: ${response.statusCode}, ${response.body}');
      await _sendNotification(
        'Error de Sincronización',
        'Código: ${response.statusCode}',
      );
      return false;
    }
  } catch (e) {
    print('❌ Error en uploadDetalle: $e');
    await _sendNotification(
      'Error de Sincronización',
      'Error: $e',
    );
    return false;
  }
}