app/schulis/2.2.1/src/4.anschr.unterrichtsvertlg fuer lehrer

Raw file
Back to index

PACKET anschrunterrichtsvertlgfuerlehrerDEFINES 
unterrichtsvertlgfuerlehrereingang,unterrichtsvertlgfuerlehrerstarten,
unterrichtsvertlgfuerlehrersonderwerte,unterrichtsvertlgfuerlehrermultistop,
unterrichtsvertlgfuerlehrerdruckdateibauen:LET maske=
"ms unterrichtsverteilung fuer lehrer drucken",fnrparaphe=2,fnrzeitwuensche=3
,fnraktsj=4,fnrbsausgabe=5,fnrdrausgabe=6,mnrbittewarten=69,
mnrkeinegueltigeparaphe=344,mnrlistewirdaufbereitet=190,trenner="/",blank=" "
,niltext="";TEXT CONST v1datlehrer:="vordruck1 unterrichtsvertlg fuer lehrer"
,v2datlehrveranstgn:="vordruck2 unterrichtsvertlg fuer lehrer",
v3dataktschuelergr:="vordruck4 auskunft lehrer",v4datzeitwuensche:=
"vordruck5 auskunft lehrer",bestandnamepersoenlermaessigung:=
"c02 persoenl ermaess";LET swsj=520,swhj=521,swanrede=522,
swermaessgrund1langtext=530,swermaessgrund2langtext=531,
swermaessgrund3langtext=532,swermaessgrund4langtext=533,swfach=534,swkennung=
535,swwstd=536,swdummy=526,ganztage=520,ganzgew=521,vormtage=522,vormgew=523,
nachtage=524,nachgew=525;BOOL VAR bildschirmausgabe,mitzeitwuenschen,
einzelbearbeitung,aktsj;TEXT VAR angegebeneparaphe:="",aktparaphe,halbjahr,
schuljahr,wochstdn,fachkennung;INT VAR gemerkterdbstatus,status,sollstdn,
differenz,summewochstdn:=0,zeilenhilfszahl,zeilenzahl,zusatzzeilen,
swaktklassenleiter,swaktstellvertreter;BOOL PROC paraphevorhanden:putwert(
fnrlparaphe,angegebeneparaphe);search(dnrlehrer,TRUE );IF dbstatus=0THEN 
TRUE ELSE FALSE FI END PROC paraphevorhanden;PROC 
unterrichtsvertlgfuerlehrereingang:standardvproc(maske)END PROC 
unterrichtsvertlgfuerlehrereingang;PROC unterrichtsvertlgfuerlehrerstarten:
standardpruefe(5,fnrbsausgabe,fnrdrausgabe,0,"",status);IF status<>0THEN 
infeld(status);return(1);ELSE angegebeneparaphe:=standardmaskenfeld(
fnrparaphe);IF angegebeneparaphe=niltextCOR paraphevorhandenTHEN 
bildschirmausgabe:=standardmaskenfeld(fnrbsausgabe)<>niltext;
einzelbearbeitung:=standardmaskenfeld(fnrparaphe)<>niltext;mitzeitwuenschen:=
standardmaskenfeld(fnrzeitwuensche)<>niltext;aktsj:=standardmaskenfeld(
fnraktsj)<>niltext;aktparaphe:=angegebeneparaphe;startenausfuehrenELSE 
standardmeldung(mnrkeinegueltigeparaphe,niltext);return(1)FI ;FI .
startenausfuehren:halbjahr:=schulkenndatum("Schulhalbjahr");schuljahr:=
schulkenndatum("Schuljahr");IF NOT (aktsj)THEN geplanteshjundsjberechnen(
halbjahr,schuljahr);FI ;setzesonderwerteschulkenndaten;setzewerte;
standardmeldung(mnrbittewarten,niltext);zusammengesetztesanschreiben(
dnrlehrer,bildschirmausgabe,einzelbearbeitung,BOOL PROC 
unterrichtsvertlgfuerlehrersonderwerte,BOOL PROC 
unterrichtsvertlgfuerlehrermultistop,TEXT PROC 
unterrichtsvertlgfuerlehrerdruckdateibauen).setzewerte:putwert(fnrlparaphe,
aktparaphe)END PROC unterrichtsvertlgfuerlehrerstarten;BOOL PROC 
unterrichtsvertlgfuerlehrermultistop:BOOL VAR ok;IF einzelbearbeitungTHEN ok
:=angegebeneparaphe=wert(fnrlparaphe)AND dbstatus=0ELSE ok:=dbstatus=0FI ;ok
END PROC unterrichtsvertlgfuerlehrermultistop;BOOL PROC 
unterrichtsvertlgfuerlehrersonderwerte:TEXT VAR grund1,grund2,grund3,grund4;
initialisieresonderwerte;aktparaphe:=wert(fnrlparaphe);adressat(aktparaphe);
gemerkterdbstatus:=dbstatus;setzesonderwert(swsj,subtext(schuljahr,1,2)+
trenner+subtext(schuljahr,3,4));setzesonderwert(swhj,halbjahr);TEXT VAR 
anredetext;IF wert(fnrlgeschlecht)="m"THEN anredetext:="Herrn"ELSE anredetext
:="Frau";FI ;setzesonderwert(swanrede,anredetext);grund1:=wert(fnrlermgrund1)
;grund2:=wert(fnrlermgrund2);grund3:=wert(fnrlermgrund3);grund4:=wert(
fnrlermgrund4);sollstdn:=intwert(fnrlsollstd);inittupel(dnrschluessel);
putwert(fnrschlsachgebiet,bestandnamepersoenlermaessigung);putwert(
fnrschlschluessel,grund1);search(dnrschluessel,TRUE );IF dbstatus=0THEN 
setzesonderwert(swermaessgrund1langtext,wert(fnrschllangtext))ELSE 
setzesonderwert(swermaessgrund1langtext,blank)FI ;putwert(fnrschlschluessel,
grund2);search(dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund2langtext,wert(fnrschllangtext));ELSE setzesonderwert(
swermaessgrund2langtext,blank);FI ;putwert(fnrschlschluessel,grund3);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund3langtext,wert(fnrschllangtext))ELSE setzesonderwert(
swermaessgrund3langtext,blank)FI ;putwert(fnrschlschluessel,grund4);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
swermaessgrund4langtext,wert(fnrschllangtext))ELSE setzesonderwert(
swermaessgrund4langtext,blank)FI ;inittupel(dnrlehrveranstaltungen);putwert(
fnrlvsj,schuljahr);putwert(fnrlvhj,halbjahr);putwert(fnrlvparaphe,aktparaphe)
;search(ixlvsjhjpar,TRUE );IF dbstatus=0THEN fachkennung:=wert(
fnrlvfachkennung);wochstdn:=wert(fnrlvwochenstd);setzesonderwert(swfach,
subtext(fachkennung,1,2));setzesonderwert(swkennung,subtext(fachkennung,3,6))
;setzesonderwert(swwstd,wochstdn);summewochstdn:=int(wochstdn);ELSE 
setzesonderwert(swfach,blank);setzesonderwert(swkennung,blank);
setzesonderwert(swwstd,blank);summewochstdn:=0;FI ;dbstatus(gemerkterdbstatus
);TRUE END PROC unterrichtsvertlgfuerlehrersonderwerte;TEXT PROC 
unterrichtsvertlgfuerlehrerdruckdateibauen:LET druckdatei="liste.1",
hilfsdatei="hilfsdatei";TEXT VAR zeile;zeilenzahl:=0;zusatzzeilen:=0;
vordruckeholen;setzemitseitennummern(TRUE );druckvorbereiten;standardmeldung(
mnrlistewirdaufbereitet,niltext);briefalternative(v1datlehrer,hilfsdatei);
hilfsdateiindruckdatei(hilfsdatei);vordruck2ggfxmalindruckdatei;zeile:=blank;
druckzeileschreiben(zeile);zeilenzahlINCR 1;zeile:=42*blank+"Wstd. Summe: "+
text(summewochstdn,2);druckzeileschreiben(zeile);zeilenzahlINCR 1;IF sollstdn
<>summewochstdnTHEN differenz:=sollstdn-summewochstdn;IF differenz<0THEN 
zeile:=43*blank+"Mehrarbeit: "+text(-differenz,2)+" Std.";ELSE zeile:=24*
blank+"Sollstunden unterschritten um: "+text(differenz,2)+" Std.";FI ;
druckzeileschreiben(zeile);zeilenzahlINCR 1;FI ;zeilenzahl:=5;
vordruck3ggfindruckdatei;IF mitzeitwuenschenTHEN zeilenzahl:=17;
vordruck4ggfindruckdatei;FI ;drucknachbereitenohneausdrucken;
vordruckeloeschen;druckdatei.vordruckeholen:fetch(v1datlehrer,/
"anschreiben server");fetch(v2datlehrveranstgn,/"anschreiben server");fetch(
v3dataktschuelergr,/"anschreiben server");fetch(v4datzeitwuensche,/
"anschreiben server");.vordruckeloeschen:forget(v1datlehrer,quiet);forget(
v2datlehrveranstgn,quiet);forget(v3dataktschuelergr,quiet);forget(
v4datzeitwuensche,quiet);END PROC unterrichtsvertlgfuerlehrerdruckdateibauen;
PROC vordruck2ggfxmalindruckdatei:TEXT VAR hilfsdatei:="hilfsdatei";BOOL VAR 
hilfsdateida:=FALSE ;succ(ixlvsjhjpar);WHILE dbstatus=0AND wert(fnrlvparaphe)
=aktparapheREP fachkennung:=wert(fnrlvfachkennung);wochstdn:=subtext(wert(
fnrlvwochenstd),1,2);setzesonderwert(swfach,subtext(fachkennung,1,2));
setzesonderwert(swkennung,subtext(fachkennung,3,6));setzesonderwert(swwstd,
wochstdn);summewochstdnINCR int(wochstdn);briefalternative(v2datlehrveranstgn
,hilfsdatei);succ(ixlvsjhjpar);hilfsdateida:=TRUE ;PER ;IF hilfsdateidaTHEN 
hilfsdateiindruckdatei(hilfsdatei)FI ;END PROC vordruck2ggfxmalindruckdatei;
PROC vordruck3ggfindruckdatei:LET hilfsdatei="hilfsdatei";TEXT VAR aufberwert
:=niltext;BOOL VAR hilfsdateiangelegt:=FALSE ;setzesonderwert(swdummy,blank);
swaktklassenleiter:=580;swaktstellvertreter:=581;gemerkterdbstatus:=dbstatus;
inittupel(dnraktschuelergruppen);putwert(fnrsgrpsj,schuljahr);putwert(
fnrsgrphj,halbjahr);search(dnraktschuelergruppen,FALSE );WHILE dbstatus=0AND 
wert(fnrsgrphj)=halbjahrREP IF wert(fnrsgrplehrer)=aktparapheAND 
swaktklassenleiter<590THEN aufberwert:=wert(fnrsgrpjgst);aufberwertCAT wert(
fnrsgrpkennung);setzesonderwert(swaktklassenleiter,aufberwert);
swaktklassenleiterINCR 2;hilfsdateiangelegt:=TRUE ;ELSE IF wert(
fnrsgrpstellvlehrer)=aktparapheAND swaktstellvertreter<591THEN aufberwert:=
wert(fnrsgrpjgst);aufberwertCAT wert(fnrsgrpkennung);setzesonderwert(
swaktstellvertreter,aufberwert);swaktstellvertreterINCR 2;hilfsdateiangelegt
:=TRUE ;FI ;FI ;succ(dnraktschuelergruppen)PER ;IF hilfsdateiangelegtTHEN 
briefalternative(v3dataktschuelergr,hilfsdatei);hilfsdateiindruckdatei(
hilfsdatei);FI ;dbstatus(gemerkterdbstatus)END PROC vordruck3ggfindruckdatei;
PROC vordruck4ggfindruckdatei:gemerkterdbstatus:=dbstatus;LET hilfsdatei=
"hilfsdatei";TEXT VAR zeitwuensche;initialisieresonderwerte;INT VAR 
aktswzeitwunsch:=531,position:=1,i;setzesonderwert(swdummy,blank);inittupel(
dnrzeitwuensche);putwert(fnrzwsj,schuljahr);putwert(fnrzwhj,halbjahr);putwert
(fnrzwbezug,"P");putwert(fnrzwbezugsobjekt,aktparaphe);search(dnrzeitwuensche
,TRUE );IF dbstatus=0THEN zeitwuensche:=wert(fnrzwunbestimmtewuensche);
setzesonderwert(ganztage,zeitwuenscheSUB 1);setzesonderwert(ganzgew,
zeitwuenscheSUB 3);setzesonderwert(vormtage,zeitwuenscheSUB 4);
setzesonderwert(vormgew,zeitwuenscheSUB 6);setzesonderwert(nachtage,
zeitwuenscheSUB 7);setzesonderwert(nachgew,zeitwuenscheSUB 9);zeitwuensche:=
wert(fnrzwbestimmtewuensche);FOR iFROM 1UPTO 66REP setzesonderwert(
aktswzeitwunsch,subtext(zeitwuensche,position,position+1));aktswzeitwunsch
INCR 1;positionINCR 2PER ;briefalternative(v4datzeitwuensche,hilfsdatei);
hilfsdateiindruckdatei(hilfsdatei);FI ;dbstatus(gemerkterdbstatus)END PROC 
vordruck4ggfindruckdatei;PROC hilfsdateiindruckdatei(TEXT CONST hilfsdatei):
FILE VAR f;INT VAR i;TEXT VAR zeile;f:=sequentialfile(input,hilfsdatei);
zeilenhilfszahl:=lines(f);IF zeilenzahl+zeilenhilfszahl+zusatzzeilen>=
drucklaengeTHEN seitenwechsel;zeilenzahl:=0;FI ;FOR iFROM 1UPTO 
zeilenhilfszahlREP getline(f,zeile);druckzeileschreiben(zeile)PER ;forget(
hilfsdatei,quiet);zeilenzahlINCR zeilenhilfszahlEND PROC 
hilfsdateiindruckdatei;END PACKET anschrunterrichtsvertlgfuerlehrer