helpers.rb 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. module Helpers
  2. def noten_set(gruppe, fachklasse, notenquelle=nil)
  3. faecher = gruppe.map do |f|
  4. fach = Hash.new
  5. gliederung = f.fach.gliederungen.find{|f|f.fachklasse == fachklasse}
  6. fach[:gliederung] = f.fach.gliederungen.find{|f|f.fachklasse == fachklasse}
  7. fach[:fachgruppe] = f.fachgruppe_ID
  8. fach[:sortierung] = (gliederung && gliederung.sortierung) || f.fach.sortierung_s2
  9. fach[:zeugnisbez] = (gliederung && gliederung.zeugnis_bez) || f.fach.zeugnisbez
  10. fach[:gewichtung] = (gliederung && gliederung.gewichtung_ab) || f.fach.gewichtung_fhr
  11. fach[:bezeichnung]= f.fach.bezeichnung
  12. fach[:lernentw] = f.Lernentw if (f.Lernentw && f.fach.ist_sprache == "-")
  13. if f.fach.ist_sprache == "+"
  14. fach[:sprachniveau] = f.Lernentw || settings.repo.fachklasse_info(Abschnitt[f.abschnitt_id], "Fremdsprache", f.fach_id)
  15. fach[:sprachniveau] += "<sup>1</sup>" unless fach[:sprachniveau].nil?
  16. else
  17. fach[:sprachniveau] = ""
  18. end
  19. if notenquelle.nil?
  20. fach[:note] = f.note || "––––––"
  21. else
  22. s = Abschnitt[f.abschnitt_id].schueler
  23. 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")
  24. end
  25. fach[:noten_krz] = f.noten_krz
  26. fach
  27. end
  28. faecher.sort_by!{|f| f[:sortierung]}
  29. h=Hash.new
  30. faecher.group_by{|f| f[:bezeichnung]}.each_pair do |k,v|
  31. if v.first[:zeugnisbez] != v.first[:bezeichnung]
  32. h[v.first[:bezeichnung]] = v
  33. else
  34. h[v.first[:sortierung]] = v
  35. end
  36. end
  37. return h
  38. end
  39. end