Пример #1
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     familienarten = get_codes('fsfs')
     leistungsarten = get_codes('fsle')
     
     # Für FORM-HIDDEN-VALUES
     
     hidden ={'file': 'akteeinf'}
     akid = Akte().getNewId()
     hiddenid ={'name': 'akid', 'value': akid}
     hiddenid2={'name': 'stzbg', 'value': self.stelle['id']}
     
     # Liste der Templates als String
     res = []
     res.append(head_normal_t %('Neue Akte anlegen'))
     res.append(akte_neu_t1)
     mksel(res, codeliste_t, familienarten, 'code', '999')
     res.append(akte_neu_t3)
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'ben', user)
     res.append(akte_neu_t4  % today())
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'ben', user)
     res.append(akte_neu_t5)
     mksel(res, codeliste_t, leistungsarten, 'code', '1')
     res.append(akte_neu_t6 % today())
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % hiddenid)
     res.append(formhiddennamevalues_t % hiddenid2)
     res.append(akte_neu_t7 % today())
     return string.join(res, '')
    def processForm(self, REQUEST, RESPONSE):
        #print 'FORM', self.form
        fall_id = self.form.get('fallid')
        if not fall_id:
            self.last_error_message = "Keine Fall-ID für Beratungskontakte erhalten"
            return self.EBKuSError(REQUEST, RESPONSE)
        fall = Fall(fall_id)
        beratungskontakt_list = fall['beratungskontakte']
        if not beratungskontakt_list:
            raise EE('XXXKeine Beratungskontakte vorhanden')
        titelstr = ("Beratungskontakte für %s " % (fall['name']) +
                    "bis %(day)d.%(month)d.%(year)d " % today() +
                    '(Fallnummer: %s)' % fall['fn'])
        ueberschrift = h.TableDataTable(
            daten=[[h.String(string=titelstr,
                                   class_='tabledatabold'),
                    ],
                   [h.Dummy()],
                   ],
            )

        beratungskontakte = self.get_beratungskontakte(
            beratungskontakt_list,
            cls=h.TableDataTable,
            header_class='tabledatabold',
            )
        res = h.Page(
            title='Beratungskontakte %(fn)s ' % fall + \
                'bis %(day)d.%(month)d.%(year)d)' % today(),
            ueberschrift=ueberschrift,
            rows=(ueberschrift,
                  beratungskontakte,
                  ),
            )
        return res.display()
Пример #3
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     if self.form.has_key('frist'):
         frist = self.form.get('frist')
     else:
         self.last_error_message = "Keine Frist erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
         
     jahr = today().year
     monat = today().month
     heute = int(jahr)*12 + int(monat)
     loeschzeitm = int(heute)-int(frist)
     loeschjahr = int(loeschzeitm) / int(12)
     loeschmonat = int(loeschzeitm) - (int(loeschjahr) * int(12))
     
     hidden ={'file': 'removeakten'}
     
     res = []
     res.append(head_normal_ohne_help_t %("Akten und Gruppen löschen"))
     res.append(rmakten2a_t)
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % ({'value': frist, 'name': 'frist'}))
     res.append(formhiddennamevalues_t % ({'value': loeschjahr,
                                           'name': 'loeschjahr'}))
     res.append(formhiddennamevalues_t % ({'value': loeschmonat,
                                           'name': 'loeschmonat'}))
     res.append(rmakten2b_t % (frist, loeschmonat, loeschjahr ))
     return string.join(res, '')
