| 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
 | 
|---|