| [613] | 1 | PRCPRAL1 ;WISC/RFJ/DST-automatic level setter (print report)            ;28 Dec 93
 | 
|---|
 | 2 |  ;;5.1;IFCAP;**98**;Oct 20, 2000;Build 37
 | 
|---|
 | 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |  Q
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 | PRINT ;  print report
 | 
|---|
 | 8 |  N %,AVERAGE,DATE,DESCR,GROUP,GROUPNM,ITEMDA,ITEMDATA,NOW,NSN,PAGE,PRCPFLAG,PRCPFNOT,PRCPNESL,PRCPNNSL,PRCPNORP,PRCPNSRP,PRCPSTDD,SCREEN,SORT,TOTAL,Y
 | 
|---|
 | 9 |  N ODI  ; On-Demand Item flag
 | 
|---|
 | 10 |  K ^TMP($J,"PRCPRALS")
 | 
|---|
 | 11 |  S ITEMDA=0 F  S ITEMDA=$O(^PRCP(445,PRCP("I"),1,ITEMDA)) Q:'ITEMDA  D
 | 
|---|
 | 12 |  .   I $G(PRCPFITM),'$D(^TMP($J,"PRCPURS4",ITEMDA)),'$G(PRCPALLI) Q
 | 
|---|
 | 13 |  .   S ITEMDATA=$G(^PRCP(445,PRCP("I"),1,ITEMDA,0))
 | 
|---|
 | 14 |  .   S GROUP=+$P(ITEMDATA,"^",21)
 | 
|---|
 | 15 |  .   S PRCPFLAG=0
 | 
|---|
 | 16 |  .   I '$G(PRCPFITM) D  Q:PRCPFLAG
 | 
|---|
 | 17 |  .   .   I 'GROUP,'$G(GROUPALL) S PRCPFLAG=1 Q
 | 
|---|
 | 18 |  .   .   I $G(GROUPALL),$D(^TMP($J,"PRCPURS1","NO",GROUP)) S PRCPFLAG=1 Q
 | 
|---|
 | 19 |  .   .   I '$G(GROUPALL),'$D(^TMP($J,"PRCPURS1","YES",GROUP)) S PRCPFLAG=1 Q
 | 
|---|
 | 20 |  .   S GROUPNM=$$GROUPNM^PRCPEGRP(GROUP)
 | 
|---|
 | 21 |  .   I GROUPNM'="" S GROUPNM=$E(GROUPNM,1,20)_" (#"_GROUP_")"
 | 
|---|
 | 22 |  .   S:GROUPNM="" GROUPNM=" "
 | 
|---|
 | 23 |  .   S SORT=$S(PRCP("DPTYPE")="W":$$NSN^PRCPUX1(ITEMDA),1:$E($$DESCR^PRCPUX1(PRCP("I"),ITEMDA),1,15)) S:SORT="" SORT=" "
 | 
|---|
 | 24 |  .   ;  calc daily usage
 | 
|---|
 | 25 |  .   S DATE=PRCPSTDT-1,TOTAL=0 F  S DATE=$O(^PRCP(445,PRCP("I"),1,ITEMDA,2,DATE)) Q:'DATE  S TOTAL=TOTAL+$P($G(^(DATE,0)),"^",2)
 | 
|---|
 | 26 |  .   S AVERAGE=$J(TOTAL/PRCPTDAY,0,5)
 | 
|---|
 | 27 |  .   S ^TMP($J,"PRCPRALS",GROUPNM,SORT,ITEMDA)=AVERAGE
 | 
|---|
 | 28 |  ;  print report
 | 
|---|
 | 29 |  K PRCPFLAG
 | 
|---|
 | 30 |  S Y=PRCPSTDT_"00" D DD^%DT S PRCPSTDD=Y
 | 
|---|
 | 31 |  D NOW^%DTC S Y=% D DD^%DT S NOW=Y,PAGE=1,SCREEN=$$SCRPAUSE^PRCPUREP U IO D H
 | 
|---|
 | 32 |  S GROUP="" F  S GROUP=$O(^TMP($J,"PRCPRALS",GROUP)) Q:GROUP=""!($G(PRCPFLAG))  D
 | 
|---|
 | 33 |  .   I $G(ZTQUEUED),$$S^%ZTLOAD S PRCPFLAG=1 W !?10,"<<< TASKMANAGER JOB TERMINATED BY USER >>>" Q
 | 
|---|
 | 34 |  .   I $Y>(IOSL-6) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG)  D H
 | 
|---|
 | 35 |  .   W !!?5,"GROUP: ",$S(GROUP=" ":"<<NONE>>",1:GROUP)
 | 
|---|
 | 36 |  .   S SORT="" F  S SORT=$O(^TMP($J,"PRCPRALS",GROUP,SORT)) Q:SORT=""!($G(PRCPFLAG))  S ITEMDA=0 F  S ITEMDA=$O(^TMP($J,"PRCPRALS",GROUP,SORT,ITEMDA)) Q:'ITEMDA!($G(PRCPFLAG))  S AVERAGE=^(ITEMDA) D
 | 
|---|
 | 37 |  .   .   I $Y>(IOSL-6) D:SCREEN P^PRCPUREP Q:$D(PRCPFLAG)  D H
 | 
|---|
 | 38 |  .   .   S ITEMDATA=$G(^PRCP(445,PRCP("I"),1,ITEMDA,0))
 | 
|---|
 | 39 |  .   .   S DESCR=$$DESCR^PRCPUX1(PRCP("I"),ITEMDA),NSN=$$NSN^PRCPUX1(ITEMDA)
 | 