def get_jgh_kontakte(fall):
    """Ermittelt Anzahl der Kontakte sowohl für den ganzen Fall
    als auch für das vergangene Jahr.

    In Braunschweig anders als sonst.

    1;persönlicher Kontakt §28;kabs
    2;telefonischer Kontakt (mit Beratungscharakter);kabs
    3;Schreiben;kabs
    4;Fachkontakt;kabs
    5;ausgefallener Kontakt;kabs
    6;Gruppenkontakt;kabs
    7;E-Mail;kabs
    8;interner Fachkontakt, Fallbesprechung;kabs
    9;fallbezogene Fahrzeit;kabs
    Für die Bundesstatistik zählt 1,2,4,6,7
    """
    jahr = today().year - 1 # Normalerweise vom letzten Jahr
    # TODO wieder auf > 10 stellen
    # TODO wie genau zählen? Noch mal absprechen
    if today().month > 6:  # Ab Juli von diesem Jahr
        jahr += 1
    bkont_list = fall['beratungskontakte']
    kontakte_im_jahr = kontakte_insgesamt = 0
    if config.BERATUNGSKONTAKTE:
        for row in bkont_list:
            k = row['jghkontakte'] # definiert in ebapi.py und über art_bs__dok
            if row['ky'] == jahr:
                kontakte_im_jahr += k
            kontakte_insgesamt += k
    else:
        kontakte_im_jahr = 0
        kontakte_insgesamt = 0
    return kontakte_im_jahr, kontakte_insgesamt
Пример #5
0
 def jahr_in_bundesstatistik(self):
     "geschlossene Fälle: Ende-Jahr"
     "offene Fälle: bis Mai Vorjahr, sonst dieses Jahr"
     SQL("UPDATE jghstat07 SET jahr=ey WHERE ey IS NOT NULL").execute()
     logging.info("Bundesstatistiken von abgeschlossenen Faellen auf Ende-Jahr gesetzt")
     jahr = today().year
     if today().month < 10:
         jahr -= 1
     SQL("UPDATE jghstat07 SET jahr=%s WHERE ey IS NULL" % jahr).execute()
     logging.info("Bundesstatistiken von andauernden Faellen auf %s gesetzt" % jahr)
Пример #6
0
 def choose_date(self, min=None, max=today()):
     if not min:
         min = Date(today().year - 2)
     assert max >= min
     assert min != Date(0,0,0)
     assert max != Date(0,0,0)
     while True:
         year = randrange(min.year, max.year + 1)
         month = randrange(1, 13)
         day = randrange(1, 29)
         date = Date(year, month, day)
         if date >= min and date <= max:
             return date
Пример #7
0
    def processForm(self, REQUEST, RESPONSE):
        file = self.form.get('file')
        if file in ('fuabseinf', 'updfuabs', 'removefuabs'):
            # API Funktion einf bzw. upd aufrufen
            getattr(ebupd, file)(self.form)
        jahr = self.form.get('jahr')
        monat = self.form.get('monat', '')
        if not jahr:
            jahr = today().year
            monat = today().month
        auswahl = h.FieldsetInputTable(
            legend="Bisherige Aktivitäten zeigen",
            daten=[[h.TextItem(label='Jahr',
                               name='jahr',
                               tip='Jahr der zu zeigenden Aktivitäten',
                               value=jahr,
                               class_='textboxmid',
                               ),
                    h.TextItem(label='Monat',
                               name='monat',
                               tip='Monat der zu zeigenden Aktivitäten (leer lassen für Aktivitäten des ganzen Jahres)',
                               value=monat,
                               class_='textboxsmall',
                               ),
                    h.Button(value="Zeigen",
                             tip="Aktivitäten zeigen",
                             type="submit",
                             ),
                    ]],
            )
        title="Fallunabhängige Aktivitäten für %s%s" % (monat and "%s/" % monat or '', jahr)
        res = h.FormPage(
            title=title,
            name="fua",action="fua",method="get",
            breadcrumbs = (('Hauptmenü', 'menu'),
                           ),
##             hidden=(("akid", fall['akte_id']),
##                     ("stz", fua['stz']),
##                     ("fuaid", fua['id']),
##                     ("fallid", fall['id']),
##                     ("file", file),
##                     ),
            rows=(self.get_hauptmenu(),
                  auswahl,
                  #self.get_fua_bs(jahr, monat, title,
                  self.get_fua_bs_new(jahr, monat, title,
                                  edit_button=True,
                                  hinzufuegen_button=True),
                  )
            )
        return res.display()
