| 1 | ENTIDD  ;WOIFO/SAB - Engineering DD ;2/4/2008 | 
|---|
| 2 | ;;7.0;ENGINEERING;**87**;Aug 17, 1993;Build 16 | 
|---|
| 3 | ; | 
|---|
| 4 | ITTCHK(ENCMR,ENX)       ; IT Tracking Check | 
|---|
| 5 | ; called by input transform on CMR file IT TRACKING field | 
|---|
| 6 | ; input | 
|---|
| 7 | ;   ENCMR - CMR ien | 
|---|
| 8 | ;   ENX - user input (1 for yes or 0 or no) | 
|---|
| 9 | ; returns 1 (true) if change should be prevented | 
|---|
| 10 | ; | 
|---|
| 11 | N ENRET | 
|---|
| 12 | S ENRET=0 | 
|---|
| 13 | I ENX'=1,$$AITACMR(ENCMR) D | 
|---|
| 14 | . S ENRET=1 | 
|---|
| 15 | . D EN^DDIOL("CMR has equipment with an active IT assignment. Can't change IT TRACKING.") | 
|---|
| 16 | Q ENRET | 
|---|
| 17 | ; | 
|---|
| 18 | AITACMR(ENCMR)  ; Active IT Assignment CMR | 
|---|
| 19 | ; input ENCMR = CMR internal entry number | 
|---|
| 20 | ; returns 1 (if any equipment on CMR has an active assignment) or 0 | 
|---|
| 21 | N ENEQ,ENRET | 
|---|
| 22 | S ENRET=0 | 
|---|
| 23 | ; | 
|---|
| 24 | ; loop thru equipment on CMR | 
|---|
| 25 | S ENEQ=0 F  S ENEQ=$O(^ENG(6914,"AD",ENCMR,ENEQ)) Q:'ENEQ  D  Q:ENRET | 
|---|
| 26 | . I $D(^ENG(6916.3,"AEA",ENEQ)) S ENRET=1 | 
|---|
| 27 | ; | 
|---|
| 28 | Q ENRET | 
|---|
| 29 | ; | 
|---|
| 30 | CMRCHK(ENDA,ENX)        ; CMR Check | 
|---|
| 31 | ; called by EQUIPMENT INV. file CMR field Input Transform | 
|---|
| 32 | ; input | 
|---|
| 33 | ;   ENDA - equipment ien | 
|---|
| 34 | ;   ENX - user input, CMR ien | 
|---|
| 35 | ; returns 1 (true) if change should be prevented | 
|---|
| 36 | N DA,X ; protect variables used by input transform | 
|---|
| 37 | N ENA,ENRET,ENY | 
|---|
| 38 | S ENRET=0 | 
|---|
| 39 | ; | 
|---|
| 40 | D | 
|---|
| 41 | . ; perform checks | 
|---|
| 42 | . Q:'$D(^ENG(6916.3,"AEA",ENDA))  ; no active assignments for equip | 
|---|
| 43 | . S ENY=$G(^ENG(6914.1,ENX,0)) ; CMR zero node | 
|---|
| 44 | . Q:$P(ENY,"^",9)  ; IT Tracking of new CMR is Yes | 
|---|
| 45 | . Q:$E($P(ENY,"^"),1,2)="99"  ; CMR name starts 99, may be for excess | 
|---|
| 46 | . ; | 
|---|
| 47 | . ; must be an inappropriate change | 
|---|
| 48 | . S ENRET=1 | 
|---|
| 49 | . S ENA(1)="Equipment has an active IT assignment." | 
|---|
| 50 | . S ENA(2)="New CMR must be excess (99x) or have IT TRACKING = YES." | 
|---|
| 51 | . D EN^DDIOL(.ENA) | 
|---|
| 52 | ; | 
|---|
| 53 | Q ENRET | 
|---|
| 54 | ; | 
|---|
| 55 | CMRUPD(ENEQ,ENCMR1,ENCMR2)      ; terminate IT responsibilities when CMR changed | 
|---|
| 56 | ; called by cross-reference on Equipment Inv. file CMR field | 
|---|
| 57 | ; input | 
|---|
| 58 | ;   ENEQ   - equipment ien | 
|---|
| 59 | ;   ENCMR1 - old CMR ien | 
|---|
| 60 | ;   ENCMR2 - new CMR ien (or null if value deleted) | 
|---|
| 61 | Q:$D(ENDJCMR1)  ; edited by DJ screen, change may be backed out so wait | 
|---|
| 62 | Q:'$D(^ENG(6916.3,"AEA",ENEQ))  ; no active assignments for equip | 
|---|
| 63 | I ENCMR2,$D(^ENG(6914.1,"AIT",1,ENCMR2)) Q  ; new CMR IT TRACKING = yes | 
|---|
| 64 | ; | 
|---|
| 65 | ; equipment with active assignments is no longer on a tracked CMR | 
|---|
| 66 | N ENCMR1N,ENCMR2N,ENDA,ENL,ENTX,ENX | 
|---|
| 67 | N DIFROM,XMDUZ,XMMG,XMROU,XMSTRIP,XMSUB,XMTEXT,XMY,XMYBLOB,XMZ | 
|---|
| 68 | ; loop thru assignments | 
|---|
| 69 | S ENL=5 | 
|---|
| 70 | S ENDA=0 F  S ENDA=$O(^ENG(6916.3,"AEA",ENEQ,ENDA)) Q:'ENDA  D | 
|---|
| 71 | . ; terminate assignment | 
|---|
| 72 | . S ENX=$$TERM^ENTIUTL1(ENDA) | 
|---|
| 73 | . ; place on message text | 
|---|
| 74 | . S ENL=ENL+1 | 
|---|
| 75 | . S ENTX(ENL)="Owner: "_$$GET1^DIQ(6916.3,ENDA,1) | 
|---|
| 76 | ; | 
|---|
| 77 | ; send message | 
|---|
| 78 | S ENCMR1N=$S(ENCMR1:$P($G(^ENG(6914.1,ENCMR1,0)),U),1:ENCMR1) | 
|---|
| 79 | S ENCMR2N=$S(ENCMR2:$P($G(^ENG(6914.1,ENCMR2,0)),U),1:"<deleted>") | 
|---|
| 80 | S ENTX(1)="The CMR value for Equipment Entry # "_ENEQ_" was changed" | 
|---|
| 81 | S ENTX(2)="from "_ENCMR1N_" to "_ENCMR2N_" by "_$$GET1^DIQ(200,DUZ,.01) | 
|---|
| 82 | S ENTX(3)="The following IT assignments were automatically terminated" | 
|---|
| 83 | S ENTX(4)="since the new CMR value does not have IT TRACKING = Yes." | 
|---|
| 84 | S ENTX(5)=" " | 
|---|
| 85 | ; | 
|---|
| 86 | S XMDUZ="AEMS/MERS" | 
|---|
| 87 | S XMSUB="IT Assignments Terminated for Entry # "_ENEQ | 
|---|
| 88 | S XMY("G.EN IT EQUIPMENT")="" | 
|---|
| 89 | S XMTEXT="ENTX(" | 
|---|
| 90 | D ^XMD | 
|---|
| 91 | Q | 
|---|
| 92 | ; | 
|---|
| 93 | CMRDJPR ; CMR Label Pre-Action for ENEQ1 DJ Edit Screen | 
|---|
| 94 | I $D(^ENG(6915.2,"B",DA)) S X=$$CHKFA^ENFAUTL(DA) I $P(X,U)=1 D | 
|---|
| 95 | . W "Capitalized asset. CMR may only be edited via FAP documents." | 
|---|
| 96 | . W !,"Press <RETURN> to continue..." | 
|---|
| 97 | . R X:DTIME | 
|---|
| 98 | . S DJNX=9 | 
|---|
| 99 | ; | 
|---|
| 100 | ; if CMR field will be edited save current CMR value | 
|---|
| 101 | ; note: the existence of this variable will prevent the ACMR x-ref from | 
|---|
| 102 | ; deleting any active IT assignments | 
|---|
| 103 | I $G(DJNX)'=9 S ENDJCMR1=$P($G(^ENG(6914,DA,2)),U,9) | 
|---|
| 104 | Q | 
|---|
| 105 | ; | 
|---|
| 106 | CMRDJPS ; CMR Label Post-Action for ENEQ1 DJ Edit Screen | 
|---|
| 107 | ; note that new data has already been filed by this point | 
|---|
| 108 | ; input ENDJCMR1 - CMR (internal) value prior to the edit | 
|---|
| 109 | ;                  note: this variable will be killed | 
|---|
| 110 | ;       DA - equipment ien being edited | 
|---|
| 111 | ; output | 
|---|
| 112 | ;   may reset value of CMR field, if value was reset the following | 
|---|
| 113 | ;   two DJ screen handler variables will also be modified | 
|---|
| 114 | ;     V(8) - update to reflect the reset CMR value (external) | 
|---|
| 115 | ;     DJNX - update to re-edit the CMR field | 
|---|
| 116 | ; | 
|---|
| 117 | Q:'$D(ENDJCMR1) | 
|---|
| 118 | N ENFDA,ENOLD,ENNEW,ENX,X | 
|---|
| 119 | S ENOLD=ENDJCMR1 ; old CMR value | 
|---|
| 120 | S ENNEW=$P($G(^ENG(6914,DA,2)),U,9) ; new CMR value | 
|---|
| 121 | I ENNEW'=ENOLD D | 
|---|
| 122 | . ; CMR was changed | 
|---|
| 123 | . S ENX=$$CMRCHK^ENTIDD(DA,ENNEW) ; may display message | 
|---|
| 124 | . I ENX D | 
|---|
| 125 | . . ; change was not appropriate - pause after message | 
|---|
| 126 | . . W !,"Press <RETURN> to continue..." | 
|---|
| 127 | . . R X:DTIME | 
|---|
| 128 | . . ; change back to original value | 
|---|
| 129 | . . S ENFDA(6914,DA_",",19)=ENOLD | 
|---|
| 130 | . . D FILE^DIE("","ENFDA") | 
|---|
| 131 | . . ; fix screen | 
|---|
| 132 | . . S V(8)=$$GET1^DIQ(6914,DA,19) | 
|---|
| 133 | . . S DJNX=8 | 
|---|
| 134 | . I 'ENX D | 
|---|
| 135 | . . ; change was appropriate | 
|---|
| 136 | . . ; terminate any active IT assignments | 
|---|
| 137 | . . K ENDJCMR1 ; to prevent following call from quitting | 
|---|
| 138 | . . D CMRUPD^ENTIDD(DA,ENOLD,ENNEW) | 
|---|
| 139 | ; | 
|---|
| 140 | ; clean up symbol table for variable set by the pre-action | 
|---|
| 141 | K ENDJCMR1 | 
|---|
| 142 | Q | 
|---|
| 143 | ; | 
|---|
| 144 | ;ENTIDD | 
|---|