예제 #1
0
    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()
예제 #2
0
    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')))
예제 #3
0
 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']))
예제 #4
0
    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))
예제 #5
0
    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()
예제 #6
0
 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)
예제 #7
0
 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))
예제 #8
0
 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))
예제 #9
0
    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))
예제 #10
0
    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')))
예제 #11
0
    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')))