helfer.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import fkl from './daten/fachklassen.json'
  2. const noten = [null, 'sehr gut', 'gut', 'befriedigend', 'ausreichend', 'mangelhaft', 'ungenügend']
  3. const enoten = {'E1': 'mit besonderem Erfolg teilgenommen', 'E2': 'mit Erfolg teilgenommen', 'E3': 'teilgenommen'}
  4. const punkte = {
  5. 15: '1+', 14: '1', 13: '1-',
  6. 12: '2+', 11: '2', 10: '2-',
  7. 9: '3+', 8: '3', 7: '3-',
  8. 6: '4+', 5: '4', 4: '4-',
  9. 3: '5+', 2: '5', 1: '5-',
  10. 0: '6'}
  11. const zahlwort = {1: "eins",2: "zwei",3: "drei",4: "vier",5: "fünf",6: "sechs",7: "sieben",8: "acht",9: "neun",0: "null"}
  12. export const datum = (t) => {
  13. // gibt ein Datum im deutschen Format zurück
  14. try {
  15. return new Date(t).toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  16. } catch (e) {console.log(e); return}
  17. }
  18. export const versetzungsvermerk = (s, hj, agz=null) => {
  19. // gibt, wenn vorhanden den passenden Vermerk zurück
  20. // wenn es ein agz ist und kein Konferenzdatum feststeht
  21. if (agz && !hj.Konferenzdatum) return
  22. let vermerk = ''
  23. if (hj.Abschnitt === 2 || s.Klasse.startsWith('H')) {
  24. switch (hj.VersetzungKrz) {
  25. case 'N': vermerk = `Nicht versetzt laut Konferenzbeschluss vom ${datum(hj.Konferenzdatum)}`
  26. case 'V': vermerk = `Versetzt laut Konferenzbeschluss vom ${datum(hj.Konferenzdatum)}`
  27. default: vermerk = 'Kein Versetzungsvermerk hinterlegt'
  28. }
  29. }
  30. return vermerk
  31. }
  32. export const bemerkungen = (hj) => {
  33. return hj.ZeugnisBem ? hj.ZeugnisBem.replace('\r\n', '<br/>') : 'keine'
  34. }
  35. export const volljaehrigBei = (s, datum) => {
  36. // gibt an, ob der Schüler *s* zu einem Zeitpunkt *datum* volljährig war
  37. try {
  38. const g = new Date(s.Geburtsdatum)
  39. const d = new Date(datum)
  40. const volljaehrig = d.getFullYear() - g.getFullYear() - ((d.getMonth() > g.getMonth() || (d.getMonth() == g.getMonth() && d.getDay() >= g.getDay()) ? 0 : 1)) >= 18
  41. return volljaehrig
  42. } catch (e) {console.log(e); return}
  43. }
  44. export const schulform = (s) => {
  45. switch (s.ASDSchulform[0]) {
  46. case 'B': return 'Berufsfachschule'
  47. }
  48. }
  49. export const bg = (s,k) => {
  50. if (s.fachklasse && s.fachklasse.Kennung && fkl[s.fachklasse.Kennung]) {
  51. return fkl[s.fachklasse.Kennung][k]
  52. } else
  53. return ''
  54. }
  55. export const note = (note) => noten[parseInt(note)] || enoten[note]
  56. export const punkte2note = (p) => punkte[parseInt(p)]
  57. export const noteInWorten = (n) => n.split('').map(n => n === ',' ? '/' : zahlwort[parseInt(n)]).join(' ')
  58. export const fremdsprache = (fach, fachklasse) => {
  59. try {
  60. return fach.Lernentw || fkl[fachklasse]['Fremdsprache'][fach.Fach_ID]
  61. } catch (e) { return 'undefined - Sprachniveau fehlt'}
  62. }