/** @see de.willuhn.datasource.db.AbstractDBObject#insertCheck() */
  protected void insertCheck() throws ApplicationException {
    try {
      if (getKonto() == null)
        throw new ApplicationException(i18n.tr("Bitte wählen Sie ein Konto aus."));
      if (getKonto().isNewObject())
        throw new ApplicationException(i18n.tr("Bitte speichern Sie zunächst das Konto"));

      if (getGegenkontoNummer() == null || getGegenkontoNummer().length() == 0)
        throw new ApplicationException(
            i18n.tr("Bitte geben Sie die Kontonummer des Gegenkontos ein"));

      if (getGegenkontoBLZ() == null || getGegenkontoBLZ().length() == 0)
        throw new ApplicationException(i18n.tr("Bitte geben Sie die BLZ des Gegenkontos ein"));

      // BUGZILLA 280
      HBCIProperties.checkChars(getGegenkontoNummer(), HBCIProperties.HBCI_KTO_VALIDCHARS);
      HBCIProperties.checkChars(getGegenkontoBLZ(), HBCIProperties.HBCI_BLZ_VALIDCHARS);
      HBCIProperties.checkLength(getGegenkontoNummer(), HBCIProperties.HBCI_KTO_MAXLENGTH_HARD);

      double betrag = getBetrag();
      if (betrag == 0.0 || Double.isNaN(betrag))
        throw new ApplicationException(i18n.tr("Bitte geben Sie einen gültigen Betrag ein."));

      if (getGegenkontoName() == null || getGegenkontoName().length() == 0)
        throw new ApplicationException(
            i18n.tr("Bitte geben Sie den Namen des Kontoinhabers des Gegenkontos ein"));

      int blzLen = getGegenkontoBLZ().length();
      if (blzLen != HBCIProperties.HBCI_BLZ_LENGTH)
        throw new ApplicationException(
            i18n.tr(
                "Ungültige BLZ \"{0}\". Muss {1} Stellen lang sein.",
                new String[] {getGegenkontoBLZ(), "" + HBCIProperties.HBCI_BLZ_LENGTH}));

      HBCIProperties.checkLength(getGegenkontoName(), HBCIProperties.HBCI_TRANSFER_NAME_MAXLENGTH);

      // BUGZILLA 163
      HBCIProperties.checkChars(getGegenkontoName(), HBCIProperties.HBCI_DTAUS_VALIDCHARS);

      if (!HBCIProperties.checkAccountCRC(getGegenkontoBLZ(), getGegenkontoNummer()))
        throw new ApplicationException(
            i18n.tr("Ungültige BLZ/Kontonummer. Bitte prüfen Sie Ihre Eingaben."));

      if (getZweck() == null || "".equals(getZweck()))
        throw new ApplicationException(i18n.tr("Bitte geben Sie einen Verwendungszweck ein"));

      HBCIProperties.checkLength(getZweck(), HBCIProperties.HBCI_TRANSFER_USAGE_MAXLENGTH);
      HBCIProperties.checkLength(getZweck2(), HBCIProperties.HBCI_TRANSFER_USAGE_MAXLENGTH);

      HBCIProperties.checkChars(getZweck(), HBCIProperties.HBCI_DTAUS_VALIDCHARS);
      HBCIProperties.checkChars(getZweck2(), HBCIProperties.HBCI_DTAUS_VALIDCHARS);

      VerwendungszweckUtil.checkMaxUsage(this);
    } catch (RemoteException e) {
      Logger.error("error while checking transfer", e);
      throw new ApplicationException(i18n.tr("Fehler beim Prüfen des Auftrages."));
    }
  }
Ejemplo n.º 2
0
  /** @see de.willuhn.jameica.gui.input.TextInput#setValue(java.lang.Object) */
  @Override
  public void setValue(Object value) {
    super.setValue(value);

    if (value == null) return;

    // Formatierungsleerzeichen zum Testen entfernen
    String s = StringUtils.trimToNull(StringUtils.deleteWhitespace(value.toString()));
    if (s == null) return;

    try {
      // 1. IBAN sofort checken
      IBAN iban = HBCIProperties.getIBAN(s);

      if (iban == null) // Keine IBAN
      return;

      if (this.bicInput == null) return;

      // 2. Wenn wir ein BICInput haben, dann gleich noch die BIC ermitteln und
      // vervollstaendigen
      String bic = StringUtils.trimToNull(iban.getBIC());
      if (bic == null) return;

      this.bicInput.setValue(bic);
    } catch (ApplicationException ae) {
      Application.getMessagingFactory()
          .sendMessage(new StatusBarMessage(ae.getMessage(), StatusBarMessage.TYPE_ERROR));
    }
  }
