vhFAX ;TELEFAX [ 10/26/2001 12:58 PM ] ; T1 ;128\129\130\131\132\133\134\135\136\137\138 T2 ;108\107\109\106\119\117\116\118\113\120\110 ; LOGO(%FaxNr,Ref) New R Set R=$$FOTO(Ref) Do STORE(%FaxNr,R,0,.0001) Quit ; TITEL(%FaxNr) Do LOGO(%FaxNr,"LOGO_TOP") Quit ; HEADER(%FaxNr,Taal,FromName,FromFax,IntPers,Subject,ToName,ToFax,ExtPers,Date,Pages,Vervolg) New R Quit:'%FaxNr Set %FaxNr=$G(%FaxNr),FromName=$G(FromName),FromFax=$G(FromFax),IntPers=$G(IntPers),Subject=$G(Subject) Set ToName=$G(ToName),ToFax=$G(ToFax),ExtPers=$G(ExtPers),Date=$G(Date),Pages=$G(Pages),Vervolg=$G(Vervolg) Set:Date?.N!(Date?.N1",".N) Date=$$EXTDATE^vhLib.DataTypes(Date,"DC",Taal)_", "_$$EXTDATE^vhLib.DataTypes(Date,"DL",Taal) Set Taal=$G(Taal) Set:Taal="" Taal="N" If $L(IntPers),$D(^vhUSER("D",IntPers)) Set IntPers=$P(^vhUSER("D",IntPers),"\",5) If 'Vervolg Do .Set R=$$LINE^vhRtn1("F",88,14) .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","AAN",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_ToName .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","TAV",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_ExtPers .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","FAX",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_ToFax .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","BETREFT",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_Subject .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","DATE",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_Date .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","VAN",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_FromName .Set:$L(FromName)&$L(IntPers) R=R_" - " Set R=R_IntPers .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","PAGES",Taal),12)_" "_$$LINE^vhRtn1("B",1,1)_" "_Pages .If Pages,Pages?.N Set R=R_" ("_$$FETCH^TEKST("FAX","INCL",Taal)_")" .Do STORE(%FaxNr,R) .Set R=$$LINE^vhRtn1("L",88,14) .Do STORE(%FaxNr,R) Else Do .Set R=$J($$FETCH^TEKST("FAX","AAN",Taal),12)_" : "_ToName .Do STORE(%FaxNr,R) .Set R=$J($$FETCH^TEKST("FAX","DATE",Taal),12)_" : "_Date .Set R=R_$J("("_$$FETCH^TEKST("FAX","VERVOLG",Taal)_" "_Vervolg_")",88-$L(R)) .Do STORE(%FaxNr,R) .Set R=$$LINE^vhRtn1("F",88,"") .Do STORE(%FaxNr,R) Quit ; BODY(%FaxNr,DataRef) New I,Next,FaxTekst If DataRef["(" Do .For I=$L(DataRef):-1 Quit:" ,)"'[$E(DataRef,I) .Set DataRef=$E(DataRef,1,I) Set:DataRef'["(" DataRef=DataRef_"(" .Set:$E(DataRef,$L(DataRef))'="(" DataRef=DataRef_"," Do WRAP^vhRtn1(88,DataRef,"",.FaxTekst) Set Next="" For Set Next=$O(FaxTekst(Next)) Quit:Next="" Set R=FaxTekst(Next) Do STORE(%FaxNr,R) Quit ; FOOTER(%FaxNr,Taal,FromFax,FromTel,FromAdr,FromLoc) New R Quit:'%FaxNr Set FromFax=$G(FromFax),FromTel=$G(FromTel),FromAdr=$G(FromAdr),FromLoc=$G(FromLoc) ;Do FONT(%FaxNr,"A") Set R=$$LINE^vhRtn1("F",88,"") Do STORE(%FaxNr,R) Set R=$$FETCH^TEKST("FAX","FAX",Taal)_FromFax,R=R_$J("",88-$L(R)-$L(FromAdr))_FromAdr Do STORE(%FaxNr,R) Set R=$$FETCH^TEKST("FAX","TEL",Taal)_FromTel,R=R_$J("",88-$L(R)-$L(FromLoc))_FromLoc Do STORE(%FaxNr,R) Quit ; FONT(%FaxNr,Font) New R Quit:"\A\B\C\D\K\"'[("\"_Font_"\") Set R="~FAX FONT="_Font Do STORE(%FaxNr,R,0,.0001) Quit ; REPEAT(%FaxNr,R,Space,Aantal) For Aantal=1:1:Aantal Do STORE(%FaxNr,R,Space) Quit ; NEWPAGE(%FaxNr) Do STORE(%FaxNr,"~P",0,.0001) Quit ; LASTPAGE(%FaxNr) Quit $O(^FAX(%FaxNr,""),-1)\1 ; LASTLINE(%FaxNr) Quit $O(^FAX(%FaxNr,""),-1)#1*1000\1 ; STORE(%FaxNr,R,Space,NewLine) New Old,New,Next,HandRef Set R=$$GRAPHICS(R) If $E($$UPTRIMAN^vhRtn1(R),1,12)="HANDTEKENING" Do .Set R=$$UPCASE^vhRtn1(R),R=$P($P($P(R,"Ğ",2),"ğ")," ",2,9) .If '$$HSELECT(R) Set R="" Quit .Set HandRef=$$HREF(R) .Set R=$$FOTO(HandRef) Set Space=$G(Space,5),NewLine=$G(NewLine,.001) Set Next=$O(^FAX(%FaxNr,""),-1) If '(Next\1) Set Next=1 Set:'NewLine NewLine=.001 Else If '(NewLine/.001#1) Set Next=Next/.001\1/1000 If Next=1,R="~P" Else Do .Set:$E($TR(R," ",""),1,2)="~P" Next=Next+1\1 Set Next=Next+NewLine .If NewLine Set New=$J("",Space)_R .Else Do ..Set Old=^FAX(%FaxNr,Next) ..If Old[$C(27,62,127,127,14) Set Space=Space+($L(Old,$C(27,62,127,127,14))-1*5) ..If Old[$C(27,62,127,127,15) Set Space=Space+($L(Old,$C(27,62,127,127,15))-1*5) ..If Old[$C(27,91,48,52,109) Set Space=Space+($L(Old,$C(27,91,48,52,109))-1*5) ..If Old[$C(27,91,50,52,109) Set Space=Space+($L(Old,$C(27,91,50,52,109))-1*5) ..If Old[$C(27,91,48,55,109) Set Space=Space+($L(Old,$C(27,91,48,55,109))-1*5) ..If Old[$C(27,91,50,55,109) Set Space=Space+($L(Old,$C(27,91,50,55,109))-1*5) ..Set New=Old_$J("",Space-$L(Old))_R .Set ^FAX(%FaxNr,Next)=New Quit ; GRAPHICS(R) New I,From,To Set (From,To)=0 For I=$L(R):-1:1 Do .If "\"_$P($T(T1),";",2)_"\"'[("\"_$A($E(R,I))_"\") Do Quit ..If To Set:'From From=To Set R=$$REPLACE(R,From,To) ..Set (From,To)=0 .If 'To Set To=I .Else Set From=I If To Set:'From From=1 Set R=$$REPLACE(R,From,To) Quit R ; REPLACE(R,From,To,Reverse) New I,TFrom,TTo,GraphOn,GraphOff Set Reverse=$G(Reverse) Set TFrom=$S(Reverse:"T2",1:"T1"),TTo=$S(Reverse:"T1",1:"T2") Set GraphOn=$S(Reverse:$C(27)_"E",1:$C(27,62,127,127,14)) Set GraphOff=$S(Reverse:$C(27)_"F",1:$C(27,62,127,127,15)) For I=From:1:To Set $E(R,I)=$C($P($P($T(@TTo),";",2),"\",$F($P($T(@TFrom),";",2),$A($E(R,I)))/4)) Set $E(R,From,To)=GraphOn_$E(R,From,To)_GraphOff Quit R ; MERGE(%TFaxNr,%FFaxNr) New R,Next Do STORE(%TFaxNr,"~P",0) Set Next=1 For Set Next=$O(^FAX(%FFaxNr,Next)) Quit:Next="" Do .Set R=^FAX(%FFaxNr,Next) .Do STORE(%TFaxNr,R,0) Kill ^FAX(%FFaxNr) Quit ; INIT If $I'=$P Close $I Set %FaxNr=$$FAXNR() Set %Fax=1,^FAX(%FaxNr,.015)="VT220" Quit ; VERWERK(%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName,CopyInt,Mail,Print,CopyBV) New I,J,UserId,Users,FaxId,Jobs Set %FaxNr=$G(%FaxNr) Quit:'%FaxNr Set FromName=$G(FromName),FromFax=$G(FromFax),Subject=$G(Subject) Set ExtPers=$G(ExtPers),ToFax=$G(ToFax),ToName=$G(ToName),CopyInt=$G(CopyInt) Set Mail=$G(Mail),Print=$G(Print),CopyBV=$G(CopyBV) Set Jobs=$$SEND(%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName,CopyInt,CopyBV) Set (UserId,Users)="" For Set UserId=$O(Mail(UserId)) Quit:UserId="" Do .Set UserId=$$USERID^vhUSER(UserId) .Set:$L(Users) Users=Users_";" .Set Users=Users_UserId If '$L(Users) Set Users=$$USERID^vhUSER(IntPers) Set:Users="" Users=3 If $L(Users) Do .For I=1:1:$L(Jobs,";") Do ..Set FaxId=$P(Jobs,";",I),^FAX("CHK",FaxId)=$S(I=1:Mail,1:0) ..For J=1:1:$L(Users,";") Set ^FAX("CHK",FaxId,$P(Users,";",J))="" If Print Do .New %Fax,%FaxNr .Do CLOSE^vhPRINTER,PRINT($P(Jobs,";")) Quit ; SEND(%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName,CopyInt,CopyBV) New (%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName,CopyInt,CopyBV) Set %FaxNr=$G(%FaxNr) Quit:'%FaxNr "" Set FromName=$G(FromName),FromFax=$G(FromFax),Subject=$G(Subject) Set ExtPers=$G(ExtPers),ToFax=$G(ToFax),ToName=$G(ToName),CopyInt=$G(CopyInt),CopyBV=$G(CopyBV) Set ToFax=$$TRIMN^vhRtn1(ToFax) Quit:'ToFax "" If $E(ToFax,1,2)="00" Set ToFax=ToFax_"," If $E(ToFax,3,4)'=31 Set ToFax=ToFax_"," Set TKWPD=$NA(^FAX(%FaxNr)) Set FAXPARAM=FromName_"`"_FromFax_"`"_Subject_"`"_ExtPers_"`"_ToFax_"`"_ToName_"`1``N`Y`N`Y`A`9`Y" Do QUEUE^TKFAXQ Set Jobs=JOB ; Logging indien transport If JOB,Subject?1"Bestelbon".E Do .New TranspNr,Obj,TijdstipAfgedrukt,Creator,PrintCount,ORef .Set TranspNr=$$TRIMN^vhRtn1(Subject) .Quit:'TranspNr .Set Obj=##class(Flow.Cons.Transport).%OpenId(TranspNr) .Quit:'$IsObject(Obj) .Set TijdstipAfgedrukt=Obj.TijdstipAfgedrukt,Creator=Obj.Creator .Set PrintCount=$P(TijdstipAfgedrukt,",",2) .Set ORef=TranspNr .Set:PrintCount ORef=ORef_"v"_PrintCount .Set:Creator ORef=ORef_"/"_$$USERNAME^vhUSER(Creator,-1) .Do ##class(vhLib.Logger).%New("Transport").Info("Fax","Transport "_ORef_" is gefaxt naar "_ToName_" (job "_JOB_").") If CopyInt Do ; Copy naar Van Hoecke nv .Set ToFax="037601919" .Set TKWPD=$NA(^FAX(%FaxNr)) .Set FAXPARAM=FromName_"`"_FromFax_"`"_Subject_"`"_ExtPers_"`"_ToFax_"`"_ToName_"`1``N`Y`N`Y`A`9`Y" .Do QUEUE^TKFAXQ .Set Jobs=Jobs_";"_JOB If CopyBV Do ; Copy naar Van Hoecke B.V. .Set ToFax="0031306971083" .Set TKWPD=$NA(^FAX(%FaxNr)) .Set FAXPARAM=FromName_"`"_FromFax_"`"_Subject_"`"_ExtPers_"`"_ToFax_"`"_ToName_"`1``N`Y`N`Y`A`9`Y" .Do QUEUE^TKFAXQ .Set Jobs=Jobs_";"_JOB Kill ^FAX(%FaxNr) Quit Jobs ; PRINT(JobNr) New I,R,Next,HLines Do INIT^vhPRINTER("L;S","","") Quit:'$D(Print) Set Next=.03 For Set Next=$O(^TKFAXQ("SRC",JobNr,Next)) Quit:Next="" Do .Set R=^TKFAXQ("SRC",JobNr,Next) .If $E($TR(R," ",""))="~" Do Quit ..If R="~P" Write # Quit ..If $E(R,1,32)="~FAX GRAPHIC=^TKFAXGR(""LOGO_TOP""" Write $$HEADER^DCFAX(" TELEFAX") ..If $E(R,1,32)="~FAX GRAPHIC=^TKFAXGR(""LOGO_ORD""" Write ! ..If R["~FAX GRAPHIC=^TKFAXGR(""HAN_" Do ...Set R=$P(R,"=",2),HLines=$G(@R)/98*6+.9\1-1 ...For I=1:1:HLines-(HLines\2) Write ! ...Set R=" ĞHandtekeningğ",R="" ...Write !,$C(27)_":",R,$C(18) ...For I=1:1:HLines\2 Write ! .Write !,$C(27)_":",$$TRANSL(R),$C(18) Write # Do CLOSE^vhPRINTER Quit ; TRANSL(R) For Quit:R'[$C(27,62,127,127,14) Do .Set X=$P($P(R,$C(27,62,127,127,14),2),$C(27,62,127,127,15)) .Set X=$$REPLACE(X,1,$L(X),1) .Set R=$P(R,$C(27,62,127,127,14))_$C(27)_"E"_X_$C(27)_"F"_$P(R,$C(27,62,127,127,15),2,999) For Quit:R'[($C(27)_"[07m") Set R=$P(R,$C(27)_"[07m")_$C(27)_"E"_$P(R,$C(27)_"[07m",2,999) For Quit:R'[($C(27)_"[27m") Set R=$P(R,$C(27)_"[27m")_$C(27)_"F"_$P(R,$C(27)_"[27m",2,999) For Quit:R'[($C(27)_"[04m") Set R=$P(R,$C(27)_"[04m")_$C(27)_"-"_$C(1)_$P(R,$C(27)_"[04m",2,999) For Quit:R'[($C(27)_"[24m") Set R=$P(R,$C(27)_"[24m")_$C(27)_"-"_$C(0)_$P(R,$C(27)_"[24m",2,999) Quit R ; FAXNR() New %FaxNr Set %FaxNr=$O(^FAX(999999),-1)+1 Quit %FaxNr ; HSELECT(IntPers) New UserId,HandRef Set UserId=$$USERID^vhUSER(IntPers) Quit:'UserId "" Set HandRef=$P($G(^vhUSER("D",UserId,"F")),"\") Quit:'$L(HandRef) "" Quit:'$D(^TKFAXGR(HandRef)) "" Quit 1 ; HREF(IntPers) New UserId,HandRef Set UserId=$$USERID^vhUSER(IntPers) Quit:'UserId "" Set HandRef=$P($G(^vhUSER("D",UserId,"F")),"\") Quit:'$L(HandRef) "" Quit:'$D(^TKFAXGR(HandRef)) "" Quit HandRef ; HLINES(IntPers) New UserId,HandRef,LastPict Set UserId=$$USERID^vhUSER(IntPers) Quit:'UserId 0 Set HandRef=$P($G(^vhUSER("D",UserId,"F")),"\") Quit $$FLINES(HandRef) ; FLINES(Ref) New LastPict Quit:'$L(Ref) 0 Set LastPict=$$LASTPICT(Ref) Quit:'LastPict 0 Quit ^TKFAXGR(Ref,LastPict)/98*6+.9\1 ; FOTO(Ref) New R,LastPict Set LastPict=$$LASTPICT(Ref),R="~FAX GRAPHIC=^TKFAXGR("""_Ref_""","_LastPict_")" Quit R ; LASTPICT(Ref) Quit $S('$D(^TKFAXGR(Ref)):0,1:1) Quit $O(^TKFAXGR(Ref,""),-1) ; CHECK ; controle faxen verstuurd via TKFAX If '$D(Q) Set Q="SYS" Do ^cA604 New R,UserId,Users,FaxId,Status,QTime,Date,Mail,Retry,MaxRetry Set FaxId="",MaxRetry=$P(^TKFAXC("DEFLTS"),D,7) For Set FaxId=$O(^FAX("CHK",FaxId)) Quit:FaxId="" Do .If '$D(^TKFAXQ("DIR",1000000-FaxId)) Kill ^FAX("CHK",FaxId) Quit .Set (UserId,Users)="" .For Set UserId=$O(^FAX("CHK",FaxId,UserId)) Quit:UserId="" Do ..Set:$L(Users) Users=Users_";" ..Set Users=Users_UserId .Set R=^TKFAXQ("DIR",1000000-FaxId),Status=$P(R,D,10),QTime=$P(R,D,25),Date=$P(R,D,28),Retry=$P(R,D,30) .Set Mail=^FAX("CHK",FaxId) .If Status=7!(Status=9) Do Quit ..Do:Mail MAIL(Users,FaxId) ..Kill ^FAX("CHK",FaxId) .If Status=3 .Else If $$DIFFTIME^vhLib.DataTypes(Date_","_QTime,$H)>14400 .Else If RetryMaxLines Do ..Set PCount=PCount+1,LCount=0 ..Do FOOTER(%FaxNr,Taal,FromFax,FromTel,FromAdr,FromLoc) ..If $O(Tekst(Next)) Do ...Do NEWPAGE(%FaxNr),TITEL(%FaxNr) ...Do HEADER(%FaxNr,Taal,FromName,FromFax,"",Subject,ToName,ToFax,ExtPers,Date,Pages,PCount-1) ..Set MaxLines=52 .Do STORE(%FaxNr,R) Do REPEAT(%FaxNr,"",0,MaxLines-LCount) Do FOOTER(%FaxNr,Taal,FromFax,FromTel,FromAdr,FromLoc) Set Jobs=$$SEND(%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName) Set Users=$$USERID^vhUSER(IntPers) Set:Users="" Users=3 If $L(Users) Do .For I=1:1:$L(Jobs,";") Do ..Set FaxId=$P(Jobs,";",I),^FAX("CHK",FaxId)=0 ..For J=1:1:$L(Users,";") Set ^FAX("CHK",FaxId,$P(Users,";",J))="" Quit ; TEST New Do INIT^vhTERMINA,INIT Set FG="*128\*129\*130\*131\*132\*133\*134\*135\*136\*137\*138\" Set FromName=QN,FromFax="00.31.3.760.19.19",IntPers=3,Subject="Test van de fax",ToName="Test Van Hoecke nv",ToFax="03/760.19.19" Set ExtPers="Verhulst Paul",Date=$H,Pages=1,Taal="N" Set Tekst(1)="Momenteel zijn we het automatisch doorsturen van faxen aan het testen. Deze tekst werd opgemaakt via vhFAX." Set Tekst(2)="~~Ziehier het resultaat.~~~~~Met vriendelijke groeten.~~~~~~~Chris Willems" Do TITEL(%FaxNr),FONT(%FaxNr,"D") Do HEADER(%FaxNr,Taal,FromName,FromFax,IntPers,Subject,ToName,ToFax,ExtPers,Date,Pages) Do BODY(%FaxNr,"Tekst(") Set FromFax="(32-3) 760.19.19",FromTel="(32-3) 760.19.00" Set FromAdr="INDUSTIERPARK WEST 64",FromLoc="B-9100 SINT-NIKLAAS" Do REPEAT(%FaxNr,"",0,20) Do FOOTER(%FaxNr,Taal,FromFax,FromTel,FromAdr,FromLoc) Set Jobs=$$SEND(%FaxNr,FromName,FromFax,IntPers,Subject,ExtPers,ToFax,ToName) Quit ;