summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.stundenplan nach lv erfassen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/4.stundenplan nach lv erfassen')
-rw-r--r--app/schulis/2.2.1/src/4.stundenplan nach lv erfassen133
1 files changed, 133 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/4.stundenplan nach lv erfassen b/app/schulis/2.2.1/src/4.stundenplan nach lv erfassen
new file mode 100644
index 0000000..376fbac
--- /dev/null
+++ b/app/schulis/2.2.1/src/4.stundenplan nach lv erfassen
@@ -0,0 +1,133 @@
+PACKET stundenplannachlverfassenDEFINES stundenplannachlvspeichern,
+stundenplannachlvreorganisiertverlassen,stundenplannachlvkopieren,
+stundenplannachlvzeigen:LET stdplmaske="ms stdplan nach lv bearb",
+feldeingjgst=2,feldeingfach=3,feldeingkenn=4,feldeingakthj=5,laengelv=8,
+lvmitleeremraum="x",leererraum=" ",leererlehrer=" ",schuljahr=
+"Schuljahr",halbjahr="Schulhalbjahr",kennungwstd="W",kennungraum="R",
+kennungparaphe="P",kennunglv="L",kennungzulzeit="ZZ",ausgabeparam="#",
+maxstunden=66,meldungplausi=57,meldungfeldfuellen=52,meldungfalschejgst=305,
+meldungzuvielewstd=369,meldungjgstergaenzen=304,meldungfalschesfach=310,
+meldungkeinestartlv=68,meldungspeichern=50,meldungwarten=69,
+meldungdatenaufbereitet=357,meldungkeinesugruppen=334,meldungzuvielesugruppen
+=356,meldunglehrerbesetzt=361,meldungraumbesetzt=370,meldungsugrupbesetzt=362
+,meldungzeitgesperrt=363,meldungkeinelv=326,meldungaenderungsfehler=364,
+meldunguvfehler=403,meldungserverfehler=376,meldungbasisinkon=378,
+meldunganderewahl=318,meldungfalscherraum=359,meldungzuvielelv=358;ROW
+maxstundenTEXT VAR lvausstdpl;ROW maxstundenTEXT VAR lvvombs;TEXT VAR schhj,
+schj,aktfachkenn,aktlv,eintraglv,lveintrag,raumeintrag,pareintrag,hjsjanhang
+:="";INT VAR i,fstat,hjkennalt:=-1,aktjgst,uvokfeld:=2,wstdderlv,hjkennneu:=0
+;BOOL VAR spok:=TRUE ,uvok:=TRUE ,aenderungsfehler:=FALSE ;PROC
+stundenplannachlvkopieren:INT VAR aktfeld:=infeld;TEXT VAR feldinhalt:="";IF
+aktfeld=67THEN fehlermeldunganwunzulELSE kopierenFI ;return(1).kopieren:
+feldinhalt:=standardmaskenfeld(aktfeld);standardmaskenfeld(feldinhalt,aktfeld
++1);standardfelderausgeben;infeld(aktfeld).fehlermeldunganwunzul:
+standardmeldung(meldunganderewahl,"").END PROC stundenplannachlvkopieren;
+PROC stundenplannachlvreorganisiertverlassen:
+stundenplanreorganisierenundsichern(fstat);IF fstat<>0THEN return(1);
+meldungausgeben(fstat)ELSE enter(2)FI END PROC
+stundenplannachlvreorganisiertverlassen;PROC stundenplannachlvzeigen:INT VAR
+jgst:=0;TEXT VAR jg:="",fach:="",kennung:="";standardmeldung(meldungwarten,
+" ");jg:=standardmaskenfeld(feldeingjgst);fach:=standardmaskenfeld(
+feldeingfach);kennung:=standardmaskenfeld(feldeingkenn);pruefeeingabe;
+maskeundinitialisierung;holstartlv;stundenplannachlvausgeben.pruefeeingabe:
+IF jg<>""THEN jgst:=int(jg);IF lastconversionokTHEN pruefjgstELSE
+fehlermeldungfalschejgstFI ;FI ;prueffach;pruefkennung.pruefjgst:IF jgst<>0
+THEN IF jgst<5COR jgst>13THEN fehlermeldungfalschejgstFI FI .
+fehlermeldungfalschejgst:standardmeldung(meldungfalschejgst,"");infeld(
+feldeingjgst);return(1);LEAVE stundenplannachlvzeigen.prueffach:IF fach<>""
+THEN IF jg=""THEN standardmeldung(meldungjgstergaenzen,"");infeld(
+feldeingjgst);return(1);LEAVE stundenplannachlvzeigenELSE fach:=compress(fach
+);inittupel(dnrfaecher);putwert(fnrffach,fach);search(dnrfaecher,TRUE );IF
+dbstatus<>okTHEN fehlermeldungfalschesfachFI FI FI .fehlermeldungfalschesfach
+:standardmeldung(meldungfalschesfach,"");infeld(feldeingfach);return(1);
+LEAVE stundenplannachlvzeigen.pruefkennung:IF kennung<>""THEN IF jg=""THEN
+standardmeldung(meldungfeldfuellen,"");infeld(feldeingjgst);return(1);LEAVE
+stundenplannachlvzeigenFI ;IF fach=""THEN standardmeldung(meldungfeldfuellen,
+"");infeld(feldeingfach);return(1);LEAVE stundenplannachlvzeigenFI ;FI .
+maskeundinitialisierung:aktlv:="";aktjgst:=0;aktfachkenn:="";IF akthj<>""
+THEN hjkennneu:=0ELSE hjkennneu:=1FI ;IF hjkennneu<>hjkennaltTHEN hjkennalt:=
+hjkennneu;schj:=schulkenndatum(schuljahr);schhj:=schulkenndatum(halbjahr);IF
+hjkennneu=1THEN geplanteshjundsjberechnen(schhj,schj)FI ;
+stundenplanhalbjahrsetzen(schhj,schj);hjsjanhang:=schhj+". "+text(schj,2)+"/"
++subtext(schj,3);holestdplanFI .akthj:standardmaskenfeld(feldeingakthj).
+holestdplan:standardmeldung(meldungdatenaufbereitet,"");
+stundenplanbasisundstundenplanholen(fstat);IF fstat<>0CAND fstat<>8THEN
+stundenplanbasisundstundenplanerstellen(fstat);IF fstat<>0THEN return(1);
+meldungausgeben(fstat);LEAVE stundenplannachlvzeigenELSE
+stundenplanbasissichern(fstat);stundenplansichern(fstat);IF fstat<>0THEN
+return(1);meldungausgeben(fstat);LEAVE stundenplannachlvzeigenFI FI ELIF
+fstat=8THEN meldungausgeben(fstat)FI .holstartlv:fach:=text(fach+" ",2);
+inittupel(dnrlehrveranstaltungen);putwert(fnrlvsj,schj);putwert(fnrlvhj,schhj
+);putintwert(fnrlvjgst,jgst);putwert(fnrlvfachkennung,fach+kennung);search(
+dnrlehrveranstaltungen,FALSE );IF dbstatus>2THEN fehlermeldungkeinestartlv
+ELSE aktjgst:=intwert(fnrlvjgst);aktfachkenn:=wert(fnrlvfachkennung);aktlv:=
+text(jgstaufbereiten(aktjgst)+aktfachkenn,laengelv)FI .
+fehlermeldungkeinestartlv:standardmeldung(meldungkeinestartlv,"");infeld(
+feldeingjgst);return(1);LEAVE stundenplannachlvzeigen.END PROC
+stundenplannachlvzeigen;PROC stundenplannachlvausgeben:standardstartproc(
+stdplmaske);fuellemaske;IF NOT uvokTHEN infeld(uvokfeld);standardmeldung(
+meldunguvfehler," ")FI ;standardnproc.END PROC stundenplannachlvausgeben;
+PROC fuellemaske:standardkopfmaskeaktualisieren("Stundenplan "+hjsjanhang+
+" für Lehrveranstaltung "+aktlv+"");uvok:=TRUE ;raumeintrag:="";lveintrag:=
+"";pareintrag:="";wstdderlv:=int(datenzurlv(kennungwstd,aktlv));FOR iFROM 1
+UPTO maxstundenREP planeintraglesen(i,kennunglv,aktlv,lveintrag,raumeintrag,
+pareintrag);IF raumeintrag<>""THEN IF raumeintrag=leererraumTHEN raumeintrag
+:=lvmitleeremraumELSE raumeintrag:=compress(raumeintrag)FI ;lvausstdpl(i):=
+raumeintrag;standardmaskenfeld(raumeintrag,i+1);IF pareintrag=leererlehrer
+THEN IF uvokTHEN uvok:=FALSE ;uvokfeld:=i+1;eintraglv:=lveintragFI FI ELSE
+lvausstdpl(i):="";standardmaskenfeld("",i+1);FI PER ;infeld(1);
+standardfelderausgeben;infeld(2).END PROC fuellemaske;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=9THEN standardmeldung(meldungbasisinkon,"");ELSE LEAVE meldungausgeben
+FI END PROC meldungausgeben;PROC stundenplannachlvspeichern(BOOL CONST
+speichern):TEXT VAR raumeintrag,t:="",lv:="";INT VAR bisherigejgst:=0,anzwstd
+;IF speichernTHEN aenderungenvornehmen;FI ;naechstersatz;return(1).
+naechstersatz:succ(dnrlehrveranstaltungen);IF dbstatus>2COR wert(fnrlvsj)<>
+schjCOR wert(fnrlvhj)<>schhjTHEN stundenplannachlvreorganisiertverlassen;
+LEAVE stundenplannachlvspeichernELIF intwert(fnrlvjgst)<>bisherigejgstTHEN
+stundenplanreorganisierenundsichern(fstat);bisherigejgst:=intwert(fnrlvjgst)
+FI ;aktjgst:=intwert(fnrlvjgst);aktfachkenn:=wert(fnrlvfachkennung);aktlv:=
+text(jgstaufbereiten(aktjgst)+aktfachkenn,laengelv);fuellemaske;IF NOT uvok
+THEN infeld(uvokfeld);standardmeldung(meldunguvfehler,eintraglv+ausgabeparam)
+FI .aenderungenvornehmen:standardmeldung(meldungplausi," ");plausipruefung;
+standardmeldung(meldungspeichern," ");aenderungsfehler:=FALSE ;speicherung;
+IF aenderungsfehlerTHEN standardmeldung(meldungaenderungsfehler,"");return(1)
+;LEAVE stundenplannachlvspeichernELSE stundenplansichern(fstat)FI ;IF fstat<>
+0THEN meldungausgeben(fstat);return(1);LEAVE stundenplannachlvspeichernFI .
+plausipruefung:anzwstd:=0;FOR iFROM 1UPTO maxstundenREP infeld(i+1);
+raumeintrag:=standardmaskenfeld(i+1);IF raumeintrag<>""THEN pruefezeit;IF
+raumeintrag<>lvmitleeremraumTHEN prueferaum;lvvombs(i):=raumeintragELSE
+lvvombs(i):=leererraumFI ;schnittraeume;schnittlehrer;schnittsugruppen;
+wstdzahlok;anzwstdINCR 1;ELSE lvvombs(i):=""FI ;PER .pruefezeit:IF NOT
+bezeichnungzulaessig(kennungzulzeit,text(i))THEN standardmeldung(
+meldungzeitgesperrt,tagstunde(i,TRUE )+" Std."+ausgabeparam);return(1);LEAVE
+stundenplannachlvspeichernFI .prueferaum:IF NOT bezeichnungzulaessig(
+kennungraum,raumeintrag)THEN standardmeldung(meldungfalscherraum,"");return(1
+);LEAVE stundenplannachlvspeichernFI .schnittraeume:IF raumunterrichtTHEN
+standardmeldung(meldungraumbesetzt,"");return(1);LEAVE
+stundenplannachlvspeichernFI .raumunterricht:lv:=geplantelvfuer(i,kennungraum
+,raumeintrag);lv<>aktlvCAND lv<>"".schnittlehrer:t:=datenzurlv(kennungparaphe
+,aktlv);IF t<>leererlehrerTHEN IF lehrerunterrichtTHEN standardmeldung(
+meldunglehrerbesetzt,t+ausgabeparam);return(1);LEAVE
+stundenplannachlvspeichernFI FI .lehrerunterricht:lv:=geplantelvfuer(i,
+kennungparaphe,t);lv<>aktlvCAND lv<>"".schnittsugruppen:IF
+sugruppenichtunterrichtsfreiTHEN standardmeldung(meldungsugrupbesetzt,lv+
+ausgabeparam);return(1);LEAVE stundenplannachlvspeichernFI .
+sugruppenichtunterrichtsfrei:schuelergruppenschnittbeizeit(i,kennunglv,aktlv,
+"",lv,t).wstdzahlok:IF anzwstd=wstdderlvTHEN standardmeldung(
+meldungzuvielewstd,"");return(1);LEAVE stundenplannachlvspeichernFI .
+speicherung:FOR iFROM 1UPTO maxstundenREP IF lvausstdpl(i)<>""COR lvvombs(i)
+<>""THEN infeld(i+1);IF loeschenTHEN planeintragentfernenELSE
+planeintragschreibenFI ;FI ;PER .loeschen:lvausstdpl(i)<>""CAND lvvombs(i)=""
+.planeintragentfernen:planeintragloeschen(i,aktlv,spok);IF NOT spokTHEN
+aenderungsfehler:=TRUE FI .planeintragschreiben:IF lvausstdpl(i)<>""THEN
+planeintragloeschen(i,aktlv,spok);IF spokTHEN planeintragvornehmen(i,aktlv,
+lvvombs(i),spok);FI ;ELSE planeintragvornehmen(i,aktlv,lvvombs(i),spok);FI ;
+IF NOT spokTHEN aenderungsfehler:=TRUE FI .END PROC
+stundenplannachlvspeichern;TEXT PROC jgstaufbereiten(INT CONST jgst):TEXT
+VAR lv:="0";lvCAT text(jgst);subtext(lv,length(lv)-1)END PROC jgstaufbereiten
+;END PACKET stundenplannachlverfassen;
+