PRCATO8 ; GENERATED FROM 'PRCAT DISP CP' PRINT TEMPLATE (#405) ; 10/02/99 ; (FILE 430, MARGIN=80)
 G BEGIN
N W !
T W:$X ! I '$D(DIOT(2)),DN,$D(IOSL),$S('$D(DIWF):1,$P(DIWF,"B",2):$P(DIWF,"B",2),1:1)+$Y'<IOSL,$D(^UTILITY($J,1))#2,^(1)?1U1P1E.E X ^(1)
 S DISTP=DISTP+1,DILCT=DILCT+1 D:'(DISTP#100) CSTP^DIO2
 Q
DT I $G(DUZ("LANG"))>1,Y W $$OUT^DIALOGU(Y,"DD") Q
 I Y W $P("JAN^FEB^MAR^APR^MAY^JUN^JUL^AUG^SEP^OCT^NOV^DEC",U,$E(Y,4,5))_" " W:Y#100 $J(Y#100\1,2)_"," W Y\10000+1700 W:Y#1 "  "_$E(Y_0,9,10)_":"_$E(Y_"000",11,12) Q
 W Y Q
M D @DIXX
 Q
BEGIN ;
 S:'$D(DN) DN=1 S DISTP=$G(DISTP),DILCT=$G(DILCT)
 S I(0)="^PRCA(430,",J(0)=430
 D N:$X>0 Q:'DN  W ?0 S X="=",DIP(1)=X S X=70,X1=DIP(1) S %=X,X="" Q:X1=""  S $P(X,X1,%\$L(X1)+1)=X1,X=$E(X,1,%) K DIP K:DN Y W X
 D N:$X>0 Q:'DN  W ?0 W "BILL NO.: "
 S X=$G(^PRCA(430,D0,0)) D N:$X>12 Q:'DN  W ?12,$E($P(X,U,1),1,30)
 D N:$X>29 Q:'DN  W ?29 W "CATEGORY: "
 D N:$X>42 Q:'DN  W ?42 S Y=$P(X,U,2) S Y=$S(Y="":Y,$D(^PRCA(430.2,Y,0))#2:$P(^(0),U,1),1:Y) W $E(Y,1,30)
 D N:$X>0 Q:'DN  W ?0 W "CONTROL POINT:"
 S X=$G(^PRCA(430,D0,11)) D N:$X>21 Q:'DN  W ?21,$E($P(X,U,1),1,15)
 D N:$X>29 Q:'DN  W ?29 W "DATE BILL PREPARED:"
 S X=$G(^PRCA(430,D0,0)) D N:$X>50 Q:'DN  W ?50 S Y=$P(X,U,10) D DT
 D T Q:'DN  D N D N:$X>0 Q:'DN  W ?0 W "FISCAL YEAR"
 D N:$X>19 Q:'DN  W ?19 W "APPROPR. SYMBOL"
 D N:$X>39 Q:'DN  W ?39 W "ALD CODE"
 D N:$X>54 Q:'DN  W ?54 W "AMOUNT"
 S I(1)=2,J(1)=430.01 F D1=0:0 Q:$O(^PRCA(430,D0,2,D1))'>0  X:$D(DSC(430.01)) DSC(430.01) S D1=$O(^(D1)) Q:D1'>0  D:$X>62 T Q:'DN  D A1
 G A1R
A1 ;
 S X=$G(^PRCA(430,D0,2,D1,0)) D N:$X>1 Q:'DN  W ?1,$E($P(X,U,1),1,30)
 D N:$X>20 Q:'DN  W ?20,$E($P(X,U,4),1,30)
 D N:$X>40 Q:'DN  W ?40 S Y=$P(X,U,5) S Y=$S(Y="":Y,$D(^PRCD(420.3,Y,0))#2:$P(^(0),U,1),1:Y) W $E(Y,1,6)
 D N:$X>55 Q:'DN  W ?55,$E($P(X,U,8),1,9)
 Q
A1R ;
 D T Q:'DN  D N D N:$X>0 Q:'DN  W ?0 W "BILL RESULTING FROM:"
 S X=$G(^PRCA(430,D0,0)) D N:$X>21 Q:'DN  W ?21 S Y=$P(X,U,5) S Y(0)=Y I $D(^PRCA(430.6,+Y,0)) S Y=$P(^PRCA(430.6,+Y,0),U,2) W $E(Y,1,30)
 D N:$X>0 Q:'DN  W ?0 S X="=",DIP(1)=X S X=70,X1=DIP(1) S %=X,X="" Q:X1=""  S $P(X,X1,%\$L(X1)+1)=X1,X=$E(X,1,%) K DIP K:DN Y W X
 K Y
 Q
