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 count_row(self, netto, brutto, bkont): "Einen Kontakt auszählen" art = bkont['art_bs__code'] dauer = bkont['dauer'] netto[art] += dauer brutto[art] += bkont['brutto'] if bkont['offenespr'] == cn('ja_nein', 'ja'): # Offene Sprechstunde netto['offenespr'] += dauer brutto['offenespr'] += bkont['brutto']
def _item(self, data, jgh): if isinstance(data, basestring): return fb_zwischenueberschrift_t % data assert isinstance(data, dict) item = data.copy() label = item['typ'][0] if label == 'kat': kat_code = item['typ'][1] name = item['name'] default = jgh.get(name) if name == 'gs': # Geschlecht readonly # Wert muss da sein! Nur f黵 Geschlecht gedacht. item['value'] = Code(jgh[name])['name'] item['name'] = '' # readonly feld item['ro'] = 'readonly' item['tip'] = '' return fb_text_item_t % item if not default: default = item.get('default') if default and default != ' ': default = cc(kat_code, default) codes = get_codes(kat_code) #item['options'] = mkselstr(fb_option_t, codes, 'id', default) no_empty_option = item.get('no_empty_option') item['options'] = ''.join(make_option_list(codes, default, no_empty_option)) maxl = max([len(c['name']) for c in codes]) if maxl < 60: w = "%sem" % max(maxl, 3) else: w = "100%" item['width'] = w if name == 'hda': item['onChange'] = """onChange="del_anzahl_kontakte('%s', '%s')" """ % \ (cn('ja_nein', 'ja'), cn('ja_nein', 'nein')) else: item['onChange'] = '' return fb_select_one_item_t % item elif label == 'int': minl, maxl = item['typ'][1:3] item['size'] = len(str(maxl)) name = item['name'] default = jgh.get(name) if not default: default = item.get('default') if default == None: default = '' item['value'] = default if item.get('readonly'): item['ro'] = 'readonly' else: item['ro'] = '' extra = item.get('extra') if extra: item['tip'] = tip_t % {'tip': extra} else: item['tip'] = '' return fb_int_item_t % item elif label == 'checkbox': name = item['name'] value = jgh.get(name) item['value'] = '1' item['checked'] = (value == '1' and 'checked' or '') return fb_checkbox_item_t % item else: return ''
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()