[613] | 1 | PRSPEAX ;WOIFO/SAB - CANCEL EXTENDED ABSENCE ;1/4/2005
|
---|
| 2 | ;;4.0;PAID;**93**;Sep 21, 1995;Build 7
|
---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ; Cancel Existing Extended Absence
|
---|
| 6 | ;
|
---|
| 7 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,EAIEN,EALIST,EAY0,ESRU
|
---|
| 8 | N PERSTR,PEREND,PRSFDA,PRSIEN,PRSLCK,PRSLCKE,X,X1,Y
|
---|
| 9 | ;
|
---|
| 10 | ; determine Employee IEN
|
---|
| 11 | S PRSIEN=$$PRSIEN^PRSPUT2(1)
|
---|
| 12 | I 'PRSIEN G EXIT
|
---|
| 13 | ;
|
---|
| 14 | ; verify that user has electronic signature code
|
---|
| 15 | I '$$ESIGC^PRSPUT2(1) G EXIT
|
---|
| 16 | ;
|
---|
| 17 | SEL ; select extended absence
|
---|
| 18 | W @IOF W !?26,"VA TIME & ATTENDANCE SYSTEM"
|
---|
| 19 | W !?28,"CANCEL EXTENDED ABSENCE",!
|
---|
| 20 | ;
|
---|
| 21 | ; build list in EALIST( array
|
---|
| 22 | D BLDLST^PRSPEAU(PRSIEN,DT,"^A^")
|
---|
| 23 | ;
|
---|
| 24 | ; display list (exit if ^ or time-out during list display)
|
---|
| 25 | G:$$DISLST^PRSPEAU() EXIT
|
---|
| 26 | ;
|
---|
| 27 | I EALIST(0)=0 G EXIT ; nothing to select
|
---|
| 28 | ;
|
---|
| 29 | ; select item from list
|
---|
| 30 | W !
|
---|
| 31 | S DIR(0)="NO^1:"_EALIST(0)
|
---|
| 32 | S DIR("A")="Cancel which extended absence #?"
|
---|
| 33 | D ^DIR K DIR G:Y'>0!$D(DIRUT) EXIT
|
---|
| 34 | S EAIEN=EALIST(+Y)
|
---|
| 35 | S EAY0=$G(^PRST(458.4,EAIEN,0))
|
---|
| 36 | ;
|
---|
| 37 | ; Lock EA
|
---|
| 38 | L +^PRST(458.4,EAIEN):2
|
---|
| 39 | I '$T D G AGAIN
|
---|
| 40 | . W $C(7),!,"Another user is editing this extended absence!"
|
---|
| 41 | ;
|
---|
| 42 | ; Display EA
|
---|
| 43 | W @IOF D DISEA^PRSPEAU(EAIEN) W !
|
---|
| 44 | ;
|
---|
| 45 | ; set ESRU to indicate any restruction for ESR updates upon EA cancel.
|
---|
| 46 | ; if absence includes prior days then they will not be updated on ESR
|
---|
| 47 | ; if absence includes Today and RG posted then Today can't be updated
|
---|
| 48 | ; restruction: 0 = none, 1 = prior to Today, 2 = Today and prior
|
---|
| 49 | S ESRU=0 ; init with no restriction
|
---|
| 50 | ; check if EA includes Today and if RG already posted to Today
|
---|
| 51 | I $P(EAY0,U)'>DT,$$CHKRG^PRSPEAU(PRSIEN) S ESRU=2
|
---|
| 52 | ; if Today OK then check if EA includes any prior days
|
---|
| 53 | I 'ESRU,$P(EAY0,U)<DT S ESRU=1
|
---|
| 54 | ;
|
---|
| 55 | ; Determine ESR period to update
|
---|
| 56 | S PERSTR=$S(ESRU=2:$$FMADD^XLFDT(DT,1),ESRU=1:DT,1:$P(EAY0,U))
|
---|
| 57 | S PEREND=$P(EAY0,U,2)
|
---|
| 58 | ;
|
---|
| 59 | ; Warn User if any restrictions
|
---|
| 60 | I ESRU D
|
---|
| 61 | . W !!,"This extended absence includes some ESR days that can't be"
|
---|
| 62 | . W !,"automatically updated if the absence is cancelled. Note that"
|
---|
| 63 | . W !,"ESR days before "_$$FMTE^XLFDT(PERSTR)_" won't be automatically modified."
|
---|
| 64 | . W !,"If appropriate, please manually update those earlier ESR days.",!
|
---|
| 65 | ;
|
---|
| 66 | ; Confirm Cancel
|
---|
| 67 | S DIR(0)="Y",DIR("A")="Do you want to cancel this extended absence" D ^DIR K DIR I 'Y L -^PRST(458.4,EAIEN) G:$D(DIRUT) EXIT G:'Y SEL
|
---|
| 68 | ;
|
---|
| 69 | ; e-sig
|
---|
| 70 | D SIG^XUSESIG
|
---|
| 71 | I X1="" L -^PRST(458.4,EAIEN) G AGAIN
|
---|
| 72 | ;
|
---|
| 73 | ; lock timecards for applicable opened pay periods
|
---|
| 74 | D LCK^PRSPAPU(PRSIEN,PERSTR,PEREND,.PRSLCK,.PRSLCKE)
|
---|
| 75 | ;
|
---|
| 76 | ; if some time cards couldn't be locked then report error and quit
|
---|
| 77 | I $D(PRSLCKE) D G AGAIN
|
---|
| 78 | . D TCULCK^PRSPAPU(PRSIEN,.PRSLCK) ; remove any TC locks
|
---|
| 79 | . D RLCKE^PRSPAPU(.PRSLCKE,1) ; report failed locks
|
---|
| 80 | . K PRSLCKE
|
---|
| 81 | ;
|
---|
| 82 | ; Update EA
|
---|
| 83 | S PRSFDA(458.4,EAIEN_",",4)=$$NOW^XLFDT() ; d/t updated
|
---|
| 84 | S PRSFDA(458.4,EAIEN_",",5)="X" ; status = cancelled
|
---|
| 85 | D FILE^DIE("","PRSFDA") D MSG^DIALOG()
|
---|
| 86 | ;
|
---|
| 87 | ; Update ESRs
|
---|
| 88 | D UEA^PRSPEAA(PRSIEN,PERSTR,PEREND)
|
---|
| 89 | ;
|
---|
| 90 | W !,"The extended absence has been cancelled."
|
---|
| 91 | ;
|
---|
| 92 | ; Unlock time cards
|
---|
| 93 | D TCULCK^PRSPAPU(PRSIEN,.PRSLCK)
|
---|
| 94 | ;
|
---|
| 95 | ; unlock EA
|
---|
| 96 | L -^PRST(458.4,EAIEN)
|
---|
| 97 | ;
|
---|
| 98 | ; Pause and repeat
|
---|
| 99 | AGAIN S DIR(0)="E" D ^DIR K DIR G:$D(DIRUT) EXIT
|
---|
| 100 | G SEL
|
---|
| 101 | ;
|
---|
| 102 | EXIT ; exit point
|
---|
| 103 | Q
|
---|
| 104 | ;
|
---|
| 105 | ;PRSPEAX
|
---|