From 48c9947306f880dbdcbfa436496ec7238c963a56 Mon Sep 17 00:00:00 2001 From: lenilsas <167138849+lenilsas@users.noreply.github.com> Date: Fri, 27 Sep 2024 08:48:10 +0200 Subject: [PATCH] =?UTF-8?q?Split=20Betr=C3=A4ge=20vorbelegen,=20speichern?= =?UTF-8?q?=20und=20Weiter,=20Speichern=20und=20zur=C3=BCck=20(#328)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Split Beträge vorbelegen, speichern und Wieter, Speichern und zurück Button * Button Icons geändert --- .../gui/action/SplitbuchungNeuAction.java | 2 + .../JVerein/gui/view/BuchungView.java | 58 +++++++++++++++++-- .../JVerein/io/SplitbuchungsContainer.java | 2 +- 3 files changed, 56 insertions(+), 6 deletions(-) diff --git a/src/de/jost_net/JVerein/gui/action/SplitbuchungNeuAction.java b/src/de/jost_net/JVerein/gui/action/SplitbuchungNeuAction.java index 87627017b..6850191d3 100644 --- a/src/de/jost_net/JVerein/gui/action/SplitbuchungNeuAction.java +++ b/src/de/jost_net/JVerein/gui/action/SplitbuchungNeuAction.java @@ -48,8 +48,10 @@ public void handleAction(Object context) buch.setSplitId(Long.valueOf(master.getID())); buch.setUmsatzid(master.getUmsatzid()); buch.setZweck(master.getZweck()); + buch.setBuchungsart(Long.parseLong(master.getBuchungsart().getID())); buch.setSpeicherung(false); buch.setSplitTyp(SplitbuchungTyp.SPLIT); + buch.setBetrag(SplitbuchungsContainer.getSumme(SplitbuchungTyp.HAUPT).doubleValue() - SplitbuchungsContainer.getSumme(SplitbuchungTyp.SPLIT).doubleValue()); GUI.startView(BuchungView.class, buch); } catch (RemoteException e) diff --git a/src/de/jost_net/JVerein/gui/view/BuchungView.java b/src/de/jost_net/JVerein/gui/view/BuchungView.java index d383bcf35..845e8ff6c 100644 --- a/src/de/jost_net/JVerein/gui/view/BuchungView.java +++ b/src/de/jost_net/JVerein/gui/view/BuchungView.java @@ -18,9 +18,12 @@ import de.jost_net.JVerein.gui.action.BuchungNeuAction; import de.jost_net.JVerein.gui.action.DokumentationAction; +import de.jost_net.JVerein.gui.action.SplitbuchungNeuAction; import de.jost_net.JVerein.gui.control.BuchungsControl; +import de.jost_net.JVerein.io.SplitbuchungsContainer; import de.jost_net.JVerein.gui.parts.BuchungPart; import de.willuhn.jameica.gui.AbstractView; +import de.willuhn.jameica.gui.Action; import de.willuhn.jameica.gui.GUI; import de.willuhn.jameica.gui.parts.Button; import de.willuhn.jameica.gui.parts.ButtonArea; @@ -44,12 +47,57 @@ public void bind() throws Exception DokumentationUtil.BUCHUNGEN, false, "question-circle.png"); if (control.getBuchung().getSpeicherung()) { - buttons.addButton("Neu", new BuchungNeuAction(), null, false, "document-new.png"); + buttons.addButton("Neu", new BuchungNeuAction(), null, false, + "document-new.png"); + } + Button saveButton = null; + if (control.getBuchung().getSplitTyp() != null) + { + saveButton = new Button("Speichern", new Action() + { + @Override + public void handleAction(Object context) + { + try + { + control.getBuchungSpeichernAction().handleAction(context); + GUI.startView(SplitBuchungView.class.getName(), SplitbuchungsContainer.getMaster()); + } + catch (Exception e) + { + GUI.getStatusBar().setErrorText(e.getMessage()); + } + } + }, null, true, "document-save.png"); + saveButton.setEnabled(!buchungabgeschlossen); + buttons.addButton(saveButton); + + Button saveNextButton = new Button("Speichern und nächste", new Action() + { + @Override + public void handleAction(Object context) + { + try + { + control.getBuchungSpeichernAction().handleAction(context); + new SplitbuchungNeuAction().handleAction(context); + } + catch (Exception e) + { + GUI.getStatusBar().setErrorText(e.getMessage()); + } + } + }, null, true, "go-next.png"); + saveNextButton.setEnabled(!buchungabgeschlossen); + buttons.addButton(saveNextButton); + } + else + { + saveButton = new Button("Speichern", control.getBuchungSpeichernAction(), + null, true, "document-save.png"); + saveButton.setEnabled(!buchungabgeschlossen); + buttons.addButton(saveButton); } - Button savButton = new Button("Speichern", - control.getBuchungSpeichernAction(), null, true, "document-save.png"); - savButton.setEnabled(!buchungabgeschlossen); - buttons.addButton(savButton); buttons.paint(getParent()); } } diff --git a/src/de/jost_net/JVerein/io/SplitbuchungsContainer.java b/src/de/jost_net/JVerein/io/SplitbuchungsContainer.java index 0de792014..3b15792cf 100644 --- a/src/de/jost_net/JVerein/io/SplitbuchungsContainer.java +++ b/src/de/jost_net/JVerein/io/SplitbuchungsContainer.java @@ -188,7 +188,7 @@ public static void store() throws RemoteException, ApplicationException if (!differenz.equals(BigDecimal.valueOf(0).setScale(2))) { throw new RemoteException( - "Differenz zwischen Hauptbuchung und Gegenbuchungen: " + differenz); + "Differenz zwischen Hauptbuchung und Splitbuchungen: " + differenz); } Buchungsart ba_haupt = null;