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

ACGSRT.m

Go to the documentation of this file.
  1. ACGSRT ;IHS/OIRM/DSD/THL,AEF - SORT CONTROLLER FOR REPORTS; [ 03/27/2000 2:22 PM ]
  1. ;;2.0t1;CONTRACT INFORMATION SYSTEM;;FEB 16, 2000
  1. ;;SORT CONTROLLER FOR REPORTS
  1. EN K ACGQUIT,ACGXZ
  1. D ^ACGSRT2
  1. Q:$D(ACGQUIT)
  1. EN1 D HEAD,CHOICE,EXIT Q
  1. W !!?80-$L(ACGX)\2,ACGX,!!?10,"The ",@ACGON,ACGRPT,@ACGOF," report can be sorted by one or more",!?10,"of the following attributes. '<==' indicates a mandatory selection.",! K ACGX,ACGFORC
  1. Q
  1. SORT W !!?10,"Sorting by: " S ACGXZZ=$O(ACGXZ(0)) Q:'ACGXZZ W ACGXZ(ACGXZZ) F S ACGXZZ=$O(ACGXZ(ACGXZZ)) Q:'ACGXZZ W !?16,"then: ",ACGXZ(ACGXZZ)
  1. Q
  1. CHOICE D M2 I $D(ACGXZ) D SORT
  1. S DIR(0)="NOA^1:"_ACGJ,DIR("A")=" Your choice (1"_$S((ACGJ)>1:"-"_(ACGJ),1:"")_"): ",DIR("?")="Type "_$S((ACGJ)>1:"a number from 1",1:"number 1: ")_$S((ACGJ)>1:"-"_(ACGJ)_":",1:"")
  1. W !
  1. D DIR^ACGSDIC
  1. Q:$D(ACGQUIT)!(Y<1)
  1. S ACGZZ=+Y
  1. I '$D(ACGUB(ACGZZ)) W !!?10,ACGZZ," has already been processed.",!! G CHOICE
  1. G:'ACGZZ CHOICE
  1. OK S:'$D(ACGXZ) ACGXZ=0 S ACGYZ=ACGU(ACGZZ),(X,ACGSNO)=+ACGYZ,ACGSNA=$P(ACGYZ,U,2),ACGCSTG=ACGCSTG_ACGZZ_U S ACGXZ(ACGXZ+1)=ACGSNA,ACGXZ=ACGXZ+1
  1. ;ACGXZ_$S(ACGXZ'="":", then ",1:"")_
  1. K ACGYZ W " ",ACGSNA
  1. OK1 I BY'="" S BY=BY_","
  1. S ACGNAV=^ACGSRT(X,0)
  1. K ACGJ
  1. S ACGBY=^ACGSRT(X,3)
  1. D @("S"_$P(ACGNAV,U,2)_"^ACGSRT1")
  1. K ACGNAV
  1. I $D(ACGQUIT) Q
  1. I $D(ACGFORC) K ACGFORC D PRINT Q
  1. I ACGYI<2 S BY=BY_ACGBY D PRINT Q
  1. G:'$D(ACGBY) EN1
  1. S ACGUB(ACGZZ)=1
  1. I ACGBY="" K ACGXZ(ACGXZ) G EN1
  1. S BY=BY_ACGBY
  1. I BY[26 D PRINT Q
  1. W !!,"Within ",ACGSNA,", want to sort by another attribute"
  1. S %=2 D YN^DICN
  1. I %Y=U S ACGQUIT="" Q
  1. I "Nn"[$E(%Y) D CHECK G:$D(ACGFORC) OK D PRINT Q
  1. G EN1
  1. EXIT D EXIT^ACGSRT1 Q
  1. M2 K ACGU S ACGZ=0
  1. S ACGJJ=(ACGYI\2)+(ACGYI#2)
  1. F ACGJ=1:1:ACGJJ D
  1. .I $D(ACGUB(ACGJ)) S (ACGU(ACGJ),ACGSRT)=ACGUB(ACGJ),X=$P(ACGSRT,U,2),Y=$P(ACGSRT,U),ACGYZ=$P(ACGSRT,U,3) W !?8,$J(ACGJ,3),") " W:ACGUB(ACGJ)'=1 X I ACGYZ W " <==" S ACGMAND=ACGJ,ACGMANN=X,ACGMAN=Y_U_X
  1. .I $D(ACGUB(ACGJ+ACGJJ)) S (ACGU(ACGJ+ACGJJ),ACGSRT)=ACGUB(ACGJ+ACGJJ),X=$P(ACGSRT,U,2),Y=$P(ACGSRT,U),ACGYZ=$P(ACGSRT,U,3) W ?45 W $J(ACGJ+ACGJJ,3),") " W:ACGUB(ACGJ+ACGJJ)'=1 X I ACGYZ W " <==" S ACGMAND=ACGJ+ACGJJ,ACGMANN=X,ACGMAN=Y_U_X
  1. S ACGJ=ACGYI
  1. K ACGSRT,ACGZ,ACGYZ
  1. Q
  1. PRINT S DIC=ACGDIC
  1. K ACGJ
  1. I BY[26 D Q:$D(ACGQUIT) G FY
  1. .S DIR(0)="SO^1:Number and Dollar Amount Only;2:List of All Actions",DIR("A")="Which Report",DIR("B")=1,DIR("?",1)="Enter '1' to get the number of awards and total dollar amount only,"
  1. .S DIR("?")="Enter '2' to get list of all contract actions within the dollar range specified."
  1. .W !
  1. .D DIR^ACGSDIC
  1. .Q:$D(ACGQUIT)
  1. .S FLDS="[ACG DOLLAR AMOUNT"_$S(Y=1:" COUNT",1:"")_"]"
  1. S DIR(0)="SO^1:CONTRACT SUMMARY;2:BRIEF CONTRACT SUMMARY;3:COMPLETE DATA SET;4:SMALL PURCHASE SUMMARY;5:PURCHASE ORDER LISTING",DIR("B")="CONTRACT SUMMARY"
  1. W !
  1. D ^DIR K DIR
  1. Q:$D(ACGQUIT)
  1. S:Y=2 FLDS="[ACG CONTRACT DATA]",ACGAH=""
  1. S:Y=3 FLDS="[ACG PHSCIS SUMMARY]",ACGAH=""
  1. S:Y=4 FLDS="[ACG SP SUMMARY]",ACGAH=""
  1. S:Y=5 FLDS="[ACG 281 SOURCE DOCUMENTS]",ACGAH=""
  1. FY S DIR(0)="YO",DIR("A")="Print Report for one Fiscal Year only",DIR("B")="NO",DIR("?")="Enter 'Y' if you wish to print this report for only one Fiscal Year."
  1. W !
  1. D DIR^ACGSDIC
  1. Q:$D(ACGQUIT)
  1. I Y=1 D FY^ACGSEXP D
  1. .I ACGFY?2N S DIS(0)="I $D(^ACGS(D0,""DT"")) Q:+^(""DT"")=14 I $E($P(^(""DT""),U,2),4,5)="_ACGFY
  1. .E S ACGFY=""
  1. I FLDS="[ACG CONTRACT DATA]" W !!,"Select Fiscal Year for calculation of Fiscal Year TOTAL" D FY^ACGSEXP
  1. Q:$D(ACGQUIT)
  1. PRT1 S ZTDESC="CIS ADHOC REPORT",ZTRTN="DIP^ACGSRT"
  1. D ^ACGSZIS
  1. I $D(ACGQUIT) K ACGQUIT,ACGAH Q
  1. S DIOEND=$S(BY'[26:"D TAIL^ACGSPSUM ",1:"")_"W:IOST[""C-"" !!,""End of report."" D:IOST[""C-"" HOLD^ACGSMENU W:$D(IOF) @IOF"
  1. W ! D WAIT^DICD W !
  1. DIP I BY'[26 S:+BY'=1&(BY'["#1,")&(BY'[",1,") BY=BY_",@'.01",FR=FR_"0,",TO=TO_"0,"
  1. I +BY'=1&(BY'["#1,")&(BY'[",1,")&($E(FR)'="P")&(FR'[",P,"),+BY'=2&(BY'[",2,")&(BY'[",@2,") S BY=BY_",@2"
  1. I +BY'=1&(BY'["#1,")&(BY'[",1,")&($E(FR)'="P")&(FR'[",P,") S DIS(0)=$S($G(DIS(0))]"":DIS(0)_" ",1:"")_"I +$G(^ACGS(D0,""DT""))'=15,+$G(^(""DT""))'=17"
  1. DIS S IOP=ACGION
  1. S (ACGTD,ACGTI,ACGTOTD,ACGTOTI,ACGTOTDT,ACGTOTIT,ACGTOTDI)=0,DC=""
  1. I BY[26 D SUB26
  1. S:ACG4'=236 DIS(0)="I $P($G(^ACGS(D0,""DT"")),U,4)=ACG4 "_$S($D(DIS(0)):DIS(0),1:"")
  1. D EN1^DIP,^%ZISC
  1. K IOP,ACGAH,ACGDF,ACGDT
  1. Q
  1. CHECK I ACGCSTG[(U_ACGMAND_U) Q
  1. S ACGZZZ=ACGMAND,ACGFORC="",ACGN=ACGN+1
  1. W !!,*7,"You must also sort by"
  1. Q
  1. DOLLAR ;EP;
  1. K ACGQUIT
  1. S DIR(0)="YO",DIR("A")="Print Report for a specified Dollar Threshold",DIR("B")="NO"
  1. W !
  1. D DIR^ACGSDIC
  1. Q:Y'=1!$D(ACGQUIT)
  1. S DIR(0)="NO^0:99999999",DIR("A")="Dollar Threshold",DIR("?")="Enter the dollar threshold you wish to use for this report.",DIR("?",1)="Enter the dollar amount without commas or cents, e.g., '100000'."
  1. W !
  1. D DIR^ACGSDIC
  1. Q:+Y<1!$D(ACGQUIT)
  1. S ACGDOLLR=+Y,DIS(0)=$S($D(DIS(0)):DIS(0)_" ",1:"")_"I $D(^ACGS(D0,""IHS"")),$P(^(""IHS""),U,7)>(ACGDOLLR-1)"
  1. Q
  1. SUB26 ;
  1. N ACGI,X
  1. F ACGI=1:1:$L(BY,",") S X=$P(BY,",",ACGI) Q:X[26!(X[23)!(X[24)!(X[25) S:X'["+" X="+"_X,$P(BY,",",ACGI)=X
  1. Q