Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ACRFIV41

ACRFIV41.m

Go to the documentation of this file.
  1. ACRFIV41 ;IHS/OIRM/DSD/THL,AEF - ARMS TO 1166 PAYMENT INTERFACE; [ 04/21/2005 7:53 AM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**16,17**;MAY 15, 2001
  1. ;;
  1. ;UTILITY TO EDIT PAYMENT DATA AFTER INVOICE AUDIT COMPLETED
  1. Q:'$G(ACRDOCDA)
  1. EN D EN1
  1. EXIT K ACRDATE,ACRIVDAT,ACRRRDAT,ACRPAY,ACRDATE,ACRTYPE
  1. Q
  1. EN1 D GATHER
  1. W !!,"BATCH YEAR: ",$S($E($G(ACRPAYDA),1,3)]"":$E($G(ACRPAYDA),1,3)+1700,1:"")
  1. W !,"BATCH NO..: ",$G(ACRBATNO)
  1. W $$DASH^ACRFMENU
  1. W !,"DOC YEAR: ",$G(ACRDOCYR)
  1. W ?40,"FY OF FUNDS: ",$G(ACRFYFUN)
  1. W !,"DOC NO..: ",$G(ACRDOC)
  1. D PAUSE^ACRFWARN
  1. Q
  1. GATHER ;GATHER ALL DATA
  1. S:'$D(ACRBATNO) ACRBATNO="XXXXXX"
  1. S ACRDOC=$S($P(^ACRDOC(ACRDOCDA,0),U,2)]"":$P(^(0),U,2),1:$P(^(0),U))
  1. S ACRDOCYR=$S(ACRREF=116&(ACRDOC["-"):$E(ACRDOC,9),1:$E(ACRDOC))
  1. S ACRFYFUN=$P(^ACRLOCB($P(ACRDOC0,U,6),"DT"),U)
  1. Q
  1. LATEPAY(ACRIVT,ACRPEN,ACRIRATE) ;EP;TO CALCULATE THE LATE PAYMENT INTEREST CHARGE
  1. Q:'$G(ACRIVT) "" ;PENALTY CANNOT BE CALCULATED WITH OUT KNOWING THE TOTAL AMOUNT OF THE PAYMENT DUE
  1. Q:'$G(ACRPEN) "" ;PENALTY CANNOT BE CALCULATED WITH OUT KNOWING THE NUMBER OF DAYS LATE
  1. Q:'$G(ACRIRATE) "" ;PENALTY CANNOT BE CALCULATED WITH OUT KNOWING THE DAY ON WHICH THE PAYMENT IS TO BE MADE
  1. N X,Y,Z
  1. ;ADD 2 DAYS TO NUMBER OF PENALTY DAYS TO COVER PROCESSING DAYS
  1. S Y=ACRIVT*(ACRIRATE/100*((ACRPEN+2)/360))
  1. S Y=$FN(Y,"P",2)
  1. S Y=+$TR(Y," ","")
  1. Q Y
  1. IRATE(ACRPAYDA) ;EP;CALCULATE APPLICABLE INTEREST RATE
  1. Q:ACRPAYDA="" ""
  1. S X=$O(^ACRSYS(1,40,"B",ACRPAYDA+1),-1)
  1. Q:'X "" ;PENALTY CANNOT BE CALCULATED IF NO APPLICABLE RATE IS ON FILE
  1. S X=$O(^ACRSYS(1,40,"B",X,0))
  1. S X=$P($G(^ACRSYS(1,40,X,0)),U,2)
  1. Q X
  1. INTEREST ;EP;INDICATE INTEREST PAYMENT DUE
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. K ACRDT,ACRQUIT,ACRTERMS,ACRTYPE,ACRT,ACRPPEN
  1. W !!,"Payment will be made ",ACRPEN," days late"
  1. S ACRIRATE=$$IRATE^ACRFIV41(ACRPAYDA)
  1. W !,"At the current daily interest rate of ",ACRIRATE
  1. S ACRP=$$LATEPAY(ACRIVT,ACRPEN,ACRIRATE)
  1. ;S ACRTERMS=ACRPEN_U_ACRP ;ACR*2.1*16.06 IM15505
  1. ;S ACRT=-1 ;ACR*2.1*16.06 IM15505
  1. ;D PAY ;ACR*2.1*16.06 IM15505
  1. S ACRTERMS=ACRPEN_U_ACRP_U_ACRIRATE ;ACR*2.1*16.06 IM15505
  1. S $P(ACRTERMS,U,13)=4319 ;INTEREST OCC ;ACR*2.1*16.06 IM15505
  1. S $P(ACRTERMS,U,8)=19917 ;INTEREST TCODE;ACR*2.1*16.06 IM15505
  1. S ACRT=-1
  1. S $P(ACRTERMS,U,14)=ACRT ;TYPE INT/DSC ;ACR*2.1*16.06 IM15505
  1. D PAY^ACRFIV43(.ACRIVPAY,.ACRIVT,.ACRTERMS,.ACRT) ;ACR*2.1*16.06 IM15505
  1. Q:$D(ACROUT)
  1. I +$G(ACRTERMS)<1 D Q
  1. .W !!,"Payment will be made ",+$G(ACRTERMS)*-1," days early. No Interest payment due."
  1. .D PAUSE^ACRFWARN
  1. .K ACROUT,ACRT,ACRTERMS
  1. .S ACRQUIT=""
  1. ;D CORRECT^ACRFIV4 ;ACR*2.1*16.06 IM15505
  1. D CORRECT^ACRFIV43(.ACRDT,.ACRPCNT,.ACRIVDC,.ACRIVTF) ;ACR*2.1*16.06 IM15505
  1. I '$D(ACRDT) K ACRTERMS,ACRP,ACRPCNT,ACRIRATE,ACRQUIT Q
  1. D DCAN^ACRFIV42(.ACRTERMS,ACRT,.ACRIVDIS)
  1. K ACRQUIT
  1. Q
  1. PAYDATE ;EP;CALCULATE PAYMENT DATE
  1. I '$G(ACRDOCDA) D PD1 Q
  1. S ACRIVDAT=$P(^ACRDOC(ACRDOCDA,"PO"),U,21)
  1. S ACRRRDAT=$P(^ACRDOC(ACRDOCDA,"REQ1"),U,7)
  1. I ACRIVDAT=""!(ACRRRDAT="") D Q
  1. .W !!,"The "
  1. .W:ACRIVDAT="" "Invoice Date"
  1. .W:ACRIVDAT=""&(ACRRRDAT="") " and the "
  1. .W:ACRRRDAT="" "Receiving Report Date"
  1. .I ACRIVDAT=""&(ACRRRDAT="") W " are "
  1. .E W " is "
  1. .W "missing."
  1. .W !,"You cannot proceed with payment processing until"
  1. .I ACRIVDAT=""&(ACRRRDAT="") W " they are "
  1. .E W " it is "
  1. .W "entered."
  1. .D PAUSE^ACRFWARN
  1. .S ACRQUIT=""
  1. PD1 ;FOR NON-ARMS DOCUMENTS
  1. I '$G(ACRRRDAT)!'$G(ACRIVDAT) D PAYDUE Q
  1. W !!,"Receiving Report done on: "
  1. S Y=$P(ACRRRDAT,"@")
  1. X ^DD("DD")
  1. W Y
  1. W !,"Invoice received on.....: "
  1. S Y=$P(ACRIVDAT,"@")
  1. X ^DD("DD")
  1. W Y
  1. S X1=ACRIVDAT,X2=ACRRRDAT
  1. D ^%DTC
  1. ;S (X1,ACRDATE)=$S(X>-1!(X<-7):ACRIVDAT,1:ACRRRDAT) ;ACR*2.1*17.01 IM17097
  1. S (X1,ACRDATE)=ACRRRDAT ;ACR*2.1*17.01 IM17097
  1. I $G(X)]"",X>-1&(X<-7) S (X1,ACRDATE)=X ;ACR*2.1*17.01 IM17097
  1. Q:X1=""
  1. S X2=30
  1. D C^%DTC
  1. S Y=$P(X,"@")
  1. X ^DD("DD")
  1. S DIR("B")=$P(Y,"@")
  1. PAYDUE ;EP;TO SELECT PAYMENT DUE DATE
  1. S DIR(0)="DT^::E"
  1. S DIR("A",1)="To avoid penalties"
  1. S DIR("A")="Payment is due by......."
  1. D DIR^ACRFDIC
  1. I '+Y K ACRQUIT Q
  1. I +Y S ACRPAYDU=+Y
  1. S X1=ACRPAYDU
  1. S X2=-7
  1. D C^%DTC
  1. I $E(X,4,7)=1225 S X=$E(X,1,3)_1224
  1. I $E(X,4,7)="0101" S X=$E(X,1,3)_"0102"
  1. I $E(X,4,7)="0704" S X=$E(X,1,3)_"0705"
  1. S Z=X
  1. D DW^%DTC
  1. I $E(X)="S" D
  1. .S X1=Z
  1. .S X2=$S($E(X,1,2)="SA":-1,1:-2)
  1. .D C^%DTC
  1. .S Z=$P(X,"@")
  1. PAYON S Y=$S(Z>DT:Z,1:DT)
  1. X ^DD("DD")
  1. S DIR(0)="D^::ET"
  1. S DIR("A")="Make payment on........."
  1. S DIR("B")=$P(Y,"@")
  1. D DIR^ACRFDIC
  1. I '+Y K ACRQUIT Q
  1. I Y<DT W !!,"Payment CANNOT be made prior to TODAY." G PAYON
  1. S ACRPAYDA=Y
  1. S X=Y
  1. D DW^%DTC
  1. I $E(X)="S" W *7,*7,!!,"You cannot schedule a payment to be made on a ",X,! G PAYON
  1. S X1=ACRPAYDA,X2=ACRPAYDU
  1. D ^%DTC
  1. S ACRPEN=X
  1. K ACRQUIT
  1. W !!,"Payment will be scheduled "
  1. W @ACRON
  1. I ACRPEN=0 W "the same day"
  1. E W $TR(ACRPEN,"-","")," days ",$S(ACRPEN<0:" before",1:"after")
  1. W @ACROF
  1. W " the payment is due"
  1. Q
  1. LOST ;EP;INDICATE THE PERCENT OF DISCOUNT LOST
  1. ; Moved to ACRFIV42 ;ACR*2.1*16.06 IM15505
  1. Q ;ACR*2.1*16.06 IM15505
  1. PAY ;EP;TO DISPLAY PAYMENT SUMMARY
  1. ; Moved to ACRFIV43 ;ACR*2.1*16.06 IM15505
  1. Q ;ACR*2.1*16.06 IM15505