[613] | 1 | PRCSUT ;WISC/SAW/DGL-CONTROL POINT ACTIVITY UTILITY PROGRAM ;9/14/00 15:49
|
---|
| 2 | V ;;5.1;IFCAP;**93**;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ENF(PRCIPFLG) ;Entry point for Inv. Pt. selection
|
---|
| 6 | EN ;STA,FY,QTR,CP W/SCREEN FOR INACTIVE CP
|
---|
| 7 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 8 | D STA G EX:'SI!(Y<0)
|
---|
| 9 | D FY G EX:PRC("FY")="^"
|
---|
| 10 | D QT G EX:PRC("QTR")="^"
|
---|
| 11 | S DIC("S")="I '$P(^(0),""^"",19),$D(^PRC(420,""A"",DUZ,PRC(""SITE""),+Y,1))!($D(^(2)))"
|
---|
| 12 | I $D(PRCSC),PRCSC D CPF^PRCSUT1(PRCIPFLG)
|
---|
| 13 | I '$D(PRCSC) D CPF(PRCIPFLG)
|
---|
| 14 | G EX:'SI!(Y<0)
|
---|
| 15 | G:'$$BBFY(PRC("SITE"),PRC("FY"),PRC("CP")) EX
|
---|
| 16 | G EN11
|
---|
| 17 | ;
|
---|
| 18 | EN1F(PRCIPFLG) ; Entry point for Inv. Pt. selection
|
---|
| 19 | EN1 ;STA,FY,QTR,CP
|
---|
| 20 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 21 | D STA G EX:'SI!(Y<0)
|
---|
| 22 | D FY G EX:PRC("FY")="^"
|
---|
| 23 | D QT G EX:PRC("QTR")="^"
|
---|
| 24 | I $D(PRCSC),PRCSC D CPF^PRCSUT1(PRCIPFLG)
|
---|
| 25 | I '$D(PRCSC) D CPF(PRCIPFLG)
|
---|
| 26 | G EX:'SI!(Y<0)
|
---|
| 27 | G:'$$BBFY(PRC("SITE"),PRC("FY"),PRC("CP")) EX
|
---|
| 28 | EN11 S Z=PRC("SITE")_"-"_PRC("FY")_"-"_PRC("QTR")_"-"_$P(PRC("CP")," ")
|
---|
| 29 | S X=$P(Z,"-",1,2)_"-"_$P(PRC("CP")," ")
|
---|
| 30 | G EXIT
|
---|
| 31 | ;
|
---|
| 32 | EN2 ;STA,FY,QTR
|
---|
| 33 | D STA G EX:'SI!(Y<0)
|
---|
| 34 | D FY G EX:PRC("FY")="^"
|
---|
| 35 | D QT G EX:PRC("QTR")="^"
|
---|
| 36 | G EXIT
|
---|
| 37 | ;
|
---|
| 38 | EN3F(PRCIPFLG) ; Entry point for Inv. Pt. selection
|
---|
| 39 | EN3 ;STA,CP
|
---|
| 40 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 41 | D STA G EX:'SI!(Y<0)
|
---|
| 42 | I $D(PRCSC),PRCSC D CPF^PRCSUT1(PRCIPFLG)
|
---|
| 43 | D:'$D(PRCSC) CPF(PRCIPFLG)
|
---|
| 44 | G EX:'SI!(Y<0)
|
---|
| 45 | G EXIT
|
---|
| 46 | ;
|
---|
| 47 | EN4 ;STA,FY,QTR,CC
|
---|
| 48 | D STA G EX:'SI!(Y<0)
|
---|
| 49 | D FY G EX:PRC("FY")="^"
|
---|
| 50 | D QT G EX:PRC("QTR")="^"
|
---|
| 51 | D CC
|
---|
| 52 | G EXIT
|
---|
| 53 | ;
|
---|
| 54 | EN5 ;STA,FY,QTR,BOC
|
---|
| 55 | D STA G EX:'SI!(Y<0)
|
---|
| 56 | D FY G EX:PRC("FY")="^"
|
---|
| 57 | D QT G EX:PRC("QTR")="^"
|
---|
| 58 | D SUB
|
---|
| 59 | G EXIT
|
---|
| 60 | ;
|
---|
| 61 | EN6F(PRCIPFLG) ; Entry point for Inv. Pt. selection
|
---|
| 62 | EN6 ;STA,CP,FY
|
---|
| 63 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 64 | D STA G EX:'SI!(Y<0)
|
---|
| 65 | I $D(PRCSC),PRCSC D CPF^PRCSUT1(PRCIPFLG)
|
---|
| 66 | I '$D(PRCSC) D CPF(PRCIPFLG)
|
---|
| 67 | G EX:'SI!(Y<0)
|
---|
| 68 | D FY G EX:PRC("FY")="^"
|
---|
| 69 | G EXIT
|
---|
| 70 | ;
|
---|
| 71 | ;PRCSST is flag to not ask substation
|
---|
| 72 | ;PRCSK is flag to allow selection of any station
|
---|
| 73 | STA ;SELECT STATION NUMBER
|
---|
| 74 | S N="",Y=0
|
---|
| 75 | I $D(PRCSK) S SI=2 ; if privilege flag is set, ask STATION
|
---|
| 76 | ; else restrict station selection to user's authorized stations
|
---|
| 77 | E F SI=0:1:2 S N=$O(^PRC(420,"A",DUZ,N)) Q:N'>0 S N(1)=N
|
---|
| 78 | Q:'SI ; user not allowed to access any station
|
---|
| 79 | I SI>1 D
|
---|
| 80 | . S DIC="^PRC(420,",DIC(0)="AEMQ",DIC("A")="Select STATION NUMBER: "
|
---|
| 81 | . I '$D(PRCSK) S DIC("S")="I $D(^PRC(420,""A"",DUZ,+Y))"
|
---|
| 82 | . I $D(PRC("SITE")) S DIC("B")=PRC("SITE")
|
---|
| 83 | . S D="B^C"
|
---|
| 84 | . D MIX^DIC1 I Y>0 S PRC("SITE")=+Y
|
---|
| 85 | I SI=1 S PRC("SITE")=N(1)
|
---|
| 86 | I '$D(PRC("SITE")) S PRC("SITE")="",PRC("SST")=""
|
---|
| 87 | I PRC("SITE")=""!(Y<0) K DIC,N Q
|
---|
| 88 | ; substation
|
---|
| 89 | I '$D(PRC("SST"))!'$D(^PRC(411,"UP",+PRC("SITE"))) S PRC("SST")=""
|
---|
| 90 | I '$G(PRCSST),$D(^PRC(411,"UP",+PRC("SITE"))) D
|
---|
| 91 | . S DIC("B")=PRC("SST")
|
---|
| 92 | . S DIC="^PRC(411,",DIC(0)="AEQZ",DIC("A")="Select SUBSTATION: "
|
---|
| 93 | . S DIC("S")="I $E($G(^PRC(411,+Y,0)),1,3)=PRC(""SITE"")"
|
---|
| 94 | . D ^DIC I Y>0 S PRC("SST")=+Y
|
---|
| 95 | K DIC,N
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | FY ;SELECT FISCAL YEAR
|
---|
| 99 | D:'$D(DT) DT^DICRW
|
---|
| 100 | S FYT=$E(100+$E(DT,2,3)+$E(DT,4),2,3),PRC("FY")=FYT
|
---|
| 101 | W !,"Select FISCAL YEAR: ",FYT,"// " R PRC("FY"):DTIME
|
---|
| 102 | S:'$T PRC("FY")=U
|
---|
| 103 | S:PRC("FY")="" PRC("FY")=FYT
|
---|
| 104 | Q:PRC("FY")="^"
|
---|
| 105 | I PRC("FY")'?2N W $C(7),!,"Enter a two digit fiscal year (e.g., 87).",! G FY
|
---|
| 106 | Q
|
---|
| 107 | ;
|
---|
| 108 | QT ;SELECT QUARTER
|
---|
| 109 | D:'$D(DT) DT^DICRW
|
---|
| 110 | I '$D(QTT) S:$D(PRC("QTR")) QTT=PRC("QTR") I '$D(QTT) S SI=$E(DT,4,5),QTT=$P("2^2^2^3^3^3^4^4^4^1^1^1","^",SI)
|
---|
| 111 | W !,"Select QUARTER: ",QTT,"// " R PRC("QTR"):DTIME
|
---|
| 112 | S:'$T PRC("QTR")=U
|
---|
| 113 | S:PRC("QTR")="" PRC("QTR")=QTT
|
---|
| 114 | Q:PRC("QTR")=U
|
---|
| 115 | I PRC("QTR")<1!(PRC("QTR")>4)!(PRC("QTR")'?1N) W $C(7),!,"Enter a single digit number from 1 to 4.",! G QT
|
---|
| 116 | Q
|
---|
| 117 | ;
|
---|
| 118 | CPF(PRCIPFLG) ; Entry point for inv. pt. selection
|
---|
| 119 | CP ;SELECT CONTROL POINT
|
---|
| 120 | N FCPDA
|
---|
| 121 | K PRCSIP ; inventory distribution point variable
|
---|
| 122 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 123 | S FCPDA=$O(^PRC(420,"A",DUZ,PRC("SITE"),0)) Q:'FCPDA ; no fcps
|
---|
| 124 | I '$O(^PRC(420,"A",DUZ,PRC("SITE"),FCPDA)) D Q ; access to 1 fcp
|
---|
| 125 | . S PRC("CP")=$P($G(^PRC(420,PRC("SITE"),1,FCPDA,0)),U)
|
---|
| 126 | . I PRC("CP"),PRCIPFLG D IP
|
---|
| 127 | ; more than one fcp
|
---|
| 128 | S DIC="^PRC(420,"_PRC("SITE")_",1,"
|
---|
| 129 | S DIC(0)="AEMNQZ",DIC("A")="Select CONTROL POINT: "
|
---|
| 130 | I '$D(DIC("S")) S DIC("S")="I '$P(^(0),""^"",19),$D(^PRC(420,""A"",DUZ,PRC(""SITE""),+Y,1))!($D(^(2)))"
|
---|
| 131 | I $D(PRC("CP")),PRC("CP"),$D(^PRC(420,PRC("SITE"),1,PRC("CP"))) S DIC("B")=+PRC("CP")
|
---|
| 132 | S D="B^C" D MIX^DIC1 S:Y<0 PRC("CP")="^"
|
---|
| 133 | I Y>0 S PRC("CP")=$P(Y(0),"^") I PRCIPFLG=1 D IP
|
---|
| 134 | K DIC
|
---|
| 135 | Q
|
---|
| 136 | ;
|
---|
| 137 | ;A=station #, B=fiscal year, C=fcp #, PRCA=1 if no user interactive
|
---|
| 138 | BBFY(A,B,C,PRCA) ;extrinsic function of beginning budget fiscal year
|
---|
| 139 | N D,E,F,X,Y
|
---|
| 140 | K PRC("BBFY")
|
---|
| 141 | S E=$G(^PRC(420,A,1,+C,5))
|
---|
| 142 | I $P(E,"^")]"" S F=$O(^PRCD(420.3,"B",$P(E,"^"),"")) I F I $P(^PRCD(420.3,F,0),"^",8)="Y" S PRC("BBFY")=+$$DATE^PRC0C($P(E,"^",8),"I") QUIT PRC("BBFY")
|
---|
| 143 | S B=+$$YEAR^PRC0C(B)
|
---|
| 144 | S D=$$APP^PRC0C(A,$E(B,3,4),C)
|
---|
| 145 | I $P(D,"^")'["_/_" S PRC("BBFY")=B QUIT PRC("BBFY")
|
---|
| 146 | S F=$$BBFY^PRC0D(A,C,'$G(PRCA))
|
---|
| 147 | I F="",$G(PRCA)=1 S PRC("BBFY")=B QUIT PRC("BBFY")
|
---|
| 148 | I $G(PRCA)=1 S PRC("BBFY")=B-(B-$P(F,"~",2)#$P(F,"~",3)) QUIT PRC("BBFY")
|
---|
| 149 | BBFY1 S E="^2:4^K:X'?2N&(X'?4N) X I $G(X)]"""" S X=+$$YEAR^PRC0C(X) K:X-$P(F,""~"",2)#$P(F,""~"",3) X"
|
---|
| 150 | S Y(1)="Enter a 2 or 4 digit year."
|
---|
| 151 | D FT^PRC0A(.X,.Y,"First Year of the Multi-Appropriation ("_$P(D,"^")_")",E,$S(F="":B,1:B-(B-$P(F,"~",2)#$P(F,"~",3))))
|
---|
| 152 | I Y?2.4N S Y=+$$YEAR^PRC0C(Y) I B<Y!(Y+$P(F,"~",3)-1<B) D EN^DDIOL("You must enter a BBFY such that the document's fiscal year is between"),EN^DDIOL("beginning and ending budget fiscal years") G BBFY1
|
---|
| 153 | S PRC("BBFY")=$S(Y?4N:Y,1:"")
|
---|
| 154 | QUIT PRC("BBFY")
|
---|
| 155 | ;
|
---|
| 156 | CC ;SELECT COST CENTER
|
---|
| 157 | S DIC="^PRCD(420.1,",DIC(0)="AEMNQZ"
|
---|
| 158 | D ^DIC Q:Y<0
|
---|
| 159 | S PRCS("CC")=$P(Y(0),"^")
|
---|
| 160 | Q
|
---|
| 161 | ;
|
---|
| 162 | SUB ;SELECT BOC
|
---|
| 163 | S DIC="^PRCD(420.2,",DIC(0)="AEMNQZ"
|
---|
| 164 | D ^DIC Q:Y<0
|
---|
| 165 | S PRCS("SUB")=$P(Y(0),"^")
|
---|
| 166 | Q
|
---|
| 167 | ;
|
---|
| 168 | LOCK ;LOCK GLOBAL THAT IS BEING ACCESSED BY ANOTHER USER
|
---|
| 169 | L @("+"_DIC_DA_"):15")
|
---|
| 170 | S PRCSL=$T
|
---|
| 171 | W:$T=0 !!,$C(7),"Sorry, record is being accessed by another user. Please try later."
|
---|
| 172 | Q
|
---|
| 173 | ;
|
---|
| 174 | EX S Y=-1
|
---|
| 175 | K PRC("QTR"),PRC("FY"),PRC("BBFY"),SI
|
---|
| 176 | I $D(PRC("CP")) K:PRC("CP")="ALL"!(PRC("CP")="^") PRC("CP")
|
---|
| 177 | EXIT K FYT,SI,PRCSK,QTT,DIC("A")
|
---|
| 178 | Q
|
---|
| 179 | ;
|
---|
| 180 | NSCRNF(PRCIPFLG) ; Entry point for Inv. Pt. selection
|
---|
| 181 | NSCRN ;STA,FY,QTR,CP
|
---|
| 182 | I '$G(PRCIPFLG) N:'$D(PRCIPFLG) PRCIPFLG S PRCIPFLG=0
|
---|
| 183 | D STA G EX:'SI!(Y<0)
|
---|
| 184 | D FY G EX:PRC("FY")="^"
|
---|
| 185 | D QT G EX:PRC("QTR")="^"
|
---|
| 186 | S PRCSC=4 D CPF^PRCSUT1(PRCIPFLG)
|
---|
| 187 | I '$D(PRCSC) D CPF(PRCIPFLG)
|
---|
| 188 | G EX:'SI!(Y<0)
|
---|
| 189 | G:'$$BBFY(PRC("SITE"),PRC("FY"),PRC("CP")) EX
|
---|
| 190 | QUIT
|
---|
| 191 | ;
|
---|
| 192 | IP ; Get Inventory point
|
---|
| 193 | Q:'$D(PRC("SITE"))!('$D(PRC("CP")))
|
---|
| 194 | N CTR,I
|
---|
| 195 | K ^TMP($J,"PRCSUT")
|
---|
| 196 | S (CTR,I)=0,PRCSIP=""
|
---|
| 197 | F S I=$O(^PRC(420,"AF",PRC("SITE"),+PRC("CP"),I)) Q:'I S CTR=CTR+1,^TMP($J,"PRCSUT",CTR)=I_"^"_$P(^PRCP(445,I,0),"^")
|
---|
| 198 | I CTR=0 G IPQ
|
---|
| 199 | I CTR=1 S PRCSIP=$P(^TMP($J,"PRCSUT",1),"^") G IPQ
|
---|
| 200 | F I=1:1:CTR D Q:$D(DIRUT)
|
---|
| 201 | . W !,?5,I,") ",$P(^TMP($J,"PRCSUT",I),"^",2)
|
---|
| 202 | . I I#(IOSL-2)=0 K DIR S DIR(0)="E" D ^DIR
|
---|
| 203 | S DIR(0)="NO^1:"_CTR_":0"
|
---|
| 204 | S DIR("A")="Select INVENTORY POINT"
|
---|
| 205 | S DIR("?",1)="Enter a number from 1 to "_CTR_" to select the displayed"
|
---|
| 206 | S DIR("?")="Inventory Point. This is an optional response."
|
---|
| 207 | D ^DIR K DIR
|
---|
| 208 | I Y>0 S PRCSIP=$P(^TMP($J,"PRCSUT",Y),"^") W " ",$P(^TMP($J,"PRCSUT",Y),"^",2),!
|
---|
| 209 | IPQ K ^TMP($J,"PRCSUT")
|
---|
| 210 | Q
|
---|