| 1 | RCDPEM0 ;ALB/TMK - ERA MATCHING TO EFT (cont) ;05-NOV-02
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**173,208,220**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | MATCH(RCZ,RCPROC) ; Match EFT to ERA
 | 
|---|
| 7 |  ; RCZ = ien of file 344.31
 | 
|---|
| 8 |  ; RCPROC = 1 if called from EFT-EOB automatch, 0 if from manual match
 | 
|---|
| 9 |  N RCER,RCRZ,RCMATCH,RCER,RC0,RC3444,RC34431,DIE,DA,DR,X,Y,Z,Z0
 | 
|---|
| 10 |  ; Find ERA to match to EFT by trace, date, amt
 | 
|---|
| 11 |  S RC34431=$G(^RCY(344.31,RCZ,0)) Q:$P(RC34431,U,8)!$O(^RCY(344,"AEFT",RCZ,0))  ; Already matched
 | 
|---|
| 12 |  S RCRZ=0 F  S RCRZ=$O(^RCY(344.4,"ATRID",$P(RC34431,U,4),$P(RC34431,U,3),RCRZ)) Q:'RCRZ  S RC3444=$G(^RCY(344.4,RCRZ,0)) I '$O(^RCY(344.31,"AERA",RCRZ,0)),'$P(RC3444,U,9) D  Q:$D(Z(1))
 | 
|---|
| 13 |  . S Z($S(+$P(RC34431,U,7)=+$P(RC3444,U,5):1,1:-1),RCRZ)="" ;Total match?
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  S RCMATCH=+$O(Z(""),-1),RCRZ=+$O(Z(RCMATCH,0))
 | 
|---|
| 16 |  S $P(^TMP($J,"RCDPETOT",344.31,RCZ),U)=RCMATCH
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  I 'RCMATCH D  Q  ; Match failure
 | 
|---|
| 19 |  . S ^TMP($J,"RCTOT","NO_MATCH")=$G(^TMP($J,"RCTOT","NO_MATCH"))+1
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  I RCMATCH<0 D
 | 
|---|
| 22 |  . ; Bulletin for totals don't match warning
 | 
|---|
| 23 |  . S ^TMP($J,"RCTOT","TOTMIS")=$G(^TMP($J,"RCTOT","TOTMIS"))+1
 | 
|---|
| 24 |  . N XMSUBJ,XMBODY,XMB,XMINSTR,XMTYPE,XMFULL,XMTO,XMZ,XMERR,RCER,RCT,RCM,RCLESS
 | 
|---|
| 25 |  . S RCT=0
 | 
|---|
| 26 |  . D BLD^RCDPEM1("RCER",.RCT,344.31,RC34431)
 | 
|---|
| 27 |  . S RCT=RCT+1,RCER(RCT)=""
 | 
|---|
| 28 |  . K RCM S RCM=RCT
 | 
|---|
| 29 |  . S RCLESS=($P(RC34431,U,7)<$P($G(^RCY(344.4,RCRZ,0)),U,5))
 | 
|---|
| 30 |  . S RCT=RCT+1,RCER(RCT)="  TOTALS ON ERA AND EFT DON'T MATCH.",RCT=RCT+1,RCER(RCT)="  EFT TOTAL IS "_$S(RCLESS:"LESS",1:"GREATER")_" THAN ERA AMOUNT TOTAL"
 | 
|---|
| 31 |  . I RCLESS D
 | 
|---|
| 32 |  .. S RCT=RCT+1,RCER(RCT)="  DECREASE ADJUSTMENT IS NEEDED BEFORE THE ERA RECEIPT CAN BE PROCESSED."
 | 
|---|
| 33 |  . I 'RCLESS D
 | 
|---|
| 34 |  .. S RCT=RCT+1,RCER(RCT)="  A SUSPENSE LINE IS NEEDED ON THE RECEIPT TO ACCOUNT FOR THE DIFFERENCE."
 | 
|---|
| 35 |  . S RCT=RCT+1,RCER(RCT)="  IF YOU USE THE ERA WORKLIST SCRATCH PAD, THIS WILL BE GENERATED FOR YOU."
 | 
|---|
| 36 |  . ;
 | 
