- ENPROJ ;(WIRMFO)/DLM/DH/SAB-Project Tracking Enter/Edit ;4/25/97
- ;;7.0;ENGINEERING;**23,28**;Aug 17, 1993
- ;
- EDALLT ;Enter/Edit All Project Data - Template
- S ENDR="[ENPRI001]" G TEMPL
- ;
- EDALLS ;Enter/Edit All Project Data - Screen
- S ENDR="[ENPR ALL]" G SCREEN
- ;
- EDPREL ;Enter/Edit Preliminary Project Data - Screen
- S ENDR="[ENPR PRELIM]" G SCREEN
- ;
- EDMS ;Enter/Edit Milestone Data - Screen
- S ENDR="[ENPR MS]" G SCREEN
- ;
- EDAE ;Enter/Edit A/E Data - Screen
- S ENDR="[ENPR AE]" G SCREEN
- ;
- EDCO ;Enter/Edit Contractor Data - Screen
- S ENDR="[ENPR CO]" G SCREEN
- ;
- EDCHG ;Enter/Edit Changes & Remarks - Screen
- S ENDR="[ENPR CHG]" G SCREEN
- ;
- EDLOCAL ;Enter/Edit Local Project Data - Template
- S ENDR=$S($D(^DIE("B","ENZPRLOCAL")):"[ENZ",1:"[EN")_"PRLOCAL]" G TEMPL
- ;
- TEMPL ; called for input template edits
- ; input
- ; ENDR - name of template
- D ASKPROJ G:'ENDA TEMPLX
- S DIE="^ENG(""PROJ"",",DA=ENDA,DR=ENDR
- D ^DIE K DIE,DR
- I '$D(DTOUT),$D(^ENG("PROJ",ENDA,0)) D VALPROJ
- L -^ENG("PROJ",ENDA)
- I '$D(DTOUT),'$D(DUOUT) G TEMPL
- TEMPLX ; exit
- K DA,DIC,DIE,DIROUT,DIRUT,DR,DUOUT,DTOUT,X,Y
- K ENAMI,ENAY,ENBC,ENBCI,ENBO,ENBOI,ENCAF,ENCMI,ENCY,ENDA,ENDR
- K ENFT,ENPC,ENPCI,ENPN,ENPR,ENRY
- Q
- ;
- SCREEN ; called for screen edits
- ; input
- ; ENDR - name of form
- D ASKPROJ G:'ENDA SCREENX
- S DDSFILE=6925,DA=ENDA,DR=ENDR,DDSPARM="S"
- D ^DDS
- I $G(DDSSAVE),'$D(DTOUT),$D(^ENG("PROJ",ENDA,0)) D VALPROJ
- L -^ENG("PROJ",ENDA)
- I '$D(DTOUT),'$D(DUOUT) G SCREEN
- SCREENX ; exit
- K DA,DIC,DIE,DIROUT,DIRUT,DR,DUOUT,DTOUT,X,Y
- K DDSFILE,DDSPAGE,DDSPARM,DDSSAVE
- K ENDA,ENDR,ENPN
- Q
- ;
- ASKPROJ ; Ask project to edit
- ; output
- ; ENDA - ien of locked project (or null)
- S ENDA=""
- S DIC="^ENG(""PROJ"",",DIC(0)="AELMQ",DIC("A")="Select PROJECT NUMBER: "
- S DLAYGO=6925 D ^DIC K DIC,DLAYGO I Y'>0!$D(DTOUT)!$D(DUOUT) Q
- L +^ENG("PROJ",+Y):5 I '$T D Q
- . W $C(7),!!,"Project is locked by another user. Please try later",!
- S ENDA=+Y,ENPN=$P(Y,U,2)
- I $P(Y,U,3)=1 D
- . ; populate fields for new project
- . N DA,DR,DIE,ENMCI
- . S ENMCI=$$FIND1^DIC(4,"","O",$P(ENPN,"-"),"D")
- . S DR=""
- . S:ENMCI DR=DR_";3///^S X=ENMCI"
- . S:"4567"[$E(ENPN) DR=DR_";158///VHA"
- . S:"89"[$E(ENPN) DR=DR_";158///NCS"
- . I $E(DR)=";" S DR=$E(DR,2,999)
- . I DR]"" S DIE="^ENG(""PROJ"",",DA=ENDA D ^DIE
- Q
- ;
- VALPROJ ; Validate edited project
- ; input
- ; ENDA - ien of project
- ; ENPN - project number
- S ^TMP($J,"L")=1,^TMP($J,"L",ENPN)=ENDA
- D EN^ENPLV("R")
- K ^TMP($J,"L")
- Q
- ;
- ;ENPROJ
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HENPROJ 2558 printed Jan 18, 2025@02:56:33 Page 2
- ENPROJ ;(WIRMFO)/DLM/DH/SAB-Project Tracking Enter/Edit ;4/25/97
- +1 ;;7.0;ENGINEERING;**23,28**;Aug 17, 1993
- +2 ;
- EDALLT ;Enter/Edit All Project Data - Template
- +1 SET ENDR="[ENPRI001]"
- GOTO TEMPL
- +2 ;
- EDALLS ;Enter/Edit All Project Data - Screen
- +1 SET ENDR="[ENPR ALL]"
- GOTO SCREEN
- +2 ;
- EDPREL ;Enter/Edit Preliminary Project Data - Screen
- +1 SET ENDR="[ENPR PRELIM]"
- GOTO SCREEN
- +2 ;
- EDMS ;Enter/Edit Milestone Data - Screen
- +1 SET ENDR="[ENPR MS]"
- GOTO SCREEN
- +2 ;
- EDAE ;Enter/Edit A/E Data - Screen
- +1 SET ENDR="[ENPR AE]"
- GOTO SCREEN
- +2 ;
- EDCO ;Enter/Edit Contractor Data - Screen
- +1 SET ENDR="[ENPR CO]"
- GOTO SCREEN
- +2 ;
- EDCHG ;Enter/Edit Changes & Remarks - Screen
- +1 SET ENDR="[ENPR CHG]"
- GOTO SCREEN
- +2 ;
- EDLOCAL ;Enter/Edit Local Project Data - Template
- +1 SET ENDR=$SELECT($DATA(^DIE("B","ENZPRLOCAL")):"[ENZ",1:"[EN")_"PRLOCAL]"
- GOTO TEMPL
- +2 ;
- TEMPL ; called for input template edits
- +1 ; input
- +2 ; ENDR - name of template
- +3 DO ASKPROJ
- if 'ENDA
- GOTO TEMPLX
- +4 SET DIE="^ENG(""PROJ"","
- SET DA=ENDA
- SET DR=ENDR
- +5 DO ^DIE
- KILL DIE,DR
- +6 IF '$DATA(DTOUT)
- IF $DATA(^ENG("PROJ",ENDA,0))
- DO VALPROJ
- +7 LOCK -^ENG("PROJ",ENDA)
- +8 IF '$DATA(DTOUT)
- IF '$DATA(DUOUT)
- GOTO TEMPL
- TEMPLX ; exit
- +1 KILL DA,DIC,DIE,DIROUT,DIRUT,DR,DUOUT,DTOUT,X,Y
- +2 KILL ENAMI,ENAY,ENBC,ENBCI,ENBO,ENBOI,ENCAF,ENCMI,ENCY,ENDA,ENDR
- +3 KILL ENFT,ENPC,ENPCI,ENPN,ENPR,ENRY
- +4 QUIT
- +5 ;
- SCREEN ; called for screen edits
- +1 ; input
- +2 ; ENDR - name of form
- +3 DO ASKPROJ
- if 'ENDA
- GOTO SCREENX
- +4 SET DDSFILE=6925
- SET DA=ENDA
- SET DR=ENDR
- SET DDSPARM="S"
- +5 DO ^DDS
- +6 IF $GET(DDSSAVE)
- IF '$DATA(DTOUT)
- IF $DATA(^ENG("PROJ",ENDA,0))
- DO VALPROJ
- +7 LOCK -^ENG("PROJ",ENDA)
- +8 IF '$DATA(DTOUT)
- IF '$DATA(DUOUT)
- GOTO SCREEN
- SCREENX ; exit
- +1 KILL DA,DIC,DIE,DIROUT,DIRUT,DR,DUOUT,DTOUT,X,Y
- +2 KILL DDSFILE,DDSPAGE,DDSPARM,DDSSAVE
- +3 KILL ENDA,ENDR,ENPN
- +4 QUIT
- +5 ;
- ASKPROJ ; Ask project to edit
- +1 ; output
- +2 ; ENDA - ien of locked project (or null)
- +3 SET ENDA=""
- +4 SET DIC="^ENG(""PROJ"","
- SET DIC(0)="AELMQ"
- SET DIC("A")="Select PROJECT NUMBER: "
- +5 SET DLAYGO=6925
- DO ^DIC
- KILL DIC,DLAYGO
- IF Y'>0!$DATA(DTOUT)!$DATA(DUOUT)
- QUIT
- +6 LOCK +^ENG("PROJ",+Y):5
- IF '$TEST
- Begin DoDot:1
- +7 WRITE $CHAR(7),!!,"Project is locked by another user. Please try later",!
- End DoDot:1
- QUIT
- +8 SET ENDA=+Y
- SET ENPN=$PIECE(Y,U,2)
- +9 IF $PIECE(Y,U,3)=1
- Begin DoDot:1
- +10 ; populate fields for new project
- +11 NEW DA,DR,DIE,ENMCI
- +12 SET ENMCI=$$FIND1^DIC(4,"","O",$PIECE(ENPN,"-"),"D")
- +13 SET DR=""
- +14 if ENMCI
- SET DR=DR_";3///^S X=ENMCI"
- +15 if "4567"[$EXTRACT(ENPN)
- SET DR=DR_";158///VHA"
- +16 if "89"[$EXTRACT(ENPN)
- SET DR=DR_";158///NCS"
- +17 IF $EXTRACT(DR)=";"
- SET DR=$EXTRACT(DR,2,999)
- +18 IF DR]""
- SET DIE="^ENG(""PROJ"","
- SET DA=ENDA
- DO ^DIE
- End DoDot:1
- +19 QUIT
- +20 ;
- VALPROJ ; Validate edited project
- +1 ; input
- +2 ; ENDA - ien of project
- +3 ; ENPN - project number
- +4 SET ^TMP($JOB,"L")=1
- SET ^TMP($JOB,"L",ENPN)=ENDA
- +5 DO EN^ENPLV("R")
- +6 KILL ^TMP($JOB,"L")
- +7 QUIT
- +8 ;
- +9 ;ENPROJ