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

ACRFSS42.m

Go to the documentation of this file.
  1. ACRFSS42 ;IHS/OIRM/DSD/THL,AEF - EDIT TRAVEL VOUCHER - CONT; [ 11/01/2001 9:44 AM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;;NOV 05, 2001
  1. ;;CONTINUATION OF ACRFSS4
  1. DISPLAY ;EP;
  1. K ACRTV
  1. Q:$D(ACRDAILY)
  1. D CHK^ACRFSSA1
  1. K ACRQUIT
  1. D HEADSS4^ACRFSSD1
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I $P(^ACRDOC(ACRDOCDA,"TO"),U,26),'$P($G(^ACRDOC(ACRDOCDA,"TOAU")),U,8) D
  1. .S DA=ACRDOCDA
  1. .S DIE="^ACRDOC("
  1. .S DR="130170////0"
  1. .D DIE^ACRFDIC
  1. S ACRMRR=$P(^ACRDOC(ACRDOCDA,"TOSA"),U,10)
  1. S ACR4P=$P(^ACRDOC(ACRDOCDA,"TO"),U,26)
  1. S ACRDUZ=$P(^ACRDOC(ACRDOCDA,"TO"),U,9)
  1. S (ACRREIM,ACRJ,ACRTOT,ACRPD,ACRLDG,ACRMR,ACRTAX,ACRPHN,ACROTH,ACROTHT,ACRRC,ACRTVRC,ACRAIRPT,ACRAIRP,ACRAIRT)=0
  1. S ACRADV=+$G(ACRADV)
  1. S ACRALTOT=+$G(ACRALTOT)
  1. K ^TMP("ACRTV",$J)
  1. I '$D(^ACRTV("D",ACRDOCDA)) D Q
  1. .W !?10,"NO TRAVEL DAYS RECORDED FOR THIS TRAVEL ORDER."
  1. .S ACRDAYS=0
  1. D LASTDAY
  1. S ACRTVDA=0
  1. F S ACRTVDA=$O(^ACRTV("D",ACRDOCDA,ACRTVDA)) Q:'ACRTVDA D
  1. .I $G(ACRREFX)'=600,$P($G(^ACRTV(ACRTVDA,0)),U,5)=1 Q
  1. .I '$D(^ACRTV(ACRTVDA,0)) K ^ACRTV("D",ACRDOCDA,ACRTVDA) Q
  1. .S ^TMP("ACRTV",$J,"D",+$P(^ACRTV(ACRTVDA,"DT"),U),ACRDOCDA,ACRTVDA)=""
  1. .S ACRJ=ACRJ+1
  1. .S ACRTV=ACRTVDA_"^"_^ACRTV(ACRTVDA,0)
  1. .S ACRTV1=^ACRTV(ACRTVDA,"DT")
  1. .S ACRTVDAY=+^ACRTV(ACRTVDA,0)
  1. .S ACRDESC=$G(^ACRTV(ACRTVDA,"DESC"))
  1. .S ACRTVEP=$G(^ACRTV(ACRTVDA,1))
  1. .I ACRTVDAY'=ACRJ D
  1. ..S DA=ACRTVDA
  1. ..S DIE="^ACRTV("
  1. ..S DR=".01///"_ACRJ
  1. ..D DIE^ACRFDIC
  1. .S ^TMP("ACRTV",$J,ACRJ)=ACRTV
  1. .S ACRTVDAT=$E($P($P(ACRTV1,U),","),4,7)
  1. .S Y=$P(ACRTV1,U,2)
  1. .X ^DD("DD")
  1. .S ACRTVLV=$P(Y,"@",2)
  1. .S ACRTVLV=$P(ACRTVLV,":")_$P(ACRTVLV,":",2)
  1. .S Y=$P(ACRTV1,U,3)
  1. .X ^DD("DD")
  1. .S ACRTVAR=$P(Y,"@",2)
  1. .S ACRTVAR=$P(ACRTVAR,":")_$P(ACRTVAR,":",2)
  1. .S ACRTVCIT=$S('$P(ACRTV1,U,4):"NOT SPECIFIED",'$D(^ACRPD($P(ACRTV1,U,4),0)):"NOT SPECIFIED",1:$E($P(^ACRPD($P(ACRTV1,U,4),0),U),1,7))
  1. .S ACRTVPD=$P(ACRTV1,U,5)
  1. .S:$P(ACRTV1,U,20)>0 ACRMRR=$P(ACRTV1,U,20)
  1. .S ACRPMRR=$P(ACRTV1,U,23)
  1. .S ACRAIRP=$P(ACRTV1,U,22)
  1. .S ACRAIRPT=ACRAIRPT+ACRAIRP
  1. .S ACRTVLDG=$P(ACRTV1,U,6)
  1. .S ACRTVMLS=$P(ACRTV1,U,7)
  1. .S ACRTVPML=$P(ACRTV1,U,21)
  1. .S ACRTVMR=ACRTVPML*ACRPMRR
  1. .S ACRTVTAX=$P(ACRTV1,U,8)
  1. .S ACRAIRT=ACRAIRT+(ACRTVMLS*ACRMRR)
  1. .S ACRTVPHN=$P(ACRTV1,U,9)
  1. .S ACRTVOTH=$P(ACRTV1,U,10)
  1. .S ACRTVEXP=$P(ACRTV1,U,17)
  1. .S ACRTVRC=$P(ACRTV1,U,15)
  1. .S:ACRTVEP]"" ACRTVEXP=ACRTVEXP_U_ACRTVEP
  1. .S ACRTVRCC=$P(ACRTV1,U,13)
  1. .I ACRTVRCC,$D(^ACRRCOMP(ACRTVRCC,0)) S ACRTVRCC=$P(^(0),U)
  1. .S ACROTH=ACROTH+ACRTVOTH
  1. .S ACRPD=ACRPD+ACRTVPD
  1. .S ACRLDG=ACRLDG+ACRTVLDG
  1. .S ACRMR=ACRMR+ACRTVMR
  1. .S ACRTAX=ACRTAX+ACRTVTAX
  1. .S ACRPHN=ACRPHN+ACRTVPHN
  1. .S ACRRC=ACRRC+ACRTVRC
  1. I $P(^ACRDOC(ACRDOCDA,"TOAU"),U,6),$P(^("TOAU"),U,6)<ACRMR S ACRMR=$P(^("TOAU"),U,6)
  1. S ACRDAYS=ACRJ
  1. S ACRPHNX=ACRJ-1*$P(^ACRSYS(1,"DT"),U,17)
  1. S ACRPHN=$S(ACRPHN>ACRPHNX:ACRPHNX,1:ACRPHN)
  1. D TAXI
  1. K ACRPHNX
  1. S (ACRTVDT,ACRJ)=0
  1. F S ACRTVDT=$O(^TMP("ACRTV",$J,"D",ACRTVDT)) Q:'ACRTVDT!$D(ACRQUIT) D
  1. .S ACRTVDA=0
  1. .F S ACRTVDA=$O(^TMP("ACRTV",$J,"D",ACRTVDT,ACRDOCDA,ACRTVDA)) Q:'ACRTVDA!$D(ACRQUIT) D
  1. ..S ACRJ=ACRJ+1
  1. ..D DP1^ACRFSS44
  1. I $D(^ACRAL("C",ACRDOCDA)) D
  1. .W !!,"Transportation cost to and from airport including airport parking not to exceed"
  1. .W !,"round trip taxi fare of ",$FN($P($G(^ACRAU(ACRDUZ,1)),U,9),"P",2)," (Amount claimed:",$FN(ACRAIRPT(1),"P",2)," authorized:",$FN(ACRAIRPT,"P",2),")"
  1. W !?26,"---------"
  1. W ?36,"---------"
  1. W ?46,"-------"
  1. W ?54,"--------"
  1. W ?63,"--------"
  1. W ?72,"-------"
  1. W !?26,$J($FN(ACRPD,"P",2),8)
  1. W ?36,$J($FN(ACRLDG,"P",2),8)
  1. W ?46,$J($FN(ACRMR+ACRAIRT,"P",2),7)
  1. W ?54,$J($FN(ACRTAX,"P",2),7)
  1. S ACRTOT=ACRTOT+ACRPD+ACRLDG+ACRMR+ACRTAX+ACRPHN+ACROTH+ACRRC+ACR4P+ACRAIRPT+$$TMFEE(ACRDOCDA)
  1. S ACROTHT=ACROTHT+ACRMR+ACRTAX+ACRPHN+ACROTH+ACRAIRPT
  1. W ?63,$J($FN(ACRPHN,"P",2),7)
  1. W ?72,$J($FN(ACROTH+ACRAIRPT-ACRAIRT,"P",2),7)
  1. D ALTOT^ACRFSSA1
  1. D ADVANCE^ACRFSSA1
  1. S ACRTOT=ACRTOT+$G(ACRALTOT)
  1. S ACRREIM=ACRREIM+ACRRC+ACRPD+ACRLDG+ACROTHT+ACR4P+$S($P(^ACRDOC(ACRDOCDA,"TOAU"),U,5)=1:$G(ACRALTOT),1:0)
  1. I $P($G(^ACRSYS(1,400)),U,4) S ACRREIM=ACRREIM+$$TMFEE(ACRDOCDA) ; ADD TM FEE TO REIMBURSABLE IF CREATE TM FEE PMT DHR = YES
  1. D TOTAL^ACRFSSA1
  1. K ACRQUIT,ACRHOT
  1. Q
  1. TAXI ;EP;TO CALCULATE IF AIRPORT PARKING PLUS TRIP TO AIRPORT IS GREATER
  1. ;THAN TAXI TO AIRPORT
  1. S ACRAIRPT(1)=ACRAIRPT+ACRAIRT
  1. I ACRAIRPT(1),$P($G(^ACRAU(ACRDUZ,1)),U,9),ACRAIRPT(1)>($P(^(1),U,9)) S ACRAIRPT=$P(^(1),U,9)
  1. E S ACRAIRPT=ACRAIRPT(1)
  1. Q
  1. LASTDAY ;EP;TO ADJUST FIRST AND LAST OFFICIAL TRAVEL DAY PERDIEM TO 3/4 ;THL
  1. ;;AND TO DISALLOW PERDIEM AND LODGING ON NON-OFFICIAL TRAVEL DAYS
  1. ;;IF FINAL APPROVAL OR DISAPPROVAL COMPLETED, NO ADJUSTMENT IS DONE
  1. Q:$P($G(^ACROBL(ACRDOCDA,"APV")),U,8)]""
  1. K ^TMP("ACRTV",$J,"D")
  1. N ACRJ,ACRXX,ACRY,Z,ACRTDY,ACRPDX,ACRHOT,ACRPD
  1. S (ACRXX,ACRJ)=0
  1. F S ACRXX=$O(^ACRTV("D",ACRDOCDA,ACRXX)) Q:'ACRXX D
  1. .Q:$P($G(^ACRTV(ACRXX,0)),U,4)'=1
  1. .S ACRJ=ACRJ+1
  1. Q:ACRJ<4
  1. S (ACRXX,ACRJ)=0
  1. F S ACRXX=$O(^ACRTV("D",ACRDOCDA,ACRXX)) Q:'ACRXX D
  1. .Q:$P($G(^ACRTV(ACRXX,0)),U,4)'=1
  1. .S ^TMP("ACRTV",$J,"D",+$P(^ACRTV(ACRXX,"DT"),U),ACRDOCDA,ACRXX)=""
  1. K ACRQUIT
  1. S ACRDAY=99999999
  1. S ACRDAY=$O(^TMP("ACRTV",$J,"D",ACRDAY),-1) Q:'ACRDAY!$D(ACRQUIT) D
  1. .S ACRXX=99999999
  1. .S ACRXX=$O(^TMP("ACRTV",$J,"D",ACRDAY,ACRDOCDA,ACRXX),-1)
  1. .Q:'ACRXX!$D(ACRQUIT)
  1. .S ACRTDY=$P($G(^ACRTV(ACRXX,"DT")),U,4)
  1. .N ACRAMT
  1. .S ACRAMT=$P($G(^ACRTV(ACRXX,"DT")),U,5)
  1. .D:ACRTDY
  1. ..S ACRPDX=$P($G(^ACRPD(+ACRTDY,0)),U,4)
  1. ..Q:'ACRPDX
  1. ..Q:ACRPDX*.751>ACRAMT
  1. ..S DA=ACRXX
  1. ..S DIE="^ACRTV("
  1. ..S DR="5////"_(ACRPDX*.75)_";6////0"
  1. ..D DIE^ACRFDIC
  1. ..S ACRQUIT=""
  1. K ACRQUIT,^TMP("ACRTV",$J,"D"),ACRHOT
  1. Q
  1. TMFEE(X) ;EP -- EXTRINSIC FUNCTION - CALCULATES TRAVEL MGT FEE
  1. ;
  1. ; INPUT:
  1. ; X = INTERNAL FMS DOCUMENT IEN
  1. ;
  1. ; OUTPUT:
  1. ; Y = TRAVEL MGT FEE AMOUNT
  1. ;
  1. N Z,Y
  1. S (Z,Y)=0
  1. F S Z=$O(^ACRSS("C",X,Z)) Q:'Z D
  1. . Q:$P($G(^ACRSS(Z,"NMS")),U,5)'="Travel Mgt Fee"
  1. . S Y=Y+$P($G(^ACRSS(Z,"DT")),U,4)
  1. Q Y