module Helpers def noten_set(gruppe, fachklasse, notenquelle=nil) faecher = gruppe.map do |f| fach = Hash.new gliederung = f.fach.gliederungen.find{|f|f.fachklasse == fachklasse} fach[:gliederung] = f.fach.gliederungen.find{|f|f.fachklasse == fachklasse} fach[:fachgruppe] = f.fachgruppe_ID fach[:sortierung] = (gliederung && gliederung.sortierung) || f.fach.sortierung_s2 fach[:zeugnisbez] = (gliederung && gliederung.zeugnis_bez) || f.fach.zeugnisbez fach[:gewichtung] = (gliederung && gliederung.gewichtung_ab) || f.fach.gewichtung_fhr fach[:bezeichnung]= f.fach.bezeichnung fach[:lernentw] = f.Lernentw if (f.Lernentw && f.fach.ist_sprache == "-") if f.fach.ist_sprache == "+" fach[:sprachniveau] = f.Lernentw || settings.repo.fachklasse_info(Abschnitt[f.abschnitt_id], "Fremdsprache", f.fach_id) fach[:sprachniveau] += "1" unless fach[:sprachniveau].nil? else fach[:sprachniveau] = "" end if notenquelle.nil? fach[:note] = f.note || "––––––" else s = Abschnitt[f.abschnitt_id].schueler fach[:note] = s.bk_abschluss_leistungen_dataset.where(:Fach_ID => fach.fach_id).first.note(notenquelle) || "––––––" rescue (Warnung.add(s.name, "Einige Fächer sind ohne eingetragene Note in der BK-Abschlussberechnung.");"FEHLER") end fach[:noten_krz] = f.noten_krz fach end faecher.sort_by!{|f| f[:sortierung]} h=Hash.new faecher.group_by{|f| f[:bezeichnung]}.each_pair do |k,v| if v.first[:zeugnisbez] != v.first[:bezeichnung] h[v.first[:bezeichnung]] = v else h[v.first[:sortierung]] = v end end return h end end