1 | XMJMOR ;ISC-SF/GMB-Range actions ;12/04/2002 10:10
|
---|
2 | ;;8.0;MailMan;**9**;Jun 28, 2002
|
---|
3 | ; Replaces ^XMA0,^XMA01 (ISC-WASH/CAP)
|
---|
4 | DELETE(XMDUZ,XMK) ; Delete a range of messages
|
---|
5 | N XMWHICH,XMMSG,XMABORT
|
---|
6 | S XMABORT=0
|
---|
7 | I $D(^TMP("XM",$J,".")) D
|
---|
8 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XDEL",34302,34303,.XMMSG,.XMABORT)
|
---|
9 | . ;K ^TMP("XM",$J,".")
|
---|
10 | E D
|
---|
11 | . D WHICH(XMDUZ,XMK,34301,34303.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
12 | . D DELMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
13 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
14 | Q:XMABORT
|
---|
15 | W:$D(XMMSG) !,XMMSG
|
---|
16 | Q
|
---|
17 | FILTER(XMDUZ,XMK) ; Filter a range of messages
|
---|
18 | N XMWHICH,XMMSG,XMABORT
|
---|
19 | S XMABORT=0
|
---|
20 | I $D(^TMP("XM",$J,".")) D
|
---|
21 | . N XMKZ
|
---|
22 | . D SELMSG(XMDUZ,XMK,"XFLTR^XMXMSGS2",34306,.XMMSG)
|
---|
23 | . S XMKZ=""
|
---|
24 | . F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
25 | E D
|
---|
26 | . D WHICH(XMDUZ,XMK,34305,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
27 | . D FLTRMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
28 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
29 | Q:XMABORT
|
---|
30 | W:$D(XMMSG) !,XMMSG
|
---|
31 | Q
|
---|
32 | FORWARD(XMDUZ,XMK) ; Forward a range of messages
|
---|
33 | N XMWHICH,XMMSG,XMABORT,XMINSTR
|
---|
34 | S XMABORT=0
|
---|
35 | I $D(^TMP("XM",$J,".")) D Q
|
---|
36 | . N XMKZ
|
---|
37 | . D INIT^XMXADDR
|
---|
38 | . S XMKZ=$O(^TMP("XM",$J,".",""))
|
---|
39 | . I '$O(^TMP("XM",$J,".",XMKZ)) D Q
|
---|
40 | . . D FWDONE(XMDUZ,$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")),.XMINSTR,.XMABORT)
|
---|
41 | . D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT ; Forward
|
---|
42 | . D SELMSG(XMDUZ,XMK,"XFWD^XMXMSGS1",34309,.XMMSG)
|
---|
43 | . D CLEANUP^XMXADDR
|
---|
44 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
45 | . W:$D(XMMSG) !,XMMSG
|
---|
46 | D WHICH(XMDUZ,XMK,34308,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
47 | D INIT^XMXADDR
|
---|
48 | I $P(XMWHICH,",",2,99)="",$P(XMWHICH,",",1)=+XMWHICH D Q
|
---|
49 | . N XMZ
|
---|
50 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",+XMWHICH,""))
|
---|
51 | . I 'XMZ W !,$$EZBLD^DIALOG(34309.3) Q ; No messages forwarded.
|
---|
52 | . D FWDONE(XMDUZ,XMZ,.XMINSTR,.XMABORT)
|
---|
53 | D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,"",.XMABORT) Q:XMABORT ; Forward
|
---|
54 | S XMINSTR("ADDR FLAGS")="I"
|
---|
55 | D FWDMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,"",.XMINSTR,.XMMSG)
|
---|
56 | D:$D(XMERR) ZSHOW^XMJERR
|
---|
57 | W:$D(XMMSG) !,XMMSG
|
---|
58 | Q
|
---|
59 | FWDONE(XMDUZ,XMZ,XMINSTR,XMABORT) ; Forward just one message
|
---|
60 | N XMZREC,XMRESTR
|
---|
61 | S XMZREC=^XMB(3.9,XMZ,0)
|
---|
62 | I '$$FORWARD^XMXSEC(XMDUZ,XMZ,XMZREC) D SHOW^XMJERR Q
|
---|
63 | D GETRESTR^XMXSEC1(XMDUZ,XMZ,XMZREC,"",.XMRESTR) ; Get restrictions on the msg
|
---|
64 | D TOWHOM^XMJMT(XMDUZ,$$EZBLD^DIALOG(34111),.XMINSTR,.XMRESTR,.XMABORT) Q:XMABORT ; Forward
|
---|
65 | D FWD^XMKP(XMDUZ,XMZ,.XMINSTR)
|
---|
66 | D CLEANUP^XMXADDR
|
---|
67 | W !,$$EZBLD^DIALOG(34309.2) ; Message forwarded.
|
---|
68 | Q
|
---|
69 | LATER(XMDUZ,XMK) ; Later a range of messages
|
---|
70 | N XMWHICH,XMMSG,XMABORT,XMWHEN
|
---|
71 | S XMABORT=0
|
---|
72 | I $D(^TMP("XM",$J,".")) D
|
---|
73 | . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
74 | . D SELMSG(XMDUZ,XMK,"XLATER^XMXMSGS2",34312,.XMMSG)
|
---|
75 | E D
|
---|
76 | . D WHICH(XMDUZ,XMK,34311,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
77 | . D LTRDATE^XMJMD(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
78 | . D LATERMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
|
---|
79 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
80 | Q:XMABORT
|
---|
81 | W:$D(XMMSG) !,XMMSG
|
---|
82 | Q
|
---|
83 | NEWTOGL(XMDUZ,XMK) ; New Toggle a range of messages
|
---|
84 | N XMWHICH,XMMSG,XMABORT
|
---|
85 | S XMABORT=0
|
---|
86 | I $D(^TMP("XM",$J,".")) D
|
---|
87 | . N XMKZ
|
---|
88 | . D SELMSG(XMDUZ,XMK,"XNTOGL^XMXMSGS2",34315,.XMMSG)
|
---|
89 | . S XMKZ=""
|
---|
90 | . F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ K:'$D(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
91 | E D
|
---|
92 | . D WHICH(XMDUZ,XMK,34314,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
93 | . D NTOGLMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
94 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
95 | Q:XMABORT
|
---|
96 | W:$D(XMMSG) !,XMMSG
|
---|
97 | Q
|
---|
98 | PRINT(XMDUZ,XMK,XMPRTHDR) ; Print a range of messages
|
---|
99 | N XMWHICH,XMMSG,XMRECIPS,XMABORT
|
---|
100 | ; XMPRTHDR 1=Print header
|
---|
101 | ; 0=don't (headerless print)
|
---|
102 | ; XMRECIPS 0=Don't print recipients
|
---|
103 | ; 1=Print summary recipients
|
---|
104 | ; 2=Print detail recipients
|
---|
105 | N XMSAVE,XMMSG,XMZLIST,I
|
---|
106 | S XMABORT=0
|
---|
107 | S:$G(XMPRTHDR)="" XMPRTHDR=1 ; default is to print with headers
|
---|
108 | I $D(^TMP("XM",$J,".")) D
|
---|
109 | . D LISTSEL(XMDUZ,XMK,.XMZLIST)
|
---|
110 | E D Q:XMABORT
|
---|
111 | . N XMWHICH
|
---|
112 | . D WHICH(XMDUZ,XMK,$S(XMPRTHDR:34317,1:34317.1),0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
113 | . D LIST(XMDUZ,XMK,.XMWHICH,.XMZLIST)
|
---|
114 | I '$D(XMZLIST) W !!,$$EZBLD^DIALOG(34319) Q ; No valid messages selected.
|
---|
115 | I +XMZLIST(1)=XMZLIST(1) D PRTONE(XMDUZ,XMK,XMZLIST(1),XMPRTHDR,.XMABORT) Q
|
---|
116 | D QRECIP^XMJMP(.XMRECIPS,.XMABORT) Q:XMABORT
|
---|
117 | F I="DUZ","XMDUZ","XMV(","XMZLIST(","XMRECIPS","XMPRTHDR" S XMSAVE(I)=""
|
---|
118 | D EN^XUTMDEVQ("PLISTX^XMJMP",$$EZBLD^DIALOG(34501),.XMSAVE) ; MailMan: Print
|
---|
119 | Q:XMABORT!$G(POP)
|
---|
120 | W:$D(XMMSG) !!,XMMSG
|
---|
121 | Q
|
---|
122 | LISTSEL(XMDUZ,XMK,XMZLIST) ;
|
---|
123 | N XMKZ,J,XMZ
|
---|
124 | S (XMKZ,J)=0
|
---|
125 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
126 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
127 | . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
128 | . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
129 | . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
130 | Q
|
---|
131 | LIST(XMDUZ,XMK,XMWHICH,XMZLIST) ;
|
---|
132 | N I,J,XMRANGE,XMKZ,XMZ,XMLAST
|
---|
133 | S J=0
|
---|
134 | F I=1:1:$L(XMWHICH,",") D
|
---|
135 | . S XMRANGE=$P(XMWHICH,",",I)
|
---|
136 | . Q:'XMRANGE
|
---|
137 | . S XMKZ=$P(XMRANGE,"-",1)-.1
|
---|
138 | . S XMLAST=$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE)
|
---|
139 | . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:'XMKZ!(XMKZ>XMLAST) D
|
---|
140 | . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
141 | . . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
142 | . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
143 | . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
144 | Q
|
---|
145 | PRTONE(XMDUZ,XMK,XMZ,XMPRTHDR,XMABORT) ;
|
---|
146 | D PONE^XMJMP(XMDUZ,XMK,XMZ,XMPRTHDR,.XMABORT)
|
---|
147 | W !!,$$EZBLD^DIALOG($S(XMABORT:34318.4,1:34318.1)) ; Message (not) printed.
|
---|
148 | Q
|
---|
149 | SAVE(XMDUZ,XMK) ; Save a range of messages to another basket
|
---|
150 | N XMWHICH,XMMSG,XMABORT,XMKTO,XMDIC
|
---|
151 | S XMABORT=0
|
---|
152 | S XMDIC("B")="@" ; no default basket
|
---|
153 | I $D(^TMP("XM",$J,".")) D
|
---|
154 | . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
|
---|
155 | . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q ; No messages saved.
|
---|
156 | . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q ; Same basket. No messages saved.
|
---|
157 | . D SELMSG(XMDUZ,XMK,"XMOVE^XMXMSGS2",34324,.XMMSG)
|
---|
158 | . K ^TMP("XM",$J,".")
|
---|
159 | E D
|
---|
160 | . D WHICH(XMDUZ,XMK,34323,0,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
161 | . D SELBSKT^XMJBU(XMDUZ,$$EZBLD^DIALOG(34325),"L",.XMDIC,.XMKTO) ; Save messages to which basket?
|
---|
162 | . I XMKTO=U S XMMSG=$$EZBLD^DIALOG(34324.3) Q ; No messages saved.
|
---|
163 | . I XMKTO=XMK S XMMSG=$$EZBLD^DIALOG(34326) Q ; Same basket. No messages saved.
|
---|
164 | . D MOVEMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMKTO,.XMMSG)
|
---|
165 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
166 | Q:XMABORT
|
---|
167 | W:$D(XMMSG) !,XMMSG
|
---|
168 | Q
|
---|
169 | TERM(XMDUZ,XMK) ; Terminate a range of messages
|
---|
170 | N XMWHICH,XMMSG,XMABORT
|
---|
171 | S XMABORT=0
|
---|
172 | I $D(^TMP("XM",$J,".")) D
|
---|
173 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XTERM",34329,34330,.XMMSG,.XMABORT)
|
---|
174 | . ;K ^TMP("XM",$J,".")
|
---|
175 | E D
|
---|
176 | . D WHICH(XMDUZ,XMK,34328,34330.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
177 | . D TERMMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,.XMMSG)
|
---|
178 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
179 | Q:XMABORT
|
---|
180 | Q:'$D(XMMSG)
|
---|
181 | W !,XMMSG
|
---|
182 | I XMMSG W !,$$EZBLD^DIALOG($S(XMK<1:34331.1,1:34331)) ; You won't see future responses. (In WASTE basket)
|
---|
183 | Q
|
---|
184 | VAPOR(XMDUZ,XMK) ; Set Vaporize date for a range of messages
|
---|
185 | N XMWHICH,XMMSG,XMABORT,XMWHEN
|
---|
186 | S XMABORT=0
|
---|
187 | I $D(^TMP("XM",$J,".")) D
|
---|
188 | . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
189 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XVAPOR^XMXMSGS2",$S(XMWHEN="@":34337.2,1:34337),$S(XMWHEN="@":34338.2,1:34338),.XMMSG,.XMABORT)
|
---|
190 | E D
|
---|
191 | . D VAPRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
192 | . D WHICH(XMDUZ,XMK,$S(XMWHEN="@":34336.1,1:34336),$S(XMWHEN="@":34338.3,1:34338.1),.XMWHICH,.XMABORT) Q:XMABORT
|
---|
193 | . D VAPORMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMWHEN,.XMMSG)
|
---|
194 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
195 | Q:XMABORT
|
---|
196 | W:$D(XMMSG) !,XMMSG
|
---|
197 | Q
|
---|
198 | VAPRDATE(XMWHEN,XMABORT) ;
|
---|
199 | N DIR,X,Y
|
---|
200 | S DIR(0)="DO^NOW::EFT"
|
---|
201 | D BLD^DIALOG(37317.1,"","","DIR(""A"")")
|
---|
202 | D BLD^DIALOG(34339,"","","DIR(""?"")")
|
---|
203 | D ^DIR
|
---|
204 | I X="@" S XMWHEN="@" Q
|
---|
205 | I $D(DIRUT) S XMABORT=1 Q
|
---|
206 | S XMWHEN=Y
|
---|
207 | Q
|
---|
208 | XMTPRI(XMDUZ,XMK) ; Toggle transmission priority for a range of msgs
|
---|
209 | ; XMDUZ better be .5 and XMK better be > 999!
|
---|
210 | N XMTPRI,XMWHICH,XMMSG,XMABORT
|
---|
211 | S XMABORT=0
|
---|
212 | I $D(^TMP("XM",$J,".")) D
|
---|
213 | . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
|
---|
214 | . D SELMSG^XMJMORX1(XMDUZ,0,0,XMK,"XXP^XMXMSGS1",34334,34335,.XMMSG,.XMABORT)
|
---|
215 | E D
|
---|
216 | . D WHICH(XMDUZ,XMK,34333,34335.1,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
217 | . D ASKPRI^XMJMORX(.XMTPRI,.XMABORT) Q:XMABORT
|
---|
218 | . D XPMSG^XMXMSGS(XMDUZ,XMK,XMWHICH,XMTPRI,.XMMSG)
|
---|
219 | . D:$D(XMERR) ZSHOW^XMJERR
|
---|
220 | Q:XMABORT
|
---|
221 | W:$D(XMMSG) !,XMMSG
|
---|
222 | Q
|
---|
223 | WHICH(XMDUZ,XMK,XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
|
---|
224 | N DIR,X,Y,XMHI,XMLO
|
---|
225 | S XMLO=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""))
|
---|
226 | S XMHI=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",""),-1)
|
---|
227 | S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
|
---|
228 | S DIR("??")="XM-U-M-CHOOSE RANGE"
|
---|
229 | S DIR(0)="LC^"_XMLO_":"_XMHI
|
---|
230 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
231 | S XMWHICH=Y
|
---|
232 | I XMCONFRM D CONFIRM(XMCONFRM,.XMABORT)
|
---|
233 | Q
|
---|
234 | CONFIRM(XMCONFRM,XMABORT) ;
|
---|
235 | N DIR
|
---|
236 | D BLD^DIALOG(XMCONFRM,"","","DIR(""A"")") ; Do you really want to ... these messages?
|
---|
237 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No
|
---|
238 | S DIR(0)="Y"
|
---|
239 | D ^DIR I $D(DIRUT)!'Y S XMABORT=1
|
---|
240 | Q
|
---|
241 | POSTPRIV() ;
|
---|
242 | Q:$$POSTPRIV^XMXSEC 1
|
---|
243 | D SHOW^XMJERR
|
---|
244 | Q 0
|
---|
245 | SELMSG(XMDUZ,XMK,XMRTN,XMSUM,XMMSG) ;
|
---|
246 | N XMCNT,XMKZ,XMZ,XMKALL
|
---|
247 | S (XMCNT,XMKZ)=0
|
---|
248 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
249 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
250 | . D @XMRTN
|
---|
251 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
252 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
253 | Q
|
---|