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