Пример #8
0
 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',
                          )
Пример #9
0
 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',
                          )
Пример #10
0
 def processForm(self, REQUEST, RESPONSE):
     bestaetigung = {'titel': "Bundesjugendhilfestatistik: Exportdatei erstellen",
                     'legende':'Bundesjugendhilfestatistik: Exportdatei erstellen',
                     'zeile':'Bitte das Exportjahr eingeben und mit Ok best&auml;tigen!',
                     'jahr' : '%s' % (today().year),
                     'dest_url':'menu'}
     return bestaetigung_t % bestaetigung
Пример #11
0
 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,
                                )
Пример #12
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')))
Пример #13
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     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))
     akte = Akte(fall['akte_id'])
     zustaendigkeiten = fall['zustaendigkeiten']
     zustaendigkeiten.sort('bgy', 'bgm', 'bgd')
     
     hidden ={'file': 'zusteinf'}
     zustid = Zustaendigkeit().getNewId()
     hiddenid ={'name': 'zustid', 'value': zustid}
     
     # Liste der Templates als String
     
     res = []
     res.append(head_normal_t %("Neue Zust&auml;ndigkeit eintragen"))
     res.append(thzustneu_t %fall)
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'na', user)
     res.append(zustneudatum_t % today())
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % hiddenid)
     res.append(zustende_t % fall['zustaendig'])
     if len(zustaendigkeiten) > 0:
         res.append(thzustaendigkeiten_t)
         for z in zustaendigkeiten:
             res.append(zustaendigkeiten_t % z)
         res.append(zustaendigkeiten_ende_t)
         
     return string.join(res, '')
Пример #14
0
 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 show_tabelle_all(self):
     """Zeigt alle Ergebnistabellen druckerfreundlich"""
     from  ebkus.html.statistik_abfrage import get_abfrage, Ueberschrift
     abfrage = get_abfrage(self.anzeige_gg, self.query, self.anzahl, h.TableDataTable)
     daten = []
     for auszaehlung in self.auszaehlungen:
         daten.append([h.Dummy(n_col=3)])
         if isinstance(auszaehlung, Ueberschrift):
             daten.append([h.String(string=auszaehlung.ueberschrift, 
                                    class_='titeltext',
                                    n_col=3),])
             continue
         daten.append([h.String(string=auszaehlung.title, 
                                class_='tabledatabold'),
                       h.String(string='S', 
                                class_='tabledatabold'),
                       h.String(string='%', 
                                class_='tabledatabold'),])
         for data in auszaehlung.get_result():
             daten.append([h.String(string=data[0]),
                           h.String(string=data[1]),
                           h.String(string="%.2f" % data[2]),])
     res = h.Page(
         title='Statistikauswertung vom %(day)d.%(month)d.%(year)d.' % today(),
         rows=(abfrage,
               h.TableDataTable(daten=daten),
               ),
         )
     return res.display()
Пример #16
0
 def fake_altdaten(self, csv_file, fields):
     id=Altdaten().getNewId()
     jahr=str(self.choose_date(Date(1999), Date(2006)).year)
     altd = Altdaten()
     altd.init(
         id=id,
         vorname=choice(self.vornamen),
         name=choice(self.namen),
         geburtsdatum=str(self.choose_date(Date(1989,3,1), today().add_month(-24))),
         geschlecht=choice(('m', 'w')),
         jahr=jahr,
         fallnummer=("%s%03d" % (jahr, choice(range(1,1000)))),
         mitarbeiter="Mitarb%s" % id,
         strasse=choice(self.strassen),
         hausnummer=str(randrange(1, 200)),
         plz=str(randrange(10000, 99999)),
         ort=choice(self.orte),
         telefon1=str(randrange(10001, 99999999)),
         telefon2=str(randrange(10001, 99999999)),
         memo=("Memo für Altdaten id=%s. "
         "äöüÄÖÜß Hier kann man noch eine Menge über den alten Fall reinschreiben. "
         "Auch längere Texte. " % id)[:randrange(25,150)]
         )
     csv = ';'.join([('"%%(%s)s"' % a) % altd for a in fields])
     csv_file.write(csv + '\r\n')
     altd.insert()
     log("Altdaten %s" % id)
     return altd
