app/schulis/2.2.1/src/3.erf lehrer

Raw file
Back to index

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