| 1 | ENWONEW3 ;WIRMFO/SAB-Incoming Inspection Work Order ;12.18.97 | 
|---|
| 2 | ;;7.0;ENGINEERING;**35,47**;Aug 17, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | IIWO(ENEQ) ; Generate Incoming Inspection Work Order | 
|---|
| 5 | ; called from ENEQ1, ENEQ3 | 
|---|
| 6 | ; In | 
|---|
| 7 | ;   ENEQ - equipment entry # | 
|---|
| 8 | ;   ENMA("IIWO")       - (optional) flag; true when multi equip entry | 
|---|
| 9 | ;   ENMA("IIWO","DA")  - (optional) w.o. ien generated for 1st equip | 
|---|
| 10 | ;   ENMA("IIWO","ION") - (optional) device ion used with 1st equip w.o. | 
|---|
| 11 | ;   ENMA("IIWO","QDT") - (optional) queued date/time of 1st w.o. print | 
|---|
| 12 | ; Out | 
|---|
| 13 | ;   ENDA  - work order ien | 
|---|
| 14 | ;   ENWO  - work order number | 
|---|
| 15 | ;   also when $G(ENMA("IIWO")) true and device selected for output | 
|---|
| 16 | ;       ENION - device ion used for (auto)print | 
|---|
| 17 | ;       ENQDT - queued date/time when output queued | 
|---|
| 18 | ; | 
|---|
| 19 | N AUTOPRT,DA,DIC,DIE,DR,ENEDPM,ENI,ENJ,ENTEC,ENX | 
|---|
| 20 | N NUMBER,SHOPDEV,SHOPKEY,WARD | 
|---|
| 21 | K ENION,ENQDT S (ENDA,ENWO)="" | 
|---|
| 22 | ; determine user privileges | 
|---|
| 23 | S ENEDPM=$D(^XUSEC("ENEDPM",DUZ)) | 
|---|
| 24 | ; determine shop of work order | 
|---|
| 25 | I $G(ENMA("IIWO","DA")) S SHOPKEY=$P($G(^ENG(6920,ENMA("IIWO","DA"),2)),U) | 
|---|
| 26 | E  D | 
|---|
| 27 | . S SHOPKEY=$P(^DIC(6910,1,0),U,13) ; incoming inspection section | 
|---|
| 28 | . I SHOPKEY="" D  ; or responsible shop | 
|---|
| 29 | . . S ENI=$O(^ENG(6914,ENEQ,4,0)) | 
|---|
| 30 | . . I ENI S SHOPKEY=$P(^ENG(6914,ENEQ,4,ENI,0),U) | 
|---|
| 31 | . I SHOPKEY="" S SHOPKEY=$P(^DIC(6910,1,0),U,6) ; or temp w.o. section | 
|---|
| 32 | . ; ask shop if blank or user holds key | 
|---|
| 33 | . I SHOPKEY=""!ENEDPM F  D  Q:SHOPKEY]"" | 
|---|
| 34 | . . S DIC="^DIC(6922,",DIC(0)="AQEM" | 
|---|
| 35 | . . I SHOPKEY S DIC("B")=$P($G(^DIC(6922,SHOPKEY,0)),U) | 
|---|
| 36 | . . I 'ENEDPM S DIC("S")="I Y#100>89"  ; restrict to receiving areas | 
|---|
| 37 | . . D ^DIC K DIC | 
|---|
| 38 | . . I $D(DTOUT)!$D(DUOUT) S SHOPKEY="^" Q | 
|---|
| 39 | . . I Y>0 S SHOPKEY=+Y Q | 
|---|
| 40 | . . W !,"Shop required. Enter '^' if you don't want to create a W.O.",! | 
|---|
| 41 | I SHOPKEY'>0 W !,"Unspecified Shop. Work Order was NOT created." G EXIT | 
|---|
| 42 | ; | 
|---|
| 43 | ; create work order | 
|---|
| 44 | D WONUM^ENWONEW I NUMBER="" D  G EXIT | 
|---|
| 45 | . W $C(7),!,"Can't seem to add to Work Order File." | 
|---|
| 46 | . W !,"You will need to manually create the incoming inspection W.O." | 
|---|
| 47 | S ENDA=DA,ENWO=NUMBER | 
|---|
| 48 | W !,"WORK ORDER #: ",NUMBER | 
|---|
| 49 | ; lock work order | 
|---|
| 50 | L +^ENG(6920,DA):5 I '$T D  G EXIT | 
|---|
| 51 | . W $C(7),!,"Can't lock the new work order. Please contact IRM." | 
|---|
| 52 | ; populate work order | 
|---|
| 53 | ;   with standard data for an electronic work order | 
|---|
| 54 | S WARD=1 D WOFILL^ENWONEW S WARD=0 | 
|---|
| 55 | ;   with data for an incoming inspection work order | 
|---|
| 56 | S DIE="^ENG(6920," | 
|---|
| 57 | S DR="6///Incoming Inspection" | 
|---|
| 58 | S DR=DR_";17///AVERAGE" | 
|---|
| 59 | S DR=DR_";32///"_$S(SHOPKEY#100>89:"PENDING",1:"IN PROGRESS") | 
|---|
| 60 | I SHOPKEY#100>89 S DR=DR_";10///TODAY" | 
|---|
| 61 | D ^DIE | 
|---|
| 62 | K ENFDA S ENFDA(6920.035,"+2,"_DA_",",.01)="I1" | 
|---|
| 63 | D UPDATE^DIE("E","ENFDA") | 
|---|
| 64 | ;   with equipment related data | 
|---|
| 65 | S DIE="^ENG(6920," | 
|---|
| 66 | S DR="18///"_ENEQ | 
|---|
| 67 | S ENX=$$GET1^DIQ(6914,ENEQ,24) I ENX]"" S DR=DR_";3///"_ENX | 
|---|
| 68 | D ^DIE | 
|---|
| 69 | ;   with user specified data | 
|---|
| 70 | S DIE="^ENG(6920,",DR="" | 
|---|
| 71 | I $G(ENMA("IIWO","DA")) D | 
|---|
| 72 | . ; copy comments from 1st work order | 
|---|
| 73 | . I $D(^ENG(6920,ENMA("IIWO","DA"),6)) D | 
|---|
| 74 | . . D WP^DIE(6920,DA_",",40,"","^ENG(6920,ENMA(""IIWO"",""DA""),6)") | 
|---|
| 75 | . ; copy other user editable fields from 1st work order into DR | 
|---|
| 76 | . S ENX=$P($G(^ENG(6920,ENMA("IIWO","DA"),2)),U,2) ; tech | 
|---|
| 77 | . I ENX]"" S DR=DR_";16////"_ENX | 
|---|
| 78 | . S ENX=$P($G(^ENG(6920,ENMA("IIWO","DA"),1)),U,3) ; contact | 
|---|
| 79 | . I ENX]"" S DR=DR_";7////"_ENX | 
|---|
| 80 | . S ENX=$P($G(^ENG(6920,ENMA("IIWO","DA"),1)),U,4) ; phone | 
|---|
| 81 | . I ENX]"" S DR=DR_";8////"_ENX | 
|---|
| 82 | I '$G(ENMA("IIWO","DA")) D | 
|---|
| 83 | . ; build DR string for user editable fields | 
|---|
| 84 | . ; determine responsible technician (if any) | 
|---|
| 85 | . S ENI=$O(^ENG(6914,ENEQ,4,0)) | 
|---|
| 86 | . S ENJ=$S(ENI:$P(^ENG(6914,ENEQ,4,ENI,0),U,2),1:"") | 
|---|
| 87 | . S ENTEC=$S(ENJ:$P($G(^ENG("EMP",ENJ,0)),U),1:"") | 
|---|
| 88 | . I ENTEC]""!ENEDPM D | 
|---|
| 89 | . . S DR=DR_";16" | 
|---|
| 90 | . . I ENTEC]"" S DR=DR_"//"_$S(ENEDPM:"",1:"/")_ENTEC ; resp. tech | 
|---|
| 91 | . S DR=DR_";7;8;40" | 
|---|
| 92 | I $E(DR)=";" S DR=$E(DR,2,245) | 
|---|
| 93 | D ^DIE | 
|---|
| 94 | PRT ; print work order? | 
|---|
| 95 | S ENI=$O(^ENG(6910.2,"B","AUTO PRINT NEW W.O.",0)) | 
|---|
| 96 | S AUTOPRT=$S(ENI:$P(^ENG(6910.2,ENI,0),U,2),1:"") | 
|---|
| 97 | S SHOPDEV=$$GET1^DIQ(6922,SHOPKEY,2) | 
|---|
| 98 | ; if no user interaction required then call woprnt | 
|---|
| 99 | I "^L^S^"[(U_AUTOPRT_U),SHOPDEV]"" S WARD=0 D WOPRNT^ENWONEW G PRTX | 
|---|
| 100 | ; if not autoprinted and shop is receiving area then skip | 
|---|
| 101 | I SHOPKEY#100>89 G PRTX | 
|---|
| 102 | ; if subsequent equipment of multiple then use previous device (if any) | 
|---|
| 103 | I $G(ENMA("IIWO","DA")) D  G PRTX | 
|---|
| 104 | . S IOP=$G(ENMA("IIWO","ION")) | 
|---|
| 105 | . I IOP]"" S %ZIS="Q" D ^%ZIS Q:POP  D PRTL | 
|---|
| 106 | ; if not autoprinted, not receiving area, and not subsequent then ask | 
|---|
| 107 | S DIR(0)="Y",DIR("A")="Print this work order",DIR("B")="YES" | 
|---|
| 108 | D ^DIR K DIR Q:Y'>0 | 
|---|
| 109 | D DEV^ENLIB I POP D HOME^%ZIS G PRTX | 
|---|
| 110 | I $G(ENMA("IIWO")) S ENION=$S($D(IO("Q")):"Q;"_ION,1:ION) | 
|---|
| 111 | D PRTL | 
|---|
| 112 | PRTX ; | 
|---|
| 113 | ; unlock work order | 
|---|
| 114 | L -^ENG(6920,DA) | 
|---|
| 115 | EXIT ; | 
|---|
| 116 | Q | 
|---|
| 117 | ; | 
|---|
| 118 | PRTL ; Print W.O. Long Format | 
|---|
| 119 | ; determine required variables | 
|---|
| 120 | N ENBARCD,ENWO | 
|---|
| 121 | S ENBARCD=0 | 
|---|
| 122 | S ENI=$O(^ENG(6910.2,"B","PRINT BAR CODES ON W.O.")) | 
|---|
| 123 | I ENI,$P(^ENG(6910.2,ENI,0),U,2)="Y" S ENBARCD=1 | 
|---|
| 124 | S ENWO=$P(^ENG(6920,DA,0),U) | 
|---|
| 125 | ; | 
|---|
| 126 | I $D(IO("Q")) D  Q | 
|---|
| 127 | . S ZTRTN="PRT1^ENWOD",ZTDESC="Enginering Work Order" | 
|---|
| 128 | . S ZTIO=ION | 
|---|
| 129 | . ; when subsequent entry during multiple use date/time of 1st for task | 
|---|
| 130 | . I +$G(ENMA("IIWO","QDT")) S ZTDTH=ENMA("IIWO","QDT") | 
|---|
| 131 | . F ENX="DA","ENBARCD","ENWO" S ZTSAVE(ENX)="" | 
|---|
| 132 | . D ^%ZTLOAD | 
|---|
| 133 | . ; when 1st of multiple entry return date/time queued | 
|---|
| 134 | . I $G(ENMA("IIWO")),$G(ENION)]"" S ENQDT=$G(ZTSK("D")) | 
|---|
| 135 | . D HOME^%ZIS K ZTSK | 
|---|
| 136 | ; | 
|---|
| 137 | D PRT1^ENWOD | 
|---|
| 138 | I $E(IOST,1,2)="C-" D HOLD^ENWOD2 | 
|---|
| 139 | K ENDSTAT,ENX,ENINV | 
|---|
| 140 | Q | 
|---|
| 141 | ; | 
|---|
| 142 | ;ENWONEW3 | 
|---|