|---|
| 37 |  . S RCT=RCT+1,RCER(RCT)="  EFT WAS MATCHED TO ERA ENTRY #: "_RCRZ_" ($"_$J(+$P($G(^RCY(344.4,RCRZ,0)),U,5),"",2)_")."
 | 
|---|
| 38 |  . S XMTO("I:G.RCDPE PAYMENTS")=""
 | 
|---|
| 39 |  . S XMBODY="RCER"
 | 
|---|
| 40 |  . S XMSUBJ="EDI LBOX TOTALS MISMATCH ON EFT-ERA MATCH"
 | 
|---|
| 41 |  . D
 | 
|---|
| 42 |  .. N DUZ S DUZ=.5,DUZ(0)="@"
 | 
|---|
| 43 |  .. D SENDMSG^XMXAPI(.5,XMSUBJ,XMBODY,.XMTO,,.XMZ)
 | 
|---|
| 44 |  . ; Update log
 | 
|---|
| 45 |  . F  S RCM=$O(RCER(RCM)) Q:'RCM  S RCT=RCT+1,RCM(RCT)=RCER(RCM)
 | 
|---|
| 46 |  . D STORERR(344.31,RCZ,.RCM)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I RCMATCH D
 | 
|---|
| 49 |  . S DIE="^RCY(344.31,",DA=RCZ,DR=".08////"_RCMATCH_";.1////"_RCRZ D ^DIE
 | 
|---|
| 50 |  . S DIE="^RCY(344.4,",DA=RCRZ,DR=".09////"_RCMATCH D ^DIE
 | 
|---|
| 51 |  . S ^TMP($J,"RCTOT","MATCH")=$G(^TMP($J,"RCTOT","MATCH"))+1
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | ADDDEP(RCD,RCDDT,RCZ) ; Add deposit
 | 
|---|
| 56 |  ; RCD = deposit #
 | 
|---|
| 57 |  ; RCDDT = deposit date FM format
 | 
|---|
| 58 |  ; RCZ = ien of entry in file 344.3
 | 
|---|
| 59 |  ; Function returns IEN of new deposit entry
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  N RCDEP,RC0,DIE,DR,DA,X,Y
 | 
|---|
| 62 |  S RCDEP=+$$ADDDEPT^RCDPUDEP(RCD,RCDDT)
 | 
|---|
| 63 |  I RCDEP D
 | 
|---|
| 64 |  . D LOCKDEP^RCDPEM(RCDEP,1)
 | 
|---|
| 65 |  . S RC0=$G(^RCY(344.3,RCZ,0))
 | 
|---|
| 66 |  . S DIE="^RCY(344.1,",DA=RCDEP,DR=".04////"_+$P(RC0,U,8)_$S($P(RC0,U,4)'="":";.05////"_$P(RC0,U,4),1:"")  D ^DIE
 | 
|---|
| 67 |  . S DIE="^RCY(344.3,",DR=".03////"_RCDEP,DA=RCZ D ^DIE
 | 
|---|
| 68 |  . S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,5)=RCDEP
 | 
|---|
| 69 |  Q RCDEP
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | ADDREC(RCDEP,RCZ) ; Add receipt, send CR to FUND 528704, Rev src cd 8NZZ
 | 
|---|
| 72 |  ;   for total EFT amt
 | 
|---|
| 73 |  ; RCDEP = ien of the deposit file entry
 | 
|---|
| 74 |  ; RCZ = ien in file 344.3
 | 
|---|
| 75 |  ; Function returns IEN of new receipt entry
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  N RCER,RCTRANDA,RECTDA,RCQUIT,RCDPDATA,RCTOTCT,RC0,DIE,DA,DR,X,Y
 | 
|---|
| 78 |  S RC0=$G(^RCY(344.3,RCZ,0))
 | 
|---|
| 79 |  S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,3)=0
 | 
|---|
| 80 |  ; Single receipt - multiple transactions for EFT payments
 | 
|---|
| 81 |  S RECTDA=+$$ADDRECT^RCDPUREC($P(RC0,U,7),RCDEP,+$O(^RC(341.1,"AC",14,0)))
 | 
|---|
| 82 |  ; Create detail lines for deposit amount, process whole receipt to send
 | 
|---|
| 83 |  ;   CR document for deposit amount
 | 
|---|
| 84 |  I RECTDA D
 | 
|---|
| 85 |  . N STATUS,RC00,RCT
 | 
