[613] | 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
|
---|