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

ASUROTVQ.m

Go to the documentation of this file.
  1. ASUROTVQ ; IHS/ITSC/LMH -HIGH VAL/QTY ITEM PRINT ;
  1. ;;4.2T2;Supply Accounting Mgmt. System;;JUN 30, 2000
  1. ;This routine selects Index items which have had the highest value
  1. ;total of issues or quantity of issues and prints a list in order
  1. ;from highest to lowest for a number of items selected.
  1. Q ;WAR 5/21/99
  1. D ^XBCLS D:'$D(ASUK) ^ASUVAR D:'$D(U) ^XBKVAR D:'$D(IO) HOME^%ZIS
  1. I '$D(^XTMP("ASUTVQ")) D G:$D(DUOUT)!($D(DTOUT)) END
  1. .W "NO DATA EXTRACTED FOR HIGH VALUE / QUANTITY ITEMS REPORT"
  1. .D TVQ0
  1. E D G:$D(DUOUT)!($D(DTOUT)) END
  1. .N DIR
  1. .S DIR(0)="Y",DIR("A")="Do you want to use data from last report" D ^DIR
  1. .Q:Y
  1. .D TVQ0
  1. S X=$G(^XTMP("ASUTVQ")) G:X']"" END
  1. S ASUU("DTFR")=$P(X,U),ASUU("DTFRDS")=$P(X,U,2),ASUU("DTTO")=$P(X,U,3),ASUU("DTTODS")=$P(X,U,4)
  1. S ASUU("ACC")=$P(X,U,5),ASUU("ACC","NM")=$P(X,U,6)
  1. K X
  1. S ASUL(1,"AR","NM")=$G(ASUL(1,"AR","NM"))
  1. I ASUL(1,"AR","NM")']"" K ASUL(1,"AR","AP") D AREA^ASULARST
  1. S ASUL(1,"AR","NM")=$G(ASUL(1,"AR","NM"))
  1. I ASUL(1,"AR","NM")']"" W !,"Unable to determine Area Name" Q
  1. W !!,"You may also choose how many high Value and Quantity items will be on the list",!
  1. S ASUU("TOP")=20
  1. K DIR S DIR(0)="N",DIR("A")="Enter Item Count: ",DIR("B")=ASUU("TOP") D ^DIR
  1. Q:$D(DTOUT) Q:$D(DUOUT)
  1. S ASUU("TOP")=+Y
  1. D O^ASUUZIS
  1. Q:$D(DTOUT) Q:$D(DUOUT)
  1. D U^ASUUZIS
  1. S ASUU("TYPE")="VAL",ASUC("LN")=IOSL+1 D LOOP
  1. S ASUU("TYPE")="QTY",ASUC("LN")=IOSL+1 D LOOP
  1. S ASUU("TYPE")="DEL",ASUU("TOP")=99999,ASUC("LN")=IOSL+1 D LOOP
  1. G END
  1. LOOP ;
  1. S (ASUHDA,ASUU("IDX"))=""
  1. S ASUC("PG")=1,ASUU("HIGH")="",ASUU(1)=1,ASUU("QUIT")=0
  1. F S ASUU("HIGH")=$O(^XTMP("ASUTVQ",ASUU("TYPE"),ASUU("HIGH"))) D LOOP2 Q:ASUU("QUIT")
  1. Q
  1. LOOP2 ;
  1. I ASUU("HIGH")']"" S ASUU("QUIT")=1 Q
  1. I ASUU(1)>ASUU("TOP") S ASUU("QUIT")=1 Q
  1. S ASUU("IDX")=""
  1. F ASUU(1)=ASUU(1):1 S ASUU("IDX")=$O(^XTMP("ASUTVQ",ASUU("TYPE"),ASUU("HIGH"),ASUU("IDX"))) Q:ASUU("IDX")']"" Q:ASUU(1)>ASUU("TOP") D
  1. .I ASUU(1)>ASUU("TOP") S ASUU("QUIT")=1 Q
  1. .I ASUC("LN")>ASUK(ASUK("PTR"),"IOSL") D
  1. ..W @ASUK(ASUK("PTR"),"IOF")
  1. ..W !,"SAMS LISTING OF TOP ",$S(ASUU("TYPE")="DEL":"ALL ITEMS WHICH HAVE BEEN DELETED",1:ASUU("TOP")_" ITEMS BY "_ASUU("TYPE"))," FOR ACCOUNT ",ASUU("ACC","NM"),?72,"PAGE: ",ASUC("PG")
  1. ..W !?10,"FOR REGIONAL SUPPLY SERVICE CENTER -",ASUL(1,"AR","NM")
  1. ..W !?10,"FOR DATE RANGE FROM ",ASUU("DTFRDS")," TO ",ASUU("DTTODS")
  1. ..S ASUC("LN")=0,ASUC("PG")=ASUC("PG")+1
  1. .S ASUHDA=$O(^ASUMX("B",ASUU("IDX"),""))
  1. .I ASUHDA']"" D Q
  1. ..Q:ASUU("TYPE")="DEL"
  1. ..S ^XTMP("ASUTVQ","DEL",1,ASUU("IDX"))=^XTMP("ASUTVQ",ASUU("TYPE"),ASUU("HIGH"),ASUU("IDX"))
  1. ..S ASUU(1)=ASUU(1) Q
  1. .S ASUV("DESC1")=$P(^ASUMX(ASUHDA,0),U,2)
  1. .S ASUV("DESC2")=$P(^ASUMX(ASUHDA,0),U,3)
  1. .S ASUV("U/I")=$P(^ASUMX(ASUHDA,0),U,4)
  1. .S ASUV("ACC")=$P(^XTMP("ASUTVQ",ASUU("IDX")),U,3)
  1. .S ASUV("QTY")=$P(^XTMP("ASUTVQ",ASUU("IDX")),U,2)
  1. .S ASUV("VAL2")=$P(^XTMP("ASUTVQ",ASUU("IDX")),U)
  1. .S ASUC("LN")=ASUC("LN")+3
  1. .I ASUU("TYPE")="DEL" D
  1. ..W !,"INDEX: ",$E(ASUU("IDX"),1,5),".",$E(ASUU("IDX"),6),?16,"QTY: ",$J(ASUV("QTY"),8)
  1. ..W ?35,"VALUE: ",$J($FN(ASUV("VAL2"),",",2),15),?72,"ACC: ",ASUV("ACC")
  1. .E D
  1. ..W !!,"NO.: ",ASUU(1),?10,ASUV("DESC1")," ",ASUV("DESC2"),?72,"U/I: ",ASUV("U/I")
  1. ..W !,"INDEX: ",$E(ASUU("IDX"),1,5),".",$E(ASUU("IDX"),6),?16,"QTY: ",$J(ASUV("QTY"),8)
  1. ..W ?35,"VALUE: ",$J($FN(ASUV("VAL2"),",",2),15),?72,"ACC: ",ASUV("ACC")
  1. Q
  1. TVQ0 ;
  1. D ^XBCLS D:'$D(U) ^XBKVAR D:'$D(IO) HOME^%ZIS K ^XTMP("ASUTVQ") S ^XTMP("ASUTVQ",0)=ASUK("DT","FM")+10000_U_ASUK("DT","FM")
  1. S (Y,ASUU("DT"))=2911001 X ^DD("DD") S ASUU("DTFRDS")=Y
  1. W !!,"The Top Value and Quantity report is created for either all accounts ",!,"or for a selected account and by a Date Range",!
  1. K DIR S DIR(0)="Y",DIR("B")="N",DIR("A")="Do you want the report for all Accounts" D ^DIR
  1. I X="Y" D
  1. .S ASUU("ACC")="A",ASUU("ACC","NM")="ALL"
  1. E D
  1. .K DIR S DIR(0)="P^9002039.09",DIR("A")="Enter Account: ",DIR("B")=1 D ^DIR
  1. .Q:$D(DTOUT) Q:$D(DUOUT)
  1. .S ASUU("ACC")=$P(Y,U,2),ASUU("ACC","NM")=$P($G(^ASUL(9,+Y,0)),U,3)
  1. W !!,"You now need to select the Date Range for the Report.",!
  1. K DIR S DIR(0)="D",DIR("A")="Enter Starting Date: ",DIR("B")=ASUU("DTFRDS") D ^DIR
  1. Q:$D(DTOUT) Q:$D(DUOUT)
  1. S (ASUU("DT"),ASUU("DTFR"))=Y X ^DD("DD") S ASUU("DTFRDS")=Y
  1. S (Y,ASUU("DTTO"))=ASUU("DTFR")+10000 X ^DD("DD") S ASUU("DTTODS")=Y
  1. K DIR S DIR(0)="D",DIR("A")="Enter Ending Date: ",DIR("B")=ASUU("DTTODS") D ^DIR
  1. Q:$D(DTOUT) Q:$D(DUOUT)
  1. S ASUU("DTTO")=Y X ^DD("DD") S ASUU("DTTODS")=Y
  1. I ASUU("DTTO")']ASUU("DTFR") W !,"The ending date you selected is not after the beginning date" Q
  1. W !,"EXTRACT DATE RANGE = ",ASUU("DTFR")," THROUGH ",ASUU("DTTO")
  1. S ^XTMP("ASUTVQ")=ASUU("DTFR")_U_ASUU("DTFRDS")_U_ASUU("DTTO")_U_ASUU("DTTODS")_U_ASUU("ACC")_U_ASUU("ACC","NM")
  1. F ASUC=0:1 S ASUU("DT")=$O(^ASUT(3,"AX",ASUU("DT"))) Q:ASUU("DT")>ASUU("DTTO") Q:ASUU("DT")']"" D
  1. .W !,"NOW PROCESSING EXTRACT DATE: ",ASUU("DT")
  1. .S ASUHDA="",ASUC("ACC")=0
  1. .F ASUU(0)=0:1 S ASUHDA=$O(^ASUT(3,"AX",ASUU("DT"),ASUHDA)) Q:ASUHDA']"" D
  1. ..D READ^ASU0TRRD(.ASUHDA,"H") Q:$G(ASUT)']""
  1. ..I ASUU("ACC")'="A",ASUT(ASUT,"ACC")'=ASUU("ACC") Q
  1. ..S ASUC("ACC")=ASUC("ACC")+1
  1. ..S ASUV("TVAL")=$P($G(^XTMP("ASUTVQ",ASUT(ASUT,"IDX"))),U)+ASUT(ASUT,"VAL")
  1. ..S ASUV("TQTY")=$P($G(^XTMP("ASUTVQ",ASUT(ASUT,"IDX"))),U,2)+ASUT(ASUT,"QTY","ISS")
  1. ..S ^XTMP("ASUTVQ",ASUT(ASUT,"IDX"))=ASUV("TVAL")_U_ASUV("TQTY")_U_ASUT(ASUT,"ACC")
  1. .W !,"PROCESSED: ",ASUU(0)," ISSUES "
  1. .W:ASUU("ACC")'="A" ASUC("ACC")," OF WHICH WERE FOR ACCOUNT ",ASUU("ACC","NM")
  1. I ASUC=0 W !,"NO DATA PROCESSED IN SELECTED DATE RANGE",! G END
  1. XREF ;
  1. I '$D(^XTMP("ASUTVQ")) W "NO DATA EXTRACTED FOR HIGH VALUE / QUANTITY ITEMS REPORT" G END
  1. S X=^XTMP("ASUTVQ"),ASUU("DTFR")=$P(X,U),ASUU("DTFRDS")=$P(X,U,2),ASUU("DTTO")=$P(X,U,3),ASUU("DTTODS")=$P(X,U,4),ASUU("ACC")=$P(X,U,5),ASUU("ACC","NM")=$P(X,U,6)
  1. S ASUU("IDX")=""
  1. F S ASUU("IDX")=$O(^XTMP("ASUTVQ",ASUU("IDX"))) Q:ASUU("IDX")'?1N.N D
  1. .S ASUU("VALRV")=$S($P(^XTMP("ASUTVQ",ASUU("IDX")),U)'>0:1,1:1/$P(^XTMP("ASUTVQ",ASUU("IDX")),U))
  1. .S ASUU("QTYRV")=$S($P(^XTMP("ASUTVQ",ASUU("IDX")),U,2)'>0:1,1:1/$P(^XTMP("ASUTVQ",ASUU("IDX")),U,2))
  1. .S ^XTMP("ASUTVQ","QTY",ASUU("QTYRV"),ASUU("IDX"))=""
  1. .S ^XTMP("ASUTVQ","VAL",ASUU("VALRV"),ASUU("IDX"))=""
  1. END ;
  1. D:$D(ASUK("PTR")) C^ASUUZIS
  1. K ASUC,ASU,ASUR,ASUV,ASUK
  1. Q