| 1 | RCDPLPLM ;WISC/RFJ-link payments listmanager top routine ;1 Jun 99
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**114,208**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  N RCFCHECK,RCFTRACE,RCFCREDT,RCDPFXIT
 | 
|---|
| 6 |  N %,%DT,%H,%I,RCDPPADT,X,Y
 | 
|---|
| 7 |  S %DT("A")="Start with Payment Date (press RETURN for FIRST): ",%DT="AEP",%DT(0)=-DT
 | 
|---|
| 8 |  D ^%DT I Y<0,X["^" Q
 | 
|---|
| 9 |  ;  if user entered a date, go back one day
 | 
|---|
| 10 |  I Y'<0 S RCDPPADT=$$FMADD^XLFDT(+Y,-1)
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  D EN^VALM("RCDP LINK PAYMENTS TO ACCOUNTS")
 | 
|---|
| 13 |  Q
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 | INIT ;  initialization for list manager list
 | 
|---|
| 16 |  ;  pass RCDPPADT to display payments after RCDPPADT date
 | 
|---|
| 17 |  ;  pass RCFCHECK, RCFTRACE and RCFCREDT to search by
 | 
|---|
| 18 |  ;        check/trace #/credit card #
 | 
|---|
| 19 |  ;  fast exit
 | 
|---|
| 20 |  I $G(RCDPFXIT) S VALMQUIT=1 Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  W !!,"please wait, building list of unlinked payments..."
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  N DATE,FMSDOC,NUMBER,RCCOUNT,RCDATA,RCLINE,RCRECTDA,RCTOTAL,RCTRANDA,RECDATA,TYPE
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ;  set the listmanager line number
 | 
|---|
| 27 |  S RCLINE=0
 | 
|---|
| 28 |  ;  set the lookup payment number from list
 | 
|---|
| 29 |  S RCCOUNT=0
 | 
|---|
| 30 |  ;  get list of unlinked accounts
 | 
|---|
| 31 |  K ^TMP("RCDPLPLM",$J)
 | 
|---|
| 32 |  S RCRECTDA=0 F  S RCRECTDA=$O(^RCY(344,"AN",RCRECTDA)) Q:'RCRECTDA  D
 | 
|---|
| 33 |  .   S RECDATA=$G(^RCY(344,RCRECTDA,0))
 | 
|---|
| 34 |  .   S RCTRANDA=0 F  S RCTRANDA=$O(^RCY(344,"AN",RCRECTDA,RCTRANDA)) Q:'RCTRANDA  D
 | 
|---|
| 35 |  .   .   S RCDATA=$G(^RCY(344,RCRECTDA,1,RCTRANDA,0))
 | 
|---|
| 36 |  .   .   I '$P(RCDATA,"^",4) Q  ;no payment amount
 | 
|---|
| 37 |  .   .   ;  fms doc id entered (field 26) to clear suspense
 | 
|---|
| 38 |  .   .   I $P($G(^RCY(344,RCRECTDA,1,RCTRANDA,2)),"^",6)'="" Q
 | 
|---|
| 39 |  .   .   ;  unlinked
 | 
|---|
| 40 |  .   .   ;  get payment date
 | 
|---|
| 41 |  .   .   S DATE=$P(RCDATA,"^",6)
 | 
|---|
| 42 |  .   .   I 'DATE S DATE=$P(RCDATA,"^",10)
 | 
|---|
| 43 |  .   .   I 'DATE S DATE=$P(RECDATA,"^",3)
 | 
|---|
| 44 |  .   .   I 'DATE S DATE=0
 | 
|---|
| 45 |  .   .   ;  before selected payment date
 | 
|---|
| 46 |  .   .   I $G(RCDPPADT),DATE<RCDPPADT Q
 | 
|---|
| 47 |  .   .   ;
 | 
|---|
| 48 |  .   .   S RCLINE=RCLINE+1
 | 
|---|
| 49 |  .   .   S RCCOUNT=RCCOUNT+1
 | 
|---|
| 50 |  .   .   ;
 | 
|---|
| 51 |  .   .   ;  create an index array for bill lookup in list
 | 
|---|
| 52 |  .   .   S ^TMP("RCDPLPLM",$J,"IDX",RCCOUNT,RCCOUNT)=RCRECTDA_"^"_RCTRANDA
 | 
|---|
| 53 |  .   .   ;
 | 
|---|
| 54 |  .   .   D SET(RCCOUNT,RCLINE,1,80)
 | 
|---|
| 55 |  .   .   ;  receipt number
 | 
|---|
| 56 |  .   .   D SET($P(RECDATA,"^"),RCLINE,6,18)
 | 
|---|
| 57 |  .   .   ;  transaction number
 | 
|---|
| 58 |  .   .   D SET($J(RCTRANDA,5),RCLINE,18,24)
 | 
|---|
| 59 |  .   .   ;  unapplied deposit number
 | 
|---|
| 60 |  .   .   D SET($J($$GETUNAPP^RCXFMSCR(RCRECTDA,RCTRANDA,0),13),RCLINE,26,39)
 | 
|---|
| 61 |  .   .   ;  receipt status
 | 
|---|
| 62 |  .   .   D SET($E($S($P(RECDATA,"^",14):"OPEN",1:"CLOSED"),1,4),RCLINE,41,44)
 | 
|---|
| 63 |  .   .   ;  payment date
 | 
|---|
| 64 |  .   .   D SET($E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_$E(DATE,2,3),RCLINE,47,54)
 | 
|---|
| 65 |  .   .   ;  get type of payment
 | 
|---|
| 66 |  .   .   S TYPE=$S($P(RECDATA,U,18)&$P(RECDATA,U,17):"TRACE",1:"") ;EFT/ERA payment
 | 
|---|
| 67 |  .   .   I TYPE="" D
 | 
|---|
| 68 |  .   .   .   S TYPE=$P($G(^RCY(344,RCRECTDA,1,RCTRANDA,2)),"^",4)
 | 
|---|
| 69 |  .   .   .   S TYPE=$S(TYPE=1:"CASH",TYPE=2:"CHECK",TYPE=3:"CREDIT",1:"")
 | 
|---|
| 70 |  .   .   I TYPE="" S TYPE=$P($G(^RC(341.1,+$P(RECDATA,"^",4),0)),"^")
 | 
|---|
| 71 |  .   .   D SET(TYPE,RCLINE,57,60)
 | 
|---|
| 72 |  .   .   ;  get check, trace, credit #, RCFCHECK RCFTRACE and RCFCREDT
 | 
|---|
| 73 |  .   .   ;  can be used to match a specific check, trace or credit card #
 | 
|---|
| 74 |  .   .   ;  the variable is in the form:
 | 
|---|
| 75 |  .   .   ;  RCFCHECK=number^EXACT  or  number^CONTAINS
 | 
|---|
| 76 |  .   .   I $G(RCFCHECK)'="",$E(TYPE,1,5)'="CHECK" Q
 | 
|---|
| 77 |  .   .   I $G(RCFTRACE)'="",$E(TYPE,1,5)'="TRACE" Q
 | 
|---|
| 78 |  .   .   I $G(RCFCREDT)'="",$E(TYPE,1,6)'="CREDIT" Q
 | 
|---|
| 79 |  .   .   S NUMBER=""
 | 
|---|
| 80 |  .   .   I $E(TYPE,1,5)="CHECK" D  Q:NUMBER=""
 | 
|---|
| 81 |  .   .   .   S NUMBER=$P(RCDATA,"^",7)
 | 
|---|
| 82 |  .   .   .   I $G(RCFCHECK)'="",NUMBER="" Q
 | 
|---|
| 83 |  .   .   .   I $E($P($G(RCFCHECK),"^",2))="E",NUMBER'=$P(RCFCHECK,"^") S NUMBER="" Q
 | 
|---|
| 84 |  .   .   .   I $E($P($G(RCFCHECK),"^",2))="C",NUMBER'[$P(RCFCHECK,"^") S NUMBER="" Q
 | 
|---|
| 85 |  .   .   .   I NUMBER="" S NUMBER=" "
 | 
|---|
| 86 |  .   .   I $E(TYPE,1,5)="TRACE" D  Q:NUMBER=""
 | 
|---|
| 87 |  .   .   .   S NUMBER=$P($G(^RCY(344.4,+$P(RECDATA,U,18),0)),U,2)
 | 
|---|
| 88 |  .   .   .   I $G(RCFTRACE)'="",NUMBER="" Q
 | 
|---|
| 89 |  .   .   .   I $E($P($G(RCFTRACE),"^",2))="E",NUMBER'=$P(RCFTRACE,"^") S NUMBER="" Q
 | 
|---|
| 90 |  .   .   .   I $E($P($G(RCFTRACE),"^",2))="C",NUMBER'[$P(RCFTRACE,"^") S NUMBER="" Q
 | 
|---|
| 91 |  .   .   .   I NUMBER="" S NUMBER=" "
 | 
|---|
| 92 |  .   .   I $E(TYPE,1,6)="CREDIT" D  Q:NUMBER=""
 | 
|---|
| 93 |  .   .   .   S NUMBER=$P(RCDATA,"^",11)
 | 
|---|
| 94 |  .   .   .   I $G(RCFCHECK)'="",NUMBER="" Q
 | 
|---|
| 95 |  .   .   .   I $E($P($G(RCFCREDT),"^",2))="E",NUMBER'=$P(RCFCREDT,"^") S NUMBER="" Q
 | 
|---|
| 96 |  .   .   .   I $E($P($G(RCFCREDT),"^",2))="C",NUMBER'[$P(RCFCREDT,"^") S NUMBER="" Q
 | 
|---|
| 97 |  .   .   .   I NUMBER="" S NUMBER=" "
 | 
|---|
| 98 |  .   .   I NUMBER="" S NUMBER=" "
 | 
|---|
| 99 |  .   .   S %=$L(NUMBER) I %>8 S NUMBER=$E(NUMBER,%-7,%)
 | 
|---|
| 100 |  .   .   ;  check/trace/credit# (last 8 chars)
 | 
|---|
| 101 |  .   .   D SET(NUMBER,RCLINE,62,69)
 | 
|---|
| 102 |  .   .   ;  amount paid
 | 
|---|
| 103 |  .   .   D SET($J($P(RCDATA,"^",4),10,2),RCLINE,70,80)
 | 
|---|
| 104 |  .   .   ;  since list manager adds spaces to line, make sure line is
 | 
|---|
| 105 |  .   .   ;  80 characters so the print list looks okay
 | 
|---|
| 106 |  .   .   S ^TMP("RCDPLPLM",$J,RCLINE,0)=$E(^TMP("RCDPLPLM",$J,RCLINE,0),1,80)
 | 
|---|
| 107 |  .   .   S RCTOTAL=$G(RCTOTAL)+$P(RCDATA,"^",4)
 | 
|---|
| 108 |  .   .   ;
 | 
|---|
| 109 |  .   .   ;  show line 2
 | 
|---|
| 110 |  .   .   ;  account lookup
 | 
|---|
| 111 |  .   .   S RCLINE=RCLINE+1
 | 
|---|
| 112 |  .   .   S %=$E("AcctLU: "_$P($G(^RCY(344,RCRECTDA,1,RCTRANDA,2)),"^")_"                        ",1,24)
 | 
|---|
| 113 |  .   .   D SET("                 "_%,RCLINE,1,80)
 | 
|---|
| 114 |  .   .   ;  fms cr document
 | 
|---|
| 115 |  .   .   S FMSDOC=$$FMSSTAT^RCDPUREC(RCRECTDA)
 | 
|---|
| 116 |  .   .   D SET($E("CRdoc: "_$P(FMSDOC,"^")_"               ",1,22),RCLINE,41,80)
 | 
|---|
| 117 |  .   .   ;  cr document status
 | 
|---|
| 118 |  .   .   D SET($P(FMSDOC,"^",2),RCLINE,63,68)
 | 
|---|
| 119 |  .   .   ;  make second line longer than 80 characters for printing
 | 
|---|
| 120 |  .   .   ;  this will add an extra line after each entry
 | 
|---|
| 121 |  .   .   D SET("    ",RCLINE,80,84)
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 |  S RCLINE=RCLINE+1 D SET("----------",RCLINE,70,80)
 | 
|---|
| 124 |  S RCLINE=RCLINE+1 D SET("TOTAL: "_$J($G(RCTOTAL),10,2),RCLINE,63,80)
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  ;  set valmcnt to number of lines in the list
 | 
|---|
| 127 |  S VALMCNT=RCLINE
 | 
|---|
| 128 |  D HDR
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 | SET(STRING,LINE,COLBEG,COLEND) ;  set array
 | 
|---|
| 133 |  I '$D(@VALMAR@(LINE,0)) D SET^VALM10(LINE,$J("",80))
 | 
|---|
| 134 |  D SET^VALM10(LINE,$$SETSTR^VALM1(STRING,@VALMAR@(LINE,0),COLBEG,COLEND-COLBEG+1))
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 |  ;
 | 
|---|
| 138 | HDR ;  header code for list manager display
 | 
|---|
| 139 |  S VALMHDR(1)="Transactions for ALL Unapplied Payments"
 | 
|---|
| 140 |  I $G(RCDPPADT)>0 S Y=RCDPPADT D DD^%DT S VALMHDR(1)="Transactions for Unapplied Payments After "_Y
 | 
|---|
| 141 |  S VALMHDR(2)=" "
 | 
|---|
| 142 |  I $G(RCFCHECK)'="" S VALMHDR(2)="  List of Payments With Check Numbers "_$P(RCFCHECK,"^",2)_" "_$P(RCFCHECK,"^")
 | 
|---|
| 143 |  I $G(RCFTRACE)'="" S VALMHDR(2)="  List of Payments With Trace Numbers "_$P(RCFTRACE,"^",2)_" "_$P(RCFTRACE,"^")
 | 
|---|
| 144 |  I $G(RCFCREDT)'="" S VALMHDR(2)="  List of Payments With Credit Cards "_$P(RCFCREDT,"^",2)_" "_$P(RCFCREDT,"^")
 | 
|---|
| 145 |  Q
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 | EXIT ;  exit list manager option and clean up
 | 
|---|
| 149 |  K ^TMP("RCDPLPLM",$J),^TMP("RCDPLPLMUNLINK",$J)
 | 
|---|
| 150 |  Q
 | 
|---|