1 | RCDPAPST ;WISC/RFJ-account profile bill status select ;1 Jun 99
|
---|
2 | ;;4.5;Accounts Receivable;**114,168**;Mar 20, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | SELSTAT ; select a status called from listmanager
|
---|
8 | D FULL^VALM1
|
---|
9 | S VALMBCK="R"
|
---|
10 | ;
|
---|
11 | W !!,"This option will allow you to specify which bill statuses to display."
|
---|
12 | D GETSTAT(RCDEBTDA)
|
---|
13 | ;
|
---|
14 | D INIT^RCDPAPLM
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | ;
|
---|
18 | GETSTAT(RCDEBTDA) ; select the list of statuses of bills to display for an account
|
---|
19 | ; if rcdebtda passed, it will show selectable statuses for this account
|
---|
20 | N %,DIR,DIRUT,RCRJFLAG,RCSTAT,RCSTATSL,STATDA,STATLIST,X,Y
|
---|
21 | ;
|
---|
22 | ; get the status list for the user
|
---|
23 | D STATDEF
|
---|
24 | ;
|
---|
25 | ; build list of possible statuses for AR package (show statuses used)
|
---|
26 | S STATLIST=""
|
---|
27 | S STATDA=0 F S STATDA=$O(^PRCA(430,"ASDT",STATDA)) Q:'STATDA D
|
---|
28 | . S RCSTAT(STATDA)=$P($G(^PRCA(430.3,STATDA,0)),"^")
|
---|
29 | . S STATLIST=STATLIST_STATDA_":"_$E(RCSTAT(STATDA),1,20)_";"
|
---|
30 | S STATLIST=STATLIST_"*:ALL statuses;-:NO statuses;"
|
---|
31 | ;
|
---|
32 | F D Q:$G(RCRJFLAG)
|
---|
33 | . D SHOWSTAT(RCDEBTDA)
|
---|
34 | . S DIR(0)="SOA^"_STATLIST,DIR("A")="Select STATUS of bills to display: "
|
---|
35 | . D ^DIR
|
---|
36 | . I $D(DIRUT) S RCRJFLAG=1 Q
|
---|
37 | . I Y="*" S %=0 F S %=$O(RCSTAT(%)) Q:'% S RCSTATSL(%)=1
|
---|
38 | . I Y="-" K RCSTATSL Q
|
---|
39 | . S Y=+Y
|
---|
40 | . I $D(RCSTAT(Y)) D
|
---|
41 | . . I $D(RCSTATSL(Y)) K RCSTATSL(Y) W " un-selected" Q
|
---|
42 | . . S RCSTATSL(Y)=1 W " selected"
|
---|
43 | ;
|
---|
44 | ; save as default for user
|
---|
45 | S STATLIST=""
|
---|
46 | S STATDA=0 F S STATDA=$O(RCSTATSL(STATDA)) Q:'STATDA S STATLIST=STATLIST_STATDA_"^"
|
---|
47 | S ^DISV(DUZ,"RCDPAPLM","STATUS")=STATLIST
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | ;
|
---|
51 | STATDEF ; get list of statuses for the user
|
---|
52 | ; returns RCSTATSL(statda)
|
---|
53 | N %,STATDA
|
---|
54 | ; build default selected statuses
|
---|
55 | K RCSTATSL
|
---|
56 | F %=1:1 S STATDA=$P($G(^DISV(DUZ,"RCDPAPLM","STATUS")),"^",%) Q:'STATDA S RCSTATSL(STATDA)=1
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | ;
|
---|
60 | DEFAULT ; set the default statuses
|
---|
61 | W !
|
---|
62 | W !,"When using this option, you have the option to select bills to display by"
|
---|
63 | W !,"status. You can select a list of statuses of the bills to display. After"
|
---|
64 | W !,"you select the list of statuses, the option will retain the list of selected"
|
---|
65 | W !,"statuses for the next time you enter this option. Since you currently do"
|
---|
66 | W !,"not have any statuses selected for your list, the default statuses of"
|
---|
67 | W !,"active, open, pending calm, and refund review will be automatically"
|
---|
68 | W !,"selected for your list now."
|
---|
69 | ; active(16), open(42), pending calm(21), refund review(44)
|
---|
70 | S ^DISV(DUZ,"RCDPAPLM","STATUS")="16^42^21^44"
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | ;
|
---|
74 | SHOWSTAT(RCDEBTDA) ; show list of statuses
|
---|
75 | N OFFSET,STARS,STATDA
|
---|
76 | W !!?3,"The following is a list of available statuses for bills:"
|
---|
77 | W !?3,"--------------------------------------------------------"
|
---|
78 | S OFFSET=0
|
---|
79 | S STATDA=0 F S STATDA=$O(RCSTAT(STATDA)) Q:'STATDA D
|
---|
80 | . I OFFSET=0 W !
|
---|
81 | . W ?(OFFSET)
|
---|
82 | . ; does account have bills under status, if yes show stars
|
---|
83 | . S STARS=" "
|
---|
84 | . I $G(RCDEBTDA),$D(^PRCA(430,"AS",RCDEBTDA,STATDA)) S STARS="**"
|
---|
85 | . W STARS," ",$E(STATDA_" ",1,2)," ",$E(RCSTAT(STATDA)_" ",1,16)
|
---|
86 | . ; user has status selected
|
---|
87 | . I $G(RCSTATSL(STATDA)) W " selected"
|
---|
88 | . S OFFSET=OFFSET+44
|
---|
89 | . I OFFSET>44 S OFFSET=0
|
---|
90 | W !,"** indicates account has bills under status **",!
|
---|
91 | Q
|
---|
92 | ;
|
---|
93 | ;
|
---|
94 | GETBILLS(RCDEBTDA) ; bills for account
|
---|
95 | ; returns a list of bills in ^tmp("rcdpapst",$j,actdate,status,bill)
|
---|
96 | N BILLDA,DATE,STATDA
|
---|
97 | K ^TMP("RCDPAPST",$J)
|
---|
98 | ;
|
---|
99 | S STATDA=0 F S STATDA=$O(^PRCA(430,"AS",RCDEBTDA,STATDA)) Q:'STATDA D
|
---|
100 | . S BILLDA=0 F S BILLDA=$O(^PRCA(430,"AS",RCDEBTDA,STATDA,BILLDA)) Q:'BILLDA D
|
---|
101 | . . S DATE=$P($G(^PRCA(430,BILLDA,6)),"^",21) I 'DATE Q
|
---|
102 | . . S ^TMP("RCDPAPST",$J,$P(DATE,"."),STATDA,BILLDA)=$$BILLBAL(BILLDA,0)
|
---|
103 | Q
|
---|
104 | ;
|
---|
105 | ;
|
---|
106 | BILLBAL(BILLDA,EXTERNAL) ; return a bills current balance principal ^ interest ^ admin
|
---|
107 | ; set the external flag if data is being reported to an external system
|
---|
108 | ; like fms, ndb, ig, etc.
|
---|
109 | N ADMIN,CATEG,DATA7,INTEREST,PRINCPAL,STATDA
|
---|
110 | S DATA7=$G(^PRCA(430,BILLDA,7))
|
---|
111 | S PRINCPAL=$P(DATA7,"^")
|
---|
112 | S INTEREST=$P(DATA7,"^",2)
|
---|
113 | S ADMIN=$P(DATA7,"^",3)+$P(DATA7,"^",4)+$P(DATA7,"^",5)
|
---|
114 | ;
|
---|
115 | S CATEG=$P(^PRCA(430,BILLDA,0),"^",2),STATDA=$P(^(0),"^",8)
|
---|
116 | ;
|
---|
117 | ; special case for prepayments (26)
|
---|
118 | I CATEG=26 D
|
---|
119 | . S PRINCPAL=-PRINCPAL,(INTEREST,ADMIN)=0
|
---|
120 | . ; bill status not open, active, or in refund review
|
---|
121 | . I STATDA'=42,STATDA'=16,STATDA'=44 S PRINCPAL=0
|
---|
122 | ;
|
---|
123 | ; if the bill's status is write-off, balance and int = 0
|
---|
124 | I STATDA=23 S (PRINCPAL,INTEREST,ADMIN)=0
|
---|
125 | ; if the bill's status is suspended, balance and int = 0
|
---|
126 | ; this would be for collecting payments only, external systems
|
---|
127 | ; still would get the bills balance
|
---|
128 | I STATDA=40,'$G(EXTERNAL) S (PRINCPAL,INTEREST,ADMIN)=0
|
---|
129 | ;
|
---|
130 | Q PRINCPAL_"^"_INTEREST_"^"_ADMIN
|
---|