VERLOF ;Verlofplanning [ 02/22/2002 2:14 PM ] ; Write @F11,@F1,@FMTI,"Verlofplanning - ",QN,@FMTi Do INIT If Jaar,$$LOCK(Jaar) Do COMMAND,SAVE Write @FS80 Do REMOVE^vhLock("^KBA(""VP"",Jaar)") Kill HULP Quit ; COMMAND For Do Quit:Input="CANC" .Do REFRESH .Do SL^PROC .If R'="COM" Set Input=R .Else Set Input="" Do CALL^vhMenu("VERLOF") .Do EXEC^vhMenu("VERLOF",.Input) .If Input="CANC",$$CheckModified(.VPOld,.VP) Do ..New Save ..Set Save=$$^vhTXTPOP("FILE","SAVE") ..If Save="" Set Input="" Quit ..If Save="N" Kill VP Merge VP=VPOld Quit ; MODIFY If $$ASK^vhWACHTW("PROGMODE",,,300) Do .If Scherm Set Scherm=0 Do ADD^vhScherm(3,24),REFRESH .New Maand,DL,Input,Wijzig,Modify,VPOld .Merge VPOld=VP .Set Modify=1 .Set Maand=$$ASKL^vhINP("VERLOF","MAAND") Quit:Maand="-" .Do VALDATE^vhLib.DataTypes("15."_$E(Maand,1,3)_"."_Jaar) Goto MODIFY:'%TC .Set Maand=$$EXTDATE^vhLib.DataTypes(%INT,"MN") .Set Wijzig(1)="HULP(" .Set Wijzig(2)="" .If +Maand=1 Set I=0 .Else For I=1:1:Maand-1 Set Wijzig(2)=Wijzig(2)_""""";C;L;10;;|"_D .Set I=I+1 .Set Wijzig(2)=Wijzig(2)_I_";C;L;4;;;Bold;$$FETCH^VERLOF(X,"_I_")\"_I_";N;R;3;;;Bold;\VtWn;C;R;3;;" .Set:I<12 Wijzig(2)=Wijzig(2)_"|" Set Wijzig(2)=Wijzig(2)_";Bold D KNIP^VERLOF;\" .For I=Maand+1:1:12 Set Wijzig(2)=Wijzig(2)_""""";C;L;10;;" Set:I<12 Wijzig(2)=Wijzig(2)_"|" Set Wijzig(2)=Wijzig(2)_D .Set Wijzig(3)=3 .Set Wijzig(5)=131 .Set Wijzig(6)=1 .Set Wijzig(7)=1 .Set Wijzig(8)="" .For I=1:1:12 Do ..Set R=$P($T(TMaand),U,I+1) ..Set Wijzig(8)=Wijzig(8)_R_$J("",10-$L(R)) ..Set:I<12 Wijzig(8)=Wijzig(8)_"|" .Set DL(1)="Wijzig" .Do ADD^vhScherm(3,24),COMMAND .Do ADD^vhScherm(3,24) Else Do ADD^vhScherm(20,24) Quit ; ; Is de tabel gewijzigd? CheckModified(VPOld,VP) New Modified,Dag Set (Modified,Dag)="" For Set Dag=$O(VPOld(Dag)) Quit:Dag="" Set Modified=VPOld(Dag)'=$G(VP(Dag)) Quit:Modified If 'Modified For Set Dag=$O(VP(Dag)) Quit:Dag="" Set Modified=VP(Dag)'=$G(VPOld(Dag)) Quit:Modified Quit Modified ; MARK(Kode) New zb,Dag,Firma If "CFVUX"'[Kode Quit Set Dag=$P(HULP(Wijzig(6)),D,Maand) Quit:'Dag Set Dag=$$INTDATE^vhLib.DataTypes(Dag_"."_Maand_"."_Jaar) Quit:"#Zat#Zon#"[("#"_$E($$EXTDATE^vhLib.DataTypes(Dag,"DC"),1,3)_"#") If Kode'="X" Do Quit:zb="CANC" .Set Firma=$P($G(VP(Dag)),D,2) Set:Firma="" Firma="N;B;H" .Set Firma=$$PI^vhPOPUP("C;C","-1OM",$P(^RES("VERLOF","PI","TYPE","D",$S(Kode="U":$P(VP(Dag),D),1:Kode)),"`",2)_" "_$$EXTDATE^vhLib.DataTypes(Dag),"VERLOF","FIRMA",Firma) Set:Firma="NV;BV;HA" Firma="" If Kode="X" Quit:'$D(VP(Dag)) Kill VP(Dag) Else If Kode="U" Set $P(VP(Dag),D,2)=Firma Do EL^PROC Quit Else If $G(VP(Dag))=Kode_D_Firma Quit Else Set VP(Dag)=Kode_D_Firma If Wijzig(6)=Wijzig(9) Do EL^PROC Quit Set DL(2)="DO" Do ML^PROC Quit ; REFRESH If sRT=1 Write @FS132,@F11,@F1,@FMTI,"Verlofplanning ",Jaar,$S(Scherm:" (firmauitzonderingen)",1:"")," - ",QN,@FMTi If sRB>1 Set DL(2)=sRT,DL(3)=sRB Do WL^PROC Do RESET^vhScherm Quit ; INIT Set Scherm=0 Set Jaar=$$ASKL^vhINP("VERLOF","JAAR") Quit:Jaar="-" Set:Jaar="" Jaar=DJ Do VALDATE^vhLib.DataTypes("01.01."_Jaar,"DK") Goto INIT:'%TC Set Jaar=$$EXTDATE^vhLib.DataTypes(%INT,"J4") Set FirstDay=$$INTDATE^vhLib.DataTypes("01.01."_Jaar),LastDay=$$INTDATE^vhLib.DataTypes("31.12."_Jaar) Set X=FirstDay-1 For Set X=$O(^KBA("VP",X)) Quit:X=""!(X>LastDay) Set VP(X)=^KBA("VP",X),$P(VP(X),D,2)=$P(VP(X),D,2) Merge VPOld=VP Set Kalender(1)="HULP(" Set Kalender(2)="" For I=1:1:12 Set Kalender(2)=Kalender(2)_$P($T(@("T"_I)),U,2,999) Set Kalender(3)=3 Set Kalender(5)=131 Set Kalender(6)=0 Set Kalender(7)=1 Set Kalender(8)="" Set Kalender(11)="Verlofplanning "_Jaar For I=1:1:12 Do .Set R=$P($T(TMaand),U,I+1) .Set Kalender(8)=Kalender(8)_R_$J("",10-$L(R)) .Set:I<12 Kalender(8)=Kalender(8)_"|" Set DL(1)="Kalender" Kill HULP Set MaxDagen="" For Maand=1:1:12 Do .Set MaxDagen=MaxDagen_+$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes("01."_Maand_"."_Jaar),"M","LD")) .Set:Maand<12 MaxDagen=MaxDagen_D For Count=1:1 Do Quit:$TR(R,D,"")="" .Set R="" .For I=1:1:12 Set R=R_$S(Count>$P(MaxDagen,D,I):"",1:Count) Set:I<12 R=R_D .Quit:$TR(R,D,"")="" .Set HULP(Count)=R Do ADD^vhScherm(1,24) Quit ; SAVE Set X=FirstDay-1 For Set X=$O(^KBA("VP",X)) Quit:X=""!(X>LastDay) Kill ^KBA("VP",X) Set X="" For Set X=$O(VP(X)) Quit:X="" Set ^KBA("VP",X)=VP(X) Quit ; FETCH(Value,Maand) If Value="" Set (VtWn,Bold,Dag)="" Quit "" Kill VtWn Set UitzFirma=0 Set (R,Dag)=$E($S(Value="":"",1:$$EXTDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes(Value_"."_Maand_"."_Jaar),"DC")),1,3) Set Bold=$$BOLD(Dag,Value,Maand,Jaar) If '$D(VtWn) Set VtWn=$$WEEK(Dag,Value,Maand,Jaar) Quit R ; BOLD(DagChar,Dag,Maand,Jaar) New R If "#Zat#Zon#"[("#"_DagChar_"#") Quit 1 Set R=$$INTDATE^vhLib.DataTypes(Dag_"."_Maand_"."_Jaar) If $D(VP(R)) Do Quit 1 .Set VtWn=$P(VP(R),D,Scherm+1) Set:Scherm=1 VtWn=$TR(VtWn,"VA;","") .If Scherm=0,$L($P(VP(R),D,2)) Set UitzFirma=1 Quit 0 ; WEEK(DagChar,Dag,Maand,Jaar) If DagChar'="Zat" Quit "" Quit $$EXTDATE^vhLib.DataTypes($$INTDATE^vhLib.DataTypes(Dag_"."_Maand_"."_Jaar),"W") ; KNIP If Bold,VtWn'?.N Do .Write:'$D(Print) @FMTK .Write @FMTB," ",$TR(R," ",""),$S(Scherm=0:$S(UitzFirma:"*",1:" "),1:$S($L($TR(R," ",""))>1:"",1:" ")) .Write:'$D(Print) @FMTk .Write @FMTb S FormattedLine=FormattedLine_R,R="" If @DL(1)@(6) Write @FMTB Quit ; LOCK(Jaar) New %TC,IK Do ADD^vhLock("^KBA(""VP"",Jaar)") If '%TC Do .Do LDISP^vhLock("^KBA(""VP"",Jaar)","Verlofplanning "_Jaar) Quit %TC ; PRINT New Print Kill ^HULP($J) Set Kalender(1)="^HULP("_$J For I=0:1:100 I $D(HULP(I)) s ^HULP($J,I)=HULP(I) Do ^OUTPUT("P","","B","BR;BL") Set Kalender(1)="HULP(" Kill ^HULP($J) Do ADD^vhScherm(21,24) Quit ; ; Bevat de verlofkalender uitzonderingen op firmaniveau BevatUitzFirma() New UitzFirma,Dag Set (UitzFirma,Dag)=0 For Set Dag=$O(VP(Dag)) Quit:Dag="" Set UitzFirma=''$L($P(VP(Dag),D,2)) Quit:UitzFirma Quit UitzFirma ; T1 ;1;C;L;4;;;Bold;$$FETCH^VERLOF(X,1)\1;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T2 ;2;C;L;4;;;Bold;$$FETCH^VERLOF(X,2)\2;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T3 ;3;C;L;4;;;Bold;$$FETCH^VERLOF(X,3)\3;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T4 ;4;C;L;4;;;Bold;$$FETCH^VERLOF(X,4)\4;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T5 ;5;C;L;4;;;Bold;$$FETCH^VERLOF(X,5)\5;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T6 ;6;C;L;4;;;Bold;$$FETCH^VERLOF(X,6)\6;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T7 ;7;C;L;4;;;Bold;$$FETCH^VERLOF(X,7)\7;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T8 ;8;C;L;4;;;Bold;$$FETCH^VERLOF(X,8)\8;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T9 ;9;C;L;4;;;Bold;$$FETCH^VERLOF(X,9)\9;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T10 ;10;C;L;4;;;Bold;$$FETCH^VERLOF(X,10)\10;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T11 ;11;C;L;4;;;Bold;$$FETCH^VERLOF(X,11)\11;N;R;3;;;Bold;\VtWn;C;R;3;;|;Bold D KNIP^VERLOF;\ T12 ;12;C;L;4;;;Bold;$$FETCH^VERLOF(X,12)\12;N;R;3;;;Bold;\VtWn;C;R;3;;;Bold D KNIP^VERLOF;\ ; TMaand ;Januari;Februari;Maart;April;Mei;Juni;Juli;Augustus;September;Oktober;November;December ;