| [613] | 1 | PRCFDA ;WISC@ALTOONA/CTB-PROCESS PAYMENT IN ACCTG ;2/9/96  15:58 [2/1/99 2:26pm]
 | 
|---|
 | 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  N PRCFCIDA,PRCFFLG K ^TMP("PRCFDA",$J,"LIQ")
 | 
|---|
 | 5 |  Q:$D(PRCFA("ERROR PROCESSING"))  S PRCF("X")="AS" D ^PRCFSITE Q:'%
 | 
|---|
 | 6 |  S DIC("S")="S ZX=^(0),ZX2=$G(^(2)) I $P(ZX2,U)=15,$P(ZX,U,15)]"""""
 | 
|---|
 | 7 |  S DIC=421.5,DIC(0)="AEMNZ" D ^DIC K DIC,ZX2,ZX
 | 
|---|
 | 8 |  I Y<1!$D(DTOUT)!$D(DUOUT) K PRC,C,PRCRI,X,Y,% G:$$NUMSTA>1&'$D(DTOUT)&'$D(DUOUT) PRCFDA K DTOUT,DUOUT Q
 | 
|---|
 | 9 | EN S (PRCF("CIDA"),PRCFDICA)=+Y,PRC("SITE")=$P(^PRCF(421.5,PRCF("CIDA"),1),U,2)
 | 
|---|
 | 10 |  G:$D(PRCFA("ERROR PROCESSING")) B
 | 
|---|
 | 11 |  L +^PRCF(421.5,PRCF("CIDA")):5 E  W !,"This invoice is being edited by someone else, please try later!" G EX^PRCFDA2
 | 
|---|
 | 12 |  S:$P($G(^PRCF(421.5,PRCF("CIDA"),1)),U,7)]"" PRCFA("ERROR PROCESSING")=2
 | 
|---|
 | 13 |  I '$D(PRCFA("ERROR PROCESSING")),$$CLSD1358^PRCFDE2($P(Y(0),U,7),1) D  G:%'=1 EX^PRCFDA2
 | 
|---|
 | 14 |  . W ! S %A="Do you wish to continue processing this invoice now"
 | 
|---|
 | 15 |  . S %B="",%=2 D ^PRCFYN
 | 
|---|
 | 16 |  S DIR(0)="YA",DIR("A")="Do you wish to view current information for this invoice? "
 | 
|---|
 | 17 |  S DIR("B")="NO" D ^DIR K DIR I $D(DIRUT)!$D(DIROUT)!$D(DUOUT) G EX^PRCFDA2
 | 
|---|
 | 18 |  I Y=1 D  I Y'=1!$D(DIRUT)!$D(DIROUT)!$D(DUOUT) G EX^PRCFDA2
 | 
|---|
 | 19 |  . N PRCRI,RECORD,RECORD1,DR,DIQ,DA,DIC,DIR
 | 
|---|
 | 20 |  . S DA=PRCF("CIDA"),DIC="^PRCF(421.5,",DIQ(0)="C",PRCF("VIEW")="" W @IOF
 | 
|---|
 | 21 |  . D EN^DIQ K PRCF("VIEW")
 | 
|---|
 | 22 |  . S DIR(0)="YA",DIR("A")="Is this the correct invoice? ",DIR("B")="YES" D ^DIR
 | 
|---|
 | 23 | B I $P(^PRCF(421.5,PRCF("CIDA"),0),U,6)="X" D  G:Y<0 EX^PRCFDA2
 | 
|---|
 | 24 |  . S %A="This invoice is flagged as MONEY MANAGEMENT EXEMPT.  Return to Voucher Audit for review/correction"
 | 
|---|
 | 25 |  . S %B="",%=1 D ^PRCFYN Q:%=2
 | 
|---|
 | 26 |  . I %=1 S X=0 D STATUS^PRCFDE1
 | 
|---|
 | 27 |  . S Y=-1 Q
 | 
|---|
 | 28 |  ;GET AMOUNT CERTIFIED
 | 
|---|
 | 29 |  S PRCFD("CAMT")=$P(^PRCF(421.5,PRCF("CIDA"),0),U,15)
 | 
|---|
 | 30 |  S PRCF("PODA")=$P(^PRCF(421.5,PRCF("CIDA"),0),U,7)
 | 
|---|
 | 31 |  I PRCF("PODA")]"" D
 | 
|---|
 | 32 |  . S PRCFD("PAYMENT")="",PRCFA("PODA")=PRCF("PODA")
 | 
|---|
 | 33 |  . S PRCFA("REF")=$P($G(^PRCF(421.5,PRCF("CIDA"),2)),U,2)
 | 
|---|
 | 34 |  . S PRCFA("LIQAMT")=PRCFD("CAMT")/100
 | 
|---|
 | 35 |  . S PRCFX("SITE")=PRC("SITE"),PRCFX("PER")=PRC("PER")
 | 
|---|
 | 36 |  . S PRCFX("FY")=PRC("FY"),PRCFX("PARAM")=PRC("PARAM")
 | 
|---|
 | 37 |  . D:'$D(PRCFA("ERROR PROCESSING")) ^PRCEFIS4 I '$D(PRC("SITE")) D
 | 
|---|
 | 38 |  . . S PRC("SITE")=PRCFX("SITE"),PRC("PER")=PRCFX("PER")
 | 
|---|
 | 39 |  . . S PRC("FY")=PRCFX("FY"),PRC("PARAM")=PRCFX("PARAM")
 | 
|---|
 | 40 |  . . Q
 | 
|---|
 | 41 |  . K PO,PODA,PRCFD("PAYMENT"),PRCFA("PODA"),PRCFA("REF"),PRCFA("LIQAMT")
 | 
|---|
 | 42 |  . ; Build table of FMS Line Nos. & Obligation Amts. by BOCs:
 | 
|---|
 | 43 |  . K PRCFX N BOC,FMSLN,IEN S BOC=""
 | 
|---|
 | 44 |  . F  S BOC=$O(^PRC(442,PRCF("PODA"),22,"B",BOC)) Q:BOC=""  S IEN="" D
 | 
|---|
 | 45 |  . . I BOC>0 F  S IEN=$O(^PRC(442,PRCF("PODA"),22,"B",BOC,IEN)) Q:IEN=""  D
 | 
|---|
 | 46 |  . . . S FMSLN=$P($G(^PRC(442,PRCF("PODA"),22,IEN,0)),U,2,3)
 | 
|---|
 | 47 |  . . . S PRCFX("SA",BOC,IEN)=FMSLN
 | 
|---|
 | 48 |  . . . Q
 | 
|---|
 | 49 |  . . Q
 | 
|---|
 | 50 |  . S PRCFX("SHBOC")=+$G(^PRC(442,PRCF("PODA"),23))
 | 
|---|
 | 51 |  . S PRCFX("SHAMT")=+$P(^PRC(442,PRCF("PODA"),0),U,13)
 | 
|---|
 | 52 |  . I PRCFX("SHBOC") S I="" F  S I=$O(PRCFX("SA",PRCFX("SHBOC"),I)) Q:I=""  I $P(PRCFX("SA",PRCFX("SHBOC"),I),U,2)=991 S $P(PRCFX("SA",PRCFX("SHBOC"),I),U,3)=PRCFX("SHAMT")
 | 
|---|
 | 53 |  . Q
 | 
|---|
 | 54 |  S PRCF("CAMT")=$P(^PRCF(421.5,PRCF("CIDA"),0),U,15)
 | 
|---|
 | 55 |  D SUMM
 | 
|---|
 | 56 | BOC ; Ask for BOC
 | 
|---|
 | 57 |  N CNT,CNT1,PRCFEEE,PRCFEX,PRCFEXIT,PRCFN,PRCFNO
 | 
|---|
 | 58 |  S PRCFNO="",CNT1=0
 | 
|---|
 | 59 |  F  S PRCFNO=$O(PRCFX("SA",PRCFNO)) Q:PRCFNO=""  S CNT1=CNT1+1,BOC=PRCFNO
 | 
|---|
 | 60 |  I CNT1=1 D ASK2^PRCFDA2 Q:$D(DIRUT)  S DA=$G(PRCFNUM) G:$G(PRCFEXIT)&($G(PRCFFLG)) DOC G:'$G(PRCFFLG) EXIT
 | 
|---|
 | 61 |  I CNT1<1 W !!?5,"There are no BOCs on this obligation, processing terminated." G EX^PRCFDA2
 | 
|---|
 | 62 |  I CNT1>1 D ASK^PRCFDA2 Q:$D(DIRUT)  S DA=$G(PRCFNUM) G:$G(PRCFEX)&($G(PRCFFLG)) DOC G:'$G(PRCFFLG) EXIT
 | 
|---|
 | 63 |  I $G(PRCFCIDA)']"",($G(PRCF("CIDA"))']"") W !!?15,"Exiting." Q
 | 
|---|
 | 64 |  I $G(PRCF("CIDA"))']"" S PRCF("CIDA")=PRCFCIDA
 | 
|---|
 | 65 |  I '$D(^PRCF(421.5,PRCF("CIDA"),5,0)) S ^PRCF(421.5,PRCF("CIDA"),5,0)="^"_$P(^DD(421.5,41,0),U,2)
 | 
|---|
 | 66 |  I '$D(^PRCF(421.5,PRCF("CIDA"),5,$G(PRCFNUM),0)) D
 | 
|---|
 | 67 |  . S ^PRCF(421.5,PRCF("CIDA"),5,"B",BOC,PRCFNUM)=""
 | 
|---|
 | 68 |  . S $P(^PRCF(421.5,PRCF("CIDA"),5,0),U,3)=PRCFNUM
 | 
|---|
 | 69 |  . S $P(^PRCF(421.5,PRCF("CIDA"),5,0),U,4)=$P(^PRCF(421.5,PRCF("CIDA"),5,0),U,4)+1
 | 
|---|
 | 70 |  . S ^PRCF(421.5,PRCF("CIDA"),5,PRCFNUM,0)=BOC
 | 
|---|
 | 71 |  S DA(1)=PRCF("CIDA")
 | 
|---|
 | 72 |  S DIE="^PRCF(421.5,"_DA(1)_",5,"
 | 
|---|
 | 73 |  S DR=".01///^S X=BOC;4///^S X=$P(PRCFX(""SA"",BOC,PRCFNUM),U,2)"
 | 
|---|
 | 74 |  ; if one BOC has goods/serv and shipping, stuff corrected amt in
 | 
|---|
 | 75 |  ; accouting line amount
 | 
|---|
 | 76 |  I CNT1=1 D
 | 
|---|
 | 77 |  . S PRCFEEE=0 S PRCFEEE=$O(PRCFX("SA",BOC,PRCFEEE)) I PRCFEEE]"",($O(PRCFX("SA",BOC,PRCFEEE))]"") D
 | 
|---|
 | 78 |  . . I $P(PRCFX("SA",BOC,PRCFNUM),U,2)'=991 S PRCFN=PRCF("CAMT")-$P(^PRCF(421.5,PRCF("CIDA"),0),U,14)
 | 
|---|
 | 79 |  . . I $P(PRCFX("SA",BOC,PRCFNUM),U,2)=991 S PRCFN=$P(^PRCF(421.5,PRCF("CIDA"),0),U,14)
 | 
|---|
 | 80 |  . . S DR=DR_";1///^S X=$G(PRCFN)/100"
 | 
|---|
 | 81 |  . . Q
 | 
|---|
 | 82 |  . Q
 | 
|---|
 | 83 |  D ^DIE I $D(Y)!$D(DTOUT) G OT
 | 
|---|
 | 84 |  K DA,DIE,DR
 | 
|---|
 | 85 | EDIT ; edit the FMS line entry in 421.5
 | 
|---|
 | 86 |  S DA=PRCFNUM
 | 
|---|
 | 87 |  S DA(1)=PRCF("CIDA")
 | 
|---|
 | 88 |  S DIE="^PRCF(421.5,"_DA(1)_",5,"
 | 
|---|
 | 89 |  S PRCFA("LNO")=+$P(PRCFX("SA",BOC,PRCFNUM),U,2)
 | 
|---|
 | 90 |  W !,"FMS Line # ",PRCFA("LNO")
 | 
|---|
 | 91 |  S PRCFA("AMT")=$FN($P(PRCFX("SA",BOC,PRCFNUM),U),"",2)
 | 
|---|
 | 92 |  W !,"OBLIGATION AMOUNT: ",PRCFA("AMT")
 | 
|---|
 | 93 |  S DR="1//^S X=$S($G(PRCF(""CAMT""))/100>PRCFA(""AMT""):PRCFA(""AMT""),1:$G(PRCF(""CAMT""))/100)"
 | 
|---|
 | 94 |  D ^DIE K DR I $D(Y)!$D(DTOUT) G OT
 | 
|---|
 | 95 |  S X=$FN(X,"",2)
 | 
|---|
 | 96 |  S PRCFA("LAMT")=X
 | 
|---|
 | 97 |  D DISC^PRCFDT
 | 
|---|
 | 98 |  I PRCFA("LIQ")>PRCFA("AMT") W !,"Warning - Computed Liquidation amt of $",$FN(PRCFA("LIQ"),"",2)," exceeds",!?5,"total obligated amt of $",$FN(PRCFA("AMT"),"",2)," for BOC ",BOC," on ",$P($G(^PRCF(421.5,PRCF("CIDA"),1)),U,3),"."
 | 
|---|
 | 99 |  I PRCFA("LIQ")'=PRCFA("AMT") S DR="2////@" D ^DIE K DR
 | 
|---|
 | 100 |  S DR="2//^S X=$G(PRCFA(""LIQ""))" D ^DIE K DR I $D(Y)!$D(DTOUT) G OT
 | 
|---|
 | 101 |  S PRCFA("LIQ")=X,PRCFA("PF")=""
 | 
|---|
 | 102 |  I +PRCFA("AMT")=+PRCFA("LIQ") S PRCFA("PF")="F"
 | 
|---|
 | 103 |  I +PRCFA("AMT")>+PRCFA("LIQ") S PRCFA("PF")="P"
 | 
|---|
 | 104 |  S DR="3//^S X=$G(PRCFA(""PF""))" D ^DIE K DR I $D(Y)!$D(DTOUT) G OT
 | 
|---|
 | 105 |  D SUM^PRCFDT I '$G(OK) W !!?2,"****WARNING**** - Certified Invoice total $",$FN(PRCF("CAMT")/100,"",2)," does not match sum of",!,"Line Amounts: $",$FN(PRCF("TAMT"),"",2)
 | 
|---|
 | 106 |  I '$G(OK) W !?7,"If you believe that the Total Invoice Amount Certified for",!,"payment is incorrect, the invoice should be returned to voucher audit",!,"for review." G BOC
 | 
|---|
 | 107 |  I +PRCF("TAMT")=0 W !?2,"There are no Line Amounts - FMS will not accept this!"
 | 
|---|
 | 108 |  G DOC
 | 
|---|
 | 109 | DOC ;PROCESS FMS DOC
 | 
|---|
 | 110 |  I '$$OBLIG^PRCFDT(.PRC10DA) D  G EX^PRCFDA2
 | 
|---|
 | 111 |  . I '$D(PRCF("PO")) S PRCF("PO")=$P($G(^PRC(442,PRCF("PODA"),0)),U,1)
 | 
|---|
 | 112 |  . S X="  An original FMS SO or MO document could not be found for "
 | 
|---|
 | 113 |  . S X=X_PRCF("PO")_".*" D MSG^PRCFQ
 | 
|---|
 | 114 |  . S X="  Please review obligation history for this Purchase Order.*"
 | 
|---|
 | 115 |  . D MSG^PRCFQ,PAUSE^PRCFDPVU
 | 
|---|
 | 116 |  . Q
 | 
|---|
 | 117 |  ;D AUTOACCR^PRCFDA4 G:$D(Y)!$D(DTOUT) EX^PRCFDA2 ;per Lyford SOAR
 | 
|---|
 | 118 |  K %A,%B S %A="OK to process this payment to FMS",%B="",%=2
 | 
|---|
 | 119 |  D ^PRCFYN G OT:%<1
 | 
|---|
 | 120 |  I %=2,($G(PRCFFLG)=2) G OT
 | 
|---|
 | 121 |  I %=2 G BOC
 | 
|---|
 | 122 |  G ^PRCFDA2
 | 
|---|
 | 123 | SUMM ; Display Accounting Summary - Entry Point from Input Template
 | 
|---|
 | 124 |  D:$D(PRCFX("SA"))
 | 
|---|
 | 125 |  . N BOC,I,J,SHIP,SUBTOT
 | 
|---|
 | 126 |  . W !,"Unliquidated obligation amounts and BOCs on this order are:"
 | 
|---|
 | 127 |  . I $G(PRCUNLIQ)]"" D
 | 
|---|
 | 128 |  . . S SUBTOT=PRCUNLIQ
 | 
|---|
 | 129 |  . . S BOC=$O(PRCFX("SA",0)) S BOC=$P($G(^PRCD(420.2,+BOC,0)),U)
 | 
|---|
 | 130 |  . . W:$G(SUBTOT)]"" !,$J("$"_$FN(SUBTOT,",",2),10) S SUBTOT=0
 | 
|---|
 | 131 |  . . W:$G(BOC)]"" ?12,BOC
 | 
|---|
 | 132 |  . . Q
 | 
|---|
 | 133 |  . I $G(PRCUNLIQ)']"" S I="",SUBTOT=0 F  S I=$O(PRCFX("SA",I)) Q:I=""  D
 | 
|---|
 | 134 |  . . S J="" F  S J=$O(PRCFX("SA",I,J)) Q:J=""  D
 | 
|---|
 | 135 |  . . . S SUBTOT=SUBTOT+$P(PRCFX("SA",I,J),U)
 | 
|---|
 | 136 |  . . . S BOC=$P($G(^PRCD(420.2,+I,0)),U),SHIP=$P(PRCFX("SA",I,J),U,3)
 | 
|---|
 | 137 |  . . W:I !,$J("$"_$FN(SUBTOT,",",2),10) S SUBTOT=0
 | 
|---|
 | 138 |  . . S:SHIP BOC=$E(BOC,1,30) W ?12,BOC
 | 
|---|
 | 139 |  . . W:SHIP ?40,"  **(Includes $",$FN(PRCFX("SHAMT"),",",2)
 | 
|---|
 | 140 |  . . W:SHIP " shipping.)"
 | 
|---|
 | 141 |  . . Q
 | 
|---|
 | 142 |  . K PRCUNLIQ
 | 
|---|
 | 143 |  . W !,"Total Invoice Amount Certified for Payment=$"
 | 
|---|
 | 144 |  . W $J(PRCF("CAMT")/100,0,2)
 | 
|---|
 | 145 |  . Q
 | 
|---|
 | 146 |  Q
 | 
|---|
 | 147 | OT D UNP K ^TMP("PRCFDA",$J,"LIQ")
 | 
|---|
 | 148 |  S X="  <Option Terminated.>*" D MSG^PRCFQ G EX^PRCFDA2
 | 
|---|
 | 149 | NUMSTA() ;Determine number of unique stations in IFCAP system
 | 
|---|
 | 150 |  N X,I S X="",I=0
 | 
|---|
 | 151 |  F  S X=$O(^PRC(411,"B",X)) Q:X'?1.N  S I=I+1
 | 
|---|
 | 152 |  Q I
 | 
|---|
 | 153 | EXIT ; IF NO fms line BOC chosen,display message and exit
 | 
|---|
 | 154 |  W ! D  G EX^PRCFDA2
 | 
|---|
 | 155 |  . S X="  Edit exited abnormally.  Action terminated.*" D MSG^PRCFQ
 | 
|---|
 | 156 |  . S %A="Do you want to return this invoice to Voucher Audit"
 | 
|---|
 | 157 |  . S %B="",%=2 D ^PRCFYN I %=1 S X=10 D STATUS^PRCFDE1
 | 
|---|
 | 158 |  . Q
 | 
|---|
 | 159 |  Q
 | 
|---|
 | 160 | UNP ; Check for posted liquidation amounts and unpost
 | 
|---|
 | 161 |  S X=$G(^TMP("PRCFDA",$J,"LIQ"))
 | 
|---|
 | 162 |  Q:X=""  N DA,DIK,LAMT,PO,PRCFA,ZX1
 | 
|---|
 | 163 |  S LAMT=$P(X,U,1),PRCFA("PODA")=$P(X,U,2),ZX1=$P(X,U,3),DA=$P(X,U,4)
 | 
|---|
 | 164 |  S DIK="^PRC(424," D ^DIK
 | 
|---|
 | 165 |  D POST^PRCH58LQ(.PRCFA,.LAMT,.PO)
 | 
|---|
 | 166 |  W !!,"Liquidation # ",ZX1," for ",$FN(LAMT,",",2)," has been deleted and unposted."
 | 
|---|
 | 167 |  Q
 | 
|---|