| 1 | ENFAACQ ;WASHINGTON IRMFO/SAB; EQUIPMENT ACQUISITION; 1/3/97
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**29,39**;Aug 17, 1993
 | 
|---|
| 3 |  ;This routine should not be modified.
 | 
|---|
| 4 |  ;called from routines ENEQ1, ENEQ2, ENEQ3, ENFADEL and ENFAXMTM
 | 
|---|
| 5 |  ; Input
 | 
|---|
| 6 |  ;   ENEQ("DA") - equipment entry #
 | 
|---|
| 7 |  ;                should already be locked (if appropriate)
 | 
|---|
| 8 |  ;                must not already have an active FA Document on file
 | 
|---|
| 9 |  ;   ENBAT("SILENT") - (optional) $D true for silent batch processing
 | 
|---|
| 10 |  ;   ENBAT("SEL")    - (optional) $D true for batch (by CMR or Station)
 | 
|---|
| 11 |  ; Output
 | 
|---|
| 12 |  ;   ^TMP($J,"BAD",ENEQ("DA"), - validation problems (if any)
 | 
|---|
| 13 |  ;                               only returned when $D(ENBAT("SILENT"))
 | 
|---|
| 14 |  D SETUP
 | 
|---|
| 15 |  D:ENDO VALEQ
 | 
|---|
| 16 |  D:ENDO ADDFA
 | 
|---|
| 17 |  K ENAV I ENDO,'$D(ENBAT("SEL")) D  I $G(ENUT) S ENDO=0 K ENUT
 | 
|---|
| 18 |  . S ENAV=$$AVP^ENFAAV("6915.2",ENFA("DA"))
 | 
|---|
| 19 |  . I 'ENAV W !,"Adjustment voucher was NOT created."
 | 
|---|
| 20 |  D:'ENDO DEL
 | 
|---|
| 21 |  D:ENDO UPDATE
 | 
|---|
| 22 |  D WRAPUP
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 | SETUP ;
 | 
|---|
| 25 |  S ENDO=1
 | 
|---|
| 26 |  S ENFA("DA")=""
 | 
|---|
| 27 |  S ENFAP("DOC")="FA"
 | 
|---|
| 28 |  F I=0:1:3,8,9 S ENEQ(I)=$G(^ENG(6914,ENEQ("DA"),I))
 | 
|---|
| 29 |  S:'$D(ENFAP("SITE")) ENFAP("SITE")=+^ENG(6915.1,1,0)
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 | VALEQ ; validate equipment
 | 
|---|
| 32 |  K ^TMP($J,"BAD",ENEQ("DA"))
 | 
|---|
| 33 |  D ^ENFAVAL
 | 
|---|
| 34 |  I $D(^TMP($J,"BAD",ENEQ("DA"))) D:'$D(ENBAT("SILENT")) LISTP^ENFAXMTM S ENDO=0 Q
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | ADDFA ; create entry for FA code sheet
 | 
|---|
| 37 |  S DIC="^ENG(6915.2,",DIC(0)="L",DLAYGO=6915.2
 | 
|---|
| 38 |  S X=ENEQ("DA"),DIC("DR")="1///NOW;1.5////^S X=DUZ"
 | 
|---|
| 39 |  K DD,DO D FILE^DICN K DLAYGO
 | 
|---|
| 40 |  I Y'>0 D  S ENDO=0 Q
 | 
|---|
| 41 |  . I $D(ENBAT("SILENT")) D BAD("Can't add to FA DOCUMENT LOG") Q
 | 
|---|
| 42 |  . W !!,"Can't update the FA DOCUMENT LOG file. Better contact IRM."
 | 
|---|
| 43 |  S ENFA("DA")=+Y
 | 
|---|
| 44 |  L +^ENG(6915.2,+Y):0 I '$T D  S ENDO=0 Q
 | 
|---|
| 45 |  . I $D(ENBAT("SILENT")) D BAD("Can't lock FA Document") Q
 | 
|---|
| 46 |  . W !!,"The FA document that you just created can not be locked."
 | 
|---|
| 47 |  . W !,"Please notify your ADPAC."
 | 
|---|
| 48 |  S ENFAP(0)=$G(^ENG(6915.2,ENFA("DA"),0))
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | DEL ;
 | 
|---|
| 51 |  I $G(ENFA("DA"))]"" D
 | 
|---|
| 52 |  . S DA=ENFA("DA"),DIK="^ENG(6915.2," D ^DIK K DIK
 | 