Пример #17
0
 def _set_attributes(self, kw):
     self.session_key = kw.get('session_key')
     if not hasattr(self, 'feld'):
         self.feld = None
     # die Zahl hat nichts zu sagen, nur damit es nicht
     # genau die Adresse des Objekts ist :-)
     self.id = str(id(self)+785423)
     if self.liste:
         el0 = self.liste[0] 
         if isinstance(el0, tuple): # Liste kann auch aus Paaren bestehen
             el0 = el0[0]
         class_ = el0.__class__.__name__
         self.auswertungs_ueberschrift = \
             kw.get('auswertungs_ueberschrift',
                    "%sauswertung vom %s" % (
                     Tabelle(klasse=class_)['name'],
                     "%(day)d.%(month)d.%(year)d." % today()))
     else:
         self.auswertungs_ueberschrift = 'Unbekannt'
     self.kategorie = kw.get('kategorie', self.feld and self.feld['kat']
                             or None)
     self.title = kw.get('title', self.feld and self.feld['name'] or 'Kein Titel')
     self.xtitle = kw.get('xtitle', self.title)
     #self.ytitle = kw.get('ytitle', 'S')
     self.ytitle = kw.get('ytitle', '%')
     self.identname = self.title.lower().replace('/','_').replace(' ', '_')
     self.result = None
Пример #18
0
 def processForm(self, REQUEST, RESPONSE):
     fallid = self.form.get('fallid')
     jahr = today().year
     jghiddel = self.form.get('jghiddel')
     typ = self.form.get('typ')
     if jghiddel and typ == 'jgh' and fallid:
         # alte Statistik auf neue upgraden
         upgrade_jgh(jghiddel, old2new=True)
     if not fallid:
         raise EE('Bundesstatistik nur f&uuml;r einen g&uuml;ltigen Fall')
     fall = Fall(fallid)
     ex_jgh = fall['jgh']
     if ex_jgh:
         raise EE('Bundesstatistik bereits vorhanden.')
     jgh = Jugendhilfestatistik2007()
     jgh['jghid'] = Jugendhilfestatistik2007().getNewId()
     jgh['stz'] = self.stelle['id']
     jgh['file'] = 'jgh07einf'
     jgh['mit_id'] = fall['zustaendig__mit_id']
     #jgh.setDate('bg', fall.getDate('bg'))
     jgh.setDate('bg', fall['leistungsbeginn'])
     jgh['fall_fn'] = fall['fn']
     jgh['fall_id'] = fall['id']
     jgh['jahr'] = jahr
     dmy = [int(e) for e in fall['akte__gb'].split('.')]
     dmy.reverse()
     geburtsdatum = ebapi.Date(*dmy)
     jgh['gey'] = geburtsdatum.year
     jgh['gem'] = geburtsdatum.month
     jgh['gs'] = fall['akte__gs']
     assert isinstance(jgh['gs'], (int, long))
     if config.BERATUNGSKONTAKTE:
         from ebkus.html.beratungskontakt import get_jgh_kontakte
         jgh['nbkakt'], jgh['nbkges'] = get_jgh_kontakte(fall, jahr)
     return self._formular(jgh)
Пример #19
0
 def repeat_zda_waufn(self):
     """Hier soll alles rein, was die Wahrscheinlichkeit eines ZDA
     und WAUFN betrifft."""
     for i in range(5):
         af = Akte(self.akte_id)['aktueller_fall']
         if af:
             bg = af.getDate('bg')
             zda = self.choose_date(bg.add_month(1), bg.add_month(30))
             if zda < today():
                 self.fake_zda(zda)
         lf = Akte(self.akte_id)['letzter_fall']
         zda = lf.getDate('zda')
         if not zda.is_zero() and random() < .4:
             waufn = self.choose_date(zda.add_month(1), zda.add_month(30))
             if waufn < today():
                 self.fake_waufn(waufn)
