| [623] | 1 | PRSATE ;WCIOFO/JAH - Enter/Edit Employee (emp) Tour of Duty (ToD) ;03/15/2005
 | 
|---|
 | 2 |  ;;4.0;PAID;**8,11,27,45,55,93**;Sep 21, 1995;Build 7
 | 
|---|
 | 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |  N PPI,PPE,PRSTLV,TLI,TLE,DFN
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  ;    PPI =  pay period (pp) internal #.
 | 
|---|
 | 7 |  ;    PPE = pp external form (99-06).
 | 
|---|
 | 8 |  ;    PRSTLV = flag indicates timekeeper (TK) in T&L lookup ^PRSAUTL.
 | 
|---|
 | 9 |  ;    TLI = T&L unit internal #.
 | 
|---|
 | 10 |  ;    TLU = T&L unit # 3-digit
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 |  ;  -Get current pp-internal & external.  -Ask user for T&L.
 | 
|---|
 | 13 |  ;  -Loop to ask for emp until TK is done.
 | 
|---|
 | 14 |  ;  --Emp lookup screens emps not in T&L returned by PRSAUTL call.
 | 
|---|
 | 15 |  ;
 | 
|---|
 | 16 |  S PRSTLV=2 D ^PRSAUTL Q:TLI<1
 | 
|---|
 | 17 |  F  S DFN=$$GETEMP^PRSATE6(TLE) Q:DFN<1  D
 | 
|---|
 | 18 |  .    S PPI=$P(^PRST(458,0),"^",3),PPE=$P($G(^PRST(458,PPI,0)),"^",1)
 | 
|---|
 | 19 |  .    D TOUREDIT(DFN,PPI,PPE,TLI,TLE,PRSTLV)
 | 
|---|
 | 20 |  Q
 | 
|---|
 | 21 |  ;=======================
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 | TOUREDIT(DFN,PPI,PPE,TLI,TLE,PRSTLV) ;
 | 
|---|
 | 24 |  ;
 | 
|---|
 | 25 |  N C0,NH,FLX,PMP,PP,PB,ENT,SRT,WTL,TYP,Z,TD,ERROR,NOERROR
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  ;   Entitlement lookup leaks many variables.  Following R used in 
 | 
|---|
 | 28 |  ;   this routine but may be looked up again despite the fact they R 
 | 
|---|
 | 29 |  ;   leaked by ^PRSAENT.  See PRSAENT for further doc.
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  ;    C0=emps 0 node in file 450    NH= emps 8B normal hrs
 | 
|---|
 | 32 |  ;    FLX= compressed/flextime code (0=none,C=compressed,F=flextime)
 | 
|---|
 | 33 |  ;    PMP= premium pay indicator 
 | 
|---|
 | 34 |  ;      ( D=entitled Sun., F=entitled Sat./Sun.,
 | 
|---|
 | 35 |  ;        E=entitled variable Sat./Sun. premium pay,
 | 
|---|
 | 36 |  ;        G=entitled variable Sun. prem pay, X=title 5 emps
 | 
|---|
 | 37 |  ;        R,C,O=different types of firefighters)
 | 
|---|
 | 38 |  ;  * PP= emps pay plan
 | 
|---|
 | 39 |  ;    DB = pay basis-1:full,2:part,3:intermit
 | 
|---|
 | 40 |  ;    ENT= 39 char entitlement string
 | 
|---|
 | 41 |  ;
 | 
|---|
 | 42 |  ;  Entitlement lookup.
 | 
|---|
 | 43 |  ;
 | 
|---|
 | 44 |  D ^PRSAENT I ENT="" D ERROR(1) S OUT=1 Q
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  ; Display header/Ask pp (NOL^PRSATE2 returns SRT = Current, Next, Last)
 | 
|---|
 | 47 |  ;
 | 
|---|
 | 48 |  D NOW^%DTC S NOW=%
 | 
