| 1 | RCBEPAYC ;WISC/RFJ-check a payment before processing                 ;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 | CHECKPAY(RCRECTDA,RCPAYDA) ;  check a payment before processing.  this call | 
|---|
| 8 | ;  is normally used to check a payment and verify that the billed | 
|---|
| 9 | ;  amount is not less than the paid amount. | 
|---|
| 10 | ;  returns 1^error if the payment cannot be processed | 
|---|
| 11 | ; | 
|---|
| 12 | N RCACCT,RCBILAMT,RCDATA,RCPAYAMT,X | 
|---|
| 13 | ; | 
|---|
| 14 | S RCDATA=$G(^RCY(344,RCRECTDA,1,RCPAYDA,0)) | 
|---|
| 15 | I RCDATA="" Q "1^Unable to find payment" | 
|---|
| 16 | ; | 
|---|
| 17 | S RCACCT=$P(RCDATA,"^",3) | 
|---|
| 18 | I RCACCT="" Q "1^Account not defined" | 
|---|
| 19 | ; | 
|---|
| 20 | ;  get the payment amount (amount paid minus amount processed) | 
|---|
| 21 | ;  if no payment amount, do not return error | 
|---|
| 22 | S RCPAYAMT=$P(RCDATA,"^",4)-$P(RCDATA,"^",5) I RCPAYAMT'>0 Q 0 | 
|---|
| 23 | ; | 
|---|
| 24 | ;  if first party bill, everything is ok, quit | 
|---|
| 25 | I $P(RCDATA,"^",3)["DPT(" Q 0 | 
|---|
| 26 | I $P(RCDATA,"^",3)["PRCA(430,",$P($G(^RCD(340,+$P($G(^PRCA(430,+$P(RCDATA,"^",3),0)),"^",9),0)),"^")["DPT(" Q 0 | 
|---|
| 27 | ; | 
|---|
| 28 | ;  === third party bills === | 
|---|
| 29 | ; | 
|---|
| 30 | ;  bill not activated or open | 
|---|
| 31 | S X=$P($G(^PRCA(430,+$P(RCDATA,"^",3),0)),"^",8) | 
|---|
| 32 | I X'=42,X'=16 Q "1^Bill not activated or open" | 
|---|
| 33 | ; | 
|---|
| 34 | ;  calculate dollars on receivable | 
|---|
| 35 | S X=$G(^PRCA(430,+$P(RCDATA,"^",3),7)) | 
|---|
| 36 | S RCBILAMT=$P(X,"^")+$P(X,"^",2)+$P(X,"^",3)+$P(X,"^",4)+$P(X,"^",5) | 
|---|
| 37 | ; | 
|---|
| 38 | ;  does the payment exceed the billed amount? | 
|---|
| 39 | ;  pending payments is not greater than bill balance, payment ok, quit | 
|---|
| 40 | I RCPAYAMT'>RCBILAMT Q 0 | 
|---|
| 41 | ; | 
|---|
| 42 | ;  pending payments exceed balance of the bill, return error | 
|---|
| 43 | Q "1^Pending Payments of "_$J(RCPAYAMT,0,2)_" is greater than the balance of the bill "_$J(RCBILAMT,0,2) | 
|---|