| 1 | ENEQ1 ;WIRMFO/DH,SAB-Enter Equipment Records ;12.18.97
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**14,25,29,35,47**;Aug 17, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EQAD ;New Inventory Entry Point
 | 
|---|
| 5 |  S END=0
 | 
|---|
| 6 |  N IOINLOW,IOINHI D ZIS^ENUTL
 | 
|---|
| 7 |  D ASKEDM G:END EQADX
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  F  D  Q:END
 | 
|---|
| 10 |  . W @IOF,!!!
 | 
|---|
| 11 |  . S DIR(0)="Y",DIR("A")="Enter a new equipment inventory item"
 | 
|---|
| 12 |  . S DIR("B")="NO"
 | 
|---|
| 13 |  . S DIR("?")="Enter 'Y' to add a new Equipment Record."
 | 
|---|
| 14 |  . W @IOF,!!! D ^DIR K DIR I 'Y S END=1 Q
 | 
|---|
| 15 |  . D ASKSER Q:END  Q:'$D(ENSERIAL)
 | 
|---|
| 16 |  . D ADDEQ
 | 
|---|
| 17 | EQADX ;
 | 
|---|
| 18 |  K DA,DIC,DIE,DIK,DIR,DIROUT,DIRUT,DR,DTOUT,DUOUT,X,Y
 | 
|---|
| 19 |  K END,ENDA,ENDR,ENNXL,ENSCRN
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | EQMAD ;Multiple Inventory Entry Point 
 | 
|---|
| 23 |  S END=0,ENMA=1
 | 
|---|
| 24 |  N IOINLOW,IOINHI D ZIS^ENUTL
 | 
|---|
| 25 |  W @IOF,!!!
 | 
|---|
| 26 |  S DIR(0)="Y",DIR("A")="Enter multiple equipment inventory items"
 | 
|---|
| 27 |  S DIR("B")="NO"
 | 
|---|
| 28 |  S DIR("?",1)="This option allows a rapid entry of multiple items which"
 | 
|---|
| 29 |  S DIR("?",2)="are alike; e.g. 25 new electric beds."
 | 
|---|
| 30 |  S DIR("?")="Enter YES or NO"
 | 
|---|
| 31 |  D ^DIR K DIR G:'Y EQMADX
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  D ASKEDM G:END EQMADX
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  W !!,"Proceed by entering the first item in full"
 | 
|---|
| 36 |  S DIR(0)="E" D ^DIR K DIR G:$D(DIRUT) EQMADX
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  D ASKSER G:END EQMADX G:'$D(ENSERIAL) EQMAD
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 |  D ADDEQ I 'ENNXL G EQMADX
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  W @IOF,!!!,"For each additional equipment entry enter:"
 | 
|---|
| 43 |  W !," SERIAL #, LOCATION, VA PM NUMBER, and LOCAL IDENTIFIER (if any)."
 | 
|---|
| 44 |  F  D  Q:END
 | 
|---|
| 45 |  . W !!
 | 
|---|
| 46 |  . S DIR(0)="Y",DIR("A")="Enter another item",DIR("B")="YES"
 | 
|---|
| 47 |  . S DIR("?")="Enter YES to add another similar equipment item"
 | 
|---|
| 48 |  . D ^DIR K DIR I 'Y S END=1 Q
 | 
|---|
| 49 |  . S ENDAOLD=ENNXL
 | 
|---|
| 50 |  . D EQMAS^ENEQ3 I 'ENNXL S ENNXL=ENDAOLD
 | 
|---|
| 51 |  . K ENDAOLD
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | EQMADX ;
 | 
|---|
| 54 |  K DA,DIC,DIE,DIK,DIR,DIROUT,DIRUT,DR,DTOUT,DUOUT,X,Y
 | 
|---|
| 55 |  K END,ENDA,ENDR,ENMA,ENNXL,ENSCRN
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | ASKEDM ; ask edit method (screen or template)
 | 
|---|
| 59 |  ; out
 | 
|---|
| 60 |  ;   ENSCRN - flag: true when screen entry
 | 
|---|
| 61 |  ;   ENDR   - input template when ENSCRN = 0
 | 
|---|
| 62 |  ;   END    - true when timeout or '^'
 | 
|---|
| 63 |  S DIR(0)="Y",DIR("A")="Screen entry",DIR("B")="YES"
 | 
|---|
| 64 |  S DIR("?")="Enter 'Y' for screen handler, 'N' for standard FileMan."
 | 
|---|
| 65 |  D ^DIR K DIR S:$D(DIRUT) END=1 S ENSCRN=Y
 | 
|---|
| 66 |  S:ENSCRN=0 ENDR=$S($D(^DIE("B","ENZEQENTER")):"[ENZ",1:"[EN")_"EQENTER]"
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | ASKSER ; ask serial # and check file for duplicates
 | 
|---|
| 70 |  ; out
 | 
|---|
| 71 |  ;   ENSERIAL - contains entered serial # or
 | 