Пример #20
0
    def grundgesamtheit(self, bis_jahr=None, von_jahr=None, quartal=None,
                        stellen_ids=None,
                        legend='Grundgesamtheit',
                        submit_value=None,
                        show_quartal=True):
        "Für Auswertungen. Legt Jahre und Stellen fest."
        #print 'GG', von_jahr, bis_jahr
        if not bis_jahr:
            bis_jahr = today().year
        if von_jahr == bis_jahr or not von_jahr:
            erster_eintrag = ' '
            von_jahr = None
        else:
            erster_eintrag = None
        if not stellen_ids:
            stellen_ids = [self.stelle['id']]
        res = h.FieldsetInputTable(
            legend=legend,
            daten=[[show_quartal and h.SelectItem(label='Quartal',
                                 name='quartal',
                                 class_='listbox30',
                                 tip='Wählen Sie das Quartal, für das eine Auszählung erfolgen soll',
                                 options=self.for_quartal(sel=quartal, erster_eintrag=' '),
                                 ) or h.DummyItem(),
                    h.SelectItem(label='Jahr',
                                 name='bis_jahr',
                                 class_='listbox45',
                                 tip='Wählen Sie das Jahr, für das eine Auszählung erfolgen soll',
                                 options=self.for_jahre(sel=bis_jahr),
                                 ),
                    h.SelectItem(label='Stelle',
                                 name='stz',
                                 multiple=True,
                                 rowspan=2,
                                 tip='Eine oder mehrere Stellen auswählen',
                                 size=3,
                                 options=self.for_kat('stzei', sel=stellen_ids),
                                 ),
                    ],
                   [h.SelectItem(label='Frühere Jahre einbeziehen ab',
                                 name='von_jahr',
                                 class_='listbox45',
                                 n_label=3,
                                 n_col=4,
                                 tip='Nur für Auswertungen über mehrere Jahre hinweg',
                                 options=self.for_jahre(sel=von_jahr,
                                                        erster_eintrag=erster_eintrag),
                                 ),
                    ],
                   [h.Dummy(n_col=4)],
                   ],
            button=submit_value and h.Button(value=submit_value,
                                             name='op',
                                             tip=submit_value,
                                             type='submit',
                                             n_col=4,
                                             ) or None,

            )
        return res
Пример #21
0
 def choose_date(self, min=None, max=None):
     if not max:
         max = today()
     if not min:
         min = Date(today().year - 2)
     #log("CHOOSE_DATE min/max: %s/%s" % (min,max))
     assert max >= min
     assert min != Date(0,0,0)
     assert max != Date(0,0,0)
     while True:
         year = randrange(min.year, max.year + 1)
         month = randrange(1, 13)
         day = randrange(1, 29)
         date = Date(year, month, day)
         if date >= min and date <= max:
             return date
Пример #22
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     if self.form.has_key('fallid'):
         fallid = self.form.get('fallid')
     else:
         self.last_error_message = "Keine ID fuer den Fall erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     fall = Fall(int(fallid))
     akte = Akte(fall['akte_id'])
     zustaendigkeiten = fall['zustaendigkeiten']
     letzte_zustaendigkeit = zustaendigkeiten[-1]
     zustaendigkeiten.sort('bgd', 'bgm', 'bgy')
     
     zustid = Zustaendigkeit().getNewId()
     hiddenid ={'name': 'zustid', 'value': zustid}
     hidden ={'file': 'zdareinf'}
     
     # Liste der Templates als String
     
     res = []
     res.append(head_normal_t %("Abschlussdatum r&uuml;ckg&auml;ngig machen"))
     res.append(zdarzust1_t)
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'id',
           letzte_zustaendigkeit['mit_id'])
     res.append(zdarzust2_t % today())
     res.append(hiddenakte_id % fall)
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % hiddenid)
     res.append(zdarzust3_t %fall)
     return string.join(res, '')
