app/schulis/2.2.1/src/3.anschr.betroffene lehrer

Raw file
Back to index

PACKET auskunftlehrerDEFINES lehrerauskunfteingang,lehrerauskunftstarten,
lehrerauskunftsonderwerte:LET anrede=511,nameaufbereitet=513;INT VAR x,index
:=dnrlehrer,aktuellesfach,aktuelleart,aktuelleartlehrbefaehigunglangtext;LET 
schulj=526,halbj=527,ermaessgrund1langtext=550,ermaessgrund2langtext=551,
ermaessgrund3langtext=552,ermaessgrund4langtext=553;INT VAR 
aktswklassenlehrer:=580,aktswstellvertreter:=581;LET ganztage=520,ganzgew=521
,vormtage=522,vormgew=523,nachtage=524,nachgew=525;LET swdatum=520,swzeit=521
,swart=522,swlv=523;LET maske="ms auskunft lehrer eingang",paraphenfeldnr=2,
trenner="/",niltext="",blank=" ",strich=" --- ",mnrbittewarten=69,
mnrkeinegueltigeparaphe=344;TEXT CONST dateimitvordruck1:=
"vordruck1 auskunft lehrer",dateimitvordruck2:="vordruck2 auskunft lehrer",
dateimitvordruck3:="vordruck3 auskunft lehrer",dateimitvordruck4:=
"vordruck4 auskunft lehrer",dateimitvordruck5:="vordruck5 auskunft lehrer",
dateimitvordruck6:="vordruck6 auskunft lehrer",dateimitvordruck7:=
"vordruck7 auskunft lehrer",bestandnameartlehrbefaehigung:=
"c02 art lehrbefaehigung",bestandnamepersoenlermaessigung:=
"c02 persoenl ermaess";TEXT VAR angegebeneparaphe:="",aktuelleshalbjahr,
aktuellesschuljahr,geplanteshalbjahr,geplantesschuljahr,schuljahr:="",
halbjahr:="";INT VAR zeilenzahl,zeilenhilfszahl,zusatzzeilen;BOOL PROC 
paraphevorhanden:putwert(fnrlparaphe,angegebeneparaphe);search(dnrlehrer,
TRUE );IF dbstatus=0THEN TRUE ELSE FALSE FI END PROC paraphevorhanden;PROC 
lehrerauskunfteingang:standardvproc(maske)END PROC lehrerauskunfteingang;
PROC lehrerauskunftstarten:angegebeneparaphe:=standardmaskenfeld(
paraphenfeldnr);IF angegebeneparaphe<>niltextTHEN startenausfuehrenELSE 
meldeeingabefehler;zurueckzumdialogFI ;.meldeeingabefehler:standardmeldung(
mnrkeinegueltigeparaphe,niltext).zurueckzumdialog:return(1).startenausfuehren
:IF NOT (paraphevorhanden)THEN meldeeingabefehler;zurueckzumdialogELSE BOOL 
CONST bildschirmausgabe:=FALSE ,einzelbearbeitung:=TRUE ;aktuelleshalbjahr:=
schulkenndatum("Schulhalbjahr");aktuellesschuljahr:=schulkenndatum(
"Schuljahr");geplanteshalbjahr:=aktuelleshalbjahr;geplantesschuljahr:=
aktuellesschuljahr;geplanteshjundsjberechnen(geplanteshalbjahr,
geplantesschuljahr);setzesonderwerteschulkenndaten;setzewerte;standardmeldung
(mnrbittewarten,niltext);zusammengesetztesanschreiben(index,bildschirmausgabe
,einzelbearbeitung,BOOL PROC lehrerauskunftsonderwerte,BOOL PROC 
scanbedingung,TEXT PROC druckdateibauen);FI ;.setzewerte:putwert(fnrlparaphe,
angegebeneparaphe)END PROC lehrerauskunftstarten;BOOL PROC scanbedingung:IF 
dbstatus=0THEN TRUE ELSE FALSE FI END PROC scanbedingung;BOOL PROC 
lehrerauskunftsonderwerte:LET sechs=6;ROW sechsTEXT VAR artlehrbefaehigung;
initialisieresonderwerte;adressat(angegebeneparaphe);TEXT VAR anredetext:=
"Frau";IF wert(fnrlgeschlecht)="m"THEN anredetext:="Herrn"FI ;setzesonderwert
(anrede,anredetext);setzesonderwert(nameaufbereitet,wert(fnrlrufname)+" "+
wert(fnrlzusatz)+" "+wert(fnrlfamname));TEXT VAR grund1,grund2,grund3,grund4;
grund1:=wert(fnrlermgrund1);grund2:=wert(fnrlermgrund2);grund3:=wert(
fnrlermgrund3);grund4:=wert(fnrlermgrund4);inittupel(dnrlehrbefaehigungen);
putwert(fnrlbparaphe,angegebeneparaphe);search(ixlbpar,FALSE );aktuellesfach
:=514;aktuelleart:=515;aktuelleartlehrbefaehigunglangtext:=554;FOR xFROM 1
UPTO sechsREP IF dbstatus=0AND wert(fnrlbparaphe)=angegebeneparapheTHEN 
setzesonderwert(aktuellesfach,wert(fnrlbfach));artlehrbefaehigung(x):=wert(
fnrlbart);setzesonderwert(aktuelleart,artlehrbefaehigung(x));ELSE 
setzesonderwert(aktuellesfach,niltext);artlehrbefaehigung(x):=niltext;
setzesonderwert(aktuelleart,niltext);FI ;succ(ixlbpar);aktuellesfachINCR 2;
aktuelleartINCR 2PER ;inittupel(dnrschluessel);putwert(fnrschlsachgebiet,
bestandnamepersoenlermaessigung);putwert(fnrschlschluessel,grund1);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(ermaessgrund1langtext,
wert(fnrschllangtext))ELSE setzesonderwert(ermaessgrund1langtext,blank)FI ;
putwert(fnrschlschluessel,grund2);search(dnrschluessel,TRUE );IF dbstatus=0
THEN setzesonderwert(ermaessgrund2langtext,wert(fnrschllangtext));ELSE 
setzesonderwert(ermaessgrund2langtext,blank);FI ;putwert(fnrschlschluessel,
grund3);search(dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(
ermaessgrund3langtext,wert(fnrschllangtext))ELSE setzesonderwert(
ermaessgrund3langtext,blank)FI ;putwert(fnrschlschluessel,grund4);search(
dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(ermaessgrund4langtext,
wert(fnrschllangtext))ELSE setzesonderwert(ermaessgrund4langtext,blank)FI ;
putwert(fnrschlsachgebiet,bestandnameartlehrbefaehigung);FOR xFROM 1UPTO 6
REP putwert(fnrschlschluessel,artlehrbefaehigung(x));search(dnrschluessel,
TRUE );IF dbstatus=0THEN setzesonderwert(aktuelleartlehrbefaehigunglangtext,
wert(fnrschllangtext))ELSE setzesonderwert(aktuelleartlehrbefaehigunglangtext
,blank)FI ;aktuelleartlehrbefaehigunglangtextINCR 1PER ;TRUE END PROC 
lehrerauskunftsonderwerte;TEXT PROC druckdateibauen:LET druckdatei="liste.1",
hilfsdatei="hilfsdatei";TEXT VAR zeile;INT VAR i;BOOL VAR mitdatendesgeplhjs
:=FALSE ;BOOL VAR weiteresaetzeda:=FALSE ;vordruckeholen;
setzemitseitennummern(TRUE );druckvorbereiten;zeilenzahl:=0;zusatzzeilen:=0;
briefalternative(dateimitvordruck1,hilfsdatei);hilfsdateiindruckdatei(
hilfsdatei);zusatzzeilen:=5;sonderwertsjundhjsetzen(aktuellesschuljahr,
aktuelleshalbjahr);ggfvordruck21malundvordruck3xmalindruckdatei(
mitdatendesgeplhjs);mitdatendesgeplhjs:=TRUE ;sonderwertsjundhjsetzen(
geplantesschuljahr,geplanteshalbjahr);
ggfvordruck21malundvordruck3xmalindruckdatei(mitdatendesgeplhjs);zusatzzeilen
:=4;vordruck4indruckdatei(aktuellesschuljahr,aktuelleshalbjahr);
vordruck4indruckdatei(geplantesschuljahr,geplanteshalbjahr);zusatzzeilen:=14;
vordruck5indruckdatei(aktuellesschuljahr,aktuelleshalbjahr);
vordruck5indruckdatei(geplantesschuljahr,geplanteshalbjahr);zusatzzeilen:=4;
ggf1malvordruck6undxmalvordruck7indruckdatei;drucknachbereitenohneausdrucken;
vordruckeloeschen;druckdatei.vordruckeholen:fetch(dateimitvordruck1,/
"anschreiben server");fetch(dateimitvordruck2,/"anschreiben server");fetch(
dateimitvordruck3,/"anschreiben server");fetch(dateimitvordruck4,/
"anschreiben server");fetch(dateimitvordruck5,/"anschreiben server");fetch(
dateimitvordruck6,/"anschreiben server");fetch(dateimitvordruck7,/
"anschreiben server");.vordruckeloeschen:forget(dateimitvordruck1,quiet);
forget(dateimitvordruck2,quiet);forget(dateimitvordruck3,quiet);forget(
dateimitvordruck4,quiet);forget(dateimitvordruck5,quiet);forget(
dateimitvordruck6,quiet);forget(dateimitvordruck7,quiet);.
ggf1malvordruck6undxmalvordruck7indruckdatei:inittupel(dnrvertretungen);
putwert(fnrvparaphe,angegebeneparaphe);search(ixvpar,FALSE );IF dbstatus=0
AND wert(fnrvparaphe)=angegebeneparapheTHEN swvertretungenfuellen;
briefalternative(dateimitvordruck6,hilfsdatei);hilfsdateiindruckdatei(
hilfsdatei);weiteresaetzeda:=FALSE ;succ(ixvpar);zusatzzeilen:=1;WHILE 
dbstatus=0AND wert(fnrvparaphe)=angegebeneparapheREP weiteresaetzeda:=TRUE ;
swvertretungenfuellen;briefalternative(dateimitvordruck7,hilfsdatei);succ(
ixvpar);PER ;IF weiteresaetzedaTHEN hilfsdateiindruckdatei(hilfsdatei)FI ;FI 
;END PROC druckdateibauen;PROC swvertretungenfuellen:TEXT VAR datum,
datumaufber,lehrveranstg,lvaufber,zeitaufber;INT VAR zeit,tag,std;
initialisieresonderwerte;datum:=wert(fnrvdatum);zeit:=intwert(fnrvtagstd);
lehrveranstg:=wert(fnrvveranstaltung);datumaufber:=subtext(datum,1,2)+".";
datumaufberCAT subtext(datum,4,5)+".";datumaufberCAT subtext(datum,7,8);tag:=
(zeit-1)DIV 12;std:=zeitMOD 12;IF tag=0THEN zeitaufber:="Mo "ELIF tag=1THEN 
zeitaufber:="Di "ELIF zeit=2THEN zeitaufber:="Mi "ELIF zeit=3THEN zeitaufber
:="Do "ELIF zeit=4THEN zeitaufber:="Fr "ELIF zeit=5THEN zeitaufber:="Sa "FI ;
zeitaufberCAT text(std,2);lvaufber:=subtext(lehrveranstg,1,2)+blank;lvaufber
CAT subtext(lehrveranstg,3,4)+blank;lvaufberCAT subtext(lehrveranstg,5,8);
setzesonderwert(swdatum,datumaufber);setzesonderwert(swzeit,zeitaufber);
setzesonderwert(swart,wert(fnrvanrechnung));setzesonderwert(swlv,lvaufber);
END PROC swvertretungenfuellen;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 1
UPTO zeilenhilfszahlREP getline(f,zeile);druckzeileschreiben(zeile)PER ;
forget(hilfsdatei,quiet);zeilenzahlINCR zeilenhilfszahlEND PROC 
hilfsdateiindruckdatei;PROC sonderwertsjundhjsetzen(TEXT VAR sj,hj):
setzesonderwert(schulj,subtext(sj,1,2)+trenner+subtext(sj,3,4));
setzesonderwert(halbj,hj);END PROC sonderwertsjundhjsetzen;PROC 
ggfvordruck21malundvordruck3xmalindruckdatei(BOOL VAR geplhj):LET aktjgst=528
,aktfach=529,aktkurs=530,aktwochstd=531,hilfsdatei="hilfsdatei";TEXT VAR fach
,jgst:=blank,kennung;IF geplhjTHEN halbjahr:=geplanteshalbjahr;schuljahr:=
geplantesschuljahr;ELSE halbjahr:=aktuelleshalbjahr;schuljahr:=
aktuellesschuljahr;FI ;inittupel(dnrlehrveranstaltungen);putwert(fnrlvparaphe
,angegebeneparaphe);putwert(fnrlvsj,schuljahr);putwert(fnrlvhj,halbjahr);
search(ixlvsjhjpar,FALSE );IF dbstatus=0AND (wert(fnrlvparaphe)=
angegebeneparaphe)AND (wert(fnrlvhj)=halbjahr)AND (wert(fnrlvsj)=schuljahr)
THEN briefalternative(dateimitvordruck2,hilfsdatei);
sonderwertesetzenundinhilfsdateischreiben;hilfsdateiindruckdatei(hilfsdatei);
FI ;.sonderwertesetzenundinhilfsdateischreiben:WHILE dbstatus=0AND (wert(
fnrlvparaphe)=angegebeneparaphe)AND (wert(fnrlvhj)=halbjahr)AND (wert(fnrlvsj
)=schuljahr)REP fach:=subtext(wert(fnrlvfachkennung),1,2);setzesonderwert(
aktfach,fach);kennung:=subtext(wert(fnrlvfachkennung),3,6);setzesonderwert(
aktkurs,kennung);jgstCAT wert(fnrlvjgst);IF length(jgst)>2THEN 
setzesonderwert(aktjgst,subtext(jgst,2,3));ELSE setzesonderwert(aktjgst,jgst)
;FI ;jgst:=blank;setzesonderwert(aktwochstd,wert(fnrlvwochenstd));
briefalternative(dateimitvordruck3,hilfsdatei);succ(ixlvsjhjpar);PER ;END 
PROC ggfvordruck21malundvordruck3xmalindruckdatei;PROC vordruck4indruckdatei(
TEXT VAR sj,hj):LET hilfsdatei="hilfsdatei";TEXT VAR aufberwert:=niltext;
BOOL VAR hilfsdateiangelegt:=FALSE ;TEXT VAR ueberschrift:="Schuljahr ";
initialisieresonderwerte;aktswklassenlehrer:=580;aktswstellvertreter:=581;
ueberschriftCAT subtext(sj,1,2)+"/"+subtext(sj,3,4);ueberschriftCAT ", "+hj+
". Halbjahr";setzesonderwert(schulj,ueberschrift);inittupel(
dnraktschuelergruppen);putwert(fnrsgrpsj,sj);putwert(fnrsgrphj,hj);search(
dnraktschuelergruppen,FALSE );WHILE dbstatus=0AND wert(fnrsgrphj)=hjREP IF 
wert(fnrsgrplehrer)=angegebeneparapheAND aktswklassenlehrer<590THEN 
aufberwert:=wert(fnrsgrpjgst);aufberwertCAT wert(fnrsgrpkennung);
setzesonderwert(aktswklassenlehrer,aufberwert);aktswklassenlehrerINCR 2;
hilfsdateiangelegt:=TRUE ;ELSE IF wert(fnrsgrpstellvlehrer)=angegebeneparaphe
AND aktswstellvertreter<591THEN aufberwert:=wert(fnrsgrpjgst);aufberwertCAT 
wert(fnrsgrpkennung);setzesonderwert(aktswstellvertreter,aufberwert);
aktswstellvertreterINCR 2;hilfsdateiangelegt:=TRUE ;FI ;FI ;succ(
dnraktschuelergruppen)PER ;IF hilfsdateiangelegtTHEN briefalternative(
dateimitvordruck4,hilfsdatei);hilfsdateiindruckdatei(hilfsdatei);FI ;END 
PROC vordruck4indruckdatei;PROC vordruck5indruckdatei(TEXT VAR sj,hj):LET 
hilfsdatei="hilfsdatei";TEXT VAR zeitwuensche,ueberschrift:="Schuljahr ";
initialisieresonderwerte;INT VAR aktswzeitwunsch:=531,position:=1,i;
ueberschriftCAT subtext(sj,1,2)+"/"+subtext(sj,3,4);ueberschriftCAT ", "+hj+
". Halbjahr";setzesonderwert(schulj,ueberschrift);inittupel(dnrzeitwuensche);
putwert(fnrzwsj,sj);putwert(fnrzwhj,hj);putwert(fnrzwbezug,"P");putwert(
fnrzwbezugsobjekt,angegebeneparaphe);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));aktswzeitwunschINCR 1;position
INCR 2PER ;briefalternative(dateimitvordruck5,hilfsdatei);
hilfsdateiindruckdatei(hilfsdatei);FI ;END PROC vordruck5indruckdatei;END 
PACKET auskunftlehrer;