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

BARRTBSL.m

Go to the documentation of this file.
  1. BARRTBSL ; IHS/SD/TPF - TREASURY DEPOSIT/BATCH STATISTICAL LISTING RPT ;08/20/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**6,19**;OCT 26, 2005
  1. ;
  1. ; SDD V1.8 PATCH 6 ITEM 4.1.4
  1. ;
  1. ;IHS/SD/AR BAR 1.8, PATCH 19 04/20/2010
  1. ; IHS/SD/PKD BAR 1.8*19 7/30/10 - Routine too long per SAC - create addt'l routine BARRTBS1
  1. ;
  1. ASKTYPE ;EP - ASK WHETHER WANT BATCH OR TRANXN RANGE
  1. D ^XBFMK
  1. W !!
  1. K DIR
  1. S DIR(0)="SA^1:BATCH;2:TRANSACTION"
  1. S DIR("A")="Enter date type (Batch/Transaction): "
  1. D ^DIR
  1. W !!
  1. Q:$D(DIRUT)!$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. Q:X=""!(X[U)
  1. N DATETYPE
  1. S DATETYPE=Y
  1. I Y=1 D ASKBFROM
  1. I Y=2 D ASKTFROM
  1. Q:$D(DIRUT)!$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. Q:X=""!(X[U)
  1. G ASKSORT
  1. ASKTFROM ;EP - ASK FROM TRANSACTION DATE
  1. N ALLOW,SORTTYP
  1. K %DT
  1. S %DT="AET"
  1. S %DT("A")="Enter beginning POSTING TRANSACTION date: "
  1. W !
  1. D ^%DT
  1. Q:X=""!(X[U)
  1. I Y<0 W !,"INVALID DATE. TRY AGAIN!" H 2 G ASKTFROM
  1. S BARFROM=Y
  1. ASKTTO ;EP - ASK TO TRANSACTION DATE
  1. K %DT
  1. S %DT="AET"
  1. S %DT("A")="Enter ending POSTING TRANSACTION date: "
  1. W !
  1. D ^%DT
  1. Q:X=""!(X[U)
  1. I Y<0 W !,"INVALID DATE. TRY AGAIN!" H 2 G ASKTTO
  1. S BARTO=Y
  1. I BARTO<BARFROM W !!,"END DATE MUST BE GREATER THAN BEGINING DATE" H 2 G ASKTFROM
  1. Q
  1. ASKBFROM ;EP - ASK FROM BATCH DATE
  1. N ALLOW,SORTTYP
  1. K %DT
  1. S %DT="AET"
  1. S %DT("A")="Enter beginning batch open date: "
  1. W !
  1. D ^%DT
  1. Q:X=""!(X[U)
  1. I Y<0 W !,"INVALID DATE. TRY AGAIN!" H 2 G ASKBFROM
  1. S BARFROM=Y
  1. ASKBTO ;EP - ASK TO BATCH DATE
  1. K %DT
  1. S %DT="AET"
  1. S %DT("A")="Enter ending batch open date: "
  1. W !
  1. D ^%DT
  1. Q:X=""!(X[U)
  1. I Y<0 W !,"INVALID DATE. TRY AGAIN!" H 2 G ASKBTO
  1. S BARTO=Y
  1. I BARTO<BARFROM W !!,"END DATE MUST BE GREATER THAN BEGINING DATE" H 2 G ASKBFROM
  1. Q
  1. ;IHS/SD/AR BAR 1.8, PATCH 19 04/20/2010
  1. ;
  1. ASKSORT ;EP - ASK USER TO SORT BY
  1. K DIR
  1. ;IHS/SD/AR BAR 1.8, PATCH 19 04/20/2010
  1. ;S DIR(0)="SO^1:ALLOWANCE CATEGORY;2:TDN/IPAC NUMBER"
  1. ;S DIR("A")="Sort Report by:"
  1. S DIR(0)="SO^1:ALLOWANCE CATEGORY;2:TDN/IPAC NUMBER;3:BOTH ALLOWANCE CATEGORY AND TDN/IPAC NUMBER SORTED BY ALLOWANCE CATEGORY;4:BOTH TDN/IPAC NUMBER AND ALLOWANCE CATEGORY SORTED BY TDN/IPAC THEN BY ALLOWANCE CATEGORY, SUBTOTAL BY TDN/IPAC"
  1. S DIR("A")="Sort Report by:"
  1. S DIR("L",1)="Select one of the following:"
  1. S DIR("L",2)=""
  1. S DIR("L",3)=" 1 ALLOWANCE CATEGORY"
  1. S DIR("L",4)=" 2 TDN/IPAC NUMBER"
  1. ;IHS/SD/AR BAR 1.8, PATCH 19 04/20/2010
  1. S DIR("L",5)=" 3 BOTH ALLOWANCE CATEGORY AND TDN/IPAC NUMBER"
  1. S DIR("L",6)=" SORTED BY ALLOWANCE CATEGORY THEN BY TDN/IPAC, SUBTOTAL"
  1. S DIR("L",7)=" BY ALLOWANCE CATEGORY"
  1. S DIR("L",8)=" 4 BOTH TDN/IPAC NUMBER AND ALLOWANCE CATEGORY"
  1. S DIR("L",9)=" SORTED BY TDN/IPAC THEN BY ALLOWANCE CATEGORY, SUBTOTAL BY TDN/IPAC"
  1. S DIR("B")=1
  1. D ^DIR
  1. G:$D(DTOUT)!$D(DIROUT)!$D(DUOUT)!(Y="") ASKTYPE
  1. ;
  1. N BARSORT
  1. S BARSORT=X
  1. I (X=1)!(X=3)!(X=4) D ASKALLOW(.ALLOW) ;GET LIST OF ALLOWANCES TO PULL
  1. ;
  1. ASKDEV ;EP - ASK DEVICE
  1. S %ZIS="AQ"
  1. W !
  1. D ^%ZIS
  1. ;IHS/SD/AR PATCH 19 06/03/2010
  1. ;G:POP ASKFROM
  1. ;I $D(IO("Q")) D QUE G ASKFROM
  1. G:POP ASKTYPE
  1. I $D(IO("Q")) D QUE G ASKTYPE
  1. U IO
  1. ;IHS/SD/AR PATCH 18 04/20/2010
  1. ;D SORT
  1. D:(DATETYPE=1) SORT
  1. D:(DATETYPE=2) TRANSORT
  1. ;D:DATETYPE=1 BATSET ;THESE CREATE THE BILLS GLOBAL
  1. ;D:DATETYPE=2 TRANSET
  1. ;D:BARSORT=3 ALLOW SORT NO ITEMS
  1. ;D:BARSORT=4 TDN SORT NO ITEMS
  1. I '$D(^XTMP("BARRTBSL",$J)) D G ASKTYPE
  1. .W !!,"THERE IS NO DATA TO PRINT"
  1. .K DIR
  1. .S DIR(0)="E"
  1. .D ^DIR
  1. ;
  1. D:(BARSORT=1)!(BARSORT=2) PRINT
  1. D:(BARSORT>2) PRINTNI^BARRTBS1
  1. ;D PRINT
  1. D ^%ZISC
  1. D HOME^%ZIS
  1. ;IHS/SD/AR PATCH 19 06/03/2010
  1. ;G ASKFROM
  1. G ASKTYPE
  1. Q
  1. ;
  1. SORTQ ;EP - ENTRY FROM TASK MAN
  1. D SORT
  1. I '$D(^XTMP("BARRTBSL",$J)) D Q
  1. .D TOPHDR
  1. .W !!,"THERE IS NO DATA TO PRINT"
  1. D PRINT
  1. Q
  1. ;
  1. QUE ; EP - QUE THE BARRTBSL REPORT
  1. S ZTRTN="SORTQ^BARRTBSL"
  1. S ZTDESC="BATCH STATISTICAL REPORT (TBSL)"
  1. S ZTSAVE("BARTO")=""
  1. S ZTSAVE("BARFROM")=""
  1. S ZTSAVE("ALLOW")=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !!?5,"Report Cancelled!"
  1. E W !!?5,"Report task #: ",$G(ZTSK)
  1. D HOME^%ZIS
  1. Q
  1. ;
  1. ASKALLOW(ALLOW) ;EP - ASK LIST OF ALLOWANCES TO PULL
  1. N DONE,LIST
  1. ;GET LIST OF ALLOWANCE CATEGORIES
  1. S LIST=$P($G(^DD(90051.02,7,0)),U,3)_"ALL:ALL CATEGORIES"
  1. K DIR
  1. S DIR(0)="SO^"_LIST
  1. S DIR("A")="Include Which Allowance Categories"
  1. S DIR("B")="ALL"
  1. S DONE=0
  1. F D Q:DONE
  1. .I $O(ALLOW("")) W !!,"You have chosen the following:"
  1. .S A=""
  1. .F S A=$O(ALLOW(A)) Q:A="" D
  1. ..W !?30,A
  1. .D ^DIR
  1. .I Y'="ALL" K DIR("B")
  1. .I $D(DTOUT)!$D(DIROUT)!$D(DUOUT)!(Y="") S DONE=1 Q
  1. .S ALLOW(Y)=""
  1. .I Y="ALL" K ALLOW S ALLOW="ALL",DONE=1
  1. I '$D(ALLOW) S ALLOW="ALL"
  1. Q
  1. ;
  1. TOPHDR ;EP - TOP HEADER
  1. D TOPHDR^BARRTBS1
  1. Q
  1. ;
  1. ITEMHDR ;EP - ITEM HEADER
  1. ;W !,"BATCH DATE"
  1. ;IHS/SD/AR PATCH 19 06/04/2010
  1. D ITEMHDR^BARRTBS1
  1. Q
  1. ;
  1. DATACHEK D DATACHEK^BARRTBS1 ; moved code to shorten routine
  1. Q
  1. ;
  1. PRINT D PRINT^BARRTBS1
  1. Q
  1. ;
  1. ;IHS/SD/AR PATCH 19 06/03/2010
  1. TRANSORT ;
  1. ;SORT BY ALLOWANCE CAT, THEN TDN, SUBT TDN, SUBT ALLOW
  1. N DATETIME,BARCOLDA,BARITMDA,ALLOWCAT,COLLIDDA,COLLIDNM,BATCHNM,COLIENS,NOW,SORTSUB2
  1. N ITEMIENS,ITMTDN,ITEMTOT,ITMPSTOT,ITMUNALL,ITMREFUN,ITMPSBAL,SORTSUB,END,BATSTAT
  1. K ^XTMP("BARRTBSL",$J)
  1. S DATETIME=BARFROM-.01
  1. S END=BARTO_".999999"
  1. S BATCHNM=""
  1. ;F S DATETIME=$O(^BARCOL(DUZ(2),"C",DATETIME)) Q:'DATETIME!(DATETIME>END) D
  1. F S DATETIME=$O(^BARTR(DUZ(2),"B",DATETIME)) Q:'DATETIME!(DATETIME>END) D
  1. .S BATCHNM=$$GET1^DIQ(90050.03,DATETIME,14) ;A/R COLLECTION BATCH NAME
  1. .Q:BATCHNM=""
  1. .S BARCOLDA=""
  1. .F S BARCOLDA=$O(^BARCOL(DUZ(2),"B",BATCHNM,BARCOLDA)) Q:'BARCOLDA D
  1. ..S COLIENS=BARCOLDA_","
  1. ..;S BATCHNM=$P($$GET1^DIQ(90051.01,COLIENS,.01,"E"),"-",2,999)_"-" ;A/R COLLECTION BATCH NAME
  1. ..;S BATCHNM=$$GET1^DIQ(90051.01,COLIENS,.01,"E") ;A/R COLLECTION BATCH NAME
  1. ..S COLLIDDA=$$GET1^DIQ(90051.01,COLIENS,2,"I") ;A/R COLLECTION POINT PTR
  1. ..S COLLIDNA=$$GET1^DIQ(90051.01,COLIENS,2,"E") ;A/R COLLECTION POINT NAME
  1. ..S ALLOWCAT=$$GET1^DIQ(90051.02,COLLIDDA_",",7,"I") ;ALLOWANCE CATEGORY
  1. ..S:ALLOWCAT="" ALLOWCAT="NULL" ;'MCR' FOR Medicare;
  1. ..; ;'MCD' FOR Medicaid;
  1. ..; ;'PVT' FOR Private Insurance;
  1. ..; ;'OTH' FOR Other;
  1. ..S BATSTAT=$$GET1^DIQ(90051.01,COLIENS,3,"I") ;BATCH STATUS
  1. ..;
  1. ..I $D(ALLOW)=10,('$D(ALLOW(ALLOWCAT))) Q ;SCREEN OUT UNCHOSEN ALLOWANCE CATEGORIES
  1. ..S BATCHTDN=$$GET1^DIQ(90051.01,COLIENS,28,"E") ;BATCH LEVEL 'TREASURY DEPOSIT NUMBER/IPAC
  1. ..S:BATCHTDN="" BATCHTDN="NULL"
  1. ..;IHS/SD/AR PATCH 19 06/04/2010
  1. ..S BATDNDT=$$GET1^DIQ(90051.01,COLIENS,30) ;BATCH LEVEL TDN DATE
  1. ..S:BATDNDT="" BATDNDT="NULL"
  1. ..;IHS/SD/AR PATCH 19 06/04/2010
  1. ..S BARITMDA=0
  1. ..F S BARITMDA=$O(^BARCOL(DUZ(2),BARCOLDA,1,BARITMDA)) Q:'BARITMDA D
  1. ...S ITEMIENS=BARITMDA_","_BARCOLDA_","
  1. ...S BARSTAT=$$GET1^DIQ(90051.1101,ITEMIENS,17,"I") ;ITEM STATUS 'C' = CANCELLED, 'R' ROLLED OVER
  1. ...Q:BARSTAT="R"!(BARSTAT="C")
  1. ...S ITMTDN=$$GET1^DIQ(90051.1101,ITEMIENS,20,"E") ;ITEM LEVEL 'TREASURY DEPOSIT NUMBER/IPAC
  1. ...S:ITMTDN="" ITMTDN="NULL"
  1. ...S ITEMTOT=$$GET1^DIQ(90051.1101,ITEMIENS,102.5,"E") ;CREDIT-DEBIT
  1. ...S ITMPSTOT=$$GET1^DIQ(90051.1101,ITEMIENS,18,"E") ;ITEM POSTING TOTAL
  1. ...S ITMUNTRU=$$GET1^DIQ(90051.1101,ITEMIENS,105,"E") ;TRUE ITEM UN-ALLOCATED
  1. ...S ITMUNTOT=$$GET1^DIQ(90051.1101,ITEMIENS,105.5,"E") ;ITEM TOTAL UN-ALLOCATED
  1. ...S ITMREFUN=$$GET1^DIQ(90051.1101,ITEMIENS,106,"E") ;ITEM REFUNDED
  1. ...S ITMTOTTR=$$GET1^DIQ(90051.1101,ITEMIENS,22,"E") ;ITEM TOTAL TRANSFER
  1. ...S ITMPSBAL=$$GET1^DIQ(90051.1101,ITEMIENS,19,"E") ;ITEM POSTING BALANCE
  1. ...;IHS/SD/AR PATCH 19 06/06/10
  1. ...;I $D(ALLOW) S SORTSUB=ALLOWCAT,SORTTYP="ALLOW"
  1. ...;E S SORTSUB=$S(BATCHTDN'="NULL":BATCHTDN,1:ITMTDN),SORTTYP="TDN"
  1. ...I (BARSORT=1)!(BARSORT=3) S SORTSUB=ALLOWCAT,SORTTYP="ALLOW",SORTSUB2=BATCHTDN
  1. ...E S SORTSUB=$S(BATCHTDN'="NULL":BATCHTDN,1:ITMTDN),SORTTYP="TDN",SORTSUB2=ALLOWCAT
  1. ...;IHS/SD/AR PATCH 19 06/04/2010
  1. ...;S ^XTMP("BARRTBSL",$J,SORTSUB,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT Q
  1. ...I (BARSORT<3) D
  1. ....S ^XTMP("BARRTBSL",$J,SORTSUB,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT_U_BATDNDT Q
  1. ...I (BARSORT>2) D
  1. ....S ^XTMP("BARRTBSL",$J,SORTSUB,SORTSUB2,BATDNDT,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT Q
  1. Q
  1. ;
  1. SORT ;EP- SORT FO TBSL REPORT
  1. N DATETIME,BARCOLDA,BARITMDA,ALLOWCAT,COLLIDDA,COLLIDNM,BATCHNM,COLIENS,NOW,SORTSUB2
  1. N ITEMIENS,ITMTDN,ITEMTOT,ITMPSTOT,ITMUNALL,ITMREFUN,ITMPSBAL,SORTSUB,END,BATSTAT
  1. K ^XTMP("BARRTBSL",$J)
  1. S DATETIME=BARFROM-.01
  1. S END=BARTO_".999999"
  1. F S DATETIME=$O(^BARCOL(DUZ(2),"C",DATETIME)) Q:'DATETIME!(DATETIME>END) D
  1. .S BARCOLDA=""
  1. .F S BARCOLDA=$O(^BARCOL(DUZ(2),"C",DATETIME,BARCOLDA)) Q:'BARCOLDA D
  1. ..S COLIENS=BARCOLDA_","
  1. ..;S BATCHNM=$P($$GET1^DIQ(90051.01,COLIENS,.01,"E"),"-",2,999)_"-" ;A/R COLLECTION BATCH NAME
  1. ..S BATCHNM=$$GET1^DIQ(90051.01,COLIENS,.01,"E") ;A/R COLLECTION BATCH NAME
  1. ..S COLLIDDA=$$GET1^DIQ(90051.01,COLIENS,2,"I") ;A/R COLLECTION POINT PTR
  1. ..S COLLIDNA=$$GET1^DIQ(90051.01,COLIENS,2,"E") ;A/R COLLECTION POINT NAME
  1. ..S ALLOWCAT=$$GET1^DIQ(90051.02,COLLIDDA_",",7,"I") ;ALLOWANCE CATEGORY
  1. ..S:ALLOWCAT="" ALLOWCAT="NULL" ;'MCR' FOR Medicare;
  1. ..; ;'MCD' FOR Medicaid;
  1. ..; ;'PVT' FOR Private Insurance;
  1. ..; ;'OTH' FOR Other;
  1. ..S BATSTAT=$$GET1^DIQ(90051.01,COLIENS,3,"I") ;BATCH STATUS
  1. ..;
  1. ..I $D(ALLOW)=10,('$D(ALLOW(ALLOWCAT))) Q ;SCREEN OUT UNCHOSEN ALLOWANCE CATEGORIES
  1. ..S BATCHTDN=$$GET1^DIQ(90051.01,COLIENS,28,"E") ;BATCH LEVEL 'TREASURY DEPOSIT NUMBER/IPAC
  1. ..S:BATCHTDN="" BATCHTDN="NULL"
  1. ..;IHS/SD/AR PATCH 19 06/04/2010
  1. ..S BATDNDT=$$GET1^DIQ(90051.01,COLIENS,30) ;BATCH LEVEL TDN DATE
  1. ..S:BATDNDT="" BATDNDT="NULL"
  1. ..;IHS/SD/AR PATCH 19 06/04/2010
  1. ..S BARITMDA=0
  1. ..F S BARITMDA=$O(^BARCOL(DUZ(2),BARCOLDA,1,BARITMDA)) Q:'BARITMDA D
  1. ...S ITEMIENS=BARITMDA_","_BARCOLDA_","
  1. ...S BARSTAT=$$GET1^DIQ(90051.1101,ITEMIENS,17,"I") ;ITEM STATUS 'C' = CANCELLED, 'R' ROLLED OVER
  1. ...Q:BARSTAT="R"!(BARSTAT="C")
  1. ...S ITMTDN=$$GET1^DIQ(90051.1101,ITEMIENS,20,"E") ;ITEM LEVEL 'TREASURY DEPOSIT NUMBER/IPAC
  1. ...S:ITMTDN="" ITMTDN="NULL"
  1. ...S ITEMTOT=$$GET1^DIQ(90051.1101,ITEMIENS,102.5,"E") ;CREDIT-DEBIT
  1. ...S ITMPSTOT=$$GET1^DIQ(90051.1101,ITEMIENS,18,"E") ;ITEM POSTING TOTAL
  1. ...S ITMUNTRU=$$GET1^DIQ(90051.1101,ITEMIENS,105,"E") ;TRUE ITEM UN-ALLOCATED
  1. ...S ITMUNTOT=$$GET1^DIQ(90051.1101,ITEMIENS,105.5,"E") ;ITEM TOTAL UN-ALLOCATED
  1. ...S ITMREFUN=$$GET1^DIQ(90051.1101,ITEMIENS,106,"E") ;ITEM REFUNDED
  1. ...S ITMTOTTR=$$GET1^DIQ(90051.1101,ITEMIENS,22,"E") ;ITEM TOTAL TRANSFER
  1. ...S ITMPSBAL=$$GET1^DIQ(90051.1101,ITEMIENS,19,"E") ;ITEM POSTING BALANCE
  1. ...;IHS/SD/AR PATCH 19 06/06/10
  1. ...;I $D(ALLOW) S SORTSUB=ALLOWCAT,SORTTYP="ALLOW"
  1. ...;E S SORTSUB=$S(BATCHTDN'="NULL":BATCHTDN,1:ITMTDN),SORTTYP="TDN"
  1. ...I (BARSORT=1)!(BARSORT=3) S SORTSUB=ALLOWCAT,SORTTYP="ALLOW",SORTSUB2=BATCHTDN
  1. ...E S SORTSUB=$S(BATCHTDN'="NULL":BATCHTDN,1:ITMTDN),SORTTYP="TDN",SORTSUB2=ALLOWCAT
  1. ...;IHS/SD/AR PATCH 19 06/04/2010
  1. ...;S ^XTMP("BARRTBSL",$J,SORTSUB,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT Q
  1. ...I (BARSORT<3) D
  1. ....S ^XTMP("BARRTBSL",$J,SORTSUB,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT_U_BATDNDT Q
  1. ...I (BARSORT>2) D
  1. ....S ^XTMP("BARRTBSL",$J,SORTSUB,SORTSUB2,BATDNDT,BATCHNM,BARITMDA)=COLLIDNA_U_$S(BATCHTDN'="NULL":BATCHTDN_"~",1:ITMTDN)_U_ITEMTOT_U_ITMPSTOT_U_ITMUNTRU_U_ITMUNTOT_U_ITMREFUN_U_ITMTOTTR_U_ITMPSBAL_U_BATSTAT Q
  1. Q
  1. ;