fetchData method

Future<bool> fetchData({
  1. bool nextPage = false,
  2. String q = '',
  3. String f = '',
  4. String o = '',
  5. int p = 1,
  6. int r = 20,
  7. int s = 0,
  8. bool isForced = false,
})

Implementation

Future<bool> fetchData({
  bool nextPage = false,
  String q = '',
  String f = '',
  String o = '',
  int p = 1,
  int r = 20,
  int s = 0,
  bool isForced = false,
}) async {
  bool isDone = false;
  if (_head != null && (!isLoading || isForced)) {
    if (!nextPage) {
      if (q != _head!.curSearch ||
          f != _head!.curFilter ||
          o != _head!.curOrder ||
          p != _head!.pg ||
          s != _head!.curStatus) {
        _head!.curSearch = q;
        _head!.curFilter = f;
        _head!.curOrder = o;
        _head!.pg = p;
        _head!.nbrows = r;
        _head!.curStatus = s;
        //nextPage=false;
        _head!.rows.clear();
      }
    } else if (nextPage)
      _head!.pg++;
    else if (_head!.rows.length == 0) nextPage = true;

    //if (nextPage) {
    _head!.isLoaded = false;
    await getBrowse(
      code: _head!.code,
      p: _head!.pg,
      r: _head!.nbrows,
      q: _head!.curSearch!,
      f: _head!.curFilter!,
      o: _head!.curOrder!,
      s: _head!.curStatus,
    ).then((x) {
      if (_head != null) {
        if (!nextPage) _head!.rows.clear();
        _head!.rows.addAll(x.rows);
        _head!.menu = List.from(x.menu);
        _head!.isLoaded = true;
        isLoading = false;
        if (_callback != null) _callback!();
        isDone = true;
      }
    });
    //}
  }
  return isDone;
}