| 1 | RCRJRCO1 ;WISC/RFJ/BGJ-continuation of ar data collector ;1 Mar 97 | 
|---|
| 2 | ;;4.5;Accounts Receivable;**68,96,101,120,103,153,156,170,182,203**;Mar 20, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | START ;  calculate ndb values from file 433 transactions | 
|---|
| 8 | ;  needs datebeg, dateend | 
|---|
| 9 | ;  total is total by category | 
|---|
| 10 | ; | 
|---|
| 11 | N ADMIN,BILLDA,DATE,INTEREST,PRINBAL,TRANDA,TRANTYPE,VALUE,RCNOHSIF | 
|---|
| 12 | ; | 
|---|
| 13 | S RCNOHSIF=$$NOHSIF^RCRJRCO() ; no HSIF (disabled) | 
|---|
| 14 | ; | 
|---|
| 15 | F TRANTYPE=1,2,3,8,9,10,11,12,13,14,34,35,41,43 D | 
|---|
| 16 | .   S DATE=DATEBEG-1 | 
|---|
| 17 | .   F  S DATE=$O(^PRCA(433,"AT",TRANTYPE,DATE)) Q:'DATE!(DATE>DATEEND)  D | 
|---|
| 18 | .   .   S TRANDA=0 | 
|---|
| 19 | .   .   F  S TRANDA=$O(^PRCA(433,"AT",TRANTYPE,DATE,TRANDA)) Q:'TRANDA  D | 
|---|
| 20 | .   .   .   S BILLDA=+$P($G(^PRCA(433,TRANDA,0)),"^",2) I 'BILLDA Q | 
|---|
| 21 | .   .   .   ;  bill not linked to a site | 
|---|
| 22 | .   .   .   I '$P($G(^PRCA(430,BILLDA,0)),"^",12) Q | 
|---|
| 23 | .   .   .   ; | 
|---|
| 24 | .   .   .   ;  get a transactions balance | 
|---|
| 25 | .   .   .   S VALUE=$$TRANBAL^RCRJRCOT(TRANDA) I VALUE="" Q | 
|---|
| 26 | .   .   .   S PRINBAL=$P(VALUE,"^"),INTEREST=$P(VALUE,"^",2),ADMIN=$P(VALUE,"^",3)+$P(VALUE,"^",4)+$P(VALUE,"^",5) | 
|---|
| 27 | .   .   .   ; | 
|---|
| 28 | .   .   .   D @TRANTYPE | 
|---|
| 29 | Q | 
|---|
| 30 | ; | 
|---|
| 31 | ; | 
|---|
| 32 | 1 ;  increase adjustments | 
|---|
| 33 | D SETTOTAL(14,PRINBAL,0) | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | ; | 
|---|
| 37 | 2 ;  payment in partial | 
|---|
| 38 | N CATEGORY | 
|---|
| 39 | ;  prepayment transaction (field #20) | 
|---|
| 40 | I $P($G(^PRCA(433,TRANDA,5)),"^") D  Q | 
|---|
| 41 | . D SETTOTAL(21,PRINBAL,0) | 
|---|
| 42 | . I INTEREST D SETTOTAL(38,INTEREST,0) | 
|---|
| 43 | . I ADMIN D SETTOTAL(39,ADMIN,0) | 
|---|
| 44 | ; | 
|---|
| 45 | ;  check to see if payment is rx copay and is split between | 
|---|
| 46 | ;  mccf and hsif.  if the bill has been run through the | 
|---|
| 47 | ;  calculator, do it now and report the mccf split to the ndb. | 
|---|
| 48 | ;  the amount owed to mccf is in piece 3 and is returned negative | 
|---|
| 49 | S CATEGORY=$P(^PRCA(430,BILLDA,0),"^",2) | 
|---|
| 50 | I 'RCNOHSIF,PRINBAL,(CATEGORY=22!(CATEGORY=23)),'$D(^TMP($J,"RCBMILLDATA",BILLDA,TRANDA)) D | 
|---|
| 51 | . S %=$$BILLFUND^RCBMILLC(BILLDA) | 
|---|
| 52 | ; | 
|---|
| 53 | ; changed by patch PRCA*4.5*182 to no longer separate the mccf and | 
|---|
| 54 | ; hsif components.  the entire amount is now reported to the ndb. | 
|---|
| 55 | ; | 
|---|
| 56 | ;.   S PRINBAL=-$P($G(^TMP($J,"RCBMILLDATA",BILLDA,TRANDA)),"^",3) | 
|---|
| 57 | ; | 
|---|
| 58 | ;  partial payments (trantype=2), full payments (trantype=34) | 
|---|
| 59 | D SETTOTAL($S(TRANTYPE=2:19,1:18),PRINBAL,0) | 
|---|
| 60 | I INTEREST D SETTOTAL(38,INTEREST,0) | 
|---|
| 61 | I ADMIN D SETTOTAL(39,ADMIN,0) | 
|---|
| 62 | ; | 
|---|
| 63 | ;  irs, district counsel, dept of justice (#7) | 
|---|
| 64 | S %=$P($G(^PRCA(433,TRANDA,0)),"^",7) I %="" Q | 
|---|
| 65 | I %="IRS" D SETTOTAL(28,PRINBAL,0) Q | 
|---|
| 66 | I %="DC" D SETTOTAL(31,PRINBAL,0) Q | 
|---|
| 67 | I %="DOJ" D SETTOTAL(34,PRINBAL,0) Q | 
|---|
| 68 | Q | 
|---|
| 69 | ; | 
|---|
| 70 | ; | 
|---|
| 71 | 3 ;  refer to district counsel | 
|---|
| 72 | D SETTOTAL(30,PRINBAL,0) | 
|---|
| 73 | Q | 
|---|
| 74 | ; | 
|---|
| 75 | ; | 
|---|
| 76 | 8 ;  terminate by fiscal officer | 
|---|
| 77 | D WRITEOFF^RCRJRCOC(BILLDA,VALUE,$S(TRANTYPE=8:25,1:24)) | 
|---|
| 78 | ;  decrease in number of debts | 
|---|
| 79 | I '$D(^TMP($J,"RCRJRCOL","COUNT",BILLDA,17)) D SETTOTAL(17,0,0) | 
|---|
| 80 | Q | 
|---|
| 81 | ; | 
|---|
| 82 | ; | 
|---|
| 83 | 9 ;  terminate by compromise | 
|---|
| 84 | D 8 | 
|---|
| 85 | Q | 
|---|
| 86 | ; | 
|---|
| 87 | ; | 
|---|
| 88 | 10 ;  payment waived in full | 
|---|
| 89 | D WRITEOFF^RCRJRCOC(BILLDA,VALUE,22) | 
|---|
| 90 | Q | 
|---|
| 91 | ; | 
|---|
| 92 | ; | 
|---|
| 93 | 11 ;  payment waived in partial | 
|---|
| 94 | D WRITEOFF^RCRJRCOC(BILLDA,VALUE,23) | 
|---|
| 95 | Q | 
|---|
| 96 | ; | 
|---|
| 97 | ; | 
|---|
| 98 | 12 ;  admin cost / charge | 
|---|
| 99 | ;  interest/admin added | 
|---|
| 100 | I INTEREST>0 D SETTOTAL(40,INTEREST,0) | 
|---|
| 101 | I ADMIN>0 D SETTOTAL(41,ADMIN,0) | 
|---|
| 102 | ;  interest/admin cost exempt | 
|---|
| 103 | I INTEREST<0 D SETTOTAL(42,-INTEREST,0) | 
|---|
| 104 | I ADMIN<0 D SETTOTAL(42,-ADMIN,0) | 
|---|
| 105 | Q | 
|---|
| 106 | ; | 
|---|
| 107 | ; | 
|---|
| 108 | 13 ;  interest / admin charge | 
|---|
| 109 | D 12 | 
|---|
| 110 | Q | 
|---|
| 111 | ; | 
|---|
| 112 | ; | 
|---|
| 113 | 14 ;  exempt interest / admin cost | 
|---|
| 114 | D SETTOTAL(42,INTEREST,0) | 
|---|
| 115 | Q | 
|---|
| 116 | ; | 
|---|
| 117 | ; | 
|---|
| 118 | 34 ;  payment in full | 
|---|
| 119 | D 2 | 
|---|
| 120 | ;  decrease in number of debts | 
|---|
| 121 | I '$D(^TMP($J,"RCRJRCOL","COUNT",BILLDA,17)) D SETTOTAL(17,0,0) | 
|---|
| 122 | Q | 
|---|
| 123 | ; | 
|---|
| 124 | ; | 
|---|
| 125 | 35 ;  decrease adjustment | 
|---|
| 126 | N CONTRACT | 
|---|
| 127 | ;  contractual adjustment (field #88) | 
|---|
| 128 | S CONTRACT=$P($G(^PRCA(433,TRANDA,8)),"^",8) | 
|---|
| 129 | I CONTRACT D WRITEOFF^RCRJRCOC(BILLDA,VALUE,20) Q | 
|---|
| 130 | D SETTOTAL(16,PRINBAL,0) | 
|---|
| 131 | Q | 
|---|
| 132 | ; | 
|---|
| 133 | ; | 
|---|
| 134 | 41 ;  refund | 
|---|
| 135 | D SETTOTAL(43,PRINBAL,0) | 
|---|
| 136 | Q | 
|---|
| 137 | ; | 
|---|
| 138 | ; | 
|---|
| 139 | 43 ;  re-establishment | 
|---|
| 140 | D SETTOTAL(13,PRINBAL,INTEREST+ADMIN) | 
|---|
| 141 | Q | 
|---|
| 142 | ; | 
|---|
| 143 | ; | 
|---|
| 144 | SETTOTAL(CRITER2,AMOUNT,INTEREST) ;  store results | 
|---|
| 145 | N RSC,TYPE | 
|---|
| 146 | ; | 
|---|
| 147 | ;  this line of code will prevent duplicate counts if a sites cross | 
|---|
| 148 | ;  references in file 430 (actdt and asdt) are duplicated (incorrect) | 
|---|
| 149 | I CRITER2<13,$D(^TMP($J,"RCRJRCOL","COUNT",BILLDA,CRITER2)) Q | 
|---|
| 150 | ; | 
|---|
| 151 | ;  get a bills criteria 1,3,4,5 | 
|---|
| 152 | S CRITERIA=$G(^TMP($J,"RCRJRCOL","CRITERIA",BILLDA)) | 
|---|
| 153 | I CRITERIA="" S CRITERIA=$$CRITERIA^RCRJRCOL(BILLDA),^TMP($J,"RCRJRCOL","CRITERIA",BILLDA)=CRITERIA | 
|---|
| 154 | ; | 
|---|
| 155 | ;  store for ndb | 
|---|
| 156 | S $P(CRITERIA,"-",2)=CRITER2 | 
|---|
| 157 | ; | 
|---|
| 158 | ;  store results for ndb | 
|---|
| 159 | S %=$G(@DATASTOR) | 
|---|
| 160 | S $P(%,"^")=$P(%,"^")+1 | 
|---|
| 161 | S $P(%,"^",2)=$P(%,"^",2)+AMOUNT | 
|---|
| 162 | S $P(%,"^",3)=$P(%,"^",3)+INTEREST | 
|---|
| 163 | S @DATASTOR=% | 
|---|
| 164 | ; | 
|---|
| 165 | ;  keep a count of which category (criter2) a bill is counted in | 
|---|
| 166 | S ^TMP($J,"RCRJRCOL","COUNT",BILLDA,CRITER2)="" | 
|---|
| 167 | S ^TMP($J,"RCRJRCOL","CRIT2",CRITER2,BILLDA)="" | 
|---|
| 168 | ; | 
|---|
| 169 | ;  pick up bills with activity which may not have been picked up as | 
|---|
| 170 | ;  a current receivable because of the wrong status date | 
|---|
| 171 | I CRITER2>13,CRITER2'=17,'$D(^TMP($J,"RCRJRCOL","COUNT",BILLDA,1)),'$D(^TMP($J,"RCRJRCOL","COUNT",BILLDA,17)) D CURRENT^RCRJRCOB(BILLDA,DATEEND,AYEAROLD) | 
|---|
| 172 | Q | 
|---|