getComboData function

ComboData2 getComboData(
  1. String type,
  2. String? stringAll, {
  3. ComboData2? providersForServices,
  4. String? stringOwner,
})

Implementation

ComboData2 getComboData(
    String type, // "providers"
    String? stringAll, ///  strings.get(254)  /// "All"
    {ComboData2? providersForServices, String? stringOwner} ///  strings.get(457)  /// "Global (owner) item",
  ){

  ComboData2 combo = ComboData2("", []);

  if (stringAll != null) {
    combo.data.add(ComboData(stringAll, "1"));
    combo.value = "1";
    if (stringOwner != null)
      combo.data.add(ComboData(stringOwner, "2"));
    combo.data.add(ComboData("", "", divider: true));
  }else
    if (stringOwner != null)
      combo.data.add(ComboData(stringOwner, "2"));

  if (type == "users")
    for (var item in listUsers)
      combo.data.add(ComboData(item.name, item.id));

  if (type == "providers")
    for (var item in providers)
      combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));

  if (type == "category")
    for (var item in categories)
      combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));

  if (type == "service") {
    if (providersForServices == null) {
      for (var item in product)
        combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
    }else{
      for (var provider in providersForServices.data) {
        if (!provider.checkSelected)
          continue;
        for (var item in product) {
          if (provider.id == '1'){
            combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
            continue;
          }
          if (item.providers.contains(provider.id)) {
            if (!_isComboContain(combo, item.id))
              combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
          }
        }
      }
    }
  }

  if (type == "article")
    if (providersForServices == null) {
      for (var item in productDataCache)
        combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
    }else{
      for (var provider in providersForServices.data) {
        if (!provider.checkSelected)
          continue;
        if (provider.id == '2'){
          for (var item in productDataCache)
            if (item.providers.isEmpty)
              if (!_isComboContain(combo, item.id))
                combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
        }
        for (var item in productDataCache) {
          if (provider.id == '1'){
            combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
            continue;
          }
          if (item.providers.contains(provider.id)) {
            if (!_isComboContain(combo, item.id))
              combo.data.add(ComboData(getTextByLocale(item.name, locale), item.id));
          }
        }
      }
    }

  return combo;
}