vhMAIL5 ;Mail [ 10/16/2001 4:09 PM ] ; LATER(MailId,UserId) New %SC,Date,Time,Onderw,BetrTyp,Betreft,FLater,XLater Set MailId=$G(MailId),UserId=$G(UserId),(FLater,XLater)="" If MailId Set R=$G(^vhMAIL("D",MailId,"S")),FLater=$P(R,D),XLater=$P(R,D,2) If $L(FLater) Xecute "Set R=$$"_FLater_"(MailId,UserId)" Quit R Set R=$S('MailId:"",1:^vhMAIL("D",MailId)),Onderw=$P(R,D,4),BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) Set R=$S('UserId:"",1:^vhMAIL("D",MailId,"N",UserId)),Date=$P($P(R,D,5),","),Time=$P($P(R,D,5),",",2) Do STORE^vhTERMINA() If '$L(Date),'$L(Time) Do .Set Date=+$H,Time=$P($H,",",2)+60 .Do NIEUW^vhScherm("MAILS") Else Do EDIT^vhScherm("MAILS") Set R=$P($S('UserId:"",1:^vhMAIL("D",MailId,"N",UserId)),D,5) If $L(XLater),$L(R)!%SC Do . New R . Xecute XLater Do REFRESH^vhTERMINA() Quit $S(%SC:Date_","_Time,$L(R):R,1:"") ; ; Verzenden van een nieuwe mail LNIEUW New I,R,MailId,Type,LineTyp,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,Tekst,Refer,TUserId,Later New PopRead,Param,DeadLine,ArchTyp If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit Set (Type,Urgentie,Onderw,BetrTyp,Betreft,Tekst,Refer,Param,DeadLine)="" Set (TUserId,TUserId("CC"),TUserId("EM"),TUserId("RP"))="" Set Respons="G",LineTyp="N" Do NIEUW^vhScherm("MAILD") Set:$G(PopRead) %SC=$$EDIT(%SC) If '%SC Do CLEAN Quit Set Later=$G(Later) If Urgentie="F" Set MailTyp="A",(TUserId,TUserId("CC"),TUserId("EM"),TUserId("RP"))="" Else Set MailTyp="V" New:Type'="T" ArchTyp Do GETHULP(.Tekst) Set:Type="T" $P(Param,D)=DeadLine_D_TUserId("RP") Set R=$$SAVE("",.Tekst,.Refer,CUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"",Later,$G(ArchTyp),Param) If Urgentie'["U" Set TUserId=$$OVUSER^vhUSER(CUserId,TUserId) If $L(TUserId),'$L(Later) Do MESSAGE^vhMAIL3(CUserId,TUserId) Do ADD^vhScherm(1,24) Do MAILLIST^vhMAIL(MailTyp),FMAIL^vhMAIL(CUserId,MailTyp) Quit ; ; Wijzigen van een verzonden mail LWIJZIG(MailId,Check) New I,R,Type,LineTyp,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,Tekst,Refer New TUserId,RUserId,Later,ArchTyp,FUserId,Buttons,Modify,ReplyId,PopRead,Param,DeadLine Quit:'MailId If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit If MailTyp="O" Do If $L(ArchTyp),$D(^vhMAIL("IF",CUserId,ArchTyp,MailId)) New MailTyp Set MailTyp="A" .Set R=^vhMAIL("D",MailId),ArchTyp=$P($P(R,D,11),";") If MailTyp="A" Set R=^vhMAIL("D",MailId) If $P($P(R,D,11),";")'="Te doen" Quit:$P(R,D,6)'=CUserId Quit:'$$MLOCK^vhMAIL(MailId) Set R=^vhMAIL("D",MailId),Type=$P(R,D),FUserId=$P(R,D,6) If Type="V" Do Quit .Set Modify(1)="Deze mail kan niet gewijzigd worden. ªBVerslag!!!ªb" .Set Modify=$$WILD^vhTXTPOP("","","Modify") Set Modify="W" If $G(Check) Do .Set RUserId=$$RUSERID^vhMAIL(MailId,CUserId) .If $L(RUserId) Do ..Set Buttons="Buttons" ..Set Buttons(1)="Wijzigen&W",Buttons(2)="Annuleer&A*" ..Set Modify(1)="Deze mail werd reeds gelezen door : "_$$TUSER^vhMAIL(RUserId) ..Set Modify=$$WILD^vhTXTPOP("","","Modify",Buttons) If $G(Modify)="W" Do .Set R=^vhMAIL("D",MailId) .Set Type=$P(R,D),Urgentie=$P(R,D,2),Respons=$P(R,D,3),Onderw=$P(R,D,4) .Set Kreatie=$P(R,D,5),BetrTyp=$P(R,D,7),Betreft=$P(R,D,8),ReplyId=$P(R,D,9) Set:Type="T" ArchTyp=$P($P(R,D,11),";") .Set LineTyp="W",(Refer,DeadLine)="" .Set Param=$G(^vhMAIL("D",MailId,"P")) Set:Type="T" DeadLine=$P(Param,D),TUserId("RP")=$P(Param,D,2) .For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"T",I)) Set Tekst(I)=^vhMAIL("D",MailId,"T",I) .For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"R",I)) Set Refer(I)=^vhMAIL("D",MailId,"R",I),Refer=1 .Set I=$O(^vhMAIL("D",MailId,"N","")) If I Set R=^vhMAIL("D",MailId,"N",I) If $P(R,D,3)="S" Set Later=$P(R,D,5) .Do PUTHULP(.Tekst) .Set TUserId=$$TUSERID^vhMAIL(MailId),TUserId("CC")=$$TUSERID^vhMAIL(MailId,"","",1) .Set TUserId("EM")=$$TUSERID^vhMAIL(MailId,"","",2) .Do EDIT^vhScherm("MAILD") Set:$G(PopRead) %SC=$$EDIT(%SC) .If %SC Do ..Do DELOBJ(MailId) ..Do GETHULP(.Tekst) ..Set:Type="T" $P(Param,D)=DeadLine_D_TUserId("RP") ..Set R=$$SAVE(MailId,.Tekst,.Refer,FUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,ReplyId,$G(Later),$G(ArchTyp),Param) .Else Do CLEAN Do MUNLOCK^vhMAIL(MailId) Quit ; ; Lezen van een ontvangen mail LREAD(MailId,Input,NoRefr) New I,R,Mail,Buttons,Type,Urgentie,Respons,TUserId,Device,System,Read,ReplyId,Refresh,Later,MaxDiff,CircMail New DeadLine Quit:'MailId If '$D(^vhMAIL("D",MailId)) Do WARN^vhTXTPOP("Mail "_MailId_" werd verwijderd.","") Quit Set R=^vhMAIL("D",MailId),Type=$P(R,D),Urgentie=$P(R,D,2),Respons=$P(R,D,3),ReplyId=$P(R,D,9),CircMail=Urgentie["C" If '$D(^vhMAIL("D",MailId,"N",CUserId)) Do Quit . New UserId . Set UserId=$O(^vhMAIL("D",MailId,"N","")) . Quit:$O(^vhMAIL("D",MailId,"N",UserId)) . Set R=$$^vhTXTPOP("MAIL","CIRCMAIL","",$$USERNAME^vhUSER(UserId)) ; Circulaire mail verwerkt door ... Quit:'$$MLOCK^vhMAIL(MailId,$S(CircMail:"",1:CUserId)) ; Bij circulaire mail de volledige MailId locken Set Input=$G(Input),Refresh=0 Set Read=$S(MailTyp="A":1,1:"S"'[$P(^vhMAIL("D",MailId,"N",CUserId),D,3)),Buttons=";" If Read Set Buttons=Buttons_"O;" Else Do .If $G(Proxy),'$$MODPROXY(OUserId,CUserId,1) Set Buttons=Buttons_"A;" Quit .If $P(^vhMAIL("D",MailId,"N",CUserId),D,4)="C" Set Buttons=Buttons_"O;" .Else Set Buttons=Buttons_$S($E(Respons)="V":"R*",1:"O")_";" Set:$E(Respons)="R" Buttons=Buttons_"R*;" .Set Buttons=Buttons_"A*;S;" .If Type="T" Set Buttons=Buttons_"T;" If Type="T",Urgentie="F",'$P(^vhMAIL("D",MailId,"N",CUserId),D,2) Set Buttons=Buttons_"RA;" For Do Quit:Mail'="S" Set Later=$$LATER(MailId,CUserId) Quit:$L(Later) .Set Mail="R" Set:Input'="LB" Mail=$$POPREAD^vhMAIL4(MailId,Buttons) If '$D(^vhMAIL("D",MailId)) Do MUNLOCK^vhMAIL(MailId,$S(CircMail:"",1:CUserId)) Quit If 'Read Do .If Mail="A"!(Mail="S") Do MOVE^vhLIST(.MAIL,"DO",1) .If Mail'="A",Mail'="S" Do ..Kill ^vhMAIL("IN",CUserId,MailId) ..Set ^vhMAIL("IR",CUserId,MailId)="",Refresh=1 ..Do:CircMail CIRCMAIL(MailId) .Set R=^vhMAIL("D",MailId,"N",CUserId) If Mail'="A",Mail'="S" Set $P(R,D)=$H,$P(R,D,5)="" .If Mail="A" Do ..Set MaxDiff=$$MAXDIFF^vhMAIL3(CUserId,Urgentie) ..Set $P(R,D,5)=$S($$DIFFTIME^vhLib.DataTypes($P(R,D,5),$H)>0:$$CALCTIME^vhLib.DataTypes($H,"S",MaxDiff),1:$P(R,D,5)) .If Mail="S" Set $P(R,D,5)=Later .Set $P(R,D,3)=$S(Mail="A":"",Mail="S":"",1:"G"),^vhMAIL("D",MailId,"N",CUserId)=R .Do KILLMESS^vhMAIL3(MailId) If Read Do If Mail'="R",Mail'="RA" Do MUNLOCK^vhMAIL(MailId,$S(CircMail:"",1:CUserId)) Quit .Quit:'$D(^vhMAIL("D",MailId,"N",CUserId)) .Set R=^vhMAIL("D",MailId,"N",CUserId) .If "S"[$P(R,D,3) Do ..Set $P(R,D)=$H,$P(R,D,3)="G",$P(R,D,5)="",^vhMAIL("D",MailId,"N",CUserId)=R ..Do KILLMESS^vhMAIL3(MailId) .Quit:Input'="LB" .Set ReplyId=$P(^vhMAIL("D",MailId,"N",CUserId),D,2) Quit:'ReplyId .Set R=$G(^vhMAIL("D",ReplyId)) Quit:R="" .Kill Mail,Buttons .Set Buttons="Buttons" .Set Buttons(1)="Beantwoorden&R",Buttons(2)="Annuleer&A" .Set Mail(1)="Deze mail werd laatst door u beantwoord op "_$$EXTDATE^vhLib.DataTypes($P(R,D,5))_" om "_$$EXTTIME^vhLib.DataTypes($P(R,D,5)) .Set Mail=$$WILD^vhTXTPOP("","","Mail",Buttons) If Mail="RA" Do STORE^vhTERMINA(),LRESPONS(MailId,Read,1),REFRESH^vhTERMINA() If Mail="R" Do STORE^vhTERMINA(),LRESPONS(MailId,Read),REFRESH^vhTERMINA() If Mail="T" Do LARCHIEF(MailId,MailTyp,"Te doen",1) If Refresh,'$G(NoRefr) Do:$O(^vhMAIL("IN",CUserId,MailId))="" MAILLIST^vhMAIL(MailTyp) Do FMAIL^vhMAIL(CUserId,MailTyp) Do MUNLOCK^vhMAIL(MailId,$S(CircMail:"",1:CUserId)) Quit ; ; Lezen van een mail ongedaan maken LNOREAD(MailId) New R,MaxDiff,Urgentie Quit:'MailId Quit:'$$MLOCK^vhMAIL(MailId,CUserId) If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Do MUNLOCK^vhMAIL(MailId,CUserId) Quit Set R=^vhMAIL("D",MailId),Urgentie=$P(R,D,2) Set R=^vhMAIL("D",MailId,"N",CUserId),R=$S($P(R,D,4)="C":"\\\C\",1:"") Set MaxDiff=$$MAXDIFF^vhMAIL3(CUserId,Urgentie),$P(R,D,5)=$$CALCTIME^vhLib.DataTypes($H,"S",MaxDiff) Set ^vhMAIL("D",MailId,"N",CUserId)=R,^vhMAIL("IN",CUserId,MailId)="" Kill ^vhMAIL("IR",CUserId,MailId) Do MAILTYP^vhMAIL(CUserId,MailTyp) For R=1:1 Quit:'$D(^HULP(%J,R)) If ^HULP(%J,R)=MailId Set MAIL("SELECT")=R Quit Do MUNLOCK^vhMAIL(MailId,CUserId) Quit ; ; Antwoord op een verzonden mail LRESPONS(MailId,Read,Auto) New I,R,Type,LineTyp,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,Tekst,Refer,TUserId,Antwoord,ReplyId,Later New PopRead,DeadLine,Param,ToDo Quit:'MailId If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit Set ReplyId=MailId,Read=$G(Read),Auto=$G(Auto),R=^vhMAIL("D",MailId) Set Antwoord=$S(Read:"",1:$P(R,D,3)),Onderw="Antwoord : "_$P(R,D,4) Set Type=$P(R,D),TUserId=$P(R,D,6),BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) Set:TUserId["@" TUserId("EM")=TUserId,TUserId="" If Type="T" Do .New R .Set TUserId="",ToDo=1,ToDo("RPUserId")=TUserId .Set Param=$G(^vhMAIL("D",MailId,"P")),DeadLine=$P(Param,D),TUserId("RP")=$P(Param,D,2) .Set $P(Param,D,5)=1,^vhMAIL("D",MailId,"P")=Param .Quit:TUserId("RP")="" .Set TUserId("RP")=";"_TUserId("RP")_";",R=";"_TUserId_";" .If TUserId("RP")[R Set TUserId("RP")=$P(TUserId("RP"),R)_";"_$P(TUserId("RP"),R,2) .Set TUserId=TUserId_TUserId("RP") .Set:$E(TUserId)=";" $E(TUserId)="" Set:$E(TUserId,$L(TUserId))=";" $E(TUserId,$L(TUserId))="" .Set ToDo("RPUserId")=TUserId Set TUserId("EM")=$G(TUserId("EM")) Set (Type,Urgentie,Tekst,Refer,TUserId("CC"),TUserId("RP"),DeadLine)="",Respons="G",LineTyp="R" Set Tekst(1)="Uw mail van "_$$EXTDATE^vhLib.DataTypes($P(R,D,5))_" om "_$$EXTTIME^vhLib.DataTypes($P(R,D,5))_"~~" For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"T",I)) Set Tekst(I+1)=^vhMAIL("D",MailId,"T",I) Set Tekst(I+1)="~~&C--------------------~~" Set:Auto Tekst(I+1)=Tekst(I+1)_"Afgewerkt" Do PUTHULP(.Tekst) Kill MailId For Do NIEUW^vhScherm("MAILD") Set:$G(PopRead) %SC=$$EDIT(%SC) Quit:Antwoord'="V"!%SC If '%SC Do CLEAN Quit Set Later=$G(Later) Do GETHULP(.Tekst) Set R=$$SAVE("",.Tekst,.Refer,CUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,ReplyId,Later) If Urgentie'["U" Set TUserId=$$OVUSER^vhUSER(CUserId,TUserId) If $L(TUserId),'$L(Later) Do MESSAGE^vhMAIL3(CUserId,TUserId) Quit ; ; Verwijderen van een verzonden mail LDELETE(MailId,MailTyp,All) New R,RUserId,Buttons,Delete,ArchTyp Quit:'MailId If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit If MailTyp="O" Do If $L(ArchTyp),$D(^vhMAIL("IF",CUserId,ArchTyp,MailId)) New MailTyp Set MailTyp="A" .Set R=^vhMAIL("D",MailId),ArchTyp=$P($P(R,D,11),";") If MailTyp="O" Quit:'$$CHKRESP(MailId) Set All=$G(All) Quit:'$$MLOCK^vhMAIL(MailId,$S('All:CUserId,1:"")) If MailTyp="A" Do KILLIF(CUserId,MailId) If MailTyp="O" Do .Kill ^vhMAIL("IN",CUserId,MailId) Kill:$O(^vhMAIL("IN",CUserId,""))="" ^vhMAIL("IN",CUserId) .Kill ^vhMAIL("IR",CUserId,MailId) Kill:$O(^vhMAIL("IR",CUserId,""))="" ^vhMAIL("IR",CUserId) If MailTyp="V" Do .If 'All Kill ^vhMAIL("IZ",CUserId,MailId) Kill:$O(^vhMAIL("IZ",CUserId,""))="" ^vhMAIL("IZ",CUserId) Quit .Set RUserId=$$RUSERID^vhMAIL(MailId,CUserId) .If $L(RUserId) Do Quit:Delete'="V" ..Set Buttons="Buttons" ..Set Buttons(1)="Verwijderen&V",Buttons(2)="Annuleer&A*" ..Set Delete(1)="Deze mail werd reeds gelezen door : "_$$TUSER^vhMAIL(RUserId) ..Set Delete=$$WILD^vhTXTPOP("","","Delete",Buttons) .Do DELOBJ(MailId),DELLISTE Do:'All DELLISTE Do MUNLOCK^vhMAIL(MailId,$S('All:CUserId,1:"")) Quit ; ; Doorgeven van een mail aan een andere gebruiker LFORWARD(FMailId) New I,R,MailId,Type,LineTyp,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,Tekst,Refer,TUserId,FUserId,Later New PopRead,Param,DeadLine Quit:'FMailId If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit Set R=^vhMAIL("D",FMailId) Set Type=$P(R,D),Urgentie=$P(R,D,2),Respons=$P(R,D,3),Onderw=$P(R,D,4) Set FUserId=$P(R,D,6),(TUserId,TUserId("CC"),TUserId("EM"),TUserId("RP"))="" Set BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) Set (Tekst,Refer,DeadLine)="",LineTyp="D" Set Tekst(1)="Doorgegeven mail; oorspronkelijk van " Set Tekst(1)=Tekst(1)_$S(FUserId["@":FUserId,1:$P(^vhUSER("D",FUserId),D,2))_"~~" For I=1:1 Quit:'$D(^vhMAIL("D",FMailId,"T",I)) Set Tekst(I+1)=^vhMAIL("D",FMailId,"T",I) For I=1:1 Quit:'$D(^vhMAIL("D",FMailId,"R",I)) Set Refer(I)=^vhMAIL("D",FMailId,"R",I) Set Param=$G(^vhMAIL("D",FMailId,"P")) Set:Type="T" DeadLine=$P(Param,D),TUserId("RP")=$P(Param,D,2) Do PUTHULP(.Tekst) Do EDIT^vhScherm("MAILD","","","",1) Set:$G(PopRead) %SC=$$EDIT(%SC) If TUserId=CUserId!'%SC Do CLEAN Quit Set Later=$G(Later) Do GETHULP(.Tekst) Set:Type="T" $P(Param,D)=DeadLine_D_TUserId("RP") Set R=$$SAVE("",.Tekst,.Refer,CUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"",Later,"",Param) If Urgentie'["U" Set TUserId=$$OVUSER^vhUSER(CUserId,TUserId) If $L(TUserId),'$L(Later) Do MESSAGE^vhMAIL3(CUserId,TUserId) Set $P(^vhMAIL("D",FMailId,"N",CUserId),D,3)="D" Do LDELETE(FMailId,MailTyp) Quit ; ; Archiveren van een mail LARCHIEF(FMailId,MailTyp,ArchTyp,NoFetch) New I,R,Type,Urgentie,Respons,Onderw,Tekst,Refer,Kreatie,BetrTyp,Betreft,FUserId,File,ArchTemp,Param New DeadLine,FetchTyp,Dagen,VanAf Set ArchTyp=$G(ArchTyp),FetchTyp='$G(NoFetch) Quit:'FMailId If MailTyp="O" Do If $L(ArchTyp),$D(^vhMAIL("IF",CUserId,ArchTyp,FMailId)) Set MailTyp="A" .Set R=^vhMAIL("D",FMailId) Set:ArchTyp="" ArchTyp=$P($P(R,D,11),";") Set:MailTyp="A" ArchTemp=ArchTyp If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit If FetchTyp Do Quit:File'="J" .For Do Quit:File'="J" Quit:$L(ArchTyp) ..Set File=$S($D(^vhMAIL("IF",CUserId)):"J",1:$$^vhTXTPOP("MAIL","ARCHIEF")) Quit:File'="J" ..Set ArchTyp=$$ARCHTYP^vhMAIL4(CUserId,MailTyp="A") ..If ArchTyp="",$D(^vhMAIL("IF",CUserId)) Set File="A" If MailTyp="A" Do Quit .Quit:ArchTyp=ArchTemp .Do KILLIF(CUserId,FMailId) .Set ArchTyp=$S(ArchTyp="":"Diverse",1:ArchTyp) .Set $P(^vhMAIL("D",MailId),D,11)=ArchTyp .Do BLDIND(MailId) .If ArchTemp="" Set ArchTyp="" Do MAILTYP^vhMAIL(CUserId,MailTyp) Quit .Do DELLISTE If MailTyp="O" Quit:'$$CHKRESP(FMailId) Set R=^vhMAIL("D",FMailId) Set Urgentie="F",Type=$P(R,D),Onderw=$P(R,D,4),Kreatie=$P(R,D,5),FUserId=$P(R,D,6) Set BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) Set (Tekst,Refer,Respons,DeadLine)="" For I=1:1 Quit:'$D(^vhMAIL("D",FMailId,"T",I)) Set Tekst(I)=^vhMAIL("D",FMailId,"T",I) For I=1:1 Quit:'$D(^vhMAIL("D",FMailId,"R",I)) Set Refer(I)=^vhMAIL("D",FMailId,"R",I) Set Param=$G(^vhMAIL("D",MailId,"P")),DeadLine=$P(Param,D) If Type="T" Do .Set Respons=$P(^vhMAIL("D",FMailId),D,3) .Set Dagen=$P($G(^vhUSER("D",CUserId,"M")),D,14),VanAf="" Set:$H+Dagen>DeadLine&DeadLine Dagen=DeadLine-$H .Do EDIT^vhScherm("MAILHF") .Set $P(Param,D,3,4)=Dagen_D_VanAf Set R=$$SAVE("",.Tekst,.Refer,FUserId,"",Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"","",ArchTyp,Param) Do LDELETE(FMailId,MailTyp) If MailTyp="O",";"_$P(^vhUSER("D",CUserId,"M"),D,15)_";"[(";"_ArchTyp_";") Do FMAIL^vhMAIL(CUserId,MailTyp) Quit ; ; Hergebruiken van een mail LKOPIE(MailId) New I,R,Type,LineTyp,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,Tekst,Refer,TUserId,Later New PopRead,DeadLine,ArchTyp,Param Quit:'MailId If $G(Proxy),'$$MODPROXY(OUserId,CUserId) Quit Set (Type,Urgentie,Tekst,Refer,TUserId,TUserId("CC"),TUserId("EM"),TUserId("RP"),DeadLine)="" Set Respons="G",LineTyp="N" Set R=^vhMAIL("D",MailId),Type=$P(R,D),Onderw=$P(R,D,4),BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"T",I)) Set Tekst(I)=^vhMAIL("D",MailId,"T",I) For I=1:1 Quit:'$D(^vhMAIL("D",MailId,"R",I)) Set Refer(I)=^vhMAIL("D",MailId,"R",I),Refer=1 Set Param=$G(^vhMAIL("D",MailId,"P")) Do PUTHULP(.Tekst) Kill MailId Do EDIT^vhScherm("MAILD","","","",3) Set:$G(PopRead) %SC=$$EDIT(%SC) If '%SC Do CLEAN Quit Set Later=$G(Later) If Urgentie="F" Set MailTyp="A",TUserId="" Else Set MailTyp="V" New:Type'="T" ArchTyp Do GETHULP(.Tekst) Set R=$$SAVE("",.Tekst,.Refer,CUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"",Later,$G(ArchTyp),Param) If Urgentie'["U" Set TUserId=$$OVUSER^vhUSER(CUserId,TUserId) If $L(TUserId),'$L(Later) Do MESSAGE^vhMAIL3(CUserId,TUserId) Do MAILLIST^vhMAIL(MailTyp),FMAIL^vhMAIL(CUserId,MailTyp) Quit ; ; Verzenden van een externe mail LEXTERN(BetrTyp,Betreft,Onderw,TUserId,Tekst,Refer,Optie) New I,R,MailId,Type,LineTyp,Kreatie,LExtern,Later New PopRead,Urgentie,DelKode,Respons,EditScrn,DeadLine Set BetrTyp=$G(BetrTyp),Betreft=$G(Betreft),Onderw=$G(Onderw) Set Urgentie=$G(Optie("URG")),DelKode=$G(Optie("DEL")),Respons=$G(Optie("RESP")),EditScrn=$G(Optie("EDIT")) Set Type=$G(Optie("TYPE")),(TUserId("CC"),TUserId("EM"),TUserId("RP"))="",LineTyp="N",LExtern=1 Set DeadLine=$G(Optie("DLN")) If $L($G(Tekst)),$D(Tekst)=1 Set Tekst(1)=Tekst If $L($G(Refer)),$D(Refer)=1 Set Refer(1)=Refer Do PUTHULP(.Tekst) If EditScrn=-1 Set %SC=1 Else Do .Set TUserId=$$MERGEGRP^vhUSER(CUserId,$G(TUserId),,1) .Do @($S(EditScrn:"EDIT",1:"NIEUW")_"^vhScherm(""MAILD"")") Set:$G(PopRead) %SC=$$EDIT(%SC) If %SC Do .Set Later=$G(Later),Optie("DLN")=DeadLine .If Urgentie="F" Set MailTyp="A",TUserId="" .Else Set MailTyp="V" .Do GETHULP(.Tekst) .Set MailId=$$SAVE("",.Tekst,.Refer,CUserId,.TUserId,Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"",Later,"","",.Optie) .If Urgentie'["U" Set TUserId=$$OVUSER^vhUSER(CUserId,TUserId) .If $L(TUserId),'$L(Later) Do MESSAGE^vhMAIL3(CUserId,TUserId) Else Do CLEAN Quit $G(MailId) ; ; Wegschrijven van een mail SAVE(MailId,TekstLoc,RefLoc,FUserId,TUserId,Type,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,ReplyId,Later,ArchTyp,Param,Optie) New cwTUserId Set cwTUserId=$G(TUserId) Set Type=$G(Type),Urgentie=$G(Urgentie),Respons=$G(Respons),Onderw=$G(Onderw),Kreatie=$G(Kreatie) Set BetrTyp=$G(BetrTyp),Betreft=$G(Betreft),ReplyId=$G(ReplyId),Later=$G(Later),ArchTyp=$G(ArchTyp) Set Param=$G(Param) Set:Param="" Param=$G(Optie("DLN")) If $$ISSLAVE^vhMAIL6() Quit $$SLAVE^vhMAIL6(MailId,.TekstLoc,.RefLoc,FUserId,.TUserId,Type,Urgentie,Respons,Onderw,Kreatie,BetrTyp,Betreft,ReplyId,Later,ArchTyp,Param,.Optie) New I,R,UserId,Device,System,NewMail,Volume,CCUserId,EMUserId,RPUserId,TInterv Set TInterv=$$TINTERV^vhUSER(TUserId) Set TUserId=$$MERGEGRP^vhUSER($G(CUserId),$G(TUserId),,1) If TUserId="",TInterv="",Type'="S" Set TUserId=$$MERGEGRP^vhUSER($G(CUserId),"SYS",,1) Else Kill cwTUserId If 'MailId Set MailId=$$NEXTID(),NewMail=1 Set CCUserId=$G(TUserId("CC")),EMUserId=$G(TUserId("EM")) Set:$D(TUserId("RP")) RPUserId=$G(TUserId("RP")) If Type="T",$D(RPUserId) Set $P(Param,D,2)=RPUserId If Urgentie="F" Set ArchTyp=$S(ArchTyp="":"Diverse",1:ArchTyp)_";"_CUserId Else If Type="T",$L(ArchTyp) Set ArchTyp=ArchTyp Else Set ArchTyp="" Set Volume=$ZU(5) Set:$D(Optie("DATE")) Kreatie=Optie("DATE") Set:$D(Optie("VOL")) Volume=Optie("VOL") If ReplyId,$D(^vhMAIL("D",ReplyId,"N",FUserId)) Set $P(^vhMAIL("D",ReplyId,"N",FUserId),D,2,3)=MailId_"\R" Set:Type="" Type=$G(Optie("TYPE")) Set:Type="" Type="I" Set:Kreatie="" Kreatie=$H Set R=Type_D_Urgentie_D_Respons_D_Onderw_D_Kreatie_D_FUserId_D_BetrTyp_D_Betreft_D_ReplyId_D_Volume_D_ArchTyp Set ^vhMAIL("D",MailId)=R For I=1:1 Quit:'$D(TekstLoc(I)) Set ^vhMAIL("D",MailId,"T",I)=TekstLoc(I) If BetrTyp="KL" Do .For I=1:1 Quit:'$D(RefLoc(I)) If $P(RefLoc(I),D,2)=Betreft Quit .Quit:$D(RefLoc(I)) .Set I=$O(RefLoc(""),-1)+1,RefLoc(I)="KL\"_Betreft_"\R\" For I=1:1 Quit:'$D(RefLoc(I)) Set $P(RefLoc(I),D,4)=$P(RefLoc(I),D,4),^vhMAIL("D",MailId,"R",I)=RefLoc(I) If $L($TR(Param,D,"")) Set ^vhMAIL("D",MailId,"P")=Param If Urgentie="F" Set ^vhMAIL("D",MailId,"N",CUserId)=$H_"\\F" For I=1:1:$L(TUserId_";"_CCUserId_";"_EMUserId_";") Do .Set UserId=$P(TUserId_";"_CCUserId_";"_EMUserId,";",I) Quit:UserId="" .If UserId=CUserId,'$L(Later) Do ..Set R=$G(^vhMAIL("D",MailId,"N",UserId)),$P(R,D)=$H,$P(R,D,3)="G",$P(R,D,5)="",^vhMAIL("D",MailId,"N",UserId)=R .Else Do ..If '$L(Later) Set ^vhMAIL("D",MailId,"N",UserId)="" ..Else Set $P(^vhMAIL("D",MailId,"N",UserId),D,3)="S",$P(^vhMAIL("D",MailId,"N",UserId),D,5)=Later ..Quit:Urgentie'["U" Quit:UserId["@" ..Set Device=$P($G(^vhUSER("D",UserId,"D")),D) Quit:Device="" ..Set System=$S(Device?.N:$P($ZU(1,0),",",2),1:$P(Device,":")) Quit:System="" ..Set ^vhMESSAGE(System,"MAIL",MailId)="" For I=1:1:$L(CCUserId,";") Do .Set UserId=$P(CCUserId,";",I) Quit:UserId="" .Set R=$G(^vhMAIL("D",MailId,"N",UserId)),$P(R,D,4)="C",^vhMAIL("D",MailId,"N",UserId)=R If $L($G(Optie("LATER"))) Set ^vhMAIL("D",MailId,"S")=Optie("LATER") Do:$L(TInterv) TINTERV(MailId,TInterv) Do BLDIND(MailId) Quit MailId ; ; Verwijderen van een mail DELOBJ(MailId) New R,FUserId,TUserId,Device,System,Kreatie,BetrTyp,Betreft,Volume Quit:'MailId Quit:'$D(^vhMAIL("D",MailId)) Set R=^vhMAIL("D",MailId),Kreatie=$P(R,D,5),FUserId=$P(R,D,6) Set BetrTyp=$P(R,D,7),Betreft=$P(R,D,8),Volume=$P(R,D,10),TUserId="" For Set TUserId=$O(^vhMAIL("D",MailId,"N",TUserId)) Quit:TUserId="" Do .If TUserId["@" Kill ^vhMAIL("IN",TUserId,MailId),^vhMAIL("IR",TUserId,MailId) Quit .Kill ^vhMAIL("IN",TUserId,MailId) Kill:$O(^vhMAIL("IN",TUserId,""))="" ^vhMAIL("IN",TUserId) .Kill ^vhMAIL("IR",TUserId,MailId) Kill:$O(^vhMAIL("IR",TUserId,""))="" ^vhMAIL("IR",TUserId) .Kill ^vhMAIL("IM",TUserId,MailId) Kill:$O(^vhMAIL("IM",TUserId,""))="" ^vhMAIL("IM",TUserId) .Set Device=$P($G(^vhUSER("D",TUserId,"D")),D) Quit:Device="" .Set System=$S(Device?.N:$P($ZU(1,0),",",2),1:$P(Device,":")) Quit:System="" .Kill ^vhMESSAGE(System,"MAIL",MailId) If BetrTyp="LE" Kill ^vhMAIL("IL",Volume,Betreft,+Kreatie,MailId) If BetrTyp="KL" Kill ^vhMAIL("IK",Volume,Betreft,+Kreatie,MailId) Kill ^vhMAIL("IZ",FUserId,MailId) Kill:$O(^vhMAIL("IZ",FUserId,""))="" ^vhMAIL("IZ",FUserId) Kill ^vhMAIL("D",MailId) Do KILLIF(FUserId,MailId) Quit ; ; Circulaire mail toeeigenen GETCIRCMAIL(MailId) New R,UserId Set UserId=";"_$$TUSERID^vhMAIL(MailId)_";" Set UserId=$P(UserId,";"_CUserId_";")_";"_$P(UserId,";"_CUserId_";",2) Set $E(UserId)="",$E(UserId,$L(UserId))="" Do DELUSERS(MailId,UserId) Quit ; ; Opkuisen circulaire mail CIRCMAIL(MailId) New R,UserId Set UserId=";"_$$TUSERID^vhMAIL(MailId)_";" Set UserId=$P(UserId,";"_CUserId_";")_";"_$P(UserId,";"_CUserId_";",2) Set $E(UserId)="",$E(UserId,$L(UserId))="" Do DELUSERS(MailId,UserId) Set R=^vhMAIL("D",MailId),$P(R,D,2)=$TR($P(R,D,2),"C",""),^vhMAIL("D",MailId)=R Set R=$P(R,D,7,8)_D_$P(R,D,4)_D_CUserId_D_$H_D_UserId,^vhMAIL("LC",MailId)=R Quit ; ; Verwijderen van de referenties van een mail DELREF(MailId) Kill ^vhMAIL("D",MailId,"R") Quit ; ; Verwijderen van bepaalde gebruikers van een mail DELUSERS(MailId,UserId) New I For I=1:1:$L(UserId,";") Do .Quit:'$L($P(UserId,";",I)) .Kill ^vhMAIL("D",MailId,"N",$P(UserId,";",I)) .Kill ^vhMAIL("IN",$P(UserId,";",I),MailId) .Kill ^vhMAIL("IR",$P(UserId,";",I),MailId) Quit ; ; Opkuisen van de Index IF KILLIF(UserId,MailId) New ArchTyp Set ArchTyp="" For Set ArchTyp=$O(^vhMAIL("IF",UserId,ArchTyp)) Quit:ArchTyp="" Kill ^vhMAIL("IF",UserId,ArchTyp,MailId) Kill:$O(^vhMAIL("IF",UserId,""))="" ^vhMAIL("IF",UserId) Quit ; ; Nieuw MailId NEXTID() New MailId Lock +^vhMAIL("N") Set MailId=$G(^vhMAIL("N"))+1,^vhMAIL("N")=MailId Lock -^vhMAIL("N") Quit MailId ; ; Tekst in ^HULP voor vhBIGEDIT PUTHULP(Tekst) Kill ^HULP(%J,"T") Merge ^HULP(%J,"T")=Tekst Kill Tekst Quit ; ; ^HULP in Tekst voor save GETHULP(Tekst) Kill Tekst Merge Tekst=^HULP(%J,"T") Do CLEAN Quit ; CLEAN Kill ^HULP(%J,"T") Quit ; ; ; Nazien of een verplicht te beantwoorden mail beantwoord is CHKRESP(MailId) New R If '$D(^vhMAIL("D",MailId,"N",CUserId)) Quit 1 ; Circulaire mail door andere gebruiker genomen Set R=^vhMAIL("D",MailId,"N",CUserId) Do:"S"[$P(R,D,3) LREAD(MailId,"LR",1) Set R=^vhMAIL("D",MailId,"N",CUserId) Quit "S"'[$P(R,D,3) ; REFER(RefTyp,Refer,Actie,Optie) New R,Next Set R=RefTyp_D_Refer_D_Actie_D_Optie,Next=$O(Refer(""),-1)+1,Refer(Next)=R Quit ; MODPROXY(OUserId,CUserId,NoWarn) Quit:$$MODPROXY^vhUSER(OUserId,CUserId,"M") 1 Quit:$G(NoWarn) 0 Quit $$^vhTXTPOP("MAIL","PROXYREAD") ; EDIT(%SC) New R,%SCTemp,Annuleer,EditMode Set EditMode=1,%SCTemp=$G(%SC) For Quit:'$G(PopRead) Set R=$$PREVIEW() Set:'TUserId R="A" Quit:R'="A" Do EDIT^vhScherm("MAILD") Do ADD^vhScherm(1,24) Quit $S($G(Annuleer):0,%SC:%SC,1:%SCTemp) ; PREVIEW() New PopRead,MailId Set MailId=%J*1000 Do GETHULP(.Tekst) Set Later=$G(Later) Set R=$$SAVE(MailId,.Tekst,.Refer,CUserId,"",Type,Urgentie,Respons,Onderw,"",BetrTyp,Betreft,"",Later,$G(ArchTyp)) Do PUTHULP(.Tekst) Set PopRead=$$POPREAD^vhMAIL4(MailId,"V;A*;-L","Preview") Do DELOBJ(MailId) Quit PopRead ; DELLISTE Do DELETE^vhLISTE(.MAIL) If $P($G(^HULP(%J,MAIL("SELECT"))),D)="S" Do .If $P($G(^HULP(%J,MAIL("SELECT")-1)),D)'="S",$P($G(^HULP(%J,MAIL("SELECT")+1)),D)'="S" Do Quit ..If MAIL("SELECT")=1,$O(^HULP(%J,MAIL("SELECT")))="" Do DELETE^vhLISTE(.MAIL) .If MAIL("SELECT")=$O(^HULP(%J,"")) Do DELETE^vhLISTE(.MAIL) Quit .If MAIL("SELECT")=$O(^HULP(%J,""),-1) Do DELETE^vhLISTE(.MAIL) Quit .If $P($G(^HULP(%J,MAIL("SELECT")-1)),D)="S" Set MAIL("SELECT")=MAIL("SELECT")-1 Do DELETE^vhLISTE(.MAIL) Quit .If $P($G(^HULP(%J,MAIL("SELECT")+1)),D)="S" Do DELETE^vhLISTE(.MAIL) Quit If $P($G(^HULP(%J,MAIL("SELECT"))),D)="S" Do .If $O(^HULP(%J,MAIL("SELECT")))="" Do DELETE^vhLISTE(.MAIL) Quit .Do MOVE^vhLIST(.MAIL,"DO",0) Quit ; BLDIND(MailId) New I,R,Type,Urgentie,FUserId,BetrTyp,Volume,Betreft,Kreatie New TUserId,CCUserId,UserId,EMUserId,RMUserId,LNUserId,Later,ArchTyp Set R=^vhMAIL("D",MailId) Set Type=$P(R,D),Urgentie=$P(R,D,2),Kreatie=$P(R,D,5),FUserId=$P(R,D,6),BetrTyp=$P(R,D,7),Betreft=$P(R,D,8) Set Volume=$P(R,D,10),ArchTyp=$P(R,D,11) Set TUserId=$$TUSERID^vhMAIL(MailId,,,0),CCUserId=$$TUSERID^vhMAIL(MailId,,,1) Set RMUserId=$$USERID^vhUSER("REMOTE") Set Later="" If Urgentie="F" Do .Set:ArchTyp="" ArchTyp="Diverse" .If $P(ArchTyp,";",2) New CUserId Set CUserId=$P(ArchTyp,";",2) .Set ArchTyp=$P(ArchTyp,";"),^vhMAIL("IF",CUserId,ArchTyp,MailId)="" Else Do .Set ^vhMAIL("IZ",FUserId,MailId)=$S((";"_RMUserId_";")[(";"_FUserId_";"):$H,1:"") .If BetrTyp="LE" Set ^vhMAIL("IL",Volume,Betreft,+Kreatie,MailId)="" .If BetrTyp="KL" Set ^vhMAIL("IK",Volume,Betreft,+Kreatie,MailId)="" .Set UserId=$O(^vhMAIL("D",MailId,"N","")) .If UserId,$P(^vhMAIL("D",MailId,"N",UserId),D,3)="S" Set Later=$P(^vhMAIL("D",MailId,"N",UserId),D,5) .For I=1:1:$L(TUserId_";"_CCUserId,";") Do ..Set UserId=$P(TUserId_";"_CCUserId,";",I) Quit:UserId="" ..If UserId=FUserId,'$L(Later) Set ^vhMAIL("IR",UserId,MailId)=$S((";"_RMUserId_";")[(";"_UserId_";"):$H,1:"") ..Else Set ^vhMAIL("IN",UserId,MailId)=$S((";"_RMUserId_";")[(";"_UserId_";"):$H,1:"") .If Type="T",$L(ArchTyp) Set ^vhMAIL("IF",FUserId,ArchTyp,MailId)="" Quit ; TINTERV(MailId,TInterv) New R,TUserId,UInterv For Do Quit:TInterv="" .Set R=$P(TInterv,D),TInterv=$P(TInterv,D,2,99),TUserId=$P(R,";"),UInterv=$P(R,";",2) .If $$DIFFTIME^vhLib.DataTypes($H,UInterv)>0 Set ^vhMAIL("D",MailId,"N",TUserId)="\\S\\"_UInterv .Else Set ^vhMAIL("D",MailId,"N",TUserId)=$G(^vhMAIL("D",MailId,"N",TUserId)) Set R=^vhMAIL("D",MailId),$P(R,D,2)=$P(R,D,2)_"C",^vhMAIL("D",MailId)=R Quit ;