1 | XMJMD ;ISC-SF/GMB-Later Messages ;12/04/2002 13:46
|
---|
2 | ;;8.0;MailMan;**10**;Jun 28, 2002
|
---|
3 | ; Replaces ^XMB1 (ISC-WASH/THM/CAP)
|
---|
4 | ; Entry points are:
|
---|
5 | ; EDIT Change/Delete Later'd messages for a particular user
|
---|
6 | ; REPORT Report on Later'd messages for a particular user
|
---|
7 | ; LATER Add/Edit Later'd Dates for a particular user/message
|
---|
8 | ; LTRADD Add Later'd delivery date for a particular user/message
|
---|
9 | ; DELUSER Delete all Later'd messages for a particular user
|
---|
10 | ; DELMSG Delete all Later'd dates for a particular message
|
---|
11 | ;
|
---|
12 | ; Entry points used by MailMan options (not covered by DBIA):
|
---|
13 | ; EDIT XMLATER-EDIT
|
---|
14 | ; REPORT XMLATER-REPORT
|
---|
15 | REPORT ; Report on later'd messages
|
---|
16 | N ZTSAVE,ZTDESC,ZTRTN,I
|
---|
17 | D CHECK^XMVVITAE
|
---|
18 | S ZTDESC=$$EZBLD^DIALOG(34639) ; MailMan: Report on Later'd Messages
|
---|
19 | S ZTRTN="RPTLATER^XMJMD"
|
---|
20 | F I="XMDUZ","XMV(""NAME"")" S ZTSAVE(I)=""
|
---|
21 | D EN^XUTMDEVQ(ZTRTN,ZTDESC,.ZTSAVE)
|
---|
22 | Q
|
---|
23 | RPTLATER ;
|
---|
24 | ; XMDUZ,XMV("NAME") are provided
|
---|
25 | N XMZ,XMABORT,XMWHEN,XMIEN,XMREC,XMZREC,XMPAGE,XMLEN,XMK,XMKN
|
---|
26 | S XMLEN("DATE")=$L($$FMTE^XLFDT($E($$NOW^XLFDT,1,12),"5Z"))
|
---|
27 | S XMLEN("XMZ")=$L($O(^XMB(3.9,":"),-1))
|
---|
28 | S:XMLEN("XMZ")<7 XMLEN("XMZ")=7
|
---|
29 | S XMLEN("BSKT")=10
|
---|
30 | S XMLEN("SUBJ")=79-XMLEN("DATE")-XMLEN("XMZ")-XMLEN("BSKT")-6
|
---|
31 | S (XMPAGE,XMABORT)=0
|
---|
32 | W:$E(IOST,1,2)="C-" @IOF
|
---|
33 | D RPTHDR(.XMLEN,.XMPAGE)
|
---|
34 | S XMIEN=""
|
---|
35 | F S XMIEN=$O(^XMB(3.73,"C",XMDUZ,XMIEN)) Q:XMIEN="" D Q:XMABORT
|
---|
36 | . S XMREC=$G(^XMB(3.73,XMIEN,0)) I XMREC="" K ^XMB(3.73,"C",XMDUZ,XMIEN) Q
|
---|
37 | . S XMZ=+$P(XMREC,U,3)
|
---|
38 | . S XMZREC=$G(^XMB(3.9,XMZ,0)) I XMZREC="" D DELDATE(XMIEN) Q
|
---|
39 | . S XMWHEN=$P(XMREC,U,1)
|
---|
40 | . S XMK=$O(^XMB(3.7,"M",XMZ,XMDUZ,""))
|
---|
41 | . S XMKN=$S('XMK:$$EZBLD^DIALOG(34014),1:$P($G(^XMB(3.7,XMDUZ,2,XMK,0)),U)) ; * N/A *
|
---|
42 | . I $Y+3>IOSL D Q:XMABORT
|
---|
43 | . . I $E(IOST,1,2)="C-" D PAGE^XMXUTIL(.XMABORT) Q:XMABORT
|
---|
44 | . . W @IOF D RPTHDR(.XMLEN,.XMPAGE)
|
---|
45 | . W !,$$LJ^XLFSTR($$FMTE^XLFDT($E(XMWHEN,1,12),"5Z"),XMLEN("DATE"))," ",$$LJ^XLFSTR($E(XMKN,1,XMLEN("BSKT")),XMLEN("BSKT"))," ",$J(XMZ,XMLEN("XMZ"))," ",$E($$SUBJ^XMXUTIL2(XMZREC),1,XMLEN("SUBJ"))
|
---|
46 | W:$O(^XMB(3.73,"C",XMDUZ,""))="" !,$$EZBLD^DIALOG(34630) ; No Later'd Messages
|
---|
47 | I $E(IOST,1,2)="C-",'XMABORT D WAIT^XMXUTIL
|
---|
48 | I $D(ZTQUEUED) S ZTREQ="@"
|
---|
49 | Q
|
---|
50 | RPTHDR(XMLEN,XMPAGE) ;
|
---|
51 | S XMPAGE=XMPAGE+1
|
---|
52 | W $$EZBLD^DIALOG(34631,XMV("NAME")),?70,$$EZBLD^DIALOG(34542,XMPAGE) ; Later'd Messages Report for: / Page
|
---|
53 | W !,$$LJ^XLFSTR($$EZBLD^DIALOG(34632),XMLEN("DATE"))," ",$$LJ^XLFSTR($$EZBLD^DIALOG(34011),XMLEN("BSKT"))," ",$$RJ^XLFSTR($$EZBLD^DIALOG(34633),XMLEN("XMZ"))," ",$$EZBLD^DIALOG(34002) ; Date / Basket / Msg ID / Subject
|
---|
54 | W !,$$REPEAT^XLFSTR("-",79)
|
---|
55 | Q
|
---|
56 | DELUSER(XMDUZ) ; Delete all Later'd messages for a particular user
|
---|
57 | N XMIEN
|
---|
58 | S XMIEN=""
|
---|
59 | F S XMIEN=$O(^XMB(3.73,"C",XMDUZ,XMIEN)) Q:XMIEN="" D DELDATE(XMIEN)
|
---|
60 | Q
|
---|
61 | DELDATE(XMIEN) ; Delete a particular Later'd message date
|
---|
62 | N DIK
|
---|
63 | S DIK="^XMB(3.73,",DA=XMIEN
|
---|
64 | D ^DIK
|
---|
65 | Q
|
---|
66 | DELMSG(XMZ) ; Delete all Later'd dates for a particular message
|
---|
67 | N XMDUZ,XMIEN
|
---|
68 | S (XMDUZ,XMIEN)=""
|
---|
69 | F S XMDUZ=$O(^XMB(3.73,"AC",XMZ,XMDUZ)) Q:XMDUZ="" D
|
---|
70 | . F S XMIEN=$O(^XMB(3.73,"AC",XMZ,XMDUZ,XMIEN)) Q:XMIEN="" D DELDATE(XMIEN)
|
---|
71 | Q
|
---|
72 | LATER(XMDUZ,XMZ) ; For a particular message,
|
---|
73 | ; let user edit any existing latered times or add a new one.
|
---|
74 | N XMABORT,XMWHEN
|
---|
75 | S XMABORT=0
|
---|
76 | I $D(^XMB(3.73,"AC",XMZ,XMDUZ)) D
|
---|
77 | . W @IOF
|
---|
78 | . D LATER^XMJMQ1(XMDUZ,XMZ,"","","","",.XMABORT)
|
---|
79 | . S XMABORT=0
|
---|
80 | . N DIR,XMIEN,XMADD,XMCHG,XMDEL
|
---|
81 | . S XMIEN=$O(^XMB(3.73,"AC",XMZ,XMDUZ,0))
|
---|
82 | . I $O(^XMB(3.73,"AC",XMZ,XMDUZ,XMIEN)) S XMIEN=0
|
---|
83 | . S XMADD=$$EZBLD^DIALOG(34634) ; A:Add another date on which this message should appear new
|
---|
84 | . S XMCHG=$$EZBLD^DIALOG($S(XMIEN:34635,1:34635.1)) ; C:Change this / a date
|
---|
85 | . S XMDEL=$$EZBLD^DIALOG($S(XMIEN:34636,1:34636.1)) ; D:Delete this / a date
|
---|
86 | . S DIR(0)="SO^"_XMADD_";"_XMCHG_";"_XMDEL
|
---|
87 | . D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
88 | . I Y=$P(XMADD,":",1) D Q
|
---|
89 | . . D LTRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
90 | . . D LTRADD(XMDUZ,XMZ,XMWHEN)
|
---|
91 | . I 'XMIEN D WHICH(XMDUZ,XMZ,.XMIEN,.XMABORT) Q:XMABORT
|
---|
92 | . I Y=$P(XMCHG,":",1) D CHGDATE(XMIEN) Q
|
---|
93 | . D DELDATE(XMIEN) ; Delete this date
|
---|
94 | . W $$EZBLD^DIALOG(34637) ; " ... deleted."
|
---|
95 | E D
|
---|
96 | . D LTRDATE(.XMWHEN,.XMABORT) Q:XMABORT
|
---|
97 | . D LTRADD(XMDUZ,XMZ,XMWHEN)
|
---|
98 | Q
|
---|
99 | EDIT ; Change/delete later'd messages
|
---|
100 | I '$D(^XMB(3.73,"C",XMDUZ)) W !!,$C(7),$$EZBLD^DIALOG(34638) Q ; You have no Later'd messages.
|
---|
101 | D LTREDIT($G(XMDUZ,DUZ))
|
---|
102 | Q
|
---|
103 | LTREDIT(XMDUZ,XMZ) ;
|
---|
104 | N X,Y,XMIEN,XMDEL,DIR,DIE,DR,DA,DIRUT,XMABORT
|
---|
105 | S XMABORT=0
|
---|
106 | D WHICH(XMDUZ,.XMZ,.XMIEN,.XMABORT) Q:XMABORT
|
---|
107 | ; The user has chosen a record to edit (and change the later'd date)
|
---|
108 | S XMDEL=$$EZBLD^DIALOG(34636) ; D:Delete this date
|
---|
109 | S DIR(0)="S^"_$$EZBLD^DIALOG(34635)_";"_XMDEL ; C:Change this date
|
---|
110 | D ^DIR Q:$D(DIRUT)
|
---|
111 | I Y=$P(XMDEL,":",1) D Q
|
---|
112 | . D DELDATE(XMIEN) ; Delete this date
|
---|
113 | . W $$EZBLD^DIALOG(34637) ; " ... deleted."
|
---|
114 | K DIR,X,Y,DIRUT
|
---|
115 | D CHGDATE(XMIEN) ; Change this date
|
---|
116 | Q
|
---|
117 | WHICH(XMDUZ,XMZ,XMIEN,XMABORT) ;
|
---|
118 | N DIC,D,X,Y
|
---|
119 | W !
|
---|
120 | S DIC="^XMB(3.73,"
|
---|
121 | S DIC(0)="NEU"
|
---|
122 | S D="C"
|
---|
123 | I $D(XMZ) S DIC("S")="I $D(^XMB(3.73,""AC"","_XMZ_","_$G(XMDUZ,DUZ)_",Y))"
|
---|
124 | E S DIC("S")="I $D(^XMB(3.73,""C"","_$G(XMDUZ,DUZ)_",Y))"
|
---|
125 | S X=$G(XMDUZ,DUZ)
|
---|
126 | D IX^DIC I Y=-1 S XMABORT=1 Q
|
---|
127 | S XMIEN=+Y
|
---|
128 | Q
|
---|
129 | CHGDATE(DA) ; Change a date
|
---|
130 | N DIE,DR,DIDEL
|
---|
131 | S DIDEL=3.73
|
---|
132 | S DIE=3.73
|
---|
133 | S DR=.01
|
---|
134 | D ^DIE
|
---|
135 | Q
|
---|
136 | LTRDATE(Y,XMABORT) ;
|
---|
137 | N DIR
|
---|
138 | S DIR(0)="3.73,.01"
|
---|
139 | S DIR("B")="T+1"
|
---|
140 | D ^DIR I $D(DIRUT) S XMABORT=1 Q
|
---|
141 | Q
|
---|
142 | LTRADD(XMDUZ,XMZ,XMWHEN) ;
|
---|
143 | N XMFDA
|
---|
144 | Q:$D(^XMB(3.73,"AB",XMWHEN,XMDUZ,XMZ)) ; Already scheduled?
|
---|
145 | S XMFDA(3.73,"+1,",.01)=XMWHEN
|
---|
146 | ;S XMFDA(3.73,"+1,",1)=XMDUZ Not needed, because done by trigger
|
---|
147 | S XMFDA(3.73,"+1,",2)=XMZ
|
---|
148 | D UPDATE^DIE("","XMFDA")
|
---|
149 | Q
|
---|