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

ACRFSSU.m

Go to the documentation of this file.
  1. ACRFSSU ;IHS/OIRM/DSD/AEF - UTILITY ROUTINE: CALCULATE TRAVEL VOUCHER AMOUNTS [ 08/18/2006 3:00 PM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**5,17,20**;NOV 05, 2001
  1. ;
  1. ;
  1. ;This routine calculates the Total Expenses, Reimbursable,
  1. ;and other amounts for the travel voucher.
  1. ;
  1. PERDIEM(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE PER DIEM
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: PER DIEM AMOUNT
  1. ;
  1. N X,Y
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,5)+$P(X,U,6)
  1. Q Y
  1. ;
  1. OTHER(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE OTHER CHARGES
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: OTHER COLUMN AMOUNT
  1. ;
  1. N X,Y
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,10)+$P(X,U,32)-$P(X,U,31)
  1. Q Y
  1. ;
  1. TOTOTH(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE GRAND TOTAL OTHER
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: GRAND TOTAL OTHER AMOUNT
  1. ;
  1. N X,Y
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,30)+$P(X,U,31)+$P(X,U,8)+$P(X,U,9)+$$OTHER(ACRDOCDA)
  1. Q Y
  1. ;
  1. REIMB(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE TRAVEL VOUCHER REIMBURSABLE
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: TRAVEL VOUCHER REIMBURSABLE AMOUNT
  1. ;
  1. N X,Y
  1. S Y=0
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,5)+$P(X,U,6)+$P(X,U,8)+$P(X,U,9)+$P(X,U,10)+$P(X,U,15)+$P(X,U,30)+$P(X,U,32)+$P(X,U,36)
  1. I $P($G(^ACRDOC(ACRDOCDA,"TOAU")),U,5)=1 S Y=Y+$P(X,U,33)
  1. I $P($G(^ACRSYS(1,400)),U,4) S Y=Y+$P(X,U,37)
  1. S Y=Y-$P(X,U,34)
  1. S Y=$$DOL^ACRFUTL(Y)
  1. Q Y
  1. ;
  1. TOTAMT(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE TOTAL AMOUNT CLAIMED
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: TRAVEL VOUCHER TOTAL AMOUNT CLAIMED
  1. ;
  1. N X,Y
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,33)+$$PERDIEM(ACRDOCDA)+$P(X,U,37)+$P(X,U,15)+$$TOTOTH(ACRDOCDA)+$P(X,U,36)
  1. Q Y
  1. ;
  1. MILES(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE TOTAL MILEAGE COST
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: TRAVEL VOUCHER TOTAL MILEAGE COST
  1. ;
  1. N X,Y
  1. S X=$$TOTALS(ACRDOCDA)
  1. S Y=$P(X,U,30)+$P(X,U,31)
  1. Q Y
  1. ;
  1. TOTALS(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - RETURN STRING CONTAINING TOTALS
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: STRING CONTAINING TRAVEL AMOUNT TOTALS
  1. ;
  1. N ACRDAY,ACRDUZ,X,Y
  1. S Y=""
  1. S ACRDAY=0
  1. F S ACRDAY=$O(^ACRTV("D",ACRDOCDA,ACRDAY)) Q:'ACRDAY D
  1. . S X=^ACRTV(ACRDAY,"DT")
  1. . S $P(Y,U,5)=$P(Y,U,5)+$P(X,U,5) ;MEALS M&IE
  1. . S $P(Y,U,6)=$P(Y,U,6)+$P(X,U,6) ;LODGING
  1. . S $P(Y,U,7)=$P(Y,U,7)+$P(X,U,7) ;MILES TO AIRPT
  1. . S $P(Y,U,8)=$P(Y,U,8)+$P(X,U,8) ;TAXI/SHUTTLE
  1. . S $P(Y,U,9)=$P(Y,U,9)+$P(X,U,9) ;PHONE HOME
  1. . S $P(Y,U,10)=$P(Y,U,10)+$P(X,U,10) ;OTHER
  1. . S $P(Y,U,15)=$P(Y,U,15)+$P(X,U,15) ;RENTAL CAR
  1. . S $P(Y,U,20)=$P(Y,U,20) ;MILEAGE RATE
  1. . S $P(Y,U,21)=$P(Y,U,21)+$P(X,U,21) ;POV/OTH MILES
  1. . S $P(Y,U,22)=$P(Y,U,22)+$P(X,U,22) ;AIRPORT PARKING
  1. . S $P(Y,U,23)=$P(X,U,23) ;POV MILE RATE
  1. . S $P(Y,U,30)=$P(Y,U,30)+($P(X,U,21)*$P(X,U,23)) ;TOTAL POV MILEAGE COST
  1. . S $P(Y,U,31)=$P(Y,U,31)+($P(X,U,7)*$P(X,U,20)) ;TOTAL MILES TO AIRPORT COST
  1. . S $P(Y,U,32)=$P(Y,U,31)+$P(Y,U,22) ;AIRPT MLS+PK
  1. . S $P(Y,U,38)=$P(Y,U,38)+1 ;# TRAVEL DAYS
  1. S $P(Y,U,33)=$$AIRLINE(ACRDOCDA) ;AIRLINE COST
  1. S $P(Y,U,34)=$P($G(^ACROTA(ACRDOCDA,0)),U,3) ;TRAVEL ADV
  1. S $P(Y,U,35)=$P($G(^ACROTA(ACRDOCDA,0)),U,4) ;TA LIQUIDATED
  1. S $P(Y,U,36)=$P($G(^ACRDOC(ACRDOCDA,"TO")),U,26) ;ATM CHG
  1. S $P(Y,U,37)=$$TMFEE(ACRDOCDA) ;TRAVEL MGT FEE
  1. ;
  1. ;----- Adjust PHONE HOME rate to MAXIMUM AMOUNT whichever is less
  1. I $P($G(^ACRSYS(1,"DT")),U,17) D
  1. . S X=($P(Y,U,38)-1)*$P($G(^ACRSYS(1,"DT")),U,17)
  1. . I X,X<$P(Y,U,9) D
  1. . . S $P(Y,U,9)=X
  1. ;
  1. ;----- Adjust POV MILEAGE COST to MAXIMUM POV TRANSPORTATION EXPENSE
  1. ; whichever is less
  1. S X=$P($G(^ACRDOC(ACRDOCDA,"TOAU")),U,6) ;MAX POV EXP
  1. I X,X<$P(Y,U,30) D
  1. . S $P(Y,U,30)=X
  1. ;
  1. ;----- Adjust MAXIMUM MILES TO AIRPORT+AIRPORT PARKING EXPENSE to
  1. ; AVERAGE ROUNDTRIP COST BY TAXI FROM HOME TO AIRPORT whichever
  1. ; is less
  1. S ACRDUZ=$P($G(^ACRDOC(ACRDOCDA,"TO")),U,9)
  1. S X=$P($G(^ACRAU(ACRDUZ,1)),U,9) ;MAX APT MLS+PK
  1. I X,X<($P(Y,U,22)+$P(Y,U,31)) D
  1. . S $P(Y,U,32)=X
  1. Q Y
  1. ;
  1. AIRLINE(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - CALCULATE AIRLINE COST
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: AIRLINE COST FOR TRAVEL
  1. ;
  1. N X,Y
  1. S (X,Y)=0
  1. F S X=$O(^ACRAL("E",ACRDOCDA,X)) Q:'X D
  1. . S Y=Y+$P($G(^ACRAL(X,"DT")),U,9)
  1. Q Y
  1. ;
  1. TMFEE(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - RETURN TRAVEL MANAGEMENT FEE
  1. ;
  1. ; INPUT:
  1. ; ACRDOCDA = DOCUMENT IEN
  1. ;
  1. ; RETURNS: TRAVEL MANAGEMENT FEE
  1. ;
  1. N X,Y
  1. S (X,Y)=0
  1. F S X=$O(^ACRSS("C",ACRDOCDA,X)) Q:'X D
  1. . Q:$P($G(^ACRSS(X,"NMS")),U,5)'="Travel Mgt Fee"
  1. . S Y=Y+$P($G(^ACRSS(X,"DT")),U,4)
  1. Q Y
  1. OBLS(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - RETURNS TOTAL OBLIGATIONS FOR A
  1. ; DOCUMENT
  1. ;
  1. N AMT,D0,X,Y
  1. S (D0,Y)=0
  1. F S D0=$O(^ACRDHR("E",ACRDOCDA,D0)) Q:'D0 D
  1. . S X=$G(^ACRDHR(D0,1))
  1. . Q:$P(X,U,3)'="050"
  1. . S AMT=$P(X,U,14)
  1. . S AMT=+AMT/100
  1. . I $P(X,U,4)=2 S AMT=0-AMT
  1. . S Y=Y+AMT
  1. Q Y
  1. PMTS(ACRDOCDA) ;EP
  1. ;----- EXTRINSIC FUNCTION - RETURNS TOTAL PAYMENTS AGAINST A
  1. ; DOCUMENT
  1. ;
  1. N AMT,D0,X,Y
  1. S (D0,Y)=0
  1. F S D0=$O(^ACRDHR("E",ACRDOCDA,D0)) Q:'D0 D
  1. . S X=$G(^ACRDHR(D0,1))
  1. . Q:"^181^182^190^191^192"'[$P(X,U,3)
  1. . S AMT=$P(X,U,14)
  1. . S AMT=+AMT/100
  1. . I $P(X,U,4)=2 S AMT=0-AMT
  1. . S Y=Y+AMT
  1. Q Y
  1. NET(D0,D1,D2) ;EP
  1. ;----- EXTRINSIC FUNCTION - USED BY ACR REVIEW PAYMENT-T SCREENMAN
  1. ; FORM TO RETURN THE NET TO TRAVELER AMOUNT FOR TRAVEL
  1. ; PAYMENTS
  1. ; RETURNS PAYMENT AMOUNT FOR ALL TRANSACTION CODES
  1. ; AMOUNT ADJUSTED TO SUBTRACT DIS-AMT IF PRESENT
  1. ; AMOUNT ADJUSTED; NOT SUBTRACTED IF TRAVEL ADVANCE
  1. ;
  1. ;N X,Y ;ACR*2.1*17.12 IM17438
  1. N X,Y,ACRBTYP ;ACR*2.1*17.12 IM17438
  1. S Y=0
  1. S ACRBTYP=$P($G(^AFSLAFP(D0,1,D1,0)),U,4) ;ACR*2.1*17.12 IM17438
  1. S X=$G(^AFSLAFP(D0,1,D1,1,D2,0))
  1. S Y=$P(X,U,11) ;ACR*2.1*17.12 IM17438
  1. I ACRBTYP="V" Q Y ;ACR*2.1*17.12 IM17438
  1. S Y=$P(X,U,11)-$P(X,U,12) ;DEFAULT VALUE ;ACR*2.1*5.02
  1. I $E($P(X,U,18),1,3)="061" D ;TRAVEL ADVANCE, DON'T SUBTRACT ;ACR*2.1*5.01
  1. .I $P(X,U,12)>0 S Y=$P(X,U,12)
  1. .I $P(X,U,12)'>0 S Y=$P(X,U,11)
  1. Q Y
  1. ;
  1. REQTP(X) ;EP ----- RETURNS REQUEST TYPE IEN^TRANSACTION TYPE NAME ;ACR*2.1*5.17 ACR*2.1*20.15
  1. ;
  1. ; X = DOCUMENT IEN
  1. ;
  1. N Y
  1. S Y=""
  1. I X S Y=$P($G(^ACRDOC(X,0)),U,4)
  1. I Y S Y=Y_U_$P($G(^ACRTXTYP(Y,0)),U)
  1. Q Y