|---|
| 53 |  . W:'$D(ENBAT("SILENT")) !,"FA Document deleted..."
 | 
|---|
| 54 |  I '$D(ENBAT("SILENT")) D
 | 
|---|
| 55 |  . W $C(7),!,"No action taken. Database unchanged."
 | 
|---|
| 56 |  . S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | UPDATE ;
 | 
|---|
| 59 |  ; update equipment file
 | 
|---|
| 60 |  ;   populate station number field when blank
 | 
|---|
| 61 |  I $P(ENEQ(9),U,5)="" D
 | 
|---|
| 62 |  . S $P(^ENG(6914,ENEQ("DA"),9),U,5)=ENFAP("SITE")
 | 
|---|
| 63 |  . S $P(ENEQ(9),U,5)=ENFAP("SITE")
 | 
|---|
| 64 |  ;   make sure value contains 2 decimals
 | 
|---|
| 65 |  I $P(ENEQ(2),U,3)'?1.12N1"."2N D
 | 
|---|
| 66 |  . S $P(ENEQ(2),U,3)=$$DEC^ENFAUTL($P(ENEQ(2),U,3))
 | 
|---|
| 67 |  . S $P(^ENG(6914,ENEQ("DA"),2),U,3)=$P(ENEQ(2),U,3)
 | 
|---|
| 68 |  ;   if acquisition day not specified use 01
 | 
|---|
| 69 |  I $E($P(ENEQ(2),U,4),6,7)="00" D
 | 
|---|
| 70 |  . S $P(ENEQ(2),U,4)=$E($P(ENEQ(2),U,4),1,5)_"01"
 | 
|---|
| 71 |  . S $P(^ENG(6914,ENEQ("DA"),2),U,4)=$P(ENEQ(2),U,4)
 | 
|---|
| 72 |  ;   if replacement day not specified use 01
 | 
|---|
| 73 |  I $E($P(ENEQ(2),U,10),6,7)="00" D
 | 
|---|
| 74 |  . S $P(ENEQ(2),U,10)=$E($P(ENEQ(2),U,10),1,5)_"01"
 | 
|---|
| 75 |  . S $P(^ENG(6914,ENEQ("DA"),2),U,10)=$P(ENEQ(2),U,10)
 | 
|---|
| 76 |  ; save current value in adjusted value field on code sheet
 | 
|---|
| 77 |  S ^ENG(6915.2,ENFA("DA"),200)=$P(ENEQ(2),U,3)
 | 
|---|
| 78 |  ; update FAP Balance
 | 
|---|
| 79 |  D ADJBAL^ENFABAL($P(ENEQ(9),U,5),$P(ENEQ(9),U,7),$P(ENEQ(8),U,6),$P($P(ENFAP(0),U,2),"."),$P(ENEQ(2),U,3))
 | 
|---|
| 80 |  ; transmit code sheet
 | 
|---|
| 81 |  W:'$D(ENBAT("SILENT")) !!,"Sending FA document to FAP..."
 | 
|---|
| 82 |  D ^ENFAXMT
 | 
|---|
| 83 |  ; save adjustment voucher
 | 
|---|
| 84 |  I $G(ENAV) D
 | 
|---|
| 85 |  . S DIE="^ENG(6915.2,",DR="301///NOW",DA=ENFA("DA") D ^DIE
 | 
|---|
| 86 |  . W !,"Adjustment Voucher was created.",!
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 | WRAPUP ;
 | 
|---|
| 89 |  I $G(ENFA("DA"))]"" L -^ENG(6915.2,ENFA("DA"))
 | 
|---|
| 90 |  F I=0:1:3,8,9 K ENEQ(I)
 | 
|---|
| 91 |  K ENAV,ENDO,ENFAP,ENFA
 | 
|---|
| 92 |  K DA,DIC,DIE,DR,DIK,DIR,DIROUT,DIRUT,DTOUT,DUOUT,I,X,Y
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 | BAD(X) ; add text to validation problem list
 | 
|---|
| 95 |  N I
 | 
|---|
| 96 |  S I=$P($G(^TMP($J,"BAD",ENEQ("DA"))),U)+1
 | 
|---|
| 97 |  S ^TMP($J,"BAD",ENEQ("DA"),I)=X
 | 
|---|
| 98 |  S ^TMP($J,"BAD",ENEQ("DA"))=I
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;ENFAACQ
 | 
|---|