1 | PRSARC09 ;WOIFO/JAH - automatically load continuous recess;5/31/07
|
---|
2 | ;;4.0;PAID;**112**;Sep 21, 1995;Build 54
|
---|
3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | AUTOREC(AWSST,AWSEND) ; Ask user: automatically schedule all available
|
---|
7 | ; recess, continuously from a user specified date.
|
---|
8 | W @IOF,!!
|
---|
9 | N DIR,X,Y,DIRUT,I
|
---|
10 | S DIR("A")="Set available recess, continously from a particular date"
|
---|
11 | S DIR("?",1)=" You may now select a recess start date and all available "
|
---|
12 | S DIR("?",2)=" recess will automatically be scheduled fully for each "
|
---|
13 | S DIR("?",3)=" week from the date you pick. If you answer NO, you may"
|
---|
14 | S DIR("?",4)=" schedule recess by selecting weeks in the recess editor."
|
---|
15 | S DIR("?",5)=" "
|
---|
16 | S DIR("?",6)=" There are "_$P(PRSRWHRS,U,3)_" weeks or "_$P(PRSRWHRS,U,2)_" hours available for recess."
|
---|
17 | S I=0 F S I=$O(DIR("?",I)) Q:I'>0 W !,DIR("?",I)
|
---|
18 | S DIR("B")="YES"
|
---|
19 | S DIR(0)="Y"
|
---|
20 | D ^DIR
|
---|
21 | S (PRSAUTOR)=+Y
|
---|
22 | Q:'PRSAUTOR 0
|
---|
23 | ; Find last date recess can start
|
---|
24 | N X,X1,X2,RECSTART
|
---|
25 | S X2=-(7*(($P(PRSRWHRS,U,3)+.9\1)-1)),X1=AWSEND D C^%DTC S AWSEND=X
|
---|
26 | S RECSTART=$$AWSTART^PRSARC03(AWSST,AWSEND,"Enter Recess Start Date")
|
---|
27 | Q:RECSTART'>0 0
|
---|
28 | ; convert RECESS start to 1st day of week
|
---|
29 | N D1,DAY,PPI,PPE S D1=RECSTART D PP^PRSAPPU
|
---|
30 | N X1,X2,X,%H S X1=D1,X2=-$S(DAY<8:DAY-1,1:DAY-8) D C^%DTC S RECSTART=X
|
---|
31 | Q PRSAUTOR_U_RECSTART
|
---|
32 | ;
|
---|
33 | ;
|
---|
34 | ADDAUTOR(PRSAUTOR) ; auto add recess to listman
|
---|
35 | ;
|
---|
36 | N LSTITEM,CTRH1,CTRH2,LOFHRS,LOFTH1,LOFTH2,WKDY1
|
---|
37 | N ITEM,Y,RH1,RH2,OUT,HRSLEFT,RDEFAULT,CRH,TOURHRS,D1,PPI,PPE
|
---|
38 | ;
|
---|
39 | ; get tour hours from latest pay period on file
|
---|
40 | N PPI S PPI=$O(^PRST(458,999999),-1)
|
---|
41 | N TH D TOURHRS^PRSARC07(.TH,PPI,+PRSNURSE,"")
|
---|
42 | S LOFTH1=TH("W1"),LOFTH2=TH("W2")
|
---|
43 | ;
|
---|
44 | ; Initialize hours left for recess to 20 since 1 pay period minimum
|
---|
45 | ; is 25% of 80 hours
|
---|
46 | S HRSLEFT=20
|
---|
47 | S (OUT,ITEM,RDEFAULT)=0
|
---|
48 | S WKDY1=$P(PRSAUTOR,U,2)-1
|
---|
49 | F S WKDY1=$O(FMWKS(WKDY1)) Q:WKDY1'>0!(HRSLEFT'>0) D
|
---|
50 | . S HRSLEFT=$$HRSLEFT^PRSARC03()
|
---|
51 | . Q:HRSLEFT'>0
|
---|
52 | . S ITEM=$G(FMWKS(WKDY1))
|
---|
53 | . S LSTITEM=$G(^TMP("PRSLI",$J,ITEM))
|
---|
54 | . S D1=WKDY1 D PP^PRSAPPU
|
---|
55 | . N TH D TOURHRS^PRSARC07(.TH,PPI,+PRSNURSE,"")
|
---|
56 | . S CTRH1=+TH("W1"),CTRH2=+TH("W2")
|
---|
57 | . S TOURHRS=$S(ITEM#2:CTRH1,1:CTRH2)
|
---|
58 | . S LOFHRS=$S(ITEM#2:LOFTH1,1:LOFTH2)
|
---|
59 | . I TOURHRS'>0 S TOURHRS=LOFHRS
|
---|
60 | . ;get remaining hours to schedule for FY
|
---|
61 | . I HRSLEFT<TOURHRS D
|
---|
62 | .. S RDEFAULT=HRSLEFT
|
---|
63 | . E D
|
---|
64 | .. S RDEFAULT=TOURHRS
|
---|
65 | . I RDEFAULT<0 S RDEFAULT=0
|
---|
66 | . D FLDTEXT^VALM10(LSTITEM,"RECESS HOURS",$J(RDEFAULT,15,2))
|
---|
67 | .;
|
---|
68 | .; set hrs for selected weeks, remove from array if zero
|
---|
69 | .;
|
---|
70 | . I RDEFAULT'>0 D
|
---|
71 | .. K ^TMP("PRSRW",$J,ITEM)
|
---|
72 | . E D
|
---|
73 | .. S ^TMP("PRSRW",$J,ITEM)=LSTITEM_U_RDEFAULT_U_WKDY1_U_"0"
|
---|
74 | ;
|
---|
75 | Q
|
---|
76 | ;
|
---|