[613] | 1 | XMJMORX1 ;ISC-SF/GMB-^XMJMORX (cont.) ;09/16/2002 11:16
|
---|
| 2 | ;;8.0;MailMan;**5**;Jun 28, 2002
|
---|
| 3 | ;DELMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
| 4 | XDEL ;
|
---|
| 5 | Q:'XMK
|
---|
| 6 | K XMERR,^TMP("XMERR",$J)
|
---|
| 7 | D DEL^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
|
---|
| 8 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
| 9 | I XMKALL,$G(XMTYPE)'["N" D Q
|
---|
| 10 | . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
|
---|
| 11 | K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 12 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 13 | Q
|
---|
| 14 | ;FLTRMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
| 15 | XFLTR ;
|
---|
| 16 | N XMKN,XMKTO,XMKNTO
|
---|
| 17 | S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
|
---|
| 18 | D FLTR^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
|
---|
| 19 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
| 20 | I XMKALL D Q
|
---|
| 21 | . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
| 22 | Q:XMKN=XMKNTO
|
---|
| 23 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 24 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 25 | Q
|
---|
| 26 | ;NTOGLMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
| 27 | XNTOGL ;
|
---|
| 28 | N XMKN,XMKTO,XMKNTO
|
---|
| 29 | S XMKN=$P(^TMP("XM",$J,"MSG",XMKZ),U,2)
|
---|
| 30 | D NTOGL^XMXMSGS2(XMDUZ,XMK,XMKN,XMZ,.XMCNT,.XMKTO,.XMKNTO)
|
---|
| 31 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
| 32 | I XMKALL D Q
|
---|
| 33 | . S:XMKN'=XMKNTO ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
| 34 | Q:XMKN=XMKNTO
|
---|
| 35 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 36 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 37 | Q
|
---|
| 38 | ;SAVEMSG(XMDUZ,XMK,XMKTO,XMKNTO,XMKZ,XMZ,XMCNT)
|
---|
| 39 | XSAVE ;
|
---|
| 40 | Q:XMK=XMKTO
|
---|
| 41 | D MOVE^XMXMSGS2(XMDUZ,XMK,XMZ,XMKTO,.XMCNT)
|
---|
| 42 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
| 43 | I XMKALL D Q
|
---|
| 44 | . S ^TMP("XM",$J,"MSG",XMKZ)=XMKTO_U_XMKNTO_U_XMZ
|
---|
| 45 | K ^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 46 | ;K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 47 | Q
|
---|
| 48 | ;TERMMSG(XMDUZ,XMK,XMKZ,XMZ,XMCNT)
|
---|
| 49 | XTERM ;
|
---|
| 50 | Q:'XMK
|
---|
| 51 | K XMERR,^TMP("XMERR",$J)
|
---|
| 52 | D TERM^XMXMSGS2(XMDUZ,XMK,XMZ,.XMCNT)
|
---|
| 53 | I $D(XMERR) D ZSHOW^XMJERR Q
|
---|
| 54 | I XMKALL,$G(XMTYPE)'["N" D Q
|
---|
| 55 | . S ^TMP("XM",$J,"MSG",XMKZ)=$S(XMK'=.5:".5^"_$$EZBLD^DIALOG(37004),1:"0^"_$$EZBLD^DIALOG(34014))_U_XMZ ; "WASTE" / "* N/A *"
|
---|
| 56 | K:XMTMP ^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 57 | K:$D(^TMP("XM",$J,".",XMKZ)) ^TMP("XM",$J,".",XMKZ)
|
---|
| 58 | Q
|
---|
| 59 | LISTSEL(XMZLIST) ;
|
---|
| 60 | N XMKZ,J,XMZ
|
---|
| 61 | S (XMKZ,J)=0
|
---|
| 62 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
| 63 | . S XMZ=$P(^TMP("XM",$J,"MSG",XMKZ),U,3)
|
---|
| 64 | . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
| 65 | . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
| 66 | . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
| 67 | Q
|
---|
| 68 | LIST(XMWHICH,XMZLIST) ;
|
---|
| 69 | N I,J,XMRANGE,XMKZ,XMZ
|
---|
| 70 | S J=0
|
---|
| 71 | F I=1:1:$L(XMWHICH,",") D
|
---|
| 72 | . S XMRANGE=$P(XMWHICH,",",I)
|
---|
| 73 | . Q:'XMRANGE
|
---|
| 74 | . F XMKZ=$P(XMRANGE,"-",1):1:$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE) D
|
---|
| 75 | . . S XMZ=$P($G(^TMP("XM",$J,"MSG",XMKZ)),U,3) Q:'XMZ
|
---|
| 76 | . . I J=0 S J=1,XMZLIST(1)=XMZ Q
|
---|
| 77 | . . I $L(XMZLIST(J))+$L(XMZ)>240 S J=J+1,XMZLIST(J)=XMZ Q
|
---|
| 78 | . . S XMZLIST(J)=XMZLIST(J)_","_XMZ
|
---|
| 79 | Q
|
---|
| 80 | ACTWHICH(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMPROMPT,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO)
|
---|
| 81 | N XMWHICH
|
---|
| 82 | D WHICH(XMPROMPT,XMCONFRM,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 83 | D ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMWHICH,XMRTN,XMSUM,.XMMSG)
|
---|
| 84 | Q
|
---|
| 85 | WHICH(XMPROMPT,XMCONFRM,XMWHICH,XMABORT) ;
|
---|
| 86 | N DIR,Y,XMHI,XMLO
|
---|
| 87 | S XMLO=$O(^TMP("XM",$J,"MSG",""))
|
---|
| 88 | S XMHI=$O(^TMP("XM",$J,"MSG",""),-1)
|
---|
| 89 | S DIR("A")=$$EZBLD^DIALOG(XMPROMPT) ; ... which messages?
|
---|
| 90 | S DIR("??")="XM-U-M-CHOOSE RANGE"
|
---|
| 91 | S DIR(0)="LC^"_XMLO_":"_XMHI
|
---|
| 92 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
| 93 | S XMWHICH=Y
|
---|
| 94 | I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT)
|
---|
| 95 | Q
|
---|
| 96 | ACTMSG(XMDUZ,XMTMP,XMKALL,XMK,XMKZA,XMRTN,XMSUM,XMMSG) ;,XMKTO)
|
---|
| 97 | ; XMKZA Array of msg numbers DEL("1-3,7,11-15")
|
---|
| 98 | ; XMKZL List of msg numbers 1-3,7,11-15
|
---|
| 99 | ; (It is OK if the list ends with a comma)
|
---|
| 100 | ; XMKZR Range of msg numbers 1-3
|
---|
| 101 | ; XMKZ1 First number in range 1
|
---|
| 102 | ; XMKZN Last number in range 3
|
---|
| 103 | N XMKZ,XMREC,XMKZL,XMKZR,XMI,XMKZ1,XMKZN,XMZ,XMCNT,XMPIECES
|
---|
| 104 | S XMCNT=0
|
---|
| 105 | ; is this an array or a variable?
|
---|
| 106 | I $G(XMKZA)]"",$O(XMKZA(""))="" S XMKZA(XMKZA)=""
|
---|
| 107 | S XMKZL=""
|
---|
| 108 | F S XMKZL=$O(XMKZA(XMKZL)) Q:XMKZL="" D
|
---|
| 109 | . S XMPIECES=$L(XMKZL,",")
|
---|
| 110 | . S:'$P(XMKZL,",",XMPIECES) XMPIECES=XMPIECES-1
|
---|
| 111 | . F XMI=1:1:XMPIECES D
|
---|
| 112 | . . S XMKZR=$P(XMKZL,",",XMI)
|
---|
| 113 | . . I XMKZR["-" D Q
|
---|
| 114 | . . . ; deal with a range of msg #s
|
---|
| 115 | . . . S XMKZ1=$P(XMKZR,"-",1)
|
---|
| 116 | . . . S XMKZN=$P(XMKZR,"-",2)
|
---|
| 117 | . . . S XMKZ=XMKZ1-.1
|
---|
| 118 | . . . I XMTMP D Q
|
---|
| 119 | . . . . F S XMKZ=$O(^TMP("XM",$J,"MSG",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
|
---|
| 120 | . . . . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 121 | . . . . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
| 122 | . . . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
| 123 | . . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 124 | . . . F S XMKZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ)) Q:XMKZ>XMKZN!'XMKZ D
|
---|
| 125 | . . . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
|
---|
| 126 | . . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 127 | . . S XMKZ=XMKZR
|
---|
| 128 | . . I XMTMP D Q
|
---|
| 129 | . . . S XMREC=$G(^TMP("XM",$J,"MSG",XMKZ))
|
---|
| 130 | . . . I XMREC="" S XMZ=0 Q
|
---|
| 131 | . . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
| 132 | . . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
| 133 | . . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 134 | . . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,0)) Q:'XMZ
|
---|
| 135 | . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 136 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
| 137 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
| 138 | Q
|
---|
| 139 | SELMSG(XMDUZ,XMTMP,XMKALL,XMK,XMRTN,XMSUM,XMCONFRM,XMMSG,XMABORT) ;,XMKTO,XMWHEN)
|
---|
| 140 | I XMCONFRM D CONFIRM^XMJMOR(XMCONFRM,.XMABORT) Q:XMABORT
|
---|
| 141 | N XMCNT,XMKZ,XMREC,XMZ
|
---|
| 142 | S (XMCNT,XMKZ)=0
|
---|
| 143 | F S XMKZ=$O(^TMP("XM",$J,".",XMKZ)) Q:'XMKZ D
|
---|
| 144 | . I XMTMP D Q
|
---|
| 145 | . . S XMREC=^TMP("XM",$J,"MSG",XMKZ)
|
---|
| 146 | . . S:XMKALL XMK=$P(XMREC,U,1)
|
---|
| 147 | . . S XMZ=$P(XMREC,U,3) Q:'XMZ
|
---|
| 148 | . . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 149 | . S XMZ=$O(^XMB(3.7,XMDUZ,2,XMK,1,"C",XMKZ,"")) Q:'XMZ
|
---|
| 150 | . D @XMRTN ;(XMDUZ,XMK,XMZ)
|
---|
| 151 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:XMSUM+.1,1:XMSUM),XMCNT)
|
---|
| 152 | D INCRDECR^XMXMSGS(XMDUZ,.XMCNT)
|
---|
| 153 | Q
|
---|