| 1 | PSXRACT ;BIR/HW-ACTIVITY REPORT [ 05/10/97  2:28 PM ] ; 31 Oct 2000  2:28 PM | 
|---|
| 2 | ;;2.0;CMOP;**1,31**;11 Apr 97 | 
|---|
| 3 | ; External reference to ^PSRX( supported by DBIA #1221 | 
|---|
| 4 | ; External reference to ^PS(59 supported by DBIA #1976 | 
|---|
| 5 | ; | 
|---|
| 6 | BEGDATE S DIR(0)="DO",DIR("A")="ENTER BEGINNING TRANSMISSION DATE " D ^DIR K DIR | 
|---|
| 7 | G:$D(DIRUT)!(X']"") END | 
|---|
| 8 | S PSXB=Y K Y,X | 
|---|
| 9 | I PSXB>DT W !!,"Future dates are not allowed.",! G BEGDATE | 
|---|
| 10 | ENDDATE S Y=DT X ^DD("DD") S ZZTODAY=Y K Y | 
|---|
| 11 | K X,Y | 
|---|
| 12 | S DIR(0)="DO",DIR("A")="ENTER ENDING TRANSMISSION DATE ",DIR("B")=ZZTODAY | 
|---|
| 13 | D ^DIR K DIR | 
|---|
| 14 | G:$D(DIRUT) END | 
|---|
| 15 | S PSXE=Y K Y | 
|---|
| 16 | I PSXE<PSXB W !,"Ending date must follow beginning date!" G ENDDATE | 
|---|
| 17 | K ZZTODAY | 
|---|
| 18 | D SEL Q:'$D(DIVNM) | 
|---|
| 19 | DEVICE W !! S %ZIS="MQ",%ZIS("A")="Select Printer: ",%ZIS("B")="" | 
|---|
| 20 | D ^%ZIS G:POP END S PSXLAP=ION | 
|---|
| 21 | I $E(IOST,1,2)["C-" G START | 
|---|
| 22 | I '$D(IO("Q")) G ST0 | 
|---|
| 23 | D ^%ZISC K J,C | 
|---|
| 24 | QUE S ZTSAVE("PSXB")="",ZTSAVE("PSXE")="",ZTSAVE("DIVNM(")="",ZTSAVE("DIVDA(")="",ZTIO=PSXLAP | 
|---|
| 25 | S ZTRTN="START^PSXRACT" | 
|---|
| 26 | S ZTDESC="CMOP Activity Report" | 
|---|
| 27 | D ^%ZTLOAD | 
|---|
| 28 | Q1 W:$D(ZTSK) !!,"Report Queued to Print!!" | 
|---|
| 29 | K DIR,PSXB,PSXE,Y | 
|---|
| 30 | Q | 
|---|
| 31 | ST0 U IO | 
|---|
| 32 | ;Called by taskman to print the CMOP Activity Report | 
|---|
| 33 | START S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 34 | S LINE="W ! F I=1:1:80 W ""=""" | 
|---|
| 35 | DIVISION ; | 
|---|
| 36 | S DIVDA=0 F  S DIVDA=$O(DIVDA(DIVDA)) Q:DIVDA'>0  D ONEDIV | 
|---|
| 37 | D GRNDSUM | 
|---|
| 38 | G EXIT | 
|---|
| 39 | ; | 
|---|
| 40 | Q | 
|---|
| 41 | ONEDIV ; | 
|---|
| 42 | S LINE="W ! F I=1:1:80 W ""=""",CT=0 | 
|---|
| 43 | S Y=PSXB X ^DD("DD") S PSXBE=Y | 
|---|
| 44 | S Y=PSXE X ^DD("DD") S PSXEE=Y | 
|---|
| 45 | S PSXE1=PSXE+.99999,PSXD=PSXB-.00001 | 
|---|
| 46 | D TITLE | 
|---|
| 47 | BATCH F  S PSXD=$O(^PSX(550.2,"D",PSXD)) Q:(+PSXD'>0)!(+PSXD>PSXE1)  D  Q:$G(PSXFLAG)=1 | 
|---|
| 48 | .F P5502=0:0 S P5502=$O(^PSX(550.2,"D",PSXD,P5502)) Q:'P5502  D  Q:$G(PSXFLAG)=1 | 
|---|
| 49 | ..S BATCH=+$P($G(^PSX(550.2,P5502,0)),"^") Q:$G(BATCH)']"" | 
|---|
| 50 | ..S DIV=$P($G(^PSX(550.2,P5502,0)),"^",3),DIV=$P($G(^PS(59,DIV,0)),"^") | 
|---|
| 51 | ..I '$D(DIVNM(DIV)) Q | 
|---|
| 52 | ..I DIV'=DIVDA(DIVDA) Q | 
|---|
| 53 | ..S NODE=$G(^PSX(550.2,P5502,1)) Q:$G(NODE)']"" | 
|---|
| 54 | ..S ORDS=$P($G(NODE),"^",7),TORDS=$G(TORDS)+ORDS,RTRN=$P(NODE,"^",2) | 
|---|
| 55 | ..S TORDS(DIV)=$G(TORDS(DIV))+ORDS | 
|---|
| 56 | ..S RXS=$P($G(NODE),"^",8),TRXS=$G(TRXS)+RXS | 
|---|
| 57 | ..S TRXS(DIV)=$G(TRXS(DIV))+RXS | 
|---|
| 58 | ..F PSXR=0:0 S PSXR=$O(^PSRX("AS",PSXD,PSXR)) Q:'PSXR  D | 
|---|
| 59 | ...S PSXF="" F  S PSXF=$O(^PSRX("AS",PSXD,PSXR,PSXF)) Q:($G(PSXF)']"")  D RX | 
|---|
| 60 | ..D PRINT Q:$G(PSXFLAG)=1 | 
|---|
| 61 | X LINE | 
|---|
| 62 | S DIV=DIVDA(DIVDA) | 
|---|
| 63 | W !,?9,DIV,?35,$J($G(TORDS(DIV)),7),?43,$J($G(TRXS(DIV)),6),?53,$J($G(PSXCRT(DIV)),7),?63,$J($G(PSXNDT(DIV)),7),?73,$J($G(PSXCUT(DIV)),5) | 
|---|
| 64 | Q | 
|---|
| 65 | GRNDSUM ; | 
|---|
| 66 | S DIVDA(0)="                              Grand Total Summary",DIVDA=0 | 
|---|
| 67 | D TITLE | 
|---|
| 68 | S DIV=0 F  S DIV=$O(TORDS(DIV)) Q:DIV=""  D | 
|---|
| 69 | .W !,?9,DIV,?35,$J($G(TORDS(DIV)),7),?43,$J($G(TRXS(DIV)),6),?53,$J($G(PSXCRT(DIV)),7),?63,$J($G(PSXNDT(DIV)),7),?73,$J($G(PSXCUT(DIV)),5) | 
|---|
| 70 | X LINE | 
|---|
| 71 | W !!,"TOTAL",?35,$J($G(TORDS),7),?43,$J($G(TRXS),6),?53,$J($G(PSXCRT),7),?63,$J($G(PSXNDT),7),?73,$J($G(PSXCUT),5) | 
|---|
| 72 | END K DIR,DIRUT,PSXB,PSXE,ZZTODAY,PSXLAP,PSXE1,PSXOT,PSXD,P5502,BATCH | 
|---|
| 73 | K DIV,NODE,TORDS,TRXS,PSXR,PSXF,GT,PSXFLAG,ZNODE,ZFILL,PSXSTAT,PSXCR | 
|---|
| 74 | K PSX,PSXCRT,PSXCUT,PSXLINE,PSXNDT,PSXNOW,X,Y,%,RTRN | 
|---|
| 75 | Q | 
|---|
| 76 | EXIT ; | 
|---|
| 77 | D END | 
|---|
| 78 | K DIVDA,DIVNM,PSXB,PSXE,LINE,CT,I,PSXBE,PSXEE,ZZTOT,ZTSK | 
|---|
| 79 | D ^%ZISC | 
|---|
| 80 | Q | 
|---|
| 81 | RX ; COUNT RX DATA | 
|---|
| 82 | I $D(^PSRX(PSXR,4,0)) F PSX=0:0 S PSX=$O(^PSRX(PSXR,4,PSX)) Q:'PSX  D | 
|---|
| 83 | .S ZNODE=$G(^PSRX(PSXR,4,PSX,0)),ZFILL=$P($G(ZNODE),"^",3) | 
|---|
| 84 | .I $G(ZFILL)'=PSXF K ZFILL Q | 
|---|
| 85 | .I +$G(ZNODE)'=BATCH Q | 
|---|
| 86 | .S PSXSTAT=$P($G(ZNODE),"^",4),PSX(ZFILL)=PSXSTAT | 
|---|
| 87 | .K ZNODE,ZFILL,PSXSTAT | 
|---|
| 88 | I $G(PSX(PSXF))=1 S PSXCR=$G(PSXCR)+1,PSXCRT=$G(PSXCRT)+1 D  Q | 
|---|
| 89 | .S PSXCRT(DIV)=$G(PSXCRT(DIV))+1 | 
|---|
| 90 | I $G(PSX(PSXF))=3 S PSXND=$G(PSXND)+1,PSXNDT=$G(PSXNDT)+1 D  Q | 
|---|
| 91 | .S PSXNDT(DIV)=$G(PSXNDT(DIV))+1 | 
|---|
| 92 | I $G(PSX(PSXF))=2 S PSXRT=$G(PSXRT)+1 S:(RTRN)>0 COM="FILLED IN "_$G(RTRN) | 
|---|
| 93 | S PSXCU=$G(PSXCU)+1,PSXCUT=$G(PSXCUT)+1 | 
|---|
| 94 | S PSXCUT(DIV)=$G(PSXCUT(DIV))+1 | 
|---|
| 95 | S:$G(COM)'="" PSXCU="" | 
|---|
| 96 | Q | 
|---|
| 97 | TITLE I IOST["C-" W @IOF | 
|---|
| 98 | S Y=PSXB X ^DD("DD") S PSXBP=Y | 
|---|
| 99 | S Y=PSXE X ^DD("DD") S PSXEP=Y | 
|---|
| 100 | D NOW^%DTC S Y=% X ^DD("DD") S PSXNOW=Y | 
|---|
| 101 | W !,?30,"CMOP ACTIVITY REPORT"_$S($G(ZZTOT)=1:" SUMMARY",1:"") | 
|---|
| 102 | W !,DIVDA(DIVDA) | 
|---|
| 103 | W !,"For ",PSXBP,"  thru  ",$P(PSXEP,"@"),?40,"Printed: ",PSXNOW | 
|---|
| 104 | S PSXLINE=6 | 
|---|
| 105 | K PSXBP,PSXEP | 
|---|
| 106 | X LINE | 
|---|
| 107 | AHEAD W !,"TRANS #",?9,"DIVISION",?37,"ORDERS",?45,"RXS",?53,"RELEASED",?63,"NOT DISP",?73,"UNREL" | 
|---|
| 108 | X LINE | 
|---|
| 109 | Q | 
|---|
| 110 | PRINT I IOST["C-",($G(PSXLINE)>20) D  Q:$G(PSXFLAG)=1 | 
|---|
| 111 | .S DIR(0)="E" D ^DIR K DIR I $G(Y)'=1 S PSXFLAG=1 K Y Q | 
|---|
| 112 | .D TITLE | 
|---|
| 113 | I IOST'["C-",($G(PSXLINE)>60) W @IOF D TITLE | 
|---|
| 114 | ;S:$G(COM)="" PSXCU="" | 
|---|
| 115 | W !,$J($G(BATCH),6),?9,$S($G(COM)'="":$E($G(DIV),1,10)_" "_$G(COM),1:$G(DIV)),?35,$J($G(ORDS),7),?43,$J($G(RXS),6),?53,$J($G(PSXCR),7),?63,$J($G(PSXND),7),?73,$J($G(PSXCU),5) | 
|---|
| 116 | S PSXLINE=$G(PSXLINE)+1 | 
|---|
| 117 | K BATCH,DIV,ORDS,RXS,PSXCR,PSXND,PSXCU,PSXRT,COM,COM1 | 
|---|
| 118 | Q | 
|---|
| 119 | SEL ;Select divisions | 
|---|
| 120 | ; returns arrays | 
|---|
| 121 | ; DIVNM("names of divisions")=selection number | 
|---|
| 122 | ; DIVDA("iens of divisions")=name of division | 
|---|
| 123 | ; for testing | 
|---|
| 124 | W !!,"SELECTION OF DIVISION(S)",! | 
|---|
| 125 | S DIV="" K DIVNM,DIVDA,DIVX | 
|---|
| 126 | F I=1:1 S DIV=$O(^PS(59,"B",DIV)) Q:DIV=""  S DIVNM(I)=DIV,DIVNM(DIV)=I,DIVDA=$O(^PS(59,"B",DIV,0)),DIVNM(I,"I")=DIVDA | 
|---|
| 127 | S I=I-1 | 
|---|
| 128 | K DIR S DIR(0)="S^A:ALL DIVISIONS;S:SELECT DIVISIONS" | 
|---|
| 129 | D ^DIR K DIR         G:Y="A" ALL | 
|---|
| 130 | G:Y="S" SELECT | 
|---|
| 131 | Q | 
|---|
| 132 | SELECT ; | 
|---|
| 133 | F C=1:1:I S DIR("A",C)=C_"    "_DIVNM(C) | 
|---|
| 134 | S DIR(0)="LO^1:"_I,DIR("A")="Select Division(s) " | 
|---|
| 135 | D ^DIR | 
|---|
| 136 | I '+Y K DIVNM Q | 
|---|
| 137 | M DIVX=DIVNM K DIVNM | 
|---|
| 138 | F I=1:1 S X=$P(Y,",",I) Q:'X  M DIVNM(X)=DIVX(X) S DIVNM=DIVX(X),DIVNM(DIVNM)=X | 
|---|
| 139 | K DIVX,DIR | 
|---|
| 140 | ALL W !!,"You have selected:",! S DIV=0 F  S DIV=$O(DIVNM(DIV)) Q:'DIV  W !,DIV,?5,DIVNM(DIV) | 
|---|
| 141 | S DIR(0)="Y",DIR("A")="Is this corrrect ? ",DIR("B")="YES" D ^DIR | 
|---|
| 142 | K DIR | 
|---|
| 143 | I Y D  Q | 
|---|
| 144 | .K DIVDA | 
|---|
| 145 | .S DIV=0 F  S DIV=$O(DIVNM(DIV)) Q:'DIV  S DA=DIVNM(DIV,"I"),DIVDA(DA)=DIVNM(DIV) K DIVNM(DIV) | 
|---|
| 146 | G SEL | 
|---|
| 147 | ; | 
|---|