/** @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.hbci.io.Exporter#doExport(java.lang.Object[], * de.willuhn.jameica.hbci.io.IOFormat, java.io.OutputStream, de.willuhn.util.ProgressMonitor) */ public void doExport(Object[] objects, IOFormat format, OutputStream os, ProgressMonitor monitor) throws RemoteException, ApplicationException { if (objects == null || !(objects instanceof UmsatzTree[])) throw new ApplicationException(i18n.tr("Bitte wählen Sie die zu exportierenden Umsätze aus")); UmsatzTree[] t = (UmsatzTree[]) objects; if (t.length == 0) throw new ApplicationException(i18n.tr("Bitte wählen Sie die zu exportierenden Umsätze aus")); UmsatzTree tree = t[0]; List list = tree.getUmsatzTree(); Konto k = tree.getKonto(); String subTitle = i18n.tr( "Zeitraum {0} - {1}, {2}", HBCI.DATEFORMAT.format(tree.getStart()), HBCI.DATEFORMAT.format(tree.getEnd()), k == null ? i18n.tr("alle Konten") : k.getBezeichnung()); Reporter reporter = null; try { reporter = new Reporter(os, monitor, i18n.tr("Umsatzkategorien"), subTitle, list.size()); reporter.addHeaderColumn(i18n.tr("Kategorie"), Element.ALIGN_CENTER, 130, Color.LIGHT_GRAY); reporter.addHeaderColumn(i18n.tr("Einnahmen"), Element.ALIGN_CENTER, 30, Color.LIGHT_GRAY); reporter.addHeaderColumn(i18n.tr("Ausgaben"), Element.ALIGN_CENTER, 30, Color.LIGHT_GRAY); reporter.addHeaderColumn(i18n.tr("Betrag"), Element.ALIGN_CENTER, 30, Color.LIGHT_GRAY); reporter.createHeader(); // Iteration ueber die Kategorien for (int i = 0; i < list.size(); ++i) { renderNode(reporter, (UmsatzTreeNode) list.get(i), 0); reporter.setNextRecord(); } if (monitor != null) monitor.setStatus(ProgressMonitor.STATUS_DONE); } catch (Exception e) { if (monitor != null) monitor.setStatus(ProgressMonitor.STATUS_ERROR); Logger.error("error while creating report", e); throw new ApplicationException( i18n.tr("Fehler beim Erzeugen der Auswertung: {0}", e.getMessage()), e); } finally { if (reporter != null) { try { reporter.close(); } catch (Exception e) { Logger.error("unable to close report", e); } } } }
/** @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())); } }
/** @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event) */ public void handleEvent(Event event) { if (chart == null) return; try { int start = ((Integer) getRange().getValue()).intValue(); Konto k = konto; if (k == null) // Das ist der Fall, wenn das Kontoauswahlfeld verfuegbar ist k = (Konto) getKontoAuswahl().getValue(); if (start == startPrev && k == kPrev) return; // Auswahl nicht geaendert chart.removeAllData(); Date date = null; if (start < 0) { // Keine Anzahl von Tagen angegeben. Dann nehmen wir den // aeltesten gefundenen Umsatz als Beginn String query = "select min(valuta) from umsatz"; if (k != null) query += " where konto_id = " + k.getID(); date = (Date) Settings.getDBService() .execute( query, null, new ResultSetExtractor() { public Object extract(ResultSet rs) throws RemoteException, SQLException { if (!rs.next()) return null; return rs.getDate(1); } }); } else { long d = start * 24l * 60l * 60l * 1000l; date = DateUtil.startOfDay(new Date(System.currentTimeMillis() - d)); } if (date == null) { Logger.info("no start date, no entries, skipping chart"); return; } chart.setTitle(i18n.tr("Saldo-Verlauf seit {0}", HBCI.DATEFORMAT.format(date))); if (k == null) // wir zeichnen einen Stacked-Graph ueber alle Konten { DBIterator it = Settings.getDBService().createList(Konto.class); ChartDataSaldoSumme s = new ChartDataSaldoSumme(); while (it.hasNext()) { ChartDataSaldoVerlauf v = new ChartDataSaldoVerlauf((Konto) it.next(), date); chart.addData(v); s.add(v.getData()); } ChartDataSaldoTrend t = new ChartDataSaldoTrend(); t.add(s.getData()); chart.addData(s); chart.addData(t); } else // Ansonsten nur fuer eine { ChartDataSaldoVerlauf s = new ChartDataSaldoVerlauf(k, date); ChartDataSaldoTrend t = new ChartDataSaldoTrend(); t.add(s.getData()); chart.addData(s); chart.addData(t); } if (event != null) chart.redraw(); // nur neu laden, wenn via Select ausgeloest kPrev = k; startPrev = start; } catch (Exception e) { Logger.error("unable to redraw chart", e); Application.getMessagingFactory() .sendMessage( new StatusBarMessage( i18n.tr("Fehler beim Aktualisieren des Saldo-Verlaufs"), StatusBarMessage.TYPE_ERROR)); } }