Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RCDPTAR

RCDPTAR.m

Go to the documentation of this file.
  1. RCDPTAR ;ALB/TJB - EFT TRANSACTION AUDIT REPORT ;1/02/15
  1. ;;4.5;Accounts Receivable;**303,321,326,380,371,424**;Mar 20, 1995;Build 11
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. Q
  1. ; PRCA*4.5*303 - EFT TRANSACTION AUDIT REPORT
  1. ;
  1. ; Executed by the option "EFT Transaction Audit Report" from the "EDI Lockbox Reports Menu"
  1. ;
  1. ; DESCRIPTION: The following generates a report that displays an audit history for an EFT
  1. ;
  1. EN ; Main entry point for this report
  1. ; Ask Summary or Detail output
  1. ;
  1. N DIR,DIRUT,DIROUT,DTOUT,DUOUT,RCREP,RCREP2,X,Y
  1. W !
  1. S DIR(0)="SOA^S:Summary Information Only;D:Detail Report"
  1. S DIR("A")="(S)ummary or (D)etail Report format? "
  1. S DIR("B")="SUMMARY"
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT)!(Y="") Q
  1. S RCREP=Y
  1. ;
  1. ; PRCA*4.5*380 - Ask if display sum. rpt. by Dep. Date or Dep. Num.
  1. S RCREP2=0
  1. S:RCREP="S" RCREP2=$$ASKSUM2()
  1. Q:RCREP2=-1
  1. ;
  1. I RCREP="S",RCREP2=1 D SUM^RCDPTAR1
  1. I RCREP="S",RCREP2=2 D SUM2^RCDPTAR1
  1. I RCREP="D" D DET
  1. Q
  1. ;
  1. ; PRCA*4.5*380 - New Subroutine added
  1. ASKSUM2() ; Ask the user if they want to display the summary report by Deposit Date
  1. ; or by Deposit Number
  1. ; Input: None
  1. ; Returns: -1 - User quit or timed out
  1. ; 1 - Display Summary report by Deposit Date
  1. ; 2 - Display Summary report by Deposit Number
  1. N DIR,DIRUT,DIROUT,DTOUT,DUOUT,X,Y
  1. S DIR(0)="SOA^EFTS:EFTS by Date;DATE:Deposit Number"
  1. S DIR("A")="(E)FTs by Date or (D)eposit? "
  1. S DIR("B")="DEPOSIT"
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT) Q -1
  1. I $E(Y,1)="E" Q 1
  1. Q 2
  1. ;
  1. DET ; Entry point for detailed report
  1. ; Input: variable RCREP defined and equal to "D"
  1. ; Output: Written to device
  1. ;
  1. N RCDATA,RCDET
  1. ;
  1. DET1 ; Prompt for user selection criteria
  1. K DIR
  1. S DIR(0)="SO^N:Deposit Number;D:Deposit Date;R:Receipt Number;T:Trace Number;F:FMS Document Number"
  1. ; PRCA*4.5*424 - Begin changed block - Add search by FMS document number
  1. S DIR("PRE")="S:X?1N X=$S(X=1:""N"",X=2:""D"",X=3:""R"",X=4:""T"",X=5:""F"",1:""X"")"
  1. S DIR("L",1)="Search for EFT Number by:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1. Deposit (N)umber"
  1. S DIR("L",4)=" 2. Deposit (D)ate"
  1. S DIR("L",5)=" 3. (R)eceipt #"
  1. S DIR("L",6)=" 4. (T)race #"
  1. S DIR("L")=" 5. (F)MS Document Number"
  1. S DIR("A")="Search for EFT by"
  1. ; End PRCA*4.5*424 changes
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT)!(Y="") Q ;PRCA*4.5*371 Changed G DETQ to Q
  1. S RCDET=Y
  1. ;
  1. ; Do lookup of EFTs based on the user selection above
  1. S RCDATA=""
  1. ; PRCA*4.5*424 - Move subroutine RC to RCDPTAR2 for size and add FMS doc ID search
  1. D @($S(RCDET="N":"DN",RCDET="D":"DT",RCDET="R"!(RCDET="F"):"RC^RCDPTAR2",1:"TR")_"(.RCDATA)")
  1. ;PRCA*4.5*371 Moved lines that were here to new method SHOWONE
  1. Q
  1. ;
  1. SHOWONE(STOP) ; Prompt for device and output data for one EFT
  1. ; Input: STOP - Initially set to 0
  1. ; Output: STOP - 1 user entered '^', 0 otherwise
  1. ;PRCA*4.5*371 - Added Method
  1. N %ZIS,ZTSK,ZTRTN,ZTIO,ZTDESC,ZTSAVE,POP
  1. S %ZIS="QM"
  1. D ^%ZIS
  1. S STOP=POP
  1. Q:POP
  1. I $D(IO("Q")) D Q
  1. . S ZTRTN="RUN^RCDPTAR(RCDATA)"
  1. . S ZTIO=ION
  1. . S ZTSAVE("*")=""
  1. . S ZTDESC="EFT TRANSACTION SUMMARY REPORT"
  1. . D ^%ZTLOAD
  1. . W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
  1. . D HOME^%ZIS
  1. U IO
  1. D RUN(RCDATA)
  1. Q
  1. ;
  1. RUN(RCDATA) ; Compile and output the report
  1. ; Input: RCDATA - see subroutine EFTDA for delimited list of fields
  1. ; Output: none
  1. ;
  1. ; Compile Data
  1. D COMPILE(RCDATA)
  1. ;
  1. ; Generate Report
  1. D REPORT(RCDATA)
  1. ;
  1. K ^TMP("RCDPTAR",$J)
  1. Q
  1. ;
  1. DN(RCDATA) ; Lookup by Deposit Number
  1. ; Input: RCDATA - null on entry
  1. ; Output: RCDATA - passed by refence - see subroutine EFTDATA for delimited list of fields
  1. ; Note variable RCDEFLUP is needed by LOOKUP^RCDPUDEP, which is called by the .01 field
  1. ;
  1. N DIC,DTOUT,DUOUT,LOCKIEN,RCDEFLUP,STOP,USERDN,Y ;PRCA*4.5*371 Added STOP
  1. S STOP=0 ;PRCA*4.5*371 Added line
  1. ;
  1. DN2 ; Lookup Deposit Number ;PRCA*4.5*371 Added looping Tag
  1. W !
  1. S DIC="^RCY(344.1,",DIC(0)="QEAMn",DIC("A")="Select DEPOSIT: ",DIC("W")="D DICW^RCDPUDEP"
  1. S RCDEFLUP=1
  1. D ^DIC
  1. I $G(DTOUT)!$G(DUOUT)!(Y=-1) S RCDATA=-1 Q
  1. ;
  1. S LOCKIEN=+$O(^RCY(344.3,"ARDEP",+Y,""))
  1. I 'LOCKIEN D G DN2 ;PRCA*4.5*371 Changed Q to G DN2
  1. . W !!,"EFT NOT FOUND - please check Deposit"
  1. . D PAUSE
  1. ;
  1. ; Get EFT pointer
  1. S RCDATA=$$EFT(LOCKIEN)
  1. ;
  1. ;PRCA*4.5*371 - Added lines Begin
  1. Q:RCDATA=-1
  1. Q:RCDATA="" ; No EFTs found
  1. D SHOWONE(.STOP) ; Display output
  1. Q:STOP
  1. G DN2
  1. ;PRCA*4.5*371 - Added lines End
  1. Q
  1. ;
  1. DT(RCDATA) ; Deposit Date
  1. ; Input: RCDATA - null on entry
  1. ; Output: RCDATA - passed by refence - see subroutine EFTDATA for delimited list of fields
  1. ;
  1. ;PRCA*4.5*371 Added STOP below
  1. N CNT,DATA,DEPIEN,DIR,DIROUT,DIRUT,DTOUT,DUOUT,ITEM,LINE,LIST,RCDT,RCI,RCIEN,STOP,X,Y
  1. S STOP=0 ;PRCA*4.5*371 Added line
  1. ;
  1. DT1 ; Ask the user for the Deposit Date
  1. K DIR
  1. S DIR(0)="DAO^:"_DT_":APE",DIR("B")="T"
  1. S DIR("A")="Select DEPOSIT DATE: "
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT) S RCDATA=-1 Q
  1. S RCDT=Y
  1. ;
  1. ; Build List
  1. K LIST
  1. S RCI="",CNT=0
  1. F S RCI=$O(^RCY(344.3,"ADEP",RCDT,RCI)) Q:RCI="" D
  1. . S RCIEN=""
  1. . F S RCIEN=$O(^RCY(344.3,"ADEP",RCDT,RCI,RCIEN)) Q:RCIEN="" D
  1. . . S DEPIEN=$P($G(^RCY(344.3,RCIEN,0)),U,3)
  1. . . I DEPIEN="" Q
  1. . . S DATA=$G(^RCY(344.1,DEPIEN,0))
  1. . . I DATA="" Q
  1. . . S CNT=CNT+1
  1. . . ; Code below is similiar to DICW^RCDPUDEP code
  1. . . S LINE=$J(CNT,3)_". "_$P(DATA,U,1)
  1. . . S $E(LINE,19)="by: "_$E($P($G(^VA(200,+$P(DATA,"^",6),0)),"^"),1,15)
  1. . . I '$P(DATA,"^",7) S $P(DATA,"^",7)="???????"
  1. . . S $E(LINE,39)="on: "_$E($P(DATA,"^",7),4,5)_"/"_$E($P(DATA,"^",7),6,7)_"/"_$E($P(DATA,"^",7),2,3)
  1. . . S $E(LINE,52)="amt: $"_$J($P(DATA,"^",4),10,2)
  1. . . S $E(LINE,70)=$P("N/A^OPEN^DEPOSITED^CONFIRMED^PROCESSED^VOID","^",+$P(DATA,"^",12)+1)
  1. . . S LIST(CNT)=RCIEN_"^"_$P(DATA,U,1)_"^"_LINE
  1. ;
  1. ; If no deposits in the LIST, display a message and try again
  1. I CNT=0 D G DT1
  1. . W !,"Date ",$$DATE^RCDPRU(RCDT)," does not have any valid deposits, please try again...",!
  1. ;
  1. ; If only one deposit in the list, use it
  1. I CNT=1 D Q:STOP G DT1 ;PRCA*4.5*371 Changed Q to Q:STOP G DT1
  1. . S RCDATA=$$EFT(+LIST(CNT))
  1. . ;
  1. . ;PRCA*4.5*371 Begin Added lines
  1. . Q:RCDATA=-1
  1. . Q:RCDATA="" ; No EFTs found
  1. . D SHOWONE(.STOP) ; Display output
  1. . ;PRCA*4.5*371 End Added lines
  1. ;
  1. DT2 ; Multiple entries found so prompt for the one that is wanted ;PRCA*4.5*371 Added looping Tag
  1. W !!,"Deposits on ",$$DATE^RCDPRU(RCDT)
  1. K DIR,ITEM
  1. S DIR(0)="SAO^"
  1. S DIR("A")="Select DEPOSIT: "
  1. S DIR("L",1)=" Choose from:"
  1. F LINE=1:1:CNT D
  1. . S DATA=LIST(LINE),DIR(0)=DIR(0)_LINE_":"_$P(DATA,U,2)_";"
  1. . S DIR("L",LINE+1)=$P(DATA,U,3),ITEM(LINE)=+DATA
  1. . W !," ",$P(DATA,U,3)
  1. S DIR(0)=$E(DIR(0),1,$L(DIR(0))-1)
  1. S DIR("L")=DIR("L",CNT+1) K DIR("L",CNT+1)
  1. W !
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT) S RCDATA=-1 Q
  1. I Y="" G DT1
  1. S RCDATA=$$EFT(ITEM(Y))
  1. ;
  1. ;PRCA*4.5*371 - Added lines Begin
  1. Q:RCDATA=-1
  1. Q:RCDATA="" ; No EFTs found
  1. D SHOWONE(.STOP) ; Display output
  1. Q:STOP
  1. G DT2
  1. ;PRCA*4.5*371 - Added lines End
  1. Q
  1. ;
  1. TR(RCDATA) ; Lookup by Trace Number
  1. ; Input: RCDATA - null on entry
  1. ; Output: RCDATA - passed by refence - see subroutine EFTDATA for delimited list of fields
  1. N D,DIC,DTOUT,DUOUT,STOP,X,Y ;PRCA*4.5*371 Added STOP
  1. S STOP=0 ;PRCA*4.5*371 Added line
  1. ;
  1. TR2 ; Use "F" index in EDI EFT Detail file ;PRCA*4.5*371 Added looping Tag
  1. W !
  1. S DIC="^RCY(344.31,",DIC(0)="QEASn",D="F",DIC("A")="Select TRACE: "
  1. ; DIC("W") may need to be fixed if Trace numbers go over 32 characters. The fields
  1. ; displayed are the EFT#, Insurance company name, amount and Date Recieved.
  1. S DIC("W")="D EN^DDIOL($J($P(^(0),U,1),7)_"" ""_$$LJ^XLFSTR($E($P(^(0),U,2),1,20),20)_$J(($S($P(^(0),U,16)=""D"":""-"",1:"""")_$P(^(0),U,7)),10)_"" ""_$$DATE^RCDPRU($P(^(0),U,13)),,""?32"")"
  1. D IX^DIC
  1. I $D(DTOUT)!$D(DUOUT)!(Y=-1) S RCDATA=-1 Q
  1. S RCDATA=$$EFTDATA(+Y)
  1. ;
  1. ;PRCA*4.5*371 - Added lines Begin
  1. Q:RCDATA=-1
  1. Q:RCDATA="" ; No EFTs found
  1. D SHOWONE(.STOP) ; Display output
  1. Q:STOP
  1. G TR2
  1. ;PRCA*4.5*371 - Added lines End
  1. Q
  1. ;
  1. EFT(LOCKIEN) ; Select a single EFT Number
  1. ; Input: LOCKIEN - IEN for LOCKBOX DEPOSIT (#344.3)
  1. ; Return: LIST(Y) - Delimiter list of information as returned by suboutine EFTDATA
  1. ;
  1. I '$G(LOCKIEN) W !!,"No EFT detail for this selection" D PAUSE Q ""
  1. ;
  1. N EFTIEN,CNT,DATA,LIST,Y
  1. ;
  1. S EFTIEN="",CNT=0
  1. F S EFTIEN=$O(^RCY(344.31,"B",LOCKIEN,EFTIEN)) Q:EFTIEN="" D ;
  1. . S DATA=$$EFTDATA(EFTIEN) I DATA]"" S CNT=CNT+1,LIST(CNT)=DATA
  1. ;
  1. I CNT=0 W !!,"No EFT detail for this selection" D PAUSE Q ""
  1. ;
  1. ; If only one EFT, select it and quit
  1. I CNT=1 S Y=1 G EFT1
  1. ;
  1. ; Display and the let the user select the EFT
  1. N DIR,DIRUT,DIROUT,DTOUT,DUOUT,ROW,TRANS,X
  1. S DIR(0)="SO^"
  1. S DIR("A")="Select item from list"
  1. S DIR("L",1)="Select single EFT:"
  1. F ROW=1:1:CNT-1 D
  1. . S DATA=LIST(ROW),LOCKIEN=$P(DATA,U,2),EFTIEN=$P(DATA,U,3),TRANS=$$GET1^DIQ(344.31,EFTIEN_",",.01,"I")
  1. . S DIR(0)=DIR(0)_ROW_":"_TRANS_";"
  1. . S DIR("L",(ROW+1))=$J(ROW,3)_". "_TRANS_$$DISPLAY(EFTIEN,LOCKIEN) ; PRCA*4.5*326
  1. S DATA=LIST(CNT),LOCKIEN=$P(DATA,U,2),EFTIEN=$P(DATA,U,3),TRANS=$$GET1^DIQ(344.31,EFTIEN_",",.01,"I")
  1. S DIR(0)=DIR(0)_CNT_":"_TRANS
  1. S DIR("L")=$J(CNT,3)_". "_TRANS_$$DISPLAY(EFTIEN,LOCKIEN) ; PRCA*4.5*326
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT)!(Y="") Q -1
  1. ;
  1. EFT1 ;
  1. Q LIST(Y)
  1. ;
  1. EFTDATA(EFTIEN) ; Get associated records for this EFT
  1. ; Input: EFTIEN - IEN for EFT [344.31]
  1. ; Returns: A1^A2^A3^A4^45
  1. ; where A1=ERAIEN - IEN for ERA (#344.4)
  1. ; A2=LOCKIEN - IEN for LOCKBOX DEPOSIT (#344.3)
  1. ; A3=EFTIEN - IEN for EFT (#344.31)
  1. ; A4=DEPIEN - IEN for AR DEPOSIT (#344.1)
  1. ; A5=BATCHIEN - IEN for AR BATCH PAYMENT (#344)
  1. ;
  1. I '$G(EFTIEN) Q ""
  1. ;
  1. N BATCHIEN,DEPIEN,ERAIEN,LOCKIEN ;PRCA*4.5*321 removed DEPOSIT
  1. S (ERAIEN,DEPIEN,BATCHIEN)=""
  1. S ERAIEN=$$GET1^DIQ(344.31,EFTIEN,.1,"I") ;PRCA*4.5*321 use ^DIQ vs global access
  1. S LOCKIEN=$$GET1^DIQ(344.31,EFTIEN,.01,"I") ;PRCA*4.5*321
  1. I LOCKIEN S DEPIEN=$$GET1^DIQ(344.3,LOCKIEN,.03,"I") ;PRCA*4.5*321 instead of $O on B index of 344.1
  1. I DEPIEN S BATCHIEN=$O(^RCY(344,"AD",DEPIEN,""))
  1. Q ERAIEN_U_LOCKIEN_U_EFTIEN_U_DEPIEN_U_BATCHIEN
  1. ;
  1. DISPLAY(EFTIEN,LOCKIEN) ; Display EFT detail during user selection process
  1. ; Input: EFTIEN - IEN for EFT (#344.31)
  1. ; LOCKIEN - IEN for LOCKBOX DEPOSIT (#344.3)
  1. ; Return: X1_" "_X2_" "_X3_" "_X4_" "_X5
  1. ; where X1=PAYER NAME
  1. ; X2=TRACE NUMBER
  1. ; X3=AMOUNT OF PAYMENT
  1. ; X4=DEPOSIT NUMBER
  1. ; X5=DEPOSIT DATE
  1. N SUFX,X ; Added Suffix - PRCA*4.5*326
  1. S EFTIEN=$G(EFTIEN)
  1. S LOCKIEN=$G(LOCKIEN)
  1. S SUFX=$$GET1^DIQ(344.31,EFTIEN_",",.14) ; PRCA*4.5*326
  1. S:SUFX SUFX="."_SUFX ; PRCA*4.5*326
  1. S X=SUFX_$J("",4-$L(SUFX)) ; PRCA*4.5*326
  1. S X=X_$$GET1^DIQ(344.31,EFTIEN_",",.02)_" "_$$GET1^DIQ(344.31,EFTIEN_",",.04)_" " ; PRCA*4.5*326
  1. S X=X_$$GET1^DIQ(344.31,EFTIEN_",",.07)_" "_$$GET1^DIQ(344.3,LOCKIEN_",",.06)_" "
  1. S X=X_$$DATE^RCDPRU($$GET1^DIQ(344.3,LOCKIEN_",",.07,"I"),"2DZ")
  1. Q X
  1. ;
  1. COMPILE(RCDATA) ; Compile data for display
  1. ; Input: RCDATA - see subroutine EFTDA for delimited list of fields
  1. ; Output: ^TMP("RCDPTAR",$J)
  1. ;
  1. I $G(RCDATA)="" Q
  1. ;
  1. N BATCHIEN,DEPDATE,DEPIEN,EFTIEN,ERAIEN,FILEDATE,FMSDOCNO,IENS,LASTIEN,LINE,LOCKIEN
  1. N MATCHDATE,MATCHIEN,PROCDATE,STATUS,TRANS
  1. K ^TMP("RCDPTAR",$J)
  1. ;
  1. ; Get Pointers from RCDATA
  1. S ERAIEN=$P(RCDATA,U,1),LOCKIEN=$P(RCDATA,U,2),EFTIEN=$P(RCDATA,U,3)
  1. S DEPIEN=$P(RCDATA,U,4),BATCHIEN=$P(RCDATA,U,5)
  1. ;
  1. ; Get Inital Creation/Deposit information
  1. K RCDATA
  1. I LOCKIEN D
  1. . D GETS^DIQ(344.3,LOCKIEN_",",".02;.06;.08","IE","RCDATA")
  1. . S FILEDATE=$G(RCDATA(344.3,LOCKIEN_",",.02,"I"))
  1. . I 'FILEDATE Q
  1. . S ^TMP("RCDPTAR",$J,FILEDATE,1)="DEP#:"_$G(RCDATA(344.3,LOCKIEN_",",.06,"E"))_" DEP AMT:"_$G(RCDATA(344.3,LOCKIEN_",",.08,"E"))_"^EFT STATUS:RECEIVED"
  1. ;
  1. ; Check if posted to revenue code 8NZZ
  1. S TRANS=$$GET1^DIQ(344.31,EFTIEN_",",.14)
  1. I TRANS,$D(^RCY(344,+BATCHIEN,1,TRANS,0)),LOCKIEN,$D(RCDATA(344.3,LOCKIEN_",")) D
  1. . S DEPDATE=$$GET1^DIQ(344.1,DEPIEN_",",.07,"I")
  1. . I 'DEPDATE Q
  1. . S ^TMP("RCDPTAR",$J,DEPDATE,2)="DEP#:"_$G(RCDATA(344.3,LOCKIEN_",",.06,"E"))_" DEP AMT:"_$G(RCDATA(344.3,LOCKIEN_",",.08,"E"))_"^DEP STATUS:POSTED TO 8NZZ"
  1. ;
  1. ; Get Match Status History information
  1. I EFTIEN D
  1. . ; Get the Last IEN of the multiple
  1. . S LASTIEN=$O(^RCY(344.31,EFTIEN,4,999999),-1)
  1. . ; Loop through history and build data
  1. . S MATCHIEN=0 F S MATCHIEN=$O(^RCY(344.31,EFTIEN,4,MATCHIEN)) Q:'MATCHIEN D
  1. .. S IENS=MATCHIEN_","_EFTIEN_","
  1. .. D GETS^DIQ(344.314,IENS,"*","IE","RCDATA")
  1. .. S MATCHDATE=$G(RCDATA(344.314,IENS,.02,"I"))
  1. .. I MATCHDATE="" Q
  1. .. S STATUS=$G(RCDATA(344.314,IENS,.01,"E"))
  1. .. I STATUS="MATCHED WITH ERRORS" S STATUS="MATCHED W/ERRORS"
  1. .. S LINE="EFT STATUS:"_STATUS
  1. .. ; If this is the last record and the status is matched, add the ERA record to the data
  1. .. I MATCHIEN=LASTIEN,STATUS="MATCHED"!(STATUS="MATCHED W/ERRORS"),$$GET1^DIQ(344.31,EFTIEN_",",.1) S LINE=LINE_" ERA#:"_$$GET1^DIQ(344.31,EFTIEN_",",.1)
  1. .. S ^TMP("RCDPTAR",$J,MATCHDATE,3)=LINE_"^BY "_$E($G(RCDATA(344.314,IENS,.03,"E")),1,14)_" on "_$$DATE^RCDPRU(MATCHDATE,"2ZD")
  1. ;
  1. ; Get Receipt information (EFT)
  1. I BATCHIEN D
  1. . S PROCDATE=$$GET1^DIQ(344,BATCHIEN_",",.08,"I")
  1. . I 'PROCDATE Q
  1. . I $G(DEPDATE),PROCDATE<DEPDATE S PROCDATE=DEPDATE ;PRCA*4.5*321 add $G
  1. . S FMSDOCNO=$$FMSSTAT^RCDPUREC(BATCHIEN)
  1. . S ^TMP("RCDPTAR",$J,PROCDATE,5)="DEP RCPT#:"_$$GET1^DIQ(344,BATCHIEN_",",.01,"E")_" ENTRY#:"_BATCHIEN_"^FMS DOC#:"_$P(FMSDOCNO,U,1)_"^^DOC STATUS:"_$E($P(FMSDOCNO,U,2),1,18)
  1. ;
  1. ; Get Receipt information (ERA)
  1. S BATCHIEN=$$GET1^DIQ(344.4,ERAIEN_",",.08,"I")
  1. I BATCHIEN D
  1. . S PROCDATE=$$GET1^DIQ(344,BATCHIEN_",",.08,"I")
  1. . I $G(DEPDATE),PROCDATE<DEPDATE S PROCDATE=DEPDATE ; PRCA*4.5*321 add $G
  1. . I 'PROCDATE Q
  1. . S FMSDOCNO=$$FMSSTAT^RCDPUREC(BATCHIEN)
  1. . ;S ^TMP("RCDPTAR",$J,PROCDATE,6)="RCPT#:"_$$GET1^DIQ(344,BATCHIEN_",",.01,"E")_" EFT DETAIL#:"_EFTIEN_"^BY "_$E($$GET1^DIQ(344,BATCHIEN_",",.02,"E"),1,14)_" on "_$$DATE^RCDPRU(PROCDATE,"2DZ")
  1. . S ^TMP("RCDPTAR",$J,PROCDATE,6)="RCPT#:"_$$GET1^DIQ(344,BATCHIEN_",",.01,"E")_"^BY "_$E($$GET1^DIQ(344,BATCHIEN_",",.02,"E"),1,14)_" on "_$$DATE^RCDPRU(PROCDATE,"2DZ")
  1. . S ^TMP("RCDPTAR",$J,PROCDATE,7)="FMS DOC#:"_$P(FMSDOCNO,U,1)_"^DOC STATUS:"_$E($P(FMSDOCNO,U,2),1,18)
  1. Q
  1. ;
  1. REPORT(RCDATA) ; Print out the report
  1. ; Input: RCDATA - see subroutine EFTDA about for delimited list of fields
  1. ; Output: Write statements
  1. ;
  1. N CNT,DATE,DATA,LINES,RCHR,RCNOW,RCPG,RCSCR
  1. ;
  1. ; Initialize Report Date, Page Number and String of underscores
  1. S RCSCR=$S($E($G(IOST),1,2)="C-":1,1:0)
  1. S RCNOW=$$UP^XLFSTR($$NOW^RCDPRU()),RCPG=0,RCHR="",$P(RCHR,"-",IOM+1)=""
  1. ;
  1. U IO
  1. D HEADER(RCNOW,.RCPG,RCHR,RCDATA)
  1. I $G(RCDATA)=""!'$D(^TMP("RCDPTAR",$J)) W !,"No data found"
  1. ;
  1. ; Display the detail
  1. S DATE="" F S DATE=$O(^TMP("RCDPTAR",$J,DATE)) Q:'DATE D I RCPG=0 Q
  1. . S CNT=0 F S CNT=$O(^TMP("RCDPTAR",$J,DATE,CNT)) Q:'CNT D I RCPG=0 Q
  1. .. S DATA=^TMP("RCDPTAR",$J,DATE,CNT)
  1. .. S LINES=1
  1. .. I $P(DATA,U,3)]""!($P(DATA,U,4)]"") S LINES=2
  1. .. I RCSCR S LINES=LINES+1
  1. .. D CHKP(RCNOW,.RCPG,RCHR,RCDATA,RCSCR,LINES) I RCPG=0 Q
  1. .. W !,$$DATE^RCDPRU(DATE,"2DZ"),?10,$P(DATA,U,1),?51,$P(DATA,U,2)
  1. .. I $P(DATA,U,3)]""!($P(DATA,U,4)]"") W !,?10,$P(DATA,U,3),?51,$P(DATA,U,4)
  1. ;
  1. I 'RCSCR W !,@IOF
  1. I $D(ZTQUEUED) S ZTREQ="@" Q
  1. D ^%ZISC
  1. ;
  1. ; PRCA*4.5*371 - STOP if user enters '^'
  1. I RCPG,RCSCR S STOP=$S('$$PAUSE():1,1:0)
  1. Q
  1. ;
  1. ; Input: RCNOW - DATE/TIME in external format
  1. ; RCPG - Current page number
  1. ; RCHR - Line of "-" to margin width
  1. ; RCDATA - See subroutine EFTDA about for delimited list of fields
  1. ; Output: Write statements
  1. ;
  1. N EFTDATA,LINE
  1. S EFTDATA=$G(^RCY(344.31,+$P(RCDATA,U,3),0))
  1. ;
  1. W @IOF
  1. S RCPG=RCPG+1
  1. W "EFT TRANSACTION AUDIT REPORT"
  1. S LINE=RCNOW_" PAGE: "_RCPG_" "
  1. W ?(IOM-$L(LINE)),LINE
  1. ; Added EFT line identifier nnn.nn - PRCA*4.5*326
  1. W !,"EFT#: ",$$AGED(+$P(RCDATA,U,3)),$$GET1^DIQ(344.31,$P(RCDATA,U,3)_",",.01,"E"),?19,"DEPOSIT#: ",$P($G(^RCY(344.3,+$P(RCDATA,U,2),0)),U,6),?42,"EFT TOTAL AMT: "_$S($P(EFTDATA,U,16)="D":"-",1:"")_$P(EFTDATA,U,7)
  1. W !,"EFT TRACE#: ",$P(EFTDATA,U,4)
  1. W !,"DATE RECEIVED: ",$$DATE^RCDPRU($P(EFTDATA,U,12)),?26,"PAYER/ID: "_$P(EFTDATA,U,2)_"/"_$P(EFTDATA,U,3)
  1. ;
  1. W !,"DATE",?10,"ACTION/DETAILS",?51,"STATUS"
  1. W !,RCHR
  1. Q
  1. ;
  1. PAUSE() ; Pause at end of each page for user input
  1. ; Input: None
  1. ; Output: User response
  1. ;
  1. N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
  1. S DIR(0)="E"
  1. D ^DIR
  1. Q Y
  1. ;
  1. CHKP(RCNOW,RCPG,RCHR,RCDATA,RCSCR,LINES) ; Check if we need to do a page break
  1. ; Input: RCNOW - DATE/TIME in external format
  1. ; RCPG - Current page number
  1. ; RCHR - Line of "-" to margin width
  1. ; RCDATA - See subroutine EFTDA about for delimited list of fields
  1. ; RCSCR - 1 - Output is going to the users screen, 0 - to printer
  1. ; LINES - Current line count
  1. ;
  1. I $Y'>(IOSL-LINES) Q
  1. I RCSCR,'$$PAUSE S RCPG=0 Q
  1. D HEADER(RCNOW,.RCPG,RCHR,RCDATA)
  1. Q
  1. ;
  1. AGED(EFTIEN) ; Check if EFT is locked or stale
  1. ; Input
  1. ; EFTIEN: IEN of EDI THIRD PARTY EFT DETAIL (#344.31)
  1. ; Output
  1. ; "*" - Warning; "**" - Error; Null - Good
  1. N DAYSLIMT,RECVDT,TRARRY
  1. S RECVDT=$$GET1^DIQ(344.31,EFTIEN_",",.13,"I")
  1. I RECVDT<$$CUTOFF^RCDPEWLP Q "" ; EFTs 2 months older than *298 installation do not lock the system
  1. S DAYSLIMT("M")=$$GET1^DIQ(344.61,1,.06),DAYSLIMT("P")=$$GET1^DIQ(344.61,1,.07)
  1. D CHKEFT^RCDPEWLP(RECVDT,EFTIEN,"B",.DAYSLIMT,.TRARRY)
  1. I $D(TRARRY("ERROR")) Q "**"
  1. I $D(TRARRY("WARNING")) Q "*"
  1. Q ""