summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.erf.abmeldedaten
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.erf.abmeldedaten')
-rw-r--r--app/schulis/2.2.1/src/1.erf.abmeldedaten142
1 files changed, 142 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.erf.abmeldedaten b/app/schulis/2.2.1/src/1.erf.abmeldedaten
new file mode 100644
index 0000000..9c5523b
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.erf.abmeldedaten
@@ -0,0 +1,142 @@
+PACKET erfabmeldedatenDEFINES suabmeldedatenbearbeiten,
+suabmeldedatenspeichern,suausgesuchteabmeldedatenbearbeiten,
+schuelerlistezeigen,pruefungschuelerab:LET maskennameeingang=
+"ms schuelerangabe",maskenstammname="ms erf abmeldedaten",aktbestand="ls",
+bestandschulen="Schulen",fnrname=2,fnrrufname=3,fnrgebdatum=4,fnrjgst=5,
+fnrzug=6,fnrabdatum=7,fnrabgrund=8,fnrneueschule=9,fnrabschluss=10,
+meldunglistenerstellung=7,meldungspeicherung=50,pruefemeldung=57,
+meldungkeineaenderung=63,meldungletzter=67,meldungkeineliste=68,
+meldunggibtsnicht=71,meldungspeicherungfehlerhaft=73,meldungfalschesdatum=157
+;LET leer="",oblitrenner="$";LET anzschluessel=3;#A nzahlderamP
+rimärschlüselbeteiligtenF elder#BOOL VAR falschesdatum:=FALSE ;FILE VAR f;
+ROW anzschluesselTEXT VAR schluessel;#24.03.87#TAG VAR maske;TEXT VAR
+dateiname:="Schülerliste",schuelertid:="";TEXT VAR abdatumsicherung,
+abgrundsicherung,abschlusssicherung;LET logtextbeginn=
+"Anw. 1.3.1 Änderung """;PROC bearbeitunginitialisieren:forget(dateiname,
+quiet).END PROC bearbeitunginitialisieren;PROC suabmeldedatenbearbeiten:BOOL
+VAR sudatenexistieren;falschesdatum:=FALSE ;systemdboff;reinitparsing;
+bearbeitunginitialisieren;schluessel(1):=standardmaskenfeld(fnrname);
+schluessel(2):=standardmaskenfeld(fnrrufname);schluessel(3):=
+datumrekonversion(standardmaskenfeld(fnrgebdatum));pruefeobsudatenexistieren(
+sudatenexistieren);IF NOT falschesdatumTHEN IF sudatenexistierenTHEN
+schluessel(1):=wert(fnrsufamnames);schluessel(2):=wert(fnrsurufnames);
+schluessel(3):=datumrekonversion(wert(fnrsugebdatums));standardstartproc(
+maskenstammname);bereiteaenderungvor;standardnproc;ELSE standardmeldung(
+meldunggibtsnicht,"");return(1)FI ;ELSE return(1)FI .END PROC
+suabmeldedatenbearbeiten;PROC bereiteaenderungvor:saveupdateposition(
+dnrschueler);schuelertid:=gettid;holedbwerteinmaske;abdatumsicherung:=wert(
+fnrsuabgdats);abgrundsicherung:=wert(fnrsuabggrund);abschlusssicherung:=wert(
+fnrsuabschluss);infeld(fnrname);standardfelderausgeben;infeld(fnrabdatum).
+END PROC bereiteaenderungvor;PROC holedbwerteinmaske:standardmaskenfeld(wert(
+fnrsufamnames),fnrname);standardmaskenfeld(wert(fnrsurufnames),fnrrufname);
+standardmaskenfeld(datumrekonversion(wert(fnrsugebdatums)),fnrgebdatum);
+standardmaskenfeld(jgstaufber(wert(fnrsusgrpjgst)),fnrjgst);
+standardmaskenfeld(wert(fnrsusgrpzugtut),fnrzug);standardmaskenfeld(
+datumrekonversion(wert(fnrsuabgdats)),fnrabdatum);standardmaskenfeld(wert(
+fnrsuabggrund),fnrabgrund);standardmaskenfeld(wert(fnrsuskennnschule),
+fnrneueschule);standardmaskenfeld(wert(fnrsuabschluss),fnrabschluss)END PROC
+holedbwerteinmaske;PROC pruefeobsudatenexistieren(BOOL VAR suexist):TEXT VAR
+datenbankwerte,schluesselwerte;inittupel(dnrschueler);maskenwerteindatenbank;
+IF NOT falschesdatumTHEN search(ixsustatfamrufgeb);IF dbstatus=okTHEN
+datenbankwerte:=wert(fnrsurufnames)+datumrekonversion(wert(fnrsugebdatums));
+schluesselwerte:=schluessel(2)+schluessel(3);suexist:=(wert(fnrsufamnames)=
+schluessel(1)CAND ((schluessel(2)=leerAND schluessel(3)=leer)OR (pos(
+datenbankwerte,schluesselwerte)=1)))ELSE suexist:=FALSE FI FI .END PROC
+pruefeobsudatenexistieren;PROC maskenwerteindatenbank:putwert(fnrsufamnames,
+schluessel(1));putwert(fnrsurufnames,schluessel(2));disablestop;initmaske(
+maske,maskennameeingang);putwert(fnrsugebdatums,datumskonversion(schluessel(3
+)));IF iserrorTHEN clearerror;standardmeldung(meldungfalschesdatum,"");infeld
+(fnrgebdatum);falschesdatum:=TRUE ;enablestop;ELSE enablestop;putwert(
+fnrsustatuss,aktbestand);FI ;END PROC maskenwerteindatenbank;PROC
+suabmeldedatenspeichern(BOOL CONST zuspeichern):IF zuspeichernTHEN
+bereitespeicherungvorELSE standardmeldung(meldungkeineaenderung,"");
+vorbereitendernaechstendatenbehandlungFI .bereitespeicherungvor:INT VAR
+fehlerstatus:=0;pruefeplausibilitaet(fehlerstatus);IF datenfehlerfreiTHEN
+datenschreiben;vorbereitendernaechstendatenbehandlungELSE fehlerbehandeln;
+return(1)FI .datenfehlerfrei:fehlerstatus=0.fehlerbehandeln:infeld(
+fehlerstatus).datenschreiben:meldespeicherung;datenindatenbankspeichern.
+meldespeicherung:standardmeldung(meldungspeicherung,"").
+datenindatenbankspeichern:logeintragvornehmen;setzedbwerte;
+abmeldedatenschreiben.logeintragvornehmen:TEXT VAR eintrag:=logtextbeginn;
+eintragCAT schluessel(1);eintragCAT ", ";eintragCAT schluessel(2);eintragCAT
+", ";eintragCAT datumskonversion(schluessel(3));eintragCAT """";logeintrag(
+eintrag).setzedbwerte:putwert(fnrsuabggrund,standardmaskenfeld(fnrabgrund));
+putwert(fnrsuskennnschule,standardmaskenfeld(fnrneueschule));putwert(
+fnrsuabschluss,standardmaskenfeld(fnrabschluss));putwert(fnrsuabgdats,
+datumskonversion(standardmaskenfeld(fnrabdatum)));.abmeldedatenschreiben:IF
+abdatumsicherung<>wert(fnrsuabgdats)THEN restoreupdateposition(dnrschueler);
+selupdate(dnrschueler);ELSE replace(dnrschueler,schuelertid)FI ;IF dbstatus<>
+0THEN standardmeldung(meldungspeicherungfehlerhaft,"")#dr11.05.88ELIF
+grundgeaendertTHEN grundinstatraumaendernELIF abschlussgeaendertTHEN
+abschlussinstatraumaendern#FI .#drgrundgeaendert:11.05.88abgrundsicherung<>
+wert(fnrsuabggrund).abschlussgeaendert:abschlusssicherung<>wert(
+fnrsuabschluss).grundinstatraumaendern:kuerzelaendern(statnrabgrund,
+abgrundsicherung,wert(fnrsuabggrund)).abschlussinstatraumaendern:
+kuerzelaendern(statnrabschluss,abschlusssicherung,wert(fnrsuabschluss)).#END
+PROC suabmeldedatenspeichern;PROC vorbereitendernaechstendatenbehandlung:IF
+exists(dateiname)THEN holenaechstenschluesselauslisteELSE enter(2)FI .
+holenaechstenschluesselausliste:BOOL VAR ok,kannbearbeitetwerden:=FALSE ;
+holenaechstenmehrtlgschluesselausdatei(ok);WHILE okREP
+pruefeobsudatenexistieren(ok);IF okTHEN kannbearbeitetwerden:=TRUE ;ok:=
+FALSE ELSE holenaechstenmehrtlgschluesselausdatei(ok)FI PER ;IF
+kannbearbeitetwerdenTHEN bereiteaenderungvor;return(1)ELSE
+behandleendederthesaurusabarbeitungFI .behandleendederthesaurusabarbeitung:
+standardmeldung(meldungletzter,"");enter(3).END PROC
+vorbereitendernaechstendatenbehandlung;PROC schuelerlistezeigen:BOOL VAR
+keineliste;schluessel(1):=standardmaskenfeld(fnrname);schluessel(2):=
+standardmaskenfeld(fnrrufname);schluessel(3):=datumrekonversion(
+standardmaskenfeld(fnrgebdatum));falschesdatum:=FALSE ;systemdboff;
+parsenooffields(5);maskenwerteindatenbank;IF NOT falschesdatumTHEN
+objektlistestarten(ixsustatfamrufgeb,schluessel(1),fnrsufamnames,TRUE ,
+keineliste);IF keinelisteTHEN reinitparsing;standardmeldung(meldungkeineliste
+,"");return(1)ELSE standardmeldung(meldunglistenerstellung,"");
+datensatzlistenausgabe(PROC (INT CONST )suerfassungschueler,TRUE ,BOOL PROC
+pruefungschuelerab)FI ELSE return(1)FI END PROC schuelerlistezeigen;BOOL
+PROC pruefungschuelerab:wert(fnrsustatuss)=aktbestandEND PROC
+pruefungschuelerab;PROC suausgesuchteabmeldedatenbearbeiten:BOOL VAR ok,
+kannbearbeitetwerden:=FALSE ;bearbeitunginitialisieren;objektlistebeenden(
+dateiname,TRUE );reinitparsing;holeerstenmehrtlgschluesselausdatei(ok);WHILE
+okREP pruefeobsudatenexistieren(ok);IF okTHEN kannbearbeitetwerden:=TRUE ;ok
+:=FALSE ELSE holenaechstenmehrtlgschluesselausdatei(ok)FI PER ;IF
+kannbearbeitetwerdenTHEN standardstartproc(maskenstammname);
+bereiteaenderungvor;standardnprocELSE enter(2)FI .END PROC
+suausgesuchteabmeldedatenbearbeiten;PROC holeerstenmehrtlgschluesselausdatei(
+BOOL VAR ok):IF NOT exists(dateiname)THEN ok:=FALSE ;LEAVE
+holeerstenmehrtlgschluesselausdateiFI ;f:=sequentialfile(input,dateiname);
+holenaechstenmehrtlgschluesselausdatei(ok);END PROC
+holeerstenmehrtlgschluesselausdatei;PROC
+holenaechstenmehrtlgschluesselausdatei(BOOL VAR ok):TEXT VAR thesaurustext:=
+"";INT VAR schluesselbeginn:=0;INT VAR schluesseltrennung:=0;INT VAR i:=1,
+anzschlfelder:=anzkey(dnrschueler);IF eof(f)THEN ok:=FALSE ;
+loeschedieerstellteobjektlisteELSE getline(f,thesaurustext);
+bestimmeschluesselausthesaurustext;ok:=TRUE FI .
+bestimmeschluesselausthesaurustext:schluesselbeginn:=pos(thesaurustext,
+oblitrenner);schluesseltrennung:=pos(thesaurustext,oblitrenner,
+schluesselbeginn+1);FOR iFROM 1UPTO anzschlfelderREP IF schluesseltrennung>0
+THEN schluessel(i):=subtext(thesaurustext,schluesselbeginn+1,
+schluesseltrennung-1);schluesselbeginn:=schluesseltrennung;schluesseltrennung
+:=pos(thesaurustext,oblitrenner,schluesselbeginn+1);ELSE schluessel(i):=
+subtext(thesaurustext,schluesselbeginn+1);FI ;PER ;schluessel(3):=
+datumrekonversion(schluessel(3));.END PROC
+holenaechstenmehrtlgschluesselausdatei;PROC loeschedieerstellteobjektliste:
+forget(dateiname,quiet);END PROC loeschedieerstellteobjektliste;PROC
+pruefeplausibilitaet(INT VAR fstatus):LET pruefartdatum=5,fmeldnichtimbestand
+=55,bestandabgangsgrund="c02 abgang",bestandabschluss="c02 abschluss";fstatus
+:=0;standardmeldung(pruefemeldung,"");IF standardmaskenfeld(fnrabgrund)<>leer
+THEN IF NOT imschlbestand(standardmaskenfeld(fnrabgrund),bestandabgangsgrund)
+THEN fstatus:=fnrabgrund;standardmeldung(fmeldnichtimbestand,"");LEAVE
+pruefeplausibilitaetFI ;FI ;IF standardmaskenfeld(fnrneueschule)<>leerTHEN
+IF NOT imbestand(standardmaskenfeld(fnrneueschule),bestandschulen)THEN
+fstatus:=fnrneueschule;standardmeldung(fmeldnichtimbestand,"");LEAVE
+pruefeplausibilitaetFI ;FI ;IF standardmaskenfeld(fnrabschluss)<>leerTHEN IF
+NOT imschlbestand(standardmaskenfeld(fnrabschluss),bestandabschluss)THEN
+fstatus:=fnrabschluss;standardmeldung(fmeldnichtimbestand,"");LEAVE
+pruefeplausibilitaetFI ;FI ;IF standardmaskenfeld(fnrabdatum)<>leerTHEN
+standardpruefe(pruefartdatum,fnrabdatum,0,0,"",fstatus);FI ;END PROC
+pruefeplausibilitaet;#dr11.05.88PROC kuerzelaendern(INT CONST statnr,TEXT
+CONST alterwert,neuerwert):kuerzelsummeeinsrunter(statnr,jgstaufber(wert(
+fnrsusgrpjgst)),compress(wert(fnrsusgrpzugtut)),aktbestand,alterwert);
+kuerzelsummeeinsrauf(statnr,jgstaufber(wert(fnrsusgrpjgst)),compress(wert(
+fnrsusgrpzugtut)),aktbestand,neuerwert)END PROC kuerzelaendern;#END PACKET
+erfabmeldedaten
+