1 | RCDPURET ;WISC/RFJ-receipt utilities (transactions) ;1 Jun 99
|
---|
2 | ;;4.5;Accounts Receivable;**114,141,169,173,196,221**;Mar 20, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | SELTRAN(DA) ; select a transaction for a receipt
|
---|
8 | ; returns -1 for timeout or ^, 0 for no selection, or ien of trans
|
---|
9 | N %,DIC,DTOUT,DUOUT,RCDATA,X,Y
|
---|
10 | S DIC="^RCY(344,"_DA_",1,",DIC(0)="QEAM",DIC("A")="Select Receipt TRANSACTION #: "
|
---|
11 | S DIC("W")="S RCDATA=@(DIC_Y_"",0)"") W:$P(RCDATA,U,3) ?8,"" "",$P(@(U_$P($P(RCDATA,U,3),"";"",2)_+$P(RCDATA,U,3)_"",0)""),U) W ?40,"" $ "",$J($P(RCDATA,U,4),0,2)"
|
---|
12 | D ^DIC
|
---|
13 | I Y<0,'$G(DTOUT),'$G(DUOUT) S Y=0
|
---|
14 | Q +Y
|
---|
15 | ;
|
---|
16 | ;
|
---|
17 | ADDTRAN(RECTDA) ; add transaction for receipt (in da)
|
---|
18 | N %DT,%T,D0,DA,DD,DI,DIC,DIE,DINUM,DLAYGO,DO,DQ,DR,X,Y
|
---|
19 | I '$D(^RCY(344,RECTDA,1,0)) S ^(0)="^344.01A^"
|
---|
20 | ;
|
---|
21 | ; find next transaction number
|
---|
22 | S X=$O(^RCY(344,RECTDA,1,9999999),-1)
|
---|
23 | F X=X+1:1 Q:'$D(^RCY(344,RECTDA,1,X,0))
|
---|
24 | S DINUM=X
|
---|
25 | ;
|
---|
26 | S DA(1)=RECTDA
|
---|
27 | S DIC="^RCY(344,"_RECTDA_",1,",DIC(0)="L",DLAYGO=344.01
|
---|
28 | S DIC("DR")=".12////"_DUZ_";.06///TODAY;"
|
---|
29 | D FILE^DICN
|
---|
30 | Q +Y
|
---|
31 | ;
|
---|
32 | ;
|
---|
33 | EDITTRAN(RECTDA,TRANDA) ; edit a receipt transaction
|
---|
34 | ; returns 1 for success, or 0 (error message)
|
---|
35 | I '$D(^RCY(344,RECTDA,1,TRANDA,0)) Q 0
|
---|
36 | ;
|
---|
37 | N %,%DT,%T,%Y,C,D,D0,D1,DA,DATA,DDH,DI,DIC,DICR,DIE,DIG,DIH,DIPGM,DIU,DIV,DIW,DG,DQ,DR,DZ,RCAMOUNT,RCTYPE,RESULT,X,Y
|
---|
38 | N RCXAMONT,RCXSUSP,RCXADJ,RCERA,RCADJ,RCXERA
|
---|
39 | ;
|
---|
40 | ; build dr string based on type of payment on receipt
|
---|
41 | S RCTYPE=$P($G(^RC(341.1,+$P(^RCY(344,RECTDA,0),"^",4),0)),"^",2)
|
---|
42 | S RCADJ=0,RCERA=+$O(^RCY(344.4,"AREC",RECTDA,0))
|
---|
43 | S DR=""
|
---|
44 | I RCERA,$D(^RCY(344.49,+RCERA,0)),$P(^RCY(344,RECTDA,1,TRANDA,0),"^",28) D ; Worklist has a dec adj associated with it
|
---|
45 | . N Z
|
---|
46 | . S Z=$$EXTERNAL^DILFD(344.01,.09,,$P($G(^RCY(344,RECTDA,1,TRANDA,0)),U,9))
|
---|
47 | . S RCADJ=1,RCXERA="W !,""NOTE: This payment has an EEOB Worklist dec adj associated with it."",!,""BILL NUMBER: "_Z_" (uneditable)""",DR="X RCXERA;"
|
---|
48 | E D
|
---|
49 | . ; patient name or bill number
|
---|
50 | . S DR=".09;"
|
---|
51 | S DR=DR_"S Y=$S('$P(^RCY(344,DA(1),1,DA,0),U,9):""@1"",1:""@2"");"
|
---|
52 | ; ask comment if no acct (unapplied)
|
---|
53 | S RCXSUSP="W !?5,""NOTE: This payment will be posted to the station's suspense fund."""
|
---|
54 | S DR=DR_"@1;X RCXSUSP;1.02;S Y=""@3"";"
|
---|
55 | ; payment amount
|
---|
56 | S RCXAMONT="W !,"" Amount Owed: $"",$J($$PAYDEF^RCDPURET($P(^RCY(344,DA(1),1,DA,0),U,9)),0,2)"
|
---|
57 | S DR=DR_"@2;X RCXAMONT;@3;.04;"
|
---|
58 | ; date of payment
|
---|
59 | S DR=DR_".06;"
|
---|
60 | ; type of payment = district counsel (3), check (4),
|
---|
61 | ; dept of justice (5), irs (11),
|
---|
62 | ; lockbox (12)
|
---|
63 | I RCTYPE=3!(RCTYPE=4)!(RCTYPE=5)!(RCTYPE=11)!(RCTYPE=12)!(RCTYPE=13) D
|
---|
64 | . S DR=DR_".07d;" ; check number
|
---|
65 | . S DR=DR_".08d;" ; bank number
|
---|
66 | . S DR=DR_".1d;" ; date of check
|
---|
67 | ; type of payment = credit card (7)
|
---|
68 | I RCTYPE=7 D
|
---|
69 | . S DR=DR_".11d;" ; credit card number
|
---|
70 | . S DR=DR_".02d;" ; confirmation number
|
---|
71 | ;
|
---|
72 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
73 | S DA=TRANDA,DA(1)=RECTDA
|
---|
74 | ; edited by
|
---|
75 | S DR=DR_".14////"_DUZ
|
---|
76 | D ^DIE
|
---|
77 | D LASTEDIT^RCDPUREC(RECTDA)
|
---|
78 | ;
|
---|
79 | ; check for missing fields
|
---|
80 | S DATA=^RCY(344,RECTDA,1,TRANDA,0)
|
---|
81 | S RESULT=1
|
---|
82 | I RESULT,'$P(DATA,"^",4) S RESULT="Payment Amount is ZERO."
|
---|
83 | I RESULT,'$P(DATA,"^",6) S RESULT="Date of Payment NOT entered."
|
---|
84 | I RESULT,RCTYPE=13,$$TRACE($P(DATA,"^",3))="" S RESULT="TOP TRACE NUMBER NOT ENTERED"
|
---|
85 | I RESULT,RCTYPE=7,$P(DATA,"^",11)="" W !,"WARNING: Credit Card Number NOT entered."
|
---|
86 | I RESULT,$P(DATA,"^",6)<$P(DATA,"^",10) W !,"WARNING: Date of check is greater than the date of payment."
|
---|
87 | ;
|
---|
88 | ; if field is missing, delete the transaction
|
---|
89 | I 'RESULT D DELETRAN(RECTDA,TRANDA)
|
---|
90 | ;
|
---|
91 | ; if transaction okay, print receipt
|
---|
92 | I RESULT D RECEIPT^RCDPRECT(RECTDA,TRANDA)
|
---|
93 | ;
|
---|
94 | Q RESULT
|
---|
95 | ;
|
---|
96 | ;
|
---|
97 | EDITACCT(RECTDA,TRANDA) ; edit the account on a receipt
|
---|
98 | N C,D,D0,D1,DA,DDH,DI,DIC,DICR,DIE,DIG,DIH,DIPGM,DISYS,DIU,DIV,DIW,DQ,DR,DZ,X
|
---|
99 | S DR=".09;"
|
---|
100 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
101 | S DA=TRANDA,DA(1)=RECTDA
|
---|
102 | D ^DIE
|
---|
103 | D LASTEDIT^RCDPUREC(RECTDA)
|
---|
104 | Q
|
---|
105 | ;
|
---|
106 | ;
|
---|
107 | DELEACCT(RECTDA,TRANDA) ; delete the account on a receipt
|
---|
108 | N D,D0,D1,DA,DI,DIC,DICR,DIE,DIG,DIH,DIU,DIV,DIW,DQ,DR,X
|
---|
109 | S DR=".09///@;.03///@;"
|
---|
110 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
111 | S DA=TRANDA,DA(1)=RECTDA
|
---|
112 | D ^DIE
|
---|
113 | D LASTEDIT^RCDPUREC(RECTDA)
|
---|
114 | Q
|
---|
115 | ;
|
---|
116 | ;
|
---|
117 | EDITFMS(RECTDA,TRANDA,DEFAULT) ; edit fms document number for clearing suspense
|
---|
118 | N C,D,D0,D1,DA,DDH,DI,DIC,DICR,DIE,DIG,DIH,DIPGM,DISYS,DIU,DIV,DIW,DQ,DR,DZ,X
|
---|
119 | S DR=".26;"
|
---|
120 | I $G(DEFAULT)'="" S DR=".26////"_DEFAULT_";"
|
---|
121 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
122 | S DA=TRANDA,DA(1)=RECTDA
|
---|
123 | D ^DIE
|
---|
124 | Q
|
---|
125 | ;
|
---|
126 | ;
|
---|
127 | MOVETRAN(RCOLDREC,RCOLDTRA,RCNEWREC) ; move a transactions data
|
---|
128 | N %DT,%T,D0,D1,DA,DG,DIC,DICR,DIK,DIU,RCNEWTRA,RESULT,X,Y
|
---|
129 | ;
|
---|
130 | ; add new transaction to 2nd receipt
|
---|
131 | W !,"Adding a NEW payment transaction to receipt "_$P(^RCY(344,RCNEWREC,0),"^")_": "
|
---|
132 | S RCNEWTRA=$$ADDTRAN(RCNEWREC)
|
---|
133 | I 'RCNEWTRA Q "Unable to ADD a new payment transaction."
|
---|
134 | ;
|
---|
135 | W "# ",RCNEWTRA
|
---|
136 | ;
|
---|
137 | ; move data to selected receipt and re-index entry
|
---|
138 | S ^RCY(344,RCNEWREC,1,RCNEWTRA,0)=RCNEWTRA_"^"_$P(^RCY(344,RCOLDREC,1,RCOLDTRA,0),"^",2,99)
|
---|
139 | S DIK="^RCY(344,"_RCNEWREC_",1,",DA(1)=RCNEWREC,DA=RCNEWTRA
|
---|
140 | D IX^DIK
|
---|
141 | ;
|
---|
142 | S RESULT=$$EDITTRAN(RCNEWREC,RCNEWTRA)
|
---|
143 | Q RESULT
|
---|
144 | ;
|
---|
145 | ;
|
---|
146 | CANCTRAN(RECTDA,RECTRAN) ; cancel a transaction
|
---|
147 | N D,D0,DA,DI,DIC,DIE,DQ,DR,RCDATA,X,Y
|
---|
148 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
149 | S RCDATA="Cancelled by: "_$P(^VA(200,DUZ,0),"^")_" Amount: $ "_$J($P(^RCY(344,RECTDA,1,RECTRAN,0),"^",4),0,2)
|
---|
150 | S DR="1.01////^S X=RCDATA;.04////^S X=0;.05////^S X=0;1.02;"
|
---|
151 | S DA=RECTRAN,DA(1)=RECTDA
|
---|
152 | D ^DIE
|
---|
153 | D LASTEDIT^RCDPUREC(RECTDA)
|
---|
154 | Q
|
---|
155 | ;
|
---|
156 | ;
|
---|
157 | DELETRAN(RECTDA,TRANDA) ; delete a transaction
|
---|
158 | N %,D0,D1,DA,DIC,DICR,DIG,DIH,DIK,DIU,DIV,DIW,X,Y
|
---|
159 | S DIK="^RCY(344,"_RECTDA_",1,",DA(1)=RECTDA,DA=TRANDA
|
---|
160 | D ^DIK
|
---|
161 | D LASTEDIT^RCDPUREC(RECTDA)
|
---|
162 | Q
|
---|
163 | ;
|
---|
164 | ;
|
---|
165 | SETUNAPP(RECTDA,TRANDA,UNAPPNUM) ; store the unapplied deposit number
|
---|
166 | N D,D0,DA,DI,DIC,DIE,DQ,DR,X,Y
|
---|
167 | S (DIC,DIE)="^RCY(344,"_RECTDA_",1,"
|
---|
168 | S DR=".25////"_UNAPPNUM_";"
|
---|
169 | S DA=TRANDA,DA(1)=RECTDA
|
---|
170 | D ^DIE
|
---|
171 | Q
|
---|
172 | ;
|
---|
173 | ;
|
---|
174 | PAYDEF(DEBTOR) ; get default for payment amount (used in input templates for payments)
|
---|
175 | N X
|
---|
176 | I 'DEBTOR Q 0
|
---|
177 | I DEBTOR[";DPT(" S X=$$BAL^PRCAFN(DEBTOR)
|
---|
178 | I DEBTOR[";PRCA(430,",",112,107,102,"[(","_$P($G(^PRCA(430.3,+$P($G(^PRCA(430,+DEBTOR,0)),"^",8),0)),"^",3)_",") S X=$G(^PRCA(430,+DEBTOR,7)),X=$P(X,"^")+$P(X,"^",2)+$P(X,"^",3)+$P(X,"^",4)+$P(X,"^",5)
|
---|
179 | Q +$G(X)
|
---|
180 | ;
|
---|
181 | ;
|
---|
182 | PENDPAY(DEBTOR) ; return pending payments for a debtor
|
---|
183 | ; returns ^tmp($j,"rcdpurec","pp",rectda,tranda)=data in 344.01
|
---|
184 | ; and the total pending payment dollars
|
---|
185 | N DATA,RECTDA,TOTAL,TRANDA
|
---|
186 | K ^TMP($J,"RCDPUREC","PP")
|
---|
187 | ; look at open receipts
|
---|
188 | S RECTDA=0 F S RECTDA=$O(^RCY(344,"ASTAT",1,RECTDA)) Q:'RECTDA D
|
---|
189 | . S TRANDA=0 F S TRANDA=$O(^RCY(344,"AACCT",DEBTOR,RECTDA,TRANDA)) Q:'TRANDA D
|
---|
190 | . . S DATA=$G(^RCY(344,RECTDA,1,TRANDA,0)) I DATA="" Q
|
---|
191 | . . ; total paid = total processed
|
---|
192 | . . I +$P(DATA,"^",4)=+$P(DATA,"^",5) Q
|
---|
193 | . . S ^TMP($J,"RCDPUREC","PP",RECTDA,TRANDA)=DATA
|
---|
194 | . . S TOTAL=$G(TOTAL)+$P(DATA,"^",4)
|
---|
195 | Q +$G(TOTAL)
|
---|
196 | TRACE(DEBTOR) ;ENTER TOP TRACE NUMBER FOR TOP RECEIPTS
|
---|
197 | N TRACE,DIC,DIE,DR,DA
|
---|
198 | S TRACE="" G TRACEQ:'DEBTOR
|
---|
199 | S DA=$S(DEBTOR["DPT(":$O(^RCD(340,"B",DEBTOR,0)),1:$P($G(^PRCA(430,+DEBTOR,0)),U,9))
|
---|
200 | G TRACEQ:'DA
|
---|
201 | S (DIC,DIE)="^RCD(340,",DR=6.07 D ^DIE
|
---|
202 | S TRACE=$P($G(^RCD(340,DA,6)),"^",7)
|
---|
203 | TRACEQ Q TRACE
|
---|