| 1 | ENFAAV ;IRMFO/SAB-ADJUSTMENT VOUCHER ENTRY ;6.30.97
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**39**;AUG 17, 1993
 | 
|---|
| 3 | EN ; Entry point for option
 | 
|---|
| 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 | ASKDOC ; ask FAP Document
 | 
|---|
| 9 |  W !
 | 
|---|
| 10 |  S DIR(0)="SBO^FA:FA DOCs;FB:FB DOCs;FC:FC DOCs;FD:FD DOCs;FR:FR DOCs"
 | 
|---|
| 11 |  S DIR("A")="Select Type of FAP Document"
 | 
|---|
| 12 |  S DIR("?",1)="Choose the type of FAP Document for which an Adjustment"
 | 
|---|
| 13 |  S DIR("?",2)="Voucher should be created. After the type is chosen, you"
 | 
|---|
| 14 |  S DIR("?",3)="will be asked to select the specific FAP Document."
 | 
|---|
| 15 |  S DIR("?")=" "
 | 
|---|
| 16 |  D ^DIR K DIR G:Y']""!$D(DIRUT) EXIT
 | 
|---|
| 17 |  S ENFILE="6915."_$F("ABCDR",$E(Y,2,2))
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  S DIC="^ENG("_ENFILE_",",DIC(0)="AQEM"
 | 
|---|
| 20 |  S DIC("A")="Select "_Y_" DOCUMENT (by Transaction Number or Equipment ENTRY #): "
 | 
|---|
| 21 |  D ^DIC G:Y'>0 EXIT
 | 
|---|
| 22 |  S ENDA("F?")=+Y
 | 
|---|
| 23 | SHOWDOC ; show info for FAP Document/Adjustment Voucher
 | 
|---|
| 24 |  S ENDT=$$GET1^DIQ(ENFILE,ENDA("F?"),301,"I")
 | 
|---|
| 25 |  S ENY0=$G(^ENG(ENFILE,ENDA("F?"),0))
 | 
|---|
| 26 |  S ENY1=$G(^ENG(ENFILE,ENDA("F?"),1))
 | 
|---|
| 27 |  S ENDA=$P($G(^ENG(ENFILE,ENDA("F?"),0)),U)
 | 
|---|
| 28 |  S ENDA("FA")=$$AFA^ENFAR5A(ENFILE,ENDA("F?")) ; associated FA
 | 
|---|
| 29 |  S ENFAY3=$G(^ENG(6915.2,ENDA("FA"),3))
 | 
|---|
| 30 |  S ENSN=$TR($E($P(ENFAY3,U,5),1,5)," ","")
 | 
|---|
| 31 |  S:ENFILE=6915.2 ENFUND=$P(ENFAY3,U,10)
 | 
|---|
| 32 |  S:ENFILE'=6915.2 ENFUND=$$FUND^ENFAR5A(ENFILE,ENDA("F?"),ENDA("FA"))
 | 
|---|
| 33 |  S ENSGL=$S($P(ENFAY3,U,6)]"":$G(ENFAPTY($P(ENFAY3,U,6))),1:"")
 | 
|---|
| 34 |  S ENAMT=0
 | 
|---|
| 35 |  I ENFILE=6915.2 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),3)),U,27)
 | 
|---|
| 36 |  I ENFILE=6915.3 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),4)),U,4)
 | 
|---|
| 37 |  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))
 | 
|---|
| 38 |  I ENFILE=6915.5 S ENAMT="-"_$P($G(^ENG(ENFILE,ENDA("F?"),100)),U,2)
 | 
|---|
| 39 |  I ENFILE=6915.6 S ENAMT=$P($G(^ENG(ENFILE,ENDA("F?"),100)),U,8)
 | 
|---|
| 40 |  W @IOF,!,"ADJ. VOUCHER",?16,"TRANSACTION .............",?43,"STN"
 | 
|---|
| 41 |  W ?50,"FUND",?58,"SGL",?63,"NET AMOUNT"
 | 
|---|
| 42 |  W !,"DATE/TIME",?16,"CODE NUMBER      DATE"
 | 
|---|
| 43 |  W !,"--------------",?16,"---- ----------- --------",?43,"-----"
 | 
