def processForm(self, REQUEST, RESPONSE): if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: raise EE('Keine ID für den Fall erhalten') fall = Fall(fallid) akte = fall['akte'] bzp = Bezugsperson() bzp.init( id=Bezugsperson().getNewId(), akte_id=fall['akte_id'], no='', nobed=cc('notizbed', 't'), vrt=cc('vert', 'f'), fs=cc('fsfs', '999'), verw=cc('klerv', '999'), gs=' ', ) for f in ('na', 'plz', 'ort', 'str', 'hsnr', 'lage', 'tl1', 'tl2'): bzp[f] = akte[f] return self._process(title='Neue Bezugsperson eintragen', bzp=bzp, hidden=(('bpid', bzp['id']), ('file', 'perseinf'), ("strid", ""), # wird nur von strkat mit javascript gesetzt ('akid', bzp['akte_id']), ('vrt', bzp['vrt']), ), )
def processForm(self, REQUEST, RESPONSE): akid = self.form.get('akid') if not akid: raise EE("Keine ID fuer die Akte erhalten") akte = Akte(akid) hidden=(('fallid', Fall().getNewId()), ('status', cc('stand', 'l')), ) anm = None if config.ANMELDUNGSDATEN_OBLIGATORISCH: anm = Anmeldung() anm.init( id=Anmeldung().getNewId(), zm=cc('fszm', '999'), ) # Nachname und Telefon des Klienten # im Formular anbieten. anm['von'] = akte['na'] anm['mtl'] = akte['tl1'] hidden += (('anmid', anm['id']),) return self._process( title="Wiederaufnahme des Klienten", file='waufneinf', akte=akte, anmeldung=anm, formname='akteform', hidden=hidden, )
def checkAuth(self): """Holt Benutzername aus der Session, prüft Benutzerberechtigung. Setzt self.user, self.mitarbeiter, self.stelle""" # auto_user = '******' # so ist das Entwickeln einfacher auto_user = '' # so sollte es im Betrieb sein if auto_user: self.session = get_session(self.REQUEST, self.RESPONSE) if self.session: self.user = self.session.user else: self.session = create_session(auto_user, self.RESPONSE) self.user = self.session.user self.mitarbeiter = ebapi.Mitarbeiter(ben=self.user, stat=ebapi.cc('status', 'i')) self.stelle = ebapi.Code(self.mitarbeiter['stz']) if self.mitarbeiter['benr__code'] not in self.permissions: raise KeineZugriffsberechtigung() return self.session = get_session(self.REQUEST, self.RESPONSE) if self.session: self.user = self.session.user else: raise NichtIdentifiziert() self.mitarbeiter = ebapi.Mitarbeiter(ben=self.user, stat=ebapi.cc('status', 'i')) self.stelle = ebapi.Code(self.mitarbeiter['stz']) if self.mitarbeiter['benr__code'] not in self.permissions: raise KeineZugriffsberechtigung()
def getMitarbeiterliste(self): stz_id = self.stelle['id'] ml = ebapi.MitarbeiterList( where = 'stat = %s and benr = %s and stz = %s' % (ebapi.cc('status', 'i'), ebapi.cc('benr', 'bearb'), stz_id), order = 'na') return ml
def processForm(self, REQUEST, RESPONSE): if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: self.last_error_message = "Keine ID für den Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) fall = Fall(fallid) benr = self.mitarbeiter['benr__code'] if benr in ('verw',): # Verwaltungskraft kann Einträge für andere Mitarbeiter machen mitarbeiter = [fall['zustaendig__mit']] else: mitarbeiter = [self.mitarbeiter] bkont = Beratungskontakt() bkont.init( id=Beratungskontakt().getNewId(), faelle=[fall], mitarbeiter=mitarbeiter, teilnehmer_bs=cc('teilnbs', '0'), anzahl=1, art_bs=cc('kabs', '1'), art=None, dauer='', offenespr=cn('ja_nein', 'nein'), no='', stz=self.stelle['id'], ) bkont.setDate('k', today()) return self._process(REQUEST, RESPONSE, title="Neuen Beratungskontakt eintragen", legendtext="Neuen Beratungskontakt eintragen für", fall=fall, bkont=bkont, file='bkonteinf', )
def getMitarbeiterliste(self): stz_id = self.stelle["id"] ml = ebapi.MitarbeiterList( where="stat = %s and benr = %s and stz = %s" % (ebapi.cc("status", "i"), ebapi.cc("benr", "bearb"), stz_id), order="na", ) return ml
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 processForm(self, REQUEST, RESPONSE): mitarbeiterliste = self.getMitarbeiterliste() user = self.user if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: res = [] meldung = {'titel':'Keine ID für die Bezugsperson erhalten!', 'legende':'Keine ID für die Bezugsperson erhalten!', 'zeile1':'Keine ID für die Bezugsperson erhalten', 'zeile2':'Sie werden zum Hauptmenü weitergeleitet.'} res.append(meldung_t % meldung) return string.join(res, '') fall = Fall(fallid) akte = Akte(fall['akte_id']) letzter_fall = akte['letzter_fall'] bezugspersonen = akte['bezugspersonen'] bezugspersonen.sort('verw__sort') verwandtschaftsarten = get_codes('klerv') familienarten = get_codes('fsfs') hidden ={'file': 'perseinf'} bpid = Bezugsperson().getNewId() hiddenid ={'name': 'bpid', 'value': bpid} # Liste der Templates als String res = [] res.append(head_normal_t %('Neue Bezugsperson eintragen')) # Personendaten bleiben leer res.append(bzpers_neu_t1) # Anschrift wird von Klientenakte uebernommen akte['bezug_nominativ'] = 'die Bezugsperson' akte['bezug_genitiv'] = 'der Bezugsperson' res.append(anschrift_bezugsperson_t % akte) mksel(res, codeliste_t, familienarten, 'id', cc('fsfs','999')) res.append(bzpers_neu_t3 % {'nobed': cc('notizbed', 't'),'vrt' : cc('vert', 'f') }) res.append(bzpers_neu_t4a) mksel(res, codeliste_t, verwandtschaftsarten, 'id',cc('klerv', '999')) res.append(bzpers_neu_t4b) bezugspersonenliste = [] for bz in bezugspersonen: bezugspersonenliste.append(bz) if bezugspersonenliste: res.append(bezugsperson_kopf) for bz in bezugspersonenliste: res.append(bezugsperson_t % bz) res.append(bezugsperson_ende) res.append(bzpers_neu_t5) res.append(formhiddenvalues_t % hidden) res.append(formhiddennamevalues_t % hiddenid) res.append(bzpers_neu_t6 % letzter_fall) return string.join(res, '')
def processForm(self, REQUEST, RESPONSE): mitarbeiterliste = self.getMitarbeiterliste() user = self.user if self.form.has_key('bpid'): id = self.form.get('bpid') else: self.last_error_message = "Keine ID für die Bezugsperson erhalten" return self.EBKuSError(REQUEST, RESPONSE) bezugsperson = Bezugsperson(int(id)) akte = bezugsperson['akte'] letzter_fall = akte['letzter_fall'] bezugspersonen = akte['bezugspersonen'] bezugspersonen.sort('verw__sort') verwandtschaftsarten = get_codes('klerv') familienarten = get_codes('fsfs') hidden ={'file': 'updpers'} # Liste der Templates als String res = [] res.append(head_normal_t %('Bezugsperson bearbeiten')) bezugsperson['legend'] = 'Bezugspersonendaten' bezugsperson['bezug_nominativ'] = 'die Bezugsperson' bezugsperson['bezug_genitiv'] = 'der Bezugsperson' res.append(bzpers_edit_t1 % bezugsperson) mksel(res, codeliste_t, familienarten, 'id', bezugsperson['fs']) if bezugsperson['nobed'] == cc('notizbed', 't'): check = 'checked' else: check = '' res.append(bzpers_edit_t3 % {'nobed': cc('notizbed', 't'), 'check' : check, 'no': bezugsperson['no'], 'vrt': bezugsperson['vrt']}) res.append(bzpers_edit_t4a) mksel(res, codeliste_t, verwandtschaftsarten, 'id', bezugsperson['verw']) res.append(bzpers_edit_t4b) bezugspersonenliste = [] for bz in bezugspersonen: bezugspersonenliste.append(bz) if bezugspersonenliste: res.append(bezugsperson_kopf) for bz in bezugspersonenliste: res.append(bezugsperson_t % bz) res.append(bezugsperson_ende) res.append(bzpers_edit_t5) res.append(formhiddenvalues_t % hidden) res.append(bzpers_edit_t6 % bezugsperson) res.append(bzpers_edit_t6b % letzter_fall) return string.join(res, '')
def _process(self, title, bzp, hidden, ): akte = bzp['akte'] aktueller_fall = akte['aktueller_fall'] bezugspersonen_list = akte['bezugspersonen'] bezugspersonen_list.sort('verw__sort') notiz_wichtig = h.FieldsetInputTable( legend='Notiz', daten=[[h.TextItem(label='Notiz', name='no', value=bzp['no'], maxlength=250, class_='textbox310', n_col=4, ), h.CheckItem(label='Wichtig', name='nobed', value=cc('notizbed', 't'), checked=(bzp['nobed'] == cc('notizbed', 't')) ), ]], ) verwandtschaftsart = h.FieldsetInputTable( legend='Verwandschaftsart', daten=[[h.SelectItem(label='Verwandschaftsart', name='verw', options=self.for_kat('klerv', bzp['verw'])), ]] ) res = h.FormPage( title=title, name='persform',action="klkarte",method="post", breadcrumbs = (('Hauptmenü', 'menu'), ('Klientenkarte', 'klkarte?akid=%s' % bzp['akte_id']), ), hidden=hidden, rows=(h.Pair(left=self.get_klientendaten(bzp), right=self.get_anschrift(bzp), ), verwandtschaftsart, notiz_wichtig, self.get_bezugspersonen(bezugspersonen_list, aktueller_fall, edit_button=False, view_button=True, hinzufuegen_button=False), h.SpeichernZuruecksetzenAbbrechen(), ), ) return res.display()
def processForm(self, REQUEST, RESPONSE): mit = Mitarbeiter() mit.init( id=Mitarbeiter().getNewId(), vn='', na='', ben='', benr=cc('benr', 'bearb'), stat=cc('status', 'i'), stz=get_codes('stzei')[0], ) return self._process('Neuer Mitarbeiter', 'miteinf', mit)
def fua_bs_neue_tabelle_fuer_mitarbeiter_zuordnung(self): if 'mitarbeiterfua_bs' in self.tables: logging.info("Tabelle 'mitarbeiterfua_bs' existiert bereits") return try: SQL("""CREATE TABLE mitarbeiterfua_bs ( id int NOT NULL, mit_id int, fua_bs_id int, zeit int, PRIMARY KEY (id) )""").execute() t = Tabelle() t.init( tabelle="mitarbeiterfua_bs", name="Zuordnung Mitarbeiter-fallunabhängige Aktivitäten", klasse="Mitarbeiterfua_bs", flag=0, maxist=0 ) t.new() t.insert() felder = ( ('id', 'id', None, cc('verwtyp', 's'), None,), ('mit_id', 'Mitarbeiterid', 'mitarbeiterfuaktivitaeten', cc('verwtyp', 'f'), Tabelle(tabelle='mitarbeiter')['id']), ('fua_bs_id', 'Fua_bsid', 'mitarbeiterfuaktivitaeten', cc('verwtyp', 'f'), Tabelle(tabelle='fua_bs')['id']), ('zeit', 'Änderungszeit', None, cc('verwtyp', 'p'), None), ) for feld, name, inverse, verwtyp, ftab_id in felder: f = Feld() f.init( tab_id=t['id'], feld=feld, name=name, inverse=inverse, typ='INT', verwtyp=verwtyp, ftab_id=ftab_id, flag=0, ) f.new() f.insert() logging.info("Neue Tabelle 'mitarbeiterfua_bs' eingefuehrt") except: #raise logging.error("************ Fehler beim Anlegen der Tabelle 'mitarbeiterfua_bs'")
def _dbimport(mit_id, dir, export_site, export_id, export_time): print '_dbimport', dir, export_site, export_id opendb() site = ebapi.getDBSite() site_id = ebapi.cc('dbsite', site) exp_site = ebapi.cc('dbsite', export_site) if site_id == exp_site: print "Kein Import von '%s', da selbe Stelle" % dir return importprot = ebapi.ImportprotokollList(where = "exp_id = %s" % export_id) if len(importprot) > 0: print "Bereits importiert aus: '%s'" % dir return print "Daten Importieren aus: '%s' ... " % dir def load(klass, dir = dir): name = klass.resultClass.table f = open(os.path.join(dir, name), 'rb') table = marshal.load(f) klass().updateOrInsertTable(table) import_time = int(time.time()) if export_site == config.MASTER_SITE: load(ebapi.MitarbeiterList) load(ebapi.CodeList) else: load(ebapi.AkteList) load(ebapi.FallList) load(ebapi.BezugspersonList) load(ebapi.EinrichtungskontaktList) load(ebapi.LeistungList) load(ebapi.AnmeldungList) load(ebapi.ZustaendigkeitList) load(ebapi.FachstatistikList) load(ebapi.FachstatistikleistungList) load(ebapi.FachstatistikkindproblemList) load(ebapi.FachstatistikelternproblemList) load(ebapi.JugendhilfestatistikList) load(ebapi.ImportprotokollList) load(ebapi.ExportprotokollList) importprot = ebapi.Importprotokoll() importprot['exp_id'] = export_id importprot['dbsite'] = site_id importprot['zeit'] = import_time importprot['mit_id'] = mit_id importprot.new() importprot.insert() print 'Ok'
def count(self, stz_list, von_jahr, bis_jahr, quartal=None): """Aktivitätszeiten auszählen. Ergebnis ist abhängig von Berechtigungen: - verw: alle Mitarbeiter der spezifierten Stellen Summe über alle Mitarbeiter der spezifizierten Stellen - bearb: der Mitarbeiter selber Summe über alle Mitarbeiter der spezifizierten Stellen """ stellen = ','.join(["%s" % s for s in stz_list]) where = ("ky is not NULL and " "ky >= %(von_jahr)s and ky <= %(bis_jahr)s and " "stz in ( %(stellen)s )") % locals() if quartal: assert von_jahr == bis_jahr monate = range(1,13)[3*quartal-3:3*quartal] where += " and km in (%s)" % ','.join([str(i) for i in monate]) fua_list = Fua_BSList(where=where) benr_id = self.mitarbeiter['benr'] benr = self.mitarbeiter['benr__code'] mitarbeiter = [] if benr == 'bearb': mitarbeiter = [self.mitarbeiter] elif benr == 'verw': bearb_benr_id = cc('benr', 'bearb') status = cc('status', 'i') mitarbeiter = MitarbeiterList( where='stz in (%(stellen)s) and stat = %(status)s and benr = %(bearb_benr_id)s' % locals(), order='na') # für jeden Mitarbeiter einen Zähler mit netto, brutto res = {} for m in mitarbeiter: #id --> (netto, brutto) res[m['id']] = self._init_res() for b in fua_list: try: netto, brutto = res[b['mit_id']] self.count_row(netto, brutto, b) except: #import traceback #traceback.print_exc() pass # falls Mitarbeiter in fua, aber nicht in MitarbeiterList # sollte nicht vorkommen, wenn doch, ignorieren summe_netto, summe_brutto = self._init_res() for netto, brutto in res.values(): self._add_res(summe_netto, netto) self._add_res(summe_brutto, brutto) res['summe'] = summe_netto, summe_brutto return mitarbeiter, res
def neue_tabelle_fuer_gemeindeschluessel(self): if 'ags' in self.tables: logging.info("Tabelle 'ags' existiert bereits") return try: SQL("""CREATE TABLE ags ( id int NOT NULL, plz CHAR(5), ags CHAR(12), ort VARCHAR(60), PRIMARY KEY (id), KEY(ort(10)) )""").execute() t = Tabelle() t.init( tabelle="ags", name="Amtliche Gemeindeschlüssel", klasse="AGS", flag=0, maxist=0 ) t.new() t.insert() felder = ( ('id', 'id', None, 'INT', cc('verwtyp', 's'), None,), ('plz', 'Postleitzahl', None, 'CHAR(5)', cc('verwtyp', 'p'), None,), ('ags', 'Gemeindeschlüssel', None, 'CHAR(12)', cc('verwtyp', 'p'), None,), ('ort', 'Ort', None, 'VARCHAR(60)', cc('verwtyp', 'p'), None,), ) for feld, name, inverse, typ, verwtyp, ftab_id in felder: f = Feld() f.init( tab_id=t['id'], feld=feld, name=name, inverse=inverse, typ=typ, verwtyp=verwtyp, ftab_id=ftab_id, flag=0, ) f.new() f.insert() logging.info("Neue Tabelle 'ags' fuer Gemeindeschluessel eingefuehrt") except: #raise logging.error("************ Fehler beim Anlegen der Tabelle 'ags'")
def processForm(self, REQUEST, RESPONSE): if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: self.last_error_message = "Keine ID für den Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) fall = Fall(int(fallid)) benr = self.mitarbeiter['benr__code'] if benr in ('verw',): # Verwaltungskraft kann Einträge für andere Mitarbeiter machen mit_id = fall['zustaendig__mit_id'] else: mit_id = self.mitarbeiter['id'] leistung = Leistung() leistung.init( id=Leistung().getNewId(), ey='', em='', ed='', stz=self.stelle['id'], fall_id=fall['id'], mit_id=mit_id, le=cc('fsle', '1'), ) leistung.setDate('bg', today()) return self._process(REQUEST, RESPONSE, title="Neue Leistung eintragen", legend="Neue Leistung eintragen für", leistung=leistung, file='leisteinf', )
def archive_sql_protocol(user): """Löscht die Daten aus der Protokolltabelle und schreibt sie in eine Archivdatei. Code weitestgehend von MSG übernommen.""" tmp_yek = "2001.12.31" # ?? :-) # diesen abschnitt. hier wird zu erst in eine datei archiviert, dann gelöscht # zeit generieren und fileobjekt erstellen. local_time_insec = time.time() local_time_tupel = time.localtime(local_time_insec) zeitstempel = time.strftime("%d%m%y%H%M%S", local_time_tupel) zeitstempel2 =time.strftime("%d.%m.%y um %H:%M:%S", local_time_tupel) pfad = os.path.join(config.PROTOCOL_DIR, zeitstempel + ".txt") #if os.exists(PROTOCOL_DIR) != true: #mkdir(PROTOCOL_DIR) fdatei = open(pfad, "wb") # jede zeile aus der protokolltabelle wird in die datei geschrieben protokolleintraege = ProtokollList(where = '', order='nr') rot = rotor.newrotor(tmp_yek) from ebkus.app_surface.protokoll_templates import datei_t for p in protokolleintraege: fdatei.write(rot.encryptmore(datei_t % p)) fdatei.write(rot.encryptmore('<br>')) fdatei.write(rot.encryptmore("""<br>****************************<br> Die Protokolltabellen wurden am %s von %s geloescht und in die Datei %s archiviert. <br>****************************<br>""" % (zeitstempel2, user, pfad))) fdatei.close() # Maxist in tabid für protokolltabelle wird gesetzt prottabid = TabellenID(table_name = 'protokoll', dbsite = cc('dbsite', config.SITE)) prottabid.update({'maxist': 0}) # protokolltabelle wird gelöscht protokolleintraege2 = ProtokollList(where = '') protokolleintraege2.deleteall()
def processForm(self, REQUEST, RESPONSE): gruppeid = self.form.get('gruppeid') fallid = self.form.get('fallid') if gruppeid: gruppe = Gruppe(gruppeid) dok = Gruppendokument() dok.init( id=Gruppendokument().getNewId(), gruppe_id=gruppe['id'], ) file = 'uploadgreinf' elif fallid: fall = Fall(fallid) dok = Dokument() dok.init( id=Dokument().getNewId(), fall_id=fall['id'], ) file = 'uploadeinf' dokid = Dokument().getNewId() else: self.last_error_message = "Keine ID fuer Gruppe oder Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) dok.setDate('v', today()) dok.init( mit_id=self.mitarbeiter['id'], art=cc('dokart', 'Bericht'), ) return self._edit_dokument(title='Dokument importieren', file=file, dok=dok, )
def update_4_0_nach_4_1(self): if not self.has_field('jghstat07', 'jahr'): SQL('ALTER TABLE jghstat07 ADD COLUMN jahr INT').execute() logging.info("Feld 'jahr' zur Bundesstatistik hinzugefügt") tab_id = Tabelle(tabelle='jghstat07')['id'] if not FeldList(where="tab_id=%s and feld='jahr'" % tab_id): feld = Feld() feld.init(tab_id=tab_id, feld='jahr', name='Jahr', typ='INT', verwtyp=cc('verwtyp', 'p'), flag=0, ) feld.new() feld.insert() logging.info("Metadaten für Feld 'jahr' hinzugefügt") self.jahr_in_bundesstatistik() Kategorie(code='kr').update({ 'dok': "amtlicher Gemeindeschlüssel (AGS, Ziffer 3-5)"}) Kategorie(code='rbz').update({ 'dok': "amtlicher Gemeindeschlüssel (AGS) obsolet, in Kreis mit drin"}) self.kreis_dreistellig_umstellen() self.einrichtungsnummer_sechsstellig_umstellen() self.keep_alive_anpassen() self.strassenkatalog_reparieren()
def processForm(self, REQUEST, RESPONSE): site = Code(cc('dbsite', '%s' % getDBSite() ) ) res = [] res.append(head_normal_ohne_help_t %('Stellenabgleich: Ex- und Import von Daten in die Datenbank der ' + site['name'])) res.append(formexport_t) return ''.join(res)
def processForm(self, REQUEST, RESPONSE): if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: self.last_error_message = "Keine ID für den Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) fall = Fall(int(fallid)) leistung = Leistung() leistung.init( id=Leistung().getNewId(), ey='', em='', ed='', stz=self.stelle['id'], fall_id=fall['id'], mit_id=self.mitarbeiter['id'], le=cc('fsle', '1'), ) leistung.setDate('bg', today()) return self._process(REQUEST, RESPONSE, title="Neue Leistung eintragen", legend="Neue Leistung eintragen für", leistung=leistung, file='leisteinf', )
def akte_aufbew_initialisieren(self): aufbew_id = cc('aufbew', '1') SQL("UPDATE akte SET aufbew=%s" % aufbew_id).execute() ## akte_list = AkteList(where='') ## for a in akte_list: ## a.update({'aufbew': cc('aufbew', '1')}) # alles auf Beratung logging.info("Aufbewahrungskategorie fuer alle Akten auf 'Beratung' gesetzt")
def altersgruppe(): ag = cc('fsag','999') try: ag = bcode('fsag', alter)['id'] except: pass # kein bereich gefunden return ag
def processForm(self, REQUEST, RESPONSE): if self.form.has_key('fallid'): fallid = self.form.get('fallid') else: self.last_error_message = "Keine ID für den Fall erhalten" return self.EBKuSError(REQUEST, RESPONSE) fall = Fall(fallid) akte = Akte(fall['akte_id']) anm = Anmeldung() anm.init( id=Anmeldung().getNewId(), fall_id=fall['id'], zm=cc('fszm', '999'), ) # Nachname und Telefon des Klienten # im Formular anbieten. anm['von'] = akte['na'] anm['mtl'] = akte['tl1'] return self._process( title="Neue Anmeldeinformation eintragen", anm=anm, hidden=(('anmid', anm['id']), ('file', 'anmeinf'), ('fallid', anm['fall_id']), ) )
def _customize_item(self, item): if fs_customize.deaktiviert(item.name): return None if fs_customize.jokerfeld(item.name): feld = fs_customize.fd[item.name] kat_code = feld['kat_code'] if kat_code: multiple = feld['verwtyp'] == cc('verwtyp', 'm') if fs_customize.jokerfeld_eigenstaendig(item.name): self._legend = feld['name'] item.label = '' else: item.label = feld['name'] if multiple: item.multiple = True item.size = 8 if self._fs: # fachstat Objekt vorhanden, wir sind in updfs item.options = self.for_kat(kat_code, self._fs[item.name]) elif multiple: # initialisieren item.options = self.for_kat(kat_code, None) else: item.options = self.for_kat(kat_code, ' ') ## try: ## item.label = '>>' + item.label ## except: ## pass return item
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 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 processForm(self, REQUEST, RESPONSE): username1 = str(self.form.get('username1')) userpass1 = str(self.form.get('userpass1')) username2 = str(self.form.get('username2')) userpass2 = str(self.form.get('userpass2')) if not username1 == self.user: return self.wiederholen( zeile1 = "Benutzername1 muss der angemeldete Benutzer sein") mitarbeiter1 = Mitarbeiter(ben=username1, stat=cc('status', 'i')) try: mitarbeiter2 = Mitarbeiter(ben=username2, stat=cc('status', 'i')) except: return self.wiederholen( zeile1 = "Benutzername2 ist ungültig") if username1 == username2: return self.wiederholen( zeile1 = ("Es müssen sich zwei verschiedene " + "protokollberechtigte Benutzer anmelden")) if not mitarbeiter1['benr'] == cc('benr', 'protokol'): return self.wiederholen( zeile1="Benutzer %(ben)s ist nicht protokollberechtigt" % mitarbeiter1) if not mitarbeiter2['benr'] == cc('benr', 'protokol'): return self.wiederholen( zeile1 = "Benutzer %(ben)s ist nicht protokollberechtigt" % mitarbeiter2) # Passwort von mitarbeiter1 wird nicht überprüft, da dieser bereits # angemeldet ist. if not mitarbeiter2['pass'] == sha.new(userpass2).hexdigest(): return self.wiederholen( zeile1 = "Passwort von %(ben)s ist falsch" % mitarbeiter2) # erfolgreich, in der Session vermerken self.session.data['protokollbenutzer1'] = username1 self.session.data['protokollbenutzer2'] = username2 res = [] meldung = { 'titel':'Identifikation erfolgreich!', 'legende':'Identifikation erfolgreich!', 'url': 'menu_protocol', 'zeile1':'Sie konnten erfolgreich identifiziert werden.', 'zeile2':'Bitte bestätigen Sie.' } res.append(meldung_weiterleitung_t % meldung) return ''.join(res)
def processForm(self, REQUEST, RESPONSE): mitarbeiterliste = self.getMitarbeiterliste() user = self.user # Das Dokument ist 1 Fall oder 1 Gruppe zugeordnet. if self.form.has_key('fallid'): fallid = self.form.get('fallid') fall = Fall(int(fallid)) akte = Akte(fall['akte_id']) dokliste = DokumentList(where = 'fall_id = %s and mit_id = %s and mtyp = %s' % (fall['id'], self.mitarbeiter['id'], cc('mimetyp', 'txt')), order = 'vy,vm,vd') header = "Texteintrag der Akte zum Ändern auswählen" hidden ={'file': 'updverm'} formkopf = formkopfdokneu_t % fall elif self.form.has_key('gruppeid'): gruppeid = self.form.get('gruppeid') gruppe = Gruppe(int(gruppeid)) dokliste = GruppendokumentList(where = 'gruppe_id = %s and mit_id = %s and mtyp = %s' % (gruppe['id'], self.mitarbeiter['id'], cc('mimetyp', 'txt')), order = 'vy,vm,vd') header = "Texteintrag der Gruppe zum Ändern auswählen" hidden ={'file': 'updgrverm'} formkopf = formkopfdokgrneu_t % gruppe else: self.last_error_message = "Keine ID fuer Fall oder Gruppe erhalten" return self.EBKuSError(REQUEST, RESPONSE) # Liste der Templates als String res = [] res.append(head_normal_t % header) res.append(formkopf) res.append(formhiddenvalues_t % hidden) res.append(vermausw_t) for d in dokliste: res.append(vermausw2_t % d) res.append(vermausw3_t) return string.join(res, '')
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