|---|
| 86 |  . S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U)=RECTDA,^TMP($J,"RCTOT","EFT_RECPT")=$G(^TMP($J,"RCTOT","EFT_RECPT"))+1
 | 
|---|
| 87 |  . L +^RCY(344,RECTDA)
 | 
|---|
| 88 |  . ;  check to see if receipt has been processed (fms document)
 | 
|---|
| 89 |  . D DIQ344^RCDPRPLM(RECTDA,"200;")
 | 
|---|
| 90 |  . ;  code sheet already sent once, this is a retransmission, check it
 | 
|---|
| 91 |  . I RCDPDATA(344,RECTDA,200,"E")'="" S RCQUIT=0 D  Q:RCQUIT
 | 
|---|
| 92 |  .. S STATUS=$$STATUS^GECSSGET(RCDPDATA(344,RECTDA,200,"E"))
 | 
|---|
| 93 |  .. ;  okay to continue if status is Error, Rejected, or not defined (-1)
 | 
|---|
| 94 |  .. I $E(STATUS)="E"!($E(STATUS)="R")!(STATUS=-1) Q
 | 
|---|
| 95 |  .. S RCER(1)=$$SETERR(2),RCER(2)="  Receipt already sent to FMS - No change"
 | 
|---|
| 96 |  .. D BULL^RCDPEM1(344.3,RC0,.RCER)
 | 
|---|
| 97 |  .. S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,4)=+$G(^TMP($J,"RCXM",0))
 | 
|---|
| 98 |  .. D STORERR(344.3,RCZ,.RCER)
 | 
|---|
| 99 |  .. L -^RCY(344,RECTDA)
 | 
|---|
| 100 |  .. L -^RCY(344.1,RCDEP)
 | 
|---|
| 101 |  .. S RCQUIT=1 K RCER
 | 
|---|
| 102 |  . ;  mark receipt as processed (closed) to prevent editing
 | 
|---|
| 103 |  . D MARKPROC^RCDPUREC(RECTDA,"")
 | 
|---|
| 104 |  . S DIE="^RCY(344,",DR=".04////"_+$O(^RC(341.1,"AC",14,0)),DA=RECTDA D ^DIE ; Add EDI Lockbox payment type
 | 
|---|
| 105 |  . ;
 | 
|---|
| 106 |  . ; Add receipt line for each payer's EFT
 | 
|---|
| 107 |  . S RCT=0 F  S RCT=$O(^RCY(344.31,"B",RCZ,RCT)) Q:'RCT  D  Q:$O(RCER(0))
 | 
|---|
| 108 |  .. S RC00=$G(^RCY(344.31,RCT,0)),DR=""
 | 
|---|
| 109 |  .. S RCTRANDA=$S('$P(RC00,U,14):$$ADDTRAN^RCDPURET(RECTDA),1:$P(RC00,U,14)) ; detail line
 | 
|---|
| 110 |  .. I 'RCTRANDA D  Q
 | 
|---|
| 111 |  ... S RCER(1)=$$SETERR(2),RCER(2)="  The receipt for the EFT deposit was not created correctly",RCER(3)="  You may have to add the detail manually to send the FMS CR doc to revenue"
 | 
|---|
| 112 |  ... S RCER(4)="  source code 8NZZ in fund "_$S(DT<$$ADDPTEDT^PRCAACC():"5287.4",1:"528704")_".  Receipt # is "_$P($G(^RCY(344,RECTDA,0)),U),RCER(5)="  Trace # being processed at time of error was: "_$P(RC00,U,4)_"."
 | 
|---|
| 113 |  ... D BULL^RCDPEM1(344.3,RC0,.RCER)
 | 
|---|
| 114 |  ... S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,4)=+$G(^TMP($J,"RCXM",0))
 | 
|---|
| 115 |  ... D STORERR(344.3,RCZ,.RCER)
 | 
|---|
| 116 |  .. ;
 | 
|---|
| 117 |  .. S DR=DR_";1.02////Auto added EDI Lockbox deposit;.06////"_$P(RC00,U,12)_";.04////"_$J(+$P(RC00,U,7),"",2)_";.14////"_RCTRANDA
 | 
|---|
| 118 |  .. N N S N=+$O(^VA(200,"B","EDILOCKBOX,AUTOMATIC",0)) S:N=0 N=.5
 | 
