| 1 | ENFAR5A ;WIRMFO/SAB-FIXED ASSET RPT, VOUCHER SUMMARY (CONT); 8/1/96 | 
|---|
| 2 | ;;7.0;ENGINEERING;**29,33**;Aug 17, 1993 | 
|---|
| 3 | GETDATA ; collect/sort data | 
|---|
| 4 | ; load table for converting FA Type to SGL | 
|---|
| 5 | K ENFAPTY S ENDA=0 F   S ENDA=$O(^ENG(6914.3,ENDA)) Q:'ENDA  D | 
|---|
| 6 | . S ENY0=$G(^ENG(6914.3,ENDA,0)) | 
|---|
| 7 | . I $P(ENY0,U,3)]"" S ENFAPTY($P(ENY0,U,3))=$P(ENY0,U) | 
|---|
| 8 | ; loop thru FAP document file transactions within selected date range | 
|---|
| 9 | K ^TMP($J) F ENFILE="6915.2","6915.3","6915.4","6915.5","6915.6" D | 
|---|
| 10 | . S ENDT=ENDTS | 
|---|
| 11 | . F  S ENDT=$O(^ENG(ENFILE,"D",ENDT)) Q:ENDT=""!($P(ENDT,".")>ENDTE)  D | 
|---|
| 12 | . . S ENDA("F?")=0 | 
|---|
| 13 | . . F  S ENDA("F?")=$O(^ENG(ENFILE,"D",ENDT,ENDA("F?"))) Q:'ENDA("F?")  D | 
|---|
| 14 | . . . S ENDA("FA")=$$AFA(ENFILE,ENDA("F?")) ; associated FA | 
|---|
| 15 | . . . S ENFAY3=$G(^ENG(6915.2,ENDA("FA"),3)) | 
|---|
| 16 | . . . S ENX=$TR($E($P(ENFAY3,U,5),1,5)," ","") | 
|---|
| 17 | . . . Q:ENSNR'=ENX  ; not station | 
|---|
| 18 | . . . S:ENFILE=6915.2 ENFUND=$P(ENFAY3,U,10) | 
|---|
| 19 | . . . S:ENFILE'=6915.2 ENFUND=$$FUND(ENFILE,ENDA("F?"),ENDA("FA")) | 
|---|
| 20 | . . . S ENSGL=$S($P(ENFAY3,U,6)]"":$G(ENFAPTY($P(ENFAY3,U,6))),1:"") | 
|---|
| 21 | . . . Q:ENFUND=""!(ENSGL="") | 
|---|
| 22 | . . . I ENFILE=6915.2 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),3)),U,27) | 
|---|
| 23 | . . . I ENFILE=6915.3 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),4)),U,4) | 
|---|
| 24 | . . . I ENFILE=6915.4 S ENX=$P($G(^ENG(ENFILE,ENDA("F?"),4)),U,6),ENAMT=$S(ENX="":0,1:ENX-$P($G(^ENG(ENFILE,ENDA("F?"),100)),U,4)) | 
|---|
| 25 | . . . I ENFILE=6915.5 S ENAMT="-"_$P($G(^ENG(ENFILE,ENDA("F?"),100)),U,2) | 
|---|
| 26 | . . . I ENFILE=6915.6 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),100)),U,8) | 
|---|
| 27 | . . . Q:+ENAMT=0  ; don't include transactions for $0 | 
|---|
| 28 | . . . I ENFILE'=6915.6 D  ; process non-FR doc | 
|---|
| 29 | . . . . S ^TMP($J,ENFUND,ENSGL,ENDT,ENFILE_";"_ENDA("F?"))=ENAMT | 
|---|
| 30 | . . . I ENFILE=6915.6 D  ; process FR doc | 
|---|
| 31 | . . . . S ENFUNDNW=$P($G(^ENG(ENFILE,ENDA("F?"),3)),U,9) | 
|---|
| 32 | . . . . Q:ENFUND=ENFUNDNW  ; don't include if fund unchanged by FR | 
|---|
| 33 | . . . . S ^TMP($J,ENFUNDNW,ENSGL,ENDT,ENFILE_";"_ENDA("F?"))=ENAMT | 
|---|
| 34 | . . . . S ^TMP($J,ENFUND,ENSGL,ENDT,ENFILE_";"_ENDA("F?"))="-"_ENAMT | 
|---|
| 35 | K ENFAPTY | 
|---|
| 36 | Q | 
|---|
| 37 | AFA(ENFILE,ENIEN) ; Associated FA Document Extrinsic Function | 
|---|
| 38 | ; Input Variables | 
|---|
| 39 | ;   ENFILE - FAP document file of the input document | 
|---|
| 40 | ;   ENIEN  - IEN of the input document in ENFILE | 
|---|
| 41 | ; Returns | 
|---|
| 42 | ;   IEN of the FA document which is associated with the input document | 
|---|
| 43 | ;   0 if no associated FA document could be found | 
|---|
| 44 | N ENDA,ENDTC,ENY0 | 
|---|
| 45 | Q:ENFILE="6915.2" ENIEN ; FA document associated with itself | 
|---|
| 46 | S ENY0=$G(^ENG(ENFILE,ENIEN,0)) | 
|---|
| 47 | S ENDA=$P(ENY0,U) ; equip id | 
|---|
| 48 | S ENDTC("F?")=$P(ENY0,U,2) ; date/time of non-FA document | 
|---|
| 49 | S ENDA("LFA")=0,ENDTC("LFA")="" ; initialize latest FA ien and date/time | 
|---|
| 50 | ; loop thru FA's for equip to determine latest FA before the input doc | 
|---|
| 51 | S ENDA("FA")=0 | 
|---|
| 52 | F  S ENDA("FA")=$O(^ENG(6915.2,"B",ENDA,ENDA("FA"))) Q:'ENDA("FA")  D | 
|---|
| 53 | . S ENDTC("FA")=$P($G(^ENG(6915.2,ENDA("FA"),0)),U,2) | 
|---|
| 54 | . I ENDTC("FA")<ENDTC("F?"),ENDTC("FA")>ENDTC("LFA") S ENDA("LFA")=ENDA("FA"),ENDTC("LFA")=ENDTC("FA") | 
|---|
| 55 | Q ENDA("LFA") | 
|---|
| 56 | ; | 
|---|
| 57 | FUND(ENFILE,ENIEN,ENFAIEN) ; Determine FUND at time of non-FA transaction | 
|---|
| 58 | ; Input Variables | 
|---|
| 59 | ;   ENFILE  - FAP document file for the input document | 
|---|
| 60 | ;   ENIEN   - IEN of the input document in ENFILE | 
|---|
| 61 | ;   ENFAIEN - IEN of the assoicated FA document | 
|---|
| 62 | ; Returns | 
|---|
| 63 | ;   Fund of equipment just before input document was processed | 
|---|
| 64 | N ENDA,ENDTC,ENFUND,ENY0 | 
|---|
| 65 | S ENFUND=$P($G(^ENG(6915.2,ENFAIEN,3)),U,10) ; initial fund from FA | 
|---|
| 66 | S ENDTC("FA")=$P($G(^ENG(6915.2,ENFAIEN,0)),U,2) ; date/time of FA | 
|---|
| 67 | S ENY0=$G(^ENG(ENFILE,ENIEN,0)) | 
|---|
| 68 | S ENDA=$P(ENY0,U) ; equip id | 
|---|
| 69 | S ENDTC("F?")=$P(ENY0,U,2) ; date/time of input doc | 
|---|
| 70 | ; Retrieve fund values from any FR's between FA and input document | 
|---|
| 71 | ;   by looping thru FR's for equip id | 
|---|
| 72 | S ENDA("FR")=0 | 
|---|
| 73 | F  S ENDA("FR")=$O(^ENG(6915.6,"B",ENDA,ENDA("FR"))) Q:'ENDA("FR")  D | 
|---|
| 74 | . S ENDTC("FR")=$P($G(^ENG(6915.6,ENDA("FR"),0)),U,2) | 
|---|
| 75 | . I ENDTC("FR")>ENDTC("FA"),ENDTC("FR")<ENDTC("F?") S ENFUND(ENDTC("FR"))=$P($G(^ENG(6915.6,ENDA("FR"),3)),U,9) | 
|---|
| 76 | ; update initial fund from FA with any subsequent values from FR docs | 
|---|
| 77 | S ENDTC="" F  S ENDTC=$O(ENFUND(ENDTC)) Q:ENDTC=""  I ENFUND(ENDTC)]"" S ENFUND=ENFUND(ENDTC) | 
|---|
| 78 | Q ENFUND | 
|---|
| 79 | ;ENFAR5A | 
|---|