1 | XMXLIST1 ;ISC-SF/GMB-List message: multiple conditions (cont.) ;08/30/2000 15:29
|
---|
2 | ;;8.0;MailMan;;Jun 28, 2002
|
---|
3 | ; Look in all of the user's baskets.
|
---|
4 | NEWA(XMDUZ,XMTYPE,XMORDER,XMFLDS,XMAMT,XMSTART,XMF,XMTROOT) ; New messages in all baskets
|
---|
5 | N XMCNT,XMK,XMKN,XMZ
|
---|
6 | S XMCNT=0
|
---|
7 | S XMK=+$G(XMSTART("XMK")) I XMK S XMK=XMK-.01
|
---|
8 | S XMZ=$G(XMSTART("XMZ"))
|
---|
9 | F S XMK=$O(^XMB(3.7,XMDUZ,XMTYPE,XMK)) Q:'XMK D Q:XMCNT=XMAMT
|
---|
10 | . S XMKN=$P(^XMB(3.7,XMDUZ,2,XMK,0),U,1)
|
---|
11 | . F S XMZ=$O(^XMB(3.7,XMDUZ,XMTYPE,XMK,XMZ),XMORDER) Q:'XMZ D Q:XMCNT=XMAMT
|
---|
12 | . . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITN^XMUT4A(XMDUZ,XMTYPE,XMK,XMZ)
|
---|
13 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
14 | . . I $D(XMF) Q:'$$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF)
|
---|
15 | . . S XMCNT=XMCNT+1
|
---|
16 | . . S @(XMTROOT_XMCNT_")")=XMZ
|
---|
17 | . . Q:'$D(XMFLDS)
|
---|
18 | . . D FIELDS(XMDUZ,XMK,XMKN,XMZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
19 | . . I XMFLDS["SEQN" D KSEQN(XMDUZ,XMK,XMZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
20 | S XMSTART("XMK")=XMK
|
---|
21 | S XMSTART("XMZ")=XMZ
|
---|
22 | S @(XMTROOT_"0)")=XMCNT_U_XMAMT
|
---|
23 | ; Any more?
|
---|
24 | I 'XMK S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
25 | I '$O(^XMB(3.7,XMDUZ,XMTYPE,XMK)),'$O(^XMB(3.7,XMDUZ,XMTYPE,XMK,XMZ),XMORDER) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
26 | I '$D(XMF) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^1" Q
|
---|
27 | N XMORE
|
---|
28 | S XMORE=0,XMK=XMK-.01
|
---|
29 | F S XMK=$O(^XMB(3.7,XMDUZ,XMTYPE,XMK)) Q:'XMK D Q:XMORE
|
---|
30 | . F S XMZ=$O(^XMB(3.7,XMDUZ,XMTYPE,XMK,XMZ),XMORDER) Q:'XMZ D Q:XMORE
|
---|
31 | . . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITN^XMUT4A(XMDUZ,XMTYPE,XMK,XMZ)
|
---|
32 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
33 | . . I $$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF) S XMORE=1
|
---|
34 | S @(XMTROOT_"0)")=@(XMTROOT_"0)")_U_XMORE
|
---|
35 | Q
|
---|
36 | REGAC(XMDUZ,XMORDER,XMFLDS,XMAMT,XMSTART,XMF,XMTROOT) ; Messages (by C-xref) in all baskets
|
---|
37 | N XMCNT,XMK,XMKN,XMKZ,XMZ
|
---|
38 | S XMCNT=0
|
---|
39 | S XMK=+$G(XMSTART("XMK")) I XMK S XMK=XMK-.01
|
---|
40 | S XMKZ=$G(XMSTART("XMKZ"))
|
---|
41 | F S XMK=$O(^XMB(3.7,XMDUZ,2,XMK)) Q:'XMK D Q:XMCNT=XMAMT
|
---|
42 | . S XMKN=$P(^XMB(3.7,XMDUZ,2,XMK,0),U,1)
|
---|
43 | . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ),XMORDER) Q:'XMKZ S XMZ=$O(^(XMKZ,"")) D Q:XMCNT=XMAMT
|
---|
44 | . . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITC^XMUT4A(XMDUZ,XMK,XMZ,XMKZ)
|
---|
45 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
46 | . . I $D(XMF) Q:'$$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF)
|
---|
47 | . . S XMCNT=XMCNT+1
|
---|
48 | . . S @(XMTROOT_XMCNT_")")=XMZ
|
---|
49 | . . Q:'$D(XMFLDS)
|
---|
50 | . . D FIELDS(XMDUZ,XMK,XMKN,XMZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
51 | . . I XMFLDS["SEQN" D SEQN(XMDUZ,XMKZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
52 | S XMSTART("XMK")=XMK
|
---|
53 | S XMSTART("XMKZ")=XMKZ
|
---|
54 | S @(XMTROOT_"0)")=XMCNT_U_XMAMT
|
---|
55 | ; Any more?
|
---|
56 | I 'XMK S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
57 | I '$O(^XMB(3.7,XMDUZ,2,XMK)),'$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ),XMORDER) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
58 | I '$D(XMF) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^1" Q
|
---|
59 | N XMORE
|
---|
60 | S XMORE=0,XMK=XMK-.01
|
---|
61 | F S XMK=$O(^XMB(3.7,XMDUZ,2,XMK)) Q:'XMK D Q:XMORE
|
---|
62 | . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ),XMORDER) Q:'XMKZ S XMZ=$O(^(XMKZ,"")) D Q:XMORE
|
---|
63 | . . I '$D(^XMB(3.7,XMDUZ,2,XMK,1,XMZ,0)) D ADDITC^XMUT4A(XMDUZ,XMK,XMZ,XMKZ)
|
---|
64 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
65 | . . I $$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF) S XMORE=1
|
---|
66 | S @(XMTROOT_"0)")=@(XMTROOT_"0)")_U_XMORE
|
---|
67 | Q
|
---|
68 | REGAZ(XMDUZ,XMORDER,XMFLDS,XMAMT,XMSTART,XMF,XMTROOT) ; Messages (by IEN) in all baskets
|
---|
69 | N XMCNT,XMK,XMKN,XMZ
|
---|
70 | S XMCNT=0
|
---|
71 | S XMK=+$G(XMSTART("XMK")) I XMK S XMK=XMK-.01
|
---|
72 | S XMZ=$G(XMSTART("XMZ"))
|
---|
73 | F S XMK=$O(^XMB(3.7,XMDUZ,2,XMK)) Q:'XMK D Q:XMCNT=XMAMT
|
---|
74 | . S XMKN=$P(^XMB(3.7,XMDUZ,2,XMK,0),U,1)
|
---|
75 | . I +XMZ=0 S XMZ=0 I XMORDER=-1 S XMZ=":"
|
---|
76 | . F S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,XMZ),XMORDER) Q:'XMZ D Q:XMCNT=XMAMT
|
---|
77 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
78 | . . I $D(XMF) Q:'$$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF)
|
---|
79 | . . S XMCNT=XMCNT+1
|
---|
80 | . . S @(XMTROOT_XMCNT_")")=XMZ
|
---|
81 | . . Q:'$D(XMFLDS)
|
---|
82 | . . D FIELDS(XMDUZ,XMK,XMKN,XMZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
83 | . . I XMFLDS["SEQN" D KSEQN(XMDUZ,XMK,XMZ,.XMFLDS,XMTROOT,XMCNT)
|
---|
84 | S XMSTART("XMK")=XMK
|
---|
85 | S XMSTART("XMZ")=XMZ
|
---|
86 | S @(XMTROOT_"0)")=XMCNT_U_XMAMT
|
---|
87 | ; Any more?
|
---|
88 | I 'XMK S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
89 | I '$O(^XMB(3.7,XMDUZ,2,XMK)),'$O(^XMB(3.7,XMDUZ,2,XMK,1,XMZ),XMORDER) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^0" Q
|
---|
90 | I '$D(XMF) S @(XMTROOT_"0)")=@(XMTROOT_"0)")_"^1" Q
|
---|
91 | N XMORE
|
---|
92 | S XMORE=0,XMK=XMK-.01
|
---|
93 | F S XMK=$O(^XMB(3.7,XMDUZ,2,XMK)) Q:'XMK D Q:XMORE
|
---|
94 | . I +XMZ=0 S XMZ=0 I XMORDER=-1 S XMZ=":"
|
---|
95 | . F S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,XMZ),XMORDER) Q:'XMZ D Q:XMORE
|
---|
96 | . . I '$D(^XMB(3.9,XMZ,0)) D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
97 | . . I $$GOODMSG^XMJMFB(XMDUZ,XMK,XMZ,.XMF) S XMORE=1
|
---|
98 | S @(XMTROOT_"0)")=@(XMTROOT_"0)")_U_XMORE
|
---|
99 | Q
|
---|
100 | FIELDS(XMDUZ,XMK,XMKN,XMZ,XMFLDS,XMTROOT,XMCNT) ;
|
---|
101 | N XMZREC,XMLOOK,XMVAL
|
---|
102 | I XMFLDS["BSKT" D
|
---|
103 | . S XMLOOK=$P($P(XMFLDS,"BSKT",2),";",1)
|
---|
104 | . S @(XMTROOT_XMCNT_",""BSKT"")")=XMK_$S(XMLOOK["I":"",1:U_XMKN)
|
---|
105 | . I XMLOOK["X" S @(XMTROOT_"""BSKT"",XMKN,XMCNT)")=""
|
---|
106 | I XMFLDS["FROM" D
|
---|
107 | . I '$D(XMZREC) S XMZREC=$G(^XMB(3.9,XMZ,0))
|
---|
108 | . S XMLOOK=$P($P(XMFLDS,"FROM",2),";",1)
|
---|
109 | . I XMLOOK["I" S @(XMTROOT_XMCNT_",""FROM"")")=$P(XMZREC,U,2) Q:XMLOOK'["X"
|
---|
110 | . S XMVAL=$$FROM^XMXUTIL2(XMZREC)
|
---|
111 | . I $E(XMVAL)="<" S XMVAL=$E(XMVAL,2,$L(XMVAL)-1)
|
---|
112 | . I XMLOOK'["I" S @(XMTROOT_XMCNT_",""FROM"")")=$P(XMZREC,U,2)_U_XMVAL Q:XMLOOK'["X"
|
---|
113 | . S @(XMTROOT_"""FROM"",XMVAL,XMCNT)")=""
|
---|
114 | I XMFLDS["DATE" D
|
---|
115 | . I '$D(XMZREC) S XMZREC=$G(^XMB(3.9,XMZ,0))
|
---|
116 | . S XMLOOK=$P($P(XMFLDS,"DATE",2),";",1)
|
---|
117 | . I XMLOOK'["X" D Q
|
---|
118 | . . I XMLOOK["I" S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3) Q
|
---|
119 | . . I XMLOOK["F" D Q
|
---|
120 | . . . S XMVAL=$P(XMZREC,U,3)
|
---|
121 | . . . I XMVAL'?7N.E S XMVAL=$$CONVERT^XMXUTIL1(XMVAL,1) I XMVAL=-1 S XMVAL=$P(XMZREC,U,3)
|
---|
122 | . . . S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3)_U_XMVAL
|
---|
123 | . . S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3)_U_$$DATE^XMXUTIL2(XMZREC)
|
---|
124 | . S XMVAL=$P(XMZREC,U,3)
|
---|
125 | . I XMVAL'?7N.E S XMVAL=$$CONVERT^XMXUTIL1(XMVAL,1)
|
---|
126 | . S @(XMTROOT_"""DATE"",XMVAL,XMCNT)")=""
|
---|
127 | . I XMLOOK["I" S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3) Q
|
---|
128 | . I XMLOOK["F" S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3)_U_XMVAL Q
|
---|
129 | . S @(XMTROOT_XMCNT_",""DATE"")")=$P(XMZREC,U,3)_U_$$DATE^XMXUTIL2(XMZREC)
|
---|
130 | I XMFLDS["SUBJ" D
|
---|
131 | . I '$D(XMZREC) S XMZREC=$G(^XMB(3.9,XMZ,0))
|
---|
132 | . S XMLOOK=$P($P(XMFLDS,"SUBJ",2),";",1)
|
---|
133 | . I XMLOOK'["X" S @(XMTROOT_XMCNT_",""SUBJ"")")=$$SUBJ^XMXUTIL2(XMZREC) Q
|
---|
134 | . S XMVAL=$$SUBJ^XMXUTIL2(XMZREC)
|
---|
135 | . S @(XMTROOT_XMCNT_",""SUBJ"")")=XMVAL
|
---|
136 | . S @(XMTROOT_"""SUBJ"",XMVAL,XMCNT)")=""
|
---|
137 | I XMFLDS["PRI" D
|
---|
138 | . I '$D(XMZREC) S XMZREC=$G(^XMB(3.9,XMZ,0))
|
---|
139 | . S @(XMTROOT_XMCNT_",""PRI"")")=$$PRI^XMXUTIL2(XMZREC)
|
---|
140 | I XMFLDS["LINE" S @(XMTROOT_XMCNT_",""LINE"")")=$$LINE^XMXUTIL2(XMZ)
|
---|
141 | I XMFLDS["NEW" S @(XMTROOT_XMCNT_",""NEW"")")=$$NEW^XMXUTIL2(XMDUZ,XMK,XMZ)
|
---|
142 | I XMFLDS["RESP" S @(XMTROOT_XMCNT_",""RESP"")")=$$RESP^XMXUTIL2(XMZ)
|
---|
143 | I XMFLDS["READ" S @(XMTROOT_XMCNT_",""READ"")")=$$ZREAD^XMXUTIL2(XMDUZ,XMZ)
|
---|
144 | Q
|
---|
145 | KSEQN(XMDUZ,XMK,XMZ,XMFLDS,XMTROOT,XMCNT) ;
|
---|
146 | S @(XMTROOT_XMCNT_",""SEQN"")")=$$KSEQN^XMXUTIL2(XMDUZ,XMK,XMZ)
|
---|
147 | Q
|
---|
148 | SEQN(XMDUZ,XMKZ,XMFLDS,XMTROOT,XMCNT) ;
|
---|
149 | S @(XMTROOT_XMCNT_",""SEQN"")")=XMKZ
|
---|
150 | Q
|
---|