Пример #23
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     if self.form.has_key('fallid'):
         fallid = self.form.get('fallid')
     else:
         self.last_error_message = "Keine ID fuer den Fall erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     fall = Fall(int(fallid))
     akte = Akte(fall['akte_id'])
     zustaendigkeiten = fall['zustaendigkeiten']
     zustaendigkeiten.sort('bgd', 'bgm', 'bgy')
     aktuell_zustaendig = fall['zustaendig']
     
     hidden ={'file': 'zdaeinf'}
     
     # Liste der Templates als String
     
     res = []
     res.append(head_normal_t %("Abschlu&szlig;datum eintragen"))
     res.append(zda_t % fall)
     res.append(zda_t2 % today())
     res.append(zda_t3 % aktuell_zustaendig)
     if len(zustaendigkeiten) > 0:
         res.append(thzustaendigkeiten_t)
         for z in zustaendigkeiten:
             res.append(zustaendigkeiten_t % z)
         res.append(zustaendigkeiten_ende_t)
     res.append(hiddenakte_id % fall)
     res.append(formhiddenvalues_t % hidden)
     res.append(zda_t4 % fall)
     return string.join(res, '')
Пример #24
0
def get_export_datei_name(jahr, log, andauernd):
    log = log and '_log' or ''
    t = today()
    andauernd = andauernd and (
        "_am_%04d-%02d-%02d_andauernd" % (t.year, t.month, t.day)
        ) or ''
    name = "jgh_%s%s%s.txt" % (jahr, andauernd, log)
    return name
Пример #25
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))
Пример #26
0
 def processForm(self, REQUEST, RESPONSE):
     gruppeid = self.form.get('gruppeid')
     if gruppeid:
         gruppe = Gruppe(gruppeid)
     else:
         self.last_error_message = "Keine ID fuer die Gruppe erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     klientenauswahl = h.FieldsetInputTable(
         legend='Klientenauswahl', 
         daten=[[h.SelectItem(name='fallid',
                              size="10",
                              multiple=True,
                              class_="listbox220",
                              tip="Alle offene Fälle, für die Sie Zugriffsrechte haben",
                              options=self.for_klienten(kurz=True),
                              nolabel=True,
                              ),
                 ]])
     bezugspersonenauswahl = h.FieldsetInputTable(
         legend='Bezugspersonenauswahl', 
         daten=[[h.SelectItem(name='bezugspid',
                              size="10",
                              multiple=True,
                              class_="listbox220",
                              tip="Alle Bezugspersonen von offenen Fällen, für die Sie Zugriffsrechte haben",
                              options=self.for_bezugspersonen(),
                              nolabel=True,
                              ),
                 ]])
     datumsetzen = h.FieldsetInputTable(
         legend = 'Teilnahmezeitraum',
         daten = [[h.DatumItem(label='Beginndatum',
                               name='bg',
                               date=today(),
                               ),
                   h.DatumItem(label='Endedatum',
                               name='e',
                               ),
                   ]]
         )
     res = h.FormPage(
         title='Teilnehmerauswahl',
         name='gruppenform',action="grkarte",method="post",
         breadcrumbs = (('Hauptmenü', 'menu'),
                        ('Gruppenmenü', 'menu'),
                        ('Gruppenkarte', 'grkarte?gruppeid=%s' % gruppe['id']),
                        ),
         hidden=(("gruppeid", gruppe['id']),
                 ("file", 'gruppeteilneinf'),
                 ("mitid", self.mitarbeiter['id']),
                 ),
         rows=(h.Pair(left=klientenauswahl,
                      right=bezugspersonenauswahl),
               datumsetzen,
               h.SpeichernZuruecksetzenAbbrechen(),
               ),
         )
     return res.display()
