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
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ür einen gü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ü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ü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, )