|---|
 | 40 |  .   .   I PRCP("DPTYPE")="W" W !!,NSN,?18,$E(DESCR,1,18)
 | 
|---|
 | 41 |  .   .   ; On-Demand Item display
 | 
|---|
 | 42 |  .   .   S ODI=""
 | 
|---|
 | 43 |  .   .   I PRCP("DPTYPE")'="W" S ODI=$$ODITEM^PRCPUX2(PRCP("I"),ITEMDA)
 | 
|---|
 | 44 |  .   .   Q:PRCP("DPTYPE")'="W"&((($G(ODIS)=1)&(ODI="Y"))!(($G(ODIS)=2)&(ODI'="Y")))
 | 
|---|
 | 45 |  .   .   I PRCP("DPTYPE")'="W" W !!,$E(DESCR,1,18),?25,$S(ODI="Y":"D",1:"")
 | 
|---|
 | 46 |  .   .   ;
 | 
|---|
 | 47 |  .   .   W ?38,ITEMDA,?45,"OLD",$J(+$P(ITEMDATA,"^",9),8),$J(+$P(ITEMDATA,"^",11),8),$J(+$P(ITEMDATA,"^",10),8),$J(+$P(ITEMDATA,"^",4),8)
 | 
|---|
 | 48 |  .   .   I AVERAGE>.06,$G(PRCPFSET) K PRCPFNOT L +^PRCP(445,PRCP("I"),1,ITEMDA,0):5 I '$T S PRCPFNOT=1
 | 
|---|
 | 49 |  .   .   W !?3,"AVG USAGE: ",$J(AVERAGE,0,4)
 | 
|---|
 | 50 |  .   .   W ?22,$J($S('$G(PRCPFSET):"ESTIMATED VALUES",AVERAGE'>.06:"LOW USAGE (NOT UPDATED)",$G(PRCPFNOT):"UNABLE TO UPDATE (LOCKED)",1:"NEW VALUES"),26),?48
 | 
|---|
 | 51 |  .   .   ;  normal stock level
 | 
|---|
 | 52 |  .   .   S PRCPNNSL=AVERAGE*PRCPDNSL\1 S:PRCPNNSL>999999 PRCPNNSL=999999 W $J(PRCPNNSL,8)
 | 
|---|
 | 53 |  .   .   ;  emergency stock level
 | 
|---|
 | 54 |  .   .   S PRCPNESL=$J(PRCPNNSL*PRCPPESL/100,0,0) S:PRCPNESL>999999 PRCPNESL=999999 W $J(PRCPNESL,8)
 | 
|---|
 | 55 |  .   .   ;  standard reorder point
 | 
|---|
 | 56 |  .   .   S PRCPNSRP=$J(PRCPNNSL*PRCPPSRP/100,0,0) S:PRCPNSRP>999999 PRCPPSRP=999999 W $J(PRCPNSRP,8)
 | 
|---|
 | 57 |  .   .   ;  optional reorder point
 | 
|---|
 | 58 |  .   .   S PRCPNORP=$J(PRCPNNSL*PRCPPORP/100,0,0) S:PRCPNORP>999999 PRCPNORP=999999 W $J(PRCPNORP,8)
 | 
|---|
 | 59 |  .   .   I AVERAGE>.06,$G(PRCPFSET),'$G(PRCPFNOT) S $P(^PRCP(445,PRCP("I"),1,ITEMDA,0),"^",4)=PRCPNORP,$P(^(0),"^",9,11)=PRCPNNSL_"^"_PRCPNSRP_"^"_PRCPNESL L -^PRCP(445,PRCP("I"),1,ITEMDA,0)
 | 
|---|
 | 60 |  I '$G(PRCPFLAG) D END^PRCPUREP
 | 
|---|
 | 61 |  Q
 | 
|---|
 | 62 |  ;
 | 
|---|
 | 63 |  ;
 | 
|---|
 | 64 | H S %=NOW_"  PAGE "_PAGE,PAGE=PAGE+1 I PAGE'=2!(SCREEN) W @IOF
 | 
|---|
 | 65 |  W $C(13),"AUTOMATIC LEVEL SETTER FOR: ",$E(PRCP("IN"),1,20),?(80-$L(%)),%
 | 
|---|
 | 66 |  I PRCP("DPTYPE")'="W",('$D(^TMP($J,"PRCPURS4"))) W !?5,$S(ODIS=2:"ON-DEMAND ITEMS ONLY",ODIS=3:"ALL ITEMS (STANDARD AND ON-DEMAND)",1:"STANDARD ITEMS ONLY")
 | 
|---|
 | 67 |  W !?5,"AVG USAGE START DATE: ",PRCPSTDD," (",PRCPTDAY," TOTAL DAYS)"
 | 
|---|
 | 68 |  W !?5,"DAYS/PERCENTAGE USED FOR CALCULATION:",?48,$J(PRCPDNSL,8),$J(PRCPPESL_"%",8),$J(PRCPPSRP_"%",8),$J(PRCPPORP_"%",8)
 | 
|---|
 | 69 |  S %="",$P(%,"-",81)=""
 | 
|---|
 | 70 |  W !?48,$J("NORMAL",8),$J("EMERG",8),$J("STAND",8),$J("OPTION",8),!
 | 
|---|
 | 71 |  I PRCP("DPTYPE")="W" W "NSN",?18,"DESCRIPTION"
 | 
|---|
 | 72 |  E  W "DESCRIPTION",?25,"OD"
 | 
|---|
 | 73 |  W ?38,"IM#",?48,$J("STKLVL",8),$J("STKLVL",8),$J("REO PT",8),$J("REO PT",8),!,%
 | 
|---|
 | 74 |  Q
 | 
|---|