[613] | 1 | RCBEADJI ;LL/ELZ-API FOR IB IN SETTLEMENT ;25-APR-2002
|
---|
| 2 | ;;4.5;Accounts Receivable;**180**;Mar 20, 1995
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | ;
|
---|
| 6 | DECREASE(RCBN,RCTEST,RCAMT) ; create a decrease adjustment for a bill
|
---|
| 7 | ; this will decreace the full balance and return info.
|
---|
| 8 | ;
|
---|
| 9 | ; input: RCBN = bill number
|
---|
| 10 | ; RCTEST = optional flag to indicate test mode only
|
---|
| 11 | ; RCAMT = optional specific amount to adjust
|
---|
| 12 | ;
|
---|
| 13 | ; output: -(error number) ^ error message
|
---|
| 14 | ; OR
|
---|
| 15 | ; decrease adjust DA ^ decrease amt ^ int amout ^ admin amt
|
---|
| 16 | ; ^ marshal amt ^ court amt
|
---|
| 17 | ;
|
---|
| 18 | ;
|
---|
| 19 | N RCBILLDA,RCBETYPE,RCTRANDA,STATUS,RCCAT,RCCATEG,RCRESP
|
---|
| 20 | S RCBETYPE="DECREASE",RCTEST=+$G(RCTEST)
|
---|
| 21 | ;
|
---|
| 22 | ; get bill ien
|
---|
| 23 | S RCBILLDA=$O(^PRCA(430,"D",RCBN,0))
|
---|
| 24 | I RCBILLDA<1 S RCRESP="-3^Bill Number Not Found" G DECQ
|
---|
| 25 | ;
|
---|
| 26 | ; bill must be active
|
---|
| 27 | S STATUS=$P($G(^PRCA(430,RCBILLDA,0)),"^",8)
|
---|
| 28 | I STATUS'=16,STATUS'=42 S RCRESP="-4^Bill Not Active" G DECQ
|
---|
| 29 | ;
|
---|
| 30 | ; determine if bill can be adjusted based on category
|
---|
| 31 | D RCCAT^RCRCUTL(.RCCAT) ;returns rccat(category) array
|
---|
| 32 | S RCCATEG=+$P(^PRCA(430,RCBILLDA,0),"^",2)
|
---|
| 33 | I +$G(RCCAT(RCCATEG))=1,$$REFST^RCRCUTL(RCBILLDA) S RCRESP="-5^Bill is Referred" G DECQ
|
---|
| 34 | I RCCATEG=26 S RCRESP="-6^No Pre-Payment Bills" G DECQ
|
---|
| 35 | ;
|
---|
| 36 | ;
|
---|
| 37 | ; adjust the bill
|
---|
| 38 | S RCRESP=$$ADJBILL(RCBETYPE,RCBILLDA,$G(RCAMT))
|
---|
| 39 | ;
|
---|
| 40 | DECQ Q RCRESP
|
---|
| 41 | ;
|
---|
| 42 | ;
|
---|
| 43 | ADJBILL(RCBETYPE,RCBILLDA,RCAMT) ; adjust a bill
|
---|
| 44 | N RCAMOUNT,RCBALANC,RCDATA7,RCONTADJ,RCTRANDA,I,X,Y,RCINT,RCCOM,RCERR
|
---|
| 45 | ; lock the bill
|
---|
| 46 | L +^PRCA(430,RCBILLDA):5 I '$T Q "-7^Bill is Locked"
|
---|
| 47 | ;
|
---|
| 48 | ;
|
---|
| 49 | ; check the balance of the bill
|
---|
| 50 | S RCBALANC=$$OUTOFBAL^RCBDBBAL(RCBILLDA)
|
---|
| 51 | ;
|
---|
| 52 | ; out of balance
|
---|
| 53 | I RCBALANC'="" D UNLOCK Q "-8^Bill is Out of Balance"
|
---|
| 54 | ;
|
---|
| 55 | ; if the principal balance is zero, do not allow it to be adjusted
|
---|
| 56 | ; close/cancel it
|
---|
| 57 | I '$G(^PRCA(430,RCBILLDA,7)) S RCINT=$$INTADMIN(RCBILLDA,RCTEST) D UNLOCK Q "-9^No Principal to Decrease^"_RCINT
|
---|
| 58 | ;
|
---|
| 59 | ; adjustment amount
|
---|
| 60 | S RCAMOUNT=$$AMOUNT(RCBILLDA)
|
---|
| 61 | S RCAMOUNT=$S(RCAMT&(RCAMT'>RCAMOUNT):RCAMT,1:RCAMOUNT)
|
---|
| 62 | I RCAMOUNT<.01 D UNLOCK Q "-10^No Amount Returned"
|
---|
| 63 | ;
|
---|
| 64 | ; make negative
|
---|
| 65 | S RCAMOUNT=-RCAMOUNT
|
---|
| 66 | ;
|
---|
| 67 | ; if it is a contract adjustment
|
---|
| 68 | I "^9^28^29^30^32^"[("^"_$P($G(^PRCA(430,RCBILLDA,0)),"^",2)_"^") S RCONTADJ=1
|
---|
| 69 | ;
|
---|
| 70 | ;
|
---|
| 71 | S RCDATA7=$G(^PRCA(430,RCBILLDA,7))
|
---|
| 72 | ;
|
---|
| 73 | ; add adjustment
|
---|
| 74 | I 'RCTEST S RCTRANDA=$$INCDEC^RCBEUTR1(RCBILLDA,RCAMOUNT,"","","",$G(RCONTADJ))
|
---|
| 75 | I 'RCTEST,'RCTRANDA D UNLOCK Q "-11^Adjustment NOT Processed"
|
---|
| 76 | ;
|
---|
| 77 | ; mark flag for settlement
|
---|
| 78 | I 'RCTEST S $P(^PRCA(433,RCTRANDA,9),"^",3)=1
|
---|
| 79 | ;
|
---|
| 80 | ; enter a comment
|
---|
| 81 | S RCCOM(1,0)="Hartford/USAA Litigation Settlement."
|
---|
| 82 | I 'RCTEST D WP^DIE(433,RCTRANDA_",",41,"","RCCOM","RCERR")
|
---|
| 83 | I $D(RCERR) D UNLOCK Q "-12^Comment Error"
|
---|
| 84 | ;
|
---|
| 85 | ; exempt interest and admin charges
|
---|
| 86 | S RCINT=$S(RCTEST:$$INTADMIN(RCBILLDA,RCTEST),$$AMOUNT(RCBILLDA):"0^0^0^0",1:$$INTADMIN(RCBILLDA,RCTEST))
|
---|
| 87 | ;
|
---|
| 88 | ;
|
---|
| 89 | D UNLOCK
|
---|
| 90 | Q $G(RCTRANDA)_"^"_(-$G(RCAMOUNT))_"^"_$G(RCINT)
|
---|
| 91 | ;
|
---|
| 92 | ;
|
---|
| 93 | UNLOCK ; unlock bill and transaction
|
---|
| 94 | L -^PRCA(430,RCBILLDA)
|
---|
| 95 | I $G(RCTRANDA) L -^PRCA(433,RCTRANDA)
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | ;
|
---|
| 99 | INTADMIN(RCBILLDA,RCTEST) ; adjust the interest and admin
|
---|
| 100 | ;
|
---|
| 101 | ; Return is the amounts adjusted:
|
---|
| 102 | ; interest ^ admin ^ marshal ^ court
|
---|
| 103 | ;
|
---|
| 104 | ; OR if error: - (error number) ^ error message
|
---|
| 105 | ;
|
---|
| 106 | N RCAMOUNT,RCTRANDA,Y,X
|
---|
| 107 | ;
|
---|
| 108 | ; check to see if there is interest and admin charges
|
---|
| 109 | S RCAMOUNT=$G(^PRCA(430,RCBILLDA,7))
|
---|
| 110 | I '$P(RCAMOUNT,"^",2),'$P(RCAMOUNT,"^",3),'$P(RCAMOUNT,"^",4),'$P(RCAMOUNT,"^",5) Q "0^0^0^0"
|
---|
| 111 | ;
|
---|
| 112 | ; only if there is no principal
|
---|
| 113 | I 'RCTEST,RCAMOUNT Q "-13^balance still there"
|
---|
| 114 | ;
|
---|
| 115 | ;
|
---|
| 116 | I 'RCTEST S RCTRANDA=$$EXEMPT^RCBEUTR2(RCBILLDA,$P(RCAMOUNT,"^",2)_"^"_$P(RCAMOUNT,"^",3)_"^^"_$P(RCAMOUNT,"^",4)_"^"_$P(RCAMOUNT,"^",5))
|
---|
| 117 | I 'RCTEST,'RCTRANDA Q "-14^Error processing exemption"
|
---|
| 118 | ;
|
---|
| 119 | ; flag transaction for settlement
|
---|
| 120 | I 'RCTEST S $P(^PRCA(433,RCTRANDA,9),"^",3)=1
|
---|
| 121 | ;
|
---|
| 122 | Q $P(RCAMOUNT,"^",2)_"^"_$P(RCAMOUNT,"^",3)_"^^"_$P(RCAMOUNT,"^",4)_"^"_$P(RCAMOUNT,"^",5)
|
---|
| 123 | ;
|
---|
| 124 | ;
|
---|
| 125 | ;
|
---|
| 126 | ;
|
---|
| 127 | ADJNUM(RCBILLDA) ; get next adjustment number for a bill
|
---|
| 128 | N ADJUST,DATA1,RCTRANDA
|
---|
| 129 | S RCTRANDA=0
|
---|
| 130 | F S RCTRANDA=$O(^PRCA(433,"C",RCBILLDA,RCTRANDA)) Q:'RCTRANDA S DATA1=$G(^PRCA(433,RCTRANDA,1)) I $P(DATA1,"^",4),$P(DATA1,"^",2)=1!($P(DATA1,"^",2)=35) S ADJUST=$P(DATA1,"^",4)+1
|
---|
| 131 | Q ADJUST
|
---|
| 132 | ;
|
---|
| 133 | ;
|
---|
| 134 | AMOUNT(RCBILLDA) ; adjustment amount for a bill
|
---|
| 135 | ;
|
---|
| 136 | Q +$P($G(^PRCA(430,RCBILLDA,7)),"^")
|
---|
| 137 | ;
|
---|
| 138 | TEST ; This entry point is only to be used for testing and NEVER in a
|
---|
| 139 | ; production system. This will make all the referred bills in the
|
---|
| 140 | ; 430 file that are referred appear to no longer be referred.
|
---|
| 141 | N IBA,IBB,DIE,DA,DR
|
---|
| 142 | S IBA=0 F S IBA=$O(^PRCA(430,"AD",IBA)) Q:IBA<1 S IBB=0 F S IBB=$O(^PRCA(430,"AD",IBA,IBB)) Q:IBB<1 S DIE="^PRCA(430,",DA=IBB,DR="64///@" D ^DIE W "."
|
---|
| 143 | Q
|
---|