1 /* ******************************************************************** **
2 ** Copyright notice **
3 ** **
4 ** (c) 2003 WiSim Development Team **
5 ** http://wisim.sourceforge.net/ **
6 ** **
7 ** All rights reserved **
8 ** **
9 ** This script is part of the WiSim Business Game project. The WiSim **
10 ** project is free software; you can redistribute it and/or modify **
11 ** it under the terms of the GNU General Public License as published by **
12 ** the Free Software Foundation; either version 2 of the License, or **
13 ** (at your option) any later version. **
14 ** **
15 ** The GNU General Public License can be found at **
16 ** http://www.gnu.org/copyleft/gpl.html. **
17 ** A copy is found in the textfile GPL.txt and important notices to the **
18 ** license from the team is found in the textfile LICENSE.txt distributed **
19 ** in these package. **
20 ** **
21 ** This copyright notice MUST APPEAR in all copies of the file! **
22 ** ******************************************************************** */
23
24 /** JPanelNeuerVertrag
25 *
26 * @author Kay Patzwald und Denise Freitag
27 * Created on 10. Februar 2003, 18:43
28 */
29
30 package net.sourceforge.wisim.controller;
31
32 import java.text.DecimalFormat;
33 import java.text.ParseException;
34 import java.util.Calendar;
35 import java.util.Collection;
36 import java.util.GregorianCalendar;
37 import java.util.Hashtable;
38 import java.util.Iterator;
39 import java.util.Vector;
40 import java.util.logging.Level;
41
42 import javax.swing.DefaultComboBoxModel;
43 import javax.swing.JOptionPane;
44 import javax.swing.JPanel;
45
46 import net.sourceforge.wisim.dao.WiSimDAO;
47 import net.sourceforge.wisim.dao.WiSimDAOException;
48 import net.sourceforge.wisim.dao.WiSimDAOWriteException;
49 import net.sourceforge.wisim.model.Artikel;
50 import net.sourceforge.wisim.model.AuftragsPosition;
51 import net.sourceforge.wisim.model.Auftragsrechnung;
52 import net.sourceforge.wisim.model.Kunde;
53 import net.sourceforge.wisim.model.Vertrag;
54
55 /**
56 * @author Denise Freitag
57 */
58 public class JPanelNeuerVertrag extends JPanel {
59 private WiSimDAO dao;
60 private Hashtable kundeObjekt;
61 private Hashtable kundenTabelle;
62 private Hashtable artikelTabelle;
63 private Hashtable artikelObjekt;
64 private Vector artikel;
65 private float mwst;
66 private double rabattwert;
67 private double skontowert;
68 private double angebotsPreis;
69 private double stueckPreis;
70 private double zwischensum1;
71 private long mengenwert;
72 private boolean skontofrist;
73 private Validator validate;
74 private WiSimMainController wiSimMainController;
75 //Logger
76 private WiSimLogger wiSimLogger;
77 private DecimalFormat form;
78
79 /** Creates new form JPanelNeuerVertrag */
80 public JPanelNeuerVertrag(WiSimMainController wiSimMainController) {
81 this.wiSimMainController = wiSimMainController;
82 initDAO(wiSimMainController);
83 kundeObjekt = new Hashtable();
84 kundenTabelle = new Hashtable();
85 artikelTabelle = new Hashtable();
86 artikelObjekt = new Hashtable();
87 artikel = new Vector();
88 validate = new Validator();
89 rabattwert = 0;
90 skontowert = 0;
91 mengenwert = 0;
92 angebotsPreis = 0;
93 zwischensum1 = 0;
94 stueckPreis = 0;
95 skontofrist = false;
96 initComponents();
97 ladeMwSt();
98 form = new DecimalFormat("###,##0.00");
99 }
100
101 private void initDAO(WiSimMainController wiSimMainController) {
102 dao = wiSimMainController.getDAO();
103 }
104
105 /** This method is called from within the constructor to
106 * initialize the form.
107 * WARNING: Do NOT modify this code. The content of this method is
108 * always regenerated by the Form Editor.
109 */
110 private void initComponents() {//GEN-BEGIN:initComponents
111 jOptionAlert = new javax.swing.JOptionPane();
112 jOptionPaneConfirm = new javax.swing.JOptionPane();
113 jLabelNeuerVertrag = new javax.swing.JLabel();
114 jPanelKundeWaehlen = new javax.swing.JPanel();
115 jLabelKunde = new javax.swing.JLabel();
116 jComboBoxKunde = new javax.swing.JComboBox();
117 jPanelKundendaten = new javax.swing.JPanel();
118 jLabelNeuerVertragKundenTyp = new javax.swing.JLabel();
119 jTextFieldNeuerVertragKundentyp = new javax.swing.JTextField();
120 jLabelNeuerVertragAnsprueche = new javax.swing.JLabel();
121 jTextFieldNeuerVertragAnsprueche = new javax.swing.JTextField();
122 jLabelNeuerVertragZahlungsmoral = new javax.swing.JLabel();
123 jTextFieldNeuerVertragZahlungsmoral = new javax.swing.JTextField();
124 jLabelNeuerVertragAnzahlVertraege = new javax.swing.JLabel();
125 jTextFieldNeuerVertragAnzahlVertraege = new javax.swing.JTextField();
126 jPanelArtikelWaehlen = new javax.swing.JPanel();
127 jLabelArtikel = new javax.swing.JLabel();
128 jComboBoxArtikel = new javax.swing.JComboBox();
129 jLabelNeuerVertragAbnahmemenge = new javax.swing.JLabel();
130 jTextFieldNeuerVertragAbnahmemenge = new javax.swing.JTextField();
131 jLabelZwischensumme1 = new javax.swing.JLabel();
132 jTextFieldNeuerVertragIntermediateResult1 = new javax.swing.JTextField();
133 jLabelEUR1 = new javax.swing.JLabel();
134 jSeparator1 = new javax.swing.JSeparator();
135 jLabelStueckpreis = new javax.swing.JLabel();
136 jTextFieldNeuerVertragStueckpreis = new javax.swing.JTextField();
137 jLabelEUR2 = new javax.swing.JLabel();
138 jPanelBestelldatenEingeben = new javax.swing.JPanel();
139 jLabelNeuerVertragLieferdatum = new javax.swing.JLabel();
140 jTextFieldNeuerVertragTag = new javax.swing.JTextField();
141 jTextFieldNeuerVertragMonat = new javax.swing.JTextField();
142 jTextFieldNeuerVertragJahr = new javax.swing.JTextField();
143 jLabelRabatt = new javax.swing.JLabel();
144 jTextFieldRabatt = new javax.swing.JTextField();
145 jLabelSkonto = new javax.swing.JLabel();
146 jTextFieldSkonto = new javax.swing.JTextField();
147 jLabelNeuerVertragNettozahldatum = new javax.swing.JLabel();
148 jLabelProzent2 = new javax.swing.JLabel();
149 jLabelSkontofrist = new javax.swing.JLabel();
150 jTextFieldSkontofristTage = new javax.swing.JTextField();
151 jLabelTage = new javax.swing.JLabel();
152 jLabelProzent1 = new javax.swing.JLabel();
153 jTextFieldNeuerVertragNettozahldatum = new javax.swing.JTextField();
154 jPanelAngebotspreis = new javax.swing.JPanel();
155 jLabelZwischensumme2 = new javax.swing.JLabel();
156 jTextFieldNeuerVertragIntermediateResult2 = new javax.swing.JTextField();
157 jLabelEUR = new javax.swing.JLabel();
158 jTextFieldMwst = new javax.swing.JTextField();
159 jLabelProzent = new javax.swing.JLabel();
160 jLabelMwst = new javax.swing.JLabel();
161 jTextFieldNeuerVertragAngebotspreisMwST = new javax.swing.JTextField();
162 jLabelRabatt2 = new javax.swing.JLabel();
163 jTextFieldNeuerVertragAngebotspreisOhneRabatt = new javax.swing.JTextField();
164 jLabelSkonto2 = new javax.swing.JLabel();
165 jTextFieldNeuerVertragAngebotspreisOhneSkonto = new javax.swing.JTextField();
166 jLabelEUR3 = new javax.swing.JLabel();
167 jLabelEUR4 = new javax.swing.JLabel();
168 jLabelEUR5 = new javax.swing.JLabel();
169 jLabelZwischensumme3 = new javax.swing.JLabel();
170 jTextFieldNeuerVertragIntermediateResult3 = new javax.swing.JTextField();
171 jLabelEUR6 = new javax.swing.JLabel();
172 jTextFieldNeuerVertragAngebotspreis = new javax.swing.JTextField();
173 jLabelAngebotspreis = new javax.swing.JLabel();
174 jLabelEUR7 = new javax.swing.JLabel();
175 jSeparator2 = new javax.swing.JSeparator();
176 jSeparator3 = new javax.swing.JSeparator();
177 jLabelMinus = new javax.swing.JLabel();
178 jLabelGleich = new javax.swing.JLabel();
179 jLabelMinus2 = new javax.swing.JLabel();
180 jLabelGleich2 = new javax.swing.JLabel();
181 jLabelGleich3 = new javax.swing.JLabel();
182 jButtonNeuerVertragSpeichern = new javax.swing.JButton();
183 jButtonNeuerVertragAbbrechen = new javax.swing.JButton();
184
185 jOptionAlert.setMessageType(0);
186 jOptionPaneConfirm.setMessageType(0);
187
188 setLayout(null);
189
190 jLabelNeuerVertrag.setFont(new java.awt.Font("Dialog", 1, 24));
191 jLabelNeuerVertrag.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
192 jLabelNeuerVertrag.setText("Neuer Vertrag");
193 add(jLabelNeuerVertrag);
194 jLabelNeuerVertrag.setBounds(0, 0, 810, 40);
195
196 jPanelKundeWaehlen.setLayout(null);
197
198 jPanelKundeWaehlen.setBorder(new javax.swing.border.TitledBorder("1. Kunden ausw\u00e4hlen"));
199 jLabelKunde.setFont(new java.awt.Font("Dialog", 1, 14));
200 jLabelKunde.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
201 jLabelKunde.setText("Kunde");
202 jPanelKundeWaehlen.add(jLabelKunde);
203 jLabelKunde.setBounds(40, 30, 80, 19);
204
205 jComboBoxKunde.addActionListener(new java.awt.event.ActionListener() {
206 public void actionPerformed(java.awt.event.ActionEvent evt) {
207 jComboBoxKundeActionPerformed(evt);
208 }
209 });
210 jComboBoxKunde.addAncestorListener(new javax.swing.event.AncestorListener() {
211 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
212 }
213 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
214 jComboBoxKundeAncestorAdded(evt);
215 }
216 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
217 }
218 });
219
220 jPanelKundeWaehlen.add(jComboBoxKunde);
221 jComboBoxKunde.setBounds(170, 30, 170, 20);
222
223 jPanelKundendaten.setLayout(null);
224
225 jPanelKundendaten.setBorder(new javax.swing.border.TitledBorder(null, "Kundendaten", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Dialog", 1, 10)));
226 jLabelNeuerVertragKundenTyp.setText("Kundentyp");
227 jPanelKundendaten.add(jLabelNeuerVertragKundenTyp);
228 jLabelNeuerVertragKundenTyp.setBounds(20, 20, 60, 16);
229
230 jTextFieldNeuerVertragKundentyp.setEditable(false);
231 jTextFieldNeuerVertragKundentyp.setHorizontalAlignment(javax.swing.JTextField.CENTER);
232 jPanelKundendaten.add(jTextFieldNeuerVertragKundentyp);
233 jTextFieldNeuerVertragKundentyp.setBounds(150, 20, 20, 20);
234
235 jLabelNeuerVertragAnsprueche.setText("Anspr\u00fcche");
236 jPanelKundendaten.add(jLabelNeuerVertragAnsprueche);
237 jLabelNeuerVertragAnsprueche.setBounds(20, 50, 62, 16);
238
239 jTextFieldNeuerVertragAnsprueche.setEditable(false);
240 jTextFieldNeuerVertragAnsprueche.setHorizontalAlignment(javax.swing.JTextField.CENTER);
241 jPanelKundendaten.add(jTextFieldNeuerVertragAnsprueche);
242 jTextFieldNeuerVertragAnsprueche.setBounds(150, 50, 130, 20);
243
244 jLabelNeuerVertragZahlungsmoral.setText("Zahlungsmoral");
245 jPanelKundendaten.add(jLabelNeuerVertragZahlungsmoral);
246 jLabelNeuerVertragZahlungsmoral.setBounds(20, 80, 90, 16);
247
248 jTextFieldNeuerVertragZahlungsmoral.setEditable(false);
249 jTextFieldNeuerVertragZahlungsmoral.setHorizontalAlignment(javax.swing.JTextField.CENTER);
250 jPanelKundendaten.add(jTextFieldNeuerVertragZahlungsmoral);
251 jTextFieldNeuerVertragZahlungsmoral.setBounds(150, 80, 20, 20);
252
253 jLabelNeuerVertragAnzahlVertraege.setText("weitere Vertr\u00e4ge");
254 jPanelKundendaten.add(jLabelNeuerVertragAnzahlVertraege);
255 jLabelNeuerVertragAnzahlVertraege.setBounds(20, 110, 100, 16);
256
257 jTextFieldNeuerVertragAnzahlVertraege.setEditable(false);
258 jTextFieldNeuerVertragAnzahlVertraege.setHorizontalAlignment(javax.swing.JTextField.CENTER);
259 jPanelKundendaten.add(jTextFieldNeuerVertragAnzahlVertraege);
260 jTextFieldNeuerVertragAnzahlVertraege.setBounds(150, 110, 20, 20);
261
262 jPanelKundeWaehlen.add(jPanelKundendaten);
263 jPanelKundendaten.setBounds(30, 60, 310, 140);
264
265 add(jPanelKundeWaehlen);
266 jPanelKundeWaehlen.setBounds(40, 50, 360, 210);
267
268 jPanelArtikelWaehlen.setLayout(null);
269
270 jPanelArtikelWaehlen.setBorder(new javax.swing.border.TitledBorder("2. Artikel ausw\u00e4hlen"));
271 jLabelArtikel.setFont(new java.awt.Font("Dialog", 1, 14));
272 jLabelArtikel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
273 jLabelArtikel.setText("Artikel");
274 jPanelArtikelWaehlen.add(jLabelArtikel);
275 jLabelArtikel.setBounds(40, 40, 80, 19);
276
277 jComboBoxArtikel.addActionListener(new java.awt.event.ActionListener() {
278 public void actionPerformed(java.awt.event.ActionEvent evt) {
279 jComboBoxArtikelActionPerformed(evt);
280 }
281 });
282 jComboBoxArtikel.addAncestorListener(new javax.swing.event.AncestorListener() {
283 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
284 }
285 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
286 jComboBoxArtikelAncestorAdded(evt);
287 }
288 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
289 }
290 });
291
292 jPanelArtikelWaehlen.add(jComboBoxArtikel);
293 jComboBoxArtikel.setBounds(150, 40, 150, 20);
294
295 jLabelNeuerVertragAbnahmemenge.setFont(new java.awt.Font("Dialog", 1, 14));
296 jLabelNeuerVertragAbnahmemenge.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
297 jLabelNeuerVertragAbnahmemenge.setText("Abnahmemenge");
298 jPanelArtikelWaehlen.add(jLabelNeuerVertragAbnahmemenge);
299 jLabelNeuerVertragAbnahmemenge.setBounds(30, 130, 120, 16);
300
301 jTextFieldNeuerVertragAbnahmemenge.setDocument(new JTextFieldValidation(10));
302 jTextFieldNeuerVertragAbnahmemenge.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
303 jTextFieldNeuerVertragAbnahmemenge.addFocusListener(new java.awt.event.FocusAdapter() {
304 public void focusLost(java.awt.event.FocusEvent evt) {
305 jTextFieldNeuerVertragAbnahmemengeFocusLost(evt);
306 }
307 });
308
309 jPanelArtikelWaehlen.add(jTextFieldNeuerVertragAbnahmemenge);
310 jTextFieldNeuerVertragAbnahmemenge.setBounds(180, 130, 120, 20);
311
312 jLabelZwischensumme1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
313 jLabelZwischensumme1.setText("Zwischensumme 1");
314 jPanelArtikelWaehlen.add(jLabelZwischensumme1);
315 jLabelZwischensumme1.setBounds(30, 170, 120, 16);
316
317 jTextFieldNeuerVertragIntermediateResult1.setEditable(false);
318 jTextFieldNeuerVertragIntermediateResult1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
319 jPanelArtikelWaehlen.add(jTextFieldNeuerVertragIntermediateResult1);
320 jTextFieldNeuerVertragIntermediateResult1.setBounds(180, 170, 120, 20);
321
322 jLabelEUR1.setFont(new java.awt.Font("Dialog", 1, 18));
323 jLabelEUR1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
324 jLabelEUR1.setText("\u20ac");
325 jPanelArtikelWaehlen.add(jLabelEUR1);
326 jLabelEUR1.setBounds(310, 170, 10, 20);
327
328 jPanelArtikelWaehlen.add(jSeparator1);
329 jSeparator1.setBounds(30, 160, 290, 10);
330
331 jLabelStueckpreis.setFont(new java.awt.Font("Dialog", 1, 14));
332 jLabelStueckpreis.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
333 jLabelStueckpreis.setText("St\u00fcckpreis");
334 jPanelArtikelWaehlen.add(jLabelStueckpreis);
335 jLabelStueckpreis.setBounds(30, 100, 80, 20);
336
337 jTextFieldNeuerVertragStueckpreis.setEditable(false);
338 jTextFieldNeuerVertragStueckpreis.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
339 jPanelArtikelWaehlen.add(jTextFieldNeuerVertragStueckpreis);
340 jTextFieldNeuerVertragStueckpreis.setBounds(180, 100, 120, 20);
341
342 jLabelEUR2.setFont(new java.awt.Font("Dialog", 1, 18));
343 jLabelEUR2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
344 jLabelEUR2.setText("\u20ac");
345 jPanelArtikelWaehlen.add(jLabelEUR2);
346 jLabelEUR2.setBounds(310, 100, 10, 20);
347
348 add(jPanelArtikelWaehlen);
349 jPanelArtikelWaehlen.setBounds(410, 50, 340, 210);
350
351 jPanelBestelldatenEingeben.setLayout(null);
352
353 jPanelBestelldatenEingeben.setBorder(new javax.swing.border.TitledBorder("3. Bestelldaten eingeben"));
354 jLabelNeuerVertragLieferdatum.setFont(new java.awt.Font("Dialog", 1, 14));
355 jLabelNeuerVertragLieferdatum.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
356 jLabelNeuerVertragLieferdatum.setText("Lieferdatum");
357 jPanelBestelldatenEingeben.add(jLabelNeuerVertragLieferdatum);
358 jLabelNeuerVertragLieferdatum.setBounds(40, 40, 90, 19);
359
360 jTextFieldNeuerVertragTag.setDocument(new JTextFieldValidation(2));
361 jTextFieldNeuerVertragTag.setHorizontalAlignment(javax.swing.JTextField.CENTER);
362 jTextFieldNeuerVertragTag.addFocusListener(new java.awt.event.FocusAdapter() {
363 public void focusLost(java.awt.event.FocusEvent evt) {
364 jTextFieldNeuerVertragTagFocusLost(evt);
365 }
366 });
367
368 jPanelBestelldatenEingeben.add(jTextFieldNeuerVertragTag);
369 jTextFieldNeuerVertragTag.setBounds(180, 40, 30, 20);
370
371 jTextFieldNeuerVertragMonat.setDocument(new JTextFieldValidation(2));
372 jTextFieldNeuerVertragMonat.setHorizontalAlignment(javax.swing.JTextField.CENTER);
373 jTextFieldNeuerVertragMonat.addFocusListener(new java.awt.event.FocusAdapter() {
374 public void focusLost(java.awt.event.FocusEvent evt) {
375 jTextFieldNeuerVertragMonatFocusLost(evt);
376 }
377 });
378
379 jPanelBestelldatenEingeben.add(jTextFieldNeuerVertragMonat);
380 jTextFieldNeuerVertragMonat.setBounds(210, 40, 30, 20);
381
382 jTextFieldNeuerVertragJahr.setDocument(new JTextFieldValidation(4));
383 jTextFieldNeuerVertragJahr.setHorizontalAlignment(javax.swing.JTextField.CENTER);
384 jTextFieldNeuerVertragJahr.addFocusListener(new java.awt.event.FocusAdapter() {
385 public void focusLost(java.awt.event.FocusEvent evt) {
386 jTextFieldNeuerVertragJahrFocusLost(evt);
387 }
388 });
389
390 jPanelBestelldatenEingeben.add(jTextFieldNeuerVertragJahr);
391 jTextFieldNeuerVertragJahr.setBounds(240, 40, 50, 20);
392
393 jLabelRabatt.setFont(new java.awt.Font("Dialog", 1, 14));
394 jLabelRabatt.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
395 jLabelRabatt.setText("Rabatt");
396 jPanelBestelldatenEingeben.add(jLabelRabatt);
397 jLabelRabatt.setBounds(40, 70, 50, 20);
398
399 jTextFieldRabatt.setDocument(new JTextFieldValidation(5));
400 jTextFieldRabatt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
401 jTextFieldRabatt.addFocusListener(new java.awt.event.FocusAdapter() {
402 public void focusLost(java.awt.event.FocusEvent evt) {
403 jTextFieldRabattFocusLost(evt);
404 }
405 });
406
407 jPanelBestelldatenEingeben.add(jTextFieldRabatt);
408 jTextFieldRabatt.setBounds(180, 70, 40, 20);
409
410 jLabelSkonto.setFont(new java.awt.Font("Dialog", 1, 14));
411 jLabelSkonto.setText("Skonto");
412 jPanelBestelldatenEingeben.add(jLabelSkonto);
413 jLabelSkonto.setBounds(40, 100, 60, 16);
414
415 jTextFieldSkonto.setDocument(new JTextFieldValidation(5));
416 jTextFieldSkonto.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
417 jTextFieldSkonto.addFocusListener(new java.awt.event.FocusAdapter() {
418 public void focusLost(java.awt.event.FocusEvent evt) {
419 jTextFieldSkontoFocusLost(evt);
420 }
421 });
422
423 jPanelBestelldatenEingeben.add(jTextFieldSkonto);
424 jTextFieldSkonto.setBounds(180, 100, 40, 20);
425
426 jLabelNeuerVertragNettozahldatum.setFont(new java.awt.Font("Dialog", 1, 14));
427 jLabelNeuerVertragNettozahldatum.setText("Nettozahldatum");
428 jPanelBestelldatenEingeben.add(jLabelNeuerVertragNettozahldatum);
429 jLabelNeuerVertragNettozahldatum.setBounds(40, 160, 110, 19);
430
431 jLabelProzent2.setFont(new java.awt.Font("Dialog", 1, 14));
432 jLabelProzent2.setText("%");
433 jPanelBestelldatenEingeben.add(jLabelProzent2);
434 jLabelProzent2.setBounds(230, 100, 10, 19);
435
436 jLabelSkontofrist.setFont(new java.awt.Font("Dialog", 1, 14));
437 jLabelSkontofrist.setText("Skontofrist");
438 jPanelBestelldatenEingeben.add(jLabelSkontofrist);
439 jLabelSkontofrist.setBounds(40, 130, 80, 19);
440
441 jTextFieldSkontofristTage.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
442 jTextFieldSkontofristTage.addFocusListener(new java.awt.event.FocusAdapter() {
443 public void focusLost(java.awt.event.FocusEvent evt) {
444 jTextFieldSkontofristTageFocusLost(evt);
445 }
446 });
447
448 jPanelBestelldatenEingeben.add(jTextFieldSkontofristTage);
449 jTextFieldSkontofristTage.setBounds(180, 130, 40, 20);
450
451 jLabelTage.setFont(new java.awt.Font("Dialog", 1, 14));
452 jLabelTage.setText("Tage");
453 jPanelBestelldatenEingeben.add(jLabelTage);
454 jLabelTage.setBounds(230, 130, 34, 19);
455
456 jLabelProzent1.setFont(new java.awt.Font("Dialog", 1, 14));
457 jLabelProzent1.setText("%");
458 jPanelBestelldatenEingeben.add(jLabelProzent1);
459 jLabelProzent1.setBounds(230, 70, 10, 19);
460
461 jTextFieldNeuerVertragNettozahldatum.setEditable(false);
462 jTextFieldNeuerVertragNettozahldatum.setHorizontalAlignment(javax.swing.JTextField.CENTER);
463 jPanelBestelldatenEingeben.add(jTextFieldNeuerVertragNettozahldatum);
464 jTextFieldNeuerVertragNettozahldatum.setBounds(180, 160, 110, 20);
465
466 add(jPanelBestelldatenEingeben);
467 jPanelBestelldatenEingeben.setBounds(40, 270, 360, 230);
468
469 jPanelAngebotspreis.setLayout(null);
470
471 jPanelAngebotspreis.setBorder(new javax.swing.border.TitledBorder("4. Vertrag"));
472 jLabelZwischensumme2.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
473 jLabelZwischensumme2.setText("Zwischensumme 2");
474 jPanelAngebotspreis.add(jLabelZwischensumme2);
475 jLabelZwischensumme2.setBounds(10, 30, 110, 20);
476
477 jTextFieldNeuerVertragIntermediateResult2.setEditable(false);
478 jTextFieldNeuerVertragIntermediateResult2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
479 jPanelAngebotspreis.add(jTextFieldNeuerVertragIntermediateResult2);
480 jTextFieldNeuerVertragIntermediateResult2.setBounds(150, 30, 150, 20);
481
482 jLabelEUR.setFont(new java.awt.Font("Dialog", 1, 18));
483 jLabelEUR.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
484 jLabelEUR.setText("\u20ac");
485 jPanelAngebotspreis.add(jLabelEUR);
486 jLabelEUR.setBounds(310, 30, 10, 20);
487
488 jTextFieldMwst.setEditable(false);
489 jTextFieldMwst.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
490 jPanelAngebotspreis.add(jTextFieldMwst);
491 jTextFieldMwst.setBounds(80, 200, 30, 20);
492
493 jLabelProzent.setFont(new java.awt.Font("Dialog", 1, 14));
494 jLabelProzent.setText("%");
495 jPanelAngebotspreis.add(jLabelProzent);
496 jLabelProzent.setBounds(110, 200, 10, 19);
497
498 jLabelMwst.setText("Incl. MwSt");
499 jPanelAngebotspreis.add(jLabelMwst);
500 jLabelMwst.setBounds(10, 200, 60, 20);
501
502 jTextFieldNeuerVertragAngebotspreisMwST.setEditable(false);
503 jTextFieldNeuerVertragAngebotspreisMwST.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
504 jPanelAngebotspreis.add(jTextFieldNeuerVertragAngebotspreisMwST);
505 jTextFieldNeuerVertragAngebotspreisMwST.setBounds(150, 200, 150, 20);
506
507 jLabelRabatt2.setText("Abzg. Rabatt");
508 jPanelAngebotspreis.add(jLabelRabatt2);
509 jLabelRabatt2.setBounds(10, 60, 90, 20);
510
511 jTextFieldNeuerVertragAngebotspreisOhneRabatt.setEditable(false);
512 jTextFieldNeuerVertragAngebotspreisOhneRabatt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
513 jPanelAngebotspreis.add(jTextFieldNeuerVertragAngebotspreisOhneRabatt);
514 jTextFieldNeuerVertragAngebotspreisOhneRabatt.setBounds(150, 60, 150, 20);
515
516 jLabelSkonto2.setText("Abzg. Skonto");
517 jPanelAngebotspreis.add(jLabelSkonto2);
518 jLabelSkonto2.setBounds(10, 130, 90, 20);
519
520 jTextFieldNeuerVertragAngebotspreisOhneSkonto.setEditable(false);
521 jTextFieldNeuerVertragAngebotspreisOhneSkonto.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
522 jPanelAngebotspreis.add(jTextFieldNeuerVertragAngebotspreisOhneSkonto);
523 jTextFieldNeuerVertragAngebotspreisOhneSkonto.setBounds(150, 130, 150, 20);
524
525 jLabelEUR3.setFont(new java.awt.Font("Dialog", 1, 18));
526 jLabelEUR3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
527 jLabelEUR3.setText("\u20ac");
528 jPanelAngebotspreis.add(jLabelEUR3);
529 jLabelEUR3.setBounds(310, 60, 10, 20);
530
531 jLabelEUR4.setFont(new java.awt.Font("Dialog", 1, 18));
532 jLabelEUR4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
533 jLabelEUR4.setText("\u20ac");
534 jPanelAngebotspreis.add(jLabelEUR4);
535 jLabelEUR4.setBounds(310, 130, 10, 20);
536
537 jLabelEUR5.setFont(new java.awt.Font("Dialog", 1, 18));
538 jLabelEUR5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
539 jLabelEUR5.setText("\u20ac");
540 jPanelAngebotspreis.add(jLabelEUR5);
541 jLabelEUR5.setBounds(310, 200, 10, 20);
542
543 jLabelZwischensumme3.setText("Zwischensumme 3");
544 jPanelAngebotspreis.add(jLabelZwischensumme3);
545 jLabelZwischensumme3.setBounds(10, 100, 110, 20);
546
547 jTextFieldNeuerVertragIntermediateResult3.setEditable(false);
548 jTextFieldNeuerVertragIntermediateResult3.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
549 jPanelAngebotspreis.add(jTextFieldNeuerVertragIntermediateResult3);
550 jTextFieldNeuerVertragIntermediateResult3.setBounds(150, 100, 150, 20);
551
552 jLabelEUR6.setFont(new java.awt.Font("Dialog", 1, 18));
553 jLabelEUR6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
554 jLabelEUR6.setText("\u20ac");
555 jPanelAngebotspreis.add(jLabelEUR6);
556 jLabelEUR6.setBounds(310, 100, 10, 20);
557
558 jTextFieldNeuerVertragAngebotspreis.setEditable(false);
559 jTextFieldNeuerVertragAngebotspreis.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
560 jPanelAngebotspreis.add(jTextFieldNeuerVertragAngebotspreis);
561 jTextFieldNeuerVertragAngebotspreis.setBounds(150, 170, 150, 20);
562
563 jLabelAngebotspreis.setText("Angebotspreis");
564 jPanelAngebotspreis.add(jLabelAngebotspreis);
565 jLabelAngebotspreis.setBounds(10, 170, 90, 20);
566
567 jLabelEUR7.setFont(new java.awt.Font("Dialog", 1, 18));
568 jLabelEUR7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
569 jLabelEUR7.setText("\u20ac");
570 jPanelAngebotspreis.add(jLabelEUR7);
571 jLabelEUR7.setBounds(310, 170, 10, 20);
572
573 jPanelAngebotspreis.add(jSeparator2);
574 jSeparator2.setBounds(10, 90, 310, 10);
575
576 jPanelAngebotspreis.add(jSeparator3);
577 jSeparator3.setBounds(10, 160, 310, 10);
578
579 jLabelMinus.setFont(new java.awt.Font("Dialog", 1, 18));
580 jLabelMinus.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
581 jLabelMinus.setText("-");
582 jPanelAngebotspreis.add(jLabelMinus);
583 jLabelMinus.setBounds(130, 60, 20, 20);
584
585 jLabelGleich.setFont(new java.awt.Font("Dialog", 1, 18));
586 jLabelGleich.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
587 jLabelGleich.setText("=");
588 jPanelAngebotspreis.add(jLabelGleich);
589 jLabelGleich.setBounds(130, 100, 20, 20);
590
591 jLabelMinus2.setFont(new java.awt.Font("Dialog", 1, 18));
592 jLabelMinus2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
593 jLabelMinus2.setText("-");
594 jPanelAngebotspreis.add(jLabelMinus2);
595 jLabelMinus2.setBounds(130, 130, 20, 20);
596
597 jLabelGleich2.setFont(new java.awt.Font("Dialog", 1, 18));
598 jLabelGleich2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
599 jLabelGleich2.setText("=");
600 jPanelAngebotspreis.add(jLabelGleich2);
601 jLabelGleich2.setBounds(130, 170, 20, 20);
602
603 jLabelGleich3.setFont(new java.awt.Font("Dialog", 1, 18));
604 jLabelGleich3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
605 jLabelGleich3.setText("=");
606 jPanelAngebotspreis.add(jLabelGleich3);
607 jLabelGleich3.setBounds(130, 200, 20, 20);
608
609 add(jPanelAngebotspreis);
610 jPanelAngebotspreis.setBounds(410, 270, 340, 230);
611
612 jButtonNeuerVertragSpeichern.setFont(new java.awt.Font("Dialog", 1, 11));
613 jButtonNeuerVertragSpeichern.setText("Speichern");
614 jButtonNeuerVertragSpeichern.addActionListener(new java.awt.event.ActionListener() {
615 public void actionPerformed(java.awt.event.ActionEvent evt) {
616 jButtonNeuerVertragSpeichernActionPerformed(evt);
617 }
618 });
619
620 add(jButtonNeuerVertragSpeichern);
621 jButtonNeuerVertragSpeichern.setBounds(260, 510, 120, 25);
622
623 jButtonNeuerVertragAbbrechen.setFont(new java.awt.Font("Dialog", 1, 11));
624 jButtonNeuerVertragAbbrechen.setText("Abbrechen");
625 jButtonNeuerVertragAbbrechen.addActionListener(new java.awt.event.ActionListener() {
626 public void actionPerformed(java.awt.event.ActionEvent evt) {
627 jButtonNeuerVertragAbbrechenActionPerformed(evt);
628 }
629 });
630
631 add(jButtonNeuerVertragAbbrechen);
632 jButtonNeuerVertragAbbrechen.setBounds(430, 510, 120, 25);
633
634 }//GEN-END:initComponents
635
636 private void jTextFieldSkontofristTageFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldSkontofristTageFocusLost
637 pruefeSkontofrist();
638 } //GEN-LAST:event_jTextFieldSkontofristTageFocusLost
639
640 private void jTextFieldNeuerVertragJahrFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldNeuerVertragJahrFocusLost
641 pruefeLieferdatumJahr();
642 } //GEN-LAST:event_jTextFieldNeuerVertragJahrFocusLost
643
644 private void jTextFieldNeuerVertragMonatFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldNeuerVertragMonatFocusLost
645 pruefeLieferdatumMonat();
646 } //GEN-LAST:event_jTextFieldNeuerVertragMonatFocusLost
647
648 private void jTextFieldNeuerVertragTagFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldNeuerVertragTagFocusLost
649 pruefeLieferdatumTag();
650 } //GEN-LAST:event_jTextFieldNeuerVertragTagFocusLost
651
652 private void jComboBoxKundeActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jComboBoxKundeActionPerformed
653 ladeKundendaten();
654 } //GEN-LAST:event_jComboBoxKundeActionPerformed
655
656 private void jTextFieldSkontoFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldSkontoFocusLost
657 pruefeSkonto();
658 calculate();
659 } //GEN-LAST:event_jTextFieldSkontoFocusLost
660
661 private void jTextFieldRabattFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldRabattFocusLost
662 pruefeRabatt();
663 calculate();
664 } //GEN-LAST:event_jTextFieldRabattFocusLost
665
666 private void jTextFieldNeuerVertragAbnahmemengeFocusLost(java.awt.event.FocusEvent evt) { //GEN-FIRST:event_jTextFieldNeuerVertragAbnahmemengeFocusLost
667 pruefeAbnahmemenge();
668 calculate();
669 } //GEN-LAST:event_jTextFieldNeuerVertragAbnahmemengeFocusLost
670
671 private void jComboBoxArtikelActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jComboBoxArtikelActionPerformed
672 ladeStueckpreis();
673 } //GEN-LAST:event_jComboBoxArtikelActionPerformed
674
675 private void jComboBoxArtikelAncestorAdded(javax.swing.event.AncestorEvent evt) { //GEN-FIRST:event_jComboBoxArtikelAncestorAdded
676 ladeArtikel();
677 } //GEN-LAST:event_jComboBoxArtikelAncestorAdded
678
679 private void jComboBoxKundeAncestorAdded(javax.swing.event.AncestorEvent evt) { //GEN-FIRST:event_jComboBoxKundeAncestorAdded
680 ladeKunden();
681 } //GEN-LAST:event_jComboBoxKundeAncestorAdded
682
683 private void jButtonNeuerVertragAbbrechenActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButtonNeuerVertragAbbrechenActionPerformed
684 clearFields();
685 } //GEN-LAST:event_jButtonNeuerVertragAbbrechenActionPerformed
686
687 private void jButtonNeuerVertragSpeichernActionPerformed(java.awt.event.ActionEvent evt) { //GEN-FIRST:event_jButtonNeuerVertragSpeichernActionPerformed
688 speicherVertrag();
689 } //GEN-LAST:event_jButtonNeuerVertragSpeichernActionPerformed
690
691 /**
692 * Method pruefeSkontofrist. ?berpr?ft, ob eine Zahl und das etwas eingegeben wurde.
693 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
694 * aufgefordert.
695 */
696 private void pruefeSkontofrist() {
697
698 String skontofrist = jTextFieldSkontofristTage.getText();
699 boolean skontofristOk = false;
700 if (!skontofrist.equals("") && skontofrist != null) {
701 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird die Skontofrist immer wieder ?berpr?ft
702 while (!skontofristOk && skontofrist != null) {
703 //Erlaubt sind nur Eingaben von Zahlen
704 if (!validate.checkZahl(skontofrist)) {
705 jOptionPaneConfirm.setWantsInput(true);
706 skontofrist = JOptionPane.showInputDialog(this, "Ung?ltige Skontofrist! Bitte neu eingeben:", skontofrist);
707 } else {
708 skontofristOk = true;
709 }
710 }
711 if (skontofrist != null) {
712 jTextFieldSkontofristTage.setText(skontofrist);
713 } else {
714 jTextFieldSkontofristTage.setText("");
715 }
716 }
717
718 //Das Nettozahldatum wird erzeugt
719 if (!jTextFieldSkontofristTage.getText().equals("") && !jTextFieldSkontofristTage.getText().equals("0")) {
720
721 long nettoDatumMili = wiSimMainController.getActDate().getTime() + (Long.parseLong(jTextFieldSkontofristTage.getText()) * 1000 * 60 * 60 * 24);
722 GregorianCalendar nettoDatum = new GregorianCalendar();
723 nettoDatum.setTimeInMillis(nettoDatumMili);
724
725 String Tag = String.valueOf(nettoDatum.get(Calendar.DATE));
726 String Monat = String.valueOf(nettoDatum.get(Calendar.MONTH) + 1);
727 String Jahr = String.valueOf(nettoDatum.get(Calendar.YEAR));
728 jTextFieldNeuerVertragNettozahldatum.setText(Tag + "." + Monat + "." + Jahr);
729 } else {
730 jTextFieldNeuerVertragNettozahldatum.setText("Keins vorhanden!");
731 }
732 }
733
734 /**
735 * Method pruefeSkonto. ?berpr?ft, ob ein korrekter Skontowert eingegeben wurde.
736 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
737 * aufgefordert.
738 */
739 private void pruefeSkonto() {
740
741 String skonto = jTextFieldSkonto.getText();
742
743 //Falls Zahl ohne "." eingegeben wurde wird ".0" erg?nzt
744 if (skonto.matches("^[0-9]{1,2}$")) {
745 skonto = skonto + ".0";
746 jTextFieldSkonto.setText(skonto);
747 }
748
749 //Falls Zahl mit "," statt "." wird "," mit "." ersetzt
750 if (skonto.matches("^[0-9]{1,2}[,][0-9]{1,2}$")) {
751 skonto = skonto.replaceAll(",", ".");
752 jTextFieldSkonto.setText(skonto);
753 }
754
755 boolean skontoOk = false;
756
757 if (!skonto.equals("") && skonto != null) {
758
759 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird der Skontowert immer wieder gepr?ft
760 while (!skontoOk && skonto != null) {
761 /*Erlaubt sind nur Eingaben von 1- oder 2-stellige Zahlen mit 1 Nachkommastelle
762 getrennt durch einen Punkt*/
763
764 if (!validate.checkProzent(skonto)) {
765 jOptionPaneConfirm.setWantsInput(true);
766 skonto = JOptionPane.showInputDialog(this, "Ung?ltiger Skonto-Wert (Format: x.y)! Bitte neu eingeben:", skonto);
767
768 //Falls Zahl ohne "." eingegeben wurde wird ".0" erg?nzt
769 if (skonto != null) {
770 if (skonto.matches("^[0-9]{1,2}$")) {
771 skonto = skonto + ".0";
772 jTextFieldSkonto.setText(skonto);
773 }
774
775 //Falls Zahl mit "," statt "." wird "," mit "." ersetzt
776 if (skonto.matches("^[0-9]{1,2}[,][0-9]{1,2}$")) {
777 skonto = skonto.replaceAll(",", ".");
778 jTextFieldSkonto.setText(skonto);
779 }
780 }
781
782 } else {
783 skontoOk = true;
784 }
785 }
786 if (skonto != null) {
787 jTextFieldSkonto.setText(skonto);
788 skontowert = Double.parseDouble(skonto);
789 } else {
790 jTextFieldSkonto.setText("");
791 skontowert = 0;
792 }
793
794 }
795 }
796
797 /**
798 * Method pruefeRabatt. ?berpr?ft, ob ein korrekter Rabattwert eingegeben wurde.
799 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
800 * aufgefordert.
801 */
802 private void pruefeRabatt() {
803
804 String rabatt = jTextFieldRabatt.getText();
805
806 //Falls Zahl ohne "." eingegeben wurde wird ".0" erg?nzt
807 if (rabatt.matches("^[0-9]{1,2}$")) {
808 rabatt = rabatt + ".0";
809 jTextFieldRabatt.setText(rabatt);
810 }
811
812 //Falls Zahl mit "," statt "." wird "," mit "." ersetzt
813 if (rabatt.matches("^[0-9]{1,2}[,][0-9]{1,2}$")) {
814 rabatt = rabatt.replaceAll(",", ".");
815 jTextFieldRabatt.setText(rabatt);
816 }
817
818 boolean rabattOk = false;
819
820 if (!rabatt.equals("") && rabatt != null) {
821
822 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird der Rabatt immer wieder ?berpr?ft
823 while (!rabattOk && rabatt != null) {
824 /*Erlaubt sind nur Eingaben von 1- oder 2-stellige Zahlen mit 1 Nachkommastelle
825 getrennt durch einen Punkt*/
826
827 if (!validate.checkProzent(rabatt)) {
828 jOptionPaneConfirm.setWantsInput(true);
829 rabatt = JOptionPane.showInputDialog(this, "Ung?ltiger Rabatt (Format: x.y)! Bitte neu eingeben:", rabatt);
830
831 //Falls Zahl ohne "." eingegeben wurde wird ".0" erg?nzt
832 if (rabatt != null) {
833 if (rabatt.matches("^[0-9]{1,2}$")) {
834 rabatt = rabatt + ".0";
835 jTextFieldRabatt.setText(rabatt);
836 }
837
838 //Falls Zahl mit "," statt "." wird "," mit "." ersetzt
839 if (rabatt.matches("^[0-9]{1,2}[,][0-9]{1,2}$")) {
840 rabatt = rabatt.replaceAll(",", ".");
841 jTextFieldRabatt.setText(rabatt);
842 }
843 }
844
845 } else {
846 rabattOk = true;
847 }
848 }
849 if (rabatt != null) {
850 jTextFieldRabatt.setText(rabatt);
851 rabattwert = Double.parseDouble(rabatt);
852 } else {
853 jTextFieldRabatt.setText("");
854 rabattwert = 0;
855 }
856 }
857 }
858
859 /**
860 * Method pruefeLieferdatumTag. ?berpr?ft den eingegebenen Lieferdatumstag.
861 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
862 * aufgefordert.
863 */
864 private void pruefeLieferdatumTag() {
865 String lieferdatum = jTextFieldNeuerVertragTag.getText();
866 boolean lieferdatumOk = false;
867 if (!lieferdatum.equals("") && lieferdatum != null) {
868 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird das Lieferdatum immer wieder ?berpr?ft
869 while (!lieferdatumOk && lieferdatum != null) {
870 //Erlaubt sind nur Eingaben von 1- oder 2-stellige Zahlen
871 if (!validate.checkTwoDigits(lieferdatum) || Integer.parseInt(lieferdatum) > 31) {
872 jOptionPaneConfirm.setWantsInput(true);
873 lieferdatum = JOptionPane.showInputDialog(this, "Ung?ltiger Tag! Bitte neu eingeben:", lieferdatum);
874 } else {
875 lieferdatumOk = true;
876 }
877 }
878 if (lieferdatum != null) {
879 jTextFieldNeuerVertragTag.setText(lieferdatum);
880 } else {
881 jTextFieldNeuerVertragTag.setText("");
882 }
883 }
884 }
885
886 /**
887 * Method pruefeLieferdatumMonat. ?berpr?ft den eingegebenen Lieferdatumsmonat.
888 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
889 * aufgefordert.
890 */
891 private void pruefeLieferdatumMonat() {
892 String lieferdatum = jTextFieldNeuerVertragMonat.getText();
893 boolean lieferdatumOk = false;
894 if (!lieferdatum.equals("") && lieferdatum != null) {
895 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird das Lieferdatum immer wieder ?berpr?ft
896 while (!lieferdatumOk && lieferdatum != null) {
897 //Erlaubt sind nur Eingaben von 1- oder 2-stellige Zahlen || Monatsangabe darf nicht gr??er 12 sein
898 if (!validate.checkTwoDigits(lieferdatum) || Integer.parseInt(lieferdatum) > 12) {
899 jOptionPaneConfirm.setWantsInput(true);
900 lieferdatum = JOptionPane.showInputDialog(this, "Ung?ltiger Monat! Bitte neu eingeben:", lieferdatum);
901 } else {
902 lieferdatumOk = true;
903 }
904 }
905 if (lieferdatum != null) {
906 jTextFieldNeuerVertragMonat.setText(lieferdatum);
907 } else {
908 jTextFieldNeuerVertragMonat.setText("");
909 }
910 }
911 }
912
913 /**
914 * Method pruefeLieferdatumJahr. ?berpr?ft das eingegebene Lieferdatumsjahr.
915 * Wenn vom Benutzer etwas falsches eingegeben wurde, wird er zu Korrektueingabe
916 * aufgefordert.
917 */
918 private void pruefeLieferdatumJahr() {
919 String lieferdatum = jTextFieldNeuerVertragJahr.getText();
920 boolean lieferdatumOk = false;
921 if (!lieferdatum.equals("") && lieferdatum != null) {
922 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird das Lieferdatum immer wieder ?berpr?ft
923 while (!lieferdatumOk && lieferdatum != null) {
924 /*Erlaubt sind nur Eingaben von 4-stelligen Zahlen die nicht mit 0 beginnen*/
925 if (!validate.checkYear(lieferdatum)) {
926 jOptionPaneConfirm.setWantsInput(true);
927 lieferdatum = JOptionPane.showInputDialog(this, "Ung?ltiges Jahr! Bitte neu eingeben:", lieferdatum);
928 } else {
929 lieferdatumOk = true;
930 }
931 }
932 if (lieferdatum != null) {
933 jTextFieldNeuerVertragJahr.setText(lieferdatum);
934 } else {
935 jTextFieldNeuerVertragJahr.setText("");
936 }
937 }
938 }
939
940 /**
941 * Method pruefeAbnahmemenge. ?berpr?ft die Abnahmemenge.
942 * Wenn der Benutzer etwas falsche eingibt, wird er zur Korrektureingabe
943 * gefordert.
944 */
945 private void pruefeAbnahmemenge() {
946
947 angebotsPreis = 0;
948 zwischensum1 = 0;
949
950 String abnahmemenge = jTextFieldNeuerVertragAbnahmemenge.getText();
951 boolean abnahmemengeOk = false;
952 if (!abnahmemenge.equals("") && abnahmemenge != null) {
953 //So lange der Benutzer keine richtige Eingabe gemacht hat und nicht auf Abbrechen geklickt hat wird die Abnahmemenge immer wieder ?berpr?ft
954 while (!abnahmemengeOk && abnahmemenge != null) {
955 /*Erlaubt sind nur Eingaben von Zahlen und nur 10-stellig*/
956 if (!validate.checkZahl(abnahmemenge)) {
957 jOptionPaneConfirm.setWantsInput(true);
958 abnahmemenge = JOptionPane.showInputDialog(this, "Ung?ltige Mengenangabe (Format: 1 - 999)! Bitte neu eingeben:", abnahmemenge);
959 } else {
960 abnahmemengeOk = true;
961 }
962 }
963 if (abnahmemenge != null) {
964 jTextFieldNeuerVertragAbnahmemenge.setText(abnahmemenge);
965 mengenwert = Long.parseLong(abnahmemenge);
966 } else {
967 jTextFieldNeuerVertragAbnahmemenge.setText("");
968 mengenwert = 0;
969 }
970
971 }
972 }
973
974 /** Gets the discount from the form.
975 *
976 * @return double Discount
977 */
978 private double getDiscount() {
979 double discount = 0;
980 if (!jTextFieldRabatt.getText().equals("")) {
981
982 discount = Double.parseDouble(jTextFieldRabatt.getText());
983
984 }
985 return discount;
986 }
987
988 /** Gets the cash discount from the form.
989 *
990 * @return double CashDiscount
991 */
992 private double getCashDiscount() {
993 double cashDiscount = 0;
994 if (!jTextFieldSkonto.getText().equals("")) {
995
996 cashDiscount = Double.parseDouble(jTextFieldSkonto.getText());
997
998 }
999 return cashDiscount;
1000 }
1001
1002 /** Gets the price from the form.
1003 *
1004 * @return double Prise
1005 */
1006 private double getPrice() {
1007 double price = 0;
1008 if (!jTextFieldNeuerVertragStueckpreis.getText().equals("")) {
1009 try {
1010 price = form.parse(jTextFieldNeuerVertragStueckpreis.getText()).doubleValue();
1011 } catch (ParseException e) {
1012 wiSimLogger.log(Level.WARNING,"JPanelNeuerVertrag.getPrice",e,false);
1013 }
1014 }
1015 return price;
1016 }
1017
1018 /** Gets the amount from the form.
1019 *
1020 * @return double Amount
1021 */
1022 private double getAmount() {
1023 int amount = 0;
1024 if (!jTextFieldNeuerVertragAbnahmemenge.getText().equals("")) {
1025 amount = Integer.parseInt(jTextFieldNeuerVertragAbnahmemenge.getText());
1026 }
1027 return amount;
1028 }
1029
1030 /** Calculates the offer price and all intermediate results */
1031 private void calculate() {
1032 double iResult1 = 0, iResult2 = 0, iResult3 = 0;
1033 double discount = 0, cashDiscount = 0, offerPrice = 0, offerPriceWithMwST = 0;
1034 // Calculate intermediate result 1
1035 iResult1 = getPrice() * getAmount();
1036 jTextFieldNeuerVertragIntermediateResult1.setText(form.format(iResult1));
1037 // Calculate intermediate result 2
1038 iResult2 = iResult1;
1039 jTextFieldNeuerVertragIntermediateResult2.setText(form.format(iResult2));
1040 discount = getDiscount() * iResult2 / 100;
1041 jTextFieldNeuerVertragAngebotspreisOhneRabatt.setText(form.format(discount));
1042 // Calculate intermediate result 3
1043 iResult3 = iResult2 - discount;
1044 jTextFieldNeuerVertragIntermediateResult3.setText(form.format(iResult3));
1045 cashDiscount = getCashDiscount() * iResult3 / 100;
1046 jTextFieldNeuerVertragAngebotspreisOhneSkonto.setText(form.format(cashDiscount));
1047 offerPrice = iResult3 - cashDiscount;
1048 jTextFieldNeuerVertragAngebotspreis.setText(form.format(offerPrice));
1049 offerPriceWithMwST = offerPrice + (offerPrice * mwst / 100);
1050 jTextFieldNeuerVertragAngebotspreisMwST.setText(form.format(offerPriceWithMwST));
1051
1052 }
1053
1054 /**
1055 * Method ladeKunden. L?dt alle Kunden aus der Datenbank.
1056 */
1057 private void ladeKunden() {
1058 Collection kunden = null;
1059 try {
1060 kunden = dao.getKunden();
1061 } catch (WiSimDAOException e) {
1062 wiSimLogger.log("ladeKunden()", e);
1063 }
1064
1065 DefaultComboBoxModel model = (DefaultComboBoxModel) jComboBoxKunde.getModel();
1066 model.removeAllElements();
1067 model.addElement("Bitte w?hlen:");
1068
1069 // Verhindert NullPointerException bei einer leeren Liste
1070 if (kunden != null) {
1071 Iterator it = kunden.iterator();
1072 while (it.hasNext()) {
1073 Kunde kunde = (Kunde) it.next();
1074 //Merken des Nachnamen und Vornamen, um diese in die ComboBox einzutragen
1075 String merkeName = String.valueOf(kunde.getVorname()).concat(" ");
1076 merkeName = merkeName.concat(String.valueOf(kunde.getNachname()));
1077 model.addElement(merkeName);
1078 kundeObjekt.put(String.valueOf(kunde.getId()), kunde);
1079 kundenTabelle.put(kunde.getNachname(), String.valueOf(kunde.getId()));
1080 }
1081 jComboBoxKunde.setModel(model);
1082 }
1083 }
1084
1085 /**
1086 * Method ladeKundendaten. L?dt den Kundentyp, Zahlungsmoral und Anspr?che
1087 * zum ausgew?hlten Kunden aus der Hashtable kundeObjekt.
1088 */
1089 private void ladeKundendaten() {
1090
1091 //liefert listItem des selektierten Eintrags
1092 String listItem = String.valueOf(jComboBoxKunde.getSelectedIndex());
1093
1094 //sucht das ausgew?hlte KundenObjekt in Hashtabelle kundeObjekt
1095 Kunde auswahlKunde = (Kunde) kundeObjekt.get(listItem);
1096
1097 if (auswahlKunde != null) {
1098
1099 // sucht vorhandenen Vertraege zum Kunden
1100 Collection vertraege = null;
1101 int vertragszaehler = 0;
1102
1103 try {
1104 vertraege = dao.getVertraege();
1105 } catch (WiSimDAOException e) {
1106 wiSimLogger.log("ladeKundendaten()", e);
1107 }
1108
1109 if (vertraege != null) {
1110 Iterator it = vertraege.iterator();
1111
1112 while (it.hasNext()) {
1113 Vertrag vertrag = (Vertrag) it.next();
1114
1115 if (vertrag.getKundenId() == auswahlKunde.getId()) {
1116 vertragszaehler++;
1117 }
1118 }
1119 }
1120
1121 //Gibt aus dem vorher ausgew?hltem und dann gespeichertem Kundenobjekt die Daten zu Kundentyp, Zahlungsmoral und Anspr?che aus
1122 jTextFieldNeuerVertragKundentyp.setText(auswahlKunde.getKundentyp());
1123 jTextFieldNeuerVertragAnsprueche.setText(auswahlKunde.getAnspruch());
1124 jTextFieldNeuerVertragZahlungsmoral.setText(auswahlKunde.getZahlungsmoral());
1125 jTextFieldNeuerVertragAnzahlVertraege.setText(String.valueOf(vertragszaehler));
1126 } else {
1127 jTextFieldNeuerVertragKundentyp.setText("");
1128 jTextFieldNeuerVertragAnsprueche.setText("");
1129 jTextFieldNeuerVertragZahlungsmoral.setText("");
1130 jTextFieldNeuerVertragAnzahlVertraege.setText("");
1131 }
1132 }
1133
1134 /**
1135 * Method ladeArtikel. L?dt die Artikel aus der Datenbank.
1136 */
1137 private void ladeArtikel() {
1138 Collection artikel = null;
1139 try {
1140 artikel = dao.getAlleArtikel();
1141 } catch (WiSimDAOException e) {
1142 wiSimLogger.log("ladeArtikel()", e);
1143 }
1144
1145 DefaultComboBoxModel model = (DefaultComboBoxModel) jComboBoxArtikel.getModel();
1146 model.removeAllElements();
1147 model.addElement("Bitte w?hlen:");
1148
1149 // Verhindert NullPointerException bei einer leeren Liste
1150 if (artikel != null) {
1151 Iterator it = artikel.iterator();
1152 while (it.hasNext()) {
1153 Artikel artikel2 = (Artikel) it.next();
1154 model.addElement(artikel2.getName());
1155 artikelTabelle.put(artikel2.getName(), String.valueOf(artikel2.getNr()));
1156 //speichert das Objekt zum ausgew?hlten Artikel in die Hashtable artikelObjekt
1157 artikelObjekt.put(String.valueOf(artikel2.getNr()), artikel2);
1158 }
1159 jComboBoxArtikel.setModel(model);
1160 }
1161 }
1162
1163 /**
1164 * Method ladeStueckpreis. L?dt von dem ausgew?hltem Artikel den St?ckpreis aus der Datenbank.
1165 */
1166 private void ladeStueckpreis() {
1167
1168 //liefert listItem des selektierten Eintrags
1169 String listItem = String.valueOf(jComboBoxArtikel.getSelectedIndex());
1170
1171 //sucht das ausgew?hlte ArtikelObjekt in Hashtabelle artikelObjekt
1172 Artikel auswahlArtikel = (Artikel) artikelObjekt.get(listItem);
1173
1174 if (auswahlArtikel != null) {
1175 //Gibt aus dem vorher ausgew?hltem und dann gespeichertem Artikelobjekt den St?ckpreis aus
1176 jTextFieldNeuerVertragStueckpreis.setText(form.format(auswahlArtikel.getStueckpreis()));
1177 try {
1178 stueckPreis = form.parse(jTextFieldNeuerVertragStueckpreis.getText()).doubleValue();
1179 } catch (ParseException e) {
1180 wiSimLogger.log(Level.WARNING,"JPanelNeuerVertrag.ladeStueckpreis",e,false);
1181 }
1182 calculate();
1183 } else {
1184 jTextFieldNeuerVertragStueckpreis.setText("");
1185 calculate();
1186 }
1187 }
1188
1189 /**
1190 * Method ladeMwSt. Ladet den Wert der Mwst aus der Datenbank.
1191 */
1192 private void ladeMwSt() {
1193 //MwSt-Satz bestimmen
1194 try {
1195 mwst = dao.getMwSt();
1196 } catch (WiSimDAOException e) {
1197 wiSimLogger.log("ladeMwSt()", e);
1198 }
1199 jTextFieldMwst.setText(String.valueOf(mwst));
1200 }
1201
1202 /** ?berpr?ft alle Pflichtfelder auf Inhalt. Gibt eine Fehlemeldung
1203 * an den Benutzer, falls ein oder mehrere Felder leer gelassen
1204 * wurden.
1205 * @return false: Es wurden nicht alle Felder gef?llt.
1206 * true: Alle Pflichtfelder sind gef?llt.
1207 */
1208 private boolean ueberpruefenFelder() {
1209 Collection pflichtfelder = new Vector();
1210
1211 if (jComboBoxKunde.getSelectedIndex() == 0) {
1212 pflichtfelder.add("Kunde");
1213 }
1214
1215 if (jComboBoxArtikel.getSelectedIndex() == 0) {
1216 pflichtfelder.add("Artikel");
1217 }
1218
1219 if (jTextFieldNeuerVertragAbnahmemenge.getText().equals("")) {
1220 pflichtfelder.add("Abnahmemenge");
1221 }
1222
1223 if (jTextFieldRabatt.getText().equals("")) {
1224 pflichtfelder.add("Rabatt");
1225 }
1226
1227 if (jTextFieldSkonto.getText().equals("")) {
1228 pflichtfelder.add("Skonto");
1229 }
1230
1231 if (jTextFieldSkontofristTage.getText().equals("")) {
1232 pflichtfelder.add("Skontofrist");
1233 }
1234
1235 if (jTextFieldNeuerVertragTag.getText().equals("") || jTextFieldNeuerVertragMonat.getText().equals("") || jTextFieldNeuerVertragJahr.getText().equals("")) {
1236 pflichtfelder.add("Lieferdatum");
1237 }
1238
1239 /*Wurde ein oder mehrere Pflichtfelder nicht ausgef?llt erscheint ein JOptionPane, dass dem
1240 *Benutzer die fehlenden noch leeren Felder anzeigt*/
1241 if (!pflichtfelder.isEmpty()) {
1242 JOptionPane errorPane = new JOptionPane();
1243 if (pflichtfelder.size() > 1)
1244 JOptionPane.showMessageDialog(this, "Folgende Felder m?ssen ausgef?llt werden: " + pflichtfelder.toString().substring(1, pflichtfelder.toString().length() - 1), "Fehler beim Anlegen des neuen Vertrages", JOptionPane.ERROR_MESSAGE);
1245 else
1246 JOptionPane.showMessageDialog(this, "Das folgende Feld muss ausgef?llt werden: " + pflichtfelder.toString().substring(1, pflichtfelder.toString().length() - 1), "Fehler beim Anlegen des neuen Vertrages", JOptionPane.ERROR_MESSAGE);
1247
1248 return false;
1249 }
1250 return true;
1251 }
1252
1253 /** ?berpr?ft das eingegebene Lieferdatum
1254 * @return Gibt das Lieferdatum als GregorianDate zur?ck. Oder NULL, wenn das
1255 * Datum ung?ltig ist.
1256 */
1257 private GregorianCalendar ueberpruefeLieferdatum() {
1258 int lieferTag = Integer.parseInt(jTextFieldNeuerVertragTag.getText());
1259 int lieferMonat = Integer.parseInt(jTextFieldNeuerVertragMonat.getText()) - 1;
1260 int lieferJahr = Integer.parseInt(jTextFieldNeuerVertragJahr.getText());
1261
1262 GregorianCalendar lieferDatum = new GregorianCalendar(lieferJahr, lieferMonat, lieferTag);
1263
1264 if (lieferTag != lieferDatum.get(Calendar.DATE)) {
1265 JOptionPane.showMessageDialog(this, "Ung?ltiges Lieferdatum!", "Fehler", 0);
1266 return null;
1267 }
1268
1269 if (lieferDatum.getTime().before(wiSimMainController.getActDate())) {
1270 JOptionPane.showMessageDialog(this, "Lieferdatum liegt in der Vergangenheit!", "Fehler", 0);
1271 return null;
1272 }
1273 return lieferDatum;
1274 }
1275
1276 /** L?scht alle Felder und setzt alle Werte zur?ck. */
1277 private void clearFields() {
1278 jTextFieldNeuerVertragKundentyp.setText("");
1279 jTextFieldNeuerVertragAnsprueche.setText("");
1280 jTextFieldNeuerVertragZahlungsmoral.setText("");
1281 jTextFieldNeuerVertragAnzahlVertraege.setText("");
1282 jTextFieldNeuerVertragStueckpreis.setText("");
1283 jTextFieldNeuerVertragAbnahmemenge.setText("");
1284 jTextFieldSkonto.setText("");
1285 jTextFieldSkontofristTage.setText("");
1286 jTextFieldRabatt.setText("");
1287 jTextFieldNeuerVertragTag.setText("");
1288 jTextFieldNeuerVertragMonat.setText("");
1289 jTextFieldNeuerVertragJahr.setText("");
1290 jTextFieldNeuerVertragNettozahldatum.setText("");
1291 jTextFieldNeuerVertragIntermediateResult1.setText("");
1292 jTextFieldNeuerVertragIntermediateResult2.setText("");
1293 jTextFieldNeuerVertragIntermediateResult3.setText("");
1294 jTextFieldNeuerVertragAngebotspreisOhneRabatt.setText("");
1295 jTextFieldNeuerVertragAngebotspreisOhneSkonto.setText("");
1296 jTextFieldNeuerVertragAngebotspreisMwST.setText("");
1297 jTextFieldNeuerVertragAngebotspreis.setText("");
1298
1299 rabattwert = 0;
1300 skontowert = 0;
1301 mengenwert = 0;
1302 angebotsPreis = 0;
1303 stueckPreis = 0;
1304
1305 jComboBoxArtikel.setSelectedIndex(0);
1306 jComboBoxKunde.setSelectedIndex(0);
1307 }
1308
1309 /**
1310 * Method speicherVertrag. Schreibt die Daten in die Datenbank.
1311 */
1312 private void speicherVertrag() {
1313
1314 int i = 0;
1315 int j = 0;
1316
1317 //Test der Pflichtfelder
1318 if (ueberpruefenFelder() != true) {
1319 return;
1320 }
1321
1322 //Validierung des Lieferdatums
1323 GregorianCalendar lieferDatum = ueberpruefeLieferdatum();
1324 if (lieferDatum == null) {
1325 return;
1326 }
1327 java.sql.Date lieferDateSQL = new java.sql.Date(lieferDatum.getTimeInMillis());
1328
1329 // Id's in Auftragsrechnung und in Auftrag z?hlen
1330
1331 Collection vertraege = null;
1332 Collection atrechnungen = null;
1333
1334 try {
1335 vertraege = dao.getVertraege();
1336 } catch (WiSimDAOException e) {
1337 wiSimLogger.log("speicherVertrag()", e);
1338 }
1339 // Verhindert NullPointerException bei einer leeren Liste
1340 if (vertraege != null) {
1341 Iterator it = vertraege.iterator();
1342 while (it.hasNext()) {
1343 Vertrag testVertrag = (Vertrag) it.next();
1344 i++;
1345 }
1346 }
1347
1348 try {
1349 atrechnungen = dao.getAuftragsrechnungen();
1350 } catch (WiSimDAOException e) {
1351 wiSimLogger.log("speicherVertrag()", e);
1352 }
1353
1354 if (atrechnungen != null) {
1355 Iterator it = atrechnungen.iterator();
1356 while (it.hasNext()) {
1357 Auftragsrechnung testAtr = (Auftragsrechnung) it.next();
1358 j++;
1359 }
1360 }
1361
1362 //liefert listItem des selektierten Eintrags aus der ComboBox vom Kunden
1363 String listItem1 = String.valueOf(jComboBoxKunde.getSelectedIndex());
1364 //sucht das ausgew?hlte KundenObjekt in Hashtabelle kundeObjekt
1365 Kunde auswahlKunde = (Kunde) kundeObjekt.get(listItem1);
1366 int kdId = auswahlKunde.getId();
1367
1368 //liefert listItem des selektierten Eintrags aus der ComboBox vom Artikel
1369 String listItem2 = String.valueOf(jComboBoxArtikel.getSelectedIndex());
1370 //sucht das ausgew?hlte Artikelobjekt in Hashtabelle artikelObjekt
1371 Artikel auswahlArtikel = (Artikel) artikelObjekt.get(listItem2);
1372 int artId = auswahlArtikel.getNr();
1373 boolean zleingang = false;
1374
1375 Auftragsrechnung atr = new Auftragsrechnung();
1376 // Auftragsrechnungsdaten vorbereiten
1377 atr.setNr(j + 1);
1378 try {
1379 atr.setBetrag(form.parse(jTextFieldNeuerVertragAngebotspreis.getText()).doubleValue());
1380 } catch (ParseException e) {
1381 wiSimLogger.log(Level.WARNING,"JPanelNeuerVertrag.speicherVertrag",e,false);
1382 }
1383 atr.setAuftragNr(i + 1);
1384 atr.setMwSt(mwst);
1385 atr.setzEingang(zleingang);
1386
1387 try {
1388 dao.setAuftragsrechnung(atr);
1389 } catch (WiSimDAOException e) {
1390 wiSimLogger.log("speicherVertrag()", e);
1391 } catch (WiSimDAOWriteException e) {
1392 wiSimLogger.log("speicherVertrag()", e);
1393 }
1394
1395 Vertrag vertrag = new Vertrag();
1396 // Vertragsdaten vorbereiten
1397 vertrag.setVertragsId(i + 1);
1398 vertrag.setKundenId(kdId);
1399 vertrag.setLieferdatum(lieferDateSQL);
1400 vertrag.setRabatt(Double.parseDouble(jTextFieldRabatt.getText().toString()));
1401 vertrag.setSkonto(Double.parseDouble(jTextFieldSkonto.getText().toString()));
1402 vertrag.setSkontofrist(Long.parseLong(jTextFieldSkontofristTage.getText().toString()));
1403 vertrag.setVertragsdatum(new java.sql.Date(wiSimMainController.getActDate().getTime()));
1404 vertrag.setAuftragsrechnungsId(j + 1);
1405
1406 try {
1407 dao.setNeuenVertrag(vertrag);
1408 } catch (WiSimDAOException e) {
1409 wiSimLogger.log("speicherVertrag()", e);
1410 } catch (WiSimDAOWriteException e) {
1411 wiSimLogger.log("speicherVertrag()", e);
1412 }
1413
1414 AuftragsPosition atp = new AuftragsPosition();
1415 //AuftragsPositionsdaten vorbereiten
1416 atp.setAtNr(i + 1);
1417 atp.setArtNr(artId);
1418 atp.setBestellmenge(Long.parseLong(jTextFieldNeuerVertragAbnahmemenge.getText().toString()));
1419
1420 try {
1421 dao.setAuftragsPosition(atp);
1422 } catch (WiSimDAOWriteException e) {
1423 wiSimLogger.log("speicherVertrag()", e);
1424 }
1425
1426 i = 0;
1427 j = 0;
1428 clearFields();
1429 ladeKunden();
1430 ladeArtikel();
1431
1432 }
1433
1434 // Variables declaration - do not modify//GEN-BEGIN:variables
1435 private javax.swing.JButton jButtonNeuerVertragAbbrechen;
1436 private javax.swing.JButton jButtonNeuerVertragSpeichern;
1437 private javax.swing.JComboBox jComboBoxArtikel;
1438 private javax.swing.JComboBox jComboBoxKunde;
1439 private javax.swing.JLabel jLabelAngebotspreis;
1440 private javax.swing.JLabel jLabelArtikel;
1441 private javax.swing.JLabel jLabelEUR;
1442 private javax.swing.JLabel jLabelEUR1;
1443 private javax.swing.JLabel jLabelEUR2;
1444 private javax.swing.JLabel jLabelEUR3;
1445 private javax.swing.JLabel jLabelEUR4;
1446 private javax.swing.JLabel jLabelEUR5;
1447 private javax.swing.JLabel jLabelEUR6;
1448 private javax.swing.JLabel jLabelEUR7;
1449 private javax.swing.JLabel jLabelGleich;
1450 private javax.swing.JLabel jLabelGleich2;
1451 private javax.swing.JLabel jLabelGleich3;
1452 private javax.swing.JLabel jLabelKunde;
1453 private javax.swing.JLabel jLabelMinus;
1454 private javax.swing.JLabel jLabelMinus2;
1455 private javax.swing.JLabel jLabelMwst;
1456 private javax.swing.JLabel jLabelNeuerVertrag;
1457 private javax.swing.JLabel jLabelNeuerVertragAbnahmemenge;
1458 private javax.swing.JLabel jLabelNeuerVertragAnsprueche;
1459 private javax.swing.JLabel jLabelNeuerVertragAnzahlVertraege;
1460 private javax.swing.JLabel jLabelNeuerVertragKundenTyp;
1461 private javax.swing.JLabel jLabelNeuerVertragLieferdatum;
1462 private javax.swing.JLabel jLabelNeuerVertragNettozahldatum;
1463 private javax.swing.JLabel jLabelNeuerVertragZahlungsmoral;
1464 private javax.swing.JLabel jLabelProzent;
1465 private javax.swing.JLabel jLabelProzent1;
1466 private javax.swing.JLabel jLabelProzent2;
1467 private javax.swing.JLabel jLabelRabatt;
1468 private javax.swing.JLabel jLabelRabatt2;
1469 private javax.swing.JLabel jLabelSkonto;
1470 private javax.swing.JLabel jLabelSkonto2;
1471 private javax.swing.JLabel jLabelSkontofrist;
1472 private javax.swing.JLabel jLabelStueckpreis;
1473 private javax.swing.JLabel jLabelTage;
1474 private javax.swing.JLabel jLabelZwischensumme1;
1475 private javax.swing.JLabel jLabelZwischensumme2;
1476 private javax.swing.JLabel jLabelZwischensumme3;
1477 private javax.swing.JOptionPane jOptionAlert;
1478 private javax.swing.JOptionPane jOptionPaneConfirm;
1479 private javax.swing.JPanel jPanelAngebotspreis;
1480 private javax.swing.JPanel jPanelArtikelWaehlen;
1481 private javax.swing.JPanel jPanelBestelldatenEingeben;
1482 private javax.swing.JPanel jPanelKundeWaehlen;
1483 private javax.swing.JPanel jPanelKundendaten;
1484 private javax.swing.JSeparator jSeparator1;
1485 private javax.swing.JSeparator jSeparator2;
1486 private javax.swing.JSeparator jSeparator3;
1487 private javax.swing.JTextField jTextFieldMwst;
1488 private javax.swing.JTextField jTextFieldNeuerVertragAbnahmemenge;
1489 private javax.swing.JTextField jTextFieldNeuerVertragAngebotspreis;
1490 private javax.swing.JTextField jTextFieldNeuerVertragAngebotspreisMwST;
1491 private javax.swing.JTextField jTextFieldNeuerVertragAngebotspreisOhneRabatt;
1492 private javax.swing.JTextField jTextFieldNeuerVertragAngebotspreisOhneSkonto;
1493 private javax.swing.JTextField jTextFieldNeuerVertragAnsprueche;
1494 private javax.swing.JTextField jTextFieldNeuerVertragAnzahlVertraege;
1495 private javax.swing.JTextField jTextFieldNeuerVertragIntermediateResult1;
1496 private javax.swing.JTextField jTextFieldNeuerVertragIntermediateResult2;
1497 private javax.swing.JTextField jTextFieldNeuerVertragIntermediateResult3;
1498 private javax.swing.JTextField jTextFieldNeuerVertragJahr;
1499 private javax.swing.JTextField jTextFieldNeuerVertragKundentyp;
1500 private javax.swing.JTextField jTextFieldNeuerVertragMonat;
1501 private javax.swing.JTextField jTextFieldNeuerVertragNettozahldatum;
1502 private javax.swing.JTextField jTextFieldNeuerVertragStueckpreis;
1503 private javax.swing.JTextField jTextFieldNeuerVertragTag;
1504 private javax.swing.JTextField jTextFieldNeuerVertragZahlungsmoral;
1505 private javax.swing.JTextField jTextFieldRabatt;
1506 private javax.swing.JTextField jTextFieldSkonto;
1507 private javax.swing.JTextField jTextFieldSkontofristTage;
1508 // End of variables declaration//GEN-END:variables
1509 }