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

PRCPRODA.m

Go to the documentation of this file.
  1. PRCPRODA ;WOIFO/VAC-On-Demand Audit Activity Report ; 2/22/07 9:05am
  1. ;;5.1;IFCAP;**98**;Oct 20, 2000;Build 37
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. Q
  1. PRIMARY ;This routine displays the audit information on On-Demand Items updates
  1. N X,Y,GROUPALL,SRT,GROUP,ITEMFLG,PERS1,PERSNAM,TIMFLG,GR,GROUPYES
  1. N ITEMSEL,DATESTRT,DATEEND,GRPFLG,DESCR,NOW,ORDER,PRCPFLAG,X1,X2
  1. N POP,ZTDESC,ZTQUEUED,ZTRTN,ZTSAVE
  1. K ^TMP($J,"PRCPRODA")
  1. S DATESTRT=1,DATEEND=9999999
  1. D ^PRCPUSEL Q:'$G(PRCP("I"))
  1. K X S X(1)="The On-Demand Audit Report will print the audit trail for items in Primary and/or Secondary Inventory that are either designated as ODI or were designated as ODI but are not now."
  1. D DISPLAY^PRCPUX2(2,79,.X)
  1. ; Prompt for All or single item
  1. K X S X(1)="Select specific items to display."
  1. D DISPLAY^PRCPUX2(2,40,.X)
  1. S ITEMSEL=$$SINGIT^PRCPUX2(PRCP("I"))
  1. I ITEMSEL="^" Q
  1. ; set up ^TMP is single item selected, skip remaining prompts
  1. I ITEMSEL'="" D G BEGIN
  1. .S ORDER=ITEMSEL
  1. .S GRPFLG=$P($G(^PRCP(445,PRCP("I"),1,ITEMSEL,0)),"^",21)
  1. .I GRPFLG="" S GRPFLG=0
  1. .S DESCR=$$DESCR^PRCPUX1(PRCP("I"),ITEMSEL)
  1. .S:DESCR="" DESCR=" "
  1. .S I=0 F S I=$O(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I)) Q:+I=0 D
  1. ..S TIMFLG=($G(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I,0))*(-1))
  1. ..S ^TMP($J,"PRCPRODA",GRPFLG,PRCP("I"),ORDER,TIMFLG)=ITEMSEL_"^"_DESCR_"^"_$G(^PRCP(445,PRCP("I"),1,ITEMSEL,10,I,0))
  1. W !
  1. K X S X(1)="Select the date range which should be used for displaying the usage."
  1. D DISPLAY^PRCPUX2(2,40,.X)
  1. ;Select a date range to print
  1. D DATESEL^PRCPURS2("") I '$G(DATEEND) D Q Q
  1. S X1=DATEEND,X2=DATESTRT D ^%DTC
  1. W !,"-- TOTAL NUMBER OF DAYS: ",X+1,!
  1. K X S X(1)=""
  1. K X S X(1)="Select the Group categories to display." D DISPLAY^PRCPUX2(2,40,.X)
  1. D GROUPSEL^PRCPURS1(PRCP("I"))
  1. I '$G(GROUPALL),'$O(^TMP($J,"PRCPURS1","YES",0)) W !,"*** NO GROUP CATEGORIES SELECTED !" D Q Q
  1. W !,"NOTE: The report will",$S('$G(GROUPALL):" NOT",1:"")," include items not stored in a group category."
  1. DESC ; Ask user for Item#/Description sort preference
  1. S SRT=$$SRTPRMP^PRCPUX2(0)
  1. Q:SRT=0
  1. I (+SRT<1)!(SRT>2) G DESC
  1. ;
  1. BEGIN S %ZIS="Q" D ^%ZIS Q:POP I $D(IO("Q")) D D ^%ZTLOAD,HOME^%ZIS K IO("Q"),ZTSK Q
  1. . S ZTDESC="ON-DEMAND AUDIT REPORT",ZTRTN="DQ^PRCPRODA"
  1. . S ZTSAVE("PRCP*")="",ZTSAVE("GROUP*")="",ZTSAVE("^TMP($J,""PRCPURS1"",")="",ZTSAVE("ZTREQ")="@",ZTSAVE("S*")=""
  1. . S ZTSAVE("DATE*")="",ZTSAVE("ITEM*")=""
  1. W !!,"<*> please wait <*>"
  1. DQ ; queue starts here
  1. N X,Y,%,ITEMDA,D,CTR,DESCR,ORDER,I,PAGE,SCREEN
  1. N PRCPFLAG,GRPDESC,DIST,DAT,DATE0,DATE1,DATE2
  1. I ITEMSEL'="" G REPORT
  1. S ITEMDA=0 F S ITEMDA=$O(^PRCP(445,PRCP("I"),1,ITEMDA)) Q:'ITEMDA S D=$G(^(ITEMDA,0)) I D'="" D
  1. .; If no audit trail quit
  1. .I $G(^PRCP(445,PRCP("I"),1,ITEMDA,10,0))="" Q
  1. .S DESCR=$$DESCR^PRCPUX1(PRCP("I"),ITEMDA) S:DESCR="" DESCR=" "
  1. .; Determine the Group
  1. .S GROUP=+$P(D,"^",21),GRPFLG=GROUP
  1. .S GROUPYES="NO"
  1. .I $G(GROUPALL)=1 S GROUPYES="YES"
  1. .I $G(GROUPALL)="" D
  1. ..S GR="" F S GR=$O(^TMP($J,"PRCPURS1","YES",GR)) Q:GR="" D
  1. ...I GR=GRPFLG S GROUPYES="YES"
  1. .Q:GROUPYES="NO"
  1. .I SRT=1 S ORDER=DESCR
  1. .I SRT=2 S ORDER=ITEMDA
  1. .S I=0 F S I=$O(^PRCP(445,PRCP("I"),1,ITEMDA,10,I)) Q:+I=0 D
  1. . . S TIMFLG=+$P($G(^PRCP(445,PRCP("I"),1,ITEMDA,10,I,0)),".",1)
  1. . . Q:TIMFLG<DATESTRT
  1. . . Q:TIMFLG>DATEEND
  1. . . S TIMFLG=TIMFLG*(-1)
  1. . . S ^TMP($J,"PRCPRODA",GRPFLG,PRCP("I"),ORDER,TIMFLG)=ITEMDA_"^"_DESCR_"^"_$G(^PRCP(445,PRCP("I"),1,ITEMDA,10,I,0))
  1. ;
  1. REPORT ; Print Report
  1. D NOW^%DTC S Y=% D DD^%DT S NOW=$P(Y,"@",1),PAGE=1,SCREEN=$$SCRPAUSE^PRCPUREP U IO D H
  1. ;
  1. S GROUP="" F S GROUP=$O(^TMP($J,"PRCPRODA",GROUP)) Q:GROUP="" D Q:$D(PRCPFLAG)
  1. . I $G(ZTQUEUED),$$S^%ZTLOAD S PRCPFLAG=1 W !?10,"<<< TASKMANAGER JOB TERMINIATED BY USER >>>" Q
  1. .I $Y>(IOSL-8) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
  1. .I GROUP=0 S GRPDESC="<<NONE>>"
  1. .I GROUP'=0 D
  1. .. S GRPDESC=$$GROUPNM^PRCPEGRP(GROUP)
  1. .. S GRPDESC=$E(GRPDESC,1,20)_" (#"_GROUP_")"
  1. . W !?7,"GROUP: ",GRPDESC,!
  1. . S DIST="" F S DIST=$O(^TMP($J,"PRCPRODA",GROUP,DIST)) Q:DIST="" D Q:$D(PRCPFLAG)
  1. .. S ORDER="" F S ORDER=$O(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER)) Q:ORDER="" D Q:$D(PRCPFLAG)
  1. ... S ITEMFLG=""
  1. ... S TIMFLG="" F S TIMFLG=$O(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER,TIMFLG)) Q:TIMFLG="" D Q:$D(PRCPFLAG)
  1. .... S ITEMDA=$G(^TMP($J,"PRCPRODA",GROUP,DIST,ORDER,TIMFLG)) Q:ITEMDA=""
  1. .... I ITEMFLG="" D Q:$D(PRCPFLAG)
  1. ..... I $Y>(IOSL-6) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
  1. ..... W !,$P(ITEMDA,"^",1),?9,$P(ITEMDA,"^",2) S ITEMFLG="X"
  1. ....S DATE0=$P(ITEMDA,"^",3),DATE1=$P($$FMTE^XLFDT(DATE0,2),"@",1),DATE2=$P($$FMTE^XLFDT(DATE0,3),"@",2)
  1. ....S PERS1=$P(ITEMDA,"^",4),PERSNAM=$P(^VA(200,PERS1,20),"^",2)
  1. ....I $Y>(IOSL-5) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG) D H
  1. ....W !,?9,$P(ITEMDA,"^",6),?12,DATE1,?21,DATE2,?32,$E(PERSNAM,1,15),?49,$E($P(ITEMDA,"^",5),1,30)
  1. ... W !
  1. .. W !
  1. I '$G(PRCPFLAG) D END^PRCPUREP
  1. Q D ^%ZISC K ^TMP($J,"PRCPRODA"),^TMP($J,"PRCPURS1")
  1. Q
  1. H ;PRINT HEADING
  1. S %=NOW_" PAGE "_PAGE,PAGE=PAGE+1 I PAGE'=2!(SCREEN) W @IOF
  1. W "ON-DEMAND AUDIT FOR: ",$E(PRCP("IN"),1,20),?(80-$L(%)),%
  1. S %="",$P(%,"-",81)=""
  1. W !,"IM#",?9,"DESCRIPTION"
  1. W !,?32,"INVENTORY POINT"
  1. W !,?3,"SETTING",?12,"DATE/TIME",?38,"USER",?49,"REASON"
  1. W !,%,!
  1. Q