예제 #1
0
 def altersgruppe():
     ag = cc('fsag','999')
     try:
         ag = bcode('fsag', alter)['id']
     except:
         pass # kein bereich gefunden
     return ag
예제 #2
0
 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
예제 #3
0
 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
예제 #5
0
 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()