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  package org.fhw.cabaweb.webfrontend.actions.save;
20  
21  import java.util.Collection;
22  import java.util.Iterator;
23  
24  import javax.servlet.http.HttpServletRequest;
25  import javax.servlet.http.HttpServletResponse;
26  import javax.servlet.http.HttpSession;
27  
28  import org.apache.struts.action.Action;
29  import org.apache.struts.action.ActionForm;
30  import org.apache.struts.action.ActionForward;
31  import org.apache.struts.action.ActionMapping;
32  
33  import org.apache.struts.util.MessageResources;
34  import org.apache.struts.validator.DynaValidatorForm;
35  
36  import org.apache.commons.logging.Log;
37  import org.apache.commons.logging.LogFactory;
38  
39  import org.fhw.cabaweb.data.DataInterfaceErgebnissdaten;
40  import org.fhw.cabaweb.data.DataInterfaceErgebnissdatenGruppierungsnamen;
41  import org.fhw.cabaweb.data.DataInterfaceGruppenmitglieder;
42  import org.fhw.cabaweb.data.constants.Constants;
43  import org.fhw.cabaweb.data.dataobjects.Ergebniss;
44  
45  import org.fhw.cabaweb.ojb.dataobjects.Ergebnissdaten_Gruppierungsnamen;
46  import org.fhw.cabaweb.ojb.dataobjects.Gruppenmitglieder;
47  import org.fhw.cabaweb.webfrontend.configs.Keys;
48  
49  /***
50   * <strong>Action</strong>-Klasse f&uuml;r die Save Entscheidung Action .
51   * Die Controller Klasse der Struts Model View Controller Architektur.
52   *
53   * @author  <a href="mailto:thomas.vogt@tvc-software.com">Thomas Vogt</a>
54   * @version Version 1.0 28.07.2004
55   */
56  public final class SaveEntscheidungAction extends Action {
57  
58      /***
59       * The <code>Log</code> instance for this application.
60       */
61      private Log log = LogFactory.getLog("org.fhw.cabaweb.webfrontend.actions.save");
62  
63      /***
64       * Verarbeiten der spezifizierten HTTP Anfrage und erzeugen der zugeordneten
65       * HTTP Antwort bzw. Forwarden an eine andere Web Komponente, die die Antwort 
66       * erzeugt.  
67       * 
68       * Gibt eine <code>ActionForward</code> Instanz zurück die angibt wohin und wie
69       * die Kontrolle weitergegeben werden soll. Kann auch <code>null</code> sein, 
70       * wenn die Anfrage bereits bearbeitet wurde.
71       * 
72       * @param mapping Das ActionMapping das benutzt wurde um diese Instanz zu selektieren
73       * @param form Das optionale ActionForm Bean für die Anfrage (soweit vorhanden)
74       * @param request Die HTTP Anfrage die wir gerade bearbeiten
75       * @param response The HTTP Antwort die wir erzeugen
76       *
77       * @return Die Action zu der wir weiterleiten
78       * @exception Exception wenn ein Eingabe-/Ausgabe Fehler auftritt oder eine Servlet Exception auftritt
79       *            bzw. die Business Logik einen Fehler verursacht 
80       */
81      public ActionForward execute(ActionMapping mapping,
82  				                 ActionForm form,
83                                   HttpServletRequest request,
84                                   HttpServletResponse response)
85      throws Exception {
86          /*** Forwarding Action Variable mit null initialisieren */
87  //        ActionForward forward = null;
88          /*** Die Locale Variable (Sprache, Formatierung, etc.) */
89  //        Locale locale = getLocale(request);
90  
91          /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
92          DataInterfaceErgebnissdatenGruppierungsnamen diegn = new DataInterfaceErgebnissdatenGruppierungsnamen();
93          /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
94          DataInterfaceGruppenmitglieder digm = new DataInterfaceGruppenmitglieder();
95          /*** Data Interface (indirekter Zugriff auf die OJB Ebene) initialisieren */
96          DataInterfaceErgebnissdaten die = new DataInterfaceErgebnissdaten();
97          /*** Die Resourcen (lokalisierten Meldungen) der Anfrage holen */
98          MessageResources messages = getResources(request, "EntscheidungenResources");
99          /*** Die Session der aktuellen Anfrage */
100         HttpSession session = request.getSession();
101         /*** Das übergebene Formular */
102         DynaValidatorForm dvform = (DynaValidatorForm) form;
103         /*** Die übergebene Action */
104         String action = (String) dvform.get("action");
105 
106         /*** Zwischenspeichvaribale für den Rückgabewert */
107         boolean returnvalue = false;
108         /*** Zwischenspeichvaribale für die Entscheidung */
109         Collection entscheidungen = null;
110 
111         /*** Zwischenspeichvaribale für den Status des Benutzers (Administrator ???) */
112         boolean isAdmin = request.isUserInRole("Administrator");
113         /*** Zwischenspeichvaribale für den Status des Benutzers (Projektleiter ???) */
114         boolean isProjectleader = false;
115         /*** Zwischenspeichvaribale für den Status des Benutzers (Benutzer ???) */
116         boolean isUser = false;
117         /*** Zwischenspeichvaribale für den Namen des Benutzers */
118         String username = request.getRemoteUser();
119 
120         if(!isAdmin)
121         {
122             isProjectleader = request.isUserInRole("Projektleiter");
123         }
124         if(!isAdmin && !isProjectleader)
125         {
126             isUser = request.isUserInRole("Benutzer");
127         }
128 
129     	if (action == null) 
130     	{
131     	    action = "?";
132         }
133         
134         if (log.isDebugEnabled()) 
135         {
136             log.debug("SaveEntscheidungAction: Processing " + action + " action");
137             if(isAdmin)
138             {
139                 log.debug(" User has Role: Administrator");
140             }
141             else if(isProjectleader)
142             {
143                 log.debug(" User has Role: Projectleader");
144             }
145             else if(isUser)
146             {
147                 log.debug(" User has Role: User");
148             }
149         }
150     
151     	// Was this transaction cancelled?
152     	if (isCancelled(request)) 
153     	{
154             if (log.isDebugEnabled()) 
155             {
156                 log.debug(" Transaction '" + action + "' was cancelled");
157             }
158             
159             session.removeAttribute(Keys.ENTSCHEIDUNGEN_KEY);
160     	    return (mapping.findForward("success"));
161     	}
162 
163         Collection usernames = digm.sucheLogInName(username);
164         Iterator iter = usernames.iterator();
165         Gruppenmitglieder user = null;
166         
167         if(iter.hasNext())
168         {
169             user = (Gruppenmitglieder) iter.next();
170 
171             if (log.isDebugEnabled()) 
172             {
173                 log.debug("SaveEntscheidungAction: User '" + user.toString() + "'");
174             }
175         }         
176 
177         Integer projektnummer = user.getProjektgruppe().getProjekte().getProjektnummer();
178         Integer gruppennummer = user.getProjektgruppe().getGruppennummer();
179         Integer quartal = user.getProjektgruppe().getProjekte().getAktuellesQuartal();
180 
181         entscheidungen = (Collection) session.getAttribute(Keys.ENTSCHEIDUNGEN_KEY);
182 
183         if (entscheidungen == null) 
184         {
185             if (log.isDebugEnabled()) 
186             {
187                 log.debug(" In Session saved Entscheidung is NULL.");
188             }
189                     
190         
191             // All required validations were done by the form itself
192             if (log.isDebugEnabled()) 
193             {
194                 log.debug(" Populating database from form bean");
195             }
196         }
197 
198         Collection gruppierungsnamen = diegn.sucheKombination(null, projektnummer, Constants.EG_ENTSCHEIDUNGEN_KEY);
199         iter = gruppierungsnamen.iterator();
200         Ergebnissdaten_Gruppierungsnamen gruppierungsname = null;
201         Integer gruppierungsnummer = null;
202         
203         if(iter.hasNext())
204         {
205             gruppierungsname = (Ergebnissdaten_Gruppierungsnamen) iter.next();
206 
207             gruppierungsnummer = gruppierungsname.getGruppierungsnummer();
208                 
209             if (log.isDebugEnabled()) 
210             {
211                 log.debug(" Group Nr. '" + gruppierungsname.getGruppierungsnummer() + "'");
212             }
213         }
214 
215         entscheidungen = die.sucheKombination_Gruppierung(projektnummer, gruppennummer,  new Integer(quartal.intValue() + 1), gruppierungsnummer);
216 
217         Iterator entscheidungsiterator = entscheidungen.iterator();
218         while(entscheidungsiterator.hasNext())
219         {
220             Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
221                     
222             if(entscheidung == null)
223             {
224                 entscheidungsiterator.remove();
225             }
226         }
227 
228         try
229         {
230 //            Iterator entscheidungsiterator = entscheidungen.iterator();
231             entscheidungsiterator = entscheidungen.iterator();
232             while(entscheidungsiterator.hasNext())
233             {
234                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
235                     
236                 if(entscheidung == null)
237                 {
238                     entscheidungsiterator.remove();
239                 }
240             }
241             
242             entscheidungsiterator = entscheidungen.iterator();
243             while(entscheidungsiterator.hasNext())
244             {
245                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
246 
247                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGVERKAUFSPREIS_KEY) == 0)
248                 {
249                     if (log.isDebugEnabled()) 
250                     {
251                         log.debug("preis '" + dvform.get("preis") + "'");
252                     }
253                     
254                     entscheidung.setObjectWert(new Double((String) dvform.get("preis")));
255                     break;
256                 }
257             }
258             entscheidungsiterator = entscheidungen.iterator();
259             while(entscheidungsiterator.hasNext())
260             {
261                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
262                     
263                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGMARKETING_KEY) == 0)
264                 {
265                     if (log.isDebugEnabled()) 
266                     {
267                         log.debug("marketing '" + dvform.get("marketing") + "'");
268                     }
269                     
270                     entscheidung.setObjectWert(new Integer((String) dvform.get("marketing")));
271                     break;
272                 }
273             }
274             entscheidungsiterator = entscheidungen.iterator();
275             while(entscheidungsiterator.hasNext())
276             {
277                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
278                     
279                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGMARKTFORSCHUNGSDIENST_KEY) == 0)
280                 {
281                     if (log.isDebugEnabled()) 
282                     {
283                         log.debug("marktforschung '" + dvform.get("marktforschung") + "'");
284                     }
285                     
286                     entscheidung.setObjectWert(new Integer((String) dvform.get("marktforschung")));
287                     break;
288                 }
289             }
290             entscheidungsiterator = entscheidungen.iterator();
291             while(entscheidungsiterator.hasNext())
292             {
293                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
294                     
295                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGABSETZBAREMENGE_KEY) == 0)
296                 {
297                     if (log.isDebugEnabled()) 
298                     {
299                         log.debug("absetzbaremenge '" + dvform.get("absetzbaremenge") + "'");
300                     }
301                     
302                     entscheidung.setObjectWert(new Integer((String) dvform.get("absetzbaremenge")));
303                     break;
304                 }
305             }
306             entscheidungsiterator = entscheidungen.iterator();
307             while(entscheidungsiterator.hasNext())
308             {
309                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
310                     
311                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGPRODUKTART_KEY) == 0)
312                 {
313                     if (log.isDebugEnabled()) 
314                     {
315                         log.debug("produktart '" + dvform.get("produktart") + "'");
316                     }
317                     
318                     entscheidung.setObjectWert(new Integer((String) dvform.get("produktart")));
319                     break;
320                 }
321             }
322             entscheidungsiterator = entscheidungen.iterator();
323             while(entscheidungsiterator.hasNext())
324             {
325                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
326                     
327                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGPRODUKTIONSMENGE_KEY) == 0)
328                 {
329                     if (log.isDebugEnabled()) 
330                     {
331                         log.debug("produktionsmenge '" + dvform.get("produktionsmenge") + "'");
332                     }
333                     
334                     entscheidung.setObjectWert(new Integer((String) dvform.get("produktionsmenge")));
335                     break;
336                 }
337             }
338             entscheidungsiterator = entscheidungen.iterator();
339             while(entscheidungsiterator.hasNext())
340             {
341                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
342                     
343                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGQUALITAETSSICHERUNG_KEY) == 0)
344                 {
345                     if (log.isDebugEnabled()) 
346                     {
347                         log.debug("qualitaetssicherung '" + dvform.get("qualitaetssicherung") + "'");
348                     }
349                     
350                     entscheidung.setObjectWert(new Double((String) dvform.get("qualitaetssicherung")));
351                     break;
352                 }
353             }
354             entscheidungsiterator = entscheidungen.iterator();
355             while(entscheidungsiterator.hasNext())
356             {
357                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
358                     
359                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGQSKOSTENMINIMUM_KEY) == 0)
360                 {
361                     if (log.isDebugEnabled()) 
362                     {
363                         log.debug("qsoptimal '" + dvform.get("qsoptimal") + "'");
364                     }
365                     
366                     entscheidung.setObjectWert(new Double((String) dvform.get("qsoptimal")));
367                     break;
368                 }
369             }
370             entscheidungsiterator = entscheidungen.iterator();
371             while(entscheidungsiterator.hasNext())
372             {
373                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
374                     
375                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGKAPAZITAETSAUSLASTUNG_KEY) == 0)
376                 {
377                     if (log.isDebugEnabled()) 
378                     {
379                         log.debug("kapazitaetsauslastung '" + dvform.get("kapazitaetsauslastung") + "'");
380                     }
381                     
382                     entscheidung.setObjectWert(new Double((String) dvform.get("kapazitaetsauslastung")));
383                     break;
384                 }
385             }
386             entscheidungsiterator = entscheidungen.iterator();
387             while(entscheidungsiterator.hasNext())
388             {
389                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
390                     
391                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGINVESTITIONEN_KEY) == 0)
392                 {
393                     if (log.isDebugEnabled()) 
394                     {
395                         log.debug("investition '" + dvform.get("investition") + "'");
396                     }
397                     
398                     entscheidung.setObjectWert(new Integer((String) dvform.get("investition")));
399                     break;
400                 }
401             }
402             entscheidungsiterator = entscheidungen.iterator();
403             while(entscheidungsiterator.hasNext())
404             {
405                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
406                     
407                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGROHSTOFFBESTELLUNGNORMAL_KEY) == 0)
408                 {
409                     if (log.isDebugEnabled()) 
410                     {
411                         log.debug("rohstoffnormal " + dvform.get("rohstoffnormal") + "'");
412                     }
413                     
414                     entscheidung.setObjectWert(new Integer((String) dvform.get("rohstoffnormal")));
415                     break;
416                 }
417             }
418             entscheidungsiterator = entscheidungen.iterator();
419             while(entscheidungsiterator.hasNext())
420             {
421                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
422                     
423                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGROHSTOFFBESTELLUNGEXPRESS_KEY) == 0)
424                 {
425                     if (log.isDebugEnabled()) 
426                     {
427                         log.debug("rohstoffexpress '" + dvform.get("rohstoffexpress") + "'");
428                     }
429                     
430                     entscheidung.setObjectWert(new Integer((String) dvform.get("rohstoffexpress")));
431                     break;
432                 }
433             }
434             entscheidungsiterator = entscheidungen.iterator();
435             while(entscheidungsiterator.hasNext())
436             {
437                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
438                     
439                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGDIVIDENDE_KEY) == 0)
440                 {
441                     if (log.isDebugEnabled()) 
442                     {
443                         log.debug("dividende '" + dvform.get("dividende") + "'");
444                     }
445                     
446                     entscheidung.setObjectWert(new Integer((String) dvform.get("dividende")));
447                     break;
448                 }
449             }
450             entscheidungsiterator = entscheidungen.iterator();
451             while(entscheidungsiterator.hasNext())
452             {
453                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
454                     
455                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGAENDERUNGBANKDARLEHEN_KEY) == 0)
456                 {
457                     if (log.isDebugEnabled()) 
458                     {
459                         log.debug("aenderungvereinbarterkredit '" + dvform.get("aenderungvereinbarterkredit") + "'");
460                     }
461                     
462                     entscheidung.setObjectWert(new Integer((String) dvform.get("aenderungvereinbarterkredit")));
463                     break;
464                 }
465             }
466             entscheidungsiterator = entscheidungen.iterator();
467             while(entscheidungsiterator.hasNext())
468             {
469                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
470                     
471                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGERHOEHUNGTILGUNG_KEY) == 0)
472                 {
473                     if (log.isDebugEnabled()) 
474                     {
475                         log.debug("erhoehungoderverminderung '" + dvform.get("erhoehungoderverminderung") + "'");
476                     }
477                     
478                     entscheidung.setObjectWert(new Integer((String) dvform.get("erhoehungoderverminderung")));
479                     break;
480                 }
481             }
482             entscheidungsiterator = entscheidungen.iterator();
483             while(entscheidungsiterator.hasNext())
484             {
485                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
486                     
487                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGZINSEN_KEY) == 0)
488                 {
489                     if (log.isDebugEnabled()) 
490                     {
491                         log.debug("zinsen '" + dvform.get("zinsen") + "'");
492                     }
493                     
494                     entscheidung.setObjectWert(new Integer((String) dvform.get("zinsen")));
495                     break;
496                 }
497             }
498             entscheidungsiterator = entscheidungen.iterator();
499             while(entscheidungsiterator.hasNext())
500             {
501                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
502                     
503                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGLIQUIDITAETSAENDERUNG_KEY) == 0)
504                 {
505                     if (log.isDebugEnabled()) 
506                     {
507                         log.debug("liquiditaetsaenderung '" + dvform.get("liquiditaetsaenderung") + "'");
508                     }
509                     
510                     entscheidung.setObjectWert(new Integer(((String) dvform.get("liquiditaetsaenderung")).replaceAll("//+", "")));
511                     break;
512                 }
513             }
514             entscheidungsiterator = entscheidungen.iterator();
515             while(entscheidungsiterator.hasNext())
516             {
517                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
518                     
519                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGFUNDE_KEY) == 0)
520                 {
521                     if (log.isDebugEnabled()) 
522                     {
523                         log.debug("forschung '" + dvform.get("forschung") + "'");
524                     }
525                     
526                     entscheidung.setObjectWert(new Integer((String) dvform.get("forschung")));
527                     break;
528                 }
529             }
530             entscheidungsiterator = entscheidungen.iterator();
531             while(entscheidungsiterator.hasNext())
532             {
533                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
534                     
535                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGGRENZGEWINN_KEY) == 0)
536                 {
537                     if (log.isDebugEnabled()) 
538                     {
539                         log.debug("grenzgewinn '" + dvform.get("grenzgewinn") + "'");
540                     }
541                     
542                     entscheidung.setObjectWert(new Double((String) dvform.get("grenzgewinn")));
543                     break;
544                 }
545             }
546             entscheidungsiterator = entscheidungen.iterator();
547             while(entscheidungsiterator.hasNext())
548             {
549                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
550                     
551                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGLIZENZVERKAUFUNTERNEHMEN_KEY) == 0)
552                 {
553                     if (log.isDebugEnabled()) 
554                     {
555                         log.debug("lizenzverkaufan '" + dvform.get("lizenzverkaufan") + "'");
556                     }
557                     
558                     entscheidung.setObjectWert(new Integer((String) dvform.get("lizenzverkaufan")));
559                     break;
560                 }
561             }
562             entscheidungsiterator = entscheidungen.iterator();
563             while(entscheidungsiterator.hasNext())
564             {
565                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
566                     
567                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGLIZENZVERKAUFPRODUKTART_KEY) == 0)
568                 {
569                     if (log.isDebugEnabled()) 
570                     {
571                         log.debug("lizenzverkaufproduktart '" + dvform.get("lizenzverkaufproduktart") + "'");
572                     }
573                     
574                     entscheidung.setObjectWert(new Integer((String) dvform.get("lizenzverkaufproduktart")));
575                     break;
576                 }
577             }
578             entscheidungsiterator = entscheidungen.iterator();
579             while(entscheidungsiterator.hasNext())
580             {
581                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
582                     
583                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGLIZENZKAUFUNTERNEHMEN_KEY) == 0)
584                 {
585                     if (log.isDebugEnabled()) 
586                     {
587                         log.debug("lizenzkaufvon '" + dvform.get("lizenzkaufvon") + "'");
588                     }
589                     
590                     entscheidung.setObjectWert(new Integer((String) dvform.get("lizenzkaufvon")));
591                     break;
592                 }
593             }
594             entscheidungsiterator = entscheidungen.iterator();
595             while(entscheidungsiterator.hasNext())
596             {
597                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
598                     
599                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGLIZENZKAUFFUER_KEY) == 0)
600                 {
601                     if (log.isDebugEnabled()) 
602                     {
603                         log.debug("lizenzkaufkosten '" + dvform.get("lizenzkaufkosten") + "'");
604                     }
605                     
606                     entscheidung.setObjectWert(new Integer((String) dvform.get("lizenzkaufkosten")));
607                     break;
608                 }
609             }
610             entscheidungsiterator = entscheidungen.iterator();
611             while(entscheidungsiterator.hasNext())
612             {
613                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
614                     
615                 if(entscheidung.getFeldname().compareTo(Constants.EF_ENTSCHEIDUNGBERATUNG_KEY) == 0)
616                 {
617                     if (log.isDebugEnabled()) 
618                     {
619                         log.debug("beratung '" + dvform.get("beratung") + "'");
620                     }
621                     
622                     entscheidung.setObjectWert(new Integer((String) dvform.get("beratung")));
623                     break;
624                 }
625             }
626         }
627         catch (Throwable t)
628 		{
629 			log.error(" Error in DataTransfer from Form", t);
630 		}
631         
632         if("Create".equals(action) || action.equals("Edit")) 
633         {
634             if (log.isDebugEnabled()) 
635             {
636                 log.debug("Creating a new Entscheidung");
637             }
638 
639 //            Iterator entscheidungsiterator = entscheidungen.iterator();
640             entscheidungsiterator = entscheidungen.iterator();
641             while(entscheidungsiterator.hasNext())
642             {
643                 Ergebniss entscheidung = (Ergebniss) entscheidungsiterator.next();
644 
645                 if (log.isDebugEnabled()) 
646                 {
647                     log.debug(" --");
648                     log.debug(" Feldnummer: " + entscheidung.getFeldnummer());
649                     log.debug(" Gruppennummer: " + entscheidung.getGruppennummer());
650                     log.debug(" Quartal: " + entscheidung.getQuartal());
651                     log.debug(" Wert: " + entscheidung.getObjectWert().toString());
652                     log.debug(" --");
653                 }
654                     
655                 returnvalue = die.editieren(entscheidung.getFeldnummer(), entscheidung.getGruppennummer(), entscheidung.getQuartal(), entscheidung.getObjectWert().toString());
656 
657                 if (!returnvalue) 
658                 {
659                     if (log.isDebugEnabled()) 
660                     {
661                         log.debug(" Entscheidung saving failed");
662                     }
663 
664                     response.sendError(HttpServletResponse.SC_BAD_REQUEST, messages.getMessage("error.benutzerrolle.create"));
665                     return (null);
666                 }
667             }
668             
669             session.removeAttribute(Keys.BENUTZERROLLE_KEY);
670         }
671         else
672         {
673             if (log.isDebugEnabled()) 
674             {
675                 log.debug(" User not authorized to edit Entscheidung");
676             }
677         }
678     
679         // Remove the obsolete form bean and current project
680         if (mapping.getAttribute() != null) 
681         {
682             if ("request".equals(mapping.getScope()))
683                 request.removeAttribute(mapping.getAttribute());
684             else
685                 session.removeAttribute(mapping.getAttribute());
686         }
687         session.removeAttribute(Keys.BENUTZERROLLE_KEY);
688     
689         // Forward control to the specified success URI
690         if (log.isDebugEnabled()) 
691         {
692             log.debug(" Forwarding to 'success' page");
693         }
694     	return (mapping.findForward("success"));
695     }
696 }