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

BARRPTD.m

Go to the documentation of this file.
  1. BARRPTD ; IHS/SD/PKD - Payment Summary Report by TDN or Date Range ;05/25/2010
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**19,23**;OCT 26, 2005
  1. ; IHS/SD/PKD - 05/25/10 - V1.8*19 Based on BARRPRP
  1. ; JULY 2013 FIXED BAREND IN DATE LOOP
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EN ; EP
  1. N TOTFIL,TCT,STR,LOC,LINE,QUIT,DUZ2
  1. N BARTOT,BARTOT2,BARTOLD,BARSRT,BARSAT,BARIEN,BARLTOT
  1. N BARGRDT,BARDASH,BARASK,SORT1,SORT2,SORTKEY,FILEHDR
  1. D:'$D(BARUSR) INIT^BARUTL ; Setup basic A/R variables
  1. S DUZ2=DUZ(2)
  1. K ^TMP($J,"BAR-PTD")
  1. S BARQ("RC")="COMPUTE^BARRPTD" ; Compute routine
  1. S BARQ("RP")="PRINT^BARRPTD2" ; Print routine
  1. S BARQ("NS")="BAR" ; Namespace for variables
  1. S BARQ("RX")="POUT^BARRUTL" ; Clean-up routine
  1. S BARP("RTN")="BARRPTD" ; Routine used to get data
  1. ;S BAR("PRIVACY")=1 ; Privacy act applies
  1. S BAR("LOC")="BILLING" ; Location is ALWAYS billing
  1. SLCT D ^BARRSEL ; Select exclusion parameters
  1. Q:X="^"!$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. I '$D(BARY("DT"))&('$D(BARY("TDN"))) W *7,!!,?10,"*** Dates or TDN's Required ***" G SLCT
  1. I $D(BARY("DT"))
  1. S LOC=DUZ(2)
  1. S DUZ(2)=DUZ2
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) Q
  1. ;
  1. ; Select entry of DATE RANGE or List of TDN's
  1. SEL ;
  1. K DIR ;
  1. N BARTEXT
  1. S DIR("A")="Output to Text Delimited File? "
  1. S DIR(0)="Y;;"
  1. S DIR("B")="N"
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) Q
  1. S BARTEXT=Y
  1. K DIR
  1. ;
  1. I BARTEXT D ^%ZIS D COMPUTE Q
  1. U IO
  1. D ^BARDBQUE ; Double queuing
  1. PAZ D POUT^BARRUTL ;D PAZ^BARRUTL
  1. Q
  1. ; *********************************************************************
  1. QUE ; EP
  1. K IO("Q")
  1. S ZTRTN="COMPUTE^BARRPTD",ZTDESC="TDN SUMMARY REPORT"
  1. S ZTSAVE("BAR*")=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !!?5,"REPORT CANCELLED!"
  1. E W !!?5,"REQUEST QUEUED AS TASK # "_ZTSK,!
  1. Q
  1. ;
  1. DATES ;
  1. ; Ask Collection Batch Open Date Range
  1. W !!," ============ Entry of COLLECTION BATCH DATE Range =============",!
  1. K BARY("TDN") ; Dates **OR** TDN's
  1. S BARSTART=$$DATE^BARDUTL(1)
  1. I BARSTART<1 Q
  1. I BARSTART>DT W *7,!,"Future dates invalid. Please re-enter." G DATES
  1. S BAREND=$$DATE^BARDUTL(2)
  1. I BAREND<1 W ! G DATES
  1. I BAREND<BARSTART!(BAREND>DT) D G DATES
  1. .W *7
  1. .W !!,"The END date must not be before the START date, or Future Date.",!
  1. S BARY("DT",1)=BARSTART
  1. S BARY("DT",2)=BAREND
  1. S BAREND=BAREND+.9
  1. S BARY("DT")="CB"
  1. Q
  1. ; ********************************************************************
  1. ;
  1. COMPUTE ; EP BY Date Range
  1. ; Find bills matching criteria and store in ^TMP($J,"BAR-PTD")
  1. K ^TMP($J,"BAR-PTD")
  1. ; Collection batch by Date Range
  1. ; Sort by Loc/Date/TDN/Collection Batch
  1. I BARSRT=1 D DTS
  1. I BARSRT=2 D TDN
  1. I BARTEXT D
  1. . D PRINT^BARRPTD2,POUT^BARRUTL
  1. . N TP S TP="C IO U 0" X TP
  1. Q
  1. ;
  1. DTS S BARDT=BARSTART-1 ; DATE.TIME
  1. F S BARDT=$O(^BARCOL(DUZ(2),"C",BARDT)) Q:((BARDT\1>BAREND)!(BARDT="")) D ;P.OTT
  1. . S SORT1=$P(BARDT,"."),BARGRDT=0
  1. . S BARIEN="" F S BARIEN=$O(^BARCOL(DUZ(2),"C",BARDT,BARIEN)) Q:'BARIEN D
  1. . . S GLODATA=$G(^BARCOL(DUZ(2),BARIEN,0)) Q:GLODATA=""
  1. . . N QUIT,VISLOC S QUIT=0
  1. . . S VISLOC=$P(GLODATA,U,8) I $D(BARY("LOC")) D Q:QUIT
  1. . . . I BARY("LOC")'=VISLOC S QUIT=1
  1. . . S SORT2=$$GET1^DIQ(90051.01,BARIEN,28) I SORT2="" Q:SORT2="" ; TDN/IPAC - Sort
  1. . . D DATA
  1. Q
  1. ; ********************************************************************
  1. ;
  1. TDN ; Pick-up all Collection batches w/ 1 TDN
  1. S (BARIEN,BARTDN)=""
  1. F S BARTDN=$O(BARY("TDN",BARTDN)) Q:BARTDN="" D
  1. . F S BARIEN=$O(^BARCOL(DUZ(2),"E",BARTDN,BARIEN)) Q:BARIEN="" D
  1. . . S GLODATA=$G(^BARCOL(DUZ(2),BARIEN,0)) Q:GLODATA=""
  1. . . N QUIT,VISLOC S QUIT=0
  1. . . S VISLOC=$P(GLODATA,U,8) I $D(BARY("LOC")) D Q:QUIT
  1. . . . I BARY("LOC")'=VISLOC S QUIT=1
  1. . . S SORT2=+$P(GLODATA,"^",4) ; Date Used for sort in ^TMP
  1. . . S SORT1=$$GET1^DIQ(90051.01,BARIEN,28) ; Get the TDN/IPAC - use for Sort
  1. . . D DATA
  1. Q
  1. ; ********************************************************************
  1. ;
  1. DATA ;
  1. ; Collect data for report
  1. K BARB
  1. S BARB("NAME")=$P(^BARCOL(DUZ(2),BARIEN,0),U) ;Collection batch name
  1. S BARB("AMT")=$$GET1^DIQ(90051.01,BARIEN,15) ; Batched amount
  1. S BARB("PST")=$$GET1^DIQ(90051.01,BARIEN,16) ; Batch posted amount
  1. S BARB("UPST")=$$GET1^DIQ(90051.01,BARIEN,17) ; Batch unposted amount
  1. S BARB("UNALL")=$$GET1^DIQ(90051.01,BARIEN,23) ; True Unallocated
  1. S BARB("RFND")=$$GET1^DIQ(90051.01,BARIEN,22) ; Batch Refunded
  1. S BARB("XFR")=$$GET1^DIQ(90051.01,BARIEN,560) ; Transfer Amount
  1. ; will save in string STR as: 15/16/23/22/560/17
  1. ; GrandTotalBatchedAmount:16
  1. S STR=BARB("AMT")_","_BARB("PST")_","_BARB("UNALL")_","_BARB("RFND")_","_BARB("XFR")_","_BARB("UPST")
  1. S ^TMP($J,"BAR-PTD",VISLOC,SORT1,SORT2,BARB("NAME"))=STR
  1. S TOTFIL="^TMP($J,""BAR-PTD"",VISLOC)" D TOTALS(TOTFIL) ; Location totals
  1. S TOTFIL="^TMP($J,""BAR-PTD"")" D TOTALS(TOTFIL) ; Grand Totals
  1. Q
  1. ; ********************************************************************
  1. ;
  1. TOTALS(TOTFIL) ; Accumulate Totals
  1. S BARTOLD=$G(@TOTFIL)
  1. S $P(BARTOLD,U)=$P(BARTOLD,U)+1 ;counter
  1. ; STR doesn't include a counter, SO piece in STR is 1 less
  1. S $P(BARTOLD,U,2)=$P(BARTOLD,U,2)+$P(STR,",",1)
  1. S $P(BARTOLD,U,3)=$P(BARTOLD,U,3)+$P(STR,",",2)
  1. S $P(BARTOLD,U,4)=$P(BARTOLD,U,4)+$P(STR,",",3)
  1. S $P(BARTOLD,U,5)=$P(BARTOLD,U,5)+$P(STR,",",4)
  1. S $P(BARTOLD,U,6)=$P(BARTOLD,U,6)+$P(STR,",",5)
  1. S $P(BARTOLD,U,7)=$P(BARTOLD,U,7)+$P(STR,",",6)
  1. S @TOTFIL=BARTOLD
  1. Q
  1. ;