1 | XMJMQ1 ;ISC-SF/GMB-Q,QD,QN Query recipients (cont.) ;04/17/2002 10:11
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Replaces ^XMA5,^XMA5A (ISC-WASH/THM/CAP)
|
---|
4 | QINIT(XMDUZ,XMK,XMKN,XMZ,XMRESPM,XMABORT) ;
|
---|
5 | N XMZSTR,XMSUBJ,XMRESPS
|
---|
6 | S XMABORT=0
|
---|
7 | S XMZSTR=$$EZBLD^DIALOG(34537,XMZ) ; [#_XMZ_]
|
---|
8 | S XMSUBJ=$P(^XMB(3.9,XMZ,0),U)
|
---|
9 | S:XMSUBJ["~U~" XMSUBJ=$$DECODEUP^XMXUTIL1(XMSUBJ)
|
---|
10 | S XMSUBJ=$$EZBLD^DIALOG(34536,XMSUBJ) ; Subj: _XMSUBJ
|
---|
11 | S XMRESPS=+$P($G(^XMB(3.9,XMZ,3,0)),U,4)
|
---|
12 | S XMRESPM=$$EZBLD^DIALOG($S(XMRESPS=1:34557.1,1:34557),XMRESPS) ; XMRESPS_ response / responses
|
---|
13 | W @IOF
|
---|
14 | D PAGE1HDR^XMJMP1(XMDUZ,XMK,XMKN,XMZ,XMRESPS,^XMB(3.9,XMZ,0),XMSUBJ,XMZSTR)
|
---|
15 | D INFO(XMDUZ,XMK,XMZ,0,"","","",.XMABORT)
|
---|
16 | Q
|
---|
17 | INFO(XMDUZ,XMK,XMZ,XMPHDR,XMSUBJ,XMZSTR,XMPAGE,XMABORT) ;
|
---|
18 | N XMREC,XMRECIPS,XMDIALOG
|
---|
19 | S XMREC=^XMB(3.9,XMZ,0)
|
---|
20 | I $Y+4>IOSL D Q:XMABORT
|
---|
21 | . D PAGE^XMJMQ(.XMABORT)
|
---|
22 | E W !
|
---|
23 | W !,$$EZBLD^DIALOG(34559,XMZ_"@"_^XMB("NETNAME")) ; Local Message-ID:
|
---|
24 | S XMDIALOG=$S($P(XMREC,U,7)["P":34543,$P(XMREC,U,7)["S":34560,$P(XMREC,U,8):34561,1:0) I XMDIALOG D W(XMDIALOG) ; Priority! / [SPOOL] / <RESPONSE>
|
---|
25 | S XMRECIPS=+$P($G(^XMB(3.9,XMZ,1,0)),U,4)
|
---|
26 | I XMRECIPS D W($S(XMRECIPS=1:34562.1,1:34562),XMRECIPS) ; (_XMRECIPS_ Recipient(s))
|
---|
27 | I "^Y^y^"[(U_$P(XMREC,U,5)_U) D W(34564) ; Confirmation requested.
|
---|
28 | I $D(^XMB(3.9,XMZ,"K")) D W($S(" "[$P(XMREC,U,10):34565,1:34566),$P(XMREC,U,10)) ; Scramble Hint:
|
---|
29 | I $O(^XMB(3.9,XMZ,2005,0)) D LIST^XMA2B ; MIME body parts
|
---|
30 | I "^Y^y^"[(U_$P(XMREC,U,9)_U) D W(34567) ; Closed.
|
---|
31 | I "^Y^y^"[(U_$P(XMREC,U,11)_U) D W(34568) ; Confidential.
|
---|
32 | I "^Y^y^"[(U_$P(XMREC,U,12)_U) D W(34570) ; 'Information only' for all recipients.
|
---|
33 | I $D(^XMB(3.9,XMZ,.5)) D
|
---|
34 | . S XMREC=^XMB(3.9,XMZ,.5)
|
---|
35 | . I $P(XMREC,U,1)'="" D W(34571,$P(XMREC,U,1)) ; Delivery basket:
|
---|
36 | ; The following is already listed in the message header:
|
---|
37 | ;I $D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D
|
---|
38 | ;. N XMVAPOR
|
---|
39 | ;. S XMVAPOR=$P($G(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)),U,5)
|
---|
40 | ;. I XMVAPOR D W(34572,$$MMDT^XMXUTIL1(XMVAPOR)) ; Automatic Deletion Date:
|
---|
41 | D LATER(XMDUZ,XMZ,XMPHDR,XMSUBJ,XMZSTR,.XMPAGE,.XMABORT)
|
---|
42 | Q
|
---|
43 | LATER(XMDUZ,XMZ,XMPHDR,XMSUBJ,XMZSTR,XMPAGE,XMABORT) ; List dates message will be new on 'later'
|
---|
44 | Q:'$O(^XMB(3.73,"AC",XMZ,XMDUZ,0))
|
---|
45 | N XMIEN,XMSEP
|
---|
46 | I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
47 | W !,$$EZBLD^DIALOG(34595) ; Message will be NEW on:
|
---|
48 | S XMIEN="",XMSEP=" "
|
---|
49 | F S XMIEN=$O(^XMB(3.73,"AC",XMZ,XMDUZ,XMIEN)) Q:XMIEN="" D
|
---|
50 | . D W2(XMSEP,$$FMTE^XLFDT($E($P(^XMB(3.73,XMIEN,0),U),1,12)),.XMABORT)
|
---|
51 | . S XMSEP=", "
|
---|
52 | Q
|
---|
53 | W(XMPIECE,XMPARM) ;
|
---|
54 | S XMPIECE=$$EZBLD^DIALOG(XMPIECE,.XMPARM)
|
---|
55 | I 1+$L(XMPIECE)+$X>IOM D Q:XMABORT
|
---|
56 | . I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
57 | . W !
|
---|
58 | W " ",XMPIECE
|
---|
59 | Q
|
---|
60 | W2(XMSEP,XMPIECE,XMABORT) ;
|
---|
61 | I $X+$L(XMSEP)+$L(XMPIECE)>IOM D Q:XMABORT
|
---|
62 | . I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
63 | . W !,XMPIECE
|
---|
64 | E W XMSEP,XMPIECE
|
---|
65 | Q
|
---|
66 | NETWORK(XMZ,XMABORT) ;
|
---|
67 | N I,J,XMLINE,XMPOS,XMPHDR
|
---|
68 | I $O(^XMB(3.9,XMZ,2,0))'<1 D Q
|
---|
69 | . W !!,$$EZBLD^DIALOG(34550) ; This message originated locally. There is no network header.
|
---|
70 | I $D(^XMB(3.9,XMZ,.7)) W !!,$$EZBLD^DIALOG(34551,$P(^XMB(3.9,XMZ,.7),U,1)) ; Envelope From:
|
---|
71 | W !!,$$EZBLD^DIALOG(34552),! ; Network header:
|
---|
72 | S (I,XMPHDR)=0
|
---|
73 | F S I=$O(^XMB(3.9,XMZ,2,I)) Q:I=""!(I'<1) D Q:XMABORT
|
---|
74 | . S XMLINE=^XMB(3.9,XMZ,2,I,0)
|
---|
75 | . I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
76 | . I $L(XMLINE)<IOM W !,XMLINE Q
|
---|
77 | . S XMPOS=0
|
---|
78 | . F D Q:XMLINE=""!XMABORT
|
---|
79 | . . I $L(XMLINE)+XMPOS+1>IOM F J=IOM-XMPOS-1:-1:IOM-XMPOS-20 Q:", -;)"[$E(XMLINE,J)
|
---|
80 | . . I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
81 | . . W !,?XMPOS,$E(XMLINE,1,J)
|
---|
82 | . . S XMPOS=10
|
---|
83 | . . S XMLINE=$E(XMLINE,J+1,999)
|
---|
84 | Q
|
---|
85 | SUMMARY(XMZ,XMPHDR,XMSUBJ,XMZSTR,XMPAGE,XMABORT) ;
|
---|
86 | N XMTYPE
|
---|
87 | I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
88 | W !
|
---|
89 | I '$O(^XMB(3.9,XMZ,6,0)),'$O(^XMB(3.9,XMZ,7,0)) D Q
|
---|
90 | . N XMTEXT
|
---|
91 | . D BLD^DIALOG(34596,"","","XMTEXT","F")
|
---|
92 | . D MSG^DIALOG("WM","","","","XMTEXT")
|
---|
93 | . ;This is an old message which has no summary recipient list.
|
---|
94 | . ;Only the Detail Query (QD) is available.
|
---|
95 | W !,$$EZBLD^DIALOG(34597),! ; This message was addressed as follows:
|
---|
96 | D PRTADDR(XMZ,6,.XMTYPE,.XMABORT) Q:XMABORT ; addressed to
|
---|
97 | D PRTADDR(XMZ,7,.XMTYPE,.XMABORT) ; deliver later to
|
---|
98 | Q
|
---|
99 | PRTADDR(XMZ,XMNODE,XMTYPE,XMABORT) ;
|
---|
100 | N XMTO
|
---|
101 | S XMTO="*" ; List Broadcasts first
|
---|
102 | F S XMTO=$O(^XMB(3.9,XMZ,XMNODE,"B",XMTO)) Q:$E(XMTO,1,1)'="*" D PRTSUMRY(XMZ,XMNODE,XMTO,.XMTYPE,.XMABORT) Q:XMABORT
|
---|
103 | Q:XMABORT
|
---|
104 | S XMTO="G." ; List Groups next
|
---|
105 | F S XMTO=$O(^XMB(3.9,XMZ,XMNODE,"B",XMTO)) Q:$E(XMTO,1,2)'="G." D PRTSUMRY(XMZ,XMNODE,XMTO,.XMTYPE,.XMABORT) Q:XMABORT
|
---|
106 | Q:XMABORT
|
---|
107 | S XMTO="" ; Now list the rest
|
---|
108 | F S XMTO=$O(^XMB(3.9,XMZ,XMNODE,"B",XMTO)) Q:XMTO="" D Q:XMABORT
|
---|
109 | . Q:$E(XMTO,1,2)="G."
|
---|
110 | . Q:$E(XMTO,1,1)="*"
|
---|
111 | . D PRTSUMRY(XMZ,XMNODE,XMTO,.XMTYPE,.XMABORT)
|
---|
112 | Q
|
---|
113 | PRTSUMRY(XMZ,XMNODE,XMTO,XMTYPE,XMABORT) ;
|
---|
114 | N XMIEN,XMREC
|
---|
115 | S XMIEN=$O(^XMB(3.9,XMZ,XMNODE,"B",XMTO,0)) Q:'XMIEN
|
---|
116 | S XMREC=$G(^XMB(3.9,XMZ,XMNODE,XMIEN,0)) Q:XMREC=""
|
---|
117 | I $Y+3>IOSL D PAGE^XMJMQ(.XMABORT) Q:XMABORT
|
---|
118 | I $P(XMREC,U,2)'="" D
|
---|
119 | . S XMTYPE=$P(XMREC,U,2)
|
---|
120 | . I '$D(XMTYPE(XMTYPE)) S XMTYPE(XMTYPE)=$$EXTERNAL^DILFD(3.91,6.5,"",XMTYPE) I $D(DIERR) S XMTYPE(XMTYPE)=XMTYPE
|
---|
121 | . W !,XMTYPE(XMTYPE),":",$P(XMREC,U,1)
|
---|
122 | E W !,$P(XMREC,U,1)
|
---|
123 | Q:XMNODE=6
|
---|
124 | N XMPARM
|
---|
125 | S XMPARM(1)=$$MMDT^XMXUTIL1($P(XMREC,U,5)),XMPARM(2)=$P(XMREC,U,4)
|
---|
126 | D W(34598,.XMPARM) ; for delivery x by y
|
---|
127 | Q
|
---|
128 | SEARCH(XMZ,XMNAME,XMRESPM) ;
|
---|
129 | N XMPHDR,XMUSER,XMSITE
|
---|
130 | S XMPHDR=0
|
---|
131 | I $Y+5>IOSL D Q:XMABORT
|
---|
132 | . D PAGE^XMJMQ(.XMABORT)
|
---|
133 | E W !
|
---|
134 | W !,$$EZBLD^DIALOG(34554,XMNAME),! ; Searching for recipients that match '_XMNAME_'.
|
---|
135 | I XMNAME["@" D
|
---|
136 | . S XMSITE=$$UP^XLFSTR($P(XMNAME,"@",2,99))
|
---|
137 | . ;S XMUSER=$P(XMNAME,"@",1)_$S(XMNAME[",":"@",1:",")
|
---|
138 | . S XMUSER=$P($P(XMNAME,"@",1),",",1)_","
|
---|
139 | . S XMNAME=XMUSER_XMSITE
|
---|
140 | E D Q:XMABORT
|
---|
141 | . D FIND^DIC(200,"","@;.01","AP",XMNAME,"","B^BB^C^D","I $D(^XMB(3.9,XMZ,1,""C"",+Y))")
|
---|
142 | . I '$D(DIERR) D PSEARCH(200,XMZ,XMRESPM,.XMABORT) Q:XMABORT
|
---|
143 | Q:$O(^XMB(3.9,XMZ,1,"C",":"))="" ; Quit if there aren't any non-local addressees
|
---|
144 | N XMSCREEN
|
---|
145 | S XMSCREEN=$S(+XMNAME=XMNAME:"I '$D(^XMB(3.9,XMZ,1,""C"",XMNAME))",1:"")
|
---|
146 | D FIND^DIC(3.91,","_XMZ_",","","CP",XMNAME,"","C",XMSCREEN)
|
---|
147 | I '$D(DIERR) D PSEARCH(3.91,XMZ,XMRESPM,.XMABORT)
|
---|
148 | Q:$E(XMNAME)'?1U ; Quit if the search string does not begin with an upper case letter
|
---|
149 | Q:$O(^XMB(3.9,XMZ,1,"C","`"))="" ; Quit if there aren't any lower case addressees
|
---|
150 | ; FM will translate lower case to upper case in its search, but won't
|
---|
151 | ; translate upper to lower, so we do it here.
|
---|
152 | S XMSCREEN="I ^(0)]""`""" ; Limit search to lower case addresses
|
---|
153 | S XMNAME=$S($D(XMSITE):$$LOW^XLFSTR(XMUSER)_XMSITE,1:$$LOW^XLFSTR(XMNAME))
|
---|
154 | D FIND^DIC(3.91,","_XMZ_",","","CP",XMNAME,"","C",XMSCREEN)
|
---|
155 | I '$D(DIERR) D PSEARCH(3.91,XMZ,XMRESPM,.XMABORT)
|
---|
156 | Q
|
---|
157 | PSEARCH(XMFILE,XMZ,XMRESPM,XMABORT) ; Print search results
|
---|
158 | N XMI,XMIEN,XMTYPE,XMREC
|
---|
159 | S XMI=0
|
---|
160 | F S XMI=$O(^TMP("DILIST",$J,XMI)) Q:'XMI S XMREC=^(XMI,0) D Q:XMABORT
|
---|
161 | . S XMIEN=$S(XMFILE=200:$O(^XMB(3.9,XMZ,1,"C",$P(XMREC,U,1),0)),1:$P(XMREC,U,1))
|
---|
162 | . D WNAME^XMJMQ(XMZ,$P(XMREC,U,2),XMIEN,XMRESPM,.XMTYPE,.XMABORT)
|
---|
163 | Q
|
---|