1 | SCMCCV1 ;ALB/JLU;PC Attending conversion;5/6/99
|
---|
2 | ;;5.3;Scheduling;**195**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | MAIN I $$XTMP() D XTMPW G MAINQ ;is there another conversion job?
|
---|
5 | ;
|
---|
6 | N SCMCTM,SCMCPOS,SCMCSTOP,SCMCFIX,SCMCTYPE
|
---|
7 | S SCMCSTOP=0
|
---|
8 | ;
|
---|
9 | S SCMCFIX=$$CNTFIX ;fix or check mode?
|
---|
10 | I SCMCFIX=0 G MAINQ ;uparrowed out
|
---|
11 | ;
|
---|
12 | S SCMCSTOP=$$ASKQUEST ;how to sort for conversion? SETS SCMCTM, SCMCPOS
|
---|
13 | I SCMCSTOP G MAIN Q
|
---|
14 | ;
|
---|
15 | D SUMARIZE ; display what was selected
|
---|
16 | S SCMCSTOP=$$ASKCONT ;ask user if they wish to continue.
|
---|
17 | I SCMCSTOP G MAINQ
|
---|
18 | ;
|
---|
19 | D QOFF ;queue off the conversion job
|
---|
20 | ;
|
---|
21 | MAINQ Q
|
---|
22 | ;
|
---|
23 | XTMPW ;writes to the user.
|
---|
24 | ;
|
---|
25 | N VAR
|
---|
26 | S VAR=$O(^XTMP("SCMCATTCONV",0))
|
---|
27 | ;
|
---|
28 | W *7,!!,"A conversion job (#"_VAR_") has already been started."
|
---|
29 | W !,"You will not be able to start another conversion job until this one finishes.",!!
|
---|
30 | D PAUSE^SCMCMU1
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | XTMP() ;checks to see if another job is running.
|
---|
34 | ;
|
---|
35 | Q $S($D(^XTMP("SCMCATTCONV")):1,1:0)
|
---|
36 | ;
|
---|
37 | CNTFIX() ;ask the user if they want to FIX(Convert) or CHECK
|
---|
38 | ;Output F for FIX mode
|
---|
39 | ; C for Check mode
|
---|
40 | ;
|
---|
41 | N DIR
|
---|
42 | S DIR(0)="SM^C:CHECK;F:FIX"
|
---|
43 | S DIR("?")="Check mode will only count the entries that could or could not be converted."
|
---|
44 | S DIR("?",1)="Fix mode will actually convert these entries."
|
---|
45 | S DIR("A")="In which mode would you like to run the conversion?"
|
---|
46 | D ^DIR
|
---|
47 | Q $S($D(DIRUT):0,1:Y)
|
---|
48 | ;
|
---|
49 | ASKQUEST() ;askes the user how they wish to sort or break up the conversion.
|
---|
50 | ;Outputs
|
---|
51 | ;sets up the SCMCTM and SCMCPOS arrays
|
---|
52 | ;returns a 1 if to stop
|
---|
53 | ;returns a zero to not stop
|
---|
54 | ;
|
---|
55 | N STOP
|
---|
56 | S STOP=0
|
---|
57 | S SCMCTYPE=$$TYPE() ;gets the type of selection (team, position or all)
|
---|
58 | I SCMCTYPE=0 S STOP=1 G ASKQSTQ
|
---|
59 | ;
|
---|
60 | I SCMCTYPE="T" D TMLP S:'$D(SCMCTM) STOP=1 ;team selection
|
---|
61 | ;
|
---|
62 | I SCMCTYPE="P" D POS S:'$D(SCMCTM)!('$D(SCMCPOS)) STOP=1 ;position selection
|
---|
63 | ;
|
---|
64 | I SCMCTYPE="A" K SCMCTM,SCMCPOS
|
---|
65 | ;
|
---|
66 | ASKQSTQ Q STOP
|
---|
67 | ;
|
---|
68 | ;
|
---|
69 | TYPE() ;askes the user how they wish to sort or select the conversion.
|
---|
70 | ;A for All teams and positions
|
---|
71 | ;T for by selecting teams. All positions for each team.
|
---|
72 | ;P for by selection positions. Only one team and specific positions.
|
---|
73 | ;
|
---|
74 | ;returns a zero to quit
|
---|
75 | ;returns a one to continue
|
---|
76 | ;
|
---|
77 | N DIR
|
---|
78 | S DIR(0)="SM^A:All teams and positions;T:Specific teams;P:One team, specifc positions"
|
---|
79 | S DIR("?",1)="Select A for a conversion of all teams and all positions on those teams."
|
---|
80 | S DIR("?",2)="Select T to select specific teams. All positions for each team are reviewed."
|
---|
81 | S DIR("?",3)="Select P to be able to select specific positions from a single team."
|
---|
82 | S DIR("?")=" "
|
---|
83 | ;
|
---|
84 | D ^DIR
|
---|
85 | Q $S($D(DIRUT):0,1:Y)
|
---|
86 | ;
|
---|
87 | ;
|
---|
88 | TMLP ;allows the user to select which teams. Allows the selection of
|
---|
89 | ;multiple teams.
|
---|
90 | ;sets up the SCMCTM array with the teams
|
---|
91 | ;sets stop=1 if need to stop
|
---|
92 | ;
|
---|
93 | N SCSTOP
|
---|
94 | S SCSTOP=0
|
---|
95 | F D I SCSTOP Q
|
---|
96 | .N TM
|
---|
97 | .S TM=$$TEAM^SCMCMU(DT)
|
---|
98 | .I TM>0 S SCMCTM(TM)=""
|
---|
99 | .E S SCSTOP=1
|
---|
100 | .Q
|
---|
101 | Q
|
---|
102 | ;
|
---|
103 | POSLP(TM) ;allows the user to select one team and multiple positions from that
|
---|
104 | ;team.
|
---|
105 | ;the SCMCTM and SCMCPOS arrays will be populated.
|
---|
106 | ;
|
---|
107 | N SCSTOP
|
---|
108 | S SCSTOP=0
|
---|
109 | K SCMCPOS
|
---|
110 | F DO I SCSTOP Q
|
---|
111 | .N POS
|
---|
112 | .S POS=$$POS^SCMCMU(TM,DT) ; get positions using today.
|
---|
113 | .I POS>0 S SCMCPOS(POS)=""
|
---|
114 | .E S SCSTOP=1
|
---|
115 | .Q
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | POS ;gets the team first then calls POSLP to get the positions
|
---|
119 | ;populates the SCMCTM array
|
---|
120 | ;
|
---|
121 | N TTM
|
---|
122 | K SCMCTM
|
---|
123 | S TTM=$$TEAM^SCMCMU(DT)
|
---|
124 | I TTM>0 DO
|
---|
125 | .S SCMCTM(TTM)=""
|
---|
126 | .D POSLP(TTM)
|
---|
127 | .Q
|
---|
128 | Q
|
---|
129 | ;
|
---|
130 | ;
|
---|
131 | SUMARIZE ;presents the selections to the user.
|
---|
132 | ;
|
---|
133 | W !!!,"You have made the following selections."
|
---|
134 | W !,"Please verify they are what you want:",!
|
---|
135 | ;
|
---|
136 | I SCMCTYPE="A" D TYPEA
|
---|
137 | I SCMCTYPE="T" D TYPET
|
---|
138 | I SCMCTYPE="P" D TYPEP
|
---|
139 | ;
|
---|
140 | W !!,*7,"** This job will be run in a ",$S(SCMCFIX="F":"FIX",1:"CHECK")," mode. **",!
|
---|
141 | Q
|
---|
142 | ;
|
---|
143 | ;
|
---|
144 | TYPEA ;
|
---|
145 | W !,"You have selected to convert assignments in all teams and positions."
|
---|
146 | Q
|
---|
147 | ;
|
---|
148 | ;
|
---|
149 | TYPET ;
|
---|
150 | N VAR
|
---|
151 | W !,"You have selected to convert PC Attending assignments in the following teams:"
|
---|
152 | ;
|
---|
153 | S VAR=0
|
---|
154 | F S VAR=$O(SCMCTM(VAR)) Q:VAR="" W !,$P(^SCTM(404.51,VAR,0),U,1)
|
---|
155 | ;
|
---|
156 | W !!,"All position assignments for each team will be reviewed."
|
---|
157 | Q
|
---|
158 | ;
|
---|
159 | ;
|
---|
160 | TYPEP ;
|
---|
161 | N LP,VAR
|
---|
162 | S VAR=$O(SCMCTM(0)) Q:VAR=""
|
---|
163 | ;
|
---|
164 | W !,"You have selected to convert PC Attending assignments for team:"
|
---|
165 | W !,$P(^SCTM(404.51,VAR,0),U,1)
|
---|
166 | W !!,"The positions that were selected are:"
|
---|
167 | ;
|
---|
168 | S VAR=0
|
---|
169 | F S VAR=$O(SCMCPOS(VAR)) Q:VAR="" W !,$P(^SCTM(404.57,VAR,0),U,1)
|
---|
170 | Q
|
---|
171 | ;
|
---|
172 | ;
|
---|
173 | ASKCONT() ;ask the user if they wish to continue.
|
---|
174 | ;
|
---|
175 | N Y,DIR
|
---|
176 | S DIR(0)="Y^"
|
---|
177 | S DIR("A")="Are these selections correct? Do you wish to continue"
|
---|
178 | D ^DIR
|
---|
179 | Q $S(Y=1:0,1:1) ; CHANGING TO MATCH STOP FORMAT.
|
---|
180 | ;
|
---|
181 | ;
|
---|
182 | SETLOCK ; sets the global to lock out other attempted jobs
|
---|
183 | ;
|
---|
184 | S ^XTMP("SCMCATTCONV",0)=DT+1_"^"_DT
|
---|
185 | Q
|
---|
186 | ;
|
---|
187 | ;
|
---|
188 | QOFF ;queue the task off to be processed in the background.
|
---|
189 | ;
|
---|
190 | N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSAVE
|
---|
191 | S ZTRTN="STRTQJOB^SCMCCV2"
|
---|
192 | S ZTDESC="PCMM conversion of PC Attending assignments."
|
---|
193 | S ZTDTH=$H
|
---|
194 | S ZTIO=""
|
---|
195 | S ZTSAVE("SCMCTM(")=""
|
---|
196 | S ZTSAVE("SCMCPOS(")=""
|
---|
197 | S ZTSAVE("SCMCFIX")=""
|
---|
198 | S ZTSAVE("SCMCTYPE")=""
|
---|
199 | D ^%ZTLOAD
|
---|
200 | I $D(ZTSK) W !!,"Task queued. ",ZTSK D SETLOCK ;LOCKS FOR NEXT ATTEMPT
|
---|
201 | E W !!,"Task NOT queued."
|
---|
202 | K ZTSK
|
---|
203 | Q
|
---|
204 | ;
|
---|
205 | ;
|
---|
206 | FUTURE ;checks if can make an assignment for today.
|
---|
207 | ;
|
---|
208 | N VARTWO
|
---|
209 | K ERR
|
---|
210 | S VARTWO=$$YSPTTPPC^SCMCTPU2(DFN,DT,1)
|
---|
211 | I 'VARTWO S ERR="-"_$P(VARTWO,U,2) D SETERR^SCMCCV2(ERR) Q
|
---|
212 | S REASSIGN=1
|
---|
213 | Q
|
---|
214 | ;
|
---|
215 | ;
|
---|
216 | REOPEN ;reactivate old assignment.
|
---|
217 | ;
|
---|
218 | N DA,DR,DIE
|
---|
219 | S DIE="^SCPT(404.43,"
|
---|
220 | S DA=POSASGN
|
---|
221 | D NOW^%DTC
|
---|
222 | S DR=".04///@;.08///"_$G(DUZ,.5)_";.09///"_%
|
---|
223 | K X
|
---|
224 | D ^DIE
|
---|
225 | Q
|
---|
226 | ;
|
---|
227 | ;
|
---|
228 | CHANGE(AIEN) ;the actual FM call to convert.
|
---|
229 | N DIE,DA,DR
|
---|
230 | S DIE="^SCPT(404.43,"
|
---|
231 | S DA=AIEN
|
---|
232 | S DR=".05///1"
|
---|
233 | D ^DIE
|
---|
234 | Q
|
---|
235 | ;
|
---|
236 | ;
|
---|
237 | INIT ;set up variables
|
---|
238 | ;
|
---|
239 | S XMDUZ=.5
|
---|
240 | S XMY($S($G(DUZ):DUZ,1:XMDUZ))=""
|
---|
241 | S XMSUB="PC Attending conversion"
|
---|
242 | S XMTEXT="^TMP(""SCMC"",$J,""MSG"","
|
---|
243 | S CNTR=0
|
---|
244 | Q
|
---|