if (!k.hasFlag(Konto.FLAG_DISABLED) && !k.hasFlag(Konto.FLAG_OFFLINE) && StringUtils.trimToNull(k.getIban()) != null)
u.setKonto(k);
}
else if (context instanceof Address)
{
Address e = (Address) context;
u = (AuslandsUeberweisung) Settings.getDBService().createObject(AuslandsUeberweisung.class,null);
u.setGegenkonto(e);
}
else if (context instanceof Umsatz)
{
Umsatz umsatz = (Umsatz) context;
u = (AuslandsUeberweisung) Settings.getDBService().createObject(AuslandsUeberweisung.class,null);
u.setBetrag(Math.abs(umsatz.getBetrag())); // negative Betraege automatisch in positive umwandeln
u.setGegenkontoName(umsatz.getGegenkontoName());
u.setKonto(umsatz.getKonto());
u.setTermin(new Date());
// BUGZILLA 1437
// Wenn wir ein Gegenkonto haben, dann pruefen wir, ob es wie eine IBAN aussieht.
// Falls ja, uebernehmen wir sie. Falls nicht, schauen wir im Adressbuch, ob
// wir die Adresse kennen und dort vielleicht BIC und IBAN haben
String kto = StringUtils.trimToEmpty(umsatz.getGegenkontoNummer());
String blz = StringUtils.trimToEmpty(umsatz.getGegenkontoBLZ());
if (kto.length() <= 10 && kto.length() > 0 && blz.length() > 0) // aber nur, wenn wir auch was zum Suchen im Adressbuch haben
{
// kann keine IBAN sein. Die ist per Definition laenger
// Also im Adressbuch schauen
HibiscusAddress address = (HibiscusAddress) Settings.getDBService().createObject(HibiscusAddress.class,null);
address.setBlz(blz);
address.setKontonummer(kto);
AddressbookService book = (AddressbookService) Application.getServiceFactory().lookup(HBCI.class,"addressbook");
Address a = book.contains(address);
kto = a != null ? a.getIban() : null;
blz = a != null ? a.getBic() : null;
}
u.setGegenkontoBLZ(blz);
u.setGegenkontoNummer(kto);