From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/schulis/2.2.1/src/4.raumwuensche pruefen | 117 +++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 app/schulis/2.2.1/src/4.raumwuensche pruefen (limited to 'app/schulis/2.2.1/src/4.raumwuensche pruefen') diff --git a/app/schulis/2.2.1/src/4.raumwuensche pruefen b/app/schulis/2.2.1/src/4.raumwuensche pruefen new file mode 100644 index 0000000..109eace --- /dev/null +++ b/app/schulis/2.2.1/src/4.raumwuensche pruefen @@ -0,0 +1,117 @@ +PACKET raumwuenschepruefenDEFINES raumwuenschepruefenstarten, +raumwuenschepruefenlistedrucken:INT VAR fnrakthj:=2,fnrausgabebildschirm:=3, +fnrausgabedrucker:=4;LET meldnrlistewirdgedruckt=58,meldnrkeinelv=326, +meldnrkeinesugruppen=334,meldnrinbearbeitung=352,meldnrzuvielesugruppen=356, +meldnrstundenplanwirdaufbereitet=357,meldnrzuvielelv=358, +meldnrstundenplanserverfehlt=376,meldnrbasisalt=377,meldnrbasisinkons=378; +LET protname="Einhaltung der Raumwünsche";FILE VAR prot;LET raumgruppendatei= +"Datei mit Raumgruppen";FILE VAR datraumgruppen;LET schuljahr="Schuljahr", +schulhalbjahr="Schulhalbjahr",schulname="Schulname",schulort="Schulort";LET +ueberschrift="Einhaltung der Raumwünsche, Stundenplan ",texthalbjahr= +". Halbjahr",kopfzeile1="Lehrver- Zeit belegter Anmerkungen",kopfzeile2= +"anstaltung Raum";LET meldkeinwunschraumfrei= +"kein Wunsch- oder Ersatzraum frei",meldwunschraumfrei=" frei", +meldkeinwunschangegeben="Raum fehlt, kein Raumwunsch angegeben";LET +fallkeinwunschraumfrei=1,fallwunschraumfrei=2,fallkeinwunschangegeben=3;LET +laengeschulname=61;LET strich="-",schraegstrich="/",blank=" ",vierblanks= +" ",leerraum=" ",kennzhell="#",editorzusatztasten="vr";LET laengeraum=4 +,laengelv=8;LET kennunglv="L",kennungraum="R",kennungwunschraum="RW", +kennungersatzraum="RE";LET erstestunde=1,letztestunde=66,zeitbelegt="1";LET +posraeumeinrgzeile=5;TEXT VAR aktsj:="",akthj:="",gewsj,gewhj;TEXT VAR +auszeile;TEXT VAR jgst,lv,letztelv,raum,freierwunschraum,wunschraeumederlv, +raeumederzeit,raumgruppenzeile,zeitenderlv;INT VAR izeit;INT VAR posraum;INT +VAR fstatusstuplan;PROC raumwuenschepruefenstarten:INT VAR fnrfehler:=0; +standardpruefe(5,fnrausgabebildschirm,fnrausgabedrucker,0,"",fnrfehler);IF +fnrfehler<>0THEN infeld(fnrfehler);return(1)ELSE +schulhalbjahrbestimmenundstundenplanholen;IF fstatusstuplan<>0THEN +stundenplanfehlerbehandeln;return(1)ELSE pruefungraumwuenschedurchfuehren;IF +listedirektdruckenTHEN standardmeldung(meldnrlistewirdgedruckt,"");print( +protname);forget(protname,quiet);return(1)ELSE zeigedatei(protname, +editorzusatztasten)FI ;FI FI .listedirektdrucken:standardmaskenfeld( +fnrausgabedrucker)<>"".schulhalbjahrbestimmenundstundenplanholen:IF aktsj="" +THEN aktsj:=schulkenndatum(schuljahr);akthj:=schulkenndatum(schulhalbjahr)FI +;gewsj:=aktsj;gewhj:=akthj;IF standardmaskenfeld(fnrakthj)=""THEN +geplanteshjundsjberechnen(gewhj,gewsj);FI ;stundenplanhalbjahrsetzen(gewhj, +gewsj);standardmeldung(meldnrstundenplanwirdaufbereitet,""); +stundenplanbasisundstundenplanholen(fstatusstuplan);IF fstatusstuplan=0THEN +stundenplanreorganisierenundsichern(fstatusstuplan)ELIF fstatusstuplan=8THEN +standardmeldung(meldnrbasisalt,"");stundenplanreorganisierenundsichern( +fstatusstuplan)FI .stundenplanfehlerbehandeln:IF fstatusstuplan=2THEN +standardmeldung(meldnrstundenplanserverfehlt,"")ELIF fstatusstuplan=4THEN +standardmeldung(meldnrkeinesugruppen,"")ELIF fstatusstuplan=5THEN +standardmeldung(meldnrzuvielesugruppen,"")ELIF fstatusstuplan=6THEN +standardmeldung(meldnrkeinelv,"")ELIF fstatusstuplan=7THEN standardmeldung( +meldnrzuvielelv,"")ELIF fstatusstuplan=8THEN standardmeldung(meldnrbasisalt, +"")ELIF fstatusstuplan=9THEN standardmeldung(meldnrbasisinkons,"")FI . +pruefungraumwuenschedurchfuehren:protokollvorbereiten;ausgabekopfaufbereiten; +raumgruppeninraumgruppendateiauslesen;letztelv:="";inittupel( +dnrlehrveranstaltungen);putwert(fnrlvsj,gewsj);putwert(fnrlvhj,gewhj); +statleseschleife(dnrlehrveranstaltungen,gewsj,gewhj,fnrlvsj,fnrlvhj,PROC +raeumeeinerlvpruefen);ausgabefussaufbereiten.protokollvorbereiten:forget( +protname,quiet);prot:=sequentialfile(output,protname).ausgabekopfaufbereiten: +auszeile:=text(schulkenndatum(schulname),laengeschulname);auszeileCAT date; +putline(prot,auszeile);putline(prot,schulkenndatum(schulort));line(prot); +auszeile:=ueberschrift;auszeileCAT subtext(gewsj,1,2);auszeileCAT +schraegstrich;auszeileCAT subtext(gewsj,3,4);auszeileCAT ", ";auszeileCAT +gewhj;auszeileCAT texthalbjahr;putline(prot,auszeile);putline(prot,length( +auszeile)*strich);line(prot);putline(prot,kopfzeile1);putline(prot,kopfzeile2 +);putline(prot,65*strich).ausgabefussaufbereiten:line(prot);putline(prot,20* +blank+20*strich).raumgruppeninraumgruppendateiauslesen:IF NOT exists( +raumgruppendatei)THEN datraumgruppen:=sequentialfile(output,raumgruppendatei) +;inittupel(dnrraumgruppen);statleseschleife(dnrraumgruppen,"","",fnrrgraumgrp +,fnrrgraeume,PROC raumgruppeindateischreiben)FI .END PROC +raumwuenschepruefenstarten;PROC raumgruppeindateischreiben(BOOL VAR b):IF +dbstatus=0THEN putline(datraumgruppen,text(wert(fnrrgraumgrp),laengeraum)+ +wert(fnrrgraeume))ELSE b:=TRUE FI END PROC raumgruppeindateischreiben;PROC +raeumeeinerlvpruefen(BOOL VAR b):IF dbstatus<>0OR wert(fnrlvsj)<>gewsjOR wert +(fnrlvhj)<>gewhjTHEN b:=TRUE ELSE pruefeallelveintraegeFI . +pruefeallelveintraege:jgst:=jgstzweistellig(intwert(fnrlvjgst));lv:=text(jgst ++wert(fnrlvfachkennung),laengelv);standardmeldung(meldnrinbearbeitung,lv+ +kennzhell);wunschraeumezulvbestimmen;zeitenderlv:=allezeitenvon(kennunglv,lv) +;FOR izeitFROM erstestundeUPTO letztestundeREP IF (zeitenderlvSUB izeit)= +zeitbelegtTHEN prueferaumeintragFI PER .wunschraeumezulvbestimmen: +wunschraeumederlv:="";raum:=datenzurlv(kennungwunschraum,lv);IF raum<>""THEN +IF bezeichnungzulaessig(kennungraum,raum)THEN wunschraeumederlvCAT raumELSE +wunschraeumederlvCAT raeumederraumgruppeFI ;FI ;raum:=datenzurlv( +kennungersatzraum,lv);IF raum<>""THEN IF bezeichnungzulaessig(kennungraum, +raum)THEN wunschraeumederlvCAT raumELSE wunschraeumederlvCAT +raeumederraumgruppeFI ;FI .prueferaumeintrag:TEXT VAR suchpara,suchlv; +planeintraglesen(izeit,kennunglv,lv,suchlv,raum,suchpara);raeumederzeit:= +datenderzeit(izeit,kennungraum);IF wunschraeumederlv<>""THEN +erstenfreienwunschraumbestimmen;IF freierwunschraum=""THEN IF +belegterraumistkeinwunschraumTHEN inlisteschreiben(fallkeinwunschraumfrei)FI +ELIF freierwunschraumistbesseralsbelegterTHEN inlisteschreiben( +fallwunschraumfrei)FI ELIF raum=leerraumTHEN inlisteschreiben( +fallkeinwunschangegeben)FI .erstenfreienwunschraumbestimmen:freierwunschraum +:="";posraum:=1;WHILE posraumlvTHEN line(prot);letztelv:=lvFI ;putline(prot,auszeile)END PROC +inlisteschreiben;PROC raumwuenschepruefenlistedrucken(BOOL CONST drucken):IF +druckenTHEN print(protname)FI ;forget(protname,quiet);enter(2)END PROC +raumwuenschepruefenlistedrucken;INT PROC suchpos(TEXT CONST quelle,suchtext, +INT CONST laenge):INT VAR findpos:=pos(quelle,suchtext);WHILE findpos>0REP +IF findposMOD laenge=1THEN LEAVE suchposWITH findposELSE findpos:=pos(quelle, +suchtext,findpos+1);FI PER ;findposEND PROC suchpos;TEXT PROC jgstzweistellig +(INT CONST intjgst):IF intjgst=0THEN "00"ELIF intjgst>4AND intjgst<10THEN "0" ++text(intjgst)ELSE text(intjgst)FI END PROC jgstzweistellig;END PACKET +raumwuenschepruefen; + -- cgit v1.2.3