- PRCF826 ;WISC/CLH/TEN-826 STATUS OF FUNDS RPT ;5/4/93 9:14 AM
- V ;;5.1;IFCAP;;Oct 20, 2000
- ;Per VHA Directive 10-93-142, this routine should not be modified.
- ;
- S PRCF("X")="ABSQ"
- D ^PRCFSITE
- G:'% OUT
- ;
- D S %ZIS="MQ"
- D ^%ZIS
- G:POP OUT
- I '$D(IO("Q")) D G Q1
- . U IO
- . D DQ
- . U IO(0)
- . Q
- ;
- S ZTSAVE("PRCF*")=""
- S ZTSAVE("PRCB*")=""
- S ZTSAVE("PRC*")=""
- S ZTRTN="DQ^PRCF826"
- S ZTDESC="826 STATUS OF FUNDS REPORT"
- S ZTIO=ION
- D ^%ZTLOAD
- ;
- Q1 D ^%ZISC
- K POP
- Q
- ;
- DQ D:$D(ZTQUEUED) KILL^%ZTLOAD
- ;
- N ZX,OB,OB1,OBCP,OBCP1,TOT,CA,CO,FYC,FYO,DA,CP,SI,FY,QTR,CPB,X,CPN,APS,LINE,PG
- K ^TMP($J)
- ;
- S ZX=""
- S QTR=PRC("QTR")
- S FY=PRC("FY")
- S SI=PRC("SITE")
- ;
- D CEIL^PRCS826(SI,FY,QTR,.CA,.CO)
- ;
- S TOT=0
- S TOT(1)=0
- S TOT(2)=0
- S TOT(3)=0
- S CP=0
- ;
- F S CP=$O(^PRC(420,PRC("SITE"),1,CP)) Q:('CP) D
- . I CP<9999 D
- .. S CPB=$G(^PRC(420,SI,1,CP,4,FY,0)) Q:CPB=""
- .. S APS=$P($$ACC^PRC0C(SI,CP_"^"_FY_"^"_+$$YEAR^PRC0C(FY)),"^",11)
- .. S APS=" "_APS
- .. S CPN=+$P($G(^PRC(420,SI,1,CP,0)),U,1)
- .. I '$D(^TMP($J,QTR,APS,"9999 GRAND TOTAL")) S ^TMP($J,QTR,APS,"9999 GRAND TOTAL")="0^0^0^0^0"
- .. I '$D(^TMP($J,QTR,APS,CPN)) S ^TMP($J,QTR,APS,CPN)="0^0^0^0^0"
- .. I '$D(^TMP($J,"GT")) S ^TMP($J,"GT")="0^0^0^0^0"
- .. S ^TMP($J,QTR,APS,CPN)=$G(CA($P(CPN," ")))_U_+$P(CPB,U,QTR+1)_U_+$P(CPB,U,QTR+5)
- .. F I=1:1:3 S TOT(I)=+$P(^TMP($J,QTR,APS,"9999 GRAND TOTAL"),U,I)
- .. S TOT(1)=TOT(1)+$G(CA($P(CPN," ")))
- .. S TOT(2)=TOT(2)+$P(CPB,U,QTR+1)
- .. S TOT(3)=TOT(3)+$P(CPB,U,QTR+5)
- .. S ^TMP($J,QTR,APS,"9999 GRAND TOTAL")=TOT(1)_U_TOT(2)_U_TOT(3)
- .. S OB=$G(^TMP($J,QTR,APS,"9999 GRAND TOTAL"))
- .. S OBCP=$G(^TMP($J,QTR,APS,CPN))
- .. S OB1=$P(OB,U)-$P(OB,U,3)
- .. S OBCP1=$P(OBCP,U)-$P(OBCP,U,3)
- .. S $P(^TMP($J,QTR,APS,"9999 GRAND TOTAL"),U,4)=OB1
- .. S $P(^TMP($J,QTR,APS,CPN),U,4)=OBCP1
- .. S OB=$G(^TMP($J,QTR,APS,"9999 GRAND TOTAL"))
- .. S $P(^TMP($J,QTR,APS,CPN),U,5)=$G(CO($P(CPN," ")))
- .. S X=^TMP($J,"GT")
- .. F I=1:1:4 S $P(X,U,I)=$P(X,U,I)+$P(OB,U,I)
- .. S $P(X,U,5)=$P(X,U,5)+$G(CO($P(CPN," ")))
- .. S ^TMP($J,"GT")=X
- .. Q
- . Q
- ;
- S PG=0
- S LINE=""
- S $P(LINE,"-",81)=""
- W:($E(IOST)="C") @IOF
- D HDR1
- ;
- S AP=""
- S CPN=""
- ;
- F S AP=$O(^TMP($J,QTR,AP)) Q:(AP="") D G:(ZX=U) OUT
- . W !!,"APPROPRIATION: ",AP,!!
- . F S CPN=$O(^TMP($J,QTR,AP,CPN)) Q:(CPN="") D Q:(ZX=U)
- .. ;
- .. ; WRITE APPROPRIATION (9999 GRAND TOTAL) TOTALS.
- .. ;
- .. I +CPN=9999 D PAUSE:$Y+5>IOSL Q:(ZX=U) D Q
- ... W !,"TOTAL:"
- ... S X=$G(^TMP($J,QTR,AP,CPN))
- ... W ?21,$J($FN($P(X,U,1),"P,",2),14)
- ... W ?36,$J($FN($P(X,U,4),"P,",2),14)
- ... W ?52,$J($FN($P(X,U,3),"P,",2),14)
- ... W ?66,$J($FN($P(X,U,5),"P,",2),14)
- ... W !
- ... Q
- .. ;
- .. ; WRITE CONTROL POINT TOTALS.
- .. ;
- .. D PAUSE:($Y+5>IOSL) Q:(ZX=U)
- .. S X=CPN S:X<100 X=$E(1000+X,2,999) W $E(X,1,15)
- .. I $P($G(^PRC(420,PRC("SITE"),1,+CPN,0)),U,19)=1 W " *" ;MARK DEACTIVATED CONTROL POINT.
- .. S X=$G(^TMP($J,QTR,AP,CPN))
- .. W ?21,$J($FN($P(X,U,1),"P,",2),14)
- .. W ?36,$J($FN($P(X,U,4),"P,",2),14)
- .. W ?52,$J($FN($P(X,U,3),"P,",2),14)
- .. W ?66,$J($FN($P(X,U,5),"P,",2),14)
- .. W !
- .. ; COMPUTE FYTD OBLIGATION AMOUNT BY APPROPRIATION.
- .. S $P(^TMP($J,QTR,AP,"9999 GRAND TOTAL"),U,5)=$P(^TMP($J,QTR,AP,"9999 GRAND TOTAL"),U,5)+$G(CO($P(CPN," ")))
- .. Q
- ;
- ; WRITE STATION (SITE) GRAND TOTALS.
- ;
- D PAUSE:($Y+5>IOSL) Q:(ZX=U)
- W !!,"STATION TOTALS: "
- S X=$G(^TMP($J,"GT"))
- W ?21,$J($FN($P(X,U,1),"P,",2),14)
- W ?36,$J($FN($P(X,U,4),"P,",2),14)
- W ?52,$J($FN($P(X,U,3),"P,",2),14)
- W ?66,$J($FN($P(X,U,5),"P,",2),14)
- W:($E(IOST)="P") @IOF
- ;
- OUT K PRC,PRCF,PRCB,^TMP($J)
- Q
- ;
- HDR1 S PG=PG+1
- W !,"STATUS OF FUNDS - 826 REPORT"
- W ?40,"STATION NO: ",SI
- W ?71,"PAGE: ",$J(PG,3)
- W !!,"* = DEACTIVATED CONTROL POINT"
- W !!,"FISCAL YEAR: ",FY
- W !,"QUARTER:",?14,QTR
- W !!,?54,"UNOBLIGATED"
- W !,?22,"COST CEILING",?38,"OBLIGATIONS",?58,"BALANCE",?69,"FYTD"
- W !,"FUND CONTROL POINT",?22,"FOR QTR",?38,"FOR QTR",?58,"FOR QTR",?69,"OBLIGATIONS"
- W !,LINE
- Q
- ;
- HDR W @IOF
- S PG=PG+1
- W !,"826 REPORT - STATION NO: ",SI
- W ?71,"PAGE: ",$J(PG,3)
- W !,"* = DEACTIVATED CONTROL POINT"
- W !,LINE,!
- Q
- ;
- PAUSE I $E(IOST)="C" D Q:(ZX=U)
- . S ZX=""
- . R !,"Press <return> to continue or '^' to quit: ",ZX:DTIME
- . S:('$T) ZX=U
- . Q
- D HDR
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCF826 4410 printed Apr 23, 2025@18:16:11 Page 2
- PRCF826 ;WISC/CLH/TEN-826 STATUS OF FUNDS RPT ;5/4/93 9:14 AM
- V ;;5.1;IFCAP;;Oct 20, 2000
- +1 ;Per VHA Directive 10-93-142, this routine should not be modified.
- +2 ;
- +3 SET PRCF("X")="ABSQ"
- +4 DO ^PRCFSITE
- +5 if '%
- GOTO OUT
- +6 ;
- D SET %ZIS="MQ"
- +1 DO ^%ZIS
- +2 if POP
- GOTO OUT
- +3 IF '$DATA(IO("Q"))
- Begin DoDot:1
- +4 USE IO
- +5 DO DQ
- +6 USE IO(0)
- +7 QUIT
- End DoDot:1
- GOTO Q1
- +8 ;
- +9 SET ZTSAVE("PRCF*")=""
- +10 SET ZTSAVE("PRCB*")=""
- +11 SET ZTSAVE("PRC*")=""
- +12 SET ZTRTN="DQ^PRCF826"
- +13 SET ZTDESC="826 STATUS OF FUNDS REPORT"
- +14 SET ZTIO=ION
- +15 DO ^%ZTLOAD
- +16 ;
- Q1 DO ^%ZISC
- +1 KILL POP
- +2 QUIT
- +3 ;
- DQ if $DATA(ZTQUEUED)
- DO KILL^%ZTLOAD
- +1 ;
- +2 NEW ZX,OB,OB1,OBCP,OBCP1,TOT,CA,CO,FYC,FYO,DA,CP,SI,FY,QTR,CPB,X,CPN,APS,LINE,PG
- +3 KILL ^TMP($JOB)
- +4 ;
- +5 SET ZX=""
- +6 SET QTR=PRC("QTR")
- +7 SET FY=PRC("FY")
- +8 SET SI=PRC("SITE")
- +9 ;
- +10 DO CEIL^PRCS826(SI,FY,QTR,.CA,.CO)
- +11 ;
- +12 SET TOT=0
- +13 SET TOT(1)=0
- +14 SET TOT(2)=0
- +15 SET TOT(3)=0
- +16 SET CP=0
- +17 ;
- +18 FOR
- SET CP=$ORDER(^PRC(420,PRC("SITE"),1,CP))
- if ('CP)
- QUIT
- Begin DoDot:1
- +19 IF CP<9999
- Begin DoDot:2
- +20 SET CPB=$GET(^PRC(420,SI,1,CP,4,FY,0))
- if CPB=""
- QUIT
- +21 SET APS=$PIECE($$ACC^PRC0C(SI,CP_"^"_FY_"^"_+$$YEAR^PRC0C(FY)),"^",11)
- +22 SET APS=" "_APS
- +23 SET CPN=+$PIECE($GET(^PRC(420,SI,1,CP,0)),U,1)
- +24 IF '$DATA(^TMP($JOB,QTR,APS,"9999 GRAND TOTAL"))
- SET ^TMP($JOB,QTR,APS,"9999 GRAND TOTAL")="0^0^0^0^0"
- +25 IF '$DATA(^TMP($JOB,QTR,APS,CPN))
- SET ^TMP($JOB,QTR,APS,CPN)="0^0^0^0^0"
- +26 IF '$DATA(^TMP($JOB,"GT"))
- SET ^TMP($JOB,"GT")="0^0^0^0^0"
- +27 SET ^TMP($JOB,QTR,APS,CPN)=$GET(CA($PIECE(CPN," ")))_U_+$PIECE(CPB,U,QTR+1)_U_+$PIECE(CPB,U,QTR+5)
- +28 FOR I=1:1:3
- SET TOT(I)=+$PIECE(^TMP($JOB,QTR,APS,"9999 GRAND TOTAL"),U,I)
- +29 SET TOT(1)=TOT(1)+$GET(CA($PIECE(CPN," ")))
- +30 SET TOT(2)=TOT(2)+$PIECE(CPB,U,QTR+1)
- +31 SET TOT(3)=TOT(3)+$PIECE(CPB,U,QTR+5)
- +32 SET ^TMP($JOB,QTR,APS,"9999 GRAND TOTAL")=TOT(1)_U_TOT(2)_U_TOT(3)
- +33 SET OB=$GET(^TMP($JOB,QTR,APS,"9999 GRAND TOTAL"))
- +34 SET OBCP=$GET(^TMP($JOB,QTR,APS,CPN))
- +35 SET OB1=$PIECE(OB,U)-$PIECE(OB,U,3)
- +36 SET OBCP1=$PIECE(OBCP,U)-$PIECE(OBCP,U,3)
- +37 SET $PIECE(^TMP($JOB,QTR,APS,"9999 GRAND TOTAL"),U,4)=OB1
- +38 SET $PIECE(^TMP($JOB,QTR,APS,CPN),U,4)=OBCP1
- +39 SET OB=$GET(^TMP($JOB,QTR,APS,"9999 GRAND TOTAL"))
- +40 SET $PIECE(^TMP($JOB,QTR,APS,CPN),U,5)=$GET(CO($PIECE(CPN," ")))
- +41 SET X=^TMP($JOB,"GT")
- +42 FOR I=1:1:4
- SET $PIECE(X,U,I)=$PIECE(X,U,I)+$PIECE(OB,U,I)
- +43 SET $PIECE(X,U,5)=$PIECE(X,U,5)+$GET(CO($PIECE(CPN," ")))
- +44 SET ^TMP($JOB,"GT")=X
- +45 QUIT
- End DoDot:2
- +46 QUIT
- End DoDot:1
- +47 ;
- +48 SET PG=0
- +49 SET LINE=""
- +50 SET $PIECE(LINE,"-",81)=""
- +51 if ($EXTRACT(IOST)="C")
- WRITE @IOF
- +52 DO HDR1
- +53 ;
- +54 SET AP=""
- +55 SET CPN=""
- +56 ;
- +57 FOR
- SET AP=$ORDER(^TMP($JOB,QTR,AP))
- if (AP="")
- QUIT
- Begin DoDot:1
- +58 WRITE !!,"APPROPRIATION: ",AP,!!
- +59 FOR
- SET CPN=$ORDER(^TMP($JOB,QTR,AP,CPN))
- if (CPN="")
- QUIT
- Begin DoDot:2
- +60 ;
- +61 ; WRITE APPROPRIATION (9999 GRAND TOTAL) TOTALS.
- +62 ;
- +63 IF +CPN=9999
- if $Y+5>IOSL
- DO PAUSE
- if (ZX=U)
- QUIT
- Begin DoDot:3
- +64 WRITE !,"TOTAL:"
- +65 SET X=$GET(^TMP($JOB,QTR,AP,CPN))
- +66 WRITE ?21,$JUSTIFY($FNUMBER($PIECE(X,U,1),"P,",2),14)
- +67 WRITE ?36,$JUSTIFY($FNUMBER($PIECE(X,U,4),"P,",2),14)
- +68 WRITE ?52,$JUSTIFY($FNUMBER($PIECE(X,U,3),"P,",2),14)
- +69 WRITE ?66,$JUSTIFY($FNUMBER($PIECE(X,U,5),"P,",2),14)
- +70 WRITE !
- +71 QUIT
- End DoDot:3
- QUIT
- +72 ;
- +73 ; WRITE CONTROL POINT TOTALS.
- +74 ;
- +75 if ($Y+5>IOSL)
- DO PAUSE
- if (ZX=U)
- QUIT
- +76 SET X=CPN
- if X<100
- SET X=$EXTRACT(1000+X,2,999)
- WRITE $EXTRACT(X,1,15)
- +77 ;MARK DEACTIVATED CONTROL POINT.
- IF $PIECE($GET(^PRC(420,PRC("SITE"),1,+CPN,0)),U,19)=1
- WRITE " *"
- +78 SET X=$GET(^TMP($JOB,QTR,AP,CPN))
- +79 WRITE ?21,$JUSTIFY($FNUMBER($PIECE(X,U,1),"P,",2),14)
- +80 WRITE ?36,$JUSTIFY($FNUMBER($PIECE(X,U,4),"P,",2),14)
- +81 WRITE ?52,$JUSTIFY($FNUMBER($PIECE(X,U,3),"P,",2),14)
- +82 WRITE ?66,$JUSTIFY($FNUMBER($PIECE(X,U,5),"P,",2),14)
- +83 WRITE !
- +84 ; COMPUTE FYTD OBLIGATION AMOUNT BY APPROPRIATION.
- +85 SET $PIECE(^TMP($JOB,QTR,AP,"9999 GRAND TOTAL"),U,5)=$PIECE(^TMP($JOB,QTR,AP,"9999 GRAND TOTAL"),U,5)+$GET(CO($PIECE(CPN," ")))
- +86 QUIT
- End DoDot:2
- if (ZX=U)
- QUIT
- End DoDot:1
- if (ZX=U)
- GOTO OUT
- +87 ;
- +88 ; WRITE STATION (SITE) GRAND TOTALS.
- +89 ;
- +90 if ($Y+5>IOSL)
- DO PAUSE
- if (ZX=U)
- QUIT
- +91 WRITE !!,"STATION TOTALS: "
- +92 SET X=$GET(^TMP($JOB,"GT"))
- +93 WRITE ?21,$JUSTIFY($FNUMBER($PIECE(X,U,1),"P,",2),14)
- +94 WRITE ?36,$JUSTIFY($FNUMBER($PIECE(X,U,4),"P,",2),14)
- +95 WRITE ?52,$JUSTIFY($FNUMBER($PIECE(X,U,3),"P,",2),14)
- +96 WRITE ?66,$JUSTIFY($FNUMBER($PIECE(X,U,5),"P,",2),14)
- +97 if ($EXTRACT(IOST)="P")
- WRITE @IOF
- +98 ;
- OUT KILL PRC,PRCF,PRCB,^TMP($JOB)
- +1 QUIT
- +2 ;
- HDR1 SET PG=PG+1
- +1 WRITE !,"STATUS OF FUNDS - 826 REPORT"
- +2 WRITE ?40,"STATION NO: ",SI
- +3 WRITE ?71,"PAGE: ",$JUSTIFY(PG,3)
- +4 WRITE !!,"* = DEACTIVATED CONTROL POINT"
- +5 WRITE !!,"FISCAL YEAR: ",FY
- +6 WRITE !,"QUARTER:",?14,QTR
- +7 WRITE !!,?54,"UNOBLIGATED"
- +8 WRITE !,?22,"COST CEILING",?38,"OBLIGATIONS",?58,"BALANCE",?69,"FYTD"
- +9 WRITE !,"FUND CONTROL POINT",?22,"FOR QTR",?38,"FOR QTR",?58,"FOR QTR",?69,"OBLIGATIONS"
- +10 WRITE !,LINE
- +11 QUIT
- +12 ;
- HDR WRITE @IOF
- +1 SET PG=PG+1
- +2 WRITE !,"826 REPORT - STATION NO: ",SI
- +3 WRITE ?71,"PAGE: ",$JUSTIFY(PG,3)
- +4 WRITE !,"* = DEACTIVATED CONTROL POINT"
- +5 WRITE !,LINE,!
- +6 QUIT
- +7 ;
- PAUSE IF $EXTRACT(IOST)="C"
- Begin DoDot:1
- +1 SET ZX=""
- +2 READ !,"Press <return> to continue or '^' to quit: ",ZX:DTIME
- +3 if ('$TEST)
- SET ZX=U
- +4 QUIT
- End DoDot:1
- if (ZX=U)
- QUIT
- +5 DO HDR
- +6 QUIT