| [613] | 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
 | 
|---|