helfer.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. export const datum = (t) => {
  5. // gibt ein Datum im deutschen Format zurück
  6. try {
  7. return new Date(t).toLocaleDateString('de', {day: '2-digit', month: '2-digit', year: 'numeric'})
  8. } catch (e) {console.log(e); return}
  9. }
  10. export const versetzungsvermerk = (s, hj, agz=null) => {
  11. // gibt, wenn vorhanden den passenden Vermerk zurück
  12. // wenn es ein agz ist und kein Konferenzdatum feststeht
  13. if (agz && !hj.Konferenzdatum) return
  14. let vermerk = ''
  15. if (hj.Abschnitt === 2 || s.Klasse.startsWith('H')) {
  16. switch (hj.VersetzungKrz) {
  17. case 'N': vermerk = `Nicht versetzt laut Konferenzbeschluss vom ${datum(hj.Konferenzdatum)}`
  18. case 'V': vermerk = `Versetzt laut Konferenzbeschluss vom ${datum(hj.Konferenzdatum)}`
  19. default: vermerk = 'Kein Versetzungsvermerk hinterlegt'
  20. }
  21. }
  22. return vermerk
  23. }
  24. export const bemerkungen = (hj) => {
  25. return hj.ZeugnisBem ? hj.ZeugnisBem.replace('\r\n', '<br/>') : 'keine'
  26. }
  27. export const volljaehrigBei = (s, datum) => {
  28. // gibt an, ob der Schüler *s* zu einem Zeitpunkt *datum* volljährig war
  29. try {
  30. const g = new Date(s.Geburtsdatum)
  31. const d = new Date(datum)
  32. const volljaehrig = d.getFullYear() - g.getFullYear() - ((d.getMonth() > g.getMonth() || (d.getMonth() == g.getMonth() && d.getDay() >= g.getDay()) ? 0 : 1)) >= 18
  33. return volljaehrig
  34. } catch (e) {console.log(e); return}
  35. }
  36. export const schulform = (s) => {
  37. switch (s.ASDSchulform[0]) {
  38. case 'B': return 'Berufsfachschule'
  39. }
  40. }
  41. export const bg = (s,k) => {
  42. if (s.fachklasse && s.fachklasse.Kennung && fkl[s.fachklasse.Kennung]) {
  43. return fkl[s.fachklasse.Kennung][k]
  44. } else
  45. return ''
  46. }
  47. export const note = (note) => noten[parseInt(note)] || enoten[note]