summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.stundenplan raumweise erfassen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/4.stundenplan raumweise erfassen')
-rw-r--r--app/schulis/2.2.1/src/4.stundenplan raumweise erfassen135
1 files changed, 135 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/4.stundenplan raumweise erfassen b/app/schulis/2.2.1/src/4.stundenplan raumweise erfassen
new file mode 100644
index 0000000..03f5b9e
--- /dev/null
+++ b/app/schulis/2.2.1/src/4.stundenplan raumweise erfassen
@@ -0,0 +1,135 @@
+PACKET stundenplanraumweiseerfassenDEFINES stundenplanraumweisespeichern,
+stundenplanraumweisekopieren,stundenplanraumweisereorganisiertverlassen,
+stundenplanraumweisezeigen:LET stdplmaske="ms stdplan raumweise bearb",
+feldeingraum=2,feldeingakt=3,laengelv=8,laengeraum=4,laengejgst=2,trenner="�"
+,raumkenndaten="c02 raeume",schuljahr="Schuljahr",halbjahr="Schulhalbjahr",
+kennungraum="R",kennungparaphe="P",kennunglv="L",kennungzulzeit="ZZ",
+ungueltigepar="$$$$",leererlehrer=" ",alleklst=
+"�00�05�06�07�08�09�10�11�12�13�",ausgabeparam="#",maxstunden=66,
+meldungplausi=57,meldungspeichern=50,meldungwarten=69,meldungdatenaufbereitet
+=357,meldungfalscherraum=359,meldungkeinesugruppen=334,
+meldungzuvielesugruppen=356,meldungnichtlv=360,meldunglehrerbesetzt=361,
+meldungsugrupbesetzt=362,meldungzeitgesperrt=363,meldungkeinelv=326,
+meldungaenderungsfehler=364,meldungkeineraeume=365,meldunguvfehler=403,
+meldungstdplanveraltet=377,meldungserverfehler=376,meldungbasisinkon=378,
+meldungunzulaessig=318,meldungzuvielelv=358;ROW maxstundenTEXT VAR lvausstdpl
+;ROW maxstundenTEXT VAR lvvombs;TEXT VAR maskeneintragraum:="",gewhj,gewsj,
+plausiraeume:=trenner+trenner,raumleiste:="",restraumleiste:="",
+stdpleintraglv:="",stdpleintragjgst:="",stdpleintraglvident:="",
+stdpleintraglvraum:="",stdpleintraglvpar:="",eintraglv,hjsjanhang:="";INT
+VAR i,fstat,aktbspos,anzraeume:=0,hjkennalt:=-1,uvokfeld,hjkennneu:=0;BOOL
+VAR spok:=TRUE ,uvok:=TRUE ,aenderungsfehler:=FALSE ;PROC
+stundenplanraumweisekopieren:INT VAR aktfeld:=infeld;TEXT VAR feldinhalt:="";
+IF aktfeld=67THEN fehlermeldunganwunzulELIF aktfeld=66THEN kopieren;infeld(
+aktfeld)ELSE kopieren;infeld(aktfeld+2)FI ;return(1).kopieren:feldinhalt:=
+standardmaskenfeld(aktfeld);standardmaskenfeld(feldinhalt,aktfeld+1);
+standardfelderausgeben.fehlermeldunganwunzul:standardmeldung(
+meldungunzulaessig,"").END PROC stundenplanraumweisekopieren;PROC
+stundenplanraumweisereorganisiertverlassen:
+stundenplanreorganisierenundsichern(fstat);IF fstat<>0THEN return(1);
+meldungausgeben(fstat)ELSE enter(2)FI END PROC
+stundenplanraumweisereorganisiertverlassen;PROC stundenplanraumweisezeigen:
+maskeundinitialisierung;IF maskeneintragraum<>""THEN IF raumfalsch(
+maskeneintragraum)THEN standardmeldung(meldungfalscherraum,"");return(1)ELSE
+restraumleiste:=text(raumleiste,pos(raumleiste,maskeneintragraum)+laengeraum-
+1);anzraeume:=length(restraumleiste)DIV laengeraum;
+stundenplanraumweiseausgeben(letzterraum);FI ;ELSE restraumleiste:=raumleiste
+;anzraeume:=length(restraumleiste)DIV laengeraum;IF anzraeume>=1THEN
+stundenplanraumweiseausgeben(letzterraum)ELSE standardmeldung(
+meldungkeineraeume,"");return(1)FI ;FI .letzterraum:subtext(restraumleiste,(
+anzraeume-1)*laengeraum+1).maskeundinitialisierung:standardmeldung(
+meldungwarten," ");IF akthj<>""THEN hjkennneu:=0ELSE hjkennneu:=1FI ;
+merkeraum;IF hjkennneu<>hjkennaltTHEN hjkennalt:=hjkennneu;gewsj:=
+schulkenndatum(schuljahr);gewhj:=schulkenndatum(halbjahr);IF hjkennneu=1THEN
+geplanteshjundsjberechnen(gewhj,gewsj)FI ;stundenplanhalbjahrsetzen(gewhj,
+gewsj);hjsjanhang:=" "+gewhj+". "+text(gewsj,2)+"/"+subtext(gewsj,3)+
+", Raum ";holestdplanFI ;IF plausiraeume=trenner+trennerTHEN holeplausiraeume
+FI .akthj:standardmaskenfeld(feldeingakt).merkeraum:maskeneintragraum:=
+standardmaskenfeld(feldeingraum).holestdplan:standardmeldung(
+meldungdatenaufbereitet,"");stundenplanbasisundstundenplanholen(fstat);IF
+fstat<>0CAND fstat<>8THEN stundenplanbasisundstundenplanerstellen(fstat);IF
+fstat<>0THEN return(1);meldungausgeben(fstat);LEAVE
+stundenplanraumweisezeigenELSE stundenplanbasissichern(fstat);
+stundenplansichern(fstat);IF fstat<>0THEN return(1);meldungausgeben(fstat);
+LEAVE stundenplanraumweisezeigenFI FI ELIF fstat=8THEN meldungausgeben(fstat)
+FI .holeplausiraeume:inittupel(dnrschluessel);statleseschleife(dnrschluessel,
+raumkenndaten,"",dnrschluessel+1,dnrschluessel+2,PROC raeumeholen).END PROC
+stundenplanraumweisezeigen;PROC stundenplanraumweiseausgeben(TEXT CONST raum)
+:standardstartproc(stdplmaske);fuellemaske(raum);IF NOT uvokTHEN infeld(
+uvokfeld);standardmeldung(meldunguvfehler," ")FI ;standardnproc.END PROC
+stundenplanraumweiseausgeben;PROC fuellemaske(TEXT CONST raum):TEXT VAR
+paraphelvnulleintrag:="";standardkopfmaskeaktualisieren("Stundenplan für"+
+hjsjanhang+raum);maskeneintragraum:=compress(raum);uvok:=TRUE ;uvokfeld:=2;
+FOR iFROM 1UPTO maxstundenREP planeintraglesen(i,kennungraum,raum,
+stdpleintraglvident,stdpleintraglvraum,stdpleintraglvpar);IF
+stdpleintraglvident<>""THEN lvausstdpl(i):=stdpleintraglvident;
+standardmaskenfeld(stdpleintraglvident,i+1);IF stdpleintraglvpar=leererlehrer
+THEN IF uvokTHEN uvok:=FALSE ;uvokfeld:=i+1FI ELSE pruefeparaphestdplanlvnull
+FI ELSE lvausstdpl(i):="";standardmaskenfeld("",i+1);FI PER ;infeld(1);
+standardfelderausgeben;infeld(2).pruefeparaphestdplanlvnull:
+paraphelvnulleintrag:=datenzurlv(kennungparaphe,stdpleintraglvident);IF
+stdpleintraglvpar<>paraphelvnulleintragTHEN planeintragvornehmen(i,
+stdpleintraglvident,paraphelvnulleintrag,spok)FI .END PROC fuellemaske;BOOL
+PROC raumfalsch(TEXT CONST raum):pos(plausiraeume,trenner+raum+trenner)=0END
+PROC raumfalsch;PROC raeumeholen(BOOL VAR b):IF wert(dnrschluessel+1)>
+raumkenndatenCOR dbstatus<>0THEN b:=TRUE ELSE plausiraeumeCAT wert(
+dnrschluessel+2);plausiraeumeCAT trenner;raumleiste:=text(wert(dnrschluessel+
+2),laengeraum)+raumleisteFI END PROC raeumeholen;PROC meldungausgeben(INT
+VAR fstat):IF fstat=2THEN standardmeldung(meldungserverfehler,"");ELIF fstat=
+4THEN standardmeldung(meldungkeinesugruppen,"");ELIF fstat=5THEN
+standardmeldung(meldungzuvielesugruppen,"")ELIF fstat=6THEN standardmeldung(
+meldungkeinelv,"")ELIF fstat=7THEN standardmeldung(meldungzuvielelv,"")ELIF
+fstat=8THEN standardmeldung(meldungstdplanveraltet,"");ELIF fstat=9THEN
+standardmeldung(meldungbasisinkon,"");ELSE LEAVE meldungausgebenFI END PROC
+meldungausgeben;PROC stundenplanraumweisespeichern(BOOL CONST speichern):
+TEXT VAR t:="",lv:="";INT VAR posrestraumleiste;IF anzraeume=1THEN IF
+speichernTHEN aenderungenvornehmen;FI ;
+stundenplanraumweisereorganisiertverlassenELSE IF speichernTHEN
+aenderungenvornehmen;FI ;anzraeumeDECR 1;IF anzraeumeMOD 10=0THEN
+stundenplanreorganisierenundsichern(fstat)FI ;naechsterraum;return(1)FI .
+naechsterraum:posrestraumleiste:=(anzraeume-1)*laengeraum+1;fuellemaske(
+subtext(restraumleiste,posrestraumleiste,posrestraumleiste+laengeraum-1));IF
+NOT uvokTHEN infeld(uvokfeld);standardmeldung(meldunguvfehler," ")FI .
+aenderungenvornehmen:standardmeldung(meldungplausi," ");plausipruefung;
+standardmeldung(meldungspeichern," ");aenderungsfehler:=FALSE ;speicherung;
+IF aenderungsfehlerTHEN standardmeldung(meldungaenderungsfehler,"");return(1)
+;LEAVE stundenplanraumweisespeichernELSE IF anzraeumeMOD 20=0THEN
+stundenplanraumweisereorganisiertverlassenELSE stundenplansichern(fstat)FI ;
+IF fstat<>0THEN meldungausgeben(fstat);return(1);LEAVE
+stundenplanraumweisespeichernFI ;FI .plausipruefung:FOR iFROM 1UPTO
+maxstundenREP aktbspos:=i+1;infeld(aktbspos);stdpleintraglv:=text(
+standardmaskenfeld(aktbspos),laengelv);stdpleintragjgst:=text(stdpleintraglv,
+laengejgst);IF keinejgstmitfuehrendernullTHEN IF stdpleintragjgst="0 "COR
+stdpleintragjgst=" 0"THEN stdpleintraglv:="00"+subtext(stdpleintraglv,
+laengejgst+1)ELSE stdpleintraglv:=jgstaufber(stdpleintragjgst)+subtext(
+stdpleintraglv,laengejgst+1);IF NOT lastconversionokTHEN standardmeldung(
+meldungnichtlv,standardmaskenfeld(aktbspos)+ausgabeparam);return(1);LEAVE
+stundenplanraumweisespeichernFI ;FI ;FI ;IF compress(stdpleintraglv)<>""THEN
+lvvombs(i):=stdpleintraglv;pruefezeit;pruefelvundpar;pruefesugruppenfreiELSE
+lvvombs(i):="";FI ;PER .speicherung:FOR iFROM 1UPTO maxstundenREP IF
+lvausstdpl(i)<>""COR lvvombs(i)<>""THEN aktbspos:=i+1;infeld(aktbspos);IF
+loeschenTHEN planeintragentfernenELSE planeintragschreibenFI ;FI ;PER .
+keinejgstmitfuehrendernull:keinejgstCAND keinleerereintrag.keinejgst:pos(
+alleklst,trenner+stdpleintragjgst+trenner)=0.keinleerereintrag:compress(
+stdpleintraglv)<>"".pruefelvundpar:t:=datenzurlv(kennungparaphe,
+stdpleintraglv);IF t=ungueltigeparTHEN standardmeldung(meldungnichtlv,
+standardmaskenfeld(aktbspos)+ausgabeparam);return(1);LEAVE
+stundenplanraumweisespeichernELIF t<>leererlehrerTHEN IF lehrerunterricht
+THEN standardmeldung(meldunglehrerbesetzt,t+ausgabeparam);return(1);LEAVE
+stundenplanraumweisespeichernFI FI .lehrerunterricht:lv:=geplantelvfuer(i,
+kennungparaphe,t);lv<>stdpleintraglvCAND lv<>"".pruefesugruppenfrei:IF
+sugruppenichtunterrichtsfreiTHEN standardmeldung(meldungsugrupbesetzt,lv+
+ausgabeparam);return(1);LEAVE stundenplanraumweisespeichernFI .
+sugruppenichtunterrichtsfrei:schuelergruppenschnittbeizeit(i,kennunglv,
+stdpleintraglv,lvausstdpl(i),lv,t).pruefezeit:t:=text(i);IF NOT
+bezeichnungzulaessig(kennungzulzeit,t)THEN standardmeldung(
+meldungzeitgesperrt,tagstunde(i,TRUE )+" Std."+ausgabeparam);return(1);LEAVE
+stundenplanraumweisespeichernFI .loeschen:lvausstdpl(i)<>""CAND lvvombs(i)=""
+.planeintragentfernen:planeintragloeschen(i,lvausstdpl(i),spok);IF NOT spok
+THEN aenderungsfehler:=TRUE FI .planeintragschreiben:IF lvausstdpl(i)<>""
+THEN planeintragloeschen(i,lvausstdpl(i),spok);IF spokTHEN
+planeintragvornehmen(i,lvvombs(i),maskeneintragraum,spok);FI ;ELSE
+planeintragvornehmen(i,lvvombs(i),maskeneintragraum,spok);FI ;IF NOT spok
+THEN aenderungsfehler:=TRUE FI .END PROC stundenplanraumweisespeichern;END
+PACKET stundenplanraumweiseerfassen;
+