Пример #27
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     if self.form.get('akid'):
         akid = self.form.get('akid')
     else:
         self.last_error_message = "Keine ID fuer die Akte erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     akte = Akte(int(akid))
     letzter_fall = akte['letzter_fall']
     familienarten = get_codes('fsfs')
     leistungsarten = get_codes('fsle')
     
     # Für FORM-HIDDEN-VALUES
     
     hidden ={'file': 'waufneinf'}
     fallid = Fall().getNewId()
     hiddenid ={'name': 'fallid', 'value': fallid}
     hiddenstatus ={'name': 'status', 'value': cc('stand', 'l')}
     hiddenid2={'name': 'stzbg', 'value': self.stelle['id']}
     
     # Liste der Templates als String
     
     akte_kopie = akte
     res = []
     res.append(head_normal_t %("Wiederaufnahme des Klienten"))
     akte['legend'] = "Klientendaten von %(vn)s %(na)s" % akte
     akte['bezug_nominativ'] = 'der Klient'
     akte['bezug_genitiv'] = 'des Klienten'
     res.append(wiederaufnahme_t1 % akte)
     mksel(res, codeliste_t, familienarten, 'id', akte['fs'])
     res.append(wiederaufnahme_t3 %akte)
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'ben', user)
     res.append(wiederaufnahme_t4  % today())
     mksel(res, mitarbeiterliste_t, mitarbeiterliste, 'ben', user)
     res.append(wiederaufnahme_t5)
     mksel(res, codeliste_t, leistungsarten)
     res.append(wiederaufnahme_t6 % today())
     res.append(formhiddenvalues_t % hidden)
     res.append(formhiddennamevalues_t % hiddenid)
     res.append(formhiddennamevalues_t % hiddenid2)
     res.append(formhiddennamevalues_t % hiddenstatus)
     res.append(wiederaufnahme_t7 % today())
     res.append(hiddenakte_id % letzter_fall)
     return string.join(res, '')
Пример #28
0
 def processForm(self, REQUEST, RESPONSE):
     fsid = self.form.get('fsid')
     if fsid:
         fs = Fachstatistik(fsid)
     else:
         self.last_error_message = "Keine ID für die Fachstatistik erhalten"
         return self.EBKuSError(REQUEST, RESPONSE)
     title='Fachstatistik für Fallnummer %(fall_fn)s ' % fs + \
         'am %(day)d.%(month)d.%(year)d' % today()
     ueberschrift = h.TableDataTable(
         daten=[[h.String(string=title,
                                class_='tabledatabold'),
                 ],
                [h.Dummy()],
                ],
         )
     page = self._process(title='Fachstatistik ansehen',
                          file='updfs',
                          fs=fs,
                          pageonly=True,
                          )
     data = []
     page.get_data(data)
     daten = []
     for label, value in data:
         if not label and not value:
             continue
         if label == 'legend':
             daten.append( [h.String(string=value,
                                class_='tabledatabold'),
                       h.String(string='')])
         elif value and isinstance(value, (list, tuple)):
             daten.append( [h.String(string=label),
                       h.String(string=value[0]),
                       ])
             for v in value[1:]:
                 daten.append( [h.String(string=''),
                           h.String(string=v),
                           ])
         else:
             daten.append( [h.String(string=label),
                       h.String(string=value),
                       ])
     tabelle = h.TableDataTable(
         headers=('Item', 'Wert'),
         daten=daten,
         )
     res = h.Page(
         title = title,
         ueberschrift=ueberschrift,
         rows=(ueberschrift,
               tabelle,
               ),
         )
     return res.display()
Пример #29
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))
Пример #30
0
 def processForm(self, REQUEST, RESPONSE):
     mitarbeiterliste = self.getMitarbeiterliste()
     user = self.user
     site = Code(cc('dbsite', '%s' % getDBSite()))
     
     res = []
     bestaetigung = {'titel':("Bundesjugendhilfestatistik: Exportdatei erstellen der %s" % site['name']),
                     'legende':'Best&auml;tigung des Exportvorgangs',
                     'zeile':'Bitte das Exportjahr eingeben und mit Ok best&auml;tigen!',
                     'jahr' : '%s' % (today().year),
                     'dest_url':'menu'}
     res.append(bestaetigung_t %(bestaetigung))
     return ''.join(res)