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 /*
25 * JPanelZahlungseingang.java
26 *
27 * Created on 10. M?rz 2003, 21:33
28 */
29
30 package net.sourceforge.wisim.controller;
31 import java.util;
32 import net.sourceforge.wisim.model;
33 import net.sourceforge.wisim.dao;
34 import javax.swing;
35 import javax.swing.table.DefaultTableModel;
36 import java.awt;
37 import java.awt.image;
38 import java.text.DecimalFormat;
39
40 /**
41 * JPanelZahlungseingang erm?glicht ?bersicht und Bearbeitung aller Zahlungseing?nge.
42 * @author Janett Ziola
43 */
44
45 public class JPanelZahlungseingang extends javax.swing.JPanel {
46
47 private WiSimDAO dao;
48 private Vector rechnungsListe;
49 private Hashtable vertragObjekte;
50 private Hashtable rechnungObjekte;
51 private Hashtable kundeObjekte;
52 private Collection etatPos;
53 private int anzahl;
54 private int posAnzahl;
55 private double summe;
56 private double skontoToCalc;
57 private double lieferrabattToCalc;
58 private Color darkgreen = new Color(51, 153, 51);
59 private Color red = new Color(255, 0, 0);
60 private Color orange = new Color(255, 153, 0);
61 private int positionen;
62 private boolean isActive;
63 private boolean isBuilt;
64 private WiSimMainController wiSimMainController;
65 private DecimalFormat form;
66
67 /** Creates new form JPanelZahlungseingang
68 * @param wiSimMainController Der WiSimMainController
69 */
70 public JPanelZahlungseingang(WiSimMainController wiSimMainController) {
71 this.wiSimMainController = wiSimMainController;
72 initDAO(wiSimMainController);
73 vertragObjekte = new Hashtable();
74 rechnungObjekte = new Hashtable();
75 kundeObjekte = new Hashtable();
76 rechnungsListe = new Vector();
77 etatPos = new Vector();
78 anzahl = 0;
79 posAnzahl = 0;
80 summe = 0;
81 skontoToCalc = 0;
82 lieferrabattToCalc = 0;
83 isActive = false;
84 isBuilt = false;
85 initComponents();
86 form = new DecimalFormat("###,##0.00");
87 }
88
89 private void initDAO(WiSimMainController wiSimMainController) {
90 dao = wiSimMainController.getDAO();
91 }
92
93 /** This method is called from within the constructor to
94 * initialize the form.
95 * WARNING: Do NOT modify this code. The content of this method is
96 * always regenerated by the Form Editor.
97 */
98 private void initComponents() {//GEN-BEGIN:initComponents
99 jLabelEtatEinsehen = new javax.swing.JLabel();
100 jScrollPaneRechnungListe = new javax.swing.JScrollPane();
101 jTableRechnungListe = new javax.swing.JTable();
102 jTableRechnungListe.setSelectionMode(0);
103 jTableRechnungListe.getTableHeader().setReorderingAllowed(false);
104
105 jPanelLegende = new javax.swing.JPanel();
106 jLabelGruen = new javax.swing.JLabel();
107 jLabelRot = new javax.swing.JLabel();
108 jPanelDetails = new javax.swing.JPanel();
109 jTextFieldRabatt = new javax.swing.JTextField();
110 jTextFieldPreis = new javax.swing.JTextField();
111 jTextFieldSkonto = new javax.swing.JTextField();
112 jLabelAngebotspreis1 = new javax.swing.JLabel();
113 jLabelSkonto = new javax.swing.JLabel();
114 jLabelEUR2 = new javax.swing.JLabel();
115 jLabelRabatt = new javax.swing.JLabel();
116 jButtonZahlungErfolgt = new javax.swing.JButton();
117 jLabelAuftragsdatum = new javax.swing.JLabel();
118 jTextFieldAuftragsdatum = new javax.swing.JTextField();
119 jLabelLieferdatum = new javax.swing.JLabel();
120 jTextFieldLieferdatum = new javax.swing.JTextField();
121 jLabelKunde = new javax.swing.JLabel();
122 jTextFieldKunde = new javax.swing.JTextField();
123 jTextFieldNr = new javax.swing.JTextField();
124 jLabelNr = new javax.swing.JLabel();
125 jTextFieldFirma = new javax.swing.JTextField();
126 jLabelFirma = new javax.swing.JLabel();
127 jLabelProzent = new javax.swing.JLabel();
128 jLabelProzent2 = new javax.swing.JLabel();
129 jButtonReset = new javax.swing.JButton();
130
131 setLayout(null);
132
133 addAncestorListener(new javax.swing.event.AncestorListener() {
134 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
135 }
136 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
137 formAncestorAdded(evt);
138 }
139 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
140 formAncestorRemoved(evt);
141 }
142 });
143
144 jLabelEtatEinsehen.setFont(new java.awt.Font("Dialog", 1, 24));
145 jLabelEtatEinsehen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
146 jLabelEtatEinsehen.setText("Zahlungseingang");
147 add(jLabelEtatEinsehen);
148 jLabelEtatEinsehen.setBounds(150, 10, 550, 32);
149
150 jTableRechnungListe.setModel(new javax.swing.table.DefaultTableModel(
151 new Object [][] {
152
153 },
154 new String [] {
155 "Nr", "Name, Vorname", "Lieferung", "Zahlung"
156 }
157 ) {
158 boolean[] canEdit = new boolean [] {
159 false, false, false, false
160 };
161
162 public boolean isCellEditable(int rowIndex, int columnIndex) {
163 return canEdit [columnIndex];
164 }
165 });
166 jTableRechnungListe.addAncestorListener(new javax.swing.event.AncestorListener() {
167 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
168 }
169 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
170 jTableRechnungListeAncestorAdded(evt);
171 }
172 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
173 }
174 });
175 jTableRechnungListe.addMouseListener(new java.awt.event.MouseAdapter() {
176 public void mouseClicked(java.awt.event.MouseEvent evt) {
177 jTableRechnungListeMouseClicked(evt);
178 }
179 });
180
181 jScrollPaneRechnungListe.setViewportView(jTableRechnungListe);
182
183 add(jScrollPaneRechnungListe);
184 jScrollPaneRechnungListe.setBounds(10, 90, 380, 320);
185
186 jPanelLegende.setLayout(null);
187
188 jPanelLegende.setBorder(new javax.swing.border.TitledBorder("Legende"));
189 jLabelGruen.setText("erfolgt");
190 jPanelLegende.add(jLabelGruen);
191 jLabelGruen.setBounds(10, 20, 180, 16);
192
193 jLabelRot.setText("noch nicht erfolgt");
194 jPanelLegende.add(jLabelRot);
195 jLabelRot.setBounds(10, 50, 290, 16);
196
197 add(jPanelLegende);
198 jPanelLegende.setBounds(10, 430, 380, 80);
199
200 jPanelDetails.setLayout(null);
201
202 jPanelDetails.setBorder(new javax.swing.border.TitledBorder("Zahlung"));
203 jTextFieldRabatt.setEditable(false);
204 jTextFieldRabatt.setHorizontalAlignment(javax.swing.JTextField.LEFT);
205 jTextFieldRabatt.setBorder(null);
206 jPanelDetails.add(jTextFieldRabatt);
207 jTextFieldRabatt.setBounds(130, 130, 80, 20);
208
209 jTextFieldPreis.setEditable(false);
210 jTextFieldPreis.setHorizontalAlignment(javax.swing.JTextField.LEFT);
211 jTextFieldPreis.setBorder(null);
212 jPanelDetails.add(jTextFieldPreis);
213 jTextFieldPreis.setBounds(130, 190, 80, 20);
214
215 jTextFieldSkonto.setEditable(false);
216 jTextFieldSkonto.setHorizontalAlignment(javax.swing.JTextField.LEFT);
217 jTextFieldSkonto.setBorder(null);
218 jPanelDetails.add(jTextFieldSkonto);
219 jTextFieldSkonto.setBounds(130, 160, 80, 20);
220
221 jLabelAngebotspreis1.setFont(new java.awt.Font("Dialog", 0, 12));
222 jLabelAngebotspreis1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
223 jLabelAngebotspreis1.setText("Gesamtpreis");
224 jPanelDetails.add(jLabelAngebotspreis1);
225 jLabelAngebotspreis1.setBounds(30, 190, 80, 16);
226
227 jLabelSkonto.setFont(new java.awt.Font("Dialog", 0, 12));
228 jLabelSkonto.setText("Skonto");
229 jPanelDetails.add(jLabelSkonto);
230 jLabelSkonto.setBounds(30, 160, 60, 16);
231
232 jLabelEUR2.setFont(new java.awt.Font("Dialog", 0, 12));
233 jLabelEUR2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
234 jLabelEUR2.setText("\u20ac");
235 jLabelEUR2.setMaximumSize(new java.awt.Dimension(9, 22));
236 jLabelEUR2.setMinimumSize(new java.awt.Dimension(9, 22));
237 jLabelEUR2.setPreferredSize(new java.awt.Dimension(9, 22));
238 jPanelDetails.add(jLabelEUR2);
239 jLabelEUR2.setBounds(220, 190, 10, 22);
240
241 jLabelRabatt.setFont(new java.awt.Font("Dialog", 0, 12));
242 jLabelRabatt.setText("Rabatt");
243 jPanelDetails.add(jLabelRabatt);
244 jLabelRabatt.setBounds(30, 130, 60, 16);
245
246 jButtonZahlungErfolgt.setText("Zahlung erfolgt");
247 jButtonZahlungErfolgt.setEnabled(false);
248 jButtonZahlungErfolgt.addActionListener(new java.awt.event.ActionListener() {
249 public void actionPerformed(java.awt.event.ActionEvent evt) {
250 jButtonZahlungErfolgtActionPerformed(evt);
251 }
252 });
253
254 jPanelDetails.add(jButtonZahlungErfolgt);
255 jButtonZahlungErfolgt.setBounds(30, 360, 160, 26);
256
257 jLabelAuftragsdatum.setFont(new java.awt.Font("Dialog", 0, 12));
258 jLabelAuftragsdatum.setText("Auftragsdatum");
259 jPanelDetails.add(jLabelAuftragsdatum);
260 jLabelAuftragsdatum.setBounds(30, 250, 80, 16);
261
262 jTextFieldAuftragsdatum.setEditable(false);
263 jTextFieldAuftragsdatum.setHorizontalAlignment(javax.swing.JTextField.LEFT);
264 jTextFieldAuftragsdatum.setBorder(null);
265 jPanelDetails.add(jTextFieldAuftragsdatum);
266 jTextFieldAuftragsdatum.setBounds(130, 250, 120, 20);
267
268 jLabelLieferdatum.setFont(new java.awt.Font("Dialog", 0, 12));
269 jLabelLieferdatum.setText("Lieferdatum");
270 jPanelDetails.add(jLabelLieferdatum);
271 jLabelLieferdatum.setBounds(30, 280, 66, 16);
272
273 jTextFieldLieferdatum.setEditable(false);
274 jTextFieldLieferdatum.setHorizontalAlignment(javax.swing.JTextField.LEFT);
275 jTextFieldLieferdatum.setBorder(null);
276 jPanelDetails.add(jTextFieldLieferdatum);
277 jTextFieldLieferdatum.setBounds(130, 280, 120, 20);
278
279 jLabelKunde.setFont(new java.awt.Font("Dialog", 0, 12));
280 jLabelKunde.setText("Kunde");
281 jPanelDetails.add(jLabelKunde);
282 jLabelKunde.setBounds(30, 70, 36, 16);
283
284 jTextFieldKunde.setEditable(false);
285 jTextFieldKunde.setHorizontalAlignment(javax.swing.JTextField.LEFT);
286 jTextFieldKunde.setBorder(null);
287 jPanelDetails.add(jTextFieldKunde);
288 jTextFieldKunde.setBounds(130, 70, 180, 20);
289
290 jTextFieldNr.setEditable(false);
291 jTextFieldNr.setHorizontalAlignment(javax.swing.JTextField.LEFT);
292 jTextFieldNr.setBorder(null);
293 jPanelDetails.add(jTextFieldNr);
294 jTextFieldNr.setBounds(130, 40, 80, 20);
295
296 jLabelNr.setFont(new java.awt.Font("Dialog", 0, 12));
297 jLabelNr.setText("Nr");
298 jPanelDetails.add(jLabelNr);
299 jLabelNr.setBounds(30, 40, 13, 16);
300
301 jTextFieldFirma.setEditable(false);
302 jTextFieldFirma.setHorizontalAlignment(javax.swing.JTextField.LEFT);
303 jTextFieldFirma.setBorder(null);
304 jPanelDetails.add(jTextFieldFirma);
305 jTextFieldFirma.setBounds(130, 100, 180, 20);
306
307 jLabelFirma.setFont(new java.awt.Font("Dialog", 0, 12));
308 jLabelFirma.setText("Firma");
309 jPanelDetails.add(jLabelFirma);
310 jLabelFirma.setBounds(30, 100, 32, 16);
311
312 jLabelProzent.setFont(new java.awt.Font("Dialog", 0, 12));
313 jLabelProzent.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
314 jLabelProzent.setText("%");
315 jLabelProzent.setMaximumSize(new java.awt.Dimension(9, 22));
316 jLabelProzent.setMinimumSize(new java.awt.Dimension(9, 22));
317 jLabelProzent.setPreferredSize(new java.awt.Dimension(9, 22));
318 jPanelDetails.add(jLabelProzent);
319 jLabelProzent.setBounds(220, 160, 20, 22);
320
321 jLabelProzent2.setFont(new java.awt.Font("Dialog", 0, 12));
322 jLabelProzent2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
323 jLabelProzent2.setText("%");
324 jLabelProzent2.setMaximumSize(new java.awt.Dimension(9, 22));
325 jLabelProzent2.setMinimumSize(new java.awt.Dimension(9, 22));
326 jLabelProzent2.setPreferredSize(new java.awt.Dimension(9, 22));
327 jPanelDetails.add(jLabelProzent2);
328 jLabelProzent2.setBounds(220, 130, 20, 22);
329
330 jButtonReset.setText("R\u00fcckg\u00e4ngig");
331 jButtonReset.setEnabled(false);
332 jButtonReset.addActionListener(new java.awt.event.ActionListener() {
333 public void actionPerformed(java.awt.event.ActionEvent evt) {
334 jButtonResetActionPerformed(evt);
335 }
336 });
337
338 jPanelDetails.add(jButtonReset);
339 jButtonReset.setBounds(210, 360, 110, 26);
340
341 add(jPanelDetails);
342 jPanelDetails.setBounds(420, 90, 340, 420);
343
344 }//GEN-END:initComponents
345
346 private void formAncestorRemoved(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_formAncestorRemoved
347 setIsActive(false);
348 }//GEN-LAST:event_formAncestorRemoved
349
350 private void formAncestorAdded(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_formAncestorAdded
351 setIsActive(true);
352 }//GEN-LAST:event_formAncestorAdded
353
354 private void jButtonResetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonResetActionPerformed
355 int auswahl = getSelVertragsID();
356 if (auswahl != 0){
357 boolean i = false;
358 aendereEingang(getSelVertragsID(),i);
359 setzeStandard();
360 }
361 }//GEN-LAST:event_jButtonResetActionPerformed
362
363 private void jButtonZahlungErfolgtActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonZahlungErfolgtActionPerformed
364 int auswahl = getSelVertragsID();
365 if (auswahl != 0){
366 boolean i = true;
367 aendereEingang(getSelVertragsID(),i);
368 setzeStandard();
369 }
370 }//GEN-LAST:event_jButtonZahlungErfolgtActionPerformed
371
372 private void jTableRechnungListeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableRechnungListeMouseClicked
373 ladeKunde();
374 }//GEN-LAST:event_jTableRechnungListeMouseClicked
375
376 private void jTableRechnungListeAncestorAdded(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_jTableRechnungListeAncestorAdded
377 setzeStandard();
378 ladeRechnungen();
379 showLegende();
380 setIsBuilt(true);
381 }//GEN-LAST:event_jTableRechnungListeAncestorAdded
382
383
384 // Variables declaration - do not modify//GEN-BEGIN:variables
385 private javax.swing.JButton jButtonReset;
386 private javax.swing.JButton jButtonZahlungErfolgt;
387 private javax.swing.JLabel jLabelAngebotspreis1;
388 private javax.swing.JLabel jLabelAuftragsdatum;
389 private javax.swing.JLabel jLabelEUR2;
390 private javax.swing.JLabel jLabelEtatEinsehen;
391 private javax.swing.JLabel jLabelFirma;
392 private javax.swing.JLabel jLabelGruen;
393 private javax.swing.JLabel jLabelKunde;
394 private javax.swing.JLabel jLabelLieferdatum;
395 private javax.swing.JLabel jLabelNr;
396 private javax.swing.JLabel jLabelProzent;
397 private javax.swing.JLabel jLabelProzent2;
398 private javax.swing.JLabel jLabelRabatt;
399 private javax.swing.JLabel jLabelRot;
400 private javax.swing.JLabel jLabelSkonto;
401 private javax.swing.JPanel jPanelDetails;
402 private javax.swing.JPanel jPanelLegende;
403 private javax.swing.JScrollPane jScrollPaneRechnungListe;
404 private javax.swing.JTable jTableRechnungListe;
405 private javax.swing.JTextField jTextFieldAuftragsdatum;
406 private javax.swing.JTextField jTextFieldFirma;
407 private javax.swing.JTextField jTextFieldKunde;
408 private javax.swing.JTextField jTextFieldLieferdatum;
409 private javax.swing.JTextField jTextFieldNr;
410 private javax.swing.JTextField jTextFieldPreis;
411 private javax.swing.JTextField jTextFieldRabatt;
412 private javax.swing.JTextField jTextFieldSkonto;
413 // End of variables declaration//GEN-END:variables
414
415 /** F?llt die Tabelle mit den in der DB vorhadenen Rechnungen */
416 public void ladeRechnungen() {
417 try {
418 Collection Vertraege = null;
419 Vertraege = dao.getVertraege();
420 Iterator it_Vertrag = Vertraege.iterator();
421
422 positionen = 0;
423 int row;
424 int i=0;
425 anzahl = Vertraege.size();
426 setTabelle();
427
428 while (it_Vertrag.hasNext()) {
429 Vertrag vertragsliste = (Vertrag) it_Vertrag.next();
430 Auftragsrechnung Auftrag = new Auftragsrechnung();
431 Auftrag = dao.getAuftragsrechnung(vertragsliste.getAuftragsrechnungsId());
432 Kunde Kunde = new Kunde();
433 Kunde = dao.getKunde(vertragsliste.getKundenId());
434
435 jTableRechnungListe.setValueAt(String.valueOf(Auftrag.getAuftragNr()), i, 0);
436 jTableRechnungListe.setValueAt(Kunde.getNachname()+ ", "+ Kunde.getVorname(), i, 1);
437
438 if (vergleicheDatum(wiSimMainController.getActDate(),vertragsliste.getLieferdatum()) <= 0){
439 Image imageIconGreen = new BufferedImage(28, 30, 2);
440 Graphics g = imageIconGreen.getGraphics();
441 g.setColor(darkgreen);
442 g.fillRoundRect(10,11, 10, 10, 3, 3);
443 ImageIcon ic = new ImageIcon(imageIconGreen);
444 jTableRechnungListe.setValueAt(ic, i, 2);
445
446 }else
447 {
448 Image imageIconRed = new BufferedImage(28, 30, 2);
449 Graphics g = imageIconRed.getGraphics();
450 g = imageIconRed.getGraphics();
451 g.setColor(red);
452 g.fillRoundRect(10,11, 10, 10, 3, 3);
453 ImageIcon ic = new ImageIcon(imageIconRed);
454 jTableRechnungListe.setValueAt(ic, i, 2);
455 }
456
457 if (Auftrag.getzEingang()){
458 Image imageIconGreen = new BufferedImage(28, 30, 2);
459 Graphics g = imageIconGreen.getGraphics();
460 g.setColor(darkgreen);
461 g.fillRoundRect(10,11, 10, 10, 3, 3);
462 ImageIcon is = new ImageIcon(imageIconGreen);
463 jTableRechnungListe.setValueAt(is, i, 3);
464
465 }else
466 {
467 Image imageIconRed = new BufferedImage(28, 30, 2);
468 Graphics g = imageIconRed.getGraphics();
469 g = imageIconRed.getGraphics();
470 g.setColor(red);
471 g.fillRoundRect(10,11, 10, 10, 3, 3);
472 ImageIcon is = new ImageIcon(imageIconRed);
473 jTableRechnungListe.setValueAt(is, i, 3);
474 }
475
476 vertragObjekte.put(String.valueOf(i),vertragsliste);
477 rechnungObjekte.put(String.valueOf(i),Auftrag);
478 kundeObjekte.put(String.valueOf(i),Kunde);
479 i++;
480 }
481 } catch (WiSimDAOException e) {
482 System.err.println(e.getMessage());
483 }
484 }
485
486
487 //L?dt einen Kunden zum Bearbeiten aus der Datenbank
488 private void ladeKunde() {
489
490 //liefert listItem des selektierten Eintrags
491 String listItem = String.valueOf(jTableRechnungListe.getSelectedRow());
492 Vertrag auswahlVertrag = (Vertrag)vertragObjekte.get(listItem);
493 Auftragsrechnung auswahlRechnung = (Auftragsrechnung)rechnungObjekte.get(listItem);
494 Kunde auswahlKunde = (Kunde)kundeObjekte.get(listItem);
495
496 if (auswahlVertrag != null){
497 jTextFieldKunde.setText(auswahlKunde.getNachname()+ ", "+ auswahlKunde.getVorname());
498 jTextFieldFirma.setText(auswahlKunde.getFirma());
499 jTextFieldRabatt.setText(String.valueOf(auswahlVertrag.getRabatt()));
500 jTextFieldSkonto.setText(String.valueOf(auswahlVertrag.getSkonto()));
501 jTextFieldPreis.setText(form.format(auswahlRechnung.getBetrag()));
502 jTextFieldAuftragsdatum.setText(String.valueOf(formatDate(auswahlVertrag.getVertragsdatum())));
503 jTextFieldLieferdatum.setText(String.valueOf(formatDate(auswahlVertrag.getLieferdatum())));
504 jTextFieldNr.setText(String.valueOf(auswahlRechnung.getNr()));
505 }
506
507 if (vergleicheDatum(wiSimMainController.getActDate(),auswahlVertrag.getLieferdatum()) <= 0){
508 if (auswahlRechnung.getzEingang()){
509 jButtonZahlungErfolgt.setEnabled(false);
510 jButtonReset.setEnabled(true);
511 }else{
512 jButtonZahlungErfolgt.setEnabled(true);
513 jButtonReset.setEnabled(false);}
514 }else{
515 jButtonZahlungErfolgt.setEnabled(false);
516 jButtonReset.setEnabled(false);
517 }
518
519
520 }
521
522 //Setzt Rechnungsstatus auf bezahlt
523 private void aendereEingang(int Id, boolean i){
524 try{
525 dao.aendereAuftragsrechnung(Id,i);
526 ladeRechnungen();
527 } catch (WiSimDAOException e) {
528 System.err.println("Fehler: " + e.getMessage());
529 } catch (WiSimDAOWriteException e) {
530 System.err.println("Fehler: " + e.getMessage());
531 }
532 }
533
534
535 /** Formatiert ein Date Objekt zu einem String TT.MM.JJJJ.
536 * @param dateToFormat Das zu formatierende Datum.
537 * @return Das formatierte Datum.
538 */
539 public String formatDate(java.sql.Date dateToFormat) {
540 String date = String.valueOf(dateToFormat);
541 String year = date.substring(0,4);
542 String month = date.substring(5,7);
543 String day = date.substring(8,10);
544 String formattedDate = day + "." + month + "." + year;
545 return formattedDate;
546 }
547
548 /** Vergleicht Lieferdatum mit aktuellen Datum
549 * @param one Datum aus der DB
550 * @param two dynamisches Datum
551 * @return int
552 */
553 public int vergleicheDatum(Date one, Date two) {
554 //umwandeln in UtilDate
555 one = new java.util.Date(one.getTime());
556 two = new java.util.Date(two.getTime());
557 int controll = two.compareTo(one);
558 return controll;
559 }
560 /** Zeigt die Legende an */
561 public void showLegende() {
562 //Legende
563 Image imageIconGreen = new BufferedImage(28, 30, 2);
564 Graphics g = imageIconGreen.getGraphics();
565 g.setColor(darkgreen);
566 g.fillRoundRect(10,11, 10, 10, 3, 3);
567 ImageIcon ic = new ImageIcon(imageIconGreen);
568 jLabelGruen.setIcon(ic);
569
570 Image imageIconRed = new BufferedImage(28, 30, 2);
571 g = imageIconRed.getGraphics();
572 g.setColor(red);
573 g.fillRoundRect(10,11, 10, 10, 3, 3);
574 ic = new ImageIcon(imageIconRed);
575 jLabelRot.setIcon(ic);
576 }
577
578 /** Erstellt die Tabelle. */
579 public void setTabelle() {
580
581 Object[][] tableInit = new Object[anzahl][4];
582 DefaultTableModel defTable = new DefaultTableModel(
583 tableInit,
584 new String [] {
585 "Nr", "Name, Vorname", "Lieferung", "Zahlung"
586 }
587 ) {
588 boolean[] canEdit = new boolean [] {
589 false, false, false, false
590 };
591 public boolean isCellEditable(int rowIndex, int columnIndex) {
592 return canEdit [columnIndex];
593 }
594 public Class getColumnClass(int c) {
595 return getValueAt(0, c).getClass();
596 }
597 };
598 jTableRechnungListe.setModel(defTable);
599 jTableRechnungListe.setFocusable(false);
600 jTableRechnungListe.getTableHeader().setReorderingAllowed(false);
601
602 javax.swing.table.TableColumn column = null;
603
604 //Spaltenbreiten der Tabelle werden gesetzt
605 for (int i = 0; i < 4; i++) {
606 column = jTableRechnungListe.getColumnModel().getColumn(i);
607 switch (i) {
608 //Nr
609 case 0:
610 column.setPreferredWidth(30);
611 break;
612 //Name
613 case 1:
614 column.setPreferredWidth(150);
615 break;
616 //Lieferung
617 case 2:
618 column.setPreferredWidth(40);
619 break;
620 //Zahlung
621 case 3:
622 column.setPreferredWidth(40);
623 break;
624
625 }
626 }
627 jTableRechnungListe.setDefaultRenderer( JComponent.class, new JComponentCellRenderer());
628 jTableRechnungListe.setDefaultEditor( JComponent.class, new JComponentCellEditor());
629 }
630
631 /** Liefert die KD_Nr des aktiven Kunden
632 * @return int
633 */
634 private int getSelVertragsID(){
635 //liefert listItem des selektierten Eintrags
636 String listItem = String.valueOf(jTableRechnungListe.getSelectedRow());
637 //sucht das aktive KundenObjekt in Hashtabelle kundenObjekte
638 Vertrag auswahl = (Vertrag)vertragObjekte.get(listItem);
639 if (auswahl != null){
640 return auswahl.getAuftragsrechnungsId();
641 }else return 0;
642 }
643
644 // Setzt nach dem Speichern und L?schen eines Lieferanten die Werte auf Standard^
645 private void setzeStandard() {
646 jTextFieldKunde.setText("");
647 jTextFieldFirma.setText("");
648 jTextFieldRabatt.setText("");
649 jTextFieldSkonto.setText("");
650 jTextFieldPreis.setText("");
651 jTextFieldAuftragsdatum.setText("");
652 jTextFieldLieferdatum.setText("");
653 jTextFieldNr.setText("");
654 jButtonReset.setEnabled(false);
655 jButtonZahlungErfolgt.setEnabled(false);
656 }
657
658 /** Refreshed Tabelle */
659 public void refreshTabelle() {
660 if (jTableRechnungListe.getSelectedRow() >= 0) {
661 Collection Vertraege = null;
662 try {
663 Vertraege = dao.getVertraege();
664 } catch (WiSimDAOException e) {
665 }
666 anzahl = Vertraege.size();
667 int i = 0;
668 if (anzahl > 0) {
669
670 Iterator it_Vertrag = Vertraege.iterator();
671
672 while (it_Vertrag.hasNext()) {
673 Vertrag vertragsliste = (Vertrag) it_Vertrag.next();
674
675 if (vergleicheDatum(wiSimMainController.getActDate(),vertragsliste.getLieferdatum()) <= 0){
676 Image imageIconGreen = new BufferedImage(28, 30, 2);
677 Graphics g = imageIconGreen.getGraphics();
678 g.setColor(darkgreen);
679 g.fillRoundRect(10,11, 10, 10, 3, 3);
680 ImageIcon ic = new ImageIcon(imageIconGreen);
681 jTableRechnungListe.setValueAt(ic, i, 2);
682
683 }else
684 {
685 Image imageIconRed = new BufferedImage(28, 30, 2);
686 Graphics g = imageIconRed.getGraphics();
687 g = imageIconRed.getGraphics();
688 g.setColor(red);
689 g.fillRoundRect(10,11, 10, 10, 3, 3);
690 ImageIcon ic = new ImageIcon(imageIconRed);
691 jTableRechnungListe.setValueAt(ic, i, 2);
692 }
693 i++;
694 }
695 }
696 }
697 }
698
699 /** Setzt die Variable isBuilt
700 * @param isBuilt
701 */
702 public void setIsBuilt(boolean isBuilt) {
703 this.isBuilt = isBuilt;
704 }
705
706 /** Wurde das Pane schon einmal aufgebaut, so ist "isBuilt" = TRUE.
707 * Wichtig ist diese Variable f?r die Simulation: Wurde das Pane
708 * schon einmal aufgebaut, so m?ssen die Simulationsthread das Pane
709 * nicht noch einmal initialisieren!
710 * @return boolean
711 */
712 public boolean getIsBuilt() {
713 return isBuilt;
714 }
715
716 /** Setzt die Variable isActive auf TRUE oder FALSE
717 * @param isActive
718 */
719 public void setIsActive(boolean isActive) {
720 this.isActive = isActive;
721 }
722
723 /** Befindet sich der Benutzer auf diesem Pane, so ist "isActive" = TRUE.
724 * Verl?sst der Benutzer das Pane, so ist "isActive" = FALSE.
725 * Wichtig ist diese Variable f?r die Simulation: Es wird nur das Pane
726 * aktualisiert, auf dem sich der Benutzer gerade befindet!
727 * @return boolean
728 */
729 public boolean getIsActive() {
730 return isActive;
731 }
732 }