|---|
| 119 |  .. S DR=DR_";.12////"_N
 | 
|---|
| 120 |  .. S DA(1)=RECTDA,DA=RCTRANDA,DIE="^RCY(344,"_DA(1)_",1,"
 | 
|---|
| 121 |  .. S:$E(DR)=";" DR=$P(DR,";",2,999) D ^DIE
 | 
|---|
| 122 |  .. S DR=".14////"_RCTRANDA_";.09////"_RECTDA,DIE="^RCY(344.31,",DA=RCT D ^DIE
 | 
|---|
| 123 |  .. ;
 | 
|---|
| 124 |  . ;Post to FUND 528704/RSC 8NZZ
 | 
|---|
| 125 |  . D PROCESS^RCDPURE1(RECTDA,2)
 | 
|---|
| 126 |  . ;Save details for status report
 | 
|---|
| 127 |  . N Z,TOT
 | 
|---|
| 128 |  . S (TOT,Z)=0 F  S Z=$O(^RCY(344,RECTDA,1,Z)) Q:'Z  S TOT=TOT+$P($G(^RCY(344,RECTDA,1,Z,0)),U,4)
 | 
|---|
| 129 |  . S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,2)=TOT
 | 
|---|
| 130 |  . ;
 | 
|---|
| 131 |  . I $P($G(^RCY(344,RECTDA,2)),U)="" D  ; Receipt not processed fully
 | 
|---|
| 132 |  .. N CT,Z
 | 
|---|
| 133 |  .. S RCER(1)=$$SETERR(2),RCER(2)="  The receipt "_$P($G(^RCY(344,RECTDA,0)),U)_" for the EFT deposit was not processed fully" S:TOT RCER(3)="  You must manually process it to create the FMS CR doc to rev src code 8NZZ"
 | 
|---|
| 134 |  .. S Z=0,CT=+$O(RCER(" "),-1) F  S Z=$O(^TMP($J,"RCDPEMSG",Z)) Q:'Z  S CT=CT+1,RCER(CT)=$G(^TMP($J,"RCDPEMSG",Z))
 | 
|---|
| 135 |  .. D BULL^RCDPEM1(344.3,RC0,.RCER)
 | 
|---|
| 136 |  .. S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,4)=+$G(^TMP($J,"RCXM",0))
 | 
|---|
| 137 |  .. D STORERR(344.3,RCZ,.RCER)
 | 
|---|
| 138 |  . ;
 | 
|---|
| 139 |  . S DIE="^RCY(344.3,",DR=".11////^S X=DT;.12////"_$J(+TOT,"",2),DA=RCZ D ^DIE
 | 
|---|
| 140 |  . S ^TMP($J,"RCTOT","SUSPAMT")=$G(^TMP($J,"RCTOT","SUSPAMT"))+TOT
 | 
|---|
| 141 |  . S $P(^TMP($J,"RCDPETOT",344.3,RCZ),U,3)="1"
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 |  I RECTDA L -^RCY(344,RECTDA)
 | 
|---|
| 144 |  Q RECTDA
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 | SETERR(RCPROC) ; Set up first line of error message to be stored
 | 
|---|
| 147 |  ; RCPROC = 1 if called from EFT-EOB automatch, 0 if from manual match
 | 
|---|
| 148 |  ;        =2 if called from EFT deposit creation
 | 
|---|
| 149 |  N LINE1
 | 
|---|
| 150 |  I RCPROC S LINE1=$$FMTE^XLFDT($$NOW^XLFDT(),2)_" - PROCESS TO "_$S(RCPROC=1:"CREATE RECEIPT FROM ERA",1:"SEND EFT DEPOSIT TO FMS")
 | 
|---|
| 151 |  Q LINE1
 | 
|---|
| 152 |  ;
 | 
|---|
| 153 | STORERR(RCFILE,RCZ,RCER) ; Store error text in word processing field
 | 
|---|
| 154 |  ; RCFILE = 344.3 or 344.31
 | 
|---|
| 155 |  ; RCZ = ien of the entry in file RCFILE
 | 
|---|
| 156 |  ; RCER = array containing the error text (passed by ref)
 | 
|---|
| 157 |  D WP^DIE(RCFILE,RCZ_",",2,"A","RCER")
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 |  ;
 | 
|---|