Examples of SepaDauerauftrag


Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

        da.delete();
      }

      // dann die SEPA-Dauerauftraege
      list = getSepaDauerauftraege();
      SepaDauerauftrag sda = null;
      while (list.hasNext())
      {
        sda = (SepaDauerauftrag) list.next();
        sda.delete();
      }
     
      // noch die Lastschriften
      list = getLastschriften();
      Lastschrift ls = null;
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

    // Abgleich mit den lokalen SEPA-Dauerauftraegen
   
    DBIterator existing        = konto.getSepaDauerauftraege();
    GVRDauerList.Dauer[] lines = result.getEntries();

    SepaDauerauftrag remote = null;
    SepaDauerauftrag local  = null;
   
    // Hier drin merken wir uns alle SepaDauerauftraege, die beim Abgleich
    // gefunden wurden. Denn die muessen garantiert nicht lokal geloescht werden.
    Map<SepaDauerauftrag,Boolean> matches = new HashMap<SepaDauerauftrag,Boolean>();

    ////////////////////////////////////////////////////////////////////////////
    // 1. Nach neuen und geaenderten Dauerauftraegen suchen
    Logger.info("checking for new and changed entries");
    for (int i=0;i<lines.length;++i)
    {
      try
      {
        remote = this.create(lines[i]);
        local  = find(existing,remote);
       
        if (local != null)
        {
          Logger.info("found a local copy. order id: " + remote.getOrderID() + ". Checking for modifications");
          matches.put(local,Boolean.TRUE);
          if (remote.getChecksum() != local.getChecksum())
          {
            Logger.info("modifications found, updating local copy");
            local.overwrite(remote);
            this.store(local);
            Application.getMessagingFactory().sendMessage(new ObjectChangedMessage(local));
          }
        }
        else
        {
          Logger.info("no local copy found. adding sepa-dauerauftrag order id: " + remote.getOrderID());
          this.store(remote);
          Application.getMessagingFactory().sendMessage(new ImportMessage(remote));
        }
      }
      catch (Exception e)
      {
        Logger.error("error while checking sepa-dauerauftrag, skipping this one",e);
      }
    }
    //
    ////////////////////////////////////////////////////////////////////////////

    Logger.info("checking for deletable entries");
    existing.begin();
   
    // Wir koennen jetzt hier alle loeschen, die NICHT in matches gefunden (also nicht von der Bank geliefert wurden)
    // aber eine Order-ID haben und somit aktiv sein muessten
    while (existing.hasNext())
    {
      local = (SepaDauerauftrag) existing.next();
      if (!local.isActive())
      {
        Logger.info("skipping [id: " + local.getID() + "] - not yet submitted");
        continue; // der wurde noch nicht zur Bank geschickt und muss daher auch nicht geloescht werden
      }
     
      if (matches.containsKey(local))
      {
        Logger.info("skipping [id: " + local.getID() + ", order id: " + local.getOrderID() + "] - just matched");
        continue;
      }
     
      Logger.info("sepa-dauerauftrag order id: " + local.getOrderID() + " does no longer exist online, can be deleted");
      local.delete();
    }

    Application.getMessagingFactory().sendMessage(new ObjectChangedMessage(konto));
    konto.addToProtokoll(i18n.tr("SEPA-Dauerauftr�ge abgerufen"),Protokoll.TYP_SUCCESS);
    Logger.info("sepa-dauerauftrag list fetched successfully");
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

  private SepaDauerauftrag find(DBIterator existing, SepaDauerauftrag remote) throws RemoteException
  {
    existing.begin();
    while (existing.hasNext())
    {
      SepaDauerauftrag local = (SepaDauerauftrag) existing.next();
      if (!local.isActive())
        continue; // der ist noch gar nicht bei der Bank und muss daher auch nicht abgeglichen werden
     
      String idLocal  = StringUtils.trimToEmpty(local.getOrderID());
      String idRemote = StringUtils.trimToEmpty(remote.getOrderID());

      // Platzhalter-ID verwenden, wenn die Bank keine uebertragen hat
      if (idRemote.length() == 0)
        idRemote = BaseDauerauftrag.ORDERID_PLACEHOLDER;
     
      if (idLocal.equals(idRemote))
      {
        // OK, die IDs sind schonmal identisch. Jetzt noch checken, ob
        // es wirklich eine echte ID ist oder der Platzhalter
        if (!idLocal.equals(BaseDauerauftrag.ORDERID_PLACEHOLDER))
          return local; // Echte ID - also haben wir ihn gefunden
       
        // Es ist also die Platzhalter-ID. Dann vergleichen wir
        // anhand der Eigenschaften
        if (local.getChecksum() == remote.getChecksum())
          return local; // sind identisch - gefunden
      }
    }
   
    // Nicht gefunden
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

   * @throws RemoteException
   * @throws ApplicationException
   */
  private SepaDauerauftrag create(Dauer remote) throws RemoteException, ApplicationException
  {
    SepaDauerauftrag auftrag = Converter.HBCIDauer2HibiscusSepaDauerauftrag(remote);
    auftrag.setKonto(this.konto); // Konto hart zuweisen - sie kamen ja auch von dem
    return auftrag;
  }
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

   * @see de.willuhn.jameica.gui.AbstractView#bind()
   */
  public void bind() throws Exception
  {
    final SepaDauerauftragControl control = new SepaDauerauftragControl(this);
    final SepaDauerauftrag da = control.getTransfer();

    GUI.getView().setTitle(i18n.tr("SEPA-Dauerauftrag bearbeiten"));
    GUI.getView().addPanelButton(new PanelButtonPrint(new PrintSupportSepaDauerauftrag(da)));

    Container konten = new SimpleContainer(getParent());
    konten.addHeadline(i18n.tr("Konten"));
    konten.addLabelPair(i18n.tr("Pers�nliches Konto"),        control.getKontoAuswahl());

    ColumnLayout columns = new ColumnLayout(getParent(),2);

    {
      // Links
      Container left = new SimpleContainer(columns.getComposite());
      left.addHeadline(i18n.tr("Empf�nger"));
      left.addLabelPair(i18n.tr("Name"),                      control.getEmpfaengerName());
      left.addLabelPair(i18n.tr("IBAN"),                      control.getEmpfaengerKonto());   
      left.addLabelPair(i18n.tr("BIC"),                       control.getEmpfaengerBic());
      left.addCheckbox(control.getStoreEmpfaenger(),i18n.tr("In Adressbuch �bernehmen"));
    }
    {
      // Rechts
      Container right = new SimpleContainer(columns.getComposite());
      right.addHeadline(i18n.tr("Turnus"));
      right.addLabelPair(i18n.tr("Zahlungsturnus"),           control.getTurnus());
      right.addLabelPair(i18n.tr("Erste Zahlung"),            control.getErsteZahlung());
      right.addLabelPair(i18n.tr("Letzte Zahlung"),           control.getLetzteZahlung());
    }
   
    Container details = new SimpleContainer(getParent());
    details.addHeadline(i18n.tr("Details"));
    details.addLabelPair(i18n.tr("Verwendungszweck"),          control.getZweck());
    details.addLabelPair(i18n.tr("Betrag"),                    control.getBetrag());
    details.addSeparator();
    details.addLabelPair(i18n.tr("Auftragsnummer"),            control.getOrderID());
   
    ButtonArea buttonArea = new ButtonArea();
    String s = i18n.tr("Jetzt ausf�hren...");
    if (da.isActive())
      s = i18n.tr("Jetzt aktualisieren...");

    buttonArea.addButton(i18n.tr("L�schen"),        new SepaDauerauftragDelete(), da, false,"user-trash-full.png");
    buttonArea.addButton(s,                          new Action()
    {
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

      buttons.addButton(i18n.tr("Dauerauftrag erstellen"),new Action() {
        public void handleAction(Object context) throws ApplicationException
        {
          try
          {
            SepaDauerauftrag d = (SepaDauerauftrag) Settings.getDBService().createObject(SepaDauerauftrag.class,null);
            d.setGegenkontoBLZ(new String(bic));
            d.setGegenkontoNummer(new String(iban));
            d.setGegenkontoName(name);
            d.setZweck("Hibiscus-Spende");

            // Wir lassen 7 Tage Vorlauf
            Calendar cal = Calendar.getInstance();
            cal.add(Calendar.DATE,7);
            d.setErsteZahlung(cal.getTime());
            Turnus turnus = (Turnus) Settings.getDBService().createObject(Turnus.class,null);
            turnus.setIntervall(1);
            turnus.setTag(cal.get(Calendar.DAY_OF_MONTH));
            turnus.setZeiteinheit(Turnus.ZEITEINHEIT_MONATLICH);
            d.setTurnus(turnus);
            new de.willuhn.jameica.hbci.gui.action.SepaDauerauftragNew().handleAction(d);
          }
          catch (Exception e)
          {
            Logger.error("unable to create sepa-dauerauftrag",e);
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

  public void handleAction(Object context) throws ApplicationException
  {
    if (!(context instanceof SepaDauerauftrag))
      throw new ApplicationException(i18n.tr("Kein SEPA-Dauerauftrag ausgew�hlt"));

    final SepaDauerauftrag da = (SepaDauerauftrag) context;

    try
    {
      final CheckboxInput check = new CheckboxInput(true);
      YesNoDialog d = new YesNoDialog(YesNoDialog.POSITION_CENTER)
      {
        // BUGZILLA #999
        protected void extend(Container container) throws Exception
        {
          // Nur bei aktiven Dauerauftraegen anzeigen
          if (da.isActive()) {
            final LabelInput warn = new LabelInput("");
            warn.setColor(Color.COMMENT);
            check.addListener(new Listener() {
              public void handleEvent(Event event)
              {
                // Warnhinweis anzeigen, dass der Auftrag nur lokal geloescht wird
                Boolean b = (Boolean) check.getValue();
                if (b.booleanValue())
                  warn.setValue("");
                else
                  warn.setValue(i18n.tr("Auftrag wird nur lokal gel�scht, bei der Bank bleibt er erhalten."));
              }
            });
            container.addCheckbox(check,i18n.tr("Auftrag auch bei der Bank l�schen."));
            container.addLabelPair("",warn);
          }
          super.extend(container);
        }
      };
      d.setTitle(i18n.tr("SEPA-Dauerauftrag l�schen"));
      d.setText(i18n.tr("Wollen Sie diesen Dauerauftrag wirklich l�schen?"));
      d.setSize(350,SWT.DEFAULT);

      Boolean choice = (Boolean) d.open();
      if (!choice.booleanValue())
        return;

      // Nur bei der Bank loeschen, wenn er aktiv ist und der User das will
      // BUGZILLA #15
      if (da.isActive() && (Boolean) check.getValue())
      {

        BaseDauerauftragDeleteDialog d2 = new BaseDauerauftragDeleteDialog(BaseDauerauftragDeleteDialog.POSITION_CENTER);
        Date date = (Date) d2.open();
       
        Konto konto = da.getKonto();
        Class<SynchronizeJobSepaDauerauftragDelete> type = SynchronizeJobSepaDauerauftragDelete.class;

        BeanService bs = Application.getBootLoader().getBootable(BeanService.class);
        SynchronizeEngine engine   = bs.get(SynchronizeEngine.class);
        SynchronizeBackend backend = engine.getBackend(type,konto);
        SynchronizeJob job         = backend.create(type,konto);
       
        job.setContext(SynchronizeJob.CTX_ENTITY,da);
        job.setContext(SynchronizeJobSepaDauerauftragDelete.CTX_DATE,date);
       
        // Das Loeschen der Entity uebernimmt der HBCISepaDauerauftragDeleteJob selbst in "markExecuted"
        backend.execute(Arrays.asList(job));
      }
      else
      {
        // nur lokal loeschen
        da.delete();
        Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("SEPA-Dauerauftrag lokal gel�scht."),StatusBarMessage.TYPE_SUCCESS));
      }
    }
    catch (OperationCanceledException oce)
    {
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

  private TypedProperties getBPD() throws RemoteException
  {
    if (this.bpd != null)
      return this.bpd;
   
    SepaDauerauftrag auftrag = this.getTransfer();
    if (auftrag.isActive())
      this.bpd = DBPropertyUtil.getBPD(auftrag.getKonto(),DBPropertyUtil.BPD_QUERY_SEPADAUER_EDIT);
    else
      this.bpd = new TypedProperties(); // Der Auftrag ist noch nicht aktiv - dann gibt es noch keine Einschraenkungen
   
    return this.bpd;
  }
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

          GUI.getStatusBar().setErrorText(i18n.tr("Fehler bei der Auswahl des Zahlungsturnus"));
        }
      }
    });

    SepaDauerauftrag da = getTransfer();
    Turnus t = da.getTurnus();
    turnus = new DialogInput(t == null ? "" : t.getBezeichnung(),td);
    turnus.setValue(t);
    turnus.setMandatory(true);
   
    if (da.isActive())
    {
      boolean changable = getBPD().getBoolean("turnuseditable",true) && getBPD().getBoolean("timeuniteditable",true);
      turnus.setEnabled(changable);
    }
   
View Full Code Here

Examples of de.willuhn.jameica.hbci.rmi.SepaDauerauftrag

  public Input getErsteZahlung() throws RemoteException
  {
    if (ersteZahlung != null)
      return ersteZahlung;
   
    final SepaDauerauftrag t = getTransfer();
    Date d = t.getErsteZahlung();
    if (d == null)
    {
      d = new Date();
      t.setErsteZahlung(d);
    }

    ersteZahlung = new DateInput(d);
    ersteZahlung.setComment("");
    ersteZahlung.setTitle(i18n.tr("Datum der ersten Zahlung"));
    ersteZahlung.setText(i18n.tr("Bitte geben Sie das Datum der ersten Zahlung ein"));
    ersteZahlung.setMandatory(true);
    ersteZahlung.addListener(this.nextDate);
   
    if (t.isActive())
      ersteZahlung.setEnabled(getBPD().getBoolean("firstexeceditable",true));
   
    this.nextDate.handleEvent(null); // einmal ausloesen fuer initialen Text
    return ersteZahlung;
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.