| 1 | PRCAFUT ;WASH-ISC@ALTOONA/CLH-FMS Utilities ;10/8/96  10:50 AM
 | 
|---|
| 2 | V ;;4.5;Accounts Receivable;**5,39,64,92,104,169,188,194,220,231**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | CPLK(PRCABN) ;get control point from file 430 and set DR string to edit CP data
 | 
|---|
| 5 |  N DR,X,Y,QUIT,FUND,FTBL,CAT,CATTYP,CATTYPE,CP,BBFY,EBFY,DIC,BGFY,CPTBL,CC,SCC,EXIT,FYERROR
 | 
|---|
| 6 |  K PRCA("EXIT")
 | 
|---|
| 7 |  S PRCA("SITE")=$S($G(PRCABN):$P($P($G(^PRCA(430,PRCABN,0)),"^"),"-"),1:$$SITE^RCMSITE)
 | 
|---|
| 8 |  S CP=$P($G(^PRCA(430,PRCABN,11)),U)
 | 
|---|
| 9 |  S CAT=+$P($G(^PRCA(430,PRCABN,0)),U,2),CATTYP=$P($G(^PRCA(430.2,CAT,0)),U,13)
 | 
|---|
| 10 |  I CAT>39,CAT<45 D  G END
 | 
|---|
| 11 |     .S TYPE="09" D CHKELEM,REV Q:$G(PRCA("EXIT"))
 | 
|---|
| 12 |     .S DR="257///^S X=$G(PRCA(""SITE""))"
 | 
|---|
| 13 |     .;I CAT'=42 S DR=DR_";258////1"
 | 
|---|
| 14 |     .D DIE
 | 
|---|
| 15 |     .Q
 | 
|---|
| 16 |  D TYPE Q:$D(PRCA("EXIT"))
 | 
|---|
| 17 |  I CATTYP=2 K PRCA("EXIT") D  G END
 | 
|---|
| 18 |   . ;reibursement logic (if there is such a thing)
 | 
|---|
| 19 |   . S DR="203" D DIE K DR I $D(Y) Q
 | 
|---|
| 20 |   . I '$D(FUND) S FUND=$P($G(^PRCA(430,PRCABN,11)),U,17) D  I FUND=-1 S PRCA("EXIT")="" Q
 | 
|---|
| 21 |   .. N X,Y,DIC
 | 
|---|
| 22 |   .. S X=FUND,DIC="^PRCD(420.14,",DIC(0)="XMNZ",DIC("B")=FUND D ^DIC
 | 
|---|
| 23 |   .. I +Y<0 D FUND^PRCAFBDU D  Q:FUND=-1
 | 
|---|
| 24 |   ... S DIC="^PRCD(420.14,",DIC(0)="AEMNQZ",DIC("A")="FUND: ",DIC("B")=FUND
 | 
|---|
| 25 |   ... D ^DIC
 | 
|---|
| 26 |   ... S:+Y<0 FUND=-1 Q
 | 
|---|
| 27 |   .. S FUND=Y
 | 
|---|
| 28 |   .. S BBFY=$E($P(Y(0),U,3),3,4),EBFY=$E($P(Y(0),U,4),3,4)
 | 
|---|
| 29 |   ..Q
 | 
|---|
| 30 |   .S PRCABN(1)=$O(^PRCA(430,+PRCABN,2,0))
 | 
|---|
| 31 |   .S PRCABN(2)=$G(^PRCA(430,+PRCABN,2,PRCABN(1),0))
 | 
|---|
| 32 |   .S PRCABN(4)=+$G(PRCABN(2))
 | 
|---|
| 33 |   .S X=BBFY D ^%DT S PRCABN(3)=$E(Y,1,3)
 | 
|---|
| 34 |   .K ^PRCA(430,PRCABN,2,PRCABN(1),0)
 | 
|---|
| 35 |   .K ^PRCA(430,PRCABN,2,"B",PRCABN(4),PRCABN(1))
 | 
|---|
| 36 |   .S ^PRCA(430,PRCABN,2,PRCABN(3),0)=PRCABN(2)
 | 
|---|
| 37 |   .S $P(^PRCA(430,PRCABN,2,PRCABN(3),0),"^")=BBFY
 | 
|---|
| 38 |   .S ^PRCA(430,PRCABN,2,"B",BBFY,PRCABN(3))=""
 | 
|---|
| 39 |   .D DOCREQ^PRC0C(+FUND,"REV","FTBL")
 | 
|---|
| 40 |   . I '$D(FTBL) S PRCA("EXIT")=1 D  Q
 | 
|---|
| 41 |   .. W !,*7,"FMS REQUIRED FIELDS missing.  Edit the IFCAP REQUIRED FIELDS table",!,"for FUND/FY combination."
 | 
