[613] | 1 | ENFABAL ;WIRMFO/SAB-MAINTAIN FILE 6915.9 FAP BALANCES ;4/23/96
|
---|
| 2 | ;;7.0;ENGINEERING;**29**;AUG 17, 1883
|
---|
| 3 | ;This routine should not be modified.
|
---|
| 4 | ADJBAL(STN,FUND,SGL,MTH,NET) ; Adjust Balance Amount in File #6915.9
|
---|
| 5 | ; called from FAP Documents and Recalculation option
|
---|
| 6 | ; Input
|
---|
| 7 | ; STN - station number (3-5 char)
|
---|
| 8 | ; FUND - fund pointer (to NX FUND)
|
---|
| 9 | ; SGL - standard general ledger pointer (to NX SGL)
|
---|
| 10 | ; MTH - month (FileMan date)
|
---|
| 11 | ; NET - net $ change (can include two decimals)
|
---|
| 12 | N BAL,ENFDA,ENI,LMTH,LMTHI,NBAL,PMTH,PMTHI
|
---|
| 13 | Q:$G(STN)=""!($G(FUND)="")!($G(SGL)="")!($G(MTH)="")!($G(NET)="")
|
---|
| 14 | Q:MTH'?7N ; not FileMan date
|
---|
| 15 | Q:NET=0 ; no change
|
---|
| 16 | I $E(MTH,6,7)'="00" S MTH=$E(MTH,1,5)_"00"
|
---|
| 17 | ; add/find entry
|
---|
| 18 | S ENFDA(6915.9,"?+1,",.01)=STN
|
---|
| 19 | S ENFDA(6915.91,"?+2,?+1,",.01)=FUND
|
---|
| 20 | S ENFDA(6915.911,"?+3,?+2,?+1,",.01)=SGL
|
---|
| 21 | S ENFDA(6915.9111,"?+4,?+3,?+2,?+1,",.01)=MTH
|
---|
| 22 | D UPDATE^DIE("","ENFDA","ENI") D MSG^DIALOG()
|
---|
| 23 | ;
|
---|
| 24 | L +^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,ENI(4),0):5
|
---|
| 25 | ; get current balance
|
---|
| 26 | S BAL=$$GETBAL(ENI(1),ENI(2),ENI(3),MTH)
|
---|
| 27 | ; calc/post new balance
|
---|
| 28 | S NBAL=BAL+NET
|
---|
| 29 | S $P(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,ENI(4),0),U,2)=NBAL
|
---|
| 30 | L -^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,ENI(4),0)
|
---|
| 31 | ; increase balance in later months (if any)
|
---|
| 32 | S LMTH=MTH
|
---|
| 33 | F S LMTH=$O(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,"B",LMTH)) Q:LMTH="" D
|
---|
| 34 | . S LMTHI=$O(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,"B",LMTH,0))
|
---|
| 35 | . L +^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,LMTHI,0):5
|
---|
| 36 | . S BAL=$P(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,LMTHI,0),U,2)
|
---|
| 37 | . S NBAL=BAL+NET
|
---|
| 38 | . S $P(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,LMTHI,0),U,2)=NBAL
|
---|
| 39 | . L -^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,LMTHI,0)
|
---|
| 40 | Q
|
---|
| 41 | ;
|
---|
| 42 | GETBAL(IEN1,IEN2,IEN3,MTH) ; Get Balance Amount from File #6915.9
|
---|
| 43 | ; called from ADJBAL and routine ENFAR5*
|
---|
| 44 | ; Input
|
---|
| 45 | ; IEN1 - ien of station
|
---|
| 46 | ; IEN2 - ien of fund multiple
|
---|
| 47 | ; IEN3 - ien of sgl multiple
|
---|
| 48 | ; MTH - month (FileMan date)
|
---|
| 49 | ; Output
|
---|
| 50 | ; BAL - balance amount
|
---|
| 51 | N BAL,IEN4,PMTH,PMTHI
|
---|
| 52 | S IEN4=$O(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,"B",MTH,0))
|
---|
| 53 | S BAL=$S(IEN4:$P($G(^ENG(6915.9,IEN1,1,IEN2,1,IEN3,1,IEN4,0)),U,2),1:"")
|
---|
| 54 | I BAL="" D ; perhaps there is a balance in previous month
|
---|
| 55 | . S PMTH=$O(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,"B",MTH),-1)
|
---|
| 56 | . Q:PMTH=""
|
---|
| 57 | . S PMTHI=$O(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,"B",PMTH,0))
|
---|
| 58 | . S BAL=$P(^ENG(6915.9,ENI(1),1,ENI(2),1,ENI(3),1,PMTHI,0),U,2)
|
---|
| 59 | Q BAL
|
---|
| 60 | ;
|
---|
| 61 | RECALC ; Recalculate Net Activity for Month (optionally update file 6915.9)
|
---|
| 62 | ; called from option ENFA RECALC BALANCES
|
---|
| 63 | ; ask for period (month/year)
|
---|
| 64 | S DIR(0)="D^::E^K:($E(Y,4,5)=""00"")!($E(Y,1,5)>$E(DT,1,5)) X"
|
---|
| 65 | S DIR("A")="Enter month to recalculate"
|
---|
| 66 | S X("Y")=$E(DT,1,3),X("M")=$E(DT,4,5)
|
---|
| 67 | S X=$S(X("M")="01":(X("Y")-1)_"12",1:X("Y")_$E("00",1,2-$L(X("M")-1))_(X("M")-1))_"00"
|
---|
| 68 | S DIR("B")=$$FMTE^XLFDT(X)
|
---|
| 69 | K X
|
---|
| 70 | S DIR("?",1)="Month and year are required and future dates are invalid."
|
---|
| 71 | S DIR("?")="Enter the month and year to recalculate balances."
|
---|
| 72 | D ^DIR K DIR G:$D(DIRUT) EXIT
|
---|
| 73 | S ENDTR=$E(Y,1,5)_"00" ; month to recalculate
|
---|
| 74 | ;
|
---|
| 75 | W !!,"You have chosen to recalculate the $ from FAP transactions during"
|
---|
| 76 | W !,"the month of ",$$FMTE^XLFDT(ENDTR),"."
|
---|
| 77 | I $E(DT,1,5)=$E(ENDTR,1,5) D
|
---|
| 78 | . W $C(7),!!,"WARNING - Current month was selected. FAP Document Files will be"
|
---|
| 79 | . W !,"locked to ensure that no FAP transactions (FA, FB, FC, FD, and FR)"
|
---|
| 80 | . W !,"can be processed during the recalculation."
|
---|
| 81 | W ! S DIR(0)="Y",DIR("A")="OK to proceed"
|
---|
| 82 | D ^DIR K DIR G:'Y!$D(DIRUT) EXIT
|
---|
| 83 | I $E(DT,1,5)=$E(ENDTR,1,5) D I 'ENLOCK W !,$C(7),"Can't Proceed. Try Later" G EXIT
|
---|
| 84 | . S ENLOCK=1
|
---|
| 85 | . L +^ENG(6915.2):2 I '$T W !,"FA Document Log in use." S ENLOCK=0
|
---|
| 86 | . L +^ENG(6915.3):2 I '$T W !,"FB Document Log in use." S ENLOCK=0
|
---|
| 87 | . L +^ENG(6915.4):2 I '$T W !,"FC Document Log in use." S ENLOCK=0
|
---|
| 88 | . L +^ENG(6915.5):2 I '$T W !,"FD Document Log in use." S ENLOCK=0
|
---|
| 89 | . L +^ENG(6915.6):2 I '$T W !,"FR Document Log in use." S ENLOCK=0
|
---|
| 90 | ;
|
---|
| 91 | K ^TMP($J)
|
---|
| 92 | ; calculating net activity and save in ^TMP($J,"R",
|
---|
| 93 | W !!,"Calculating net activity from transactions..." D SUM^ENFABAL1
|
---|
| 94 | ; compare and save problems in ^TMP($J,"P",
|
---|
| 95 | W !,"Comparing FAP BALANCES file with transactions..." D FVST^ENFABAL1
|
---|
| 96 | W !,"Comparing transactions with FAP BALANCES file..." D TVSF^ENFABAL2
|
---|
| 97 | ;
|
---|
| 98 | I '$D(^TMP($J,"P")) W !!,"No problems were found." G EXIT
|
---|
| 99 | ;
|
---|
| 100 | W $C(7),!!,"Problems were found..." D ^ENFABAL2 ; report
|
---|
| 101 | ;
|
---|
| 102 | W ! S DIR(0)="Y",DIR("A")="OK to correct file"
|
---|
| 103 | D ^DIR K DIR G:'Y!$D(DIRUT) EXIT
|
---|
| 104 | ;
|
---|
| 105 | S ENSN="" F S ENSN=$O(^TMP($J,"P",ENSN)) Q:ENSN="" D
|
---|
| 106 | . S ENFUND="" F S ENFUND=$O(^TMP($J,"P",ENSN,ENFUND)) Q:ENFUND="" D
|
---|
| 107 | . . S ENFUNDI=$O(^ENG(6914.6,"B",ENFUND,0))
|
---|
| 108 | . . S ENSGL=""
|
---|
| 109 | . . F S ENSGL=$O(^TMP($J,"P",ENSN,ENFUND,ENSGL)) Q:ENSGL="" D
|
---|
| 110 | . . . S ENSGLI=$O(^ENG(6914.3,"B",ENSGL,0))
|
---|
| 111 | . . . S Y=$G(^TMP($J,"P",ENSN,ENFUND,ENSGL))
|
---|
| 112 | . . . S ENADJ=$P(Y,U,2)-$P(Y,U)
|
---|
| 113 | . . . D ADJBAL^ENFABAL(ENSN,ENFUNDI,ENSGLI,ENDTR,ENADJ)
|
---|
| 114 | ;
|
---|
| 115 | EXIT ;
|
---|
| 116 | I $E(DT,1,5)=$E($G(ENDTR),1,5) D
|
---|
| 117 | . L -^ENG(6915.2):2
|
---|
| 118 | . L -^ENG(6915.3):2
|
---|
| 119 | . L -^ENG(6915.4):2
|
---|
| 120 | . L -^ENG(6915.5):2
|
---|
| 121 | . L -^ENG(6915.6):2
|
---|
| 122 | K ^TMP($J)
|
---|
| 123 | K ENADJ,ENDTR,ENFUND,ENFUNDI,ENLOCK,ENSGL,ENSGLI,ENSN
|
---|
| 124 | K DIR,DIRUT,DIROUT,DTOUT,DUOUT,X,Y
|
---|
| 125 | Q
|
---|
| 126 | ;ENFABAL
|
---|