|---|
| 72 |  ;              undefined if user did not reconfirm after a match
 | 
|---|
| 73 |  ;   END - true when timeout or '^'
 | 
|---|
| 74 |  N DA,ENI,ENMATCH,ENX
 | 
|---|
| 75 |  ; ask serial #
 | 
|---|
| 76 |  S ENSERIAL=""
 | 
|---|
| 77 |  W !!,"Please enter SERIAL # if available. Otherwise press <return>."
 | 
|---|
| 78 |  S DIR(0)="6914,5" D ^DIR K DIR I $D(DTOUT)!$D(DUOUT) S END=1 Q
 | 
|---|
| 79 |  S ENSERIAL=Y
 | 
|---|
| 80 |  Q:ENSERIAL=""
 | 
|---|
| 81 |  ; look for matches
 | 
|---|
| 82 |  S ENX=$$UP^XLFSTR($TR(ENSERIAL," !""#$%&'()*+,-./:;<=>?@[\]^_`{|}~",""))
 | 
|---|
| 83 |  S ENX=$E(ENX_" ",1,30)
 | 
|---|
| 84 |  S ENI=0 F  S ENI=$O(^ENG(6914,"FC",ENX,ENI)) Q:'ENI  S ENMATCH(ENI)=""
 | 
|---|
| 85 |  ; if match show list, reconfirm
 | 
|---|
| 86 |  I $D(ENMATCH) D
 | 
|---|
| 87 |  . W !,"List of existing equipment with a similar Serial #"
 | 
|---|
| 88 |  . W !,?2,"Entry #",?14,"Manufacturer"
 | 
|---|
| 89 |  . S ENI=0 F  S ENI=$O(ENMATCH(ENI)) Q:'ENI  D
 | 
|---|
| 90 |  . . W !,?2,ENI,?14,$E($$GET1^DIQ(6914,ENI,1),1,60)
 | 
|---|
| 91 |  . . W !,?4,"Mod: ",$$GET1^DIQ(6914,ENI,4)
 | 
|---|
| 92 |  . . W ?40,"Ser #: ",$$GET1^DIQ(6914,ENI,5)
 | 
|---|
| 93 |  . S DIR(0)="Y",DIR("A")="Do you still want to add this new record"
 | 
|---|
| 94 |  . S DIR("B")="NO" D ^DIR K DIR S:$D(DIRUT) END=1 I 'Y K ENSERIAL
 | 
|---|
| 95 |  Q
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 | ADDEQ ; add new equipment item
 | 
|---|
| 98 |  ; in
 | 
|---|
| 99 |  ;   ENSERIAL (optional) contains serial #
 | 
|---|
| 100 |  ;   ENMA (optional) flag, true if multiple equipment entry
 | 
|---|
| 101 |  ; out
 | 
|---|
| 102 |  ;   ENNXL - ien of new equipment record, 0 if unsuccessful
 | 
|---|
| 103 |  ;   also when $G(ENMA) true
 | 
|---|
| 104 |  ;       ENMA("FAP") - flag, true if FA Document generated
 | 
|---|
| 105 |  ;       ENMA("IIWO") - flag, true if Incom. Insp. W.O. generated
 | 
|---|
| 106 |  ;       also when $G(ENMA("IIWO")) true
 | 
|---|
| 107 |  ;           ENMA("IIWO","DA") - ien of created w.o.
 | 
|---|
| 108 |  ;           ENMA("IIWO","ION") - ION where w.o. printed
 | 
|---|
| 109 |  ;           ENMA("IIWO","QDT") - queued date/time if w.o. tasked
 | 
|---|
| 110 |  ; create new record
 | 
|---|
| 111 |  D ENR I 'ENNXL W $C(7),!,ENERR S DIR(0)="E" D ^DIR K DIR,ENERR Q
 | 
|---|
| 112 |  ; lock new record
 | 
|---|
| 113 |  L +^ENG(6914,ENNXL):1 I '$T D   Q
 | 
|---|
| 114 |  . W !!,$C(7),"Another user is editing Entry # ",ENNXL,". Can't proceed."
 | 
|---|
| 115 |  ; populate serial #
 | 
|---|
| 116 |  I $G(ENSERIAL)]"" S DIE="^ENG(6914,",DR="5////"_ENSERIAL,DA=ENNXL D ^DIE
 | 
|---|
| 117 |  ; user edit new record
 | 
|---|
| 118 |  I ENSCRN D
 | 
|---|
| 119 |  . S DJSC="ENEQ1",(DJDN,ENDA,DA)=ENNXL
 | 
|---|
| 120 |  . D EN^ENJ W IOINLOW
 | 
|---|
| 121 |  . K DJD0,DJDIS,DJDN,DJLG,DJSC,DJSW2
 | 
|---|
| 122 |  I 'ENSCRN S DIE="^ENG(6914,",DR=ENDR,DA=ENNXL D ^DIE
 | 
|---|
| 123 |  ; enter PM schedule
 | 