|---|
| 42 |   .. Q
 | 
|---|
| 43 |   . S DR="259////^S X=CAT;257////^S X=$G(PRCA(""SITE""));201////^S X=BBFY;202////^S X=$S($G(EBFY)'=BBFY:EBFY,1:"""")"
 | 
|---|
| 44 |   . D DR
 | 
|---|
| 45 |   . Q
 | 
|---|
| 46 |  ;Ask Beginning/end budget fiscal year
 | 
|---|
| 47 |  D FY^PRCAFUT1
 | 
|---|
| 48 |  I $D(FYERROR) S PRCA("EXIT")=1 Q
 | 
|---|
| 49 |  ;S BGFY=$P(^PRCA(430,PRCABN,0),U,10),BGFY=$$FY^RCFN01(BGFY)
 | 
|---|
| 50 |  S DR="250;I '$D(CPTBL) D CPTBL^PRCAFUT;259////^S X=CAT;204////^S X=$P(CPTBL,U);206////^S X=$P(CPTBL,U,3)"
 | 
|---|
| 51 |  S DR=DR_";203////^S X=$P(CPTBL,U,5);201////^S X=$E($P(CPTBL,U,6),3,4)"
 | 
|---|
| 52 |  S DR(1,430,1)="202////^S X=$S($P(CPTBL,U,7)'=$P(CPTBL,U,6):$E($P(CPTBL,U,7),3,4),1:"""")"
 | 
|---|
| 53 |  S DR(1,430,2)="261////^S X=$P(CPTBL,U,10)"
 | 
|---|
| 54 |  S DA=PRCABN D ^DIE K DR
 | 
|---|
| 55 |  I $D(Y) S PRCA("EXIT")=1 Q
 | 
|---|
| 56 |  K DR
 | 
|---|
| 57 |  D FTBL Q:'$D(FTBL)
 | 
|---|
| 58 |  S (X,PRCABN(1))=$E($P(CPTBL,U,6),3,4)
 | 
|---|
| 59 |  D ^%DT S PRCABN(2)=$E(Y,1,3)
 | 
|---|
| 60 |  S PRCABN(3)=$O(^PRCA(430,+PRCABN,2,0))
 | 
|---|
| 61 |  S PRCABN(4)=$G(^PRCA(430,+PRCABN,2,PRCABN(3),0))
 | 
|---|
| 62 |  S PRCABN(5)=$E(PRCABN(4),1,2)
 | 
|---|
| 63 |  K ^PRCA(430,PRCABN,2,PRCABN(3),0)
 | 
|---|
| 64 |  K ^PRCA(430,PRCABN,2,"B",PRCABN(5),PRCABN(3))
 | 
|---|
| 65 |  S ^PRCA(430,PRCABN,2,PRCABN(2),0)=PRCABN(4)
 | 
|---|
| 66 |  S $P(^PRCA(430,PRCABN,2,PRCABN(2),0),"^")=PRCABN(1)
 | 
|---|
| 67 |  S ^PRCA(430,PRCABN,2,"B",PRCABN(1),PRCABN(2))=""
 | 
|---|
| 68 |  S $P(^PRCA(430,PRCABN,2,0),"^",3)=PRCABN(2)
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | FTBL S FUND=$$FUND^PRC0C($P(CPTBL,U,5),$P(CPTBL,U,6))
 | 
|---|
| 71 |  D DOCREQ^PRC0C(+FUND,"SPE","FTBL")
 | 
|---|
| 72 |  I '$D(FTBL) W !!,*7,"UNABLE TO GET FMS-LINE FUND ACCOUNTING INFORMATION.  CHECK CONTROL POINT." H 5 S PRCA("EXIT")=1 Q
 | 
|---|
| 73 |  S DR="257////^S X=$G(PRCA(""SITE""))"
 | 
|---|
| 74 | DR I $$INTEG^RCFN01($G(PRCA("SITE"))) S DR=DR_";260"
 | 
|---|
| 75 |  I $G(FTBL("AO"))="Y" S DR=DR_";204"
 | 
|---|
| 76 |  I $G(FTBL("FCPRJ"))="Y" S DR=DR_";I '$D(CPTBL) D CPTBL^PRCAFUT;206////^S X=$P(CPTBL,U,3)"
 | 
|---|
| 77 |  I $G(FTBL("CC"))="Y"            S DR=DR_";251;252////^S X=$G(SCC)"
 | 
|---|
| 78 |  I $G(FTBL("BOC"))="Y"           S DR=DR_";253"
 | 
|---|
| 79 |  I $G(FTBL("SBOC"))="Y"!(CAT=20) S DR=DR_";254"
 | 
