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']),
                                  ),
                          )
Exemple #2
0
 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&uuml; 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)
Exemple #12
0
    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'
Exemple #14
0
 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
Exemple #15
0
    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,
                                )
Exemple #19
0
 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',
                          )
Exemple #22
0
    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&auml;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 &Auml;ndern ausw&auml;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 &Auml;ndern ausw&auml;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