|---|
| 124 |  I $D(^XUSEC("ENEDPM",DUZ)) D
 | 
|---|
| 125 |  . S DIR(0)="Y",DIR("B")="YES"
 | 
|---|
| 126 |  . S DIR("A")="Would you like to include this item in the PM program"
 | 
|---|
| 127 |  . D ^DIR K DIR Q:'Y
 | 
|---|
| 128 |  . N ENXP
 | 
|---|
| 129 |  . S DIE="^ENG(6914,",(DA,ENDA)=ENNXL,ENXP=1
 | 
|---|
| 130 |  . I $D(^ENG(6914,DA,4)) D DINV^ENEQPMP3 Q:X="^"
 | 
|---|
| 131 |  . D XNPMSE^ENEQPMP
 | 
|---|
| 132 |  ; generate incoming inspection W.O.?
 | 
|---|
| 133 |  S ENI=$O(^ENG(6910.2,"B","ASK INCOMING INSPECTION W.O.",0))
 | 
|---|
| 134 |  I ENI,$P(^ENG(6910.2,ENI,0),U,2) D
 | 
|---|
| 135 |  . S DIR(0)="Y",DIR("A")="Create an Incoming Inspection Work Order"
 | 
|---|
| 136 |  . S DIR("B")=$S($P(^ENG(6910.2,ENI,0),U,2)=2:"YES",1:"NO")
 | 
|---|
| 137 |  . D ^DIR K DIR S:$G(ENMA) ENMA("IIWO")=$S(Y>0:1,1:0)
 | 
|---|
| 138 |  . I Y D IIWO^ENWONEW3(ENNXL) I $G(ENMA) D
 | 
|---|
| 139 |  . . S ENMA("IIWO","DA")=ENDA
 | 
|---|
| 140 |  . . S ENMA("IIWO","ION")=$G(ENION)
 | 
|---|
| 141 |  . . S ENMA("IIWO","QDT")=$G(ENQDT)
 | 
|---|
| 142 |  . . K ENDA,ENION,ENQDT
 | 
|---|
| 143 |  ; generate FA Document?
 | 
|---|
| 144 |  I $D(^XUSEC("ENFACS",DUZ)),$P(^ENG(6914,ENNXL,0),U,4)="NX",$P($G(^(8)),U,2) D
 | 
|---|
| 145 |  . W !!,"This Equipment Record is both NONEXPENDABLE and CAPITALIZED."
 | 
|---|
| 146 |  . W:$G(ENMA) !,"The same will be true of other records created using this option."
 | 
|---|
| 147 |  . S DIR(0)="Y",DIR("A")="Do you wish to send an FA document to Austin"
 | 
|---|
| 148 |  . S DIR("B")="YES"
 | 
|---|
| 149 |  . D ^DIR K DIR S:$G(ENMA) ENMA("FAP")=$S(Y>0:1,1:0)
 | 
|---|
| 150 |  . I Y  S ENEQ("DA")=ENNXL D ^ENFAACQ K ENEQ("DA")
 | 
|---|
| 151 |  ; generate new equipment bulletin
 | 
|---|
| 152 |  S DA=ENNXL D BULL^ENEQ3
 | 
|---|
| 153 |  ; unlock entry
 | 
|---|
| 154 |  L -^ENG(6914,ENNXL)
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 | ENR ; create entry with next available ien
 | 
|---|
| 158 |  ; out
 | 
|---|
| 159 |  ;   DA,ENNXL - ien of new entry, 0 when unsuccessful
 | 
|---|
| 160 |  ;   ENERR    - error message if unsuccessful
 | 
|---|
| 161 |  S (DA,ENNXL)=0 K ENERR
 | 
|---|
| 162 |  I '$D(ZTQUEUED) W !,"...Setting up new equipment record"
 | 
|---|
| 163 |  N DD,DIC,DINUM,DO,X,Y
 | 
|---|
| 164 |  L +^ENG(6914,0):10
 | 
|---|
| 165 |  I '$T S ENERR="SORRY, CAN'T LOCK ^ENG(6914,0) GLOBAL, TRY LATER" Q
 | 
|---|
| 166 |  ;
 | 
|---|
| 167 |  S ENNXL=$P(^ENG(6914,0),"^",3)
 | 
|---|
| 168 |  F  S ENNXL=ENNXL+1 Q:'$D(^ENG(6914,ENNXL,0))
 | 
|---|
| 169 |  ;
 | 
|---|
| 170 |  S DIC="^ENG(6914,",DIC(0)="LX",(DA,X,DINUM)=ENNXL
 | 
|---|
| 171 |  K DD,DO D FILE^DICN
 | 
|---|
| 172 |  S:Y'>0 (DA,ENNXL)=0,ENERR="Unable to add new record at this time..."
 | 
|---|
| 173 |  L -^ENG(6914,0)
 | 
|---|
| 174 |  Q
 | 
|---|
| 175 |  ;
 | 
|---|
| 176 |  ;ENEQ1
 | 
|---|