[628] | 1 | PRCPRSS1 ;WOIFO/DAP-stock status report for primaries and secondaries; 10/16/06 2:17pm
|
---|
| 2 | V ;;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 DAYS,MONTH,NOW,PAGE,PRCPFLAG,SCREEN,TOTCLOS,TOTISS,TOTN,TOTOPEN,TOTVAL,ITEMCTA,X,Y
|
---|
| 9 | S Y=DATESTRT D DD^%DT S MONTH=Y
|
---|
| 10 | S DAYS=$P("31^28^31^30^31^30^31^31^30^31^30^31","^",+$E(DATESTRT,4,5))
|
---|
| 11 | I DAYS=28 S %=(17+$E(DATESTRT))_$E(DATESTRT,2,3),DAYS=$S(%#400=0:29,(%#4=0&(%#100'=0)):29,1:28)
|
---|
| 12 | ;
|
---|
| 13 | ;*98 Added looping logic to go through print cycle for each type of
|
---|
| 14 | ;item report (Standard/ODI/All)
|
---|
| 15 | ;
|
---|
| 16 | N P,PRCPTP,PRCPTP2,NODE1
|
---|
| 17 | S PAGE=1
|
---|
| 18 | F P=1:1:3 S NODE1=P D
|
---|
| 19 | . I $G(PRCPFLAG) Q
|
---|
| 20 | . I P=1 S PRCPTP="STANDARD",PRCPTP2="STD"
|
---|
| 21 | . I P=2 S PRCPTP="ON-DEMAND",PRCPTP2="OD"
|
---|
| 22 | . I P=3 S PRCPTP="ALL",PRCPTP2=PRCPTP
|
---|
| 23 | . D REP^PRCPRSS1
|
---|
| 24 | . Q
|
---|
| 25 | ;
|
---|
| 26 | D Q^PRCPRSS1
|
---|
| 27 | Q
|
---|
| 28 | ;
|
---|
| 29 | REP ;*98 Added header to display type of reporting, moved header logic
|
---|
| 30 | ;from earlier in routine to support looping structure
|
---|
| 31 | ;
|
---|
| 32 | I P>1 D LC
|
---|
| 33 | I $G(PRCPFLAG) Q
|
---|
| 34 | S SCREEN=$$SCRPAUSE^PRCPUREP D NOW^%DTC S Y=% D DD^%DT S NOW=Y U IO I P=1 D HEAD
|
---|
| 35 | ;
|
---|
| 36 | W !,"INVENTORY ("_PRCPTP_" ITEMS)"
|
---|
| 37 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 38 | ;
|
---|
| 39 | W !,"OPEN BALANCE",?14 S TOTOPEN=0 F ACCT=1,2,3,6,8 S %=$P($G(^TMP($J,NODE1,"OPEN",ACCT)),"^",2) S OPEN(ACCT)=%,TOTOPEN=TOTOPEN+% W $$SHOWVALU(%)
|
---|
| 40 | W $$SHOWVALU(TOTOPEN)
|
---|
| 41 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 42 | W !!,"RECEIPTS",?14 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"REC",ACCT)),TOTAL=TOTAL+%,OPEN(ACCT)=$G(OPEN(ACCT))+% W $$SHOWVALU(%)
|
---|
| 43 | W $$SHOWVALU(TOTAL)
|
---|
| 44 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 45 | ;*98 Modified report to replace "ISSUES" with "USAGE"
|
---|
| 46 | W !,"USAGE",?14 S TOTISS=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"ISS",ACCT)),TOTISS=TOTISS+%,OPEN(ACCT)=$G(OPEN(ACCT))+% W $$SHOWVALU(%)
|
---|
| 47 | W $$SHOWVALU(TOTISS)
|
---|
| 48 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 49 | W !,"ADJUSTMENTS",?14 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"ADJ",ACCT)),TOTAL=TOTAL+%,OPEN(ACCT)=$G(OPEN(ACCT))+% W $$SHOWVALU(%)
|
---|
| 50 | W $$SHOWVALU(TOTAL)
|
---|
| 51 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 52 | S %="",$P(%,"=",80)=""
|
---|
| 53 | W !,%,!,"CLOSE BALANCE",?14 S TOTCLOS=0 F ACCT=1,2,3,6,8 S %=$G(OPEN(ACCT)),TOTCLOS=TOTCLOS+% W $$SHOWVALU(%)
|
---|
| 54 | W $$SHOWVALU(TOTCLOS)
|
---|
| 55 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 56 | W !!!,"# RECEIPTS",?13 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"RECN",ACCT)),TOTAL=TOTAL+%,TOTN(ACCT)=% W $J(%,11,0)
|
---|
| 57 | W $J(TOTAL,11,0)
|
---|
| 58 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 59 | ;*98 Modified report to replace "ISSUES" with "USAGES"
|
---|
| 60 | W !,"# USAGE",?13 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"ISSN",ACCT)),TOTAL=TOTAL+%,TOTN(ACCT)=$G(TOTN(ACCT))+% W $J(%,11,0)
|
---|
| 61 | W $J(TOTAL,11,0)
|
---|
| 62 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 63 | W !,"# ADJUSTMENTS",?13 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"ADJN",ACCT)),TOTAL=TOTAL+%,TOTN(ACCT)=$G(TOTN(ACCT))+% W $J(%,11,0)
|
---|
| 64 | W $J(TOTAL,11,0)
|
---|
| 65 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 66 | S %="",$P(%,"=",80)=""
|
---|
| 67 | W !,%,!,"# TOTAL",?13 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(TOTN(ACCT)),TOTAL=TOTAL+% W $J(%,11,0)
|
---|
| 68 | W $J(TOTAL,11,0)
|
---|
| 69 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 70 | W !!,"TURNOVER",?13 F ACCT=1,2,3,6,8 S %=($G(^TMP($J,NODE1,"ISS",ACCT))*365)/DAYS,%=$S('$G(OPEN(ACCT)):"X",1:-%/OPEN(ACCT)) W $J(%,11,2)
|
---|
| 71 | S %=(TOTISS*365)/DAYS,%=$S('TOTCLOS:"X",1:-%/TOTCLOS) W $J(%,11,2)
|
---|
| 72 | ;*98 Added indicator of type of report (Standard/ODI/All)
|
---|
| 73 | W !,"("_PRCPTP_" ITEMS)"
|
---|
| 74 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 75 | ;
|
---|
| 76 | ;*98 Added indicator of type of report (Standard/ODI/All)
|
---|
| 77 | W !!?28,"*** CURRENT DATA ("_PRCPTP_" ITEMS) ***"
|
---|
| 78 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 79 | ;
|
---|
| 80 | ;*98 Rearranged report placement of sections and added indicator of
|
---|
| 81 | ;type of report (Standard/ODI/All)
|
---|
| 82 | ;
|
---|
| 83 | S Y=$E(DATEINAC,1,5)_"01" D DD^%DT
|
---|
| 84 | W !!?2,"INACTIVE ITEMS ("_PRCPTP_" ITEMS) FROM ",Y," TO ",$P(NOW,"@"),!,"# INACTIVE",?13
|
---|
| 85 | S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"INACTN",ACCT)),TOTAL=TOTAL+% W $J(%,11,0)
|
---|
| 86 | W $J(TOTAL,11,0)
|
---|
| 87 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 88 | W !,"$ INACTIVE",?14 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"INACT",ACCT)),TOTAL=TOTAL+% W $$SHOWVALU(%)
|
---|
| 89 | W $$SHOWVALU(TOTAL)
|
---|
| 90 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 91 | W !,"% INACTIVE",?13 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"VALUE",ACCT)),%=$S('%:0,1:$G(^TMP($J,NODE1,"INACT",ACCT))/%) W $J(%,11,2)
|
---|
| 92 | ;
|
---|
| 93 | ;*98 Moved TOTVAL logic to support reordered processing
|
---|
| 94 | S TOTVAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"VALUE",ACCT)),TOTVAL=TOTVAL+%
|
---|
| 95 | ;
|
---|
| 96 | S %=$S('TOTVAL:0,1:TOTAL/TOTVAL) W $J(%,11,2)
|
---|
| 97 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 98 | S Y=$E(DATELONG,1,5)_"01" D DD^%DT
|
---|
| 99 | W !!?2,"LONG SUPPLY ("_PRCPTP_" ITEMS) AVG. FROM ",Y," TO ",$P(NOW,"@"),!?2,"(>90 DAYS)",!,"# LONG SUPPLY",?13
|
---|
| 100 | S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"LONGN",ACCT)),TOTAL=TOTAL+% W $J(%,11,0)
|
---|
| 101 | W $J(TOTAL,11,0)
|
---|
| 102 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 103 | W !,"$ LONG SUPPLY",?14 S TOTAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"LONG",ACCT)),TOTAL=TOTAL+% W $$SHOWVALU(%)
|
---|
| 104 | W $$SHOWVALU(TOTAL)
|
---|
| 105 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 106 | W !,"% LONG SUPPLY",?13 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"VALUE",ACCT)),%=$S('%:0,1:$G(^TMP($J,NODE1,"LONG",ACCT))/%) W $J(%,11,2)
|
---|
| 107 | S %=$S('TOTVAL:0,1:TOTAL/TOTVAL) W $J(%,11,2)
|
---|
| 108 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 109 | ;
|
---|
| 110 | ;*98 Modified section to display a new section header, item type count,
|
---|
| 111 | ;and display "$ONHAND" by specific type (Standard/ODI/All)
|
---|
| 112 | ;
|
---|
| 113 | W !!,"# "_PRCPTP2_" ITEMS",?13 S ITEMCTA=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"CNT",ACCT)),ITEMCTA=ITEMCTA+% W $J(%,11,0)
|
---|
| 114 | W $J(ITEMCTA,11,0)
|
---|
| 115 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 116 | ;
|
---|
| 117 | W !!,"INVENTORY VALUE"
|
---|
| 118 | W !,"$ "_PRCPTP,?14 S TOTVAL=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"VALUE",ACCT)),TOTVAL=TOTVAL+% W $$SHOWVALU(%)
|
---|
| 119 | W $$SHOWVALU(TOTVAL)
|
---|
| 120 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 121 | W !,"$ DUEINS",?14 S X=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"DUEIN",ACCT)),X=X+% W $$SHOWVALU(%)
|
---|
| 122 | W $$SHOWVALU(X)
|
---|
| 123 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 124 | W !,"$ DUEOUTS",?14 S X=0 F ACCT=1,2,3,6,8 S %=$G(^TMP($J,NODE1,"DUEOUT",ACCT)),X=X+% W $$SHOWVALU(%)
|
---|
| 125 | W $$SHOWVALU(X)
|
---|
| 126 | I $Y>(IOSL-7) D LC G:$G(PRCPFLAG) Q
|
---|
| 127 | ;
|
---|
| 128 | ;*98 Modified report to not show the section addressing nonissuable
|
---|
| 129 | ;items for primary and secondary inventory points
|
---|
| 130 | Q
|
---|
| 131 | ;
|
---|
| 132 | ;
|
---|
| 133 | Q ;Tag ends printing and exits routine
|
---|
| 134 | D END^PRCPUREP
|
---|
| 135 | D ^%ZISC Q
|
---|
| 136 | ;
|
---|
| 137 | ;
|
---|
| 138 | SHOWVALU(V1) ;show value
|
---|
| 139 | N % S %="+" S:+V1=0 %=" " I V1<0 S V1=-V1,%="-"
|
---|
| 140 | Q $J(V1,10,2)_%
|
---|
| 141 | ;
|
---|
| 142 | LC ;*98 Moved line control logic into subroutines
|
---|
| 143 | I SCREEN W ! D P^PRCPUREP I $D(PRCPFLAG) Q
|
---|
| 144 | ;
|
---|
| 145 | HEAD ;heading
|
---|
| 146 | N PRCPT
|
---|
| 147 | S %=NOW_" PAGE: "_PAGE,PAGE=PAGE+1 I PAGE'=2!(SCREEN) W @IOF
|
---|
| 148 | W !,"STOCK STATUS REPORT FOR: ",$E(PRCP("IN"),1,20),?(80-$L(%)),%
|
---|
| 149 | ;*98 Added type of reporting (Standard/ODI/All) to header
|
---|
| 150 | S PRCPT=PRCPTP_" ITEMS"
|
---|
| 151 | W !?5,"TRANSACTIONS FOR THE MONTH-YEAR: ",MONTH,?(80-$L(PRCPT)),PRCPT
|
---|
| 152 | ;
|
---|
| 153 | W !,"SUMMARY",?14,$J("ACCT 1",11),$J("ACCT 2",11),$J("ACCT 3",11),$J("ACCT 6",11),$J("ACCT 8",11),$J("TOTAL",11)
|
---|
| 154 | S %="",$P(%,"-",81)="" W !,%
|
---|
| 155 | Q
|
---|