summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.anschr.unterrichtsvertlg fuer lehrer
blob: 9c695d806286196bcbb895859213d8a4b055cc51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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