def fake_fachstatistik(self, fall, ende_datum):
        akte = Akte(self.akte_id)
        form = {}
        fs_id = Fachstatistik().getNewId()
        form['fsid'] = fs_id
        form['fallid'] = fall['id']
        form['fall_fn'] = fall['fn']
        form['mitid'] = fall['zustaendig__mit_id']
        form['jahr'] = ende_datum.year
        form['stz'] = akte['stzbg']
        form['plr'] = akte['plraum']
        form['gs'] = akte['gs']

        alter = calc_age(akte['gb'], fall.getDate('bg'))
        def altersgruppe():
            ag = cc('fsag','999')
            try:
                ag = bcode('fsag', alter)['id']
            except:
                pass # kein bereich gefunden
            return ag
        form['ag'] = altersgruppe()
        #form['ag'] = self.choose_code_id('fsag')

        form['fs'] = self.choose_code_id('fsfs')
        form['zm'] = self.choose_code_id('fszm')
        form['qualij'] = self.choose_code_id('fsqualij')
        form['hkm'] = self.choose_code_id('fshe')
        form['hkv'] = self.choose_code_id('fshe')
        form['bkm'] = self.choose_code_id('fsbe')
        form['bkv'] = self.choose_code_id('fsbe')
        form['qualikm'] = self.choose_code_id('fsquali')
        form['qualikv'] = self.choose_code_id('fsquali')
        form['agkm'] = self.choose_code_id('fsagel')
        form['agkv'] = self.choose_code_id('fsagel')
        form['ba1'] = self.choose_code_id('fsba')
        form['ba2'] = self.choose_code_id('fsba')
        form['pbe'] = self.choose_code_id('fspbe')
        form['pbk'] = self.choose_code_id('fspbk')
        form['anmprobleme'] = self.choose_code_id_several('fsba', 1, 4, unique=True)
        form['elternprobleme'] = self.choose_code_id_several('fspbe', 1, 4, unique=True)
        form['kindprobleme'] = self.choose_code_id_several('fspbk', 1, 4, unique=True)
        form['eleistungen'] =  self.choose_code_id_several('fsle', 1, 10)
##         form['pbeltern'] = self.choose_code_id_several('fspbe', 1, 4, unique=True)
##         form['pbkind'] = self.choose_code_id_several('fspbk', 1, 4, unique=True)
##         form['le'] =  self.choose_code_id_several('fsle', 1, 10)
        sum = 0
        for f in ('kkm', 'kkv', 'kki', 'kpa', 'kfa',
                  'ksoz', 'kleh', 'kerz', 'kkonf','kson'):
            anzahl = randrange(0, 10)
            form[f] = anzahl
            sum += anzahl
        form['kat'] = sum
        joker_felder = ('joka1', 'joka2', 'joka3', 'joka4',
                        'jokf5', 'jokf6', 'jokf7', 'jokf8',)
        for f in joker_felder:
            form[f] = self.choose_code_id('fs' + f)
        fseinf(form)
        log("Fachstatistik für %s (akte_id=%s)" % (fall['fn'], self.akte_id))
 def altersgruppe(geburtsdatum_als_string, aktuelles_datum):
     alter = calc_age(geburtsdatum_als_string, aktuelles_datum)
     ag = cc('fsag','999')
     try:
         ag = bcode('fsag', alter)['id']
     except:
         pass # kein bereich gefunden
     return ag
 def altersgruppeeltern(verwcode):
     ag = cc('fsagel','999')
     try:
         for b in akte['bezugspersonen']:
             if b['verw__code'] == verwcode:
                 if b['gb']:
                     alter = calc_age(b['gb'], fall.getDate('bg'))
                     ag = bcode('fsagel', alter)['id']
     except:
         pass # kein valides Geburtsdatum gefunden
     return ag
Exemple #4
0
 def fachstatistik_beschaeftigung_unter_14(self):
     fs_list = FachstatistikList(where='')
     count = 0
     for fs in fs_list:
         upd = {}
         try:
             fall = Fall(fs['fall_id'])
             alter = calc_age(fall['akte__gb'], fall.getDate('bg'))
             if alter < 14:
                 upd['qualij'] = cc('fsqualij', '7')
         except:
             pass
         if upd:
             count += 1
             fs.update(upd)
     logging.info("Fachstatistik Beschaeftigung Jugendlicher %s mal auf 'entfaellt (unter 14)'"
                  % count)
    def processForm(self, REQUEST, RESPONSE):
        fallid = self.form.get('fallid')
        jghiddel = self.form.get('jghiddel')
        typ = self.form.get('typ')
        logging.info('JGHNEU %s %s %s' % (fallid, jghiddel, typ))
        if jghiddel and typ == 'jgh07' and fallid:
            logging.info('JGHNEU upgrading %s %s %s' % (fallid, jghiddel, typ))
            # neue Statistik auf alte 'upgraden'
            upgrade_jgh(jghiddel, old2new=False)