HEAD ;
 W !,"--------------------------------------------------------------------------------",!!
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRCATO8   2303     printed  Sep 23, 2025@19:17:41                                                                                                                                                                                                     Page 2
PRCATO8   ; GENERATED FROM 'PRCAT DISP CP' PRINT TEMPLATE (#405) ; 10/02/99 ; (FILE 430, MARGIN=80)
 +1        GOTO BEGIN
N          WRITE !
T          if $X
               WRITE !
           IF '$DATA(DIOT(2))
               IF DN
                   IF $DATA(IOSL)
                       IF $SELECT('$DATA(DIWF):1,$PIECE(DIWF,"B",2):$PIECE(DIWF,"B",2),1:1)+$Y'<IOSL
                           IF $DATA(^UTILITY($JOB,1))#2
                               IF ^(1)?1U1P1E.E
                                   XECUTE ^(1)
 +1        SET DISTP=DISTP+1
           SET DILCT=DILCT+1
           if '(DISTP#100)
               DO CSTP^DIO2
 +2        QUIT 
DT         IF $GET(DUZ("LANG"))>1
               IF Y
                   WRITE $$OUT^DIALOGU(Y,"DD")
                   QUIT 
 +1        IF Y
               WRITE $PIECE("JAN^FEB^MAR^APR^MAY^JUN^JUL^AUG^SEP^OCT^NOV^DEC",U,$EXTRACT(Y,4,5))_" "
               if Y#100
                   WRITE $JUSTIFY(Y#100\1,2)_","
               WRITE Y\10000+1700
               if Y#1
                   WRITE "  "_$EXTRACT(Y_0,9,10)_":"_$EXTRACT(Y_"000",11,12)
               QUIT 
 +2        WRITE Y
           QUIT 
M          DO @DIXX
 +1        QUIT 
BEGIN     ;
 +1        if '$DATA(DN)
               SET DN=1
           SET DISTP=$GET(DISTP)
           SET DILCT=$GET(DILCT)
 +2        SET I(0)="^PRCA(430,"
           SET J(0)=430
 +3        if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           SET X="="
           SET DIP(1)=X
           SET X=70
           SET X1=DIP(1)
           SET %=X
           SET X=""
           if X1=""
               QUIT 
           SET $PIECE(X,X1,%\$LENGTH(X1)+1)=X1
           SET X=$EXTRACT(X,1,%)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +4        if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           WRITE "BILL NO.: "
 +5        SET X=$GET(^PRCA(430,D0,0))
           if $X>12
               DO N
           if 'DN
               QUIT 
           WRITE ?12,$EXTRACT($PIECE(X,U,1),1,30)
 +6        if $X>29
               DO N
           if 'DN
               QUIT 
           WRITE ?29
           WRITE "CATEGORY: "
 +7        if $X>42
               DO N
           if 'DN
               QUIT 
           WRITE ?42
           SET Y=$PIECE(X,U,2)
           SET Y=$SELECT(Y="":Y,$DATA(^PRCA(430.2,Y,0))#2:$PIECE(^(0),U,1),1:Y)
           WRITE $EXTRACT(Y,1,30)
 +8        if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           WRITE "CONTROL POINT:"
 +9        SET X=$GET(^PRCA(430,D0,11))
           if $X>21
               DO N
           if 'DN
               QUIT 
           WRITE ?21,$EXTRACT($PIECE(X,U,1),1,15)
 +10       if $X>29
               DO N
           if 'DN
               QUIT 
           WRITE ?29
           WRITE "DATE BILL PREPARED:"
 +11       SET X=$GET(^PRCA(430,D0,0))
           if $X>50
               DO N
           if 'DN
               QUIT 
           WRITE ?50
           SET Y=$PIECE(X,U,10)
           DO DT
 +12       DO T
           if 'DN
               QUIT 
           DO N
           if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           WRITE "FISCAL YEAR"
 +13       if $X>19
               DO N
           if 'DN
               QUIT 
           WRITE ?19
           WRITE "APPROPR. SYMBOL"
 +14       if $X>39
               DO N
           if 'DN
               QUIT 
           WRITE ?39
           WRITE "ALD CODE"
 +15       if $X>54
               DO N
           if 'DN
               QUIT 
           WRITE ?54
           WRITE "AMOUNT"
 +16       SET I(1)=2
           SET J(1)=430.01
           FOR D1=0:0
               if $ORDER(^PRCA(430,D0,2,D1))'>0
                   QUIT 
               if $DATA(DSC(430.01))
                   XECUTE DSC(430.01)
               SET D1=$ORDER(^(D1))
               if D1'>0
                   QUIT 
               if $X>62
                   DO T
               if 'DN
                   QUIT 
               DO A1
 +17       GOTO A1R
A1        ;
 +1        SET X=$GET(^PRCA(430,D0,2,D1,0))
           if $X>1
               DO N
           if 'DN
               QUIT 
           WRITE ?1,$EXTRACT($PIECE(X,U,1),1,30)
 +2        if $X>20
               DO N
           if 'DN
               QUIT 
           WRITE ?20,$EXTRACT($PIECE(X,U,4),1,30)
 +3        if $X>40
               DO N
           if 'DN
               QUIT 
           WRITE ?40
           SET Y=$PIECE(X,U,5)
           SET Y=$SELECT(Y="":Y,$DATA(^PRCD(420.3,Y,0))#2:$PIECE(^(0),U,1),1:Y)
           WRITE $EXTRACT(Y,1,6)
 +4        if $X>55
               DO N
           if 'DN
               QUIT 
           WRITE ?55,$EXTRACT($PIECE(X,U,8),1,9)
 +5        QUIT 
A1R       ;
 +1        DO T
           if 'DN
               QUIT 
           DO N
           if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           WRITE "BILL RESULTING FROM:"
 +2        SET X=$GET(^PRCA(430,D0,0))
           if $X>21
               DO N
           if 'DN
               QUIT 
           WRITE ?21
           SET Y=$PIECE(X,U,5)
           SET Y(0)=Y
           IF $DATA(^PRCA(430.6,+Y,0))
               SET Y=$PIECE(^PRCA(430.6,+Y,0),U,2)
               WRITE $EXTRACT(Y,1,30)
 +3        if $X>0
               DO N
           if 'DN
               QUIT 
           WRITE ?0
           SET X="="
           SET DIP(1)=X
           SET X=70
           SET X1=DIP(1)
           SET %=X
           SET X=""
           if X1=""
               QUIT 
           SET $PIECE(X,X1,%\$LENGTH(X1)+1)=X1
           SET X=$EXTRACT(X,1,%)
           KILL DIP
           if DN
               KILL Y
           WRITE X
 +4        KILL Y
 +5        QUIT 
HEAD      ;
 +1        WRITE !,"--------------------------------------------------------------------------------",!!