initDataPicker static method

Future<List<Picker>> initDataPicker(
  1. String tableName,
  2. List<Map<String, Object?>?>? dtData, {
  3. bool override = false,
})

Implementation

static Future<List<Picker>> initDataPicker(
  String tableName,
  List<Map<String, Object?>?>? dtData, {
  bool override = false,
}) async {
  if (Common.pickers.containsKey(tableName) && !override) {
    return Common.pickers[tableName] ?? [];
  }
  List<Picker> listVal = [];
  try {
    if (dtData == null || dtData.isEmpty) {
      var ds = await SQLService.execute(
        'sp_getValueDataPicker',
        params: {
          '@tableName': tableName,
        },
      );
      if (ds.isEmpty) return listVal;
      dtData = ds['sp_getValueDataPicker'] ?? ds.values.first;
    }
    dtData ??= [];

    for (var row in dtData) {
      int id = Methods.getInt(row, 'ID', defaultValue: -1);
      if (id < 0) continue;
      listVal.add(
        Picker.data(row),
      );
    }
    Common.pickers[tableName] = listVal;
  } catch (ex) {
    if (kDebugMode) {
      print('[Exception] getValueDataPicker: $ex');
    }
  }
  if (kDebugMode) {
    print('getValueDataPicker: $tableName count: ${listVal.length}');
  }
  return listVal;
}