#include BL.Sys.FOP.Common #include BL.Derde.Fax.UitgaandeFaxen FaxMail ;Beheer uitgaande faxen en mail (algemene verwerking) [ 10/23/2003 9:10 AM ] ; VERWERK(Data,ProgLine,AutoDev) New %SC,Save Set ProgLine=$G(ProgLine,"NIEUW") Set:$G(Data("TextId"))["^" ProgLine="EDIT" Do @(ProgLine_"^vhScherm(""FAXMAIL"")") If '%SC,$$TEKST() Do . If "\P\MM\"[(D_Data("ToDev")_D) Set %SC=1 Quit ; Print en mail mij . If Data("FopType")="F",Data("Document")="?" Quit:$$^vhTXTPOP("FAXMAIL","SENDNOMOD")'="J" . If Data("FopType")="M",Data("Document")="?" Quit:$$^vhTXTPOP("FAXMAIL","SENDNOMODMAIL")'="J" . Set %SC=1 Do:%SC . Set Save=$G(Data("Save")) . Kill Data("Save") . Do SAVE^DCFAX(.Data,Save) . Do:Data("FopType")="F" PRINT(.Data,0,.AutoDev) . Do:Data("FopType")="M" MAIL(.Data) Quit ; ; Afdrukken - faxen PRINT(Data,Fax,AutoDev) New %Fax,%FaxNr,R,KLNr,sc,Taal,PrintOptie,FaxFilePath Set Fax=$G(Fax,1) Set FP=2201 Write @F,@F1 Do:$D(Data("FopType")) . Merge Data("Tekst")=^HULP(%J,"T") . Do MERGSLOT . Kill ^HULP(%J,"T") . Merge ^HULP(%J,"T")=Data("Tekst") . Set Taal=$G(Data("Taal")) . Set:Data("Datum")=""!(Data("Datum")?5N) Data("Datum")=$$EXTDATE^vhDTyp(Data("Datum"),"DC",Taal)_", "_$$EXTDATE^vhDTyp(Data("Datum"),"DL",Taal) . Set KLNr=$G(Data("KLNr")) . If KLNr,Fax Set R=^KKL(^KK1(KLNr),1),Fax='$P(R,D,26) ; 'TKFAX . Set PrintOptie=$S($TR(Data("Fax")," ","")=""&($G(Data("Type"))'="S"):"F",1:"") Set:0'[$G(AutoDev) PrintOptie("AUTOSEL")=AutoDev If Fax,$G(Data("TextId"))="Z",$G(PrintOptie("AUTOSEL"))="" Set PrintOptie("AUTOSEL")="Fax" Set PrintOptie("MPC")="PCB\1" ; 'Bevestiging indien verzonden' niet toegelaten Do INIT^vhPRINTER("L;S","",$S(Data("Via")="BON":"FOP",1:$S(Fax:"F",1:"")_"P"),.PrintOptie) If $D(Print) Do . If $G(%Fax) Do . . Set sc=$$CreateAndSend(.Data,,.FaxFilePath,"INLINE") Quit:$$$ISERR(sc) . . If $G(Print("FAX","COPYINT")) Set sc=$$CreateAndSend(.Data,Print("FAX","COPYINT"),.FaxFilePath,"INLINE") Quit:$$$ISERR(sc) ; Copy naar N.V. . . If $G(Print("FAX","COPYBV")) Set sc=$$CreateAndSend(.Data,Print("FAX","COPYBV"),.FaxFilePath,"INLINE") Quit:$$$ISERR(sc) ; Copy naar B.V. . . If $G(Print("FAX","PRINT")) Do CLOSE^vhPRINTER,PRINT(.Data,0) ; Afdruk eveneens op papier . . Do LogPrintDoc(.Data,"F") . Else Do . . If Data("Via")="TOE" Do PrintTOE(Data("DocNum"),$D(Data("TextId"))) . . If Data("Via")="OFF" Do PrintOFF(Data("DocNum"),$D(Data("TextId"))) . . If Data("Via")="ORD" Do PrintORD(Data("DocNum"),$D(Data("TextId"))) . . If Data("Via")="BON" Do CreateAndPrint(.Data,.Print) . . If Data("Via")="FACT" Do PrintFACT(Data("DocNum"),$D(Data("TextId"))) . . If Data("Via")="PROF" Do PrintPROF(Data("DocNum"),$D(Data("TextId"))) . . If Data("Via")'="BON" Do:$D(Data("FopType")) ; Er is een voorblad af te drukken . . . If $G(Data("Type"))'="S" Do ; Het is geen reeks van faxen . . . . If $G(%Fax),$G(%FaxNr) Set %FaxNr(%FaxNr)="" Do INIT^vhFAX . . . . Set:Data("Fax")="" Data("Fax")=$G(Print("FAX","NR")) . . . . Do PRINT^DCFAX(.Data) . . . . If $G(%Fax),$G(%FaxNr) . . . . Else Write # . Do CLOSE^vhPRINTER . If $D(sc),$$$ISERR(sc) Do . . Do WARN^vhTXTPOP($$ParseStatus^vhLib(sc),"") . ; Else Do:$D(FaxFilePath) ##Class(CHUI.Flow.Fax).ShowFax(FaxFilePath) ; afgesloten (was te storend) Quit ; ; Vertalen van gecodeerde tekst naar bruikbare tekst MERGSLOT New I,R,Taal,Ref,Param,Tekst,Type Set Taal=$G(Data("Taal"),"N"),Type=$G(Data("Type")) Set Ref="STANDAARD" If $D(Data("TermUser")),Data("TermUser")'=Data("VanUser") Set Ref="IN OPDRACHT" Set Param("Slot hoogachtend")=^RES("DCFAX","PI","SLOT","D",Ref_" HOOGACHTEND",Taal) Set Param("Slot vriendelijke groeten")=^RES("DCFAX","PI","SLOT","D",Ref_" VRIENDELIJKE GROETEN",Taal) Set Param("Gebruiker")=Data("Van"),Param("Aan")=Data("Aan"),Param("Tav")=$G(Data("Tav")) Set Param("Betreft")=Data("Betreft"),Param("Datum")=Data("Datum") Set:Param("Datum")?5N Param("Datum")=$$EXTDATE^vhDTyp(Param("Datum")) Set Param("Kontakt")=$S(Type="":"","KL"[Type:$$TXT^DCFAX($S(Type="K":"Klant",1:"Lever")),1:"") If $D(Data("TermUser")),Data("TermUser")'=Data("VanUser") Set Param("InOpdr")=$P(^vhUSER("D",Data("TermUser")),D,5) Do CST2ST^vhBIGEDIT("Data(""Tekst"")","G","~","","Tekst","G","~","510","",.Param) Set Tekst=$G(Tekst) Set:$L(Tekst) Tekst=Tekst_"~" For I=1:1 Quit:'$D(Tekst(I)) Set Tekst=Tekst_Tekst(I) If Tekst["«Handtekening»" Set Tekst=$P(Tekst,"«Handtekening»")_"~~~"_$P(Tekst,"«Handtekening»",2) If Tekst["«Gebruiker»" Set Tekst=$P(Tekst,"«Gebruiker»")_$G(Data("Van"))_$P(Tekst,"«Gebruiker»",2) Do:Tekst["«InOpdr»" . Set R="" . If $D(Data("TermUser")),Data("TermUser")'=Data("VanUser") Set R=R_$P(^vhUSER("D",Data("TermUser")),D,5) . Set Tekst=$P(Tekst,"«InOpdr»")_R_$P(Tekst,"«InOpdr»",2) Kill Data("Tekst") Set Data("Tekst",1)=Tekst Quit ; CreateAndSend(Data,OverrideDestination,FaxFilePath) New DataRef,DocType,Doc,Ref,DerdeNr,lbDocTypes,lbDocDefs,lbKeywordsPPOD,pxVoorblad,pxDocMulti,Task,Opties,sc,FaxLogObj,scSave ; $$$ppodtFactuur ; $$$ppodtOfferte ; $$$ppodtOrder ; $$$ppodtLevBon ; $$$ppodtToelev ; $$$ppodtPrijslijst ; $$$ppodtRappel Set RunMode=$G(RunMode) Set DataRef="Data",DocType=Data("Document") Set Data("AfzenderEmail")=$$USERNAME^vhUSER(,"@") Set:Data("AfzenderEmail")="" Data("AfzenderEmail")="cw@vanhoecke.be" If DocType="?" Set (lbDocTypes,lbDocDefs)="" ; Vrije ingave If "\F\V\"[(D_DocType_D) Do ; Factuur en proformafactuur . Set DerdeNr=Data("KLNr"),lbDocTypes=$LB($$$ppodtFactuur) . Set lbDocDefs=$LB($LB($LB(Data("DocNum"),$S(DocType="V":"P",1:""),"C"))) . Set Ref="" . For Set Ref=$O(Data("DocNum",Ref)) Quit:Ref="" Do . . Set Doc=Data("DocNum",Ref) Set:Doc="" Doc=Ref . . Set lbDocTypes=lbDocTypes_$LB($$$ppodtFactuur) . . Set lbDocDefs=lbDocDefs_$LB($LB($LB(Doc,$S(DocType="V":"P",1:""),"C"))) If "\A\"[(D_DocType_D) Do ; Offerte . Set DerdeNr=Data("KLNr"),lbDocTypes=$LB($$$ppodtOfferte) . Set lbDocDefs=$LB($LB(Data("DocNum"),"KOF")) . Set Ref="" . For Set Ref=$O(Data("DocNum",Ref)) Quit:Ref="" Do . . Set Doc=Data("DocNum",Ref) Set:Doc="" Doc=Ref . . Set lbDocTypes=lbDocTypes_$LB($$$ppodtOfferte) . . Set lbDocDefs=lbDocDefs_$LB($LB(Doc,"KOF")) If "\T\O\L\"[(D_DocType_D) Do ; Toelevering, order en leverbon . Set DerdeNr=Data($S(DocType="T":"LEVNr",1:"KLNr")),lbDocTypes=$LB($S(DocType="T":$$$ppodtToelev,DocType="O":$$$ppodtOrder,DocType="L":$$$ppodtLevBon,1:"")) . Set lbDocDefs=$LB($LB(Data("DocNum"))) . Set Ref="" . For Set Ref=$O(Data("DocNum",Ref)) Quit:Ref="" Do . . Set Doc=Data("DocNum",Ref) Set:Doc="" Doc=Ref . . Set lbDocTypes=lbDocTypes_$LB($S(DocType="T":$$$ppodtToelev,DocType="O":$$$ppodtOrder,DocType="L":$$$ppodtLevBon,1:"")) . . Set lbDocDefs=lbDocDefs_$S(DocType="L":$LB($LB(Doc,0)),1:$LB($LB(Doc))) Do:Data("FopType")="F" ; Fax . If $ZU(5)'="ADMIN1",$G(OverrideDestination)="" Set OverrideDestination="03-760 19 19" . Set lbKeywordsPPOD="" . Set pxVoorblad=##class(BL.FOP.Derde.pxVoorblad).Create(DataRef,lbKeywordsPPOD,$G(Opties),.sc) . Set pxDocMulti=##class(Sys.FOP.emDocMulti).BuildDocMultiProxyFax(pxVoorblad,.lbDocTypes,.lbDocDefs,,.DerdeNr,.sc) . Set:$G(Data("TextId"))="Z" pxDocMulti.MetVoorblad=0 . Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("FaxRenderToPPODMergeAndSend","FAX;Render;MergePPOD;SendFax",) . Set Task.DocMulti=pxDocMulti . Set FaxFilePath=pxDocMulti.GenerateFaxFilePath() . Set:($$$ISOK(sc)) sc=pxDocMulti.VoorbladInfo.AddActionFaxFromPropts(Task,"",,.OverrideDestination) . Set FaxLogObj=##Class(BL.Derde.Fax.UitgaandeFaxen).AddFax(.Data,FaxFilePath,.scSave) . Set:($$$ISOK($G(scSave))) Task.ActionFax.FaxLog=FaxLogObj . Set:($$$ISOK(sc))&&($ZU(5)'="ADMIN1") Task.ActionFax.DoNotSend=1 ; De fax niet versturen onder indien "DEV-ADMIN" . Set RunMode=$S(($$$UCase(RunMode)="INLINE")||(RunMode=$$$rmInLine):$$$rmInLine, 1:$$$rmBatch) . Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,RunMode) ; $$$rmSync . ;d WLIP^vhDBG(97,"Status FopTask "_RunMode) . ;d WL^vhDBG("sc="_$$ParseStatus^vhLib(sc)_" OK:"_($$$ISOK(sc))_" error:"_($$$ISERR(sc))_$$$CRLF_" FaxLog.status="_FaxLogObj.VerzendStatus) . If ($$$ISERR(sc))&&($IsObject(FaxLogObj))&&(FaxLogObj.VerzendStatus="") Do . . Set FaxLogObj.VerzendStatus=$$$fjsErrorWS . . Set scSave=FaxLogObj.%Save() . Quit ; Do Do:Data("FopType")="M" ; E-mail . If $ZU(5)'="ADMIN1",$G(OverrideDestination)="" Set OverrideDestination=$$USERNAME^vhUSER(,"@") Set:OverrideDestination="" OverrideDestination="cw@vanhoecke.be" . ;If $G(OverrideDestination)="" Set OverrideDestination=$$USERNAME^vhUSER(,"@") Set:OverrideDestination="" OverrideDestination="cw@vanhoecke.be" ; Tijdelijk om te testen . Set pxVoorblad=##class(BL.FOP.Derde.pxVoorblad).Create(DataRef,$LB(),$G(Opties),.sc) . Set pxDocMulti=##class(Sys.FOP.emDocMulti).BuildDocMultiProxyMail(pxVoorblad,.lbDocTypes,.lbDocDefs,,.DerdeNr,.sc) . Set:$G(Data("TextId"))="Z" pxDocMulti.MetVoorblad=0 . Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("DocMultiRenderAndMail","Docs;Render;File;SendMail",) . Set Task.DocMulti=pxDocMulti . Set:($$$ISOK(sc)) sc=pxDocMulti.VoorbladInfo.AddActionMailFromPropts(Task,.OverrideDestination,.OverrideSubject) . Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,$S(($$$UCase(RunMode)="INLINE")||(RunMode=$$$rmInLine):$$$rmInLine, 1:$$$rmBatch)) ; $$$rmSync Quit sc ; CreateAndPrint(Data,Print,RunMode) New DataRef,DocType,Doc,Ref,DerdeNr,lbDocTypes,lbDocDefs,lbKeywordsPPOD,pxVoorblad,pxDocMulti,Task,Opties,sc,FaxLogObj,scSave Do CLOSE^vhPRINTER ; $$$ppodtFactuur ; $$$ppodtOfferte ; $$$ppodtOrder ; $$$ppodtLevBon ; $$$ppodtToelev ; $$$ppodtPrijslijst ; $$$ppodtRappel Set RunMode=$G(RunMode,$$$rmInLine) Set DataRef="Data",DocType=Data("Document") If DocType="?" Set (lbDocTypes,lbDocDefs)="" ; Vrije ingave If "\T\O\L\"[(D_DocType_D) Do ; Toelevering, order en leverbon . Set DerdeNr=Data($S(DocType="T":"LEVNr",1:"KLNr")),lbDocTypes=$LB($S(DocType="T":$$$ppodtToelev,DocType="O":$$$ppodtOrder,DocType="L":$$$ppodtLevBon,1:"")) . Set lbDocDefs=$LB($LB(Data("DocNum"))) . Set Ref="" . For Set Ref=$O(Data("DocNum",Ref)) Quit:Ref="" Do . . Set Doc=Data("DocNum",Ref) Set:Doc="" Doc=Ref . . Set lbDocTypes=lbDocTypes_$LB($S(DocType="T":$$$ppodtToelev,DocType="O":$$$ppodtOrder,DocType="L":$$$ppodtLevBon,1:"")) . . Set lbDocDefs=lbDocDefs_$S(DocType="L":$LB($LB(Doc,0)),1:$LB($LB(Doc))) Do:Data("FopType")="F" ; Fax . Set lbKeywordsPPOD="" . Set pxVoorblad=##class(BL.FOP.Derde.pxVoorblad).Create(DataRef,lbKeywordsPPOD,$G(Opties),.sc) . Set pxDocMulti=##class(Sys.FOP.emDocMulti).BuildDocMultiProxyFax(pxVoorblad,.lbDocTypes,.lbDocDefs,,.DerdeNr,.sc) . Set:$G(Data("TextId"))="Z" pxDocMulti.MetVoorblad=0 . ;Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("FaxRenderToPPODMergeAndPrint","FAX;Render;MergePPOD;PrintFax",) . Set Task=##class(BL.Flow.Basis.Doc).CreateFopTask("FaxRenderToPPODMergeAndSend","FAX;Render;MergePPOD;SendFax",) . Set Task.DocMulti=pxDocMulti . Set FaxFilePath=pxDocMulti.GenerateFaxFilePath() . ;Set:($$$ISOK(sc)) sc=Task.AddActionPrint(Printer,"") . Set:($$$ISOK(sc)) sc=pxDocMulti.VoorbladInfo.AddActionFaxFromPropts(Task,"",,.OverrideDestination) . Set FaxLogObj=##Class(BL.Derde.Fax.UitgaandeFaxen).AddFax(.Data,FaxFilePath,.scSave) . Set:($$$ISOK($G(scSave))) Task.ActionFax.FaxLog=FaxLogObj . Set:(1) Task.ActionFax.DoNotSend=1 ; De fax niet versturen indien print/tonen . Set RunMode=$S(($$$UCase(RunMode)="INLINE")||(RunMode=$$$rmInLine):$$$rmInLine, 1:$$$rmBatch) . Set:($$$ISOK(sc)) sc=##class(BL.Sys.FOP.CommonTasks).RunFopTask(Task,RunMode) ; $$$rmSync . ;d WLIP^vhDBG(97,"Status FopTask "_RunMode) . ;d WL^vhDBG("sc="_$$ParseStatus^vhLib(sc)_" OK:"_($$$ISOK(sc))_" error:"_($$$ISERR(sc))_$$$CRLF_" FaxLog.status="_FaxLogObj.VerzendStatus) . If ($$$ISERR(sc))&&($IsObject(FaxLogObj)) Do ; &&(FaxLogObj.VerzendStatus="") . . Set FaxLogObj.VerzendStatus=$$$fjsErrorWS . . Set scSave=FaxLogObj.%Save() . Else If (Task.ActionFax.DoNotSend=1)&&($IsObject(FaxLogObj)) Do ; &&(FaxLogObj.VerzendStatus="") . . Set FaxLogObj.VerzendStatus=$$$fjsManueleActie . . Set scSave=FaxLogObj.%Save() . Quit ; Do Quit sc ; Set sc=##class(BL.Flow.Levering.Doc).RenderAndPrintDoc(BONNr,1,"Printer",1) ; PrintBON(BONNr,FopPrinterName) Do CLOSE^vhPRINTER w !,BONNr r r Set DataRef="Data",lbKeywordsPPOD="" Set pxVoorblad=##class(BL.FOP.Derde.pxVoorblad).Create(DataRef,lbKeywordsPPOD,$G(Opties),.sc) w !,pxVoorblad r r Set pxDocMulti=##class(Sys.FOP.emDocMulti).BuildDocMultiProxyFax(pxVoorblad,.lbDocTypes,.lbDocDefs,,.DerdeNr,.sc) Set:$G(Data("TextId"))="Z" pxDocMulti.MetVoorblad=0 Quit ; Toeleveringen printen, faxen PrintTOE(TOENr,Fax) Do PRINT^DCTOE(TOENr,"","",Fax) Set TOENr="" For Set TOENr=$O(DocNum(TOENr)) Quit:TOENr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCTOE(TOENr,"","",Fax) ; Indien meerdere toeleveringen af te drukken Quit ; ; Offertes printen, faxen PrintOFF(OFFNr,Fax) Do PRINT^DCOFF(OFFNr,"","",Fax) Set OFFNr="" For Set OFFNr=$O(DocNum(OFFNr)) Quit:OFFNr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCOFF(OFFNr,"","",Fax) ; Indien meerdere offertes af te drukken Quit ; ; Orders printen, faxen PrintORD(ORDNr,Fax) Do PRINT^DCORD(ORDNr,"","",Fax) Set ORDNr="" For Set ORDNr=$O(DocNum(ORDNr)) Quit:ORDNr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCORD(ORDNr,"","",Fax) ; Indien meerdere orders af te drukken Quit ; ; Leverbons printen, faxen xxPrintBON(BONNr,FopPrinterName) New scX Set scX="Set sc=##class(BL.Flow.Levering.Doc).RenderAndPrintDoc(BONNr,1," Set:$L($P($G(FopPrinterName),";")) scX=scX_""""_$P(FopPrinterName,";")_"""" Set scX=scX_",1)" Xecute scX Set BONNr="" For Set BONNr=$O(DocNum(BONNr)) Quit:BONNr="" Do ; Indien meerdere leverbons af te drukken . Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) . Xecute scX Quit ; ; Facturen printen, faxen PrintFACT(FANr,Fax) If 0,$G(io)=1027 Do . New FilePath . Set FilePath=##class(BL.Flow.Factuur.Doc).ArchivePathFromDoc(FANr,"F") . If $L(FilePath) Set sc=##class(BL.Flow.Factuur.Doc).PrintPDF($$$ArchiveDirFOP_FilePath,"BROTHERBOEKH",1) . ;If $L(FilePath) Set sc=##class(BL.Flow.Factuur.Doc).PrintPDF($$$ArchiveDirFOP_FilePath,"KyoceraFS4000",1) . Else Do PRINT^DCFAKT(FANr,"","",Fax) Else Do . Do PRINT^DCFAKT(FANr,"","",Fax) . Set FANr="" . For Set FANr=$O(DocNum(FANr)) Quit:FANr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCFAKT(FANr,"","",Fax) ; Indien meerdere facturen af te drukken Quit ; ; Proforma's printen, faxen PrintPROF(PROFNr,Fax) Do PRINT^DCFAKTP(PROFNr,"","",Fax) Set PROFNr="" For Set PROFNr=$O(DocNum(PROFNr)) Quit:PROFNr="" Do:$G(%FaxNr) NEWPAGE^vhFAX(%FaxNr) Do PRINT^DCFAKTP(PROFNr,"","",Fax) ; Indien meerdere proforma's af te drukken Quit ; ; E-mail MAIL(Data) New R,sc,Warn,Titel Set FP=2201 Write @F,@F1 Merge Data("Tekst")=^HULP(%J,"T") Do MERGSLOT Kill ^HULP(%J,"T") Merge ^HULP(%J,"T")=Data("Tekst") Set Data("Datum")=$$EXTDATE^vhDTyp(Data("Datum"),"DC",Taal)_", "_$$EXTDATE^vhDTyp(Data("Datum"),"DL",Taal) Set sc=$$CreateAndSend(.Data) Do LogPrintDoc(.Data,"M") If $$$ISERR(sc) Set Warn=$$ParseStatus^vhLib(sc),Titel="" Else Do . Set R=Data("em") . For Quit:R'[";" Set R=$P(R,";")_"~ "_$P(R,";",2,99) . Set Warn="to: "_R,Titel="Mail verzonden" . Set R=Data("cc") . For Quit:R'[";" Set R=$P(R,";")_"~ "_$P(R,";",2,99) . Set:$L(R) Warn=Warn_"~cc: "_R . Set R=Data("bcc") . For Quit:R'[";" Set R=$P(R,";")_"~ "_$P(R,";",2,99) . Set:$L(R) Warn=Warn_"~bcc: "_R Do WARN^vhTXTPOP(Warn,Titel) Quit ; ; Algemene initialisatie INIT(Taal) Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set Data("Taal")=Taal Set Data("FopType")="F" Quit ; ; Initialisatie faxlocal FaxINIT(FaxId) New R,Tav Set Data("FopType")="F" Set Data("Aan")="" Set Data("Tav")="" Set Data("Fax")="" Set Data("Betreft")="" Set Data("Pages")="" If $G(FaxId) Do ; Hergebruik klant, leverancier of int. persoon . Merge R=^FAX("D",FaxId) . For R="Document","Taal","Aan","Aanspr","Naam","Tav","Fax","Betreft","Pages","Type","KLNr","LEVNr","em","cc","bcc" Merge Data(R)=R(R) . Merge ^HULP(%J,"T")=R("Tekst") . Set Data("FaxId")=FaxId . Set Taal=R("Taal") Else If $E($G(FaxId))="^" Do ; Gebruik vorig voorblad . Merge R=^DEVSAVE($I,"FAX",+$E(FaxId,2)) . For R="Document","Taal","Aan","Aanspr","Naam","Tav","Fax","Betreft","Pages","Type","KLNr","LEVNr","em","cc","bcc" Merge Data(R)=R(R) . Merge ^HULP(%J,"T")=R("Tekst") . Set Taal=R("Taal") Else Do ; Nieuwe fax . If "\TOE\"[(D_$G(Data("Via"))_D),$G(Data("LEVNr")) Set Tav=$$GetDefaultemLev(Data("LEVNr")) . If "\OFF\ORD\BON\FACT\PROF\"[(D_$G(Data("Via"))_D),$G(Data("KLNr")) Set Tav=$$GetDefaultTavKlant(Data("KLNr")) . If $L($G(Tav)) Set Data("Tav")=$P(Tav,D) Set:$L($P(Tav,D,2)) Data("Fax")=$P(Tav,D,2) Set Data("Datum")=+$H Set Data("Van")=$$USERNAME^vhUSER(,1),Data("VanUser")=$$USERID^vhUSER() Quit ; ; Initialisatie maillocal MailINIT(FaxId) Set Data("FopType")="M" Set Data("Aan")="" Set Data("em")="" Set Data("cc")="" Set Data("bcc")="" Set Data("Betreft")="" If $G(FaxId) Do ; Hergebruik klant, leverancier of int. persoon . Merge R=^FAX("D",FaxId) . For R="Document","Taal","Aan","Betreft","Pages","Type","KLNr","LEVNr","em","cc","bcc" Merge Data(R)=R(R) . Merge ^HULP(%J,"T")=R("Tekst") . Set Data("FaxId")=FaxId . Set Taal=R("Taal") Else If $E($G(FaxId))="^" Do ; Gebruik vorig voorblad . Merge R=^DEVSAVE($I,"FAX",+$E(FaxId,2)) . For R="Document","Taal","Aan","Betreft","Pages","Type","KLNr","LEVNr","em","cc","bcc" Merge Data(R)=R(R) . Merge ^HULP(%J,"T")=R("Tekst") . Set Taal=R("Taal") Else Do ; Nieuwe fax . If "\MENU\"[(D_$G(Data("Via"))_D),Data("em")="" Do . . If $G(Data("Type"))="L",$G(Data("LEVNr")) Set Data("em")=$$GetDefaultemLev(Data("LEVNr")) . . If $G(Data("Type"))="K",$G(Data("KLNr")) Set Data("em")=$$GetDefaultemKlant(Data("KLNr")) . If "\TOE\"[(D_$G(Data("Via"))_D),$G(Data("LEVNr")) Set Data("em")=$$GetDefaultemLev(Data("LEVNr")) . If "\OFF\ORD\BON\FACT\PROF\"[(D_$G(Data("Via"))_D),$G(Data("KLNr")) Set Data("em")=$$GetDefaultemKlant(Data("KLNr")) Set Data("Datum")=+$H Set Data("Van")=$$USERNAME^vhUSER(,"@"),Data("VanUser")=$$USERID^vhUSER() Quit ; ; Initialisatie van het scherm SINIT New R,PutRubr,RemRubr,Via Set Taal=Data("Taal") ; Verbergen en activeren van de lijnen Set RemRubr="FL1;FLAAN;FLTAV;FLFAX;FLBETR;FLDATUM;FLVAN;FLPAG;FL2" Set PutRubr="ML1;MLAAN;MLEM;MLCC;MLBCC;MLBETR;MLDATUM;MLVAN;ML2" If Data("FopType")'="F" Set R=RemRubr,RemRubr=PutRubr,PutRubr=R Do PUTATTR^vhScherm(PutRubr,"H","H"),REMATTR^vhScherm(RemRubr,"H","H") ; Verbergen en activeren van de rubrieken Set RemRubr="FAAN;FTAV;FFAX;FBETR;FDATUM;FVAN;FPAG" Set PutRubr="MAAN;MEM;MCC;MBCC;MBETR;MDATUM;MVAN" If Data("FopType")'="F" Set R=RemRubr,RemRubr=PutRubr,PutRubr=R Do PUTATTR^vhScherm(PutRubr,"H","DH"),REMATTR^vhScherm(RemRubr,"H","DH") Set Via=Data("Via"),PutRubr="" Set:Via="MENU" PutRubr=";FDATUM;FVAN;MDATUM;MVAN" ; Deactiveren van de rubrieken indien 'MENU' Set:Via="KLANT" PutRubr=";FAAN;MAAN;FDATUM;FVAN;MDATUM;MVAN" ; Deactiveren van de rubrieken indien 'KLANT' Set:"\TOE\OFF\ORD\BON\FACT\PROF\"[(D_Via_D) PutRubr=";FAAN;FDATUM;FVAN;MAAN;MDATUM;MVAN" ; Deactiveren van de rubrieken indien 'OFFERTE, ORDER,...' If $G(Data("ToDev"))="MM" Set PutRubr=PutRubr_";MEM;MCC;MBCC;MBETR" Do:$L(PutRubr) . Set $E(PutRubr)="" . Do PUTATTR^vhScherm(PutRubr,"","D") Quit ; ; Algemene klantgegevens KlINIT(KLNr,Data) New R,FopType,KlantInd,Naam,Aanspr,Verantw,Fax,Taal Set FopType=Data("FopType") Kill Data("KLNr"),Data("LEVNr") Do:$G(KLNr) . Set Data("KLNr")=KLNr,Data("Type")="K" . Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0) . Set Taal=$P(R,D,9) Set:Taal="" Taal="N" . Set Data("Taal")=Taal . Set Naam=$P(R,D,2),Aanspr=$P(R,D,4) . Set Data("Aan")=$S($L(Aanspr):Aanspr_" ",1:"")_Naam . Set Data("Naam")=Naam,Data("Aanspr")=Aanspr . Set:FopType="F" R=^KKL(KlantInd,1),Fax=$P(R,D,24),Data("Fax")=Fax . Set:FopType="M" R=^KKL(KlantInd,2),EMail=$P(R,D,19),Data("em")=EMail Quit ; ; Algemene leveranciersgegevens LevINIT(LEVNr,Data) New R,FopType,LevInd,Naam,Aanspr,Verantw,Fax,Taal Set FopType=Data("FopType") Kill Data("LEVNr"),Data("KLNr") Do:$G(LEVNr) . Set Data("LEVNr")=LEVNr,Data("Type")="L" . Set LevInd=^KL1(LEVNr),R=^KLE(LevInd,0) . Set Taal=$P(R,D,9) Set:Taal="" Taal="N" . Set Data("Taal")=Taal . Set Naam=$P(R,D,2),Aanspr=$P(R,D,4) . Set Data("Aan")=$S($L(Aanspr):Aanspr_" ",1:"")_Naam . Set:FopType="F" R=^KLE(LevInd,1),Fax=$P(R,D,24),Data("Fax")=Fax . Set:FopType="M" R=^KLE(LevInd,2),EMail=$P(R,D,19),Data("em")=EMail Quit ; ; Algemene gegevens derde DerdeINIT(Derde) Kill Data("KLNr"),Data("LEVNr") Do:$G(KLNr) Set Data("Type")="D" Set Data("Aan")=Derde Quit ; ; Generereren en tonen horizontale of verticale lijn op het scherm LINE(sFR,Type,Len,Vert) Set FP=$P(sFR,"`",5)*100+$P(sFR,"`",6) Write @F,@F7,$$LINE^vhRtn1(Type,Len,Vert),@F8 Quit ; ; Popup voor de keuze van het FopType FopType New R,zb,Text,FaxId,Via Set sEr=-1,X=$$PI^vhPOPUP("C;C","-1Op","","FAXMAIL","FOPTYPE",X) If zb="CANC" Set:$G(sDir) sDir=-1 Else Do Goto FopType:zb="CANC" . If X="F" Do . . Set Via=Data("Via") . . If Via'="MENU" . . Else Do:'$L(Data("Aan")) . . . Set R=$$SELECT^FAX(),zb=$S($E(R)="-":"CANC",1:"") . . . Quit:zb="CANC" . . . Set Text=$P(R,";"),FaxId=$P(R,";",2) . . . Set:2'[Text FaxId="^"_Text . . . Quit:FaxId . . . Kill ^HULP(%J) . . . Set (Taal,Data("Taal"))="N" . . Quit:zb="CANC" . . Do FaxINIT($G(FaxId)) . Do:X="M" MailINIT() . Quit:zb="CANC" . Do ADD^vhScherm(1,24),SINIT,REFRESH^vhScherm . Set %SC=1 Set:$G(sDir)=-1 sDir=1 Quit ; ; Aan wie is het document gericht (klant, leverancier, derde of een reeks van klanten) AAN(Data) New R,Select,KLNr,LEVNr Set R=$$SELECT^KONTAKT("KLDA","D","","Aan : ","","","","$$MULTI^FaxMail2(%J);Bepaalde klanten") Set Select=$P(R,";"),(KLNr,LEVNr,SRef)=$P(R,";",2) If Select="S" Do ;.Do SERIE^FaxMail2(SRef) Do:Select="D" DerdeINIT(SRef) Do:Select="K" KlINIT(KLNr,.Data) Do:Select="L" LevINIT(LEVNr,.Data) If Select'="D" Do . Do SINIT,PAINT^vhScherm . Set (TextId,Data("TextId"))="?" Set sEr=-1 Set:$G(sDir) sDir=$S(Select="-":-1,1:1) Quit ; ; Opvragen fax tav via ^PERS TAV(Old) New R,Type,Number,Optie,FaxNr,Persoon,FaxAlgemeen Set Type=$G(Data("Type")) Do:$L(Type) . Set Optie("CASE")="L",Optie("SELECT")=$G(Old),Optie("CONNECT")="F",Optie("PIECE")="5,6",FP=2201 . Write @F,@F1 . Set:Type="K" Number=Data("KLNr"),FaxAlgemeen=$P(^KKL(^KK1(Number),0),D,2)_D_$P(^KKL(^KK1(Number),1),D,24) . Set:Type="L" Number=Data("LEVNr"),FaxAlgemeen=$P(^KLE(^KL1(Number),0),D,2)_D_$P(^KLE(^KL1(Number),1),D,24) . Set:$L($P($G(FaxAlgemeen),D,2)) Optie("BEFORE",1)=FaxAlgemeen . Set R=$$SELECT^PERS(Type,Number,.Optie),Persoon=$P(R,D),FaxNr=$P(R,D,2) . Set FaxNr=$S($L(FaxNr):FaxNr,1:$$AlgFAXNR(Type,Data($S(Type="K":"KLNr",1:"LEVNr")))) . If FaxNr'=Data("Fax") Set Data("Fax")=FaxNr Do REPAINT^vhScherm("FFAX") Quit $G(Persoon) ; ; Haal de gegevens van de standaard aangesproken persoon voor een toelevering GetDefaultTavLev(LEVNr,VwBeperk) New Tav,Optie Set Optie("CONNECT")="F" Set Optie("NOPOP")=1 Set Optie("PIECE")="5,6" Set Optie("VWBEPERK")=$G(VwBeperk,"VK") Set Tav=$P($$SELECT^PERSS("L",LEVNr,.Optie),";") Set:Tav="" Optie("VWBEPERK")="AB",Tav=$P($$SELECT^PERSS("L",LEVNr,.Optie),";") Set:Tav="" Tav=$$TXT^DCFAX("Aank") Set:$P(Tav,D,2)="" $P(Tav,D,2)=$P(^KLE(^KL1(LEVNr),1),D,24) Quit Tav ; ; Haal de gegevens van de standaard aangesproken persoon voor een offerte, order,... GetDefaultTavKlant(KLNr,VwBeperk) New Tav,Optie Set Optie("CONNECT")="F" Set Optie("NOPOP")=1 Set Optie("PIECE")="5,6" Set Optie("VWBEPERK")=$G(VwBeperk,"AK") Set Tav=$P($$SELECT^PERSS("K",KLNr,.Optie),";") Set:Tav="" Optie("VWBEPERK")="AB",Tav=$P($$SELECT^PERSS("K",KLNr,.Optie),";") Set:Tav="" Tav=$$TXT^DCFAX("Aank") Set:$P(Tav,D,2)="" $P(Tav,D,2)=$P(^KKL(^KK1(KLNr),1),D,24) Quit Tav ; ; Opvragen e-mail via ^PERS em(emType,Old) New R,Type,Number,Optie,EMail,emAlgemeen Set Type=$G(Data("Type")) Do:$L(Type) . Set Optie("CASE")="L" . Set Optie("SELECT")=$G(Old) . Set Optie("CONNECT")="E" . Set Optie("PIECE")=6 . Set Optie("MULTI")="M" . Set Optie("FILTER")=1 . Set Optie("STRIPEM")="#~" . Set FP=2201 . Write @F,@F1 . Set:Type="K" Number=Data("KLNr"),emAlgemeen=$P(^KKL(^KK1(Number),0),D,2)_D_$P(^KKL(^KK1(Number),2),D,19) . Set:Type="L" Number=Data("LEVNr"),emAlgemeen=$P(^KLE(^KL1(Number),2),D,2)_D_$P(^KLE(^KL1(Number),2),D,19) . Set:$L($P($G(emAlgemeen),D,2)) Optie("BEFORE",1)=emAlgemeen . Set EMail=$$SELECT^PERS(Type,Number,.Optie) . Set EMail=$S($L($TR(EMail,";","")):EMail,1:$$AlgEMail(Type,Data($S(Type="K":"KLNr",1:"LEVNr")))) . For Quit:EMail'[";;" Set EMail=$P(EMail,";;")_";"_$P(EMail,";;",2,99) . Set:$E(EMail)=";" $E(EMail)="" Set:$E(EMail,$L(EMail))=";" $E(EMail,$L(EMail))="" Quit $S($G(zb)="CANC":$G(Old),1:$G(EMail)) ; ; Haal de gegevens van de standaard aangesproken persoon (e-mail) voor een toelevering GetDefaultemLev(LEVNr,VwBeperk,Multi) New R,em,Optie,zb Set Multi=$G(Multi) Set Optie("CONNECT")="E" Set Optie("PIECE")=6 Set Optie("VWBEPERK")=$G(VwBeperk,"VK") Set Optie("FILTER")=1 Set Optie("STRIPEM")="#~" If Multi Do . Set Optie("TITEL")=$$LOCASE^vhRtn1($G(Data("Betreft"))) . Set:$L(Optie("TITEL")) Optie("TITEL")="&LMail "_Optie("TITEL")_" aan?" . Set Optie("MULTI")="M",(Optie("AUTOSEL"),Optie("SELECT"))=1 Else Set Optie("NOPOP")=1 Set R=$$SELECT^PERSS("L",LEVNr,.Optie),em=$S($G(zb)="CANC":"",1:R) Set:em="" Optie("VWBEPERK")="AB",R=$$SELECT^PERSS("L",LEVNr,.Optie),em=$S($G(zb)="CANC":"",1:R) Set:em="" em=$P(^KLE(^KL1(LEVNr),2),D,19) Set:'Multi em=$P(em,";") Quit em ; ; Haal de gegevens van de standaard aangesproken persoon (e-mail) voor een offerte, order,... GetDefaultemKlant(KLNr,VwBeperk,Multi) New R,em,Optie,zb Set Multi=$G(Multi) Set Optie("CONNECT")="E" Set Optie("PIECE")=6 Set Optie("VWBEPERK")=$G(VwBeperk,"AK") Set Optie("FILTER")=1 Set Optie("STRIPEM")="#~" If Multi Do . Set Optie("TITEL")=$$LOCASE^vhRtn1($G(Data("Betreft"))) . Set:$L(Optie("TITEL")) Optie("TITEL")="&LMail "_Optie("TITEL")_" aan?" . Set Optie("MULTI")="M",(Optie("AUTOSEL"),Optie("SELECT"))=1 Else Set Optie("NOPOP")=1 Set R=$$SELECT^PERSS("K",KLNr,.Optie),em=$S($G(zb)="CANC":"",1:R) Set:em="" Optie("VWBEPERK")="AB",R=$$SELECT^PERSS("K",KLNr,.Optie),em=$S($G(zb)="CANC":"",1:R) Set:em="" em=$P(^KKL(^KK1(KLNr),2),D,19) Set:'Multi em=$P(em,";") Quit em ; ; Help voor de rubriek em, cc, bcc en TAV emaTavHELP() New Help Set Help=$S("D"[$G(Data("Type")):"",1:" page up (SEL) voor lijst") Quit Help ; ; Opvragen van de taal TAAL(Taal) New R Set FP=2201 Write @F,@F1 Set R=$$PI^vhPOPUP("2;58","1O-","Taal","DCFAX","TAAL",Taal) If $L(R),R'=Taal Set (Taal,Data("Taal"))=R Do PAINT^vhScherm Quit Taal ; ; Tonen van de taal DTAAL(Taal) Quit $P(^RES("DCFAX","PI","TAAL","D",Taal),"`",2) ; ; Rubriek xecute XRUBRIEK New DateOld,DateNew,FopType,Save If X="." Kill ^HULP(%J,"T") If X="-" Do . Set FopType=Data("FopType") . Do:FopType="F" . . If $G(Data("Type"))'="S" Do ; Het is geen reeks van klanten . . . If $TR(Data("Aan")," ","")="" Do FIELDI^vhScherm("FAAN") Set:$TR(Data("Aan")," ","")="" X="" . . . Quit:X="" . . . If $TR(Data("Fax")," ","")="" Do FIELDI^vhScherm("FFAX") Set:$TR(Data("Fax")," ","")="" X="" . . . Quit:X="" . . . If $TR(Data("Betreft")," ","")="" Do FIELDI^vhScherm("FBETR") Set:$TR(Data("Betreft")," ","")="" X="" . . Quit:X="" . . If '$$TEKST() Do FIELDI^vhScherm("TEKST") Set:'$$TEKST() X="" . Do:FopType="M" . . If $G(Data("Type"))'="S" Do ; Het is geen reeks van klanten . . . If $TR(Data("Aan")," ","")="" Do FIELDI^vhScherm("MAAN") Set:$TR(Data("Aan")," ","")="" X="" . . . Quit:X="" . . . If $TR(Data("em"),"; ","")="" Do FIELDI^vhScherm("MEM") Set:$TR(Data("em"),"; ","")="" X="" . . . Quit:X="" . . . If $TR(Data("Betreft")," ","")="" Do FIELDI^vhScherm("MBETR") Set:$TR(Data("Betreft")," ","")="" X="" . . Quit:X="" . . If '$$TEKST() Do FIELDI^vhScherm("TEKST") Set:'$$TEKST() X="" . Quit:X="" . If %SC Do Quit:X="" . . Set Save=$$AskSAVE(.Data) . . If Save="" Set X="" Quit . . If Save="A" Kill Data("FaxId") Set Save="J" . . Set Data("Save")=Save="J" Quit ; ; Is er een tekst ingegeven TEKST() New Next Set Next="" For Set Next=$O(^HULP(%J,"T",Next)) Quit:Next="" Quit:$L(^HULP(%J,"T",Next)) Kill:'Next ^HULP(%J,"T") Quit Next ; ; Algemeen faxnummer indien geen in ^PERS AlgFAXNR(Type,Nummer) New I,R,Global,IGlobal,FaxNr Set Global=$S(Type="K":"KL",Type="L":"LE",1:""),IGlobal=$S(Type="K":"K1",Type="L":"L1",1:"") Set FaxNr=$P(@("^"_Q_Global_"(@(""^""_Q_IGlobal_""(Nummer)""),1)"),D,24) Quit FaxNr ; ; Algemeen E-mail indien geen in ^PERS AlgEMail(Type,Nummer) New I,R,Global,IGlobal,FaxNr Set Global=$S(Type="K":"KL",Type="L":"LE",1:""),IGlobal=$S(Type="K":"K1",Type="L":"L1",1:"") Set FaxNr=$P(@("^"_Q_Global_"(@(""^""_Q_IGlobal_""(Nummer)""),2)"),D,19) Quit FaxNr ; ; Opvragen of de data moeten bewaard worden AskSAVE(Data) New Save Set Save="J" ; Gewijzigde documenten steeds opslaan Do:Data("FopType")="F" . If $G(Data("FaxId")) Set Save=$$^vhTXTPOP("FAXMAIL","SAVEMOD") ; Gewijzigde fax opslag bevestigen . Else If Data("Document")="?" Set Save=$$^vhTXTPOP("FAXMAIL","SAVENEW") ; Vrije fax opslag bevestigen Do:Data("FopType")="M" . If $G(Data("FaxId")) Set Save=$$^vhTXTPOP("FAXMAIL","SAVEMODMAIL") ; Gewijzigde fax opslag bevestigen . Else If Data("Document")="?" Set Save=$$^vhTXTPOP("FAXMAIL","SAVENEWMAIL") ; Vrije fax opslag bevestigen Quit Save ; ; Invullen van de logging bij het afdrukken van documenten ; Type = P(rinter), F(ax) of M(ail) LogPrintDoc(Data,Type) New DocType,Doc,Ref Set DocType=$G(Data("Document")),DocType=$S(DocType="T":"TO",DocType="A":"OFF",DocType="O":"OD",DocType="L":"UL",DocType="F":"FAKT",DocType="V":"PROF",1:"") Do:$L(DocType) . Set Doc=Data("DocNum") . Do PRINT^LOG(DocType,Doc,Type) . Set Ref="" . For Set Ref=$O(Data("DocNum",Ref)) Quit:Ref="" Do . . Set Doc=Data("DocNum",Ref) Set:Doc="" Doc=Ref . . Do PRINT^LOG(DocType,Doc,Type) Quit ;