| 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 | 
|---|