| [613] | 1 | ENFAVAL ;(WIRMFO)/KLD/SAB; VALIDITY CHECKS FOR Fx DOCS ;2/18/99 | 
|---|
|  | 2 | ;;7.0;ENGINEERING;**25,29,33,38,39,46,60**;Aug 17, 1993 | 
|---|
|  | 3 | ST ; | 
|---|
|  | 4 | N ENC,X | 
|---|
|  | 5 | S ENC("BAD")=0 | 
|---|
|  | 6 | F I=1:1 X "S T=$P($T("_ENFAP("DOC")_"CHK+I),"";;"",2)" Q:T["END"  D | 
|---|
|  | 7 | . I ENFAP("DOC")="FA" D  Q | 
|---|
|  | 8 | . . Q:$P(ENEQ(+T),U,$P(T,";",2))]""  D SET("Missing "_$P(T,";",3)) | 
|---|
|  | 9 | . Q:$P(ENFAP(+T),U,$P(T,";",2))]""  D SET("Missing "_$P(T,";",3)) | 
|---|
|  | 10 | I ENFAP("DOC")="FA" D FA | 
|---|
|  | 11 | I ENFAP("DOC")="FC" D FC | 
|---|
|  | 12 | I ENFAP("DOC")="FD" D FD | 
|---|
|  | 13 | I ENFAP("DOC")="FR" D FR | 
|---|
|  | 14 | I ENC("BAD")>0 S ^TMP($J,"BAD",ENEQ("DA"))=ENC("BAD") | 
|---|
|  | 15 | K I,T Q | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | FA ;Check for appropriate values of certain required fields | 
|---|
|  | 18 | I $P(ENEQ(2),U,3)]"" D:$P(ENEQ(2),U,3)'>0 SET("Asset Value must be greater than 0.00") | 
|---|
|  | 19 | I $P(ENEQ(3),U,4)]"" D:$P(ENEQ(3),U,4)>0 SET("Acquisition Method inappropriate") | 
|---|
|  | 20 | I $P(ENEQ(0),U,4)]"" D:$P(ENEQ(0),U,4)'="NX" SET("Not non-expendable") | 
|---|
|  | 21 | D:'$P(ENEQ(8),U,2) SET("Asset not capitalized") | 
|---|
|  | 22 | I $P(ENEQ(9),U,6)]"" D | 
|---|
|  | 23 | . S X=$G(^ENG(6914.4,$P(ENEQ(9),U,6),0)) | 
|---|
|  | 24 | . I $P(X,U)="" D SET("BOC invalid pointer") | 
|---|
|  | 25 | . I $P(X,U,5)]"",$P(X,U,5)'>DT D SET("BOC has been deactivated") | 
|---|
|  | 26 | I $P(ENEQ(8),U,6)]"" D | 
|---|
|  | 27 | . I '$D(^ENG(6914.3,$P(ENEQ(8),U,6))) D SET("SGL invalid pointer") Q | 
|---|
|  | 28 | . S X=$G(^ENG(6914.3,$P(ENEQ(8),U,6),0)) | 
|---|
|  | 29 | . I $P(X,U)="6100" D SET("NX SGL account of 6100") | 
|---|
|  | 30 | . I $P(X,U,5)]"",$P(X,U,5)'>DT D SET("SGL has been deactivated") | 
|---|
|  | 31 | I $P(ENEQ(9),U,7)]"" D | 
|---|
|  | 32 | . S X=$G(^ENG(6914.6,$P(ENEQ(9),U,7),0)) | 
|---|
|  | 33 | . I $P(X,U)="" D SET("FUND invalid pointer") | 
|---|
|  | 34 | . I $P(X,U,5)]"",$P(X,U,5)'>DT D SET("FUND has been deactivated") | 
|---|
|  | 35 | I $P(ENEQ(2),U,9)]"" D | 
|---|
|  | 36 | . S ENFAP("LOC")=$$LOC($$GET1^DIQ(6914,ENEQ("DA"),19)) | 
|---|
|  | 37 | . I ENFAP("LOC")="" D SET("Invalid CMR") Q | 
|---|
|  | 38 | . I $P(ENEQ(9),U,8)]"" D | 
|---|
|  | 39 | . . S X=$O(^ENG(6914.9,"B",ENFAP("LOC"),0)) | 
|---|
|  | 40 | . . Q:'X | 
|---|
|  | 41 | . . S Y=$P($G(^ENG(6914.9,X,0)),U,4) | 
|---|
|  | 42 | . . I Y]"",Y'=$P(ENEQ(9),U,8) D SET("CMR inappropriate for A/O") | 
|---|
|  | 43 | I $P(ENEQ(2),U,8)]"" D | 
|---|
|  | 44 | . S ENFAP("GRP")=$$GROUP($$GET1^DIQ(6914,ENEQ("DA"),18)) | 
|---|
|  | 45 | . I 'ENFAP("GRP") D SET("Invalid CSN") Q | 
|---|
|  | 46 | . I $P(ENEQ(8),U,6)]"",'$O(^ENG(6914.3,$P(ENEQ(8),U,6),1,"B",ENFAP("GRP"),0)) D SET("CSN inappropriate for SGL") | 
|---|
|  | 47 | I $P(ENEQ(2),U,4)]"",+$E($P(ENEQ(2),U,4),4,5)'>0 D SET("Acquisition Month Missing") | 
|---|
|  | 48 | I $P(ENEQ(2),U,10)]"" D | 
|---|
|  | 49 | . I +$E($P(ENEQ(2),U,10),4,5)'>0 D SET("Replacement Month Missing") | 
|---|
|  | 50 | . I $P(ENEQ(2),U,4)]"",$P(ENEQ(2),U,10)<$P(ENEQ(2),U,4) D SET("Replacement Date preceeds Acquisition Date") | 
|---|
|  | 51 | Q | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | FC ;Check for problems with CSN and/or CMR | 
|---|
|  | 54 | I $P(ENFAP(100),U)]"" D | 
|---|
|  | 55 | . I $P(ENFAP(3),U,9)="" D SET("CSN is unacceptable for capitalized NX") Q | 
|---|
|  | 56 | . I $P(ENEQ(8),U,6)]"",'$O(^ENG(6914.3,$P(ENEQ(8),U,6),1,"B",$P(ENFAP(3),U,9),0)) D SET("CSN inappropriate for SGL") | 
|---|
|  | 57 | I $P(ENFAP(100),U,2)]"",$P(ENFAP(3),U,10)="" D SET("CMR is unacceptable for capitalized NX") | 
|---|
|  | 58 | ;check date order (ACQUISITION & REPLACEMENT) | 
|---|
|  | 59 | I $P(ENFAP(100),U,6)]""!($P(ENFAP(100),U,7)]"") D | 
|---|
|  | 60 | . N ENAD,ENRD | 
|---|
|  | 61 | . S ENAD=$S($P(ENFAP(100),U,6)]"":$P(ENFAP(100),U,6),1:$P(ENEQ(2),U,4)) | 
|---|
|  | 62 | . S ENRD=$S($P(ENFAP(100),U,7)]"":$P(ENFAP(100),U,7),1:$P(ENEQ(2),U,10)) | 
|---|
|  | 63 | . I ENAD=""!(ENRD="") Q | 
|---|
|  | 64 | . I ENRD'>ENAD D SET("REPLACEMENT DATE must follow ACQUISITION DATE.") | 
|---|
|  | 65 | Q | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | FD ; Check for probems with disp date | 
|---|
|  | 68 | I $P(ENFAP(100),U,3)>DT D SET("DISPOSITION DATE must not be later than Today.") | 
|---|
|  | 69 | Q | 
|---|
|  | 70 | ; | 
|---|
|  | 71 | FR ; Check for problems with CMR | 
|---|
|  | 72 | I $P(ENFAP(100),U,6)]"",$$LOC($P($G(^ENG(6914.1,$P(ENFAP(100),U,6),0)),U))="" D SET("CMR is unacceptable for capitalized NX") | 
|---|
|  | 73 | I $P(ENFAP(100),U,3)]""!($P(ENFAP(100),U,6)]"") D  ; new A/O or new CMR | 
|---|
|  | 74 | . N ENAO,ENCMR | 
|---|
|  | 75 | . S ENAO=$S($P(ENFAP(100),U,3)]"":$P(ENFAP(100),U,3),1:$P(ENEQ(9),U,8)) | 
|---|
|  | 76 | . S ENCMR=$S($P(ENFAP(100),U,6)]"":$P(ENFAP(100),U,6),1:$P(ENEQ(2),U,9)) | 
|---|
|  | 77 | . I ENAO=""!(ENCMR="") Q | 
|---|
|  | 78 | . S ENFAP("LOC")=$$LOC($P($G(^ENG(6914.1,ENCMR,0)),U)) | 
|---|
|  | 79 | . I ENFAP("LOC")="" Q | 
|---|
|  | 80 | . S X=$O(^ENG(6914.9,"B",ENFAP("LOC"),0)) | 
|---|
|  | 81 | . I X'>0 Q | 
|---|
|  | 82 | . S Y=$P($G(^ENG(6914.9,X,0)),U,4) | 
|---|
|  | 83 | . I Y]"",Y'=ENAO D SET("CMR inappropriate for A/O") | 
|---|
|  | 84 | I $P(ENFAP(100),U,5)]"" D | 
|---|
|  | 85 | . S X=$G(^ENG(6914.4,$P(ENFAP(100),U,5),0)) | 
|---|
|  | 86 | . I $P(X,U)="" D SET("BOC invalid pointer") | 
|---|
|  | 87 | . I $P(X,U,5)]"",$P(X,U,5)'>DT D SET("BOC has been deactivated") | 
|---|
|  | 88 | I $P(ENFAP(100),U,2)]"" D | 
|---|
|  | 89 | . S X=$G(^ENG(6914.6,$P(ENFAP(100),U,2),0)) | 
|---|
|  | 90 | . I $P(X,U)="" D SET("FUND invalid pointer") | 
|---|
|  | 91 | . I $P(X,U,5)]"",$P(X,U,5)'>DT D SET("FUND has been deactivated") | 
|---|
|  | 92 | Q | 
|---|
|  | 93 | SET(X) ;Record problems | 
|---|
|  | 94 | S ENC("BAD")=ENC("BAD")+1,^TMP($J,"BAD",ENEQ("DA"),ENC("BAD"))=X | 
|---|
|  | 95 | Q | 
|---|
|  | 96 | ; | 
|---|
|  | 97 | LOC(CMR) ;Accepts CMR and checks 1st two char | 
|---|
|  | 98 | ;Returns FAP LOCATION (EIL) | 
|---|
|  | 99 | S ENFAP("LOC")=$E(CMR,1,2) I ENFAP("LOC")'?2N S ENFAP("LOC")="" G LOCDN | 
|---|
|  | 100 | I ENFAP("LOC")]"",'$D(^ENG(6914.9,"B",ENFAP("LOC"))) S ENFAP("LOC")="" | 
|---|
|  | 101 | ;I "^73^74^79^"[(U_ENFAP("LOC")_U) S ENFAP("LOC")="" | 
|---|
|  | 102 | ;I ENFAP("LOC")>83,"^86^88^90^98^99^"'[(U_ENFAP("LOC")_U) S ENFAP("LOC")="" | 
|---|
|  | 103 | LOCDN Q ENFAP("LOC") | 
|---|
|  | 104 | ; | 
|---|
|  | 105 | GROUP(CSN) ;Accepts CSN and returns FAP GROUP | 
|---|
|  | 106 | N FSC S FSC=$E(CSN,1,4) ;Federal Supply Classification | 
|---|
|  | 107 | I FSC'?4N S ENFAP("GRP")=0 G GRPDUN | 
|---|
|  | 108 | I "7020^7021^7025^7035^7040^7050^7435"[FSC S ENFAP("GRP")=FSC | 
|---|
|  | 109 | E  S ENFAP("GRP")=$E(FSC,1,2)_"00" | 
|---|
|  | 110 | GRPDUN Q ENFAP("GRP") | 
|---|
|  | 111 | ; | 
|---|
|  | 112 | FACHK ;; | 
|---|
|  | 113 | ;;0;4;Type of Entry | 
|---|
|  | 114 | ;;8;6;General Ledger Account | 
|---|
|  | 115 | ;;2;8;Category Stock Number | 
|---|
|  | 116 | ;;2;9;CMR | 
|---|
|  | 117 | ;;2;4;Acquisition Date | 
|---|
|  | 118 | ;;9;7;Fund | 
|---|
|  | 119 | ;;9;8;A.O. Code | 
|---|
|  | 120 | ;;9;6;Budget Object Code | 
|---|
|  | 121 | ;;2;6;Life Expectancy | 
|---|
|  | 122 | ;;2;3;Acquisition Value | 
|---|
|  | 123 | ;;3;4;Acquitition Method | 
|---|
|  | 124 | ;;9;9;Equity Account | 
|---|
|  | 125 | ;;END | 
|---|
|  | 126 | FBCHK ;; | 
|---|
|  | 127 | ;;3;7;Betterment Number | 
|---|
|  | 128 | ;;3;12;Acquisition Method | 
|---|
|  | 129 | ;;6;2;Equity Account | 
|---|
|  | 130 | ;;4;4;Dollar Amount | 
|---|
|  | 131 | ;;END | 
|---|
|  | 132 | FCCHK ;; | 
|---|
|  | 133 | ;;3;8;Betterment Number | 
|---|
|  | 134 | ;;END | 
|---|
|  | 135 | FDCHK ;; | 
|---|
|  | 136 | ;;5;4;Disposition Method | 
|---|
|  | 137 | ;;5;5;Disposition Year | 
|---|
|  | 138 | ;;5;6;Disposition Month | 
|---|
|  | 139 | ;;5;7;Disposition Day | 
|---|
|  | 140 | ;;5;8;Selling Price | 
|---|
|  | 141 | ;;5;9;Disposition Authority | 
|---|
|  | 142 | ;;END | 
|---|
|  | 143 | FRCHK ;; | 
|---|
|  | 144 | ;;3;9;New Fund Code | 
|---|
|  | 145 | ;;3;10;New A.O. Code | 
|---|
|  | 146 | ;;3;11;New Owning Station | 
|---|
|  | 147 | ;;3;12;New Xprogram | 
|---|
|  | 148 | ;;END | 
|---|