| 1 | RCBECHGU ;WISC/RFJ-process the charges to bill (called by rcbechgs)  ;1 Jun 00 | 
|---|
| 2 | ;;4.5;Accounts Receivable;**153**;Mar 20, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | ADDCHARG ;  this is called by rcbechgs and is a continuation of that routine | 
|---|
| 8 | ;  variables passed to this entry point: | 
|---|
| 9 | ;    rcupdate = the fm date that charges are being added | 
|---|
| 10 | ;    rcdata0  = debtor file entry 0th node | 
|---|
| 11 | ; | 
|---|
| 12 | N COMMENT,DR,RCBILLDA,RCDATA,RCDATE,RCLINE,RCTRANDA,RCTRDATE,VALUE,X | 
|---|
| 13 | ; | 
|---|
| 14 | ;  for first party charges, the 433 transaction date must be 3 days | 
|---|
| 15 | ;  prior to the statement date so the charges will appear on the | 
|---|
| 16 | ;  patient statement (statement date is the variable rcupdate) | 
|---|
| 17 | S RCTRDATE=RCUPDATE | 
|---|
| 18 | I $P(RCDATA0,"^")["DPT(" S RCTRDATE=$$FMADD^XLFDT(RCUPDATE,-3) | 
|---|
| 19 | ; | 
|---|
| 20 | S RCBILLDA=0 F  S RCBILLDA=$O(^TMP("RCBECHGS",$J,"ADDCHG",RCBILLDA)) Q:'RCBILLDA  D | 
|---|
| 21 | .   S RCDATA=^TMP("RCBECHGS",$J,"ADDCHG",RCBILLDA) | 
|---|
| 22 | .   ;  pass the value = interest ^ admin ^ penalty | 
|---|
| 23 | .   S VALUE=+$P(RCDATA,"^",1)_"^"_$P(RCDATA,"^",2)_"^"_$P(RCDATA,"^",3) | 
|---|
| 24 | .   ;  no value for interest or admin | 
|---|
| 25 | .   I '$P(VALUE,"^"),'$P(VALUE,"^",2),'$P(VALUE,"^",3) Q | 
|---|
| 26 | .   ;  pass the comments, admin comment (p4) and penalty comment (p5) | 
|---|
| 27 | .   S COMMENT="",RCLINE=1 | 
|---|
| 28 | .   I $P(RCDATA,"^",4)'="" S COMMENT(RCLINE)="Admin   Reason: "_$P(RCDATA,"^",4),RCLINE=2 | 
|---|
| 29 | .   I $P(RCDATA,"^",5)'="" S COMMENT(RCLINE)="Penalty Reason: "_$P(RCDATA,"^",5) | 
|---|
| 30 | .   ;  lock the bill, this lock cannot fail | 
|---|
| 31 | .   L +^PRCA(430,RCBILLDA) | 
|---|
| 32 | .   ; | 
|---|
| 33 | .   ;  add the int/admin transaction | 
|---|
| 34 | .   S RCTRANDA=$$INTADM^RCBEUTR1(RCBILLDA,VALUE,.COMMENT,RCTRDATE) | 
|---|
| 35 | .   I 'RCTRANDA L -^PRCA(430,RCBILLDA) Q | 
|---|
| 36 | .   ; | 
|---|
| 37 | .   ;  set key fields in file 430 | 
|---|
| 38 | .   S DR="" | 
|---|
| 39 | .   ;  interest last updated | 
|---|
| 40 | .   I $P(RCDATA,"^",1) S DR=DR_".11////"_RCUPDATE_";" | 
|---|
| 41 | .   ;  admin last updated | 
|---|
| 42 | .   I $P(RCDATA,"^",2) S DR=DR_".12////"_RCUPDATE_";" | 
|---|
| 43 | .   ;  penalty last updated | 
|---|
| 44 | .   I $P(RCDATA,"^",3) S DR=DR_".13////"_RCUPDATE_";" | 
|---|
| 45 | .   S X=$$EDIT430^RCBEUBIL(RCBILLDA,DR) | 
|---|
| 46 | .   ; | 
|---|
| 47 | .   ;  set date admin applied to account in file 340 | 
|---|
| 48 | .   S DR=".12////"_RCUPDATE_";" | 
|---|
| 49 | .   S X=$$EDIT340^RCBEUDEB(+$P(^PRCA(430,RCBILLDA,0),"^",9),DR) | 
|---|
| 50 | .   ;  clear the lock on the bill | 
|---|
| 51 | .   L -^PRCA(430,RCBILLDA) | 
|---|
| 52 | .   ; | 
|---|
| 53 | .   ;  set tmp for mailman message, sort by date prepared | 
|---|
| 54 | .   S RCDATE=+$P(^PRCA(430,RCBILLDA,0),"^",10) | 
|---|
| 55 | .   S ^TMP("RCBECHGS REPORT",$J,RCDATE,RCBILLDA)=$P(RCDATA,"^")_"^"_$P(RCDATA,"^",2)_"^"_$P(RCDATA,"^",3)_"^"_RCTRANDA | 
|---|
| 56 | Q | 
|---|
| 57 | ; | 
|---|
| 58 | ; | 
|---|
| 59 | REPORT ;  build report in mailman | 
|---|
| 60 | N MMDATA,RCBILLDA,RCDATA,RCDATE,RCLINE,RCSPACE,RCTOTAL,RCUPDATE,X,XMDUN,XMY | 
|---|
| 61 | K ^TMP($J,"RCRJRCORMM") | 
|---|
| 62 | S RCSPACE=$J("",79) | 
|---|
| 63 | S RCTOTAL="" | 
|---|
| 64 | S RCLINE=2 | 
|---|
| 65 | S RCDATE="" F  S RCDATE=$O(^TMP("RCBECHGS REPORT",$J,RCDATE)) Q:RCDATE=""  D | 
|---|
| 66 | .   S RCBILLDA=0 F  S RCBILLDA=$O(^TMP("RCBECHGS REPORT",$J,RCDATE,RCBILLDA)) Q:'RCBILLDA  D | 
|---|
| 67 | .   .   S RCDATA=^TMP("RCBECHGS REPORT",$J,RCDATE,RCBILLDA) | 
|---|
| 68 | .   .   ;  bill number | 
|---|
| 69 | .   .   S MMDATA=$E($P($P($G(^PRCA(430,RCBILLDA,0)),"^"),"-",2)_RCSPACE,1,10) | 
|---|
| 70 | .   .   ;  date bill prepared | 
|---|
| 71 | .   .   S MMDATA=MMDATA_$E($$FORMATDT^RCBECHGA(RCDATE)_RCSPACE,1,10) | 
|---|
| 72 | .   .   ;  transaction with charges added | 
|---|
| 73 | .   .   S MMDATA=MMDATA_$E($P(RCDATA,"^",4)_RCSPACE,1,10) | 
|---|
| 74 | .   .   ;  date of update (transaction date) | 
|---|
| 75 | .   .   S RCUPDATE=$P($G(^PRCA(433,+$P(RCDATA,"^",4),1)),"^") | 
|---|
| 76 | .   .   S MMDATA=MMDATA_$E($$FORMATDT^RCBECHGA(RCUPDATE)_RCSPACE,1,10) | 
|---|
| 77 | .   .   ;  justify dollar amount 10 places with 2 decimal places, | 
|---|
| 78 | .   .   ;  if no interest, admin, penalty, then set to null | 
|---|
| 79 | .   .   ;  total dollars for end of report | 
|---|
| 80 | .   .   F X=1:1:3 D | 
|---|
| 81 | .   .   .   S $P(RCTOTAL,"^",X)=$P(RCTOTAL,"^",X)+$P(RCDATA,"^",X) | 
|---|
| 82 | .   .   .   S $P(RCDATA,"^",X)=$S('$P(RCDATA,"^",X):$J("",12),1:$J($P(RCDATA,"^",X),12,2)) | 
|---|
| 83 | .   .   ;  interest charge | 
|---|
| 84 | .   .   S MMDATA=MMDATA_$P(RCDATA,"^",1) | 
|---|
| 85 | .   .   ;  admin charge | 
|---|
| 86 | .   .   S MMDATA=MMDATA_$P(RCDATA,"^",2) | 
|---|
| 87 | .   .   ;  penalty charge | 
|---|
| 88 | .   .   S MMDATA=MMDATA_$P(RCDATA,"^",3) | 
|---|
| 89 | .   .   S RCLINE=RCLINE+1 | 
|---|
| 90 | .   .   S ^TMP($J,"RCRJRCORMM",RCLINE,0)=MMDATA | 
|---|
| 91 | ; | 
|---|
| 92 | I RCLINE=2 S ^TMP($J,"RCRJRCORMM",1,0)="No interest, administrative, or penalty charges added on "_$$FMTE^XLFDT($$NOW^XLFDT)_"." | 
|---|
| 93 | ;  if charges added, build header | 
|---|
| 94 | I RCLINE'=2 D | 
|---|
| 95 | .   S ^TMP($J,"RCRJRCORMM",1,0)="BILL      DATEPREP  433TRANS  TRANDATE  "_$J("INTEREST",12)_$J("ADMIN",12)_$J("PENALTY",12) | 
|---|
| 96 | .   S ^TMP($J,"RCRJRCORMM",2,0)="------    --------  --------  --------  "_$J("--------",12)_$J("-----",12)_$J("-------",12) | 
|---|
| 97 | .   ;  build totals | 
|---|
| 98 | .   S RCLINE=RCLINE+1 | 
|---|
| 99 | .   S ^TMP($J,"RCRJRCORMM",RCLINE,0)=$E(RCSPACE,1,42)_"----------  ----------  ----------" | 
|---|
| 100 | .   S RCLINE=RCLINE+1 | 
|---|
| 101 | .   S ^TMP($J,"RCRJRCORMM",RCLINE,0)=$E(RCSPACE,1,30)_"TOTALS    "_$J($P(RCTOTAL,"^"),12,2)_$J($P(RCTOTAL,"^",2),12,2)_$J($P(RCTOTAL,"^",3),12,2) | 
|---|
| 102 | ; | 
|---|
| 103 | ;  send report | 
|---|
| 104 | S XMY("G.PRCA ADJUSTMENT TRANS")="" | 
|---|
| 105 | S X=$$SENDMSG^RCRJRCOR("AR Nightly Interest/Admin/Penalty Charges Added",.XMY) | 
|---|
| 106 | K ^TMP($J,"RCRJRCORMM") | 
|---|
| 107 | Q | 
|---|