| [613] | 1 | ENEQMED ;WISC/SAB-Multiple Equipment Edit ;9/24/97
 | 
|---|
 | 2 |  ;;7.0;ENGINEERING**35,45**;;Aug 17, 1993
 | 
|---|
 | 3 |  W !,"Multiple Equipment Edit",!
 | 
|---|
 | 4 |  I $G(IO)="" D HOME^%ZIS
 | 
|---|
 | 5 |  S ENEDNX=$D(^XUSEC("ENEDNX",DUZ))
 | 
|---|
 | 6 |  K ^TMP($J)
 | 
|---|
 | 7 | PO ; get purchase order #
 | 
|---|
 | 8 |  K ENPO,ENA,ENX
 | 
|---|
 | 9 |  S DIR(0)="6914,11" D ^DIR K DIR G:Y']""!$D(DIRUT) EXIT S ENX=Y
 | 
|---|
 | 10 |  I $D(^ENG(6914,"M",ENX)) S ENPO=ENX G POEND
 | 
|---|
 | 11 |  ; try an alternate format (add/remove station)
 | 
|---|
 | 12 |  S ENA=$S(ENX["-":$P(ENX,"-",2),1:$P($G(^DIC(6910,1,0)),U,2)_"-"_ENX)
 | 
|---|
 | 13 |  I ENA]"",$D(^ENG(6914,"M",ENA)) S ENPO=ENA G POEND
 | 
|---|
 | 14 |  ; show partial matches
 | 
|---|
 | 15 |  S DIC="^ENG(6914,",ENDX="M",X=ENX D IX^ENLIB1 I X]"" S ENPO=X G POEND
 | 
|---|
 | 16 |  I ENA]"" S X=ENA D IX^ENLIB1 I X]"" S ENPO=X G POEND
 | 
|---|
 | 17 |  W $C(7),!,"No equipment with purchase order # '",ENX,"' found in"
 | 
|---|
 | 18 |  W !,"the Equipment Inventory file."
 | 
|---|
 | 19 |  G PO
 | 
|---|
 | 20 | POEND ; have purchase order #
 | 
|---|
 | 21 |  ; store and sort equip in tmp
 | 
|---|
 | 22 |  K ^TMP($J,"ENPO")
 | 
|---|
 | 23 |  S ENDA=0 F  S ENDA=$O(^ENG(6914,"M",ENPO,ENDA)) Q:'ENDA  D
 | 
|---|
 | 24 |  . S DIC=6914,DR="6;1;4",DA=ENDA,DIQ="ENQ",DIQ(0)="I" D EN^DIQ1 K DIQ
 | 
|---|
 | 25 |  . F Y=6,1,4 I ENQ(6914,DA,Y,"I")']"" S ENQ(6914,DA,Y,"I")="?"
 | 
|---|
 | 26 |  . S ^TMP($J,"ENPO",ENQ(6914,DA,6,"I"),ENQ(6914,DA,1,"I"),ENQ(6914,DA,4,"I"),DA)=""
 | 
|---|
 | 27 |  . K ENQ
 | 
|---|
 | 28 |  ; build array ENL() of category-manufacturer-model combinations
 | 
|---|
 | 29 |  K ENL S (ENL,ENC("PO"))=0
 | 
|---|
 | 30 |  S ENCATI=""
 | 
|---|
 | 31 |  F  S ENCATI=$O(^TMP($J,"ENPO",ENCATI)) Q:ENCATI']""  D
 | 
|---|
 | 32 |  . I ENCATI S DIC=6911,DR=".01",DA=ENCATI,DIQ="ENQ" D EN^DIQ1 K DIQ
 | 
|---|
 | 33 |  . S ENCAT=$S(ENCATI:$E(ENQ(6911,ENCATI,.01),1,24),1:"unspecified") K ENQ
 | 
|---|
 | 34 |  . S ENMANI=""
 | 
|---|
 | 35 |  . F  S ENMANI=$O(^TMP($J,"ENPO",ENCATI,ENMANI)) Q:ENMANI']""  D
 | 
|---|
 | 36 |  . . I ENMANI S DIC=6912,DR=".01",DA=ENMANI,DIQ="ENQ" D EN^DIQ1  K DIQ
 | 
|---|
 | 37 |  . . S ENMAN=$S(ENMANI:$E(ENQ(6912,ENMANI,.01),1,24),1:"unspecified") K ENQ
 | 
|---|
 | 38 |  . . S ENMOD=""
 | 
|---|
 | 39 |  . . F  S ENMOD=$O(^TMP($J,"ENPO",ENCATI,ENMANI,ENMOD)) Q:ENMOD']""  D
 | 
|---|
 | 40 |  . . . S ENDA=0,ENC("LINE")=0
 | 
|---|
 | 41 |  . . . F  S ENDA=$O(^TMP($J,"ENPO",ENCATI,ENMANI,ENMOD,ENDA)) Q:'ENDA  D
 | 
|---|
 | 42 |  . . . . S ENC("LINE")=ENC("LINE")+1
 | 
|---|
 | 43 |  . . . S ENL=ENL+1
 | 
