TIJD ;Tijdsregestratie [ 11/06/2001 9:22 AM ] Goto EDIT EDIT New Datum,IPNr,CurTime,Input,VanTijd,TotTijd,LD,OUser If '$D(Q) Do INIT^vhTERMINA ;s sScr("VTW")=1,sRemVol="VTW,PVX" Do SELDEF Quit:'IPNr!'Datum Do INIT,COMMAND:Input'="W" If Input="W" Goto SWITCH^TIJD2 Do CLEAN Quit SWITCH Do ADD^vhScherm(1,24) Do INIT Goto COMMAND COMMAND ; Command lus For Do Quit:Input="-"!(Input=".")!(Input="W") .Do REFRESH .Set Input=$$SCROLL^vhLIST(.LD) .Set UurS=$P($G(^HULP(%J,"L",LD("SELECT"))),D) .If Input="COM" Do CALL^vhMenu("TIJD") .Do EXEC^vhMenu("TIJD",Input) .If Input="SPEC" Do CALLSPEC^vhMenu(LD("SELECT")-LD("OFFSET")+8_";70","TIJDEDIT") If Input="W" Goto SWITCH^TIJD2 If Input="-"!(Input="."),sScr("VTW") Job TIJD^SYNCCOPY(IPNr,sRemVol) Quit INIT New I,Rec,Tijd,Modif Set %J=$$%J^vhRtn1() Set Modif='$$ACTREM^SYNCTIJD(IPNr) ; Kijkt na of de remote zichtbaar isof niet Do REMOVE^vhMenu("TIJDEDIT") Do:Modif SET^vhMenu("TIJDEDIT","MOD") Do:'Modif SET^vhMenu("TIJDEDIT","REMO") Set ModIP=$P($G(^vhUSER("D",IPNr,"T")),D) Set:ModIP="VTW" ModIP="" Set Scherm="L" Set UurS="",Tijd="",TotTijd="" Set sS("MOD")="" For Set Tijd=$O(^TIJD("D",IPNr,Datum,Tijd)) Quit:Tijd="" Set TotTijd=TotTijd+($P(^(Tijd),D,2)-$P(^(Tijd),D,1)) Do INIT^vhLIST("TIJD","LIJST"_ModIP,.LD) Set LD("UPINIT")="X`S (I)=0" Set LD("UPTRAV")="X`S sRec="""" S I=$O(^TIJD(""D"",IPNr,Datum,I)) S:$L(I) sRec=^TIJD(""D"",IPNr,Datum,I)" Set LD("UPSEL")="@`$S(I=UurS:1,1:0)" Do ADD^vhScherm(1,24) Quit CBLIST(sSelect,sRec) If ModIP="SOF" Do Quit "S" .New Prev,Next .Set Prev=sSelect-1,sFL("P")=$S(Prev:@sFetch@(Prev),1:"\9999999") .Set Next=sSelect+1,sFL("N")=$S(Next'>L("MAX"):@sFetch@(Next),1:"999999\") Quit "V" DELOBJ(IPNr,Datum) Kill ^TIJD("D",IPNr,Datum) Quit CLEAN Kill ^HULP(%J) Quit REFRESH ;Volledig scherm opbow Quit:sRT>sRB Write @F11,@F1 Do DISPLAY^vhScherm("TIJDHFD",1,5) Kill ^HULP(%J,"L") Set LijnNr=0 Do UPDATE^vhLIST(.LD,0) Do WRITE^vhLIST(.LD) Do RESET^vhScherm Quit ORDER(Dir) Set NewDat=$$CALCDATE^vhDTyp(Datum,"A",Dir) Set Input="H" Set Datum=NewDat Do INIT,ADD^vhScherm(1,24),REFRESH Quit SELDEF Set OUser=$$USELECT^vhUSER("","Gebruiker",$$IO^cQ5,"","","","","","",0) Set:OUser[";" OUser=$$USELECT^vhUSER("","Gebruiker",$$IO^cQ5,"","","","","","","C;C") Set IPNr=$S('OUser:"",$L($P($G(^vhUSER("D",OUser,"T")),D)):OUser,1:$$PROXY("C","C")) Set Datum=+$H If IPNr Do .Set Datum=$O(^TIJD("D",IPNr,""),-1)+1 .Set:Datum<($H-100) Datum=$H .Set Datum=$$CALCDATE^vhDTyp(Datum,"A","+0") ; Arbeidsdag .Set:Datum>+$H Datum=+$H .Set Input="" Set:$P($G(^vhUSER("D",OUser,"T")),D)'="SOF" Input="W" Quit HOOFDING(Mode) ; Oproep van de hoofding als NIEUW of als WIJZIG Set Input="H" Do EDIT^vhScherm("TIJDHFD") Set Datum=+Datum Quit:'%SC Do INIT,REFRESH Quit PROXY(Top,Left) New CUser Set CUser=$$USELECT^vhUSER(OUser,"Volmacht","","","","","","","",1_";"_Top_";"_Left,"","T") Quit CUser RECENT ; Nieuwe faktuurlijn dmv. van selectie uit de recenste ingaves. New sFL,Cnt,Tijd,Dat,Y,X,Index,Mode Set Cnt=0 Set Max=20 Set X="" Set Tijd="",Dag="" ; Ophalen van de recenste ingaves in ^TIJD Set Dag=Datum Do Set Dag="" For Set Dag=$O(^TIJD("D",IPNr,Dag),-1) Quit:Dag=""!(Cnt>Max) Do:Dag'=Datum .For Set Tijd=$O(^TIJD("D",IPNr,Dag,Tijd),-1) Quit:Tijd=""!(Cnt>Max) Do ..Quit:$D(Index($E($P(^TIJD("D",IPNr,Dag,Tijd),D,3,5),1,60))) ..Set Cnt=Cnt+1 ..Set Index($E($P(^TIJD("D",IPNr,Dag,Tijd),D,3,5),1,60))="" ..Set sFL(1)=^TIJD("D",IPNr,Dag,Tijd) ..Set:$P(sFL(1),D,3,99)=$G(Recent) X=Cnt ..Set Y(Cnt)=Cnt_"`"_$E($$LIJN^vhFMT($NA(LD("FMT","L")),0),13,80)_"`"_$P(sFL(1),D,3,99) Set X=$$WILD^vhPOPUP("C;C","KOB1-","Recente tijdingaves",.Y,X) Quit:'X Set Recent=$P(Y(X),"`",3) Set sFL(1)="",$P(sFL(1),D,3,99)=$P(Y(X),"`",3) Set Mode="R" Goto LNIEUW2 Quit RPLKL ; Raadplegen klaten New Rec Set Rec=$$LFETCH() Set CurTime=$P(Rec,D) Quit:'CurTime Quit:$E($P(Rec,D,3))'="K" ; Geen Klant Set Rec=$$RAADPL^KLANT($P($P(Rec,D,3),";",2),"",1) Do ADD^vhScherm(1,24) Quit VERSLAG ; Ingave van een nieuw verslag vertrekkend vanuit tijdsregistratie New Rec,Motiv Set Rec=$$LFETCH() Set CurTime=$P(Rec,D) Quit:'CurTime Quit:$P(Rec,D,3)="" ; Betreft = Leeg (ZONDER) If $P(Rec,D,9),$D(^VERSLAG("D",$P(Rec,D,9))) Do ; Verslag reeds ingegeven .Set Rec=$$RAADPL^VERSLAG($P(Rec,D,9),"W") Else Do ; Nieuw .Set Motiv(1)=$P(^POP("TIJDMOTIV","D",$P(Rec,D,4)),D,2) .Set:$L($P(Rec,D,5)) Motiv(2)=$P(Rec,D,5) .Set Verslag=$$EXTERN^VERSLAG(Datum,$P(Rec,D,1),$P(Rec,D,2),$P(Rec,D,3),"OD",IPNr,.Motiv) .Set $P(^TIJD("D",IPNr,Datum,CurTime),D,9)=Verslag Quit LNIEUW ; Nieuwe faktuurlijn toevoegen aan de lijst New sFL LNIEUW2 Lock +^TIJD("D",IPNr,Datum):1 Else Do LDISP^vhLock($NA(^TIJD("D",IPNr,Datum)),"AGENDA") Quit Set CurTime=$O(^TIJD("D",IPNr,Datum,""),-1) If CurTime Set CurTime=$P(^TIJD("D",IPNr,Datum,CurTime),D,2) Set:'CurTime CurTime=8*60*60 Set $P(sFL(1),D,1)=CurTime Do NIEUW^vhScherm("TIJDDTL"_ModIP,"","","","","",3) Do:%SC LSTORE(sFL(1),"") Lock -^TIJD("D",IPNr,Datum) Quit:'%SC Do UPDATE Quit LFETCH() Quit $G(^TIJD("D",IPNr,Datum,$S(UurS:UurS,1:"*"))) LWIJZIG ; Wijzigen van een faktuurlijn New sFL,Old Set (Old,sFL(1))=$$LFETCH() Set CurTime=$P(Old,D) Quit:'CurTime Lock +^TIJD("D",IPNr,Datum):1 Else Do LDISP^vhLock($NA(^TIJD("D",IPNr,Datum)),"AGENDA") Quit Do EDIT^vhScherm("TIJDDTL"_ModIP,"","","","","",3) Do:%SC LSTORE(sFL(1),Old) Lock -^TIJD("D",IPNr,Datum) Quit:'%SC Do UPDATE Quit LDELETE ; Verwijderen van 1 faktuurlijn New Old,Key Set Old=$$LFETCH() Set CurTime=$P(Old,D) Quit:'CurTime IF $P(Old,D,6) Do Quit:Key="" .Set Key=$$^vhTXTPOP("TIJD","DELMULTI") .Quit:"S"[Key .Do LREMOVE($S("GV"[Key:"",1:$H),$S("GT"[Key:"",1:$H),$P(Old,D,6)) .Set Key="" Lock +^TIJD("D",IPNr,Datum):1 Else Do LDISP^vhLock($NA(^TIJD("D",IPNr,Datum)),"AGENDA") Quit Do LSTORE("",Old) Lock -^TIJD("D",IPNr,Datum) Set CurTime=$O(^TIJD("D",IPNr,Datum,CurTime)) Set:'CurTime CurTime=$O(^TIJD("D",IPNr,Datum,""),-1) Do UPDATE Quit LDELALL New Key,Van,Tot Set Key=$$^vhTXTPOP("TIJD","DELALL") If Key="VT" Do Quit .Do NIEUW^vhScherm("TIJDVT","","","","","",3) Quit:'%SC .Do LREMOVE(Van,Tot) Do:"GVT"[Key LREMOVE($S("GV"[Key:"",1:$H+1),$S("GT"[Key:"",1:$H-1)) Do:"S"[Key LREMOVE(Datum,Datum) Quit LREMOVE(Van,Tot,Key) New Dat,Tijd Set Tijd=$$^vhTXTPOP("TIJD","DELCHECK",0,+Van,+Tot) Quit:'Tijd Lock +^TIJD("D",IPNr):1 Else Do LDISP^vhLock($NA(^TIJD("D",IPNr)),"AGENDA") Quit Set Dat=Van-1 Set:'Tot Tot=999999 Set Tijd="" ;Do LSTORE("",Old) For Set Dat=$O(^TIJD("D",IPNr,Dat)) Quit:Dat=""!(Dat>Tot) Do .If '$G(Key) Kill ^TIJD("D",IPNr,Dat) .Else For Set Tijd=$O(^TIJD("D",IPNr,Dat,Tijd)) Quit:Tijd="" Do ..Kill:$P(^(Tijd),D,6)=Key ^TIJD("D",IPNr,Dat,Tijd) .If Scherm="P",$D(Dag(Dat)) Do DAG^TIJD2(Dat) Lock -^TIJD("D",IPNr) Do:Scherm="L" INIT,REFRESH Do:Scherm="P" SELECT^TIJD2 Quit LKOPIE ; Op het prikbord plaatsen van 1 tijdingave New Rec Set Rec=$$LFETCH() Quit:'$P(Rec,D) Kill sS("C") Set sS("C")="TIJD" Merge sS("C",1)=Rec Quit LPLAK ; Invoegen van 1 tijdsingave van het prikbord in de lijst New sFL,Mode Quit:sS("C")'="TIJD" Set sFL(1)=sS("C",1) If $D(^TIJD("D",IPNr,Datum,$P(sFL(1),D))) Do .Set Mode="R" .Set $P(sFL(1),D,1,2)=D .Goto LNIEUW2 Else Do LSTORE(sFL(1),""),UPDATE Quit LMULTI ; Dupliceren van geselekteerde item New Rec,Delta,Dat,Move,TotDatum,Key,Cnt,CurTime Set Rec=$$LFETCH() Set Key=$G(^TIJD("NK"))+1,^TIJD("NK")=Key Set CurTime=$P(Rec,D,1) Set $P(Rec,D,6)=Key Set Move=1,TotDatum=$$CALCDATE^vhDTyp(Datum,"M",3,"LD") Set Delta="2WD" Do NIEUW^vhScherm("TIJDMULTI","","","","","",3) Quit:'%SC Lock +^TIJD("D",IPNr):1 Else Do LDISP^vhLock($NA(^TIJD("D",IPNr)),"AGENDA") Quit Set Dat=Datum Set Cnt=0 For Do Quit:Dat>TotDatum .Set Cnt=Cnt+1 .Set:Delta?1.N1"D"!(Delta?1.N) Dat=Dat+Delta .Set:Delta?1.N1"WD" Dat=$$CALCDATE^vhDTyp(Dat,"A",+Delta) .Set:Delta?1.N1"W" Dat=Dat+(7*Delta) .Set:Delta?1.N1"M" Dat=$$CALCDATE^vhDTyp(Dat,"M",+Delta) .Set:Move=1 Dat=$$CALCDATE^vhDTyp(Dat,"A",+0) .If Move=2,Dat'=$$CALCDATE^vhDTyp(Dat,"A",+0) Quit ; Skip indien geen werkdag .Quit:Dat>TotDatum .If '$D(^TIJD("D",IPNr,Dat,CurTime)) Set Datum=Dat Do LSTORE(Rec,"") .If Scherm="P",$D(Dag(Dat)) Do DAG^TIJD2(Dat) .;Correctie op bep. dag van de maand/week, vermits deze kan verschoven worden door de NIET-werkdagen .If Delta?1.N1"M",$$EXTDATE^vhDTyp(Datum,"DMN")'=$$EXTDATE^vhDTyp(Dat,"DMN") Set Dat=$$INTDATE^vhDTyp($$EXTDATE^vhDTyp(Datum,"DMN")_"."_$P($$EXTDATE^vhDTyp(Dat,"DKP"),".",2,3),"DK") .If Delta?1.N1"W",$$EXTDATE^vhDTyp(Datum,"DWN")'=$$EXTDATE^vhDTyp(Dat,"DWN") Set Dat=Dat+$$EXTDATE^vhDTyp(Datum,"DWN")-$$EXTDATE^vhDTyp(Dat,"DWN") Lock -^TIJD("D",IPNr) Quit:'Cnt Set $P(^TIJD("D",IPNr,Datum,CurTime),D,6)=Key Set Rec(1)=Cnt_" herhaling(en) gekreëerd" Set Rec=$$WILD^vhTXTPOP("","Herhaling","Rec") Do:Scherm="P" SELECT^TIJD2 Quit UPDATE If Scherm="L" Do .Do UPDATE^vhLIST(.LD,1) .Do DISPLAY^vhScherm("TIJDHFD","","","","TOTTIJD") .If LD("SELECT")-1 Do LINE^vhLIST(.LD,LD("SELECT")-1) .If LD("SELECT")+1'>LD("MAX") Do LINE^vhLIST(.LD,LD("SELECT")+1) Else Do .Do DAG^TIJD2(Datum) .Do SELECT^TIJD2 Quit LSTORE(New,Old) New CurTime Set sS("MOD")=1 Set CurTime=$P(Old,D,1) If CurTime Do .Kill ^TIJD("D",IPNr,Datum,CurTime) .Set TotTijd=TotTijd-($P(Old,D,2)-$P(Old,D,1)) .If sScr("VTW") Do ..Do TIJDDEL^SYNCTIJD(IPNr,Datum,CurTime) Set (UurS,CurTime)=$P(New,D,1) If CurTime Do .Set:$P(New,D,10)="" $P(New,D,10)=sIdVol .Set ^TIJD("D",IPNr,Datum,CurTime)=New .Set TotTijd=TotTijd+($P(New,D,2)-$P(New,D,1)) .If sScr("VTW") Do ..Do TIJDNEW^SYNCTIJD(IPNr,Datum,CurTime,New) Quit