get method

Konto get(
  1. String ktoName, {
  2. String orgName = "undef",
})

get the target account, by descending into the tree of accounts null safe, if no account was found a dummy one is generated .

Implementation

Konto get(String ktoName, {String orgName = "undef"}) {
  if (orgName == "undef") orgName = ktoName;
  if (name == ktoName) {
    return this;
  } else if (children.containsKey(ktoName)) {
    return children[ktoName]!;
  } else if (!children.containsKey(ktoName) && ktoName.length > 1) {
    //maybe recurse?
    String key = ktoName[0];
    String rest = ktoName.substring(1);
    if (ktoName.startsWith(name)) {
      rest = ktoName.substring(name.length);
      key = rest[0];
      rest = rest.substring(1);
      if (rest.length <= 0) {
        children[key] = Konto(number: key, name: orgName);
        return children[key]!;
      }
    }
    if (children.containsKey(key))
      return children[key]!.get(rest, orgName: orgName);
    // if(key !=number) //study more, o how to cope with unrelated names
    // {
    //   //orgName = name+orgName;
    // print("ehm  $ktoName differs from me ($number) .... rewriting orgName to $orgName" );
    // }
    children[key] = Konto(number: key, plan: this);
    return children[key]!.get(ktoName.substring(1), orgName: orgName);
  }
  children[ktoName] = Konto(number: ktoName, name: orgName);
  return children[ktoName]!;
}