|---|
| 44 |  W ?50,"------",?58,"----",?63,"----------------"
 | 
|---|
| 45 |  W !,$E($TR($$FMTE^XLFDT(ENDT,"2F")," ",0),1,14)
 | 
|---|
| 46 |  W ?16,$P(ENY1,U,6),?21,$P(ENY1,U,9)
 | 
|---|
| 47 |  W ?33,$TR($$FMTE^XLFDT($P(ENY0,U,2),"2DF")," ",0)
 | 
|---|
| 48 |  W ?43,ENSN,?50,ENFUND,?58,ENSGL
 | 
|---|
| 49 |  I ENFILE=6915.6 D  ; check FR doc for FUND change
 | 
|---|
| 50 |  . S ENFUNDNW=$P($G(^ENG(ENFILE,ENDA("F?"),3)),U,9)
 | 
|---|
| 51 |  . I ENFUND=ENFUNDNW S ENAMT=0 Q  ; fund didn't change
 | 
|---|
| 52 |  . S ENAMT=-ENAMT ; subtract from old fund
 | 
|---|
| 53 |  W ?63,$J($FN(ENAMT,",",2),16)
 | 
|---|
| 54 |  I ENFILE=6915.6,ENFUND'=ENFUNDNW D
 | 
|---|
| 55 |  . ; show addition to new fund
 | 
|---|
| 56 |  . W !,?43,ENSN,?50,ENFUNDNW,?58,ENSGL
 | 
|---|
| 57 |  . W ?63,$J($FN(-ENAMT,",",2),16)
 | 
|---|
| 58 |  W !,?5,"EQUIP #: ",ENDA,?26,$$GET1^DIQ(6914,ENDA,3)
 | 
|---|
| 59 |  S ENX=$$GET1^DIQ(ENFILE,ENDA("F?"),303)
 | 
|---|
| 60 |  I ENX]"" W !,?5,"REASON: ",ENX
 | 
|---|
| 61 |  I $O(^ENG(ENFILE,ENDA("F?"),301,0)) D  G:$D(DIRUT) EXIT
 | 
|---|
| 62 |  . K ^UTILITY($J,"W") S DIWL=6,DIWR=(IOM-5),DIWF="W|"
 | 
|---|
| 63 |  . S X="COMMENTS: ",ENI=0
 | 
|---|
| 64 |  . F  S ENI=$O(^ENG(ENFILE,ENDA("F?"),301,ENI)) Q:'ENI  S X=X_^(ENI,0) D ^DIWP S X="" I $Y+4>IOSL S DIR(0)="E" D ^DIR K DIR Q:$D(DIRUT)!'Y  W @IOF
 | 
|---|
| 65 |  . D ^DIWW
 | 
|---|
| 66 | CHECKAV ;
 | 
|---|
| 67 |  I $$GET1^DIQ(ENFILE,ENDA("F?"),301)]"" D  G ASKDOC
 | 
|---|
| 68 |  . W $C(7),!,"This FAP Document already has an Adjustment Voucher!",!
 | 
|---|
| 69 | EDITAV ;
 | 
|---|
| 70 |  W !
 | 
|---|
| 71 |  S ENAV=$$AVP(ENFILE,ENDA("F?"))
 | 
|---|
| 72 |  I 'ENAV W !,"Adjustment voucher was NOT created." I $G(ENUT) G EXIT
 | 
|---|
| 73 |  I ENAV D
 | 
|---|
| 74 |  . S DIE="^ENG("_ENFILE_",",DR="301///NOW",DA=ENDA("F?") D ^DIE
 | 
|---|
| 75 |  . W !,"Adjustment Voucher was created.",!
 | 
|---|
| 76 |  G ASKDOC
 | 
|---|
| 77 | EXIT ;
 | 
|---|
| 78 |  K DA,DIC,DIE,DIR,DIRUT,DIROUT,DR,DTOUT,DUOUT,X,Y
 | 
|---|
| 79 |  K ENAMT,ENAV,ENDA,ENDT,ENFAPTY,ENFAY3,ENFILE,ENFUND,ENFUNDNW
 | 
