/** @see de.willuhn.datasource.db.AbstractDBObject#store() */ public void store() throws RemoteException, ApplicationException { try { this.transactionBegin(); super.store(); Konto k = this.getKonto(); String blz = getGegenkontoBLZ(); if (blz != null) { String[] params = new String[] { getGegenkontoName(), getGegenkontoNummer(), getGegenkontoBLZ(), k.getWaehrung(), HBCI.DECIMALFORMAT.format(getBetrag()) }; k.addToProtokoll( i18n.tr("Auftrag [Gegenkonto: {0}, Kto. {1}, BLZ {2}] {3} {4} gespeichert", params), Protokoll.TYP_SUCCESS); } else { String[] params = new String[] { getGegenkontoName(), getGegenkontoNummer(), k.getWaehrung(), HBCI.DECIMALFORMAT.format(getBetrag()) }; k.addToProtokoll( i18n.tr("Auftrag [Gegenkonto: {0}, Kto. {1}] {2} {3} gespeichert", params), Protokoll.TYP_SUCCESS); } this.transactionCommit(); } catch (RemoteException re) { try { this.transactionRollback(); } catch (Exception e2) { Logger.error("unable to rollback transaction", e2); } throw re; } catch (ApplicationException ae) { try { this.transactionRollback(); } catch (Exception e2) { Logger.error("unable to rollback transaction", e2); } throw ae; } }
/** * Ueberschrieben, um die Summe zu berechnen. * * @see de.willuhn.jameica.gui.parts.TablePart#getSummary() */ @Override protected String getSummary() { try { Object o = this.getSelection(); int size = this.size(); // nichts markiert oder nur einer, dann muss nichts berechnet werden if (o == null || size == 1 || !(o instanceof Object[])) { return super.getSummary(); } // Andernfalls berechnen wir die Summe Object[] list = (Object[]) o; BigDecimal sum = this.calculateSum(list); if (sum == null) return super.getSummary(); return i18n.tr( "{0} Aufträge, {1} markiert, Summe: {2} {3}", Integer.toString(size), Integer.toString(list.length), HBCI.DECIMALFORMAT.format(sum), HBCIProperties.CURRENCY_DEFAULT_DE); } catch (Exception e) { Logger.error("error while updating summary", e); } return super.getSummary(); }
/** @see de.willuhn.datasource.db.AbstractDBObject#delete() */ public void delete() throws RemoteException, ApplicationException { try { this.transactionBegin(); super.delete(); // und noch in's Protokoll schreiben. Konto k = this.getKonto(); if (k != null) k.addToProtokoll( i18n.tr( "Auftrag [Gegenkonto: {0}, Kto. {1}, BLZ {2}] {3} {4} gelöscht", getGegenkontoName(), getGegenkontoNummer(), getGegenkontoBLZ(), k.getWaehrung(), HBCI.DECIMALFORMAT.format(getBetrag())), Protokoll.TYP_SUCCESS); this.transactionCommit(); } catch (RemoteException re) { this.transactionRollback(); throw re; } catch (ApplicationException ae) { this.transactionRollback(); throw ae; } }
/** @see de.willuhn.jameica.hbci.io.print.PrintSupportUeberweisung#printContent() */ Print printContent() throws ApplicationException { Object data = this.getContext(); if (data instanceof TablePart) data = ((TablePart) data).getSelection(); if (!(data instanceof BaseUeberweisung[])) throw new ApplicationException(i18n.tr("Bitte wählen Sie mindestens einen Auftrag aus")); try { DefaultGridLook look = new DefaultGridLook(); look.setHeaderBackground(new RGB(220, 220, 220)); LineBorder border = new LineBorder(new RGB(100, 100, 100)); border.setGapSize(3); look.setCellBorder(border); GridPrint table = new GridPrint("l:p:n, l:d:n, l:d:n, l:p:g, r:p:n, l:p:n", look); table.addHeader(new TextPrint(i18n.tr("Datum"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Konto"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Gegenkonto"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Zweck"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Betrag"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Ausgeführt"), fontTinyBold)); BaseUeberweisung[] list = (BaseUeberweisung[]) data; TextStyle typeDone = new TextStyle().font(fontTiny).foreground(new RGB(120, 120, 120)); TextStyle typeOpen = new TextStyle().font(fontTiny).foreground(new RGB(0, 0, 0)); for (BaseUeberweisung u : list) { TextStyle style = u.ausgefuehrt() ? typeDone : typeOpen; Konto k = u.getKonto(); String usage = VerwendungszweckUtil.toString(u, "\n"); Date ausgefuehrt = u.getAusfuehrungsdatum(); table.add(new TextPrint(HBCI.DATEFORMAT.format(u.getTermin()), style)); table.add(new TextPrint(k.getLongName(), style)); table.add( new TextPrint( i18n.tr( "{0}\nIBAN {1}, BIC {2}", u.getGegenkontoName(), u.getGegenkontoNummer(), u.getGegenkontoBLZ()), style)); table.add(new TextPrint(usage, style)); table.add( new TextPrint(HBCI.DECIMALFORMAT.format(u.getBetrag()) + " " + k.getWaehrung(), style)); if (ausgefuehrt != null) table.add(new TextPrint(HBCI.DATEFORMAT.format(ausgefuehrt), style)); else table.add(new TextPrint(i18n.tr(u.ausgefuehrt() ? "ja" : "nein"), style)); } return table; } catch (RemoteException re) { Logger.error("unable to print data", re); throw new ApplicationException(i18n.tr("Druck fehlgeschlagen: {0}", re.getMessage())); } }
/** @see de.willuhn.jameica.gui.dialogs.AbstractDialog#paint(org.eclipse.swt.widgets.Composite) */ protected void paint(Composite parent) throws Exception { Container group = new SimpleContainer(parent); group.addHeadline(i18n.tr("Details des Dauerauftrages")); Input kto = new LabelInput(auftrag.getKonto().getKontonummer()); kto.setComment(auftrag.getKonto().getBezeichnung()); group.addLabelPair(i18n.tr("Eigenes Konto"), kto); Input empfName = new LabelInput(auftrag.getGegenkontoName()); group.addLabelPair(i18n.tr("Name des Empfänger"), empfName); Input empfKto = new LabelInput(auftrag.getGegenkontoNummer()); empfKto.setComment( auftrag.getGegenkontoBLZ() + "/" + HBCIUtils.getNameForBLZ(auftrag.getGegenkontoBLZ())); group.addLabelPair(i18n.tr("Konto des Empfängers"), empfKto); LabelInput betrag = new LabelInput( HBCI.DECIMALFORMAT.format(auftrag.getBetrag()) + " " + auftrag.getKonto().getWaehrung()); betrag.setColor(Color.ERROR); group.addLabelPair(i18n.tr("Betrag"), betrag); group.addSeparator(); Date e = auftrag.getErsteZahlung(); String se = i18n.tr("Zum nächstmöglichen Termin"); if (e != null) se = HBCI.DATEFORMAT.format(e); Input ersteZahlung = new LabelInput(se); group.addLabelPair(i18n.tr("Erste Zahlung"), ersteZahlung); Date l = auftrag.getLetzteZahlung(); String sl = i18n.tr("keine End-Datum vorgegeben"); if (l != null) sl = HBCI.DATEFORMAT.format(l); Input letzteZahlung = new LabelInput(sl); group.addLabelPair(i18n.tr("Letzte Zahlung"), letzteZahlung); Input turnus = new LabelInput(TurnusHelper.createBezeichnung(auftrag.getTurnus())); group.addLabelPair(i18n.tr("Zahlungsturnus"), turnus); group.addHeadline(i18n.tr("Verwendungszweck")); group.addText(VerwendungszweckUtil.toString(auftrag, "\n"), false); if (auftrag.isActive()) group.addText( i18n.tr("Sind Sie sicher, daß Sie diese Änderungen jetzt zur Bank senden wollen?") + "\n", true); else group.addText( i18n.tr("Sind Sie sicher, daß Sie diesen Dauerauftrag jetzt ausführen wollen?") + "\n", true); super.paint(parent); getShell().setMinimumSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT)); }
/** @see de.willuhn.jameica.gui.AbstractView#bind() */ public void bind() throws Exception { final UmsatzDetailControl control = getControl(); // BUGZILLA 38 http://www.willuhn.de/bugzilla/show_bug.cgi?id=38 Konto k = control.getUmsatz().getKonto(); String s1 = k.getLongName(); if (s1 == null) s1 = ""; double d = k.getSaldo(); String s2 = null; if (k.getSaldoDatum() != null) s2 = HBCI.DECIMALFORMAT.format(d) + " " + k.getWaehrung(); // Saldo wurde schonmal abgerufen if (s2 == null) GUI.getView().setTitle(i18n.tr("Buchungsdetails. {0}", s1)); else GUI.getView().setTitle(i18n.tr("Buchungsdetails. {0}, Saldo: {1}", new String[] {s1, s2})); ColumnLayout columns = new ColumnLayout(getParent(), 2); SimpleContainer left = new SimpleContainer(columns.getComposite()); // BUGZILLA 23 http://www.willuhn.de/bugzilla/show_bug.cgi?id=23 left.addHeadline(i18n.tr("Gegenkonto")); left.addLabelPair(i18n.tr("Inhaber"), control.getEmpfaengerName()); left.addLabelPair(i18n.tr("Kontonummer"), control.getEmpfaengerKonto()); left.addLabelPair(i18n.tr("BLZ"), control.getEmpfaengerBLZ()); left.addHeadline(i18n.tr("Datum und Betrag")); left.addLabelPair(i18n.tr("Datum"), control.getDatum()); left.addLabelPair(i18n.tr("Valuta"), control.getValuta()); left.addSeparator(); left.addLabelPair(i18n.tr("Betrag"), control.getBetrag()); left.addLabelPair(i18n.tr("Neuer Saldo"), control.getSaldo()); SimpleContainer right = new SimpleContainer(columns.getComposite(), true); right.addHeadline(i18n.tr("Sonstige Informationen")); right.addLabelPair(i18n.tr("Art der Buchung"), control.getArt()); right.addLabelPair(i18n.tr("Kundenreferenz"), control.getCustomerRef()); right.addLabelPair(i18n.tr("Primanota-Kennzeichen"), control.getPrimanota()); right.addLabelPair(i18n.tr("Geschäftsvorfall-Code"), control.getGvCode()); right.addHeadline(i18n.tr("Notizen")); right.addPart(control.getKommentar()); SimpleContainer bottom = new SimpleContainer(getParent(), true); bottom.addSeparator(); bottom.addLabelPair(i18n.tr("Kategorie"), control.getUmsatzTyp()); bottom.addHeadline(i18n.tr("Verwendungszweck")); bottom.addPart(control.getZweck()); bottom.addInput(control.getZweckSwitch()); forceSaldoUpdateforReverseBooking(); }
/** @see de.willuhn.jameica.search.Result#getName() */ public String getName() { try { Konto k = u.getKonto(); String[] params = new String[] { HBCI.DATEFORMAT.format(u.getTermin()), HBCI.DECIMALFORMAT.format(u.getBetrag()), k.getWaehrung(), u.getGegenkontoName(), u.getZweck(), k.getLongName(), }; I18N i18n = Application.getPluginLoader().getPlugin(HBCI.class).getResources().getI18N(); return i18n.tr("{0}: {1} {2} an {3} - {4} (via {5})", params); } catch (RemoteException re) { Logger.error("unable to determin result name", re); return null; } }
/** @see de.willuhn.jameica.hbci.io.print.AbstractPrintSupport#printContent() */ Print printContent() throws ApplicationException { Object data = this.ctx; if (data == null) throw new ApplicationException(i18n.tr("Bitte wählen Sie einen Auftrag aus")); if (data instanceof TablePart) data = ((TablePart) data).getSelection(); if (!(data instanceof SammelTransfer)) throw new ApplicationException(i18n.tr("Bitte wählen Sie einen Auftrag aus")); try { SammelTransfer a = (SammelTransfer) data; Konto k = a.getKonto(); // Das Haupt-Layout GridPrint grid = new GridPrint("l:d:g"); // Die eigentlich Tabelle mit den Werten { DefaultGridLook look = new DefaultGridLook(5, 5); GridPrint table = new GridPrint("l:p:n, l:d:g", look); // Bezeichnung table.add(new TextPrint(i18n.tr("Bezeichnung"), fontNormal)); table.add(new TextPrint(notNull(a.getBezeichnung()), fontBold)); // Konto table.add(new TextPrint(i18n.tr("Konto"), fontNormal)); table.add(new TextPrint(notNull(k != null ? k.getLongName() : null), fontNormal)); // Termin Date termin = a.getTermin(); table.add(new TextPrint(i18n.tr("Fällig am"), fontNormal)); table.add(new TextPrint(termin == null ? "-" : HBCI.DATEFORMAT.format(termin), fontNormal)); // Summe table.add(new TextPrint(i18n.tr("Summe"), fontNormal)); table.add( new TextPrint( HBCI.DECIMALFORMAT.format(a.getSumme()) + " " + k.getWaehrung(), fontBold)); // Ausfuehrungsstatus Date ausgefuehrt = a.getAusfuehrungsdatum(); table.add(new TextPrint(i18n.tr("Ausgeführt"), fontNormal)); if (ausgefuehrt != null) table.add(new TextPrint(HBCI.DATEFORMAT.format(ausgefuehrt), fontBold)); else table.add(new TextPrint(a.ausgefuehrt() ? "Ja" : "Nein", fontBold)); grid.add(table); // Zum Haupt-Layout hinzufuegen } // Leerzeile grid.add(new LineBreakPrint(fontNormal)); grid.add(new LineBreakPrint(fontNormal)); // Liste der Buchungen grid.add(new TextPrint(i18n.tr("Enthaltene Buchungen"), fontBold)); // Leerzeile grid.add(new LineBreakPrint(fontNormal)); DBIterator buchungen = a.getBuchungen(); if (buchungen.size() > 0) { DefaultGridLook look = new DefaultGridLook(); look.setHeaderBackground(new RGB(220, 220, 220)); LineBorder border = new LineBorder(new RGB(100, 100, 100)); border.setGapSize(3); look.setCellBorder(border); GridPrint table = new GridPrint("r:d:n, l:d:n, l:p:g, l:p:n, r:p:n", look); table.addHeader(new TextPrint(i18n.tr("Nr."), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Gegenkonto"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Zweck"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Typ"), fontTinyBold)); table.addHeader(new TextPrint(i18n.tr("Betrag"), fontTinyBold)); int count = 0; while (buchungen.hasNext()) { SammelTransferBuchung b = (SammelTransferBuchung) buchungen.next(); String usage = VerwendungszweckUtil.toString(b, "\n"); table.add(new TextPrint(Integer.toString(++count), fontTiny)); table.add( new TextPrint( i18n.tr( "{0}, Kto. {1}, BLZ {2}", b.getGegenkontoName(), b.getGegenkontoNummer(), b.getGegenkontoBLZ()), fontTiny)); table.add(new TextPrint(usage, fontTiny)); table.add(new TextPrint(notNull(TextSchluessel.get(b.getTextSchluessel())), fontTiny)); table.add( new TextPrint( HBCI.DECIMALFORMAT.format(b.getBetrag()) + " " + k.getWaehrung(), fontTiny)); } grid.add(table); // Zum Haupt-Layout hinzufuegen } else { grid.add(new TextPrint("- " + i18n.tr("keine") + " -", fontTiny)); } return grid; } catch (RemoteException re) { Logger.error("unable to print data", re); throw new ApplicationException(i18n.tr("Druck fehlgeschlagen: {0}", re.getMessage())); } }