##             fall = Fall(fallid)
##             # diese Fall ist noch unzureichend initialisiert
##             jghstat = fall['jgh']
        
        if not fallid:
            raise EE('Bundesstatistik nur f&uuml;r einen g&uuml;ltigen Fall')
        fall = Fall(fallid)
        akte = fall['akte']
        fn = fall['fn']
        bgd = fall['bgd']
        bgm = fall['bgm']
        bgy = fall['bgy']
        ex_jgh = fall['jgh']
        if ex_jgh:
            raise EE('Bundesstatistik bereits vorhanden')
        alter_klient = calc_age(akte['gb'],fall.getDate('bg'))
        geschwisterfaelle = get_codes('gfall')
        stellenzeichen = get_codes('stzei')
        bezirke = get_codes('rbz')
        kreise = get_codes('kr')
        gemeinde = get_codes('gm')
        gemeindeteile = get_codes('gmt')
        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)
            res.append(jghstatneugfall_berlin_t)
        else:
            res.append(jghstatneuwbz_t)
            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, '')
    def processForm(self, REQUEST, RESPONSE):
        fallid = self.form.get('fallid')
        if not fallid:
            raise EE('Erstellen einer Fachstatistik nur f&uuml;r einen Fall moeglich.')
        fall = Fall(fallid)
        akte = fall['akte']
        geschlecht = akte['gs']
        if not geschlecht:
            raise EE("Bitte zuerst das Geschlecht in die Klientenkarte eintragen!")
        # Ich kanns mir nicht anders vorstellen:
        if akte['aktueller_fall']:
            assert fall['id'] == akte['aktueller_fall']['id'] == akte['letzter_fall']['id']
        # das geht nicht immer weil Gleichheit nicht richtig definiert ist
        #assert fall == akte['letzter_fall'] == akte['aktueller_fall']
        leistungen = fall['leistungen']
        jahresl = ebapi.FachstatistikList(where = "fall_fn = '%s'" % fall['fn'])
        if jahresl:
            raise EE('Fachstatistik f&uuml;r den Fall schon vorhanden')
        fs = Fachstatistik()
        # Alter relativ zum Fallbeginn
        alter = calc_age(akte['gb'], fall.getDate('bg'))
        def altersgruppe():
            ag = cc('fsag','999')
            try:
                ag = bcode('fsag', alter)['id']
            except:
                pass # kein bereich gefunden
            return ag
        def altersgruppeeltern(verwcode):
            ag = cc('fsagel','999')
            try:
                for b in akte['bezugspersonen']:
                    if b['verw__code'] == verwcode:
                        if b['gb']:
                            alter = calc_age(b['gb'], fall.getDate('bg'))
                            ag = bcode('fsagel', alter)['id']
            except:
                pass # kein valides Geburtsdatum gefunden
            return ag
                        
        if config.STRASSENKATALOG:
            strasse = get_strasse(akte)
        else:
            strasse = {}
        fs.init(
            id=Fachstatistik().getNewId(),
            mit_id=fall['zustaendig__mit_id'],
            fall_id=fall['id'],
            fall_fn=fall['fn'],
            jahr=str(today().year),
            stz=akte['stzbg'],
            plraum=akte['plraum'],
            ort=akte['ort'],
            plz=akte['plz'],
            ortsteil=strasse.get('ortsteil', ''),
            bezirk=strasse.get('bezirk', ''),
            samtgemeinde=strasse.get('samtgemeinde', ''),
            gs=akte['gs'],
            ag=altersgruppe(),
            agkm=altersgruppeeltern('1'), # code klerv für Mutter
            agkv=altersgruppeeltern('2'), # code klerv für Vater
            fs=akte['fs'],
            anmprobleme=None,
            kindprobleme=None,
            elternprobleme=None,
            )
        fs['eleistungen'] = ' '.join([str(leist['le']) for leist in leistungen])
        single_kat_felder = ('zm', 'qualij', 'hkm', 'hkv', 'bkm', 'bkv',
                             'qualikm', 'qualikv',
                             'ba1', 'ba2', 'pbe', 'pbk', )
        for f in single_kat_felder:
            fs[f] = ' ' # leere, selektierte Option, es muss aktiv ausgewählt werden

        # falls unter 14 Beschäftigung vorbelegen
        try:
            if alter < 14:
                fs['qualij'] = cc('fsqualij', '7')
        except:
            pass
        anm = fall['anmeldung']
        if anm:
            fs['zm'] = anm[0]['zm']
        joker_felder = ('joka1', 'joka2', 'joka3', 'joka4',
                        'jokf5', 'jokf6', 'jokf7', 'jokf8',)
        for f in joker_felder:
            if fs_customize.multifeld(f):
                fs[f] = None
            else:
                fs[f] = ' ' # leere, selektierte Option, es muss aktiv ausgewählt werden
        termin_felder = ('kkm', 'kkv', 'kki', 'kpa', 'kfa',
                         'ksoz', 'kleh', 'kerz', 'kkonf', 'kson', 'kat',)
        if config.BERATUNGSKONTAKTE and not config.BERATUNGSKONTAKTE_BS:
            from ebkus.html.beratungskontakt import get_fs_kontakte
            get_fs_kontakte(fall, fs)
        else:
            for f in termin_felder:
                fs[f] = 0
        #print '***********FSNEU', fs
        return self._process(title='Neue Fachstatistik erstellen',
                             file='fseinf',
                             fs=fs,
                             )