def processForm(self, REQUEST, RESPONSE):
        mitarbeiterliste = self.getMitarbeiterliste()
        user = self.user
        fallid = self.form.get("fallid")
        ##*************************************************************************
        ##
        ## Prüft ob eine Fall_ID vorhanden ist. Wenn nicht, kann keine Fachstat
        ## erstellt werden.
        ##
        ## 01.10.2001 mastaleckT(msg)
        ##*************************************************************************
        if not fallid:
            res = []
            meldung = {
                "titel": "Fehler",
                "legende": "Fehlerbeschreibung",
                "zeile1": "Erstellen einer Fachstatistik nur für einen Fall moeglich!",
                "zeile2": "",
            }
            res.append(meldung_t % meldung)
            return string.join(res, "")

            ##*************************************************************************
            ##
            ## Weiteres Prüfen der Fallzugehörigkeit (Mit Fall - ID oder ohne Fall - ID)
            ## nicht mehr notwendig, da nur noch bei vorhandener Fall ID eine
            ## Statistik erstellt werden kann
            ##
            ## mastaleckT(msg)02.10.2001
            ##*************************************************************************
        fall = Fall(int(fallid))
        anmeldungl = fall["anmeldung"]
        akte = fall["akte"]
        letzter_fall = akte["letzter_fall"]
        leistungen = fall["leistungen"]
        jahr = "%(year)s" % today()
        vorjahr = int(jahr) - 1

        jahresl = ebapi.FachstatistikList(where="fall_fn = '%s'" % letzter_fall["fn"])
        if jahresl:
            res = []
            meldung = {
                "titel": "Hinweis",
                "legende": "Hinweis",
                "zeile1": "Es ist bereits eine Fachstatistik für die Fallnummer vorhanden!",
                "zeile2": "",
            }
            res.append(meldung_t % meldung)
            return string.join(res, "")

            ##*************************************************************************
            ##
            ## Funktion berechnet das Alter des Klienten
            ##
            ## mastaleckT(msg) 04.10.2001
            ##
            ##*************************************************************************
        alter_klient = date.calc_age(akte["gb"], letzter_fall["bgd"], letzter_fall["bgm"], letzter_fall["bgy"])

        # fstatliste = FachstatistikList(where = 'fall_id = %(id)d' % fall
        #                                 + " and jahr = %d" % vorjahr,
        #                                 order = 'jahr')
        stellenzeichen = get_codes("stzei")
        geschlechter = get_codes("gs")
        altersgruppen = get_codes("fsag")
        altersgruppeneltern = get_codes("fsagel")
        familienarten = get_codes("fsfs")
        zugangsarten = get_codes("fszm")
        herkunftelternl = get_codes("fshe")
        berufelternl = get_codes("fsbe")
        beratungsanlaesse = get_codes("fsba")
        problembereicheeltern = get_codes("fspbe")
        problembereichekinder = get_codes("fspbk")
        qualifikationen_mutter_vater = get_codes("fsquali")
        qualifikationen_kind = get_codes("fsqualij")
        massnahmen = get_codes("fsle")
        hidden = {"file": "fseinf"}
        fsid = Fachstatistik().getNewId()
        hiddenid = {"name": "fsid", "value": fsid}
        res = []
        ##*************************************************************************
        ##
        ## Formular: Erstellen einer neuen Fachstatistik
        ##
        ##*************************************************************************
        res.append(head_normal_t % ("Neue Fachstatistik erstellen"))
        res.append(fsneu_t1)
        res.append(fsneu_fn_t % fall)
        mitarb_data = {"mit_id": self.mitarbeiter["id"], "mit_name": self.mitarbeiter["ben"]}
        res.append(fsneu_mit_t % mitarb_data)
        res.append(fsneu_jahr_t % today())
        res.append(fsneu_region_t % akte)

        res.append(fsneu_geschlecht_t)
        mksel(res, codeliste_t, geschlechter)
        res.append(fsneu_altersgr_t)
        if alter_klient >= 0 and alter_klient <= 2:
            altersgruppe_kat = cc("fsag", "1")
        elif alter_klient >= 3 and alter_klient <= 5:
            altersgruppe_kat = cc("fsag", "2")
        elif alter_klient >= 6 and alter_klient <= 9:
            altersgruppe_kat = cc("fsag", "3")
        elif alter_klient >= 10 and alter_klient <= 13:
            altersgruppe_kat = cc("fsag", "4")
        elif alter_klient >= 14 and alter_klient <= 17:
            altersgruppe_kat = cc("fsag", "5")
        elif alter_klient >= 18 and alter_klient <= 20:
            altersgruppe_kat = cc("fsag", "6")
        elif alter_klient >= 21 and alter_klient <= 26:
            altersgruppe_kat = cc("fsag", "7")
        else:
            altersgruppe_kat = cc("fsag", "999")
        mksel(res, codeliste_t, altersgruppen, "id", altersgruppe_kat)
        res.append(fsneu_famstatus_t)
        for f in familienarten:
            if fallid and fall["akte_id__fs"] == f["id"]:
                f["sel"] = "selected"
            else:
                f["sel"] = ""
            res.append(codeliste_t % f)
        res.append(fsneu_zugangsmodus_t)
        mksel(res, codeliste_t, zugangsarten)
        res.append(fsneu_qualikind_t)
        mksel(res, codeliste_t, qualifikationen_kind)
        res.append(fsneu_qualimutter_t)
        mksel(res, codeliste_t, qualifikationen_mutter_vater)
        res.append(fsneu_qualivater_t)
        mksel(res, codeliste_t, qualifikationen_mutter_vater)
        res.append(fsneu_berufmutter_t)
        mksel(res, codeliste_t, berufelternl)
        res.append(fsneu_berufvater_t)
        mksel(res, codeliste_t, berufelternl)
        res.append(fsneu_hkmutter_t)
        mksel(res, codeliste_t, herkunftelternl)
        res.append(fsneu_hkvater_t)
        mksel(res, codeliste_t, herkunftelternl)
        res.append(fsneu_altermutter_t)
        mksel(res, codeliste_t, altersgruppeneltern)
        res.append(fsneu_altervater_t)
        mksel(res, codeliste_t, altersgruppeneltern)
        res.append(fsneu_beratungsanlass1_t)
        mksel(res, codeliste_t, beratungsanlaesse)
        res.append(fsneu_beratungsanlass2_t)
        mksel(res, codeliste_t, beratungsanlaesse)
        res.append(fsneu_problemkind_t)
        mksel(res, codeliste_t, problembereichekinder)
        res.append(fsneu_problemeltern_t)
        mksel(res, codeliste_t, problembereicheeltern)
        res.append(fsneu_problemspektrumkind_t)
        mksel(res, codeliste_t, problembereichekinder)
        res.append(fsneu_problemkindnot_t)
        res.append(fsneu_problemspektrumeltern_t)
        mksel(res, codeliste_t, problembereicheeltern)
        res.append(fsneu_problemelternnot_t)
        res.append(fsneu_massnahmen_t)
        fsleistungen = LeistungList(where="fall_id = %s" % letzter_fall["id"])
        leistungs_liste = []
        for s in fsleistungen:
            leistungs_liste.append(s["le"])
        mksel(res, codeliste_t, massnahmen, "id", leistungs_liste)

        res.append(fsneu_zahlkontakte_t)
        res.append(formhiddenvalues_t % hidden)
        res.append(formhiddennamevalues_t % hiddenid)
        res.append(fsneu_notizsubmit_t)
        return string.join(res, "")
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     fallid = self.form.get('fallid')
     
     if not fallid:
         res = []
         meldung = {'titel':'Fehler',
                   'legende':'Fehlerbeschreibung',
                    'zeile1':'Sie d&uuml;rfen eine Bundesstatistik nur f&uuml;r einen g&uuml;ltigen Fall erstellen.',
                    'zeile2':''}
         res.append(meldung_t % meldung)
         return string.join(res, '')
         
     fall = Fall(int(fallid))
     akte = fall['akte']
     letzter_fall = akte['letzter_fall']
     fn = fall['fn']
     bgd = fall['bgd']
     bgm = fall['bgm']
     bgy = fall['bgy']
     alter_klient = date.calc_age(akte['gb'],letzter_fall['bgd'],letzter_fall['bgm'],letzter_fall['bgy'])
     
     jahresl = ebapi.JugendhilfestatistikList(where = "fall_fn = '%s'" % letzter_fall['fn'])
     if jahresl:
         res = []
         meldung = {'titel':'Hinweis',
                  'legende':'Hinweis',
                  'zeile1':'Es ist bereits eine Jugendhilfestatistik f&uuml;r die Fallnummer vorhanden!',
                  'zeile2':''}
         res.append(meldung_t % meldung)
         return string.join(res, '')
         
     geschwisterfaelle = get_codes('gfall')
     stellenzeichen = get_codes('stzei')
     bezirke = get_codes('rbz')
     kreise = get_codes('kr')
     gemeinde = get_codes('gm')
     gemeindeteile = get_codes('gmt')
     if config.BERLINER_VERSION:
         wohnbezirk =  get_codes('wohnbez')
     traeger = get_codes('traeg')
     beendigungsgruende = get_codes('bgr')
     geschlechter = get_codes('gs')
     altersgruppen = get_codes('ag')
     lebtbeipersonen = get_codes('fs')
     staatsangehoerigkeiten = get_codes('hke')
     erstekontaktaufnahmel = get_codes('zm')
     berschwerpunkte = get_codes('schw')
     geschwister = get_codes('gsa')
     
     hidden ={'file': 'jgheinf'}
     jghid = Jugendhilfestatistik().getNewId()
     hiddenid ={'name': 'jghid', 'value': jghid}
     hiddenid2 ={'name': 'stz', 'value': self.stelle['id']}
     mitarb_data = {'mit_id': self.mitarbeiter['id'],'mit_name' : self.mitarbeiter['ben']}
     res = []
     res.append(head_normal_t % 'Neue Bundesstatistik erstellen')
     res.append(jghstatneu_t % ({'id':fallid}))
     res.append(jghstatneufn_t  %({'fall_fn' : fn} ))
     res.append(jghstatneugemeinde_t %(Code(cc('gm','000'))['id']))
     res.append(jghstatneugemeindeteil_t %(Code(cc('gmt','000'))['id']))
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % hiddenid)
     res.append(formhiddennamevalues_t % hiddenid2)
     res.append(jghstatneumit_t % mitarb_data)
     res.append(jghstatneubeginn_t  % ({'bgd': bgd, 'bgm': bgm , 'bgy' : bgy} ))
     mksel(res, codeliste_t, bezirke)
     res.append(jghstatneuende_t %(today()))
     res.append(jghstatneukreis_t)
     mksel(res, codeliste_t, kreise)
     if config.BERLINER_VERSION:
         res.append(jghstatneuwbz_berlin_t)
         mksel(res,codeliste_t,wohnbezirk,'id',akte['wohnbez'])
         res.append(jghstatneugfall_berlin_t)
     else:
         res.append(jghstatneuwbz_t % akte['wohnbez'])
         res.append(jghstatneugfall_t)
     mksel(res,codeliste_t, geschwisterfaelle, 'name', 'Nein')
     res.append(jghstatneutraeger_t)
     mksel(res, codeliste_t, traeger)
     res.append(jghstatneukontakt_t)
     mksel(res, codeliste_t, erstekontaktaufnahmel)
     res.append(jghstatneuendegrund_t)
     mksel(res, codeliste_t, beendigungsgruende)
     res.append(jghstatneuanlass_t)
     res.append(codelisteos_t % Code(cc('ba0', '1')) )
     res.append(codelisteos_t % Code(cc('ba1', '1')) )
     res.append(codelisteos_t % Code(cc('ba2', '1')) )
     res.append(codelisteos_t % Code(cc('ba3', '1')) )
     res.append(codelisteos_t % Code(cc('ba4', '1')) )
     res.append(codelisteos_t % Code(cc('ba5', '1')) )
     res.append(codelisteos_t % Code(cc('ba6', '1')) )
     res.append(codelisteos_t % Code(cc('ba7', '1')) )
     res.append(codelisteos_t % Code(cc('ba8', '1')) )
     res.append(codelisteos_t % Code(cc('ba9', '1')) )
     res.append(jgstatneuschwerpunkt_t)
     mksel(res, codeliste_t, berschwerpunkte)
     res.append(jghstatneulebtbei_t)
     mksel(res, codeliste_t, lebtbeipersonen)
     res.append(jghstatneugeschlecht_t)
     mksel(res, codeliste_t, geschlechter)
     res.append(jghstatneualter_t)
     if(alter_klient < 3):
         altersgruppe_kat = cc('ag', '1')
     elif(alter_klient >= 3 and alter_klient < 6):
         altersgruppe_kat = cc('ag', '2')
     elif(alter_klient >= 6 and alter_klient < 9):
         altersgruppe_kat = cc('ag', '3')
     elif(alter_klient >= 9 and alter_klient < 12):
         altersgruppe_kat = cc('ag', '4')
     elif(alter_klient >= 12 and alter_klient < 15):
         altersgruppe_kat = cc('ag', '5')
     elif(alter_klient >= 15 and alter_klient < 18):
         altersgruppe_kat = cc('ag', '6')
     elif(alter_klient >= 18 and alter_klient < 21):
         altersgruppe_kat = cc('ag', '7')
     elif(alter_klient >= 21 and alter_klient < 24):
         altersgruppe_kat = cc('ag', '8')
     elif(alter_klient >= 24 and alter_klient < 27):
         altersgruppe_kat = cc('ag', '9')
     else:
         altersgruppe_kat = " "
     mksel(res, codeliste_t, altersgruppen, 'id', altersgruppe_kat)
     res.append(jghstatneu_t2a)
     res.append(jghstatneu_t2b)
     mksel(res, codeliste_t, staatsangehoerigkeiten)
     res.append(jghstatneu_t3  % Code(cc('gsu', '1')))
     res.append(radio_t % Code(cc('fbe0', '1' )) )
     res.append(jghstatneu_t4)
     res.append(radio_t % Code(cc('fbe0', '2' )) )
     res.append(jghstatneu_t5)
     res.append(radio_t % Code(cc('fbe1', '1')) )
     res.append(jghstatneu_t6)
     res.append(radio_t % Code(cc('fbe1', '2')) )
     res.append(jghstatneu_t7)
     res.append(jghansaetzefamilie_t % Code(cc('fbe2', '1')) )
     res.append(jghstatneu_t8)
     res.append(jghansaetzeumfeld_t % Code(cc('fbe3', '1')) )
     res.append(jghstatneu_t9)
     return string.join(res, '')