|---|
 | 44 |  . . . S ENL(ENL)=ENCATI_U_ENCAT
 | 
|---|
 | 45 |  . . . S ENL(ENL)=ENL(ENL)_U_ENMANI_U_ENMAN_U_ENMOD_U
 | 
|---|
 | 46 |  . . . S ENL(ENL)=ENL(ENL)_$S(ENMOD="?":"unspecified",1:$E(ENMOD,1,14))
 | 
|---|
 | 47 |  . . . S ENL(ENL)=ENL(ENL)_U_ENC("LINE")
 | 
|---|
 | 48 |  . . . S ENC("PO")=ENC("PO")+ENC("LINE")
 | 
|---|
 | 49 |  S ENL("MAX")=ENL
 | 
|---|
 | 50 |  ; display array
 | 
|---|
 | 51 |  W @IOF
 | 
|---|
 | 52 |  W ENC("PO")," Equipment Items found with Purchase Order # = ",ENPO
 | 
|---|
 | 53 |  W !,"Line",?6,"Equipment Category",?32,"Manufacturer"
 | 
|---|
 | 54 |  W ?58,"Model",?74,"Count",!
 | 
|---|
 | 55 |  F ENL=1:1:ENL("MAX") D
 | 
|---|
 | 56 |  . W !,ENL,?6,$P(ENL(ENL),U,2),?32,$P(ENL(ENL),U,4)
 | 
|---|
 | 57 |  . W ?58,$P(ENL(ENL),U,6),?74,$P(ENL(ENL),U,7)
 | 
|---|
 | 58 |  ; get lines to edit
 | 
|---|
 | 59 |  S DIR(0)="L^1:"_ENL("MAX")
 | 
|---|
 | 60 |  S DIR("A")="Select line(s) to edit"
 | 
|---|
 | 61 |  D ^DIR K DIR G:$D(DIRUT) EXIT S ENL("SEL")=Y
 | 
|---|
 | 62 |  S ENC("SEL")=0
 | 
|---|
 | 63 |  F ENI=1:1 S ENL=$P(ENL("SEL"),",",ENI) Q:'ENL  S ENC("SEL")=ENC("SEL")+$P(ENL(ENL),U,7)
 | 
|---|
 | 64 |  W !,ENC("SEL")," Equipment Items will be edited",!
 | 
|---|
 | 65 |  ; save/lock selected equipment
 | 
|---|
 | 66 |  K ^TMP($J,"ENSEL")
 | 
|---|
 | 67 |  S ENLOCK("BATCH")=$S(ENC("SEL")>50:0,1:1) ;lock batch (all) or as-edited
 | 
|---|
 | 68 |  S ENNX=0,ENFA=0,ENLOCK=1
 | 
|---|
 | 69 |  F ENI=1:1 S ENL=$P(ENL("SEL"),",",ENI) Q:'ENL  D
 | 
|---|
 | 70 |  . S ENCATI=$P(ENL(ENL),U,1)
 | 
|---|
 | 71 |  . S ENMANI=$P(ENL(ENL),U,3)
 | 
|---|
 | 72 |  . S ENMOD=$P(ENL(ENL),U,5)
 | 
|---|
 | 73 |  . S ENDA=0
 | 
|---|
 | 74 |  . F  S ENDA=$O(^TMP($J,"ENPO",ENCATI,ENMANI,ENMOD,ENDA)) Q:'ENDA!'ENLOCK  D
 | 
|---|
 | 75 |  . . I ENLOCK("BATCH") L +^ENG(6914,ENDA):10 I '$T S ENLOCK=0 Q
 | 
|---|
 | 76 |  . . S ^TMP($J,"ENSEL",ENDA)=""
 | 
|---|
 | 77 |  . . I 'ENNX,$P($G(^ENG(6914,ENDA,0)),U,4)="NX" S ENNX=1
 | 
|---|
 | 78 |  . . I 'ENFA,+$$CHKFA^ENFAUTL(ENDA) S ENFA=1
 | 
|---|
 | 79 |  I 'ENLOCK D  G EXIT
 | 
|---|
 | 80 |  . W $C(7),!,"Some of the selected equipment is currently being edited"
 | 
|---|
 | 81 |  . W !,"by another process. Please try later."
 | 
|---|
 | 82 |  K ^TMP($J,"ENFLD")
 | 
|---|
 | 83 |  ; reserve pseudo entry for edit session
 | 
|---|
 | 84 |  S ENDAT=0
 | 
|---|
 | 85 |  F ENI=90000000001:1:90000000100 L +^ENG(6914,ENI):0 I $T S ENDAT=ENI Q
 | 
|---|
 | 86 |  I 'ENDAT W $C(7),!,"Sorry, unable to reserve space for PM schedule." G EXIT
 | 
|---|
 | 87 |  K ^ENG(6914,ENDAT)
 | 
|---|
 | 88 |  S ^ENG(6914,ENDAT,0)=ENDAT
 | 
|---|
 | 89 |  G FLD^ENEQMED1
 | 
|---|
 | 90 | EXIT ;
 | 
|---|
 | 91 |  G EXIT^ENEQMED2
 | 
|---|
 | 92 |  ;ENEQMED
 | 
|---|