|---|
 | 49 |  W:$E(IOST,1,2)="C-" @IOF
 | 
|---|
 | 50 |  W !?26,"VA TIME & ATTENDANCE SYSTEM"
 | 
|---|
 | 51 |  W !?29,"EMPLOYEE TOUR OF DUTY"
 | 
|---|
 | 52 |  D HDR^PRSADP1,NOL^PRSATE2
 | 
|---|
 | 53 |  Q:SRT="^"
 | 
|---|
 | 54 |  I SRT="L" S PPI=PPI-1,PPE=$P($G(^PRST(458,PPI,0)),"^",1)
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 |  ;  Get emp's flexitime code
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 |  S FLX=$$FLEXIND^PRSATE6(PPI,DFN,SRT)
 | 
|---|
 | 59 |  ;
 | 
|---|
 | 60 |  ;  Is emp entitled reg. shed. hrs.?
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 |  I $E(ENT,1)="0" D
 | 
|---|
 | 63 |  .  S Z=$E(ENT,2),TD=$S(Z="D":3,1:4) D NONE
 | 
|---|
 | 64 |  E  D
 | 
|---|
 | 65 |  .;
 | 
|---|
 | 66 |  .;    initialize t&l for this ToD
 | 
|---|
 | 67 |  .;
 | 
|---|
 | 68 |  .  S WTL=TLI
 | 
