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

IBOCPDS.m

Go to the documentation of this file.
  1. IBOCPDS ;ALB/ARH - CLERK PRODUCTIVITY REPORT, SUMMARY ; 10/8/91
  1. ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
  1. ;
  1. EN ;get parameters then run the report
  1. D HOME^%ZIS
  1. S IBHDR="CLERK PRODUCTIVITY SUMMARY REPORT"
  1. W @IOF,?22,IBHDR,!!
  1. S IBFLD="Date Entered"
  1. D RANGE^IBOCPD G:IBQUIT EXIT
  1. W !!
  1. DEV ;get the device
  1. S %ZIS="QM",%ZIS("A")="OUTPUT DEVICE: " D ^%ZIS G:POP EXIT
  1. I $D(IO("Q")) S ZTRTN="ENT^IBOCPDS",ZTDESC="Clerk Productivity Summary Report",ZTSAVE("IB*")="" D ^%ZTLOAD K IO("Q") G EXIT
  1. U IO
  1. ;***
  1. ;I $D(XRT0) S:'$D(XRTN) XRTN="IBOCPDS" D T1^%ZOSV ;stop rt clock
  1. ENT ;find, save, and print the data that satisfies the search parameters
  1. ;entry for tasked jobs
  1. ;***
  1. ;S XRTL=$ZU(0),XRTN="IBOCPDS-2" D T0^%ZOSV ;start rt clock
  1. S IBCDT=IBBEG-.001,IBE=IBEND+.3,U="^",IBQUIT=0
  1. F S IBCDT=$O(^DGCR(399,"APD",IBCDT)) Q:IBCDT=""!(IBCDT>IBE)!IBQUIT S IFN="" D S IBQUIT=$$STOP
  1. . F S IFN=$O(^DGCR(399,"APD",IBCDT,IFN)) Q:IFN="" D FILE
  1. I $D(^TMP("IB",$J)),'IBQUIT D PRINT
  1. ;
  1. EXIT ;clean up and quit
  1. K ^TMP("IB",$J)
  1. ;***
  1. ;I $D(XRT0) S:'$D(XRTN) XRTN="IBOCPDS" D T1^%ZOSV ;stop rt clock
  1. Q:$D(ZTQUEUED)
  1. K IBE,IBBEG,IBBEGE,IBEND,IBENDE,IBCDT,IFN,IBRT,IBCLK,IBTD,IBNODE,IBPGN,IBLN,IBHDR,IBFLD,IBQUIT,IBI,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. D ^%ZISC
  1. Q
  1. ;
  1. FILE ;save the data in sorted order in a temporary file
  1. S IBRT=$P($G(^DGCR(399,IFN,0)),U,7) Q:'IBRT
  1. S IBCLK=$P($G(^VA(200,+$P($G(^DGCR(399,IFN,"S")),U,2),0)),U,1) Q:IBCLK=""
  1. S IBTD=$P($G(^DGCR(399,IFN,"U1")),U,1)
  1. S IBNODE=$G(^TMP("IB",$J)),^($J)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)
  1. S IBNODE=$G(^TMP("IB",$J,IBCLK)),^(IBCLK)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)
  1. S IBNODE=$G(^TMP("IB",$J,IBCLK,IBRT)),^(IBRT)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)
  1. S IBNODE=$G(^TMP("IB",$J,"~~")),^("~~")=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)
  1. S IBNODE=$G(^TMP("IB",$J,"~~",IBRT)),^(IBRT)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)
  1. Q
  1. ;
  1. PRINT ;print the report from the temp sort file to the appropriate device
  1. S IBCLK="",IBPGN=0
  1. D HDR F S IBCLK=$O(^TMP("IB",$J,IBCLK)) Q:IBCLK=""!(IBQUIT) D LINE
  1. W !!,"TOTAL:",?50,$J($P(^TMP("IB",$J),U,1),8),?60,$J($P(^($J),U,2),15,2),!
  1. D:'IBQUIT PAUSE
  1. Q
  1. ;
  1. LINE ;print all data for a particular clerk
  1. W !,$S(IBCLK'="~~":$E(IBCLK,1,25),1:"RATE TYPE TOTALS") S IBLN=IBLN+1
  1. S IBRT="" F S IBRT=$O(^TMP("IB",$J,IBCLK,IBRT)) Q:IBRT=""!(IBQUIT) D S IBLN=IBLN+1 I IBLN>(IOSL-7) D PAUSE,HDR
  1. . W ?30,$E($P(^DGCR(399.3,IBRT,0),U,1),1,20),?50,$J($P(^TMP("IB",$J,IBCLK,IBRT),U,1),8),?60,$J($P(^(IBRT),U,2),15,2),!
  1. W ?50," ------",?60," ------------"
  1. W !,?30,"SUBTOTAL:",?50,$J($P(^TMP("IB",$J,IBCLK),U,1),8),?60,$J($P(^(IBCLK),U,2),15,2),! S IBLN=IBLN+2
  1. Q
  1. ;
  1. HDR ;print the report header
  1. S IBQUIT=$$STOP Q:IBQUIT S IBPGN=IBPGN+1,IBLN=5
  1. D NOW^%DTC S Y=$E(%,1,12) D DD^%DT S IBCDT=$P(Y,"@",1)_" "_$P(Y,"@",2)
  1. I IBPGN>1!($E(IOST,1,2)["C-") W @IOF
  1. W "CLERK PRODUCTIVITY SUMMARY FOR ",IBBEGE," - ",IBENDE I IOM<85 W !
  1. W ?(IOM-30),IBCDT,?(IOM-8),"PAGE ",IBPGN,!
  1. W !,"ENTERED BY",?30,"RATE TYPE",?53,"COUNT",?69,"AMOUNT",!
  1. F IBI=1:1:IOM W "-"
  1. W !
  1. Q
  1. ;
  1. PAUSE ;pause at end of screen if beeing displayed on a terminal
  1. Q:$E(IOST,1,2)'["C-"
  1. S DIR(0)="E" D ^DIR K DIR
  1. I $D(DUOUT)!($D(DIRUT)) S IBQUIT=1
  1. Q
  1. ;
  1. STOP() ;determine if user has requested the queued report to stop
  1. I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1 K ZTREQ I +$G(IBPGN) W !,"***TASK STOPPED BY USER***"
  1. Q +$G(ZTSTOP)