View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   //CabaWeb
3   //Copyright (C) 2004  Thomas Vogt <Thomas.Vogt@TVC-Software.com>
4   //
5   //This library is free software; you can redistribute it and/or
6   //modify it under the terms of the GNU Lesser General Public
7   //License as published by the Free Software Foundation; either
8   //version 2.1 of the License, or (at your option) any later version.
9   //
10  //This library is distributed in the hope that it will be useful,
11  //but WITHOUT ANY WARRANTY; without even the implied warranty of
12  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  //Lesser General Public License for more details.
14  //
15  //You should have received a copy of the GNU Lesser General Public
16  //License along with this library; if not, write to the Free Software
17  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ////////////////////////////////////////////////////////////////////////////////
19  
20  package org.fhw.cabaweb.calculation;
21  
22  import java.util.ArrayList;
23  import java.util.Collection;
24  import java.util.Iterator;
25  
26  import org.apache.commons.logging.Log;
27  import org.apache.commons.logging.LogFactory;
28  import org.fhw.cabaweb.data.DataInterfaceErgebnissdaten;
29  import org.fhw.cabaweb.data.DataInterfaceProjektgruppen;
30  import org.fhw.cabaweb.data.DataInterfaceVoreinstellungen;
31  import org.fhw.cabaweb.data.constants.Constants;
32  import org.fhw.cabaweb.data.dataobjects.Ergebniss;
33  import org.fhw.cabaweb.data.dataobjects.ForschungUndEntwicklung;
34  import org.fhw.cabaweb.data.dataobjects.GruppeWert;
35  import org.fhw.cabaweb.data.dataobjects.Lizenzverkauf;
36  import org.fhw.cabaweb.data.dataobjects.Marketingeffekt;
37  import org.fhw.cabaweb.data.dataobjects.Marktforschung;
38  import org.fhw.cabaweb.data.dataobjects.PreisAbsatz;
39  import org.fhw.cabaweb.data.dataobjects.ProduktartAbhaengigkeiten;
40  import org.fhw.cabaweb.data.dataobjects.Qualitaetssicherung;
41  import org.fhw.cabaweb.data.dataobjects.Verwaltungskosten;
42  import org.fhw.cabaweb.data.dataobjects.Voreinstellung;
43  import org.fhw.cabaweb.ojb.dataobjects.Projektgruppen;
44  
45  /***
46   * Die Klasse füllt die notwendigen "Tabellen"-Objekte mit Voreinstellungen / Ergebnissen.
47   *
48   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
49   * @version Version 1.0 13.08.2004
50   */
51  public final class ErstelleDatentabellen
52  {
53      /*** Commons Logging Instanz */
54      private static Log log = LogFactory.getLog("org.fhw.cabaweb.calculation.ErstelleDatentabellen");
55  
56      /* ----- Konstruktoren / Destruktoren ----- */
57  
58      /***
59       * Standardkonstruktor der nicht zug&auml;nglich sein soll, da dies eine Utility Klasse ist
60       */
61      protected ErstelleDatentabellen()
62      {
63          throw new UnsupportedOperationException(); // Aufrufe aus eventuellen SubKlassen verhindern
64      }
65  
66  	/***
67       * Generiert die Preis-Absatz Tabelle.
68       *
69       * @param projektnummer Die Projektnummer
70  	 * @return PreisAbsatzTabelle ArrayList
71       */
72      public static final ArrayList PreisAbsatzTabelle(Integer projektnummer)
73      {
74          /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
75          DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
76  
77          ArrayList preisAbsatzTabelle = new ArrayList();
78          Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PREISABSATZ_PREIS_KEY);
79          Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PREISABSATZ_ABSATZ_KEY);
80          Iterator iter_1 = voreinstellungen_1.iterator();
81          Iterator iter_2 = voreinstellungen_2.iterator();
82          Voreinstellung voreinstellung_1 = null;
83          Voreinstellung voreinstellung_2 = null;
84  
85          while (iter_1.hasNext() && iter_2.hasNext())
86          {
87              voreinstellung_1 = (Voreinstellung) iter_1.next();
88              voreinstellung_2 = (Voreinstellung) iter_2.next();
89  
90              preisAbsatzTabelle.add(new PreisAbsatz(((Double) voreinstellung_1.getWertObject()).doubleValue(), ((Integer) voreinstellung_2.getWertObject()).intValue()));
91          }
92  
93          if (log.isDebugEnabled())
94          {
95              log.debug(" '" + preisAbsatzTabelle.toString() + "'");
96          }
97  
98          return preisAbsatzTabelle;
99      }
100 
101     /***
102      *
103      *
104      * @param projektnummer Die Projektnummer
105      */
106     public static final ArrayList MarketingTabelle(Integer projektnummer)
107     {
108         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
109         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
110 
111         ArrayList marketingTabelle = new ArrayList();
112         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_MARKETINGEFFEKT_VORWERT_KEY);
113         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_MARKETINGEFFEKT_EFFEKT_KEY);
114         Iterator iter_1 = voreinstellungen_1.iterator();
115         Iterator iter_2 = voreinstellungen_2.iterator();
116         Voreinstellung voreinstellung_1 = null;
117         Voreinstellung voreinstellung_2 = null;
118 
119         while (iter_1.hasNext() && iter_2.hasNext())
120         {
121             voreinstellung_1 = (Voreinstellung) iter_1.next();
122             voreinstellung_2 = (Voreinstellung) iter_2.next();
123 
124             marketingTabelle.add(new Marketingeffekt(((Double) voreinstellung_1.getWertObject()).doubleValue(), ((Double) voreinstellung_2.getWertObject()).doubleValue()));
125         }
126 
127         if (log.isDebugEnabled())
128         {
129             log.debug(" '" + marketingTabelle.toString() + "'");
130         }
131 
132         return marketingTabelle;
133     }
134 
135     /***
136      *
137      *
138      * @param projektnummer Die Projektnummer
139      */
140     public static final ArrayList MarktforschungTabelle(Integer projektnummer)
141     {
142         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
143         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
144 
145         ArrayList marktforschungTabelle = new ArrayList();
146         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_MARKTFORSCHUNG_STUFE_KEY);
147         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_MARKTFORSCHUNG_KOSTEN_KEY);
148         Iterator iter_1 = voreinstellungen_1.iterator();
149         Iterator iter_2 = voreinstellungen_2.iterator();
150         Voreinstellung voreinstellung_1 = null;
151         Voreinstellung voreinstellung_2 = null;
152 
153         while (iter_1.hasNext() && iter_2.hasNext())
154         {
155             voreinstellung_1 = (Voreinstellung) iter_1.next();
156             voreinstellung_2 = (Voreinstellung) iter_2.next();
157 
158             marktforschungTabelle.add(new Marktforschung(((Integer) voreinstellung_1.getWertObject()).intValue(), ((Double) voreinstellung_2.getWertObject()).doubleValue()));
159         }
160 
161         if (log.isDebugEnabled())
162         {
163             log.debug(" '" + marktforschungTabelle.toString() + "'");
164         }
165 
166         return marktforschungTabelle;
167     }
168 
169     /***
170      *
171      *
172      * @param projektnummer Die Projektnummer
173      */
174     public static final ArrayList ProduktArtAbhaengigkeitenTabelle(Integer projektnummer)
175     {
176         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
177         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
178 
179         ArrayList produktArtAbhaengigkeitenTabelle = new ArrayList();
180         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PRODUKTARTABHAENGIGKEITEN_PRODUKTART_KEY);
181         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PRODUKTARTABHAENGIGKEITEN_PRODUKTARTEFFEKT_KEY);
182         Collection voreinstellungen_3 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PRODUKTARTABHAENGIGKEITEN_FERTIGUNGSZEIT_KEY);
183         Collection voreinstellungen_4 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_PRODUKTARTABHAENGIGKEITEN_VERBRAUCH_KEY);
184         Iterator iter_1 = voreinstellungen_1.iterator();
185         Iterator iter_2 = voreinstellungen_2.iterator();
186         Iterator iter_3 = voreinstellungen_3.iterator();
187         Iterator iter_4 = voreinstellungen_4.iterator();
188         Voreinstellung voreinstellung_1 = null;
189         Voreinstellung voreinstellung_2 = null;
190         Voreinstellung voreinstellung_3 = null;
191         Voreinstellung voreinstellung_4 = null;
192 
193         while (iter_1.hasNext() && iter_2.hasNext() && iter_3.hasNext() && iter_4.hasNext())
194         {
195             voreinstellung_1 = (Voreinstellung) iter_1.next();
196             voreinstellung_2 = (Voreinstellung) iter_2.next();
197             voreinstellung_3 = (Voreinstellung) iter_3.next();
198             voreinstellung_4 = (Voreinstellung) iter_4.next();
199 
200             produktArtAbhaengigkeitenTabelle.add(new ProduktartAbhaengigkeiten(((Integer) voreinstellung_1.getWertObject()).intValue(), ((Double) voreinstellung_2.getWertObject()).doubleValue(), ((Double) voreinstellung_3.getWertObject()).doubleValue(), ((Double) voreinstellung_4.getWertObject()).doubleValue()));
201         }
202 
203         if (log.isDebugEnabled())
204         {
205             log.debug(" '" + produktArtAbhaengigkeitenTabelle.toString() + "'");
206         }
207 
208         return produktArtAbhaengigkeitenTabelle;
209     }
210 
211     /***
212      *
213      *
214      * @param projektnummer Die Projektnummer
215      */
216     public static final ArrayList ForschungUndEntwicklungTabelle(Integer projektnummer)
217     {
218         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
219         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
220 
221         ArrayList forschungUndEntwicklungTabelle = new ArrayList();
222         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_FORSCHUNGUNDENTWICKLUNG_KOSTEN_KEY);
223         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_FORSCHUNGUNDENTWICKLUNG_PRODUKTART_KEY);
224         Iterator iter_1 = voreinstellungen_1.iterator();
225         Iterator iter_2 = voreinstellungen_2.iterator();
226         Voreinstellung voreinstellung_1 = null;
227         Voreinstellung voreinstellung_2 = null;
228 
229         while (iter_1.hasNext() && iter_2.hasNext())
230         {
231             voreinstellung_1 = (Voreinstellung) iter_1.next();
232             voreinstellung_2 = (Voreinstellung) iter_2.next();
233 
234             forschungUndEntwicklungTabelle.add(new ForschungUndEntwicklung(((Double) voreinstellung_1.getWertObject()).doubleValue(), ((Integer) voreinstellung_2.getWertObject()).intValue()));
235         }
236 
237         if (log.isDebugEnabled())
238         {
239             log.debug(" '" + forschungUndEntwicklungTabelle.toString() + "'");
240         }
241 
242         return forschungUndEntwicklungTabelle;
243     }
244 
245     /***
246      *
247      *
248      * @param projektnummer Die Projektnummer
249      */
250     public static final ArrayList QualitaetssicherungTabelle(Integer projektnummer)
251     {
252         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
253         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
254 
255         ArrayList qualitaetssicherungTabelle = new ArrayList();
256         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_QUALITAETSSICHERUNG_AUSGABEN_KEY);
257         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_QUALITAETSSICHERUNG_FEHLERRATE_KEY);
258         Collection voreinstellungen_3 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_QUALITAETSSICHERUNG_AUSSCHUSSRATE_KEY);
259         Iterator iter_1 = voreinstellungen_1.iterator();
260         Iterator iter_2 = voreinstellungen_2.iterator();
261         Iterator iter_3 = voreinstellungen_3.iterator();
262         Voreinstellung voreinstellung_1 = null;
263         Voreinstellung voreinstellung_2 = null;
264         Voreinstellung voreinstellung_3 = null;
265 
266         while (iter_1.hasNext() && iter_2.hasNext() && iter_3.hasNext())
267         {
268             voreinstellung_1 = (Voreinstellung) iter_1.next();
269             voreinstellung_2 = (Voreinstellung) iter_2.next();
270             voreinstellung_3 = (Voreinstellung) iter_3.next();
271 
272             qualitaetssicherungTabelle.add(new Qualitaetssicherung(((Double) voreinstellung_1.getWertObject()).doubleValue(), ((Double) voreinstellung_2.getWertObject()).doubleValue(), ((Double) voreinstellung_3.getWertObject()).doubleValue()));
273         }
274 
275         if (log.isDebugEnabled())
276         {
277             log.debug(" '" + qualitaetssicherungTabelle.toString() + "'");
278         }
279 
280         return qualitaetssicherungTabelle;
281     }
282 
283     /***
284      *
285      *
286      * @param projektnummer Die Projektnummer
287      */
288     public static final ArrayList VerwaltungTabelle(Integer projektnummer)
289     {
290         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
291         DataInterfaceVoreinstellungen div = new DataInterfaceVoreinstellungen();
292 
293         ArrayList verwaltungTabelle = new ArrayList();
294         Collection voreinstellungen_1 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_VERWALTUNGSKOSTEN_KAPAZITAETSAUSLASTUNG_KEY);
295         Collection voreinstellungen_2 = div.sucheKombination_Untergruppierung(projektnummer, Constants.VUG_VERWALTUNGSKOSTEN_KOSTEN_KEY);
296         Iterator iter_1 = voreinstellungen_1.iterator();
297         Iterator iter_2 = voreinstellungen_2.iterator();
298         Voreinstellung voreinstellung_1 = null;
299         Voreinstellung voreinstellung_2 = null;
300 
301         while (iter_1.hasNext() && iter_2.hasNext())
302         {
303             voreinstellung_1 = (Voreinstellung) iter_1.next();
304             voreinstellung_2 = (Voreinstellung) iter_2.next();
305 
306             verwaltungTabelle.add(new Verwaltungskosten(((Double) voreinstellung_1.getWertObject()).doubleValue(), ((Double) voreinstellung_2.getWertObject()).doubleValue()));
307         }
308 
309         if (log.isDebugEnabled())
310         {
311             log.debug(" '" + verwaltungTabelle.toString() + "'");
312         }
313 
314         return verwaltungTabelle;
315     }
316 
317     /***
318      *
319      *
320      * @param projektnummer Die Projektnummer
321      * @param quartal       Das Quartal
322      */
323     public static final ArrayList AbsetzbareMengenTabelle(Integer projektnummer, Integer quartal)
324     {
325         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
326         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
327         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
328         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
329 
330         ArrayList absetzbareMengenTabelle = new ArrayList();
331         Collection absetzbareMengen = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENABSETZBAREMENGE_KEY);
332         Iterator iter = absetzbareMengen.iterator();
333         Ergebniss absetzbareMenge = null;
334 
335         while (iter.hasNext())
336         {
337             absetzbareMenge = (Ergebniss) iter.next();
338 
339             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(absetzbareMenge.getGruppennummer());
340 
341             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
342             {
343                 if (log.isDebugEnabled())
344                 {
345                     log.debug(" WRONG GROUP - NOTHING TO DO");
346                 }
347             }
348             else
349                 absetzbareMengenTabelle.add(new GruppeWert(absetzbareMenge.getGruppennummer(), (Double) absetzbareMenge.getObjectWert()));
350         }
351 
352         if (log.isDebugEnabled())
353         {
354             log.debug(" '" + absetzbareMengenTabelle.toString() + "'");
355         }
356 
357         return absetzbareMengenTabelle;
358     }
359 
360     /***
361      *
362      *
363      * @param projektnummer Die Projektnummer
364      * @param quartal       Das Quartal
365      */
366     public static final ArrayList FertigProdukteTabelle(Integer projektnummer, Integer quartal)
367     {
368         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
369         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
370         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
371         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
372 
373         ArrayList fertigProdukteTabelle = new ArrayList();
374         Collection fertigProdukte = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_ALLGEMEINFERTIGPRODUKTEGESAMT_KEY);
375         Iterator iter = fertigProdukte.iterator();
376         Ergebniss fertigProdukt = null;
377 
378         while (iter.hasNext())
379         {
380             fertigProdukt = (Ergebniss) iter.next();
381 
382             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(fertigProdukt.getGruppennummer());
383 
384             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
385             {
386                 if (log.isDebugEnabled())
387                 {
388                     log.debug(" WRONG GROUP - NOTHING TO DO");
389                 }
390             }
391             else
392                 fertigProdukteTabelle.add(new GruppeWert(fertigProdukt.getGruppennummer(), (Double) fertigProdukt.getObjectWert()));
393         }
394 
395         if (log.isDebugEnabled())
396         {
397             log.debug(" '" + fertigProdukteTabelle.toString() + "'");
398         }
399 
400         return fertigProdukteTabelle;
401     }
402 
403     /***
404      *
405      *
406      * @param projektnummer Die Projektnummer
407      * @param quartal       Das Quartal
408      */
409     public static final ArrayList TatsaechlicherAbsatzTabelle(Integer projektnummer, Integer quartal)
410     {
411         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
412         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
413         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
414         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
415 
416         ArrayList tatsaechlicherAbsatzTabelle = new ArrayList();
417         Collection tatsaechlicheAbsaetze = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENABGESETZTEMENGE_KEY);
418         Iterator iter = tatsaechlicheAbsaetze.iterator();
419         Ergebniss tatsaechlicherAbsatz = null;
420 
421         while (iter.hasNext())
422         {
423             tatsaechlicherAbsatz = (Ergebniss) iter.next();
424 
425             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(tatsaechlicherAbsatz.getGruppennummer());
426 
427             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
428             {
429                 if (log.isDebugEnabled())
430                 {
431                     log.debug(" WRONG GROUP - NOTHING TO DO");
432                 }
433             }
434             else
435                 tatsaechlicherAbsatzTabelle.add(new GruppeWert(tatsaechlicherAbsatz.getGruppennummer(), (Double) tatsaechlicherAbsatz.getObjectWert()));
436         }
437 
438         if (log.isDebugEnabled())
439         {
440             log.debug(" '" + tatsaechlicherAbsatzTabelle.toString() + "'");
441         }
442 
443         return tatsaechlicherAbsatzTabelle;
444     }
445 
446     /***
447      *
448      *
449      * @param projektnummer Die Projektnummer
450      * @param quartal       Das Quartal
451      */
452     public static final ArrayList DefiziteTabelle(Integer projektnummer, Integer quartal)
453     {
454         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
455         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
456         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
457         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
458 
459         ArrayList defiziteTabelle = new ArrayList();
460         Collection defizite = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENLIEFERDEFIZIT_KEY);
461         Iterator iter = defizite.iterator();
462         Ergebniss defizit = null;
463 
464         while (iter.hasNext())
465         {
466             defizit = (Ergebniss) iter.next();
467 
468             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(defizit.getGruppennummer());
469 
470             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
471             {
472                 if (log.isDebugEnabled())
473                 {
474                     log.debug(" WRONG GROUP - NOTHING TO DO");
475                 }
476             }
477             else
478                 defiziteTabelle.add(new GruppeWert(defizit.getGruppennummer(), (Double) defizit.getObjectWert()));
479         }
480 
481         if (log.isDebugEnabled())
482         {
483             log.debug(" '" + defiziteTabelle.toString() + "'");
484         }
485 
486         return defiziteTabelle;
487     }
488 
489     /***
490      *
491      *
492      * @param projektnummer Die Projektnummer
493      * @param quartal       Das Quartal
494      */
495     public static final ArrayList UmsatzTabelle(Integer projektnummer, Integer quartal)
496     {
497         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
498         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
499         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
500         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
501 
502         ArrayList umsatzTabelle = new ArrayList();
503         Collection umsaetze = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_ERFOLGSRECHNUNGUMSATZERLOESE_KEY);
504         Iterator iter = umsaetze.iterator();
505         Ergebniss umsatz = null;
506 
507         while (iter.hasNext())
508         {
509             umsatz = (Ergebniss) iter.next();
510 
511             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(umsatz.getGruppennummer());
512 
513             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
514             {
515                 if (log.isDebugEnabled())
516                 {
517                     log.debug(" WRONG GROUP - NOTHING TO DO");
518                 }
519             }
520             else
521                 umsatzTabelle.add(new GruppeWert(umsatz.getGruppennummer(), (Double) umsatz.getObjectWert()));
522         }
523 
524         if (log.isDebugEnabled())
525         {
526             log.debug(" '" + umsatzTabelle.toString() + "'");
527         }
528 
529         return umsatzTabelle;
530     }
531 
532     /***
533      *
534      *
535      * @param projektnummer Die Projektnummer
536      * @param quartal       Das Quartal
537      */
538     public static final ArrayList WirksamerPreisTabelle(Integer projektnummer, Integer quartal)
539     {
540         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
541         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
542         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
543         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
544 
545         if (log.isDebugEnabled())
546         {
547             log.debug(" Projekt Nummer : '" + projektnummer + "' Quartal : '" + quartal + "'");
548         }
549 
550         ArrayList wirksamerPreisTabelle = new ArrayList();
551         Collection wirksamePreise = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENVERKAUFSPREISWIRKSAM_KEY);
552         Iterator iter = wirksamePreise.iterator();
553         Ergebniss wirksamerPreis = null;
554 
555         while (iter.hasNext())
556         {
557             wirksamerPreis = (Ergebniss) iter.next();
558 
559             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(wirksamerPreis.getGruppennummer());
560 
561             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
562             {
563                 if (log.isDebugEnabled())
564                 {
565                     log.debug(" WRONG GROUP - NOTHING TO DO");
566                 }
567             }
568             else
569                 wirksamerPreisTabelle.add(new GruppeWert(wirksamerPreis.getGruppennummer(), (Double) wirksamerPreis.getObjectWert()));
570         }
571 
572         if (log.isDebugEnabled())
573         {
574             log.debug(" '" + wirksamerPreisTabelle.toString() + "'");
575         }
576 
577         return wirksamerPreisTabelle;
578     }
579 
580     /***
581      *
582      *
583      * @param projektnummer Die Projektnummer
584      * @param quartal       Das Quartal
585      */
586     public static final ArrayList LizenzverkaufTabelle(Integer projektnummer, Integer quartal)
587     {
588         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
589         DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
590         /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
591         DataInterfaceProjektgruppen dipg = new DataInterfaceProjektgruppen();
592 
593         ArrayList lizenzverkaufTabelle = new ArrayList();
594         Collection produktartVerkauf = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENLIZENZVERKAUFPRODUKTART_KEY);
595         Collection unternehmenVerkauf = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENLIZENZVERKAUFUNTERNEHMEN_KEY);
596         Collection unternehmenErwerb = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENLIZENZERWERBUNTERNEHMEN_KEY);
597         Collection kostenErwerb = die.sucheKombination_Feld(projektnummer, quartal, Constants.EF_GRUNDDATENLIZENZERWERBSKOSTEN_KEY);
598         Iterator iter_1 = produktartVerkauf.iterator();
599         Iterator iter_2 = unternehmenVerkauf.iterator();
600         Iterator iter_3 = unternehmenErwerb.iterator();
601         Iterator iter_4 = kostenErwerb.iterator();
602         Ergebniss produktartVerkaufWert = null;
603         Ergebniss unternehmenVerkaufWert = null;
604         Ergebniss unternehmenErwerbWert = null;
605         Ergebniss kostenErwerbWert = null;
606 
607         while (iter_1.hasNext() && iter_2.hasNext() && iter_3.hasNext() && iter_4.hasNext())
608         {
609             produktartVerkaufWert = (Ergebniss) iter_1.next();
610             unternehmenVerkaufWert = (Ergebniss) iter_2.next();
611             unternehmenErwerbWert = (Ergebniss) iter_3.next();
612             kostenErwerbWert = (Ergebniss) iter_4.next();
613 
614             Projektgruppen projektgruppe = (Projektgruppen) dipg.sucheGruppennummer(produktartVerkaufWert.getGruppennummer());
615 
616             if (projektgruppe.getAktiv().booleanValue() == false || projektgruppe.getGruppenname().compareTo("Default") == 0 || projektgruppe.getGruppenname().compareTo("Projektleiter") == 0 || projektgruppe.getGruppenname().compareTo("Administratorgruppe") == 0)
617             {
618                 if (log.isDebugEnabled())
619                 {
620                     log.debug(" WRONG GROUP - NOTHING TO DO");
621                 }
622             }
623             else
624             {
625                 int produktartVerkaufI = 0;
626                 int unternehmenVerkaufI = 0;
627                 int unternehmenErwerbI = 0;
628                 double kostenErwerbD = 0.0;
629 
630                 if (produktartVerkaufWert.getObjectWert() != null)
631                     produktartVerkaufI = ((Integer) produktartVerkaufWert.getObjectWert()).intValue();
632                 if (unternehmenVerkaufWert.getObjectWert() != null)
633                     unternehmenVerkaufI = ((Integer) unternehmenVerkaufWert.getObjectWert()).intValue();
634                 if (unternehmenErwerbWert.getObjectWert() != null)
635                     unternehmenErwerbI = ((Integer) unternehmenErwerbWert.getObjectWert()).intValue();
636                 if (kostenErwerbWert.getObjectWert() != null)
637                     kostenErwerbD = ((Double) kostenErwerbWert.getObjectWert()).doubleValue();
638 
639                 lizenzverkaufTabelle.add(new Lizenzverkauf((Integer) produktartVerkaufWert.getGruppennummer(), produktartVerkaufI, unternehmenVerkaufI, unternehmenErwerbI, kostenErwerbD));
640             }
641         }
642 
643         if (log.isDebugEnabled())
644         {
645             log.debug(" '" + lizenzverkaufTabelle.toString() + "'");
646         }
647 
648         return lizenzverkaufTabelle;
649     }
650 }