1 | RCBEPAY2 ;WISC/RFJ-create a payment transaction cont ;1 Jun 00
|
---|
2 | ;;4.5;Accounts Receivable;**153,162**;Mar 20, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | SET ; set the transactions and balances (continuation of rcbepay1)
|
---|
8 | N COMMENT,DR,RCDATA3,RCLINE,RCREPAMT,RCREPDA,RCTOTAL,RCTYPE,X
|
---|
9 | ;
|
---|
10 | ; no payment amount
|
---|
11 | S RCTOTAL=$G(RCPAY("PRIN"))+$G(RCPAY("INT"))+$G(RCPAY("ADM"))+$G(RCPAY("MF"))+$G(RCPAY("CC"))
|
---|
12 | I 'RCTOTAL S RCTRANDA="0^Bill has no balance, no payment made" Q
|
---|
13 | ;
|
---|
14 | ; create 433 transaction for bill, transaction type = payment (2)
|
---|
15 | ; the transaction will be locked
|
---|
16 | S RCTRANDA=$$ADD433^RCBEUTRA(RCBILLDA,2)
|
---|
17 | I 'RCTRANDA S RCTRANDA="0^Unable to add a payment transaction to file 433" Q
|
---|
18 | ; 433 transaction added and lock applied
|
---|
19 | ;
|
---|
20 | ; edit/setup fields for 433 transaction. 11=payment date
|
---|
21 | ; 13=receipt number; 15=trasaction amount; 7=rcdoj code
|
---|
22 | ; 5.02=brief comment = deposit / receipt / payment #
|
---|
23 | S DR="11////"_RCPAYDAT_";"
|
---|
24 | S DR=DR_"15////"_RCTOTAL_";"
|
---|
25 | ; if receipt is passed, set fields for receipt
|
---|
26 | ; note: a receipt is not passed if posting from a prepayment
|
---|
27 | S X=$G(^RCY(344,+RCRECTDA,0)) I X'="" D
|
---|
28 | . S DR=DR_"13////"_$P(X,"^")_";"
|
---|
29 | . S DR=DR_"5.02////"_$P($G(^RCY(344.1,+$P(X,"^",6),0)),"^")_" / "_$P(X,"^")_" / "_RCPAYDA_";"
|
---|
30 | ;
|
---|
31 | ; determine if DOJ, RC, TOP, or IRS payment
|
---|
32 | S RCTYPE=$P($G(^RC(341.1,+$P($G(^RCY(344,+RCRECTDA,0)),"^",4),0)),"^",2)
|
---|
33 | S RCTYPE=$S(RCTYPE=5:"DOJ",RCTYPE=3:"RC",RCTYPE=13:"TOP",RCTYPE=11:"IRS",1:"")
|
---|
34 | I RCTYPE="" S RCTYPE=$P($G(^PRCA(430,RCBILLDA,6)),"^",5)
|
---|
35 | I RCTYPE'="" S:RCTYPE="DC" RCTYPE="RC" S DR=DR_"7////"_RCTYPE_";"
|
---|
36 | S X=$$EDIT433^RCBEUTRA(RCTRANDA,DR)
|
---|
37 | I 'X S RCTRANDA="0^Unable to set fields for transaction "_RCTRANDA L -^PRCA(433,RCTRANDA) Q
|
---|
38 | ;
|
---|
39 | ; if TOP, decrement current top debt amount (field 4.03 in file 340)
|
---|
40 | I RCTYPE="TOP" D TOPAMT^RCBEUDEB(RCBILLDA,-RCTOTAL)
|
---|
41 | ;
|
---|
42 | ; if there is a repayment plan, set as being paid in file 430
|
---|
43 | ; loop thru all repayment plans and keep paying them off till
|
---|
44 | ; you run out of money. this code is for double payments.
|
---|
45 | S RCREPAMT=$P($G(^PRCA(430,RCBILLDA,4)),"^",3)
|
---|
46 | ; is there a repayment amount and is the total amt equal to
|
---|
47 | ; or greater than the expected repayment amount?
|
---|
48 | I RCREPAMT,RCTOTAL'<RCREPAMT D
|
---|
49 | . S RCREPDA=0 F S RCREPDA=$O(^PRCA(430,RCBILLDA,5,RCREPDA)) Q:'RCREPDA D I 'RCREPDA Q
|
---|
50 | . . I +$P($G(^PRCA(430,RCBILLDA,5,RCREPDA,0)),"^",2)=1 Q
|
---|
51 | . . S $P(^PRCA(430,RCBILLDA,5,RCREPDA,0),"^",2,4)="1^0^"_RCTRANDA
|
---|
52 | . . S RCTOTAL=RCTOTAL-RCREPAMT I RCTOTAL<RCREPAMT S RCREPDA=0
|
---|
53 | ;
|
---|
54 | ; set 433 transaction with payment amounts
|
---|
55 | S RCDATA3=""
|
---|
56 | S $P(RCDATA3,"^",1)=$G(RCPAY("PRIN")) ; amount paid principal
|
---|
57 | S $P(RCDATA3,"^",2)=$G(RCPAY("INT")) ; amount paid interest
|
---|
58 | S $P(RCDATA3,"^",3)=$G(RCPAY("ADM")) ; amount paid admin
|
---|
59 | S $P(RCDATA3,"^",4)=$G(RCPAY("MF")) ; amount paid marshal fee
|
---|
60 | S $P(RCDATA3,"^",5)=$G(RCPAY("CC")) ; amount paid court cost
|
---|
61 | S ^PRCA(433,RCTRANDA,3)=RCDATA3
|
---|
62 | ;
|
---|
63 | ; set 430 bill balance amounts
|
---|
64 | S $P(RCDATA7,"^",1)=$P(RCDATA7,"^",1)-$G(RCPAY("PRIN")) ; principal
|
---|
65 | S $P(RCDATA7,"^",2)=$P(RCDATA7,"^",2)-$G(RCPAY("INT")) ; interest
|
---|
66 | S $P(RCDATA7,"^",3)=$P(RCDATA7,"^",3)-$G(RCPAY("ADM")) ; admin
|
---|
67 | S $P(RCDATA7,"^",4)=$P(RCDATA7,"^",4)-$G(RCPAY("MF")) ; marshal fee
|
---|
68 | S $P(RCDATA7,"^",5)=$P(RCDATA7,"^",5)-$G(RCPAY("CC")) ; court cost
|
---|
69 | ;
|
---|
70 | ; set 430 amounts paid
|
---|
71 | S $P(RCDATA7,"^",7)=$P(RCDATA7,"^",7)+$G(RCPAY("PRIN")) ; principal
|
---|
72 | S $P(RCDATA7,"^",8)=$P(RCDATA7,"^",8)+$G(RCPAY("INT")) ; interest
|
---|
73 | S $P(RCDATA7,"^",9)=$P(RCDATA7,"^",9)+$G(RCPAY("ADM")) ; admin
|
---|
74 | S $P(RCDATA7,"^",10)=$P(RCDATA7,"^",10)+$G(RCPAY("MF")) ; marshal fee
|
---|
75 | S $P(RCDATA7,"^",11)=$P(RCDATA7,"^",11)+$G(RCPAY("CC")) ; court cost
|
---|
76 | S ^PRCA(430,RCBILLDA,7)=RCDATA7
|
---|
77 | ;
|
---|
78 | ; set new bill balances in 433 (for reference)
|
---|
79 | S $P(^PRCA(433,RCTRANDA,8),"^",1,5)=$P(RCDATA7,"^",1,5)
|
---|
80 | ;
|
---|
81 | ; if the bill has no balance, set as being paid in full
|
---|
82 | S X=$P(RCDATA7,"^")+$P(RCDATA7,"^",2)+$P(RCDATA7,"^",3)+$P(RCDATA7,"^",4)+$P(RCDATA7,"^",5)
|
---|
83 | I 'X D
|
---|
84 | . ; change the status to collected/closed (22)
|
---|
85 | . D CHGSTAT^RCBEUBIL(RCBILLDA,22)
|
---|
86 | . ;
|
---|
87 | . ; change the transaction type in file 433 to payment in full
|
---|
88 | . S DR="12////34;"
|
---|
89 | . S X=$$EDIT433^RCBEUTRA(RCTRANDA,DR)
|
---|
90 | . ;
|
---|
91 | . ; if third party bill (with no balance) generate ib bulletin
|
---|
92 | . ; look at field 5 in 430.2 to determine type of bill based
|
---|
93 | . ; on category
|
---|
94 | . I $P($G(^PRCA(430.2,+$P(^PRCA(430,RCBILLDA,0),"^",2),0)),"^",6)="T" D
|
---|
95 | . . D BULL^IBCNSBL2(RCBILLDA,$P(^PRCA(430,RCBILLDA,0),"^",3),$$PAID^PRCAFN1(RCBILLDA))
|
---|
96 | . . N PRCABN,PRCAEN
|
---|
97 | . . S PRCABN=RCBILLDA,PRCAEN=RCTRANDA
|
---|
98 | . . D PF^RCRCAT("P")
|
---|
99 | ;
|
---|
100 | ; add comment field to 433 (only if receipt passed)
|
---|
101 | S X=$G(^RCY(344,+RCRECTDA,1,+RCPAYDA,0))
|
---|
102 | I X'="" D
|
---|
103 | . S RCLINE=0
|
---|
104 | . I $P(X,"^",7)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Check#: "_$P(X,"^",7)
|
---|
105 | . I $P(X,"^",8)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Bank Routing#: "_$P(X,"^",8)
|
---|
106 | . I $P(X,"^",10)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Check Date: "_$E($P(X,"^",10),4,5)_"-"_$E($P(X,"^",10),6,7)_"-"_$E($P(X,"^",10),2,3)
|
---|
107 | . I $P(X,"^",13)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Check Acct: "_$P(X,"^",13)
|
---|
108 | . I $P(X,"^",11)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Credit Card: "_$P(X,"^",11)
|
---|
109 | . S X=$G(^RCY(344,RCRECTDA,1,RCPAYDA,2))
|
---|
110 | . I $P(X,"^",2)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Batch: "_$P(X,"^",2)
|
---|
111 | . I $P(X,"^",3)'="" S RCLINE=RCLINE+1,COMMENT(RCLINE)="Sequence: "_$P(X,"^",3)
|
---|
112 | . I $G(COMMENT(1))'="" D ADDCOMM^RCBEUTRA(RCTRANDA,.COMMENT)
|
---|
113 | ;
|
---|
114 | ; mark 433 transaction as processed
|
---|
115 | D PROCESS^RCBEUTRA(RCTRANDA)
|
---|
116 | ;
|
---|
117 | ; update 433 fy multiple
|
---|
118 | D FYMULT^RCBEUTRA(RCTRANDA)
|
---|
119 | ;
|
---|
120 | ; unlock 433 transaction
|
---|
121 | L -^PRCA(433,RCTRANDA)
|
---|
122 | Q
|
---|