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