def altersgruppe(): ag = cc('fsag','999') try: ag = bcode('fsag', alter)['id'] except: pass # kein bereich gefunden return ag
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 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
def get_fs_kontakte(fall, fs): """Anzahl der Kontakte für jede Kontaktart aus den Beratungskontakten in das Fachstatistikobjekt eintragen. """ code2feld = {'1': 'kkm', '2': 'kkv', '3': 'kki', '4': 'kpa', '5': 'kfa', '6': 'ksoz', '7': 'kleh', '8': 'kerz', '9': 'kkonf', '10': 'kson', } if config.BERATUNGSKONTAKTE and not config.BERATUNGSKONTAKTE_BS: for f in code2feld.values(): fs[f] = 0 bkont_list = [] if fall: bkont_list = fall['beratungskontakte'] summe = 0 for bkont in bkont_list: # 0, 1, 2, 3 entsprechend dem code von fskd anzahl = int(bcode('fskd', bkont['dauer'], 0)['code']) code = bkont['art__code'] feld = code2feld[code] fs[feld] += anzahl summe += anzahl fs['kat'] = summe
def get_beratungskontakte(self, beratungskontakte, aktueller_fall=None, # falls False, kein Hinzufügen-Button, inaktive edit/view buttons edit_button=False, # falls False, kein edit button hinzufuegen_button=False, # falls False, kein hinzufügen button ): BS = config.BERATUNGSKONTAKTE_BS if BS: art_feld = 'art_bs' headers=('Datum', 'Mitarbeiter', 'Klienten', 'Art', 'Teilnehmer', 'Dauer in Minuten', 'BS', 'Notiz') else: art_feld = 'art' headers=('Datum', 'Mitarbeiter', 'Klienten', 'Art', 'Dauer', 'BS', 'Notiz') beratungskontakte.sort('ky', 'km', 'kd') if aktueller_fall: updurl = 'updbkont?bkontid=%%(id)d&fallid=%s' % aktueller_fall['id'] rmurl = 'rmbkont?bkontid=%%(id)d&fallid=%s' % aktueller_fall['id'] bisherige_kontakte = h.FieldsetDataTable( legend='Beratungskontakte', empty_msg="Bisher keine Kontakte eingetragen.", noheaders=2, headers=headers, daten=[[(edit_button and (aktueller_fall and h.Icon(href= updurl % b, icon= "/ebkus/ebkus_icons/edit_button.gif", tip= 'Beratungskontakt bearbeiten') or h.Dummy())) or None, (edit_button and (aktueller_fall and h.Icon(href=rmurl % b, icon="/ebkus/ebkus_icons/del_button.gif", tip='Beratungskontakt endgültig löschen') or h.Dummy())) or None, h.Datum(date=b.getDate('k'), time=b.getTime('k')), h.String(string=', '.join([m['na'] for m in b['mitarbeiter']]), ), h.String(string=', '.join([f['akte__na'] for f in b['faelle']]), ), h.String(string=b['%s__name'% art_feld]), BS and h.String(string=', '.join([Code(i)['name'] for i in b['teilnehmer_bs'].split()]), ) or None, BS and h.String(string="%(dauer)s / %(brutto)s" % b, tip='Netto/Brutto') or h.String(string=bcode('fskd', b['dauer'])['name']), h.String(string=b['jghkontakte'] or '', tip='Anzahl der Kontakte im Sinne der Bundesjugendstatistik'), h.String(string=b['no']), ] for b in beratungskontakte], button=(aktueller_fall and hinzufuegen_button and h.Button(value="Hinzufügen", tip="Beratungskontakt hinzufügen", onClick= "go_to_url('bkontneu?akid=%(akte_id)s&fallid=%(id)s')" % aktueller_fall, ) or None), ) return bisherige_kontakte
def _process(self, REQUEST, RESPONSE, title, legendtext, fall, # einer der Fälle, der am Kontakt teilnahme # von dessen Klientenkarte aus man kam bkont, file, ): #print 'BKONT MITARBEITER', bkont['mitarbeiter'] if config.BERATUNGSKONTAKTE_BS: beratungs_kontakt_bearbeiten = h.FieldsetInputTable( legend = '%s %s %s' % (legendtext, fall['akte__vn'], fall['akte__na']), daten = [[h.SelectItem(label='Mitarbeiter', name='mitid', options=self.for_mitarbeiter( sel=[m['id'] for m in bkont['mitarbeiter']]), multiple=True, size=8, ), h.SelectItem(label='Klienten', name='bkfallid', class_='listbox280', options=self.for_klienten( sel=[f['id'] for f in bkont['faelle']]), multiple=True, size=8, ), ], [h.DatumItem(label='Datum/Uhrzeit', name='k', date = bkont.getDate('k'), time = bkont.getTime('k'), ), h.SelectItem(label='Art des Kontaktes', name='art_bs', class_='listbox280', options=self.for_kat('kabs', sel=bkont['art_bs']) ), ], [h.TextItem(label='Dauer in Minuten', name='dauer', value=bkont['dauer'], tip='Bitte in 10-Schritten angeben, z.B. 10, 20, 40, etc.', class_='textboxsmall', maxlength=3, ), h.SelectItem(label='Teilnehmer', name='teilnehmer_bs', multiple=True, size=5, tip='Wer hat teilgenommen?', rowspan=3, options=self.for_kat('teilnbs', sel=bkont['teilnehmer_bs']) ), ], [h.TextItem(label='Anzahl', name='anzahl', value=bkont['anzahl'], tip='Anzahl der Teilnehmer', class_='textboxsmall', maxlength=2, ), ], [h.CheckItem(label='In offener Sprechstunde', name='offenespr', value=cn('ja_nein', 'ja'), checked=bkont['offenespr']==cn('ja_nein', 'ja'), ), ], [h.TextItem(label='Notiz', name='no', value=bkont['no'], class_='textboxverylarge', maxlength=1024, n_col=4, ), ], ], ) else: beratungs_kontakt_bearbeiten = h.FieldsetInputTable( legend = '%s %s %s' % (legendtext, fall['akte__vn'], fall['akte__na']), daten = [[h.SelectItem(label='Mitarbeiter', name='mitid', options=self.for_mitarbeiter( sel=[m['id'] for m in bkont['mitarbeiter']]), multiple=True, size=8, ), h.SelectItem(label='Klienten', name='bkfallid', class_='listbox280', options=self.for_klienten( sel=[f['id'] for f in bkont['faelle']]), multiple=True, size=8, n_col=4, ), ], [h.DatumItem(label='Datum', name='k', date = bkont.getDate('k')), h.SelectItem(label='Art des Kontaktes', name='art', options=self.for_kat('fska', sel=bkont['art'])), h.SelectItem(label='Dauer', name='dauer_kat', options=self.for_kat('fskd', sel=bcode('fskd', bkont['dauer'], 0)['id'])), ], [h.TextItem(label='Notiz', name='no', value=bkont['no'], class_='textboxverylarge', maxlength=1024, n_col=4, ), ], ], ) beratungskontakte = fall['beratungskontakte'] konseq_jgh = h.FieldsetDataTable( legend='Konsequenzen für die Bundesstatistik', ) res = h.FormPage( title=title, name="beratungskontakt",action="klkarte",method="post", breadcrumbs = (('Hauptmenü', 'menu'), ('Klientenkarte', 'klkarte?akid=%(akte_id)s' % fall), ), hidden=(("akid", fall['akte_id']), ("stz", bkont['stz']), ("bkontid", bkont['id']), ("fallid", fall['id']), ("file", file), ), rows=(beratungs_kontakt_bearbeiten, #konseq_jgh, h.SpeichernZuruecksetzenAbbrechen(), self.get_beratungskontakte(beratungskontakte), ) ) return res.display()