| 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
|
|---|