|---|
 | 69 |  .  I "NL"[SRT D
 | 
|---|
 | 70 |  ..    S TYP=0
 | 
|---|
 | 71 |  .  E  D
 | 
|---|
 | 72 |  ..    S TYP=$$ISTEMPTR()
 | 
|---|
 | 73 |  ..;
 | 
|---|
 | 74 |  ..;  For temp ToDs--ask user for T&L ToD will be worked
 | 
|---|
 | 75 |  ..;  Quit if we don't get a valid T&L unit.
 | 
|---|
 | 76 |  ..;
 | 
|---|
 | 77 |  ..    I TYP S WTL=$$ASKTLWRK^PRSATE6(TLE)
 | 
|---|
 | 78 |  .;
 | 
|---|
 | 79 |  .;  Save current ToD in case user aborts with an unacceptable ToD.
 | 
|---|
 | 80 |  .;
 | 
|---|
 | 81 |  .   D SAVETOUR^PRSATE6(PPI,DFN)
 | 
|---|
 | 82 |  .;
 | 
|---|
 | 83 |  .  I WTL'<1,TYP'["^" D 
 | 
|---|
 | 84 |  ..    D A1
 | 
|---|
 | 85 |  ..;
 | 
|---|
 | 86 |  ..; verify firefighter ToD after compressed ind. edit.  Don't accept 
 | 
|---|
 | 87 |  ..; ToD until its within guidlines. If TK force exits, restore old ToD.
 | 
|---|
 | 88 |  ..;
 | 
|---|
 | 89 |  ..  S NOERROR=0
 | 
|---|
 | 90 |  ..  F  D  Q:NOERROR
 | 
|---|
 | 91 |  ...    N ERROR D FFTOUR^PRSATE6(PPI,DFN,SRT,.ERROR)
 | 
|---|
 | 92 |  ...    I $$ISERRORS^PRSATE6(.ERROR) D
 | 
|---|
 | 93 |  ....      I $$ASKTOFIX^PRSATE6() D
 | 
|---|
 | 94 |  .....        D A1
 | 
|---|
 | 95 |  ....      E  D
 | 
|---|
 | 96 |  .....        D RESTORE^PRSATE6(PPI,DFN) S NOERROR=1
 | 
|---|
 | 97 |  ...    E  D
 | 
|---|
 | 98 |  ....      S NOERROR=1
 | 
|---|
 | 99 |  Q
 | 
|---|
 | 100 |  ;=======================
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 | ISTEMPTR() ; IS TEMPORARY ToD ?
 | 
|---|
 | 103 |  ; Ask user if ToD is temp or perm & convert TYP to true false flag
 | 
|---|
 | 104 |  ;    Permanent set TYP=0,  Temporary set TYP=true (1)
 | 
|---|
 | 105 |  ; 
 | 
|---|
 | 106 |  S TYP=$$ASKTEMP^PRSATE6() I TYP'["^" S TYP=$E(TYP,1)="T",WTL=TLI
 | 
|---|
 | 107 |  Q TYP
 | 
|---|
 | 108 |  ;=======================
 | 
|---|
 | 109 |  ;
 | 
|---|
 | 110 | A1 ; Set up for emps ToD look up. Screen allows Daily ToDs & days off 
 | 
|---|
 | 111 |  ; for daily emps.  Everyone else gets days off & all other ToDs.
 | 
|---|
 | 112 |  ; Screen further ensures ToD is available either to all t&ls 
 | 
|---|
 | 113 |  ; or to t&l that this emp is working in.
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 |  N DIC,X
 | 
|---|
 | 116 |  S DIC="^PRST(457.1,",DIC(0)="AEQMN"
 | 
|---|
 | 117 |  S DIC("S")="I "_$S($E(ENT,1)="D":"Y<3",1:"Y>5!(Y=1)")_",$P(^PRST(457.1,+Y,0),U,4)!($D(^PRST(457.1,+Y,""T"",""B"",WTL)))"
 | 
|---|
 | 118 |  ;
 | 
|---|
 | 119 |  ; Setup a fixed or varying ToD.  Compressed ToDs must be varying;
 | 
|---|
 | 120 |  ; ask TK about all others.
 | 
|---|
 | 121 |  ;
 | 
|---|
 | 122 |  I FLX="C" D
 | 
|---|
 | 123 |  .   D VAR
 | 
|---|
 | 124 |  E  D
 | 
|---|
 | 125 |  .  S X=$$ASKFIXED()
 | 
|---|
 | 126 |  .  Q:X="^"
 | 
|---|
 | 127 |  .  I X="N" D
 | 
|---|
 | 128 |  ..    D VAR
 | 
|---|
 | 129 |  .  E  D FX
 | 
|---|
 | 130 |  Q
 | 
|---|
 | 131 |  ;=======================
 | 
|---|
 | 132 |  ;
 | 
|---|
 | 133 | FX ; Fixed ToD
 | 
|---|
 | 134 |  S DIC("A")="Select TOUR OF DUTY: "
 | 
|---|
 | 135 |  W ! D ^DIC
 | 
|---|
 | 136 |  Q:Y'>0
 | 
|---|
 | 137 |  S TD=+Y,Y=$G(^PRST(457.1,TD,1)),TDH=$P(^(0),"^",6),HRS=TDH*10
 | 
|---|
 | 138 |  S (ZENT,STR)=""
 | 
|---|
 | 139 |  D OT^PRSATP,VS^PRSATE0
 | 
|---|
 | 140 |  I STR'="" W *7,!!,STR G FX
 | 
|---|
 | 141 |  I '$D(^PRST(458,PPI,"E",DFN,"D",0)) S ^(0)="^458.02^14^14"
 | 
|---|
 | 142 |  I SRT="N" D
 | 
|---|
 | 143 |  .  D F1
 | 
|---|
 | 144 |  E  D
 | 
|---|
 | 145 |  .  F DAY=2:1:6,9:1:13 D SET
 | 
|---|
 | 146 |  .  S TD=1,(Y,TDH)="" F DAY=1,7,8,14 D SET
 | 
|---|
 | 147 |  .  W "  ... done" D:HRS'=NH ERROR(2,NH,HRS)
 | 
|---|
 | 148 |  .  D T2,^PRSATE5
 | 
|---|
 | 149 |  D HOL,RS
 | 
|---|
 | 150 |  Q
 | 
|---|
 | 151 |  ;=======================
 | 
|---|
 | 152 |  ;
 | 
|---|
 | 153 | F1 F DAY=2:1:6,9:1:13 D NX
 | 
|---|
 | 154 |  S TD=1 F DAY=1,7,8,14 D NX
 | 
|---|
 | 155 |  W "  ... done"
 | 
|---|
 | 156 |  D:HRS'=NH ERROR(2,NH,HRS)
 | 
|---|
 | 157 |  Q
 | 
|---|
 | 158 |  ;=======================
 | 
|---|
 | 159 |  ;
 | 
|---|
 | 160 | VAR ; Variable ToD
 | 
|---|
 | 161 |  D ^PRSATE0
 | 
|---|
 | 162 |  I SRT'="N" D T2,^PRSATE5
 | 
|---|
 | 163 |  D HOL,RS
 | 
|---|
 | 164 |  Q
 | 
|---|
 | 165 |  ;=======================
 | 
|---|
 | 166 |  ;
 | 
|---|
 | 167 | NONE ; No ToD
 | 
|---|
 | 168 |  N TYP2,UPDT,Y,TDH
 | 
|---|
 | 169 |  W !!,"This is an intermittent employee with no specified tour."
 | 
|---|
 | 170 |  W !!,"Time records will now be updated to indicate this."
 | 
|---|
 | 171 |  I '$D(^PRST(458,PPI,"E",DFN,"D",0)) S ^(0)="^458.02^14^14"
 | 
|---|
 | 172 |  I '$$PERM^PRSALIB(PPI,DFN) D
 | 
|---|
 | 173 |  .  W !!,"Not all tour days are assigned a permanent status."
 | 
|---|
 | 174 |  .  I $$UPDTQ^PRSALIB(),$$TMPST^PRSALIB(.TYP2) D UPDSTAT^PRSALIB(PPI,DFN,TYP2)
 | 
|---|
 | 175 |  S (Y,TDH)="",TYP=0,WTL=TLI
 | 
|---|
 | 176 |  I SRT="N" D
 | 
|---|
 | 177 |  .  F DAY=1:1:14 D NX
 | 
|---|
 | 178 |  E  D
 | 
|---|
 | 179 |  .  F DAY=1:1:14 D SET
 | 
|---|
 | 180 |  W "  ... done"
 | 
|---|
 | 181 |  D HOL,RS
 | 
|---|
 | 182 |  Q
 | 
|---|
 | 183 |  ;=======================
 | 
|---|
 | 184 |  ;
 | 
|---|
 | 185 | RS ; Get Comp Ind
 | 
|---|
 | 186 |  S Y=$G(^PRST(458,PPI,"E",DFN,0))
 | 
|---|
 | 187 |  S FLX=$S((SRT="N")&($P(Y,U,7)]""):$P(Y,U,7),1:$P(Y,U,6))
 | 
|---|
 | 188 |  S DIR(0)="SAM^C:Compressed;F:Flexitime;0:None"
 | 
|---|
 | 189 |  S DIR("A")="Compressed Tour Indicator: "
 | 
|---|
 | 190 |  S DIR("B")=$S(FLX="C":"Compressed",FLX="F":"Flexitime",1:"None")
 | 
|---|
 | 191 |  D ^DIR K DIR I "^C^F^0^"'[(U_Y_U) S Y=FLX
 | 
|---|
 | 192 |  ;
 | 
|---|
 | 193 |  ;  Intermittent employee cannot have compressed tour.
 | 
|---|
 | 194 |  ;
 | 
|---|
 | 195 |  I $P(C0,U,10)=3,Y="C" D  G RS
 | 
|---|
 | 196 |  .   W *7,!?5,"Compressed tour not valid for this employee."
 | 
|---|
 | 197 |  ;
 | 
|---|
 | 198 |  I Y="F" S Z=0 D  I Z G RS
 | 
|---|
 | 199 |  .S PAY=$P(C0,U,21),PB=$P(C0,U,20)
 | 
|---|
 | 200 |  .I "0123456789GU"'[PAY S Z=1
 | 
|---|
 | 201 |  .I PAY="G",PB'=2 S Z=1
 | 
|---|
 | 202 |  .I PAY="U","27EXT"'[PB S Z=1
 | 
|---|
 | 203 |  .I Z W *7,!?5,"Flexitime not valid for this employee."
 | 
|---|
 | 204 |  .Q
 | 
|---|
 | 205 |  S $P(^PRST(458,PPI,"E",DFN,0),U,$S(SRT="N":7,1:6))=Y
 | 
|---|
 | 206 |  I $D(^PRST(458,"ATC",DFN)) D UPD^PRSASAL
 | 
|---|
 | 207 |  Q
 | 
|---|
 | 208 |  ;=======================
 | 
|---|
 | 209 |  ;
 | 
|---|
 | 210 | NX ; Set Next ToD
 | 
|---|
 | 211 |  S Z=$G(^PRST(458,PPI,"E",DFN,"D",DAY,0))
 | 
|---|
 | 212 |  Q:$P(Z,"^",2)=TD&('$P(Z,"^",3))
 | 
|---|
 | 213 |  ;
 | 
|---|
 | 214 |  S $P(Z,"^",3,4)="2^"_TD,$P(Z,"^",10,11)=DUZ_"^"_NOW
 | 
|---|
 | 215 |  S ^PRST(458,PPI,"E",DFN,"D",DAY,0)=Z,^PRST(458,"ATC",DFN,PPI,DAY)=""
 | 
|---|
 | 216 |  Q
 | 
|---|
 | 217 |  ;=======================
 | 
|---|
 | 218 |  ;
 | 
|---|
 | 219 | SET ; Set ToD
 | 
|---|
 | 220 |  N ZLASTPP
 | 
|---|
 | 221 |  S U="^"
 | 
|---|
 | 222 |  ;
 | 
|---|
 | 223 |  ; Get Zero node of emp pp rec, Old ToD, & Prior scheduled ToD.
 | 
|---|
 | 224 |  ; ZLASTPP is true if a ToD present on this day last pp.
 | 
|---|
 | 225 |  ;
 | 
|---|
 | 226 |  S Z=$G(^PRST(458,PPI,"E",DFN,"D",DAY,0))
 | 
|---|
 | 227 |  S ZLASTPP=$P($G(^PRST(458,PPI-1,"E",DFN,"D",DAY,0)),U,2)'=""
 | 
|---|
 | 228 |  S OLD=$P(Z,U,2),SCH=$P(Z,U,4)
 | 
|---|
 | 229 |  ;
 | 
|---|
 | 230 |  ; Quit if old ToD=this ToD & emp rec start/stop=ToD file start/stop.
 | 
|---|
 | 231 |  ;
 | 
|---|
 | 232 |  Q:(OLD=TD)&($G(^PRST(458,PPI,"E",DFN,"D",DAY,1))=Y)
 | 
|---|
 | 233 |  ;
 | 
|---|
 | 234 |  ; Z is updated with new ToD info & replaces the emp ToD record.
 | 
|---|
 | 235 |  ;
 | 
|---|
 | 236 |  S $P(Z,U,8)=TDH
 | 
|---|
 | 237 |  S $P(Z,U,10,11)=DUZ_U_NOW
 | 
|---|
 | 238 |  I $P(Z,U,12) S $P(Z,U,12)="" ; remove holiday flag
 | 
|---|
 | 239 |  ;
 | 
|---|
 | 240 |  ; Temp ToD, store T&L ToD will be worked if it's not emp's usual t&l.
 | 
|---|
 | 241 |  ;
 | 
|---|
 | 242 |  I TYP S:TLI'=WTL $P(Z,U,9)=WTL
 | 
|---|
 | 243 |  ;
 | 
|---|
 | 244 |  ; No existing ToD on this day.
 | 
|---|
 | 245 |  ;
 | 
|---|
 | 246 |  I OLD="" D
 | 
|---|
 | 247 |  .  S $P(Z,U,1,3)=DAY_U_TD_U_TYP
 | 
|---|
 | 248 |  .  I ZLASTPP D S0
 | 
|---|
 | 249 |  E  D
 | 
|---|
 | 250 |  .;
 | 
|---|
 | 251 |  .;  clean out postings and other ToD info since ToD is changing
 | 
|---|
 | 252 |  .;
 | 
|---|
 | 253 |  .  D CLEANTOD(PPI,DFN,DAY,TD)
 | 
|---|
 | 254 |  .;
 | 
|---|
 | 255 |  .;
 | 
|---|
 | 256 |  .;
 | 
|---|
 | 257 |  .  S:SCH $P(Z,U,5,7)="^^"
 | 
|---|
 | 258 |  .  I SCH="" D
 | 
|---|
 | 259 |  ..    S $P(Z,U,2,4)=TD_U_TYP_U_OLD
 | 
|---|
 | 260 |  ..    D S0
 | 
|---|
 | 261 |  .  E  D
 | 
|---|
 | 262 |  ..    I SCH=TD D
 | 
|---|
 | 263 |  ...      S $P(Z,U,2,4)=TD_"^^"
 | 
|---|
 | 264 |  ...      K ^PRST(458,"ATC",DFN,PPI,DAY)
 | 
|---|
 | 265 |  ..    E  D
 | 
|---|
 | 266 |  ...      S $P(Z,U,2,3)=TD_U_TYP
 | 
|---|
 | 267 |  ...      D S0
 | 
|---|
 | 268 |  ;
 | 
|---|
 | 269 |  D S1
 | 
|---|
 | 270 |  Q
 | 
|---|
 | 271 |  ;=======================
 | 
|---|
 | 272 |  ;
 | 
|---|
 | 273 |  ; Set up x-ref for supervisor approval of ToD change
 | 
|---|
 | 274 |  ;
 | 
|---|
 | 275 | S0 S ^PRST(458,"ATC",DFN,PPI,DAY)=""
 | 
|---|
 | 276 |  Q
 | 
|---|
 | 277 |  ;=======================
 | 
|---|
 | 278 |  ;
 | 
|---|
 | 279 | S1 ;
 | 
|---|
 | 280 |  S ^PRST(458,PPI,"E",DFN,"D",DAY,0)=Z S:Y'="" ^(1)=Y
 | 
|---|
 | 281 |  Q
 | 
|---|
 | 282 |  ;=======================
 | 
|---|
 | 283 |  ;
 | 
|---|
 | 284 | T2 ; Ask if second ToD
 | 
|---|
 | 285 |  N X
 | 
|---|
 | 286 |  ;
 | 
|---|
 | 287 |  ;  Don't ask for Daily ToDs
 | 
|---|
 | 288 |  ;
 | 
|---|
 | 289 |  Q:$E(ENT,1)="D"
 | 
|---|
 | 290 |  ;
 | 
|---|
 | 291 |  S X=$$ASK2NDTR()
 | 
|---|
 | 292 |  Q:X'="Y"  G ^PRSATE4
 | 
|---|
 | 293 |  ;=======================
 | 
|---|
 | 294 |  ;
 | 
|---|
 | 295 | HOL ; Determine if Holiday within ToD
 | 
|---|
 | 296 |  N DAY
 | 
|---|
 | 297 |  D ^PRSAPPH
 | 
|---|
 | 298 |  Q:'$D(HOL)
 | 
|---|
 | 299 |  S TT="HX",DUP=1
 | 
|---|
 | 300 |  D E^PRSAPPH
 | 
|---|
 | 301 |  Q
 | 
|---|
 | 302 |  ;=======================
 | 
|---|
 | 303 |  ;
 | 
|---|
 | 304 | CLEANTOD(PPI,DFN,DAY,TD) ; CLEAN OUT TOUR
 | 
|---|
 | 305 |  N PRSDT,MIEN
 | 
|---|
 | 306 |  K ^PRST(458,PPI,"E",DFN,"D",DAY,1),^(2),^(3),^(10) I TD<5 K ^(4) S $P(Z,U,13,15)="^^"
 | 
|---|
 | 307 |  ; if employee is PTP with active memo then reset the ESR day
 | 
|---|
 | 308 |  S PRSDT=$P($G(^PRST(458,PPI,1)),U,DAY)
 | 
|---|
 | 309 |  S MIEN=$$MIEN^PRSPUT1(DFN,PRSDT)
 | 
|---|
 | 310 |  I MIEN D
 | 
|---|
 | 311 |  . N PRSFDA
 | 
|---|
 | 312 |  . S PRSFDA(458.02,DAY_","_DFN_","_PPI_",",146)="3" ; status = resubmit
 | 
|---|
 | 313 |  . S PRSFDA(458.02,DAY_","_DFN_","_PPI_",",148)="Tour Changed" ; remarks
 | 
|---|
 | 314 |  . D FILE^DIE("","PRSFDA"),MSG^DIALOG()
 | 
|---|
 | 315 |  Q
 | 
|---|
 | 316 |  ;=======================
 | 
|---|
 | 317 |  ;
 | 
|---|
 | 318 | ERROR(NUM,VAR1,VAR2) ;
 | 
|---|
 | 319 |  W *7,!!
 | 
|---|
 | 320 |  I NUM=1 W "Employee has no Pay Entitlement table entry."
 | 
|---|
 | 321 |  I NUM=2 D
 | 
|---|
 | 322 |  .  Q:$G(NH)=112
 | 
|---|
 | 323 |  .  W "Warning: Normal Hours are ",$G(VAR1),"; Tour Hours are ",$G(VAR2)
 | 
|---|
 | 324 |  Q
 | 
|---|
 | 325 |  ;=======================
 | 
|---|
 | 326 |  ;
 | 
|---|
 | 327 | ASKFIXED() ;GET USER'S YES OR NO RESPONSE TO FIXED ToD QUESTION
 | 
|---|
 | 328 |  N DIR,DIRUT,Y
 | 
|---|
 | 329 |  S DIR("A")="Do you wish to enter a fixed Mon-Fri Tour"
 | 
|---|
 | 330 |  S DIR(0)="Y"
 | 
|---|
 | 331 |  S DIR("?")="Answer NO to create any other type of tour."
 | 
|---|
 | 332 |  S DIR("?",1)="Fixed tours are Monday - Friday with the same hours."
 | 
|---|
 | 333 |  D ^DIR
 | 
|---|
 | 334 |  S RESP=$S(Y=1:"Y",Y=0:"N",1:"^")
 | 
|---|
 | 335 |  Q RESP
 | 
|---|
 | 336 |  ;=======================
 | 
|---|
 | 337 |  ;
 | 
|---|
 | 338 | ASK2NDTR() ;GET USER'S YES OR NO RESPONSE TO 2nd ToD QUESTION
 | 
|---|
 | 339 |  N DIR,DIRUT,Y
 | 
|---|
 | 340 |  S DIR("A")="Do you wish to enter a Second Tour for any Day"
 | 
|---|
 | 341 |  S DIR(0)="Y"
 | 
|---|
 | 342 |  S DIR("B")="N"
 | 
|---|
 | 343 |  S DIR("?",1)="Answer Yes to add a second tour.  No to continue."
 | 
|---|
 | 344 |  S DIR("?")="Enter ^ to escape and cancel this tour change."
 | 
|---|
 | 345 |  D ^DIR
 | 
|---|
 | 346 |  S RESP=$S(Y=1:"Y",Y=0:"N",1:"^")
 | 
|---|
 | 347 |  Q RESP
 | 
|---|
 | 348 |  ;=======================
 | 
|---|
 | 349 |  ;
 | 
|---|