[613] | 1 | XMJMP ;ISC-SF/GMB-Print,Backup messages ;12/04/2002 10:53
|
---|
| 2 | ;;8.0;MailMan;**9**;Jun 28, 2002
|
---|
| 3 | ; PRINT Replaces ENTPRT^XMA0,^XMA02,ENTPRT^XMAP,QE2^XMA5
|
---|
| 4 | ; BACKUP Replaces E^XMA1,ENT8^XMAH,ENTR^XMAP,ENTBCK^XMAP
|
---|
| 5 | ; (ISC-WASH/CAP/THM)
|
---|
| 6 | PRINT(XMDUZ,XMK,XMZ,XMPRTHDR,XMBROWSE) ; Print
|
---|
| 7 | ; XMPRTHDR 1=Print header
|
---|
| 8 | ; 0=don't (headerless print)
|
---|
| 9 | ; XMRECIPS 0=Don't print recipients
|
---|
| 10 | ; 1=Print summary recipients
|
---|
| 11 | ; 2=Print detail recipients
|
---|
| 12 | ; XMBROWSE 0=Print normally
|
---|
| 13 | ; 1=Direct the print to the VA FileMan Browser
|
---|
| 14 | N XMWHICH,XMRESPS,XMABORT,XMRECIPS,XMSAVE,ZTSK
|
---|
| 15 | S XMABORT=0
|
---|
| 16 | I $G(XMBROWSE) S XMRECIPS=0
|
---|
| 17 | E D QRECIP(.XMRECIPS,.XMABORT) Q:XMABORT
|
---|
| 18 | S XMRESPS=$$RESP^XMXUTIL2(XMZ)
|
---|
| 19 | I XMRESPS D Q:XMABORT
|
---|
| 20 | . S XMWHICH="0-"_XMRESPS
|
---|
| 21 | . D WHICH(XMZ,XMRESPS,$$EZBLD^DIALOG(34500),.XMWHICH,.XMABORT) ; Print
|
---|
| 22 | . ; If responses includes from x through the end, then set it so that
|
---|
| 23 | . ; if the user queues for later printing, any new add'l responses
|
---|
| 24 | . ; will be printed, too.
|
---|
| 25 | . I XMWHICH["-",$P(XMWHICH,"-",$L(XMWHICH,"-"))=XMRESPS S XMWHICH=$P(XMWHICH,"-",1,$L(XMWHICH,"-")-1)_"-"
|
---|
| 26 | E S XMWHICH="0-"
|
---|
| 27 | S:$G(XMPRTHDR)="" XMPRTHDR=1 ; default is to print with headers
|
---|
| 28 | F I="DUZ","XMDUZ","XMV(","XMK","XMZ","XMWHICH","XMRECIPS","XMPRTHDR" S XMSAVE(I)=""
|
---|
| 29 | I $D(XMSECURE) F I="XMPAKMAN","XMSECURE","XMSECURE(" S XMSAVE(I)=""
|
---|
| 30 | I $G(XMBROWSE) N IOP,DDBDMSG S IOP="BROWSER",DDBDMSG=$$EZBLD^DIALOG(34537,XMZ)_" "_$$ZSUBJ^XMXUTIL2(XMZ) ; (Instead of "VA FileMan Browser")
|
---|
| 31 | D EN^XUTMDEVQ("PRTMSGX^XMJMP",$$EZBLD^DIALOG(34501),.XMSAVE,,1) ; MailMan: Print
|
---|
| 32 | I $D(ZTSK) W !,$$EZBLD^DIALOG(34501.1,ZTSK) ; Request queued. Task number: |1|
|
---|
| 33 | Q
|
---|
| 34 | PRTMSG(XMDUZ,XMK,XMZ,XMWHICH,XMRECIPS,XMPRTHDR) ;
|
---|
| 35 | PRTMSGX ;
|
---|
| 36 | PRINTMSG ;
|
---|
| 37 | N XMKN,XMRESPS,XMZREC,XMPTR
|
---|
| 38 | S XMZREC=$G(^XMB(3.9,XMZ,0)) Q:XMZREC=""
|
---|
| 39 | D BSKT^XMJMP1(XMDUZ,XMZ,.XMK,.XMKN)
|
---|
| 40 | D RESPONSE(XMDUZ,XMZ,.XMRESPS,.XMPTR)
|
---|
| 41 | W:$E($G(IOST),1,2)="C-" @IOF
|
---|
| 42 | D:XMPRTHDR IDHDR(XMDUZ)
|
---|
| 43 | D PRINTIT^XMJMP1(XMDUZ,XMK,XMKN,XMZ,XMZREC,XMRESPS,XMPTR,XMWHICH,XMRECIPS,0,XMPRTHDR)
|
---|
| 44 | I $D(ZTQUEUED) S ZTREQ="@" D ^%ZISC ; This close device is needed to preserve the temp global used by p-message.
|
---|
| 45 | Q
|
---|
| 46 | IDHDR(XMDUZ) ; Header: "MailMan msg for..."
|
---|
| 47 | N XMREC,XMPARM
|
---|
| 48 | S XMREC=$G(^VA(200,XMDUZ,0))
|
---|
| 49 | W $C(13),$$EZBLD^DIALOG(34502,XMV("NAME")) ; MailMan message for
|
---|
| 50 | I $P(XMREC,U,9)'="",$D(^DIC(3.1,+$P(XMREC,U,9),0)) W " ",$P(^(0),U,1) ; VA TITLE
|
---|
| 51 | S XMPARM(1)=^XMB("NETNAME"),XMPARM(2)=$$MMDT^XMXUTIL1($$NOW^XLFDT)
|
---|
| 52 | W !,$$EZBLD^DIALOG(34503,.XMPARM),! ; Printed at site date
|
---|
| 53 | Q
|
---|
| 54 | QRECIP(XMRECIPS,XMABORT) ;
|
---|
| 55 | N DIR,DIRUT,Y,XMSUMRY
|
---|
| 56 | S DIR(0)="Y"
|
---|
| 57 | S DIR("A")=$$EZBLD^DIALOG(34504) ; Print recipient list
|
---|
| 58 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No
|
---|
| 59 | D BLD^DIALOG(34505,"","","DIR(""?"")")
|
---|
| 60 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
| 61 | I Y=0 S XMRECIPS=0 Q
|
---|
| 62 | S XMSUMRY=$$EZBLD^DIALOG(34507)
|
---|
| 63 | S DIR(0)="SM^"_$$EZBLD^DIALOG(34506)_";"_XMSUMRY
|
---|
| 64 | S DIR("A")=$$EZBLD^DIALOG(34508) ; Print Detail or Summary recipient chain
|
---|
| 65 | S DIR("B")=$P(XMSUMRY,":",2,99) ; Summary
|
---|
| 66 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
| 67 | S XMRECIPS=$S(Y=$P(XMSUMRY,":",1):1,1:2)
|
---|
| 68 | Q
|
---|
| 69 | DISPMSG(XMDUZ,XMK,XMKN,XMZ,XMSECBAD,XMNOBACK) ; Display message
|
---|
| 70 | N XMRESPS,XMRESP,XMPTR,XMZREC,XMBACKUP
|
---|
| 71 | S XMZREC=^XMB(3.9,XMZ,0)
|
---|
| 72 | S XMPAKMAN=$$PAKMAN^XMXSEC1(XMZ,XMZREC)
|
---|
| 73 | D RESPONSE(XMDUZ,XMZ,.XMRESPS,.XMPTR,.XMRESP)
|
---|
| 74 | I XMRESP'="",XMRESPS S XMRESP=XMRESP+1 I XMRESP>XMRESPS,'$G(XMNOBACK) S XMBACKUP=1
|
---|
| 75 | I XMDUZ=.5,XMK>999 S XMRESP=XMRESPS+1 K:$D(XMBACKUP) XMBACKUP
|
---|
| 76 | E I $D(^XMB(3.9,XMZ,"K")),'$D(XMSECURE),'$$KEYOK^XMJMCODE(XMZ,$P(XMZREC,U,10)) S XMSECBAD=1 Q
|
---|
| 77 | W @IOF
|
---|
| 78 | D PRINTIT^XMJMP1(XMDUZ,XMK,XMKN,XMZ,XMZREC,XMRESPS,XMPTR,+XMRESP_"-",0,1,1)
|
---|
| 79 | I $G(XMBACKUP) W !!,$$EZBLD^DIALOG(34509) ; You are at the end of this message. Enter 'B' to Backup and review it.
|
---|
| 80 | Q
|
---|
| 81 | RESPONSE(XMDUZ,XMZ,XMRESPS,XMPTR,XMRESP) ;
|
---|
| 82 | ; XMRESP="" if the user hasn't read the message at all
|
---|
| 83 | ; 0 if the user has read the original message only
|
---|
| 84 | ; n if the user has read thru response n
|
---|
| 85 | S XMRESPS=+$P($G(^XMB(3.9,XMZ,3,0)),U,4)
|
---|
| 86 | ;S XMPTR=+$O(^XMB(3.9,XMZ,1,"C",$S(XMDUZ=.6:DUZ,1:XMDUZ),0))
|
---|
| 87 | S XMPTR=+$O(^XMB(3.9,XMZ,1,"C",XMDUZ,0))
|
---|
| 88 | S XMRESP=$P($G(^XMB(3.9,XMZ,1,XMPTR,0)),U,2)
|
---|
| 89 | Q
|
---|
| 90 | CHKRESP(XMDUZ,XMZO,XMRESPSO,XMRESP) ;
|
---|
| 91 | N XMRESPS
|
---|
| 92 | S XMRESPS=+$P($G(^XMB(3.9,XMZO,3,0)),U,4)
|
---|
| 93 | Q:XMRESPS=+XMRESP ; No new responses
|
---|
| 94 | I XMRESPSO>XMRESP D Q:XMRESPSO=XMRESPS
|
---|
| 95 | . I XMRESPSO-1>XMRESP D
|
---|
| 96 | . . ; >> You haven't read responses |1|-|2|. You may backup to see them. <<
|
---|
| 97 | . . N XMPARM
|
---|
| 98 | . . S XMPARM(1)=XMRESP+1,XMPARM(2)=XMRESPSO
|
---|
| 99 | . . W !,$$EZBLD^DIALOG(34510,.XMPARM)
|
---|
| 100 | . E W !,$$EZBLD^DIALOG(34511,XMRESP+1) ; >> You haven't read response |1|. You may backup to see it. <<
|
---|
| 101 | . S XMRESP=XMRESPSO
|
---|
| 102 | N XMZ
|
---|
| 103 | F S XMRESP=$O(^XMB(3.9,XMZO,3,XMRESP)) Q:'XMRESP S XMZ=$P($G(^(XMRESP,0)),U,1) I XMZ,$P($G(^XMB(3.9,XMZ,0)),U,2)'=XMDUZ Q
|
---|
| 104 | Q:'XMRESP
|
---|
| 105 | W !,$$EZBLD^DIALOG(34512,XMRESP) ; >> Response |1| has arrived - you may backup to see it. <<
|
---|
| 106 | Q
|
---|
| 107 | BACKUP(XMDUZ,XMK,XMKN,XMZ) ; Backup
|
---|
| 108 | N XMWHICH,XMRESPS,XMABORT,XMZREC,XMPTR
|
---|
| 109 | S XMZREC=^XMB(3.9,XMZ,0)
|
---|
| 110 | I $D(^XMB(3.9,XMZ,"K")),'$D(XMSECURE) Q:'$$KEYOK^XMJMCODE(XMZ,$P(XMZREC,U,10))
|
---|
| 111 | S XMABORT=0
|
---|
| 112 | D RESPONSE(XMDUZ,XMZ,.XMRESPS,.XMPTR,.XMWHICH)
|
---|
| 113 | I XMRESPS D HOWMUCH^XMJMP1(XMZ,XMRESPS,.XMWHICH,.XMABORT) Q:XMABORT
|
---|
| 114 | W @IOF
|
---|
| 115 | D PRINTIT^XMJMP1(XMDUZ,XMK,XMKN,XMZ,XMZREC,XMRESPS,XMPTR,XMWHICH,0,1,1)
|
---|
| 116 | Q
|
---|
| 117 | WHICH(XMZ,XMRESPS,XMVERB,XMWHICH,XMABORT) ;
|
---|
| 118 | N DIR,DIRUT,Y,XMTEXT
|
---|
| 119 | ; There is 1 response. / There are X responses. Response 0 is the original message. (?? shows index)
|
---|
| 120 | D BLD^DIALOG($S(XMRESPS=1:34514,1:34515),XMRESPS,"","XMTEXT")
|
---|
| 121 | M DIR("A")=XMTEXT
|
---|
| 122 | S DIR("A")=$$EZBLD^DIALOG(34516,XMVERB) ; Select the responses to |1|:
|
---|
| 123 | S:$D(XMWHICH) DIR("B")=XMWHICH
|
---|
| 124 | S DIR("PRE")="I X?.E1N1""-"" S X=X_XMRESPS W XMRESPS"
|
---|
| 125 | S DIR(0)="LACO^0:"_XMRESPS
|
---|
| 126 | S DIR("??")="^D HELPRESP^XMJMP1(XMZ,XMRESPS)"
|
---|
| 127 | D ^DIR I $D(DTOUT)!$D(DUOUT) S XMABORT=1 Q
|
---|
| 128 | S:X'="" XMWHICH=$E(Y,1,$L(Y)-1)
|
---|
| 129 | Q
|
---|
| 130 | PONE(XMDUZ,XMK,XMZ,XMPRTHDR,XMABORT) ;
|
---|
| 131 | PONEX ; Print one message. Check it to see if
|
---|
| 132 | ; the user is allowed to see it. (confidential, scrambled)
|
---|
| 133 | ; If not, print an error message.
|
---|
| 134 | N XMZREC
|
---|
| 135 | I $G(XMK)="" S XMK=$$BSKT^XMXUTIL2(XMDUZ,XMZ)
|
---|
| 136 | I '$D(^XMB(3.9,XMZ,0)),XMK D ZAPIT^XMJBM(XMDUZ,XMK,XMZ) S XMABORT=1 Q
|
---|
| 137 | S XMZREC=^XMB(3.9,XMZ,0)
|
---|
| 138 | I XMDUZ'=DUZ,'$$SURRACC^XMXSEC(XMDUZ,"",XMZ,XMZREC) D Q ; "access"
|
---|
| 139 | . D SHOW^XMJERR
|
---|
| 140 | . S XMABORT=1
|
---|
| 141 | N XMSECURE,XMPAKMAN ; Important 'new' - part of scramble and packman handling
|
---|
| 142 | S XMPAKMAN=$$PAKMAN^XMXSEC1(XMZ,XMZREC)
|
---|
| 143 | I $D(^XMB(3.9,XMZ,"K")),'$$KEYOK^XMJMCODE(XMZ,$P(XMZREC,U,10)) S XMABORT=1 Q
|
---|
| 144 | N XMRECIPS,XMRESPS,XMWHICH
|
---|
| 145 | D QRECIP(.XMRECIPS,.XMABORT) Q:XMABORT
|
---|
| 146 | D RESPONSE(XMDUZ,XMZ,.XMRESPS,"",.XMWHICH)
|
---|
| 147 | I XMRESPS D Q:XMABORT
|
---|
| 148 | . N XMRESP
|
---|
| 149 | . S XMRESP=XMWHICH
|
---|
| 150 | . I $D(^XMB(3.7,XMDUZ,"N0",XMK,XMZ)),XMRESP S:XMRESP'=XMRESPS XMRESP=XMRESP+1
|
---|
| 151 | . E S XMRESP=0
|
---|
| 152 | . I XMRESP=XMRESPS S XMWHICH=XMRESP
|
---|
| 153 | . E S XMWHICH=XMRESP_"-"_XMRESPS
|
---|
| 154 | . D WHICH(XMZ,XMRESPS,$$EZBLD^DIALOG(34500),.XMWHICH,.XMABORT) ; Print
|
---|
| 155 | E S XMWHICH=0
|
---|
| 156 | F I="DUZ","XMDUZ","XMV(","XMK","XMZ","XMWHICH","XMRECIPS","XMPRTHDR" S XMSAVE(I)=""
|
---|
| 157 | I $D(XMSECURE) F I="XMPAKMAN","XMSECURE","XMSECURE(" S XMSAVE(I)=""
|
---|
| 158 | D EN^XUTMDEVQ("PRTMSGX^XMJMP",$$EZBLD^DIALOG(34501),.XMSAVE) ; MailMan: Print
|
---|
| 159 | I $G(POP) S XMABORT=1
|
---|
| 160 | Q
|
---|
| 161 | ;PLIST(XMDUZ,XMZLIST,XMRECIPS,XMPRTHDR,XMMSG)
|
---|
| 162 | PLISTX ;
|
---|
| 163 | ; Print a list of messages.
|
---|
| 164 | ; Check each message as we come to it to see if
|
---|
| 165 | ; the user is allowed to see it. (confidential, scrambled)
|
---|
| 166 | ; If not, print an error message.
|
---|
| 167 | N I,J,XMK,XMKN,XMZ,XMFIRST,XMCNT,XMABORT
|
---|
| 168 | S XMFIRST=1,(XMCNT,XMABORT,I)=0
|
---|
| 169 | F S I=$O(XMZLIST(I)) Q:'I D Q:XMABORT
|
---|
| 170 | . F J=1:1:$L(XMZLIST(I),",") D Q:XMABORT
|
---|
| 171 | . . S XMZ=$P(XMZLIST(I),",",J)
|
---|
| 172 | . . Q:'$D(^XMB(3.9,XMZ,0))
|
---|
| 173 | . . D BSKT^XMJMP1(XMDUZ,XMZ,.XMK,.XMKN)
|
---|
| 174 | . . D PRTMULT(XMDUZ,XMK,XMKN,XMZ,XMRECIPS,XMPRTHDR,.XMFIRST,.XMCNT,.XMABORT)
|
---|
| 175 | Q:$D(ZTQUEUED)
|
---|
| 176 | S XMMSG=$$EZBLD^DIALOG($S(XMCNT=1:34318.1,1:34318),XMCNT)
|
---|
| 177 | Q
|
---|
| 178 | PRTMULT(XMDUZ,XMK,XMKN,XMZ,XMRECIPS,XMPRTHDR,XMFIRST,XMCNT,XMABORT) ; Multiple message print
|
---|
| 179 | N XMNOGO,XMZREC,XMRESPS,XMRESP,XMPTR,XMSECURE,XMPAKMAN
|
---|
| 180 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
| 181 | S XMNOGO=0
|
---|
| 182 | S XMZREC=$G(^XMB(3.9,XMZ,0))
|
---|
| 183 | I XMZREC="" D ZAPIT^XMXMSGS2(XMDUZ,XMK,XMZ) Q
|
---|
| 184 | S XMPAKMAN=$$PAKMAN^XMXSEC1(XMZ,XMZREC)
|
---|
| 185 | D CHECK^XMJMP2(XMDUZ,XMZ,XMZREC,.XMNOGO) Q:XMNOGO&'$D(ZTQUEUED)
|
---|
| 186 | I $E(IOST,1,2)="C-"!'XMFIRST W @IOF
|
---|
| 187 | S XMFIRST=0
|
---|
| 188 | D:XMPRTHDR IDHDR(XMDUZ)
|
---|
| 189 | I XMNOGO D NOGOMSG^XMJMP2(XMDUZ,XMZ,XMZREC,.XMNOGO) Q
|
---|
| 190 | D RESPONSE(XMDUZ,XMZ,.XMRESPS,.XMPTR,.XMRESP)
|
---|
| 191 | I $D(^XMB(3.7,XMDUZ,"N0",XMK,XMZ)),XMRESP S:XMRESP'=XMRESPS XMRESP=XMRESP+1
|
---|
| 192 | E S XMRESP=0
|
---|
| 193 | D PRINTIT^XMJMP1(XMDUZ,XMK,XMKN,XMZ,XMZREC,XMRESPS,XMPTR,XMRESP_"-",XMRECIPS,0,XMPRTHDR,1,.XMABORT)
|
---|
| 194 | S XMCNT=XMCNT+1
|
---|
| 195 | ;Q:XMABORT
|
---|
| 196 | ;I $E(IOST,1,2)="C-" D PAGE^XMXUTIL(.XMABORT)
|
---|
| 197 | Q
|
---|