def fake_akte(self): """erzeugt Daten für eine Akte""" akte_id = self.akte_id = Akte().getNewId() form = {} form['akid'] = akte_id form['vn'] = "Klient%sVn" % akte_id form['na'] = "Klient%sNa" % akte_id ## form['gb'] = "%s.%s.%s" % (randrange(1, 29), randrange(1, 13), ## randrange(self.von_jahr.add_month(-240), self.bis_jahr.add_month(-24))) form['gb'] = "%s" % self.choose_date(self.von_jahr.add_month(-240), self.bis_jahr.add_month(-24)) form['ber'] = "Ausbildung von Nr.: %s" % akte_id self.fake_adresse(form) form['tl1'] = str(randrange(20000, 99999999)) form['tl2'] = '' form['fs'] = self.choose_code_id('fsfs') form['no'] = 'Das sind alles Beispieldaten für Form %s' % self.akte_id form['stzbg'] = self.choose_code_id('stzei') form['stzak'] = form['stzbg'] # beim Anlegen die gleiche Stelle # Fall setDate(form, 'zubg', self.choose_date(min=self.von_jahr)) form['zumitid'] = choice(self.mitarbeiter)['id'] form['lemitid'] = choice(self.mitarbeiter)['id'] form['le'] = self.choose_code_id('fsle') setDate(form, 'lebg', getDate(form, 'zubg')) # erste Leistung zu Fallbeginn form['lestz'] = Mitarbeiter(form['lemitid'])['stz'] akteeinf(form) fall = Akte(self.akte_id)['letzter_fall'] log("Akte %s" % akte_id) log("Fall %s" % fall['fn']) for i in range(randrange(1,4)): # 1 - 3 self.fake_bezugsperson() for i in range(randrange(3)): # 0 - 2 self.fake_einrichtung() self.repeat_zda_waufn()
def fake_waufn(self): letzter_fall = Akte(self.akte_id)['letzter_fall'] zdadatum = letzter_fall.getDate('zda') if zdadatum == Date(0,0,0): ## log(zdadatum) return if zdadatum.add_month(1) > today(): ## log(zdadatum) ## log(zdadatum.add_month(1)) ## log(zdadatum == Date(0,0,0)) ## log(zdadatum.add_month(1) > today()) ## log("WAUF Return") return form = {} form['akid'] = self.akte_id form['fallid'] = Fall().getNewId() setDate(form, 'zubg', self.choose_date(min=zdadatum.add_month(1))) mitarbeiter = choice(self.mitarbeiter) form['zumitid'] = mitarbeiter['id'] form['stzbg'] = mitarbeiter['stz'] # TODO ist das richtig? akte.stzbg wird dadrauf gesetzt form['lemitid'] = mitarbeiter['id'] form['le'] = self.choose_code_id('fsle') setDate(form, 'lebg', getDate(form, 'zubg')) # erste Leistung zu Fallbeginn form['lestz'] = mitarbeiter['stz'] waufneinf(form) log("Wiederaufnahme als %s am %s" % (Akte(self.akte_id)['letzter_fall']['fn'], getDate(form, 'zubg')))
def fake_leistung(self, fall, beginn_vor): form = {} form['leistid'] = Leistung().getNewId() form['fallid'] = fall['id'] setDate(form, 'bg', self.choose_date(fall.getDate('bg'), beginn_vor)) form['mitid'] = fall['zustaendig__mit_id'] if not form.get('mitid'): log("KEIN zustaendiger Mitarbeiter für Leistung gefunden!") form['stz'] = fall['zustaendig__mit__stz'] form['le'] = self.choose_code_id('fsle') leisteinf(form) log("Leistung %s für %s" % (Code(form['le'])['name'], fall['fn']))
def fake_jghstatistik(self, fall, ende_datum): log("fake_jghstatistik %s (akte_id=%s)" % (fall['fn'], self.akte_id)) if ende_datum.year >= 2007: self.fake_jgh07statistik(fall, ende_datum) return akte = Akte(self.akte_id) form = {} jgh_id = Jugendhilfestatistik().getNewId() form['jghid'] = jgh_id form['fallid'] = fall['id'] form['fall_fn'] = fall['fn'] form['mitid'] = fall['zustaendig__mit_id'] form['stz'] = akte['stzak'] form['gfall'] = self.choose_code_id('gfall') setDate(form, 'bg', fall.getDate('bg')) setDate(form, 'e', ende_datum) #setDate(form, 'e', today()) # form['rbz'] = self.choose_code_id('rbz') form['kr'] = Code(kat_code='kr', sort=1)['id'] # zuständige Stelle! form['gm'] = self.choose_code_id('gm') form['gmt'] = self.choose_code_id('gmt') form['wohnbez'] = akte['wohnbez'] form['traeg'] = self.choose_code_id('traeg') form['bgr'] = self.choose_code_id('bgr') form['gs'] = self.choose_code_id('gs') form['ag'] = self.choose_code_id('ag') form['fs'] = self.choose_code_id('fs') form['hke'] = self.choose_code_id('hke') form['gsu'] = self.choose_code_id('gsu') form['gsa'] = '' if form['gsu'] == cc('gsu', '0'): # Geschwisterzahl bekannt form['gsa'] = randrange(0, 8) form['zm'] = self.choose_code_id('zm') form['schw'] = self.choose_code_id('schw') fbe = ('fbe0', 'fbe1', 'fbe2', 'fbe3') angekreuzt = [choice(fbe) for i in range(randrange(1, 3))] for f in fbe: form[f] = '' if f in angekreuzt: form[f] = self.choose_code_id(f) ba = ('ba0', 'ba1', 'ba2', 'ba3', 'ba4', 'ba5', 'ba6', 'ba7', 'ba8', 'ba9') angekreuzt = [choice(ba) for i in range(randrange(1, 3))] # eins auf jeden Fall form['ba'] = [cc(f, '1') for f in angekreuzt] jgheinf(form) log("Jugendhilfestatistik für %s (akte_id=%s)" % (fall['fn'], self.akte_id))
def fake_akte(self): """erzeugt Daten für eine Akte""" akte_id = self.akte_id = Akte().getNewId() form = {} form['akid'] = akte_id form['vn'] = "Klient%sVn" % akte_id form['na'] = "Klient%sNa" % akte_id ## form['gb'] = "%s.%s.%s" % (randrange(1, 29), randrange(1, 13), ## randrange(self.von_jahr.add_month(-240), self.bis_jahr.add_month(-24))) form['gb'] = "%s" % self.choose_date(self.von_jahr.add_month(-240), self.bis_jahr.add_month(-24)) form['ber'] = "Ausbildung von Nr.: %s" % akte_id self.fake_adresse(form) form['tl1'] = str(randrange(20000, 99999999)) form['tl2'] = '' form['fs'] = self.choose_code_id('fsfs') form['no'] = 'Das sind alles Beispieldaten für Form %s' % self.akte_id form['stzbg'] = self.choose_code_id('stzei') form['stzak'] = form['stzbg'] # beim Anlegen die gleiche Stelle # Fall setDate(form, 'zubg', self.choose_date(min=self.von_jahr)) form['zumitid'] = choice(self.mitarbeiter)['id'] form['lemitid'] = choice(self.mitarbeiter)['id'] form['le'] = self.choose_code_id('fsle') setDate(form, 'lebg', getDate(form, 'zubg')) # erste Leistung zu Fallbeginn form['lestz'] = Mitarbeiter(form['lemitid'])['stz'] akteeinf(form) fall = Akte(self.akte_id)['letzter_fall'] log("Akte %s" % akte_id) log("Fall %s" % fall['fn']) for i in range(randrange(1,4)): # 1 - 3 self.fake_bezugsperson() for i in range(randrange(3)): # 0 - 2 self.fake_einrichtung() #print "WOHNBEZIRK: ", self.akte['wohnbez'] self.fake_fachstatistik(fall) self.fake_jghstatistik(fall) # den Fall mit einer gewissen Wahrscheinlichkeit schließen; # je älter, desto wahrscheinlicher alter = fall.getDate('bg').diff(today()) if self.p_ja_nein(alter, z1=1, p1=.1, z2=36, p2=.9): self.fake_zda() # 30% wiederaufnehmen if random() < .3: self.fake_waufn()
def fake_bezugsperson(self): form = {} bp_id = Bezugsperson().getNewId() form['bpid'] = bp_id form['akid'] = self.akte_id form['vn'] = "Bezugsperson%sVn" % bp_id form['na'] = "Bezugsperson%sNa" % bp_id setDate(form, 'gb', self.choose_date(Date(1910), self.bis_jahr.add_month(-240))) form['gs'] = self.choose_code_id('gs') form['ber'] = "Bezugsperson Beruf: %s" % bp_id form['no'] = "Notiz für Bezugsperson: %s" % bp_id form['tl1'] = str(randrange(20000, 99999999)) form['tl2'] = '' self.fake_adresse(form) form['verw'] = self.choose_code_id('klerv') form['fs'] = self.choose_code_id('fsfs') form['nobed'] = self.choose_code_id('notizbed') form['vrt'] = self.choose_code_id('vert') perseinf(form) log("Bezugsperson %s" % bp_id)
def fake_zda(self): """schliesst einen Fall mit einer bestimmten Wahrscheinlichkeit ab, je älter desto wahscheinlicher. Fügt vor dem Schliessen noch ein paar Leistungen ein.""" fall = Akte(self.akte_id)['letzter_fall'] fn = fall['fn'] beginn = fall.getDate('bg') alter = beginn.diff(today()) if alter < 2: return form = {} form['fallid'] = fall['id'] form['aktuellzustid'] = fall['zustaendig__id'] # Dauer des Falles zda = self.choose_date(beginn.add_month(1), min(beginn.add_month(alter), today())) setDate(form, 'zda', zda) # 0 bis 5 Leistungen hinzufügen for i in range(randrange(6)): self.fake_leistung(fall, zda) zdaeinf(form) log("Zda %s am %s" % (fn, zda))
def fake_jgh07statistik(self, fall, ende_datum, abgeschlossen): log("fake_jgh07statistik %s (akte_id=%s)" % (fall['fn'], self.akte_id)) assert ende_datum.year >= 2007 akte = Akte(self.akte_id) form = {} jgh_id = Jugendhilfestatistik2007().getNewId() form['jghid'] = jgh_id form['fallid'] = fall['id'] form['fall_fn'] = fall['fn'] form['jahr'] = ende_datum.year form['mitid'] = fall['zustaendig__mit_id'] form['stz'] = akte['stzbg'] form['gfall'] = self.choose_code_id('gfall') form['land'] = Code(kat_code='land', sort=1)['id'] form['kr'] = Code(kat_code='kr', sort=1)['id'] # zuständige Stelle! form['einrnr'] = Code(kat_code='einrnr', sort=1)['id'] # zuständige Stelle! setDate(form, 'bg', fall.getDate('bg')) if random() < .3: form['zustw'] = '1' form['hilf_art'] = self.choose_code_id('hilf_art') form['hilf_ort'] = self.choose_code_id('hilf_ort') form['traeger'] = self.choose_code_id('traeger') form['gs'] = self.choose_code_id('gs') setDate(form, 'ge', self.choose_date(Date(1990), today().add_month(-20))) form['aort_vor'] = self.choose_code_id('auf_ort') form['sit_fam'] = self.choose_code_id('shf') form['ausl_her'] = self.choose_code_id('ja_ne_un') form['vor_dt'] = self.choose_code_id('ja_ne_un') form['wirt_sit'] = self.choose_code_id('ja_ne_un') form['aip'] = self.choose_code_id('aip') form['ees'] = self.choose_code_id('ja_nein') form['va52'] = self.choose_code_id('ja_nein') form['rgu'] = self.choose_code_id('ja_nein') #form['hda'] = cc('ja_nein', '1') if abgeschlossen == True: form['hda'] = cc('ja_nein', '2') elif abgeschlossen == False: form['hda'] = cc('ja_nein', '1') else: form['hda'] = self.choose_code_id('ja_nein') gruende = self.choose_code_id_several('gruende', 1, 3, unique=True) form['gr1'] = gruende[0] if len(gruende) > 1: form['gr2'] = gruende[1] if len(gruende) > 2: form['gr3'] = gruende[2] if form['hda'] == cc('ja_nein', '1'): form['nbkakt'] = randrange(1, 30) else: form['lbk6m'] = self.choose_code_id('ja_nein') form['grende'] = self.choose_code_id('grende') form['aort_nac'] = self.choose_code_id('auf_ort') form['unh'] = self.choose_code_id('unh') form['nbkges'] = randrange(1, 50) setDate(form, 'e', ende_datum) #print 'Fake jgh07: ', form jgh07einf(form) log("Jugendhilfestatistik 2007 für %s (akte_id=%s)" % (fall['fn'], self.akte_id))
def fake_zda(self, datum=None): """schliesst einen Fall mit einer bestimmten Wahrscheinlichkeit ab, je älter desto wahscheinlicher. Fügt vor dem Schliessen noch ein paar Leistungen ein. Erledigt vor dem Schliessen auch die Statistiken, sonst wird die Schliessung nicht akzeptiert. """ fall = Akte(self.akte_id)['letzter_fall'] fn = fall['fn'] beginn = fall.getDate('bg') alter = beginn.diff(today()) if alter < 2: return form = {} form['fallid'] = fall['id'] form['aktuellzustid'] = fall['zustaendig__id'] # Dauer des Falles if datum: zda = datum else: zda = self.choose_date(beginn.add_month(1), min(beginn.add_month(24), today())) ## if random() < .2: ## zda = self.choose_date(beginn.add_month(12), min(beginn.add_month(24), today())) ## else: ## # die meisten Fälle bis ein Jahr ## zda = self.choose_date(beginn.add_month(1), min(beginn.add_month(12), today())) ## zda = self.choose_date(beginn.add_month(1), min(beginn.add_month(alter), today())) # eine Statistik pro abgeschlossenem Fall self.fake_fachstatistik(fall, zda) self.fake_jghstatistik(fall, zda, abgeschlossen=True) setDate(form, 'zda', zda) # 0 bis 5 Leistungen hinzufügen for i in range(randrange(6)): self.fake_leistung(fall, zda) zdaeinf(form) log("Zda %s am %s" % (fn, zda))
def fake_waufn(self, datum=None): letzter_fall = Akte(self.akte_id)['letzter_fall'] zdadatum = letzter_fall.getDate('zda') if zdadatum == Date(0,0,0): ## log(zdadatum) return if zdadatum.add_month(1) > today(): ## log(zdadatum) ## log(zdadatum.add_month(1)) ## log(zdadatum == Date(0,0,0)) ## log(zdadatum.add_month(1) > today()) ## log("WAUF Return") return form = {} form['akid'] = self.akte_id form['fallid'] = Fall().getNewId() if not datum: datum = self.choose_date(min=zdadatum.add_month(1)) setDate(form, 'zubg', datum) mitarbeiter = choice(self.mitarbeiter) form['zumitid'] = mitarbeiter['id'] form['stzbg'] = mitarbeiter['stz'] # ist das richtig? akte.stzbg wird dadrauf gesetzt form['lemitid'] = mitarbeiter['id'] form['le'] = self.choose_code_id('fsle') setDate(form, 'lebg', getDate(form, 'zubg')) # erste Leistung zu Fallbeginn form['lestz'] = mitarbeiter['stz'] # form benötigt die Adressdaten, sonst wird in ebupd.waufneinf die Adresse gelöscht akte = Akte(self.akte_id) for k in ('str', 'plz', 'hsnr'): v = akte.get(k) if v: form[k] = v if config.BERLINER_VERSION and akte.get('lage') == cc('lage', '0') and akte.get('str'): form['strkat'] = akte['str'] waufneinf(form) log("Wiederaufnahme als %s am %s" % (Akte(self.akte_id)['letzter_fall']['fn'], getDate(form, 'zubg')))
def fake_waufn(self, datum=None): akte = Akte(self.akte_id) stelle_id = akte['stzbg'] letzter_fall = akte['letzter_fall'] zdadatum = letzter_fall.getDate('zda') if zdadatum == Date(0,0,0): ## log(zdadatum) return if zdadatum.add_month(int(config.WIEDERAUFNAHMEFRIST)) > today(): ## log(zdadatum) ## log(zdadatum.add_month(1)) ## log(zdadatum == Date(0,0,0)) ## log(zdadatum.add_month(1) > today()) ## log("WAUF Return") return form = {} form['akid'] = self.akte_id form['fallid'] = Fall().getNewId() if not datum: datum = self.choose_date(min=zdadatum.add_month(1)) setDate(form, 'zubg', datum) mitarbeiter = self.choose_mitarbeiter(stelle_id) form['zumitid'] = mitarbeiter['id'] form['lemitid'] = mitarbeiter['id'] form['le'] = self.choose_code_id('fsle') setDate(form, 'lebg', getDate(form, 'zubg')) # erste Leistung zu Fallbeginn form['lestz'] = stelle_id # form benötigt die Adressdaten, sonst wird in ebupd.waufneinf die Adresse gelöscht form['gs'] = akte['gs'] setDate(form, 'gb', str2date(akte['gb'])) for k in ('ort', 'str', 'plz', 'hsnr'): v = akte.get(k) if v: form[k] = v if config.STRASSENKATALOG: form['strkat_on'] = 1 waufneinf(form) log("Wiederaufnahme als %s am %s" % (Akte(self.akte_id)['letzter_fall']['fn'], getDate(form, 'zubg')))