Ejemplo n.º 3
0
  /**
   * ct.
   *
   * @param passport optionale Angabe des Passports.
   */
  public KeyPasswordLoadDialog(HBCIPassport passport) {
    super(POSITION_CENTER);
    setSize(550, SWT.DEFAULT);

    String s = null;
    try {
      BeanService service = Application.getBootLoader().getBootable(BeanService.class);
      SynchronizeSession session = service.get(HBCISynchronizeBackend.class).getCurrentSession();
      Konto konto = session != null ? session.getKonto() : null;

      if (konto != null) {
        s = konto.getBezeichnung();
        String name = HBCIProperties.getNameForBank(konto.getBLZ());
        if (name != null && name.length() > 0) s += " [" + name + "]";
      }
    } catch (Exception e) {
      Logger.error("unable to determine current konto", e);
    }

    String text = null;
    if (s != null) {
      setTitle(i18n.tr("Schlüsseldiskette. Konto: {0}", s));
      text = i18n.tr("Bitte geben Sie das Passwort der Schlüsseldiskette ein.\nKonto: {0}", s);
    } else {
      setTitle(i18n.tr("Schlüsseldiskette"));
      text = i18n.tr("Bitte geben Sie das Passwort der Schlüsseldiskette ein.");
    }

    if (passport != null && (passport instanceof HBCIPassportRDHNew))
      this.filename = ((HBCIPassportRDHNew) passport).getFilename();

    setText(text);
    setLabelText(i18n.tr("Ihr Passwort"));
  }
Ejemplo n.º 4
0
 /** @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event) */
 public void handleEvent(Event arg0) {
   try {
     String b = (String) getValue();
     if (b != null && b.length() > 0) {
       // Wir schnipseln gleich noch Leerzeichen raus - aber nur, wenn welche drin stehen
       if (b.indexOf(' ') != -1) b = b.replaceAll(" ", "");
       setComment(HBCIProperties.getNameForBank(b));
     } else {
       setComment("");
     }
   } catch (Exception e) {
     // ignore
   }
 }
Ejemplo n.º 5
0
 /** @see de.willuhn.datasource.GenericObject#getAttribute(java.lang.String) */
 public Object getAttribute(String attribute) throws RemoteException {
   if ("blz".equals(attribute)) return getBLZ();
   if ("bank".equals(attribute)) return HBCIProperties.getNameForBank(getBLZ());
   if ("url".equals(attribute)) return getURL();
   if ("port".equals(attribute)) return new Integer(getPort());
   if ("filtertype".equals(attribute)) return getFilterType();
   if ("hbciversion".equals(attribute)) return getHBCIVersion();
   if ("customerid".equals(attribute)) return getCustomerId();
   if ("userid".equals(attribute)) return getUserId();
   if ("bezeichnung".equals(attribute)) return getBezeichnung();
   if ("showtan".equals(attribute)) return new Boolean(getShowTan());
   if ("secmech".equals(attribute)) return getSecMech();
   if ("tanmedia".equals(attribute)) return getTanMedia();
   if ("tanmedias".equals(attribute)) return getTanMedias();
   return null;
 }
Ejemplo n.º 6
0
  /**
   * ct.
   *
   * @param value die IBAN.
   * @param bicInput optionale Angabe des zugehoerigen Eingabefeldes mit der BIC. Dessen Wert kann
   *     dann bei Eingabe einer IBAN automatisch mit der passenden BIC vervollstaendigt werden.
   */
  public IBANInput(String value, Input bicInput) {
    super(
        HBCIProperties.formatIban(value),
        HBCIProperties.HBCI_IBAN_MAXLENGTH + 5); // max. 5 Leerzeichen
    this.setValidChars(HBCIProperties.HBCI_IBAN_VALIDCHARS);
    this.setName("IBAN");
    this.bicInput = bicInput;

    this.addListener(
        new Listener() {
          public void handleEvent(Event event) {
            String s = (String) getValue();
            if (s == null || s.length() < 2) return;

            setValue(HBCIProperties.formatIban(s));
          }
        });
  }
Ejemplo n.º 7
0
  /** @see de.willuhn.jameica.hbci.passport.Configuration#getDescription() */
  public String getDescription() {
    try {
      String name = this.getBezeichnung();
      String bank = HBCIProperties.getNameForBank(getBLZ());
      String url = this.getURL();

      boolean haveName = (name != null && name.trim().length() > 0);
      boolean haveBank = (bank != null && bank.length() > 0);

      // wenn wir weder Name noch Bank haben, nehmen wir die URL
      if (!haveBank && !haveName) return url;

      // wenn wir Name und Bank haben, nehmen wir beides
      if (haveBank && haveName) return name + " - " + bank;

      // Ansonsten das, was da ist
      if (haveName) return name;

      return bank;
    } catch (Exception e) {
      Logger.error("unable to determine name", e);
      return passport.getHost();
    }
  }