12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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]+" <sup>1</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
|