| [613] | 1 | FBAAV3 ;AISC/GRR-CREATE & ELECTRONICALLY TRANSMIT TRANSACTIONS FOR TRAVEL PAYMENTS ;2/8/2005
 | 
|---|
 | 2 |  ;;3.5;FEE BASIS;**3,89**;JAN 30, 1995
 | 
|---|
 | 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 | DETT ; process a travel batch
 | 
|---|
 | 5 |  S FBTXT=0
 | 
|---|
 | 6 |  F K=0:0 S K=$O(^FBAAC("AD",J,K)) Q:K'>0  F L=0:0 S L=$O(^FBAAC("AD",J,K,L)) Q:L'>0  S Y(0)=$G(^FBAAC(K,3,L,0)) I Y(0)]"",+$P(Y(0),U,3) D
 | 
|---|
 | 7 |  .S FBPICN=K_U_L
 | 
|---|
 | 8 |  .I 'FBTXT S FBTXT=1 D NEWMSG^FBAAV01,STORE^FBAAV01,UPD^FBAAV0
 | 
|---|
 | 9 |  .D GOT
 | 
|---|
 | 10 |  D:FBTXT XMIT^FBAAV01 Q
 | 
|---|
 | 11 | GOT ; process a travel line item
 | 
|---|
 | 12 |  N DFN,FBPNAMX
 | 
|---|
 | 13 |  S FBTD=$$AUSDT($P(Y(0),U))
 | 
|---|
 | 14 |  S FBAP=$$AUSAMT($P(Y(0),"^",3),8)
 | 
|---|
 | 15 |  S DFN=K
 | 
|---|
 | 16 |  Q:'DFN
 | 
|---|
 | 17 |  Q:'$D(^DPT(DFN,0))
 | 
|---|
 | 18 |  ; Note: Prior to the following line Y(0) = 0 node of subfile #162.04
 | 
|---|
 | 19 |  ;       After the line, Y(0) will = 0 node of file #2
 | 
|---|
 | 20 |  S Y(0)=^DPT(DFN,0)
 | 
|---|
 | 21 |  D PAT^FBAAUTL2
 | 
|---|
 | 22 |  S FBPNAMX=$$HL7NAME^FBAAV4(DFN) ; formatted patient name
 | 
|---|
 | 23 |  S FBSTR="T"_FBAASN_FBSSN_"T"_FBPNAMX_FBAP_FBAAON_FBTD_"0"_$E(PAD,1,8)
 | 
|---|
 | 24 |  S FBSTR=FBSTR_$$PADZ^FBAAV01(FBPICN,30)_FBTD_"$"
 | 
|---|
 | 25 |  D STORE^FBAAV01
 | 
|---|
 | 26 |  K FBPICN
 | 
|---|
 | 27 |  Q
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 | AUSDT(FBDT) ;called to format date from VA FileMan internal to YYYYMMDD
 | 
|---|
 | 30 |  ; if input date is blank or invalid, eight spaces will be returned
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 |  N FBRET
 | 
|---|
 | 33 |  S:FBDT FBRET=$$FMTHL7^XLFDT($P(FBDT,"."))
 | 
|---|
 | 34 |  S:$G(FBRET)=""!($G(FBRET)<0) FBRET="        "
 | 
|---|
 | 35 |  Q FBRET
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 | AUSAMT(FBAMT,FBL,FBS) ; called to format signed dollar amount for Austin
 | 
|---|
 | 38 |  ; input
 | 
|---|
 | 39 |  ;   FBAMT - dollar amount
 | 
|---|
 | 40 |  ;   FBL   - (optional) length of return sting 
 | 
|---|
 | 41 |  ;   FBS   - (optional) =true(1) if return value could be negative (-)
 | 
|---|
 | 42 |  ;           default is false (0)
 | 
|---|
 | 43 |  ; result
 | 
|---|
 | 44 |  ;   string value, right justified, 0 padded, decimal point removed,
 | 
|---|
 | 45 |  ;   with rightmost 2 numeric characters the cents
 | 
|---|
 | 46 |  ;   if FBS true then rightmost character indicate the sign (' ' or '-')
 | 
|---|
 | 47 |  ;   example with FBS false: 12.41 with length 8 would return '00001241'
 | 
|---|
 | 48 |  ;   example with FBS true:  12.41 with length 9 would return '00001241 '
 | 
|---|
 | 49 |  ;   example with FBS true: -12.41 with length 9 would return '00001241-'
 | 
|---|
 | 50 |  ;
 | 
|---|
 | 51 |  N FBRET
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 |  ; use absolute value
 | 
|---|
 | 54 |  S FBRET=$S(FBAMT<0:-FBAMT,1:FBAMT)
 | 
|---|
 | 55 |  ;
 | 
|---|
 | 56 |  ; format with 2 decimals places
 | 
|---|
 | 57 |  S FBRET=$FN(FBRET,"",2)
 | 
|---|
 | 58 |  ;
 | 
|---|
 | 59 |  ; remove the decimal point
 | 
|---|
 | 60 |  S FBRET=$TR(FBRET,".","")
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 |  ; add the suffix denoting the sign when applicable (when FBS true)
 | 
|---|
 | 63 |  S FBRET=FBRET_$S('$G(FBS):"",FBAMT<0:"-",1:" ")
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 |  ; right justify and 0 pad
 | 
|---|
 | 66 |  S FBRET=$$RJ^XLFSTR(FBRET,$G(FBL),"0")
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 |  ; return result
 | 
|---|
 | 69 |  Q FBRET
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 |  ;FBAAV3
 | 
|---|