| 1 | XMJMC ;ISC-SF/GMB-Copy message ;02/23/2000  15:34 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces ^XMA2C,^XMA2C0 (ISC-WASH/CAP) | 
|---|
| 4 | COPY(XMDUZ,XMK,XMZ,XMFROM) ; | 
|---|
| 5 | N XMABORT,XMWHICH,XMLR,XMSAME,XMZREC | 
|---|
| 6 | D INIT(XMDUZ,XMK,XMZ,XMFROM,.XMZREC,.XMWHICH,.XMLR,.XMSAME,.XMABORT) Q:XMABORT | 
|---|
| 7 | D COPYIT(XMDUZ,XMZ,$P(XMZREC,U,1),XMFROM,$P(XMZREC,U,3),XMWHICH,XMLR,XMSAME) | 
|---|
| 8 | Q | 
|---|
| 9 | INIT(XMDUZ,XMK,XMZ,XMFROM,XMZREC,XMWHICH,XMLR,XMSAME,XMABORT) ; | 
|---|
| 10 | S XMZREC=^XMB(3.9,XMZ,0) | 
|---|
| 11 | S XMABORT=0 | 
|---|
| 12 | D INIT^XMJMS(XMDUZ,.XMABORT) Q:XMABORT | 
|---|
| 13 | S XMWHICH=0 | 
|---|
| 14 | D WHICH(XMZ,$$EZBLD^DIALOG(34600),.XMWHICH,.XMABORT) Q:XMABORT  ; copy | 
|---|
| 15 | I '$$COPYRECP^XMXSEC1(XMZ) D  Q | 
|---|
| 16 | . S (XMLR,XMSAME)=0 | 
|---|
| 17 | . D SHOW^XMJERR | 
|---|
| 18 | D LISTR(.XMLR,.XMABORT) Q:XMABORT | 
|---|
| 19 | D TOSAME(.XMSAME,.XMABORT) | 
|---|
| 20 | Q | 
|---|
| 21 | WHICH(XMZ,XMVERB,XMWHICH,XMABORT) ; | 
|---|
| 22 | N XMRESPS | 
|---|
| 23 | S XMRESPS=+$P($G(^XMB(3.9,XMZ,3,0)),U,4) | 
|---|
| 24 | I XMRESPS=0 S XMWHICH=0 | 
|---|
| 25 | E  D WHICH^XMJMP(XMZ,XMRESPS,XMVERB,.XMWHICH,.XMABORT) Q:XMABORT!'$D(XMWHICH) | 
|---|
| 26 | Q:$$COPYAMT^XMXSEC1(XMZ,XMWHICH) | 
|---|
| 27 | S XMABORT=1 | 
|---|
| 28 | D SHOW^XMJERR | 
|---|
| 29 | ;You may use the 'Transfer' option of the FileMan Editor | 
|---|
| 30 | ;to move text from this message or its responses into a new message. | 
|---|
| 31 | N XMTEXT | 
|---|
| 32 | D BLD^DIALOG(34601,"","","XMTEXT","F") | 
|---|
| 33 | D MSG^DIALOG("WH","","","","XMTEXT") | 
|---|
| 34 | Q | 
|---|
| 35 | LISTR(XMLR,XMABORT) ; | 
|---|
| 36 | N DIR,Y | 
|---|
| 37 | S DIR("A")=$$EZBLD^DIALOG(34602) ; List original recipients in text | 
|---|
| 38 | S DIR("B")=$$EZBLD^DIALOG(39053),DIR(0)="Y",DIR("??")="XM-U-M-COPY-2" ; No | 
|---|
| 39 | D ^DIR I $D(DIRUT) S XMABORT=1 Q | 
|---|
| 40 | S XMLR=Y | 
|---|
| 41 | Q | 
|---|
| 42 | TOSAME(XMSAME,XMABORT) ; | 
|---|
| 43 | N DIR,Y | 
|---|
| 44 | S DIR("A")=$$EZBLD^DIALOG(34603) ; Deliver to the same recipients | 
|---|
| 45 | S DIR("B")=$$EZBLD^DIALOG(39053),DIR(0)="Y",DIR("??")="XM-U-M-COPY-2" ; No | 
|---|
| 46 | D ^DIR I $D(DIRUT) S XMABORT=1 Q | 
|---|
| 47 | S XMSAME=Y | 
|---|
| 48 | Q:'XMSAME | 
|---|
| 49 | ;LOCAL recipients (NOT Recipients on remote network nodes) will be copied. | 
|---|
| 50 | N XMTEXT | 
|---|
| 51 | W ! | 
|---|
| 52 | D BLD^DIALOG(34604,"","","XMTEXT","F") | 
|---|
| 53 | D MSG^DIALOG("WM","","","","XMTEXT") | 
|---|
| 54 | Q | 
|---|
| 55 | COPYIT(XMDUZ,XMZO,XMSUBJO,XMFROM,XMDATEO,XMWHICH,XMLR,XMSAME) ; | 
|---|
| 56 | ; XMWHICH   List of responses to copy | 
|---|
| 57 | ; XMLR     1=list original recipients in msg; 0=don't | 
|---|
| 58 | ; XMSAME   1=deliver to the original recipients; 0=don't | 
|---|
| 59 | N XMZ,XMSUBJ,XMABORT | 
|---|
| 60 | S XMABORT=0 | 
|---|
| 61 | D INIT^XMXADDR | 
|---|
| 62 | S XMSUBJ=$E($$EZBLD^DIALOG(34605,XMSUBJO),1,65) ; Copy of: | 
|---|
| 63 | D SUBJ^XMJMS(.XMSUBJ,.XMABORT) Q:XMABORT | 
|---|
| 64 | D CRE8XMZ^XMXSEND(XMSUBJ,.XMZ,1) I XMZ<1 S XMABORT=1 Q | 
|---|
| 65 | D:'$G(XMPAKMAN) EDITON^XMJMS(XMDUZ,XMZ) | 
|---|
| 66 | D CPROCESS(XMDUZ,XMZO,XMSUBJO,XMFROM,XMDATEO,XMWHICH,XMLR,XMSAME,XMZ,XMSUBJ,.XMABORT) | 
|---|
| 67 | D:XMABORT=DTIME HALT^XMJMS($$EZBLD^DIALOG(34606)) ; copying | 
|---|
| 68 | D:'$G(XMPAKMAN) EDITOFF^XMJMS(XMDUZ) | 
|---|
| 69 | D:XMABORT KILLMSG^XMXUTIL(XMZ) | 
|---|
| 70 | Q | 
|---|
| 71 | CPROCESS(XMDUZ,XMZO,XMSUBJO,XMFROM,XMDATEO,XMWHICH,XMLR,XMSAME,XMZ,XMSUBJ,XMABORT) ; | 
|---|
| 72 | N XMINSTR,XMRESTR,XMC | 
|---|
| 73 | D COPYTEXT(XMZO,XMSUBJO,XMFROM,XMDATEO,XMZ,XMWHICH,.XMC) | 
|---|
| 74 | D:XMLR!XMSAME COPYRECP(XMLR,XMSAME,XMZO,XMZ,.XMINSTR,.XMC) | 
|---|
| 75 | S ^XMB(3.9,XMZ,2,0)="^3.92A^"_XMC_U_XMC_U_DT | 
|---|
| 76 | D ET^XMJMSO Q:XMABORT | 
|---|
| 77 | D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34110),.XMINSTR,.XMRESTR,.XMABORT) Q:XMABORT  ; Send to add'l recipients | 
|---|
| 78 | I $G(XMPAKMAN) S XMINSTR("TYPE")=$S($P(^XMB(3.9,XMZO,0),U,7)["K":"K",1:"X") | 
|---|
| 79 | D SENDMSG^XMJMSO(XMDUZ,XMZ,XMSUBJ,.XMINSTR,.XMRESTR,.XMABORT) Q:XMABORT  ; transmit prompt | 
|---|
| 80 | N XMIEN | 
|---|
| 81 | S XMIEN=+$O(^XMB(3.9,XMZO,1,"C",XMDUZ,0)) | 
|---|
| 82 | I XMIEN S ^XMB(3.9,XMZO,1,XMIEN,"C")=$$NOW^XLFDT | 
|---|
| 83 | Q | 
|---|
| 84 | COPYTEXT(XMZO,XMSUBJO,XMFROM,XMDATEO,XMZ,XMWHICH,XMC) ; | 
|---|
| 85 | N I,XMRESP,XMRANGE | 
|---|
| 86 | W !,$$EZBLD^DIALOG(34607) ; Copying text | 
|---|
| 87 | D COPYHEAD(XMZO,XMSUBJO,XMFROM,XMDATEO,XMZ,"C",.XMC) | 
|---|
| 88 | F I=1:1:$L(XMWHICH,",") D | 
|---|
| 89 | . S XMRANGE=$P(XMWHICH,",",I) | 
|---|
| 90 | . Q:XMRANGE=""  ; (XMWHICH can end with a ",", giving us a null piece.) | 
|---|
| 91 | . F XMRESP=$P(XMRANGE,"-",1):1:$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE) D | 
|---|
| 92 | . . I XMRESP=0 D COPYRESP(XMRESP,XMZO,XMZ,.XMC) Q | 
|---|
| 93 | . . D COPYRESP(XMRESP,+$G(^XMB(3.9,XMZO,3,XMRESP,0)),XMZ,.XMC) | 
|---|
| 94 | Q | 
|---|
| 95 | COPYHEAD(XMZO,XMSUBJ,XMFROM,XMDATE,XMZ,XMTYPE,XMC) ; | 
|---|
| 96 | N XMPRE | 
|---|
| 97 | S XMPRE=$S(XMTYPE="C":"",1:">") | 
|---|
| 98 | S ^XMB(3.9,XMZ,2,1,0)=XMPRE_$$EZBLD^DIALOG(34205)_": """_XMSUBJ_""""_$S(XMTYPE="C":" "_$$EZBLD^DIALOG(34537,XMZO),1:"") ; Original message: | 
|---|
| 99 | S ^XMB(3.9,XMZ,2,2,0)=XMPRE_$$EZBLD^DIALOG(34538,$$NAME^XMXUTIL(XMFROM)) ; From | 
|---|
| 100 | S ^XMB(3.9,XMZ,2,3,0)=XMPRE_$$EZBLD^DIALOG(34585,$$MMDT^XMXUTIL1(XMDATE)) ; Sent: | 
|---|
| 101 | S XMC=3 | 
|---|
| 102 | Q | 
|---|
| 103 | COPYRESP(XMRESP,XMZR,XMZ,XMC) ; | 
|---|
| 104 | N XMF,XMFROM,XMDT,XMZREC | 
|---|
| 105 | S XMC=XMC+1 | 
|---|
| 106 | S ^XMB(3.9,XMZ,2,XMC,0)="" | 
|---|
| 107 | I XMRESP D | 
|---|
| 108 | . S XMZREC=$G(^XMB(3.9,XMZR,0)) | 
|---|
| 109 | . S XMFROM=$$NAME^XMXUTIL($P(XMZREC,U,2)) | 
|---|
| 110 | . S XMDT=$P(XMZREC,U,3) | 
|---|
| 111 | . S XMC=XMC+1 | 
|---|
| 112 | . S ^XMB(3.9,XMZ,2,XMC,0)=$$EZBLD^DIALOG(34204,XMRESP)_": "_XMFROM_"    "_$$MMDT^XMXUTIL1(XMDT) ; Response # | 
|---|
| 113 | S XMF=.999999 | 
|---|
| 114 | F  S XMF=$O(^XMB(3.9,XMZR,2,XMF)) Q:XMF=""  D | 
|---|
| 115 | . S XMC=XMC+1 | 
|---|
| 116 | . W:XMC#50=0 "." | 
|---|
| 117 | . S ^XMB(3.9,XMZ,2,XMC,0)=^XMB(3.9,XMZR,2,XMF,0) | 
|---|
| 118 | Q | 
|---|
| 119 | COPYRECP(XMLR,XMSAME,XMZO,XMZ,XMINSTR,XMC) ; | 
|---|
| 120 | N XMTO,XMNAME | 
|---|
| 121 | I XMLR D | 
|---|
| 122 | . W !,$$EZBLD^DIALOG($S(XMSAME:34610,1:34611)) ; Copying recipients into text (and onto message) | 
|---|
| 123 | . N XMTEXT,X | 
|---|
| 124 | . S XMTEXT=$$EZBLD^DIALOG(34608) ; Original Recipients | 
|---|
| 125 | . S XMC=XMC+1,^XMB(3.9,XMZ,2,XMC,0)="" | 
|---|
| 126 | . S XMC=XMC+1,^XMB(3.9,XMZ,2,XMC,0)=XMTEXT | 
|---|
| 127 | . S X="",$P(X,"-",$L(XMTEXT)+1)="" ; "-------------------" | 
|---|
| 128 | . S XMC=XMC+1,^XMB(3.9,XMZ,2,XMC,0)=X | 
|---|
| 129 | E  W !,$$EZBLD^DIALOG(34612) ; Copying recipients onto message | 
|---|
| 130 | S XMTO="" | 
|---|
| 131 | F  S XMTO=$O(^XMB(3.9,XMZO,1,"C",XMTO)) Q:XMTO=""  D | 
|---|
| 132 | . I XMSAME,XMTO=+XMTO W ! D ADDR^XMXADDR(XMDUZ,"`"_XMTO,.XMINSTR) | 
|---|
| 133 | . Q:'XMLR | 
|---|
| 134 | . I +XMTO=XMTO S XMNAME=$$NAME^XMXUTIL(XMTO) | 
|---|
| 135 | . E  I $L(XMTO)<30 S XMNAME=XMTO | 
|---|
| 136 | . E  S XMNAME=$P($G(^XMB(3.9,XMZO,1,$O(^XMB(3.9,XMZO,1,"C",XMTO,0)),0)),U,1) | 
|---|
| 137 | . S XMC=XMC+1,^XMB(3.9,XMZ,2,XMC,0)=XMNAME | 
|---|
| 138 | Q | 
|---|