|---|
| 80 |  I $G(FTBL("JOB"))="Y"           S DR=DR_";261"
 | 
|---|
| 81 |  I $G(FTBL("RC"))="Y"            S DR=DR_";263"
 | 
|---|
| 82 |  I $G(FTBL("REV"))="Y"           D DIE Q:$G(PRCA("EXIT"))  D REV Q:$G(PRCA("EXIT"))
 | 
|---|
| 83 |  I $G(FTBL("SREV"))="Y"          S DR=$S(DR="":"256",1:DR_";256")
 | 
|---|
| 84 |  I $G(FTBL("OC"))="Y"            S DR=$S(DR="":"205",1:DR_";205")
 | 
|---|
| 85 |  I DR'="" D DIE
 | 
|---|
| 86 |  Q
 | 
|---|
| 87 | DIE S DA=PRCABN,DIE="^PRCA(430," D ^DIE
 | 
|---|
| 88 | END I $D(Y) S PRCA("EXIT")=1
 | 
|---|
| 89 |  K DR Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | RECTYP(BN) ;Refund or reimbursement
 | 
|---|
| 92 |  I '$D(BN),'$D(^PRCA(430,BN,0)) Q -1
 | 
|---|
| 93 |  Q $P($G(^PRCA(430,BN,11)),U,10)
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 | REV ;lookup revenue by calling "C" xref
 | 
|---|
| 96 |  N DS,DIC,DIBTDH,HELP,I,IAT,OUT,RV,X,Y
 | 
|---|
| 97 |  S OUT=0,RV=$P($G(^PRCA(430,PRCABN,11)),U,6)
 | 
|---|
| 98 |  F  D  Q:OUT
 | 
