ENTIDD ;WOIFO/SAB - Engineering DD ;2/4/2008 ;;7.0;ENGINEERING;**87**;Aug 17, 1993;Build 16 ; ITTCHK(ENCMR,ENX) ; IT Tracking Check ; called by input transform on CMR file IT TRACKING field ; input ; ENCMR - CMR ien ; ENX - user input (1 for yes or 0 or no) ; returns 1 (true) if change should be prevented ; N ENRET S ENRET=0 I ENX'=1,$$AITACMR(ENCMR) D . S ENRET=1 . D EN^DDIOL("CMR has equipment with an active IT assignment. Can't change IT TRACKING.") Q ENRET ; AITACMR(ENCMR) ; Active IT Assignment CMR ; input ENCMR = CMR internal entry number ; returns 1 (if any equipment on CMR has an active assignment) or 0 N ENEQ,ENRET S ENRET=0 ; ; loop thru equipment on CMR S ENEQ=0 F S ENEQ=$O(^ENG(6914,"AD",ENCMR,ENEQ)) Q:'ENEQ D Q:ENRET . I $D(^ENG(6916.3,"AEA",ENEQ)) S ENRET=1 ; Q ENRET ; CMRCHK(ENDA,ENX) ; CMR Check ; called by EQUIPMENT INV. file CMR field Input Transform ; input ; ENDA - equipment ien ; ENX - user input, CMR ien ; returns 1 (true) if change should be prevented N DA,X ; protect variables used by input transform N ENA,ENRET,ENY S ENRET=0 ; D . ; perform checks . Q:'$D(^ENG(6916.3,"AEA",ENDA)) ; no active assignments for equip . S ENY=$G(^ENG(6914.1,ENX,0)) ; CMR zero node . Q:$P(ENY,"^",9) ; IT Tracking of new CMR is Yes . Q:$E($P(ENY,"^"),1,2)="99" ; CMR name starts 99, may be for excess . ; . ; must be an inappropriate change . S ENRET=1 . S ENA(1)="Equipment has an active IT assignment." . S ENA(2)="New CMR must be excess (99x) or have IT TRACKING = YES." . D EN^DDIOL(.ENA) ; Q ENRET ; CMRUPD(ENEQ,ENCMR1,ENCMR2) ; terminate IT responsibilities when CMR changed ; called by cross-reference on Equipment Inv. file CMR field ; input ; ENEQ - equipment ien ; ENCMR1 - old CMR ien ; ENCMR2 - new CMR ien (or null if value deleted) Q:$D(ENDJCMR1) ; edited by DJ screen, change may be backed out so wait Q:'$D(^ENG(6916.3,"AEA",ENEQ)) ; no active assignments for equip I ENCMR2,$D(^ENG(6914.1,"AIT",1,ENCMR2)) Q ; new CMR IT TRACKING = yes ; ; equipment with active assignments is no longer on a tracked CMR N ENCMR1N,ENCMR2N,ENDA,ENL,ENTX,ENX N DIFROM,XMDUZ,XMMG,XMROU,XMSTRIP,XMSUB,XMTEXT,XMY,XMYBLOB,XMZ ; loop thru assignments S ENL=5 S ENDA=0 F S ENDA=$O(^ENG(6916.3,"AEA",ENEQ,ENDA)) Q:'ENDA D . ; terminate assignment . S ENX=$$TERM^ENTIUTL1(ENDA) . ; place on message text . S ENL=ENL+1 . S ENTX(ENL)="Owner: "_$$GET1^DIQ(6916.3,ENDA,1) ; ; send message S ENCMR1N=$S(ENCMR1:$P($G(^ENG(6914.1,ENCMR1,0)),U),1:ENCMR1) S ENCMR2N=$S(ENCMR2:$P($G(^ENG(6914.1,ENCMR2,0)),U),1:"") S ENTX(1)="The CMR value for Equipment Entry # "_ENEQ_" was changed" S ENTX(2)="from "_ENCMR1N_" to "_ENCMR2N_" by "_$$GET1^DIQ(200,DUZ,.01) S ENTX(3)="The following IT assignments were automatically terminated" S ENTX(4)="since the new CMR value does not have IT TRACKING = Yes." S ENTX(5)=" " ; S XMDUZ="AEMS/MERS" S XMSUB="IT Assignments Terminated for Entry # "_ENEQ S XMY("G.EN IT EQUIPMENT")="" S XMTEXT="ENTX(" D ^XMD Q ; CMRDJPR ; CMR Label Pre-Action for ENEQ1 DJ Edit Screen I $D(^ENG(6915.2,"B",DA)) S X=$$CHKFA^ENFAUTL(DA) I $P(X,U)=1 D . W "Capitalized asset. CMR may only be edited via FAP documents." . W !,"Press to continue..." . R X:DTIME . S DJNX=9 ; ; if CMR field will be edited save current CMR value ; note: the existence of this variable will prevent the ACMR x-ref from ; deleting any active IT assignments I $G(DJNX)'=9 S ENDJCMR1=$P($G(^ENG(6914,DA,2)),U,9) Q ; CMRDJPS ; CMR Label Post-Action for ENEQ1 DJ Edit Screen ; note that new data has already been filed by this point ; input ENDJCMR1 - CMR (internal) value prior to the edit ; note: this variable will be killed ; DA - equipment ien being edited ; output ; may reset value of CMR field, if value was reset the following ; two DJ screen handler variables will also be modified ; V(8) - update to reflect the reset CMR value (external) ; DJNX - update to re-edit the CMR field ; Q:'$D(ENDJCMR1) N ENFDA,ENOLD,ENNEW,ENX,X S ENOLD=ENDJCMR1 ; old CMR value S ENNEW=$P($G(^ENG(6914,DA,2)),U,9) ; new CMR value I ENNEW'=ENOLD D . ; CMR was changed . S ENX=$$CMRCHK^ENTIDD(DA,ENNEW) ; may display message . I ENX D . . ; change was not appropriate - pause after message . . W !,"Press to continue..." . . R X:DTIME . . ; change back to original value . . S ENFDA(6914,DA_",",19)=ENOLD . . D FILE^DIE("","ENFDA") . . ; fix screen . . S V(8)=$$GET1^DIQ(6914,DA,19) . . S DJNX=8 . I 'ENX D . . ; change was appropriate . . ; terminate any active IT assignments . . K ENDJCMR1 ; to prevent following call from quitting . . D CMRUPD^ENTIDD(DA,ENOLD,ENNEW) ; ; clean up symbol table for variable set by the pre-action K ENDJCMR1 Q ; ;ENTIDD