| 1 | XMJMR ;ISC-SF/GMB-Interactive Reply ;04/24/2002  10:28 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces REPLY^XMA11,^XMA2,^XMA20,^XMAH1 (ISC-WASH/CAP/THM) | 
|---|
| 4 | REPLY(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMINCL,XMRESP) ; | 
|---|
| 5 | N XMABORT,XMZ,XMID,XMWHICH,XMZI | 
|---|
| 6 | S XMABORT=0 | 
|---|
| 7 | D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,XMINCL,.XMZI,.XMWHICH,.XMABORT) Q:XMABORT | 
|---|
| 8 | D CRE8XMZ^XMXSEND("R"_XMZO,.XMZ,1) I XMZ<1 S XMABORT=1 Q | 
|---|
| 9 | S XMID=$S(XMDUZ=.6:DUZ,1:XMDUZ) | 
|---|
| 10 | D EDITON^XMJMS(XMID,XMZ,XMZO) | 
|---|
| 11 | D PROCESS(XMID,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,.XMZI,.XMWHICH,.XMABORT) | 
|---|
| 12 | I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to | 
|---|
| 13 | D EDITOFF^XMJMS(XMID) | 
|---|
| 14 | D:XMABORT KILLMSG^XMXUTIL(XMZ) | 
|---|
| 15 | Q | 
|---|
| 16 | PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,XMINSTR,XMPTR,XMRESPSO,XMRESP,XMZI,XMWHICH,XMABORT) ; | 
|---|
| 17 | N XMRESTR | 
|---|
| 18 | S XMRESTR("REPLYTO")=XMZO | 
|---|
| 19 | D:$D(XMWHICH) COPYTEXT^XMJMR1(XMZI,XMZ,XMWHICH,(XMZI'=XMZO)) | 
|---|
| 20 | D BODY^XMJMS(XMDUZ,XMZ,XMZOSUBJ,.XMRESTR,.XMABORT) Q:XMABORT | 
|---|
| 21 | D REPLYMSG^XMJMRO(XMDUZ,XMK,XMKN,XMZO,XMZ,XMZOSUBJ,.XMRESTR,XMPTR,XMRESPSO,.XMRESP,.XMABORT) Q:XMABORT | 
|---|
| 22 | I XMZOFROM["@",$$UP^XLFSTR(XMZOFROM)'["POSTMASTER" D REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,.XMINSTR) | 
|---|
| 23 | Q | 
|---|
| 24 | REMOTE(XMDUZ,XMZO,XMZOSUBJ,XMZ,XMINSTR) ; | 
|---|
| 25 | N DIR,Y,XMSUBJ,XMTO,XMABORT | 
|---|
| 26 | S XMABORT=0 | 
|---|
| 27 | S DIR("A")=$$EZBLD^DIALOG(34206) ; Do you wish to send this reply across the network? | 
|---|
| 28 | S DIR(0)="Y",DIR("B")=$$EZBLD^DIALOG(39053) ; No | 
|---|
| 29 | D BLD^DIALOG(34207,"","","DIR(""?"")") ; Enter YES if you wish your response ... | 
|---|
| 30 | S DIR("??")="^D RHELP^XMJMR" | 
|---|
| 31 | D ^DIR Q:'Y!$D(DIRUT) | 
|---|
| 32 | S XMRE=$$EZBLD^DIALOG(37006) ; Re: | 
|---|
| 33 | S XMSUBJ=$S($$UP^XLFSTR($E(XMZOSUBJ,1,$L(XMRE)))=$$UP^XLFSTR(XMRE):XMZOSUBJ,1:$E(XMRE_XMZOSUBJ,1,65)) | 
|---|
| 34 | D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT | 
|---|
| 35 | D REPLYTO(XMZO,.XMTO,.XMABORT) Q:XMABORT | 
|---|
| 36 | W !,$$EZBLD^DIALOG(34211,XMTO) ; Addressing the reply to: |1| | 
|---|
| 37 | D INIT^XMXADDR | 
|---|
| 38 | S XMINSTR("EXACT")=1 ; Match on exact domain name | 
|---|
| 39 | D ADDR^XMXADDR(XMDUZ,XMTO,.XMINSTR) | 
|---|
| 40 | K XMINSTR("EXACT") | 
|---|
| 41 | ;S:XMTO[".VA.GOV" XMTO=$TR($P(XMTO,"@"),"._+",", .")_"@"_$P(XMTO,"@",2) | 
|---|
| 42 | I $$GOTADDR^XMXADDR D | 
|---|
| 43 | . W !,$$EZBLD^DIALOG(34212) ; Sending network reply... | 
|---|
| 44 | . D NETREPLY^XMXREPLY(XMDUZ,XMZO,XMZ,XMSUBJ,.XMINSTR) | 
|---|
| 45 | . W $$EZBLD^DIALOG(34213) ; Sent | 
|---|
| 46 | D CLEANUP^XMXADDR | 
|---|
| 47 | Q | 
|---|
| 48 | RHELP ; | 
|---|
| 49 | N XMTEXT | 
|---|
| 50 | D BLD^DIALOG(34208,"","","XMTEXT","F") ; A network response will go to all message ... (explains network reply) | 
|---|
| 51 | D MSG^DIALOG("WH","","","","XMTEXT") | 
|---|
| 52 | Q | 
|---|
| 53 | REPLYTO(XMZ,XMFROM,XMABORT) ; | 
|---|
| 54 | N XMREPLTO,XMF,XMR | 
|---|
| 55 | D REPLYTO^XMXREPLY(XMZ,.XMFROM,.XMREPLTO) | 
|---|
| 56 | S XMF=XMFROM | 
|---|
| 57 | S XMFROM=$$REMADDR^XMXADDR3(XMFROM) | 
|---|
| 58 | Q:$G(XMREPLTO)="" | 
|---|
| 59 | S XMR=XMREPLTO | 
|---|
| 60 | S XMREPLTO=$$REMADDR^XMXADDR3(XMREPLTO) | 
|---|
| 61 | Q:$$UP^XLFSTR(XMREPLTO)=$$UP^XLFSTR(XMFROM) | 
|---|
| 62 | N DIR,Y | 
|---|
| 63 | S DIR(0)="S^" | 
|---|
| 64 | S DIR(0)=DIR(0)_"F:'FROM'     "_XMF | 
|---|
| 65 | S DIR(0)=DIR(0)_";R:'REPLY-TO' "_XMR | 
|---|
| 66 | S DIR("B")="R" | 
|---|
| 67 | D BLD^DIALOG(34214,"","","DIR(""A"")") ; This message has a 'reply-to' address ... (use which address?) | 
|---|
| 68 | D BLD^DIALOG(34215,"","","DIR(""?"")") ; Generally, we recommend that you use ... | 
|---|
| 69 | D ^DIR I $D(DIRUT) S XMABORT=1 Q | 
|---|
| 70 | S:Y="R" XMFROM=XMREPLTO | 
|---|
| 71 | Q | 
|---|
| 72 | RECOVER(XMDUZ,XMZ,XMZO) ; | 
|---|
| 73 | I XMDUZ'=DUZ,$$ZCONFID^XMXSEC(XMZO) D  Q | 
|---|
| 74 | . ; If user is surrogate & msg is confidential, delete unsent reply. | 
|---|
| 75 | . D EDITOFF^XMJMS(XMDUZ) | 
|---|
| 76 | . D KILLMSG^XMXUTIL(XMZ) | 
|---|
| 77 | N XMSUBJ,DIR,Y,XMTEXT | 
|---|
| 78 | S XMSUBJ=$P(^XMB(3.9,XMZO,0),U,1) | 
|---|
| 79 | S:XMSUBJ["~U~" XMSUBJ=$$DECODEUP^XMXUTIL1(XMSUBJ) | 
|---|
| 80 | W $C(7),! | 
|---|
| 81 | ;You have / |1| has an unsent response in your buffer. | 
|---|
| 82 | D BLD^DIALOG($S(XMDUZ=DUZ:34222,1:34222.1),XMV("NAME"),"","XMTEXT","F") | 
|---|
| 83 | ;Subj: _XMSUBJ | 
|---|
| 84 | D BLD^DIALOG(34536,XMSUBJ,"","XMTEXT","FS") | 
|---|
| 85 | D MSG^DIALOG("WM","",79,"","XMTEXT") | 
|---|
| 86 | W ! | 
|---|
| 87 | ;You may continue to reply, or delete the remaining text. | 
|---|
| 88 | ;Shall we delete the unsent response? | 
|---|
| 89 | D BLD^DIALOG(34222.3,"","","DIR(""A"")") | 
|---|
| 90 | S DIR(0)="Y" | 
|---|
| 91 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No | 
|---|
| 92 | D BLD^DIALOG(34223,"","","DIR(""?"")") ; Enter YES to delete the unsent response... | 
|---|
| 93 | D ^DIR | 
|---|
| 94 | I $D(DTOUT) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering | 
|---|
| 95 | I Y=1!$D(DUOUT) D  Q | 
|---|
| 96 | . D EDITOFF^XMJMS(XMDUZ) | 
|---|
| 97 | . D KILLMSG^XMXUTIL(XMZ) | 
|---|
| 98 | N XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMABORT,XMSECURE,XMPAKMAN,XMWHICH,XMPTR,XMRESPSO,XMRESP | 
|---|
| 99 | S XMABORT=0 | 
|---|
| 100 | D RECINIT(XMDUZ,XMZO,.XMK,.XMKN,.XMZOSUBJ,.XMZOFROM,.XMINSTR,.XMPTR,.XMRESPSO,.XMRESP) | 
|---|
| 101 | D WAIT^XMXUTIL | 
|---|
| 102 | D INIT^XMJMR1(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,.XMINSTR,0,"",.XMWHICH,.XMABORT) Q:XMV("NOSEND") | 
|---|
| 103 | I XMABORT D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering | 
|---|
| 104 | D PROCESS(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMZ,.XMINSTR,XMPTR,XMRESPSO,.XMRESP,"",.XMWHICH,.XMABORT) | 
|---|
| 105 | I XMABORT=DTIME D HALT^XMJMS($$EZBLD^DIALOG(34220)) ; replying to | 
|---|
| 106 | D EDITOFF^XMJMS(XMDUZ) | 
|---|
| 107 | D:XMABORT KILLMSG^XMXUTIL(XMZ) | 
|---|
| 108 | Q | 
|---|
| 109 | RECINIT(XMDUZ,XMZO,XMK,XMKN,XMZOSUBJ,XMZOFROM,XMINSTR,XMPTR,XMRESPSO,XMRESP) ; | 
|---|
| 110 | N XMSECBAD,XMIM,XMIU | 
|---|
| 111 | S XMK=+$O(^XMB(3.7,"M",XMZO,XMDUZ,"")) | 
|---|
| 112 | S XMKN=$P($G(^XMB(3.7,XMDUZ,2,XMK,0)),U,1) | 
|---|
| 113 | D DISPMSG^XMJMP(XMDUZ,XMK,XMKN,XMZO,.XMSECBAD,1) | 
|---|
| 114 | I $G(XMSECBAD) D HALT^XMJMS($$EZBLD^DIALOG(34221)) ; recovering | 
|---|
| 115 | D INMSG^XMXUTIL2(XMDUZ,0,XMZO,"","I",.XMIM,.XMINSTR,.XMIU) | 
|---|
| 116 | S XMZOSUBJ=XMIM("SUBJ") | 
|---|
| 117 | S XMZOFROM=XMIM("FROM") | 
|---|
| 118 | S XMRESPSO=XMIM("RESPS") | 
|---|
| 119 | S XMPTR=XMIU("IEN") | 
|---|
| 120 | S XMRESP=XMIU("RESP") | 
|---|
| 121 | Q | 
|---|