summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/3.erf lehrer
blob: 47846ee02d2f01af6ba8717c65639f7d03f7422b (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
PACKET erflehrerDEFINES erfassunglehrer:LET trenner=" = ",komma=", ",leer="",
trennerfuerimbestand="�",dateinameschluessel="Schlüssel",dateinamefaecher=
"Fächer",null=0;LET maskenname="ms erf lehrer",fnrletztesfeld=32,fnrparaphe=2
,fnrfamilienname=3,fnrrufname=4,fnrnamenszusatz=5,fnramtsbezeichnung=6,
fnrgeschlecht=7,fnrstrasseundnummer=8,fnrplzundort=9,fnrtelefon=10,
fnrlehrbeffach=11,fnrlehrbefart=12,fnrpflichtstunden=23,fnrermaessigung=24,
fnrermaessigungsgrund=25,fnrsprechzeiten=32,anzlehrbefprolehrer=6,
anzermprolehrer=4;LET untergrenze=0,obergrenze=99,paraphenlaenge=4,
bestandermgrund="c02 persoenl ermaess",bestandartlehrbef=
"c02 art lehrbefaehigung",meldungparaphezulang=178,meldungzugeschlecht=55,
meldungzumbestand=55,meldungzusollstunden=175,meldungzulehrbeffach=177,
meldungzufachdoppelt=176;ROW anzlehrbefprolehrerSTRUCT (TEXT fach,art)VAR 
altelehrbefaehigungen;TEXT VAR alteparaphe;INT VAR sollstunden;PROC 
erfassunglehrer(INT CONST proznr):reinitparsing;SELECT proznrOF CASE 1:
setzeerfassungsparameterCASE 2:zeigelehrerzurbearbeitungCASE 3:
pruefeplausibilitaetCASE 4:setzewertefuerdbspeicherungCASE 5:
setzeidentiobjektfuerobjektlisteCASE 6:lehrerlesenCASE 7:lehreraendernCASE 8:
lehrereinfuegenCASE 9:lehrerloeschenEND SELECT END PROC erfassunglehrer;PROC 
setzeerfassungsparameter:systemdboff;setzeerfassungsparameter(dnrlehrer,
maskenname,fnrletztesfeld).END PROC setzeerfassungsparameter;PROC 
zeigelehrerzurbearbeitung:INT VAR i;alteparaphe:=wert(fnrlparaphe);
setzeerfassungsfeld(wert(fnrlparaphe),fnrparaphe);setzeerfassungsfeld(wert(
fnrlfamname),fnrfamilienname);setzeerfassungsfeld(wert(fnrlrufname),
fnrrufname);setzeerfassungsfeld(wert(fnrlzusatz),fnrnamenszusatz);
setzeerfassungsfeld(wert(fnrlamtsbeztitel),fnramtsbezeichnung);
setzeerfassungsfeld(wert(fnrlgeschlecht),fnrgeschlecht);setzeerfassungsfeld(
wert(fnrlpflichtstd),fnrpflichtstunden);FOR iFROM 0UPTO anzermprolehrer-1REP 
setzeerfassungsfeld(wert(fnrlerm1+2*i),fnrermaessigung+2*i);
setzeerfassungsfeld(wert(fnrlermgrund1+2*i),fnrermaessigungsgrund+2*i)PER ;
FOR iFROM 0UPTO 5REP setzeerfassungsfeld(altelehrbefaehigungen(i+1).fach,
fnrlehrbeffach+2*i);setzeerfassungsfeld(altelehrbefaehigungen(i+1).art,
fnrlehrbefart+2*i)PER ;setzeerfassungsfeld(wert(fnrlsprechzeit),
fnrsprechzeiten);setzeerfassungsfeld(wert(fnrlstrnr),fnrstrasseundnummer);
setzeerfassungsfeld(wert(fnrlplzort),fnrplzundort);setzeerfassungsfeld(wert(
fnrltelnr),fnrtelefon)END PROC zeigelehrerzurbearbeitung;PROC 
pruefeplausibilitaet:INT VAR i,j,fehlerstatus;pruefe(1,erfassungsmaske,PROC 
erfassungswert,fnrparaphe,null,null,leer,fehlerstatus);IF fehlerstatus<>0
THEN setzefehlerstatus(fehlerstatus);LEAVE pruefeplausibilitaetFI ;IF length(
erfassungswert(fnrparaphe))>paraphenlaengeTHEN meldeauffaellig(
erfassungsmaske,meldungparaphezulang);setzefehlerstatus(fnrparaphe);LEAVE 
pruefeplausibilitaetFI ;pruefe(1,erfassungsmaske,PROC erfassungswert,
fnrfamilienname,null,null,leer,fehlerstatus);IF fehlerstatus<>0THEN 
setzefehlerstatus(fehlerstatus);LEAVE pruefeplausibilitaetFI ;IF 
erfassungswert(fnrgeschlecht)<>"m"AND erfassungswert(fnrgeschlecht)<>"w"THEN 
meldeauffaellig(erfassungsmaske,meldungzugeschlecht);setzefehlerstatus(
fnrgeschlecht);LEAVE pruefeplausibilitaetFI ;FOR iFROM 0UPTO 
anzlehrbefprolehrer-1REP IF erfassungswert(fnrlehrbefart+2*i)<>""THEN IF 
erfassungswert(fnrlehrbeffach+2*i)=""THEN meldeauffaellig(erfassungsmaske,
meldungzulehrbeffach);setzefehlerstatus(fnrlehrbeffach+2*i);LEAVE 
pruefeplausibilitaetFI ;IF NOT imbestand(bestandartlehrbef+
trennerfuerimbestand+erfassungswert(fnrlehrbefart+2*i),dateinameschluessel)
THEN meldeauffaellig(erfassungsmaske,meldungzumbestand);setzefehlerstatus(
fnrlehrbefart+2*i);LEAVE pruefeplausibilitaetFI FI ;IF erfassungswert(
fnrlehrbeffach+2*i)<>""THEN FOR jFROM i+1UPTO anzlehrbefprolehrer-1REP IF 
erfassungswert(fnrlehrbeffach+2*i)=erfassungswert(fnrlehrbeffach+2*j)THEN 
meldeauffaellig(erfassungsmaske,meldungzufachdoppelt);setzefehlerstatus(
fnrlehrbeffach+2*i);LEAVE pruefeplausibilitaetFI PER ;IF NOT imbestand(
erfassungswert(fnrlehrbeffach+2*i),dateinamefaecher)THEN meldeauffaellig(
erfassungsmaske,meldungzumbestand);setzefehlerstatus(fnrlehrbeffach+2*i);
LEAVE pruefeplausibilitaetFI FI PER ;IF erfassungswert(fnrpflichtstunden)<>""
THEN pruefe(2,erfassungsmaske,PROC erfassungswert,fnrpflichtstunden,null,null
,leer,fehlerstatus);IF fehlerstatus<>0THEN setzefehlerstatus(fehlerstatus);
LEAVE pruefeplausibilitaetFI ;pruefe(3,erfassungsmaske,PROC erfassungswert,
fnrpflichtstunden,untergrenze,obergrenze,leer,fehlerstatus);IF fehlerstatus<>
0THEN setzefehlerstatus(fehlerstatus);LEAVE pruefeplausibilitaetFI ;FI ;
sollstunden:=int(erfassungswert(fnrpflichtstunden));FOR iFROM 0UPTO 
anzermprolehrer-1REP IF erfassungswert(fnrermaessigung+2*i)<>""THEN pruefe(2,
erfassungsmaske,PROC erfassungswert,fnrermaessigung+2*i,null,null,leer,
fehlerstatus);IF fehlerstatus<>0THEN setzefehlerstatus(fehlerstatus);LEAVE 
pruefeplausibilitaetFI ;pruefe(3,erfassungsmaske,PROC erfassungswert,
fnrermaessigung+2*i,untergrenze,obergrenze,leer,fehlerstatus);IF fehlerstatus
<>0THEN setzefehlerstatus(fehlerstatus);LEAVE pruefeplausibilitaetFI ;FI ;
sollstunden:=sollstunden-int(erfassungswert(fnrermaessigung+2*i));IF 
sollstunden<0THEN meldeauffaellig(erfassungsmaske,meldungzusollstunden);
setzefehlerstatus(fnrermaessigung+2*i);LEAVE pruefeplausibilitaetFI ;IF 
erfassungswert(fnrermaessigungsgrund+2*i)<>""THEN IF NOT imbestand(
bestandermgrund+trennerfuerimbestand+erfassungswert(fnrermaessigungsgrund+2*i
),dateinameschluessel)THEN meldeauffaellig(erfassungsmaske,meldungzumbestand)
;setzefehlerstatus(fnrermaessigungsgrund+2*i);LEAVE pruefeplausibilitaetFI 
FI PER END PROC pruefeplausibilitaet;PROC setzewertefuerdbspeicherung:INT 
VAR i;putwert(fnrlparaphe,erfassungswert(fnrparaphe));putwert(fnrlfamname,
erfassungswert(fnrfamilienname));putwert(fnrlrufname,erfassungswert(
fnrrufname));putwert(fnrlzusatz,erfassungswert(fnrnamenszusatz));putwert(
fnrlamtsbeztitel,erfassungswert(fnramtsbezeichnung));putwert(fnrlgeschlecht,
erfassungswert(fnrgeschlecht));putintwert(fnrlsollstd,sollstunden);putwert(
fnrlpflichtstd,erfassungswert(fnrpflichtstunden));FOR iFROM 0UPTO 
anzermprolehrer-1REP putwert(fnrlerm1+2*i,erfassungswert(fnrermaessigung+2*i)
);putwert(fnrlermgrund1+2*i,erfassungswert(fnrermaessigungsgrund+2*i))PER ;
putwert(fnrlsprechzeit,erfassungswert(fnrsprechzeiten));putwert(fnrlstrnr,
erfassungswert(fnrstrasseundnummer));putwert(fnrlplzort,erfassungswert(
fnrplzundort));putwert(fnrltelnr,erfassungswert(fnrtelefon))END PROC 
setzewertefuerdbspeicherung;PROC setzeidentiobjektfuerobjektliste:LET 
trennsymbolfuerobli="$";TEXT VAR identizeile;identizeile:=wert(fnrlparaphe)+
trenner+wert(fnrlfamname)+komma+wert(fnrlrufname);setzeidentiwert(
identizeilemitschluesselanhang).identizeilemitschluesselanhang:identizeile+
trennsymbolfuerobli+wert(fnrlparaphe).END PROC 
setzeidentiobjektfuerobjektliste;PROC lehrerlesen:INT VAR i,j;putwert(
fnrlparaphe,schluessel);search(dnrlehrer,TRUE );IF dbstatus=okTHEN 
saveupdateposition(dnrlehrer);putwert(fnrlbparaphe,schluessel);putwert(
fnrlbfach,leer);search(ixlbpar);i:=0;WHILE dbstatus=okCAND i<
anzlehrbefprolehrerCAND wert(fnrlbparaphe)=schluesselREP i:=i+1;
altelehrbefaehigungen(i).fach:=wert(fnrlbfach);altelehrbefaehigungen(i).art:=
wert(fnrlbart);succ(ixlbpar);PER ;FOR jFROM i+1UPTO anzlehrbefprolehrerREP 
altelehrbefaehigungen(j).fach:="";altelehrbefaehigungen(j).art:=""PER ;
dbstatus(ok)FI END PROC lehrerlesen;PROC lehreraendern:INT VAR i;
restoreupdateposition(dnrlehrer);update(dnrlehrer);logbucheintrag("Änderung")
;FOR iFROM 0UPTO anzlehrbefprolehrer-1REP IF alteparaphe<>schluesselCOR 
erfassungswert(fnrlehrbeffach+2*i)<>altelehrbefaehigungen(i+1).fachCOR 
erfassungswert(fnrlehrbefart+2*i)<>altelehrbefaehigungen(i+1).artTHEN IF 
altelehrbefaehigungen(i+1).fach=leerCAND erfassungswert(fnrlehrbeffach+2*i)<>
leerTHEN putwert(fnrlbfach,erfassungswert(fnrlehrbeffach+2*i));putwert(
fnrlbart,erfassungswert(fnrlehrbefart+2*i));putwert(fnrlbparaphe,schluessel);
insert(dnrlehrbefaehigungen)ELSE putwert(fnrlbfach,altelehrbefaehigungen(i+1)
.fach);putwert(fnrlbparaphe,alteparaphe);putwert(fnrlbart,
altelehrbefaehigungen(i+1).art);IF erfassungswert(fnrlehrbeffach+2*i)=leer
THEN delete(dnrlehrbefaehigungen)ELSE search(dnrlehrbefaehigungen,TRUE );IF 
dbstatus=okTHEN putwert(fnrlbfach,erfassungswert(fnrlehrbeffach+2*i));putwert
(fnrlbart,erfassungswert(fnrlehrbefart+2*i));putwert(fnrlbparaphe,schluessel)
;update(dnrlehrbefaehigungen)FI FI FI ;dbstatus(ok)FI PER END PROC 
lehreraendern;PROC lehrereinfuegen:INT VAR i;insert(dnrlehrer);logbucheintrag
("Neueinfügen");FOR iFROM 0UPTO anzlehrbefprolehrer-1REP IF erfassungswert(
fnrlehrbeffach+2*i)<>""THEN putwert(fnrlbfach,erfassungswert(fnrlehrbeffach+2
*i));putwert(fnrlbart,erfassungswert(fnrlehrbefart+2*i));putwert(fnrlbparaphe
,schluessel);insert(dnrlehrbefaehigungen)FI PER END PROC lehrereinfuegen;
PROC lehrerloeschen:delete(dnrlehrer);logbucheintrag("Entfernen");putwert(
fnrlbparaphe,schluessel);putwert(fnrlbfach,leer);search(ixlbpar);WHILE 
dbstatus=okCAND wert(fnrlbparaphe)=schluesselREP delete(dnrlehrbefaehigungen)
;succ(ixlbpar);PER ;dbstatus(ok)END PROC lehrerloeschen;PROC logbucheintrag(
TEXT CONST logergaenzung):TEXT VAR eintrag:="Anw. 3.1.1 ";eintragCAT 
logergaenzung;eintragCAT " """;eintragCAT schluessel;eintragCAT """  """;
eintragCAT wert(fnrlfamname);eintragCAT """";logeintrag(eintrag)END PROC 
logbucheintrag;TEXT PROC schluessel:erfassungswert(fnrparaphe)END PROC 
schluessel;END PACKET erflehrer