- XMJMR1 ;ISC-SF/GMB-Interactive Reply (cont.) ;08/24/2001 08:29
- ;;8.0;MailMan;;Jun 28, 2002
- INIT(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMINSTR,XMINCL,XMZI,XMWHICH,XMABORT) ;
- N DIR,Y,DIRUT,XMRESPS
- I XMDUZ=.6,DUZ=.6 D Q
- . ; This is already handled in OPTMSG^XMXSEC2, but, just in case...
- . S XMABORT=1
- . W !,$$EZBLD^DIALOG(37422.6) ; SHARED,MAIL may not Reply to a message.
- . G H^XUS
- D CHKLOCK^XMJMS(XMDUZ,.XMABORT) Q:XMABORT
- I XMINSTR("FLAGS")["P" D Q:XMABORT
- . N XMTEXT
- . W !,$C(7)
- . D BLD^DIALOG(34200,"","","XMTEXT","F") ; Responses to priority messages are not ... (need priority? send a new msg)
- . D MSG^DIALOG("WH","","","","XMTEXT")
- . W !
- . D PAGE^XMXUTIL(.XMABORT)
- I XMZOFROM["POSTMASTER",XMZOFROM["@" D Q:XMABORT
- . N XMTEXT
- . W !,$C(7)
- . D BLD^DIALOG(34201,"","","XMTEXT","F") ; Because this message is from a remote ... (reply stays local)
- . D MSG^DIALOG("WH","","","","XMTEXT")
- . W !
- . D PAGE^XMXUTIL(.XMABORT)
- D CHKBSKT^XMJMOI(XMDUZ,XMZO,.XMK,.XMKN)
- I +XMK<1 D
- . W !
- . D SAVEMSG^XMJMOI(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,$G(XMINSTR("RCPT BSKT")))
- S XMRESPS=+$P($G(^XMB(3.9,XMZO,3,0)),U,4)
- D WHICH(XMDUZ,XMZO,XMINCL,.XMZI,.XMWHICH,.XMABORT)
- Q
- WHICH(XMDUZ,XMZO,XMINCL,XMZI,XMWHICH,XMABORT) ;
- ; XMINCL =0 Do not include previous responses. Just reply.
- ; =1 Include previous response(s) from this message
- ; or include response(s) from another message in reply.
- ; =2 Include response(s) from another message in a new message.
- Q:XMINCL=0
- D WHICHMSG(XMDUZ,XMZO,XMINCL,.XMZI,.XMABORT) Q:XMABORT
- D WHICH^XMJMC(XMZI,$$EZBLD^DIALOG(34209),.XMWHICH,.XMABORT) ; include
- Q
- WHICHMSG(XMDUZ,XMZO,XMINCL,XMZI,XMABORT) ; Include responses from which (different) message
- N DIR,X,Y,XMIN,XMAX,XMPARM
- S (XMPARM(1),XMIN)=$O(^XMB(3.9,0)),(XMPARM(2),XMAX)=$O(^XMB(3.9,":"),-1)
- W !
- S DIR("A")=$$EZBLD^DIALOG(34270) ; Include responses from which message
- I XMINCL=1 D
- . S DIR("B")=$$EZBLD^DIALOG(34271) ; This message
- . S DIR(0)="FO^"_$$MIN^XLFMTH($L(XMIN),$L(DIR("B")))_":"_$$MAX^XLFMTH($L(XMAX),$L(DIR("B")))_"^D CHKMSG^XMJMR1(.Y)"
- . D BLD^DIALOG(34272,.XMPARM,"","DIR(""?"")")
- . ;Press Enter to include previous responses from this message
- . ;or enter the internal entry number of a different message
- . ;(_XMIN_-_XMAX_) to include any of its responses.
- E D
- . S DIR(0)="NO^"_XMIN_":"_XMAX_":0^D CHKMSG^XMJMR1(.Y)"
- . D BLD^DIALOG(34273,.XMPARM,"","DIR(""?"")")
- . ;Enter the internal entry number of a different message
- . ;(_XMIN_-_XMAX_) to include any of its responses.
- D ^DIR
- I 'Y S XMABORT=1 Q
- S XMZI=+Y
- Q:XMINCL=1
- ; Do you want to review this message first?
- Q
- CHKMSG(XMZI) ;
- I XMINCL=1,XMZI=DIR("B") S XMZI=XMZO Q ; Include previous responses from this message.
- I XMINCL=1,$S(XMZI'?.N:1,XMZI<XMIN:1,XMZI>XMAX:1,1:0) K X W $C(7)," ?" Q
- I XMINCL=2,XMZI=XMZO D Q
- . K X
- . W !,$$EZBLD^DIALOG(34274) ; You can't include the message you're editing.
- N XMZIREC ; Include responses from another message.
- S XMZIREC=$G(^XMB(3.9,XMZI,0))
- I XMZIREC="" K X Q
- I '$$INCLUDE^XMXSEC(XMDUZ,XMZI) D Q
- . K X
- . D SHOW^XMJERR
- W " ",$P(XMZIREC,U,1)
- Q
- COPYTEXT(XMZI,XMZ,XMWHICH,XMHDR) ;
- N I,XMRESP,XMRANGE,XMC
- I $G(XMHDR) S XMHDR("XMZ")=XMZI,XMHDR("REC")=^XMB(3.9,XMZI,0)
- W !,$$EZBLD^DIALOG(34202) ; Copying...
- S XMC=+$O(^XMB(3.9,XMZ,2,""),-1)
- F I=1:1:$L(XMWHICH,",") D
- . S XMRANGE=$P(XMWHICH,",",I)
- . Q:XMRANGE="" ; (XMWHICH can end with a ",", giving us a null piece.)
- . F XMRESP=$P(XMRANGE,"-",1):1:$S(XMRANGE["-":$P(XMRANGE,"-",2),1:XMRANGE) D
- . . I XMRESP=0 D COPYRESP(XMRESP,XMZI,XMZ,.XMC,.XMHDR) Q
- . . D COPYRESP(XMRESP,+$G(^XMB(3.9,XMZI,3,XMRESP,0)),XMZ,.XMC,.XMHDR)
- S ^XMB(3.9,XMZ,2,0)="^3.92A^"_XMC_U_XMC_U_DT
- Q
- COPYRESP(XMRESP,XMZI,XMZ,XMC,XMHDR) ;
- N XMF,XMFROM,XMDT,XMZREC,XMPARM
- S XMC=XMC+1
- S ^XMB(3.9,XMZ,2,XMC,0)=""
- S XMZREC=$G(^XMB(3.9,XMZI,0))
- S XMFROM=$$NAME^XMXUTIL($P(XMZREC,U,2))
- S XMDT=$P(XMZREC,U,3)
- I $G(XMHDR) D
- . S XMC=XMC+1
- . S ^XMB(3.9,XMZ,2,XMC,0)="In the message:"
- . S XMC=XMC+1
- . S ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34536,$$SUBJ^XMXUTIL2(XMHDR("REC")))_" "_$$EZBLD^DIALOG(34537,XMHDR("XMZ")) ; Subj: / [#]
- . S XMC=XMC+1
- . S ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34538,$$FROM^XMXUTIL2(XMHDR("REC")))_$S($P(XMHDR("REC"),U,4)="":"",1:" "_$$EZBLD^DIALOG(34533,$$NAME^XMXUTIL($P(XMHDR("REC"),U,4)))) ; From: |1| (Sender: |1|)
- . S XMC=XMC+1
- . S ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34585,$$MMDT^XMXUTIL1($P(XMHDR("REC"),U,3))) ; Sent: |1|
- S XMC=XMC+1
- S XMPARM(1)=$$MMDT^XMXUTIL1(XMDT)
- S XMPARM(2)=$S(XMRESP:$$EZBLD^DIALOG(34204,XMRESP),1:$$EZBLD^DIALOG(34205)) ; Response #|1| / Original message
- S XMPARM(3)=XMFROM
- S ^XMB(3.9,XMZ,2,XMC,0)=$$EZBLD^DIALOG(34203,.XMPARM) ; On |1| (|2|) |3| wrote:
- S XMF=.999999
- F S XMF=$O(^XMB(3.9,XMZI,2,XMF)) Q:XMF="" D
- . S XMC=XMC+1
- . W:XMC#50=0 "."
- . S ^XMB(3.9,XMZ,2,XMC,0)=$E(">"_^XMB(3.9,XMZI,2,XMF,0),1,254)
- Q
- XMJMR1 ;ISC-SF/GMB-Interactive Reply (cont.) ;08/24/2001 08:29
- +1 ;;8.0;MailMan;;Jun 28, 2002
- INIT(XMDUZ,XMK,XMKN,XMZO,XMZOSUBJ,XMZOFROM,XMINSTR,XMINCL,XMZI,XMWHICH,XMABORT) ;
- +1 NEW DIR,Y,DIRUT,XMRESPS
- +2 IF XMDUZ=.6
- IF DUZ=.6
- Begin DoDot:1
- +3 ; This is already handled in OPTMSG^XMXSEC2, but, just in case...
- +4 SET XMABORT=1
- +5 ; SHARED,MAIL may not Reply to a message.
- WRITE !,$$EZBLD^DIALOG(37422.6)
- +6 GOTO H^XUS
- End DoDot:1
- QUIT
- +7 DO CHKLOCK^XMJMS(XMDUZ,.XMABORT)
- IF XMABORT
- QUIT
- +8 IF XMINSTR("FLAGS")["P"
- Begin DoDot:1
- +9 NEW XMTEXT
- +10 WRITE !,$CHAR(7)
- +11 ; Responses to priority messages are not ... (need priority? send a new msg)
- DO BLD^DIALOG(34200,"","","XMTEXT","F")
- +12 DO MSG^DIALOG("WH","","","","XMTEXT")
- +13 WRITE !
- +14 DO PAGE^XMXUTIL(.XMABORT)
- End DoDot:1
- IF XMABORT
- QUIT
- +15 IF XMZOFROM["POSTMASTER"
- IF XMZOFROM["@"
- Begin DoDot:1
- +16 NEW XMTEXT
- +17 WRITE !,$CHAR(7)
- +18 ; Because this message is from a remote ... (reply stays local)
- DO BLD^DIALOG(34201,"","","XMTEXT","F")
- +19 DO MSG^DIALOG("WH","","","","XMTEXT")
- +20 WRITE !
- +21 DO PAGE^XMXUTIL(.XMABORT)
- End DoDot:1
- IF XMABORT
- QUIT
- +22 DO CHKBSKT^XMJMOI(XMDUZ,XMZO,.XMK,.XMKN)
- +23 IF +XMK<1
- Begin DoDot:1
- +24 WRITE !
- +25 DO SAVEMSG^XMJMOI(XMDUZ,.XMK,.XMKN,XMZO,XMZOSUBJ,XMZOFROM,$GET(XMINSTR("RCPT BSKT")))
- End DoDot:1
- +26 SET XMRESPS=+$PIECE($GET(^XMB(3.9,XMZO,3,0)),U,4)
- +27 DO WHICH(XMDUZ,XMZO,XMINCL,.XMZI,.XMWHICH,.XMABORT)
- +28 QUIT
- WHICH(XMDUZ,XMZO,XMINCL,XMZI,XMWHICH,XMABORT) ;
- +1 ; XMINCL =0 Do not include previous responses. Just reply.
- +2 ; =1 Include previous response(s) from this message
- +3 ; or include response(s) from another message in reply.
- +4 ; =2 Include response(s) from another message in a new message.
- +5 IF XMINCL=0
- QUIT
- +6 DO WHICHMSG(XMDUZ,XMZO,XMINCL,.XMZI,.XMABORT)
- IF XMABORT
- QUIT
- +7 ; include
- DO WHICH^XMJMC(XMZI,$$EZBLD^DIALOG(34209),.XMWHICH,.XMABORT)
- +8 QUIT
- WHICHMSG(XMDUZ,XMZO,XMINCL,XMZI,XMABORT) ; Include responses from which (different) message
- +1 NEW DIR,X,Y,XMIN,XMAX,XMPARM
- +2 SET (XMPARM(1),XMIN)=$ORDER(^XMB(3.9,0))
- SET (XMPARM(2),XMAX)=$ORDER(^XMB(3.9,":"),-1)
- +3 WRITE !
- +4 ; Include responses from which message
- SET DIR("A")=$$EZBLD^DIALOG(34270)
- +5 IF XMINCL=1
- Begin DoDot:1
- +6 ; This message
- SET DIR("B")=$$EZBLD^DIALOG(34271)
- +7 SET DIR(0)="FO^"_$$MIN^XLFMTH($LENGTH(XMIN),$LENGTH(DIR("B")))_":"_$$MAX^XLFMTH($LENGTH(XMAX),$LENGTH(DIR("B")))_"^D CHKMSG^XMJMR1(.Y)"
- +8 DO BLD^DIALOG(34272,.XMPARM,"","DIR(""?"")")
- +9 ;Press Enter to include previous responses from this message
- +10 ;or enter the internal entry number of a different message
- +11 ;(_XMIN_-_XMAX_) to include any of its responses.
- End DoDot:1
- +12 IF '$TEST
- Begin DoDot:1
- +13 SET DIR(0)="NO^"_XMIN_":"_XMAX_":0^D CHKMSG^XMJMR1(.Y)"
- +14 DO BLD^DIALOG(34273,.XMPARM,"","DIR(""?"")")
- +15 ;Enter the internal entry number of a different message
- +16 ;(_XMIN_-_XMAX_) to include any of its responses.
- End DoDot:1
- +17 DO ^DIR
- +18 IF 'Y
- SET XMABORT=1
- QUIT
- +19 SET XMZI=+Y
- +20 IF XMINCL=1
- QUIT
- +21 ; Do you want to review this message first?
- +22 QUIT
- CHKMSG(XMZI) ;
- +1 ; Include previous responses from this message.
- IF XMINCL=1
- IF XMZI=DIR("B")
- SET XMZI=XMZO
- QUIT
- +2 IF XMINCL=1
- IF $SELECT(XMZI'?.N:1,XMZI<XMIN:1,XMZI>XMAX:1,1:0)
- KILL X
- WRITE $CHAR(7)," ?"
- QUIT
- +3 IF XMINCL=2
- IF XMZI=XMZO
- Begin DoDot:1
- +4 KILL X
- +5 ; You can't include the message you're editing.
- WRITE !,$$EZBLD^DIALOG(34274)
- End DoDot:1
- QUIT
- +6 ; Include responses from another message.
- NEW XMZIREC
- +7 SET XMZIREC=$GET(^XMB(3.9,XMZI,0))
- +8 IF XMZIREC=""
- KILL X
- QUIT
- +9 IF '$$INCLUDE^XMXSEC(XMDUZ,XMZI)
- Begin DoDot:1
- +10 KILL X
- +11 DO SHOW^XMJERR
- End DoDot:1
- QUIT
- +12 WRITE " ",$PIECE(XMZIREC,U,1)
- +13 QUIT
- COPYTEXT(XMZI,XMZ,XMWHICH,XMHDR) ;
- +1 NEW I,XMRESP,XMRANGE,XMC
- +2 IF $GET(XMHDR)
- SET XMHDR("XMZ")=XMZI
- SET XMHDR("REC")=^XMB(3.9,XMZI,0)
- +3 ; Copying...
- WRITE !,$$EZBLD^DIALOG(34202)
- +4 SET XMC=+$ORDER(^XMB(3.9,XMZ,2,""),-1)
- +5 FOR I=1:1:$LENGTH(XMWHICH,",")
- Begin DoDot:1
- +6 SET XMRANGE=$PIECE(XMWHICH,",",I)
- +7 ; (XMWHICH can end with a ",", giving us a null piece.)
- IF XMRANGE=""
- QUIT
- +8 FOR XMRESP=$PIECE(XMRANGE,"-",1):1:$SELECT(XMRANGE["-":$PIECE(XMRANGE,"-",2),1:XMRANGE)
- Begin DoDot:2
- +9 IF XMRESP=0
- DO COPYRESP(XMRESP,XMZI,XMZ,.XMC,.XMHDR)
- QUIT
- +10 DO COPYRESP(XMRESP,+$GET(^XMB(3.9,XMZI,3,XMRESP,0)),XMZ,.XMC,.XMHDR)
- End DoDot:2
- End DoDot:1
- +11 SET ^XMB(3.9,XMZ,2,0)="^3.92A^"_XMC_U_XMC_U_DT
- +12 QUIT
- COPYRESP(XMRESP,XMZI,XMZ,XMC,XMHDR) ;
- +1 NEW XMF,XMFROM,XMDT,XMZREC,XMPARM
- +2 SET XMC=XMC+1
- +3 SET ^XMB(3.9,XMZ,2,XMC,0)=""
- +4 SET XMZREC=$GET(^XMB(3.9,XMZI,0))
- +5 SET XMFROM=$$NAME^XMXUTIL($PIECE(XMZREC,U,2))
- +6 SET XMDT=$PIECE(XMZREC,U,3)
- +7 IF $GET(XMHDR)
- Begin DoDot:1
- +8 SET XMC=XMC+1
- +9 SET ^XMB(3.9,XMZ,2,XMC,0)="In the message:"
- +10 SET XMC=XMC+1
- +11 ; Subj: / [#]
- SET ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34536,$$SUBJ^XMXUTIL2(XMHDR("REC")))_" "_$$EZBLD^DIALOG(34537,XMHDR("XMZ"))
- +12 SET XMC=XMC+1
- +13 ; From: |1| (Sender: |1|)
- SET ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34538,$$FROM^XMXUTIL2(XMHDR("REC")))_$SELECT($PIECE(XMHDR("REC"),U,4)="":"",1:" "_$$EZBLD^DIALOG(34533,$$NAME^XMXUTIL($PIECE(XMHDR("REC"),U,4))))
- +14 SET XMC=XMC+1
- +15 ; Sent: |1|
- SET ^XMB(3.9,XMZ,2,XMC,0)=">"_$$EZBLD^DIALOG(34585,$$MMDT^XMXUTIL1($PIECE(XMHDR("REC"),U,3)))
- End DoDot:1
- +16 SET XMC=XMC+1
- +17 SET XMPARM(1)=$$MMDT^XMXUTIL1(XMDT)
- +18 ; Response #|1| / Original message
- SET XMPARM(2)=$SELECT(XMRESP:$$EZBLD^DIALOG(34204,XMRESP),1:$$EZBLD^DIALOG(34205))
- +19 SET XMPARM(3)=XMFROM
- +20 ; On |1| (|2|) |3| wrote:
- SET ^XMB(3.9,XMZ,2,XMC,0)=$$EZBLD^DIALOG(34203,.XMPARM)
- +21 SET XMF=.999999
- +22 FOR
- SET XMF=$ORDER(^XMB(3.9,XMZI,2,XMF))
- IF XMF=""
- QUIT
- Begin DoDot:1
- +23 SET XMC=XMC+1
- +24 IF XMC#50=0
- WRITE "."
- +25 SET ^XMB(3.9,XMZ,2,XMC,0)=$EXTRACT(">"_^XMB(3.9,XMZI,2,XMF,0),1,254)
- End DoDot:1
- +26 QUIT