summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.abgegangene aussortieren
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.abgegangene aussortieren')
-rw-r--r--app/schulis/2.2.1/src/1.abgegangene aussortieren75
1 files changed, 75 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.abgegangene aussortieren b/app/schulis/2.2.1/src/1.abgegangene aussortieren
new file mode 100644
index 0000000..ac73783
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.abgegangene aussortieren
@@ -0,0 +1,75 @@
+PACKET abgegangeneaussortierenDEFINES
+abgegangeneaussortiereneingangsbehandlung,abgegangeneaussortieren:LET null=0,
+fnrdatum=2,fnrankreuz1=3,fnrankreuz2=4,pruefartalternative=5,niltext="",
+tofather=1,meldtrenner="#",namenstrenner=", ",meldfalschesdatum=157,
+meldbearbeitung=153,meldspeicherfehler=131,meldende=158;LET falschertag="00",
+keindatum="01.01.00";LET anzschlfelder=3;LET bestandabgegangene="abg",
+bestandlaufsj="ls";LET jgstufe10=10;LET logtextbeginn1=
+"Anw. 1.3.4 Abgemeldete bis ",logtextbeginn2="Anw. 1.3.4 Abgegangene bis ",
+logtextende1=" aussortieren",logtextende2=" entfernen";ROW anzschlfelderTEXT
+VAR key;TEXT VAR jgst,zugtutor;PROC abgegangeneaussortiereneingangsbehandlung
+:reinitparsing;standardvproc(maske(vergleichsknoten)).END PROC
+abgegangeneaussortiereneingangsbehandlung;PROC abgegangeneaussortieren:
+pruefeplausibilitaet;IF allesokTHEN aussortierendurchfuehrenELSE
+fehlerbehandlungFI .pruefeplausibilitaet:pruefedatum;IF allesokTHEN
+pruefeankreuzfelderFI .allesok:INT VAR pruefstatus;pruefstatus=null.
+pruefeankreuzfelder:standardpruefe(pruefartalternative,fnrankreuz1,
+fnrankreuz2,null,niltext,pruefstatus);.pruefedatum:TEXT VAR stichtag:=
+standardmaskenfeld(fnrdatum);IF (subtext(stichtag,1,2)=falschertag)COR (datum
+(stichtag)=nildatum)THEN pruefstatus:=fnrdatum;standardmeldung(
+meldfalschesdatum,niltext);ELSE pruefstatus:=nullFI .fehlerbehandlung:infeld(
+pruefstatus);return(tofather).aussortierendurchfuehren:aussortieren(stichtag,
+standardmaskenfeld(fnrankreuz1)<>niltext);return(tofather).END PROC
+abgegangeneaussortieren;PROC aussortieren(TEXT CONST stichtag,BOOL CONST
+uebertragen):TEXT VAR eintrag;IF uebertragenTHEN inbestandabgegangeneELSE
+endgueltigloeschenFI .inbestandabgegangene:eintrag:=logtextbeginn1;eintrag
+CAT datumskonversion(stichtag);eintragCAT logtextende1;logeintrag(eintrag);
+leseschleife(ixsustatabgdat,bestandlaufsj,stichtag,PROC
+abgegangeneuebertragen).endgueltigloeschen:eintrag:=logtextbeginn2;eintrag
+CAT datumskonversion(stichtag);eintragCAT logtextende2;logeintrag(eintrag);
+leseschleife(ixsustatabgdat,bestandabgegangene,stichtag,PROC
+endgueltigloeschen).END PROC aussortieren;PROC leseschleife(INT CONST
+sekbestandindex,TEXT CONST sustatus,TEXT CONST stichtag,PROC (BOOL VAR )
+aktion):erstenlesen;WHILE NOT schlussREP ausfuehrung;naechstenlesenPER ;
+endemeldung.erstenlesen:BOOL VAR endegewuenscht:=FALSE ;putwert(fnrsustatuss,
+sustatus);putwert(fnrsuabgdats,datumskonversion(stichtag));search(
+sekbestandindex,FALSE );IF NOT gueltigesabgangsdatum(sustatus,stichtag)THEN
+pred(sekbestandindex)FI ;statusueberpruefen.schluss:(dbstatus<>null)COR
+endegewuenscht.ausfuehrung:bearbeitungmelden;aktion(endegewuenscht).
+naechstenlesen:pred(sekbestandindex);statusueberpruefen.endemeldung:IF NOT
+endegewuenschtTHEN standardmeldung(meldende,niltext)FI .statusueberpruefen:
+IF gueltigesabgangsdatum(sustatus,stichtag)THEN lesenzumaendernELSE dbstatus(
+notfound)FI .END PROC leseschleife;PROC abgegangeneuebertragen(BOOL VAR
+schluss):delete(dnrschueler);IF dbstatus=okTHEN IF intwert(fnrsusgrpjgst)>=
+jgstufe10THEN kurswahlserveraktualisieren(wert(fnrsusgrpjgst),"","")FI ;
+putwert(fnrsustatuss,bestandabgegangene);insert(dnrschueler);IF dbstatus<>ok
+THEN aktbestandzuruecksetzen;schlussundfehlermeldenFI ;
+aktbestandzuruecksetzenELSE schlussundfehlermeldenFI .aktbestandzuruecksetzen
+:putwert(fnrsustatuss,bestandlaufsj);.schlussundfehlermelden:schluss:=TRUE ;
+fehlermelden.END PROC abgegangeneuebertragen;PROC endgueltigloeschen(BOOL
+VAR schluss):#aenderunginstatraumvorbereiten(TRUE );dr11.05.88#IF NOT schluss
+THEN #einenschuelerausstatraumentfernen;dr11.05.88#datenloeschen(
+dnrhalbjahresdaten,schluss);IF NOT schlussTHEN diffdatenloeschen;delete(
+dnrschueler);schluss:=dbstatus<>null;FI FI ;IF schlussTHEN #
+einenschuelerinstatraumeinfuegen;dr11.05.88#fehlermeldenFI .diffdatenloeschen
+:IF wert(fnrsudiffdatennrs)<>""THEN putwert(fnrdddiffdatennr,wert(
+fnrsudiffdatennrs));search(dnrdiffdaten,TRUE );IF dbstatus=okTHEN delete(
+dnrdiffdaten)FI FI .END PROC endgueltigloeschen;PROC datenloeschen(INT CONST
+dateinummer,BOOL VAR schluss):inittupel(dateinummer);putwert(dateinummer+1,
+key(1));putwert(dateinummer+2,key(2));putwert(dateinummer+3,datumskonversion(
+key(3)));search(dateinummer,FALSE );WHILE dbstatus=okCAND gleicherschueler
+REP delete(dateinummer);IF dbstatus<>okTHEN schluss:=TRUE ELSE succ(
+dateinummer)FI PER .gleicherschueler:key(1)=wert(dateinummer+1)CAND key(2)=
+wert(dateinummer+2)CAND key(3)=datumrekonversion(wert(dateinummer+3)).END
+PROC datenloeschen;BOOL PROC gueltigesabgangsdatum(TEXT CONST bestand,
+stichtag):dbstatus=okCAND wert(fnrsustatuss)=bestandCAND wert(fnrsuabgdats)<>
+keindatumCAND datum(wert(fnrsuabgdats))<=datum(datumskonversion(stichtag)).
+END PROC gueltigesabgangsdatum;PROC lesenzumaendern:key(1):=wert(
+fnrsufamnames);key(2):=wert(fnrsurufnames);key(3):=datumrekonversion(wert(
+fnrsugebdatums));jgst:=wert(fnrsusgrpjgst);zugtutor:=wert(fnrsusgrpzugtut)
+END PROC lesenzumaendern;PROC bearbeitungmelden:standardmeldung(
+meldbearbeitung,key(1)+namenstrenner+key(2)+meldtrenner+jgst+zugtutor+
+meldtrenner)END PROC bearbeitungmelden;PROC fehlermelden:standardmeldung(
+meldspeicherfehler,text(dbstatus)+meldtrenner+key(1)+namenstrenner+key(2)+
+meldtrenner);END PROC fehlermelden;END PACKET abgegangeneaussortieren
+