1 | XMJBN ;ISC-SF/GMB-Access new mail in mailbox ;05/18/2004 08:37
|
---|
2 | ;;8.0;MailMan;**25**;Jun 28, 2002
|
---|
3 | ; Replaces ^XMA (ISC-WASH/THM/CAP)
|
---|
4 | ; Entry points used by MailMan options (not covered by DBIA):
|
---|
5 | ; NEW XMNEW - Read new messages
|
---|
6 | NEW ;
|
---|
7 | ; XMNEW Number of new messages
|
---|
8 | ; XMKMULT 1=New msgs in multiple baskets; 0=new msgs in one basket
|
---|
9 | N XMABORT,XMK,XMKN,XMNEW,XMKMULT,XMNEWS
|
---|
10 | S XMABORT=0
|
---|
11 | D INIT^XMJBN1(XMDUZ,.XMK,.XMKN,.XMNEW,.XMKMULT,.XMABORT) Q:XMABORT
|
---|
12 | S XMNEWS=1 ; Makes 'new'd msgs drop off list 'til next time
|
---|
13 | I XMNEW=1 D Q
|
---|
14 | . N XMZ
|
---|
15 | . S XMZ=$O(^XMB(3.7,XMDUZ,"N0",XMK,""))
|
---|
16 | . I XMDUZ'=DUZ,'$$SURRACC^XMXSEC(XMDUZ,"",XMZ,$G(XMB(3.9,XMZ,0))) D Q
|
---|
17 | . . D ZSHOW^XMJERR
|
---|
18 | . . D WAIT^XMXUTIL
|
---|
19 | . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITN^XMUT4A(XMDUZ,"N0",XMK,XMZ)
|
---|
20 | . D READNEW(XMDUZ,XMK,XMKN,XMZ)
|
---|
21 | . D:$D(^XTMP("XM","MAKENEW",XMDUZ)) NEWAGAIN^XMJBN1(XMDUZ)
|
---|
22 | F D Q:'$D(^XMB(3.7,XMDUZ,"N0"))!XMABORT
|
---|
23 | . N XMDIR,XMOPT,XMOX,XMY
|
---|
24 | . S XMDIR("A")=$$EZBLD^DIALOG(34085) ; Select New mail option
|
---|
25 | . D SET^XMXSEC1("R",34086,.XMOPT,.XMOX) ; Read new mail by basket
|
---|
26 | . D SET^XMXSEC1("LB",34087,.XMOPT,.XMOX) ; List Baskets with new mail
|
---|
27 | . D SET^XMXSEC1("LN",34088,.XMOPT,.XMOX) ; List all new messages
|
---|
28 | . D SET^XMXSEC1("LP",34089,.XMOPT,.XMOX) ; List all priority messages
|
---|
29 | . I '$D(^XMB(3.7,XMDUZ,"N")) S XMOPT("LP","?")=$$EZBLD^DIALOG(34018) ; You have no new priority messages.
|
---|
30 | . D SET^XMXSEC1("P",34090,.XMOPT,.XMOX) ; Print all new messages
|
---|
31 | . D SET^XMXSEC1("S",34091,.XMOPT,.XMOX) ; Scan all new messages
|
---|
32 | . D SET^XMXSEC1("Q",34092,.XMOPT,.XMOX) ; Quit
|
---|
33 | . S XMDIR("B")=XMOX("O",XMV("NEW OPT"))_":"_XMOPT(XMV("NEW OPT"))
|
---|
34 | . S XMDIR("??")="XM-U-R-READ NEW"
|
---|
35 | . D XMDIR^XMJDIR(.XMDIR,.XMOPT,.XMOX,.XMY,.XMABORT) Q:XMABORT
|
---|
36 | . K XMOPT,XMOX,XMDIR
|
---|
37 | . D @XMY
|
---|
38 | D:$D(^XTMP("XM","MAKENEW",XMDUZ)) NEWAGAIN^XMJBN1(XMDUZ)
|
---|
39 | Q
|
---|
40 | LB ; List Baskets with new mail (Replaces NEW^XMA0A)
|
---|
41 | N DIC,D,DZ
|
---|
42 | S DIC="^XMB(3.7,"_XMDUZ_",2,"
|
---|
43 | S DIC(0)="AEQ",D="B",DZ="??"
|
---|
44 | S DIC("S")="I $P(^(0),U,2)"
|
---|
45 | S DIC("W")="W ?31,$$EZBLD^DIALOG($S($P(^(0),U,2)'=1:34027.2,1:34027.4),$P(^(0),U,2))" ; (|1| New)
|
---|
46 | D DQ^DICQ
|
---|
47 | Q
|
---|
48 | LN ; List all new messages (Replaces LIST^XMA0A)
|
---|
49 | D LISTALL^XMJMLN(XMDUZ,"N0")
|
---|
50 | Q
|
---|
51 | LP ; List all priority messages (Replaces PRIO^XMA0A)
|
---|
52 | D LISTALL^XMJMLN(XMDUZ,"N")
|
---|
53 | Q
|
---|
54 | P ; Print all new messages
|
---|
55 | ; Replaces PRINT^XMA0A
|
---|
56 | N XMSAVE,I
|
---|
57 | F I="XMV(","DUZ","XMDUZ","XMKMULT" S XMSAVE(I)=""
|
---|
58 | D EN^XUTMDEVQ("PRTNEW^XMJBN",$$EZBLD^DIALOG(34501),.XMSAVE) ; MailMan: Print
|
---|
59 | Q
|
---|
60 | PRTNEW ; Print all new messages
|
---|
61 | N XMSCAN,XMNEWPRT,XMFIRST
|
---|
62 | S (XMSCAN,XMNEWPRT,XMFIRST)=1
|
---|
63 | D R
|
---|
64 | I $D(ZTQUEUED),$D(^XTMP("XM","MAKENEW",XMDUZ)) D NEWAGAIN^XMJBN1(XMDUZ)
|
---|
65 | Q
|
---|
66 | Q ; Quit
|
---|
67 | S XMABORT=1
|
---|
68 | Q
|
---|
69 | S ; Scan all new messages
|
---|
70 | N XMSCAN
|
---|
71 | S XMSCAN=1
|
---|
72 | D R
|
---|
73 | Q
|
---|
74 | R ; Read new mail by basket, priority first.
|
---|
75 | N XMTYPE,XMK,XMKN,XMZ,XMIA,XMKPRI
|
---|
76 | S XMABORT=0 ; (required when printing new messages)
|
---|
77 | S XMIA='$D(ZTQUEUED)
|
---|
78 | S XMKPRI=0,(XMKN,XMKPRI("XMKN"))="" K ^TMP("XM",$J,"APX")
|
---|
79 | F D Q:'$D(^XMB(3.7,XMDUZ,"N0"))!XMABORT
|
---|
80 | . S XMTYPE=$S($D(^XMB(3.7,XMDUZ,"N")):"N",$D(^XMB(3.7,XMDUZ,"N0")):"N0",1:"")
|
---|
81 | . I XMTYPE="" S XMABORT=1 W:'$D(ZTQUEUED) !,$$EZBLD^DIALOG(34017) Q ; You have no new messages.
|
---|
82 | . I 'XMKMULT D
|
---|
83 | . . S XMK=$O(^XMB(3.7,XMDUZ,XMTYPE,0))
|
---|
84 | . . S XMKN=$P(^XMB(3.7,XMDUZ,2,XMK,0),U)
|
---|
85 | . E D Q:XMABORT
|
---|
86 | . . D NXTBSKT^XMJBN1(XMDUZ,XMTYPE,.XMKN,.XMK,.XMKPRI) I 'XMK S XMABORT=1 Q
|
---|
87 | . . Q:$G(XMSCAN)
|
---|
88 | . . D ASKBSKT(XMDUZ,1,.XMK,.XMKN,.XMABORT) Q:XMABORT
|
---|
89 | . . I XMTYPE="N",'$D(^XMB(3.7,XMDUZ,XMTYPE,XMK)) S XMTYPE="N0"
|
---|
90 | . S XMZ=""
|
---|
91 | . F S XMZ=$O(^XMB(3.7,XMDUZ,XMTYPE,XMK,XMZ),XMV("NEW ORDER")) Q:XMZ="" D Q:XMABORT
|
---|
92 | . . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITN^XMUT4A(XMDUZ,XMTYPE,XMK,XMZ)
|
---|
93 | . . I $G(XMNEWPRT) D Q
|
---|
94 | . . . D PRTMULT^XMJMP(XMDUZ,XMK,XMKN,XMZ,0,1,.XMFIRST,"",.XMABORT)
|
---|
95 | . . . I XMDUZ'=DUZ,$$SURRCONF^XMXSEC(XMDUZ,XMZ) D Q
|
---|
96 | . . . . D NONEW^XMXUTIL(XMDUZ,XMK,XMZ,1)
|
---|
97 | . . . . S ^XTMP("XM","MAKENEW",XMDUZ,XMZ)=""
|
---|
98 | . . I XMDUZ'=DUZ,'$$SURRACC^XMXSEC(XMDUZ,"",XMZ,$G(XMB(3.9,XMZ,0))) D Q
|
---|
99 | . . . D ZSHOW^XMJERR
|
---|
100 | . . . D WAIT^XMXUTIL
|
---|
101 | . . . D NONEW^XMXUTIL(XMDUZ,XMK,XMZ,1)
|
---|
102 | . . . S ^XTMP("XM","MAKENEW",XMDUZ,XMZ)=""
|
---|
103 | . . D READNEW(XMDUZ,XMK,XMKN,XMZ,.XMABORT)
|
---|
104 | . Q:XMABORT
|
---|
105 | . S:$D(^XMB(3.7,XMDUZ,"N0")) XMKMULT=1
|
---|
106 | . Q:$G(XMSCAN)!'XMKMULT
|
---|
107 | . W !!,$$EZBLD^DIALOG($S(XMTYPE="N0":34098,1:34099),XMKN) ; Done with new/priority mail in your '|1|' Basket.
|
---|
108 | . W:$D(^XMB(3.7,XMDUZ,"N0")) !!
|
---|
109 | K ^TMP("XM",$J,"APX")
|
---|
110 | Q
|
---|
111 | READNEW(XMDUZ,XMK,XMKN,XMZ,XMABORT) ;
|
---|
112 | N XMSECURE,XMPAKMAN,XMSECBAD ; Important 'new' - part of scramble and packman handling
|
---|
113 | I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
114 | D DISPMSG^XMJMP(XMDUZ,XMK,XMKN,XMZ,.XMSECBAD) Q:$G(XMSECBAD)
|
---|
115 | D READMSG^XMJMOI($G(XMNEWS),XMDUZ,XMK,XMKN,XMZ,.XMABORT)
|
---|
116 | Q
|
---|
117 | ASKBSKT(XMDUZ,XMNEWMSG,XMK,XMKN,XMABORT) ;
|
---|
118 | ; XMNEWMSG 1=Read new mail; 0=Read any mail
|
---|
119 | N XMDIC,XMPROMPT
|
---|
120 | S XMDIC("W")="N XMPARM S XMPARM(2)=$P(^(0),U,2),XMPARM(1)=+$P($G(^(1,0)),U,4) W ?31,$$EZBLD^DIALOG($S(XMPARM(1)'=1:$S('XMPARM(2):34026,XMPARM(2)>1:34027,1:34027.3),XMPARM(2):34027.1,1:34026.1),.XMPARM)" ; (|1| messages, |2| new)
|
---|
121 | I XMNEWMSG D
|
---|
122 | . S XMPROMPT=34029 ; Read NEW mail in MAIL BASKET:
|
---|
123 | . S XMDIC("S")="I $P(^(0),U,2)"
|
---|
124 | . S XMDIC("B")=$P(^XMB(3.7,XMDUZ,2,XMK,0),U)
|
---|
125 | E S XMPROMPT=34028 ; Read mail in MAIL BASKET:
|
---|
126 | D SELBSKT^XMJBU(XMDUZ,XMPROMPT,"",.XMDIC,.XMK,.XMKN)
|
---|
127 | I XMK=U S XMABORT=1
|
---|
128 | Q
|
---|
129 | NPBSKT(XMDUZ) ; Return the first priority read basket that has new messages.
|
---|
130 | ; If none has new messages, return the first priority basket.
|
---|
131 | N XMDEFALT
|
---|
132 | S XMDEFALT=$$BNMSGCT^XMXUTIL(XMDUZ,1)_U_1_U_$$EZBLD^DIALOG(37005) ; IN
|
---|
133 | I '$D(^XMB(3.7,XMDUZ,2,"AP")) Q XMDEFALT
|
---|
134 | N XMK,XMKN
|
---|
135 | S XMKN=""
|
---|
136 | D NXTBSKT^XMJBN1(XMDUZ,"N0",.XMKN,.XMK)
|
---|
137 | I $D(^TMP("XM",$J,"APX")) K ^TMP("XM",$J,"APX") Q $$BNMSGCT^XMXUTIL(XMDUZ,XMK)_U_XMK_U_XMKN
|
---|
138 | N XMI
|
---|
139 | S (XMI,XMK)=0
|
---|
140 | S XMI=+$O(^XMB(3.7,XMDUZ,2,"AP",XMI))
|
---|
141 | I 'XMI Q XMDEFALT
|
---|
142 | F S XMK=$O(^XMB(3.7,XMDUZ,2,"AP",XMI,XMK)) Q:'XMK D
|
---|
143 | . S XMK($$BSKTNAME^XMXUTIL(XMDUZ,XMK))=XMK
|
---|
144 | S XMKN=$O(XMK(""))
|
---|
145 | I XMKN="" Q XMDEFALT
|
---|
146 | S XMK=XMK(XMKN)
|
---|
147 | Q "0^"_XMK_U_XMKN
|
---|