|---|
| 80 |  K ENSGL,ENSN,ENUT,ENY0,ENY1
 | 
|---|
| 81 |  Q
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | AVP(ENF,ENDA) ; adjustment voucher preparation
 | 
|---|
| 84 |  ; This program gathers all the information required for an adjustment
 | 
|---|
| 85 |  ; voucher. The calling program must evaluate the return value and
 | 
|---|
| 86 |  ; actually create the adjustment voucher at the appropriate time
 | 
|---|
| 87 |  ; by storing NOW in the appropriate A.V. DATE field.
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  ; Called by this routine for existing FAP Documents or by routines
 | 
|---|
| 90 |  ; ENFAACQ, ENFABETR, ENFACHG, ENFADEL, ENFAXF during creation of
 | 
|---|
| 91 |  ; new FAP Documents
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  ; in
 | 
|---|
| 94 |  ;   ENF  - # of file (e.g. 6915.2 for FA DOCUMENT LOG)
 | 
|---|
| 95 |  ;   ENDA - ien of entry in ENF to create adjustment voucher for
 | 
|---|
| 96 |  ; out
 | 
|---|
| 97 |  ;   $D(ENUT) true if time-out or uparrow '^' during call
 | 
|---|
| 98 |  ; returns 0 (cancelled) or 1 (fully prepared)
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  N DA,DIE,DIR,DR,ENAV,X,Y
 | 
|---|
| 101 |  K ENUT S ENAV=0
 | 
|---|
| 102 |  ;
 | 
|---|
| 103 |  S DIR(0)="Y"
 | 
|---|
| 104 |  S DIR("A")="Should an Adjustment Voucher be created",DIR("B")="YES"
 | 
|---|
| 105 |  S DIR("?",1)="Adjustment Vouchers are used to inform Fiscal personnel"
 | 
|---|
| 106 |  S DIR("?",2)="of FAP transactions that Fiscal must take action on."
 | 
|---|
| 107 |  S DIR("?",3)=" "
 | 
|---|
| 108 |  S DIR("?")="Enter YES or NO"
 | 
|---|
| 109 |  D ^DIR K DIR S:$D(DIRUT) ENUT=1 G:'Y!$D(DIRUT) AVPX
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 | AVPED S DIE="^ENG("_ENF_",",DR="303R;310R",DA=ENDA D ^DIE
 | 
|---|
| 112 |  S DIR(0)="Y",DIR("A")="Is adjustment voucher correct"
 | 
|---|
| 113 |  D ^DIR K DIR I $D(DIRUT) S ENUT=1 G AVPX
 | 
|---|
| 114 |  I 'Y D  G:Y AVPED S Y=$$AVC(ENF,ENDA) G AVPX
 | 
|---|
| 115 |  . S DIR(0)="Y",DIR("A")="Do you want to re-edit it"
 | 
|---|
| 116 |  . D ^DIR K DIR I $D(DIRUT) S ENUT=1
 | 
|---|
| 117 |  I $P($G(^ENG(ENF,ENDA,300)),U,3)=""!'$O(^ENG(ENF,ENDA,301,0)) D  G AVPED
 | 
|---|
| 118 |  . W $C(7),!,"Both Reason Code and Comments are required!"
 | 
|---|
| 119 |  S ENAV=1
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 | AVPX ; exit
 | 
|---|
| 122 |  Q ENAV
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 | AVC(ENF,ENDA) ; Adjustment Voucher Clean Up
 | 
|---|
| 125 |  ; This code is used to clean up an aborted adjustment voucher.
 | 
|---|
| 126 |  ; in
 | 
|---|
| 127 |  ;   ENF -  file number (e.g. 6915.2)
 | 
|---|
| 128 |  ;   ENDA - ien
 | 
|---|
| 129 |  ; returns 1 (done) or 0 (can't because a.v. completed)
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  I ENF'?1"6915."1N Q 0
 | 
|---|
| 132 |  I $$GET1^DIQ(ENF,ENDA,301)]"" Q 0
 | 
|---|
| 133 |  S DIE="^ENG("_ENF_",",DR="303///@;310///@",DA=ENDA D ^DIE Q 1
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 |  ;ENFAAV
 | 
|---|