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

ACRFT25H.m

Go to the documentation of this file.
  1. ACRFT25H ;IHS/OIRM/DSD/AEF - FIND TRAVEL VOUCHERS > $2500 [ 09/26/2005 9:44 AM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**19**;NOV 05, 2001
  1. ;
  1. ;
  1. DESC ;----- ROUTINE DESCRIPTION
  1. ;;
  1. ;;This routine will loop through the travel vouchers and find all
  1. ;;those that total more than $2500.00 for the date range specified.
  1. ;;The resulting report shows the document number, traveler name,
  1. ;;departure date, return date, CAN number, department account, and
  1. ;;amount claimed.
  1. ;;
  1. ;;$$END
  1. Q
  1. ;
  1. EN ;----- MAIN ENTRY POINT
  1. ;
  1. N ACRDATES,ACROUT,ZTDESC,ZTRTN,ZTSAVE,X,Y
  1. ;
  1. D ^XBKVAR
  1. D HOME^%ZIS
  1. ;
  1. D TXT
  1. ;
  1. D DATES(.ACRDATES,.ACROUT)
  1. Q:ACROUT
  1. ;
  1. S ZTRTN="DQ^ACRFT25H"
  1. S ZTSAVE("ACRDATES")=""
  1. S ZTDESC="TRAVEL ORDERS EXCEEDING $2500"
  1. D QUE^ACRFUTL(ZTRTN,.ZTSAVE,.ZTDESC)
  1. ;
  1. Q
  1. DATES(ACRDATES,ACROUT) ;
  1. ;----- ASK BEGINNING TRAVEL DATE RANGE
  1. ;
  1. DLOOP ;----- DATE LOOP
  1. ;
  1. N ACRBEG,ACREND,DIR,DIRUT,DTOUT,DUOUT,X,Y
  1. W !
  1. S ACROUT=1
  1. S DIR(0)="DO^::E"
  1. S DIR("A")="Begin with DATE OF DEPARTURE"
  1. S DIR("?")="The date to be included in the date range"
  1. D ^DIR
  1. Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
  1. Q:Y=""
  1. S ACRBEG=Y
  1. S DIR("A")="End with DATE OF DEPARTURE"
  1. D ^DIR
  1. Q:$D(DTOUT)!($D(DTOUT))!($D(DIRUT))
  1. Q:Y=""
  1. S ACREND=Y_".999999"
  1. I ACREND<ACRBEG D G DLOOP
  1. . W *7,!?5,"ENDING DATE cannot be less than BEGINNING DATE"
  1. S ACRDATES=ACRBEG_U_ACREND
  1. S ACROUT=0
  1. Q
  1. DQ ;EP -- QUEUED REPORT STARTS HERE
  1. ;
  1. D GET(ACRDATES)
  1. D PRINT(ACRDATES)
  1. K ^TMP("ACR",$J,"TVL2500")
  1. D ^%ZISC
  1. Q
  1. GET(ACRDATES) ;
  1. ;----- LOOP THROUGH "REF" CROSSREFERENCE
  1. ; GATHER DATA AND PUT INTO ^TMP("ACR",$J,"TVL2500" GLOBAL
  1. ;
  1. N ACRAMT,ACRBEG,ACRCAN,ACRDEPT,ACRDOC0,ACRDOCDA,ACRDOCNO,ACRDTBEG,ACRDTEND,ACREND,ACRFY,ACRREF,ACRTO,ACRTRAV
  1. K ^TMP("ACR",$J,"TVL2500")
  1. S ACRREF=$O(^AUTTDOCR("B",600,0))
  1. Q:'ACRREF
  1. S ACRBEG=$P(ACRDATES,U)
  1. S ACREND=$P(ACRDATES,U,2)
  1. ;
  1. S ACRDOCDA=0
  1. F S ACRDOCDA=$O(^ACRDOC("REF",ACRREF,ACRDOCDA)) Q:'ACRDOCDA D
  1. . Q:$P($G(^ACRDOC(ACRDOCDA,0)),U,14)["CANCEL"
  1. . S ACRDTBEG=$P($G(^ACRDOC(ACRDOCDA,"TO")),U,14)
  1. . Q:ACRDTBEG<ACRBEG
  1. . Q:ACRDTBEG>ACREND
  1. . S ACRDOC0=$G(^ACRDOC(ACRDOCDA,0))
  1. . S ACRDOCNO=$P(ACRDOC0,U)
  1. . S ACRTO=$G(^ACRDOC(ACRDOCDA,"TO"))
  1. . S ACRTRAV=$P(ACRTO,U,9)
  1. . ;I ACRTRAV S ACRTRAV=$P($G(^VA(200,ACRTRAV,0)),U) ;ACR*2.1*19.02 IM16848
  1. . I ACRTRAV S ACRTRAV=$$NAME2^ACRFUTL1(ACRTRAV) ;ACR*2.1*19.02 IM16848
  1. . S ACRDTBEG=$P(ACRTO,U,14)
  1. . I ACRDTBEG]"" S ACRDTBEG=$E(ACRDTBEG,4,5)_"/"_$E(ACRDTBEG,6,7)_"/"_$E(ACRDTBEG,2,3)
  1. . S ACRDTEND=$P(ACRTO,U,15)
  1. . I ACRDTEND]"" S ACRDTEND=$E(ACRDTEND,4,5)_"/"_$E(ACRDTEND,6,7)_"/"_$E(ACRDTEND,2,3)
  1. . S ACRAMT=$$TOTAMT^ACRFSSU(ACRDOCDA)
  1. . S ACRCAN=$P($G(^ACRDOC(ACRDOCDA,"REQ")),U,10)
  1. . I ACRCAN S ACRCAN=$P($G(^AUTTCAN(ACRCAN,0)),U)
  1. . S ACRDEPT=$P(ACRDOC0,U,6)
  1. . S ACRFY=""
  1. . I ACRDEPT S ACRFY=$P($G(^ACRLOCB(ACRDEPT,"DT")),U)
  1. . S ^TMP("ACR",$J,"TVL2500",$E(ACRDOCNO,1,10),1_$E(ACRDOCNO,11,13))=ACRDOCNO_U_ACRTRAV_U_ACRDTBEG_U_ACRDTEND_U_ACRCAN_U_ACRDEPT_U_ACRFY_U_ACRAMT
  1. . S ^TMP("ACR",$J,"TVL2500",$E(ACRDOCNO,1,10),0)=$G(^TMP("ACR",$J,"TVL2500",$E(ACRDOCNO,1,10),0))+ACRAMT
  1. Q
  1. ;
  1. PRINT(ACRDATES) ;
  1. ;----- LOOP THROUGH ^TMP("ACR",$J,"TVL2500" GLOBAL AND PRINT REPORT
  1. ;
  1. N ACR,ACRDATA,ACRDOCNO,ACROUT,ACRPAGE,ACRZ
  1. D HDR(ACRDATES,.ACROUT,.ACRPAGE)
  1. S ACRZ=1
  1. S ACRDOCNO=""
  1. F S ACRDOCNO=$O(^TMP("ACR",$J,"TVL2500",ACRDOCNO)) Q:ACRDOCNO']"" D Q:$G(ACROUT)
  1. . Q:^TMP("ACR",$J,"TVL2500",ACRDOCNO,0)<2500
  1. . S ACRZ=0
  1. . S ACR=0
  1. . F S ACR=$O(^TMP("ACR",$J,"TVL2500",ACRDOCNO,ACR)) Q:'ACR D Q:$G(ACROUT)
  1. . . S ACRDATA=^TMP("ACR",$J,"TVL2500",ACRDOCNO,ACR)
  1. . . I $Y>(IOSL-5) D HDR(ACRDATES,.ACROUT,.ACRPAGE)
  1. . . Q:$G(ACROUT)
  1. . . W !
  1. . . W $P(ACRDATA,U)
  1. . . W ?15,$E($P(ACRDATA,U,2),1,15)
  1. . . W ?31,$P(ACRDATA,U,3)
  1. . . W ?40,$P(ACRDATA,U,4)
  1. . . W ?49,$P(ACRDATA,U,5)
  1. . . W ?57,$J($P(ACRDATA,U,6),6)
  1. . . W ?64,$P(ACRDATA,U,7)
  1. . . W ?68,$J($P(ACRDATA,U,8),12,2)
  1. . W !?72,"--------"
  1. . W !?61,"TOTAL"
  1. . W ?68,$J(^TMP("ACR",$J,"TVL2500",ACRDOCNO,0),12,2)
  1. . W !
  1. I ACRZ D
  1. . W !?5,"NO DATA FOUND"
  1. Q
  1. HDR(ACRDATES,ACROUT,ACRPAGE) ;
  1. ;----- PRINT REPORT HEADER
  1. ;
  1. N DIR,X
  1. S ACROUT=0
  1. I $E($G(IOST))="C",$G(ACRPAGE) D Q:$G(ACROUT)
  1. . S DIR(0)="E"
  1. . D ^DIR
  1. . I 'Y S ACROUT=1
  1. S ACRPAGE=$G(ACRPAGE)+1
  1. ;
  1. W @IOF
  1. W !,"TRAVEL VOUCHERS EXCEEDING $2500, "
  1. S X=$P(ACRDATES,U)
  1. W $E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3)
  1. W "-"
  1. S X=$P(ACRDATES,U,2)
  1. W $E(X,4,5)_"/"_$E(X,6,7)_"/"_$E(X,2,3)
  1. W ?52,$$NOW^ACRFUTL
  1. W " PAGE ",$G(ACRPAGE)
  1. W !,"TRAVEL"
  1. W ?31,"DEPART"
  1. W ?40,"RETURN"
  1. W ?49,"CAN"
  1. W ?59,"DEPT"
  1. W ?64,"FY"
  1. W !,"VOUCHER NO."
  1. W ?15,"TRAVELER"
  1. W ?31,"DATE"
  1. W ?40,"DATE"
  1. W ?49,"NO."
  1. W ?59,"ACCT"
  1. W ?64,"FUNDS"
  1. W ?74,"AMOUNT"
  1. W !
  1. F I=1:1:80 W "-"
  1. Q
  1. TXT ;----- WRITE ROUTINE DESCRIPTION
  1. ;
  1. N I
  1. F I=1:1 S X=$P($T(DESC+I),";",3) Q:X["$$END" W !,X
  1. Q