[613] | 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
|
---|