|---|
| 99 |  .W !,"REVENUE SOURCE: "_$S(RV'="":RV_"// ",1:"") R X:DTIME
 | 
|---|
| 100 |  .I $E(X)="?",X?."?" D @($S($L(X)=1:"REVH1",1:"REVH2")) S DIC=347.3,DIC(0)="QE" D ^DIC Q:Y<1  Q
 | 
|---|
| 101 |  .I $E(X)="^",X?."^" S OUT=1,PRCA("EXIT")=1 Q
 | 
|---|
| 102 |  .I X="@" W "??  Required" Q
 | 
|---|
| 103 |  .I X="",RV'="" S OUT=1 Q
 | 
|---|
| 104 |  .I X="",RV="" W "??" D REVH1 Q
 | 
|---|
| 105 |  .I $D(^RC(347.3,"B",X)) D  Q
 | 
|---|
| 106 |  ..S DS=$P($G(^RC(347.3,+$O(^RC(347.3,"B",X,0)),0)),U,2),IAT=$P(^(0),U,3)
 | 
|---|
| 107 |  ..W "       "_DS W:IAT "         INACTIVE" D REVDIE
 | 
|---|
| 108 |  .S DIC="^RC(347.3,",DIC(0)="QE",D="C" D IX^DIC I Y<1 D REVH1 Q
 | 
|---|
| 109 |  .S X=$P(Y,U,2) D REVDIE
 | 
|---|
| 110 |  S DR=""
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | REVDIE S DA=PRCABN,DIE="^PRCA(430,",DR="255///"_X D ^DIE I $G(X)'="" S OUT=1 Q
 | 
|---|
| 113 |  D REVH1 Q
 | 
|---|
| 114 | REVH1 S HELP("DIHELP",1)=$G(^DD(430,255,3)) D MSG^DIALOG("WH","",70,5,"HELP") Q
 | 
|---|
| 115 | REVH2 D HELP^DIE(430,"",255,"D","HELP"),MSG^DIALOG("WH","",70,8,"HELP") Q
 | 
|---|
| 116 |  ;
 | 
|---|
| 117 | FUND ;get fund
 | 
|---|
| 118 |  N DIC,Y
 | 
|---|
| 119 |  S DIC="^PRCD(420.14,",DIC(0)="EMNQZ"
 | 
|---|
| 120 |  D ^DIC
 | 
|---|
| 121 |  I $D(DUOUT)!$D(DTOUT) S PRCA("EXIT")=1 Q
 | 
|---|
| 122 |  Q:+Y<0
 | 
|---|
| 123 |  S FUND=Y
 | 
|---|
| 124 |  S BBFY=$E($P(Y(0),U,3),3,4),EBFY=$E($P(Y(0),U,4),3,4)
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 | DISPLACC ;display account information
 | 
|---|
| 128 |  Q:'$D(PRCABN)  NEW DIC,L,FR,TO,FLDS,IOP,X
 | 
|---|
| 129 |  R !!,"Press <RETURN> to continue: ",X:60
 | 
|---|
| 130 |  I X["^" S PRCA("EXIT")="" Q
 | 
|---|
| 131 |  S IOP=IO(0),DIC="^PRCA(430,",FLDS="[PRCA DISP AUDIT2]",(FR,TO)=PRCABN,L=0,BY="@NUMBER" D EN1^DIP
 | 
|---|
| 132 |  Q
 | 
|---|
| 133 |  ;
 | 
|---|
| 134 | CP ;lookup control point
 | 
|---|
| 135 |  N DIC
 | 
|---|
| 136 |  S DIC="^PRC(420,"_$S($D(PRCA("SITE")):PRCA("SITE"),1:$$SITE^RCMSITE)_",1,",DIC(0)="EMNQ",X=CP
 | 
|---|
| 137 |  D ^DIC
 | 
|---|
| 138 |  I +Y<0 K X,CP Q
 | 
|---|
| 139 |  S CP=+Y
 | 
|---|
| 140 |  Q
 | 
|---|
| 141 |  ;
 | 
|---|
| 142 | CC ;cost center
 | 
|---|
| 143 |  G CC^PRCAFBDU
 | 
|---|
| 144 |  ;
 | 
|---|
| 145 | BOC ;budget object code
 | 
|---|
| 146 |  G BOC^PRCAFBDU
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 | TYPE ;ask if bill is a refund or reimbursement
 | 
|---|
| 149 |  W !!,"Building FMS Accounting Elements...",!
 | 
|---|
| 150 |  N DIR,Y,TYPE
 | 
|---|
| 151 |  I +$G(CAT)=1 S CAT="02",CATTYPE=2 D CHKELEM Q
 | 
|---|
| 152 |  I +$G(CAT)=10 S CAT=50,CATTYPE=2 D CHKELEM Q
 | 
|---|
| 153 |  D BDTRANS^PRCAFBDU
 | 
|---|
| 154 |  Q:$D(PRCA("EXIT"))
 | 
|---|
| 155 |  S CATTYP=$S(TYPE="01":"1",TYPE="20":"1",1:"2")
 | 
|---|
| 156 |  S CAT=TYPE ; I CAT>2 S CAT=$S(CAT=4:"20",1:"9")
 | 
|---|
| 157 |  D CHKELEM
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | CHKELEM ;check for correct accounting line data
 | 
|---|
| 161 |  N I
 | 
|---|
| 162 |  Q:'$D(^PRCA(430,PRCABN,11))
 | 
|---|
| 163 |  I $G(CATTYP)=1 D  Q
 | 
|---|
| 164 |   . F I=6,7 S $P(^PRCA(430,PRCABN,11),U,I)=""
 | 
|---|
| 165 |   . Q
 | 
|---|
| 166 |  Q:$G(TYPE)=10
 | 
|---|
| 167 |  F I=1:1:5,11:1:16,18:1:21 S $P(^PRCA(430,PRCABN,11),U,I)=""
 | 
|---|
| 168 |  S $P(^PRCA(430,PRCABN,11),U,15)="05"
 | 
|---|
| 169 |  Q
 | 
|---|
| 170 | CPTBL ;build CP table
 | 
|---|
| 171 |  S:'$D(BGFY) BGFY=$$FY^RCFN01(DT)
 | 
|---|
| 172 |  S BGFY(1)=$S(BGFY>50:19,1:20)
 | 
|---|
| 173 |  S CPTBL=$$ACC^PRC0C($G(PRCA("SITE")),+CP_U_BGFY_U_BGFY(1)_BGFY)
 | 
|---|
| 174 |  I '$D(CPTBL) S CPTBL=""
 | 
|---|
| 175 |  Q
 | 
|---|
| 176 |  ;
 | 
|---|
| 177 | CPHLP ;executable help for cp prompt
 | 
|---|
| 178 |  N DIC,X,Y
 | 
|---|
| 179 |  S DIC="^PRC(420,"_$S($D(PRCA("SITE")):PRCA("SITE"),1:$$SITE^RCMSITE)_",1,",DIC(0)="EMQ",X="?" D ^DIC
 | 
|---|
| 180 |  Q
 | 
|---|
| 181 |  ;
 | 
|---|
| 182 | FND(BILL) ;Get fund for a bill
 | 
|---|
| 183 |  I '$D(^PRCA(430,BILL,0)) Q -1
 | 
|---|
| 184 |  I $D(^PRCA(430,BILL,11)),$P(^(11),"^",17)'="" Q $P(^(11),"^",17)
 | 
|---|
| 185 |  I $P(^PRCA(430,BILL,0),"^",18)'="" Q $E($P(^(0),"^",18),4,9)
 | 
|---|
| 186 |  Q -1
 | 
|---|
| 187 |  ;
 | 
|---|