| 1 | RCXFMSTX ;WISC/RFJ-fms transfer (tr) code sheet generator ;1 Oct 97
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**170,178,191,184**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | STARTTR(RCDATEND) ;  top entry point to generate a tr code sheet
 | 
|---|
| 8 |  ;  transferring dollars from mccf to hsif
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;  rcdatend is the ending date of the period.
 | 
|---|
| 11 |  ;  This date is the 3rd work day from the end of the month.
 | 
|---|
| 12 |  ;  The utility $$LDATE^RCRJR is used to figure it out. It will
 | 
|---|
| 13 |  ;  change from month to month and figures in holidays also.
 | 
|---|
| 14 |  ;  For example,  if running the ARDC for the month of June 2003
 | 
|---|
| 15 |  ;  the EOAM will calculate out to be June 25, 2003.
 | 
|---|
| 16 |  ;  This is called by the background monthly data collector
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  N GECSDATA,RCTRANID,RESULT
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  ;  build the data for the TR document.  this call returns the rctrans
 | 
|---|
| 22 |  ;  array in the format rctrans(fromfund,fromrsc) = tofund ^ torsc ^
 | 
|---|
| 23 |  ;  amount
 | 
|---|
| 24 |  ;    example:
 | 
|---|
| 25 |  ;      rctrans(5287,"8bzz")="5358.1^8gzz^123.45"
 | 
|---|
| 26 |  ;      will transfer 123.45 from 5287 to 5358.1
 | 
|---|
| 27 |  D GETPAY^RCBMILLT(RCDATEND)
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ;  no code sheets to send
 | 
|---|
| 30 |  I $O(RCTRANS(""))="" Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ;  lookup fms document number to see if the monthly tr has been sent
 | 
|---|
| 33 |  ;  example rcdatend=3010531, lookup on 3010500
 | 
|---|
| 34 |  D KEYLOOK^GECSSGET("TR-"_$E(RCDATEND,1,5)_"00",1)
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ;  get the transacion id for the fms document
 | 
|---|
| 37 |  ;  if it is not sent, get the next number available
 | 
|---|
| 38 |  I $G(GECSDATA) S RCTRANID=$E($P(GECSDATA("2100.1",GECSDATA,".01","E"),"-",2),1,11)
 | 
|---|
| 39 |  I $G(RCTRANID)="" S RCTRANID=$$ENUM^RCMSNUM
 | 
|---|
| 40 |  I RCTRANID<0 Q  ;unable to retrieve the next number
 | 
|---|
| 41 |  ;  remove dash (example 460-K1A05HY)
 | 
|---|
| 42 |  S RCTRANID=$TR(RCTRANID,"-")
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  ;  build the tr document
 | 
|---|
| 45 |  S RESULT=$$BUILDTR(RCDATEND,.RCTRANS,+$G(GECSDATA),RCTRANID)
 | 
|---|
| 46 |  ;  error in building code sheet
 | 
|---|
| 47 |  I 'RESULT Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ;  set the 433 fields showing the dollars were transferred
 | 
|---|
| 50 |  D SETPAY^RCBMILLT(RCDATEND)
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;  add/update entry in file 347 for reports
 | 
|---|
| 53 |  N %DT,%X,D,D0,DA347,DI,DQ,DIC,ERROR
 | 
|---|
| 54 |  S DA347=$O(^RC(347,"C",$P(RESULT,"^",2),0))
 | 
|---|
| 55 |  ;  if not in the file, addit   fmsdocid   sv   id
 | 
|---|
| 56 |  I 'DA347 D OPEN^RCFMDRV1($P(RESULT,"^",2),4,"TR-"_$E(RCDATEND,1,5)_"00",.DA347,.ERROR)
 | 
|---|
| 57 |  I DA347 D SSTAT^RCFMFN02($P(RESULT,"^",2),1)
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  ;        
 | 
|---|
| 61 | BUILDTR(RCDATEND,RCTRANS,RCGECSDA,RCTRANID) ;  generate a tr code sheet for
 | 
|---|
| 62 |  ;  transferring dollars from mccf to hsif
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  ;  rcdatend is the last day of the month for the data
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;  rctrans(fund,rsc) = data array passed
 | 
|---|
| 67 |  ;    fund=fund to transfer from
 | 
|---|
| 68 |  ;    rsc = rsc to transfer from
 | 
|---|
| 69 |  ;    data = fund to transfer to (piece 1)
 | 
|---|
| 70 |  ;           rsc  to transfer to (piece 2)
 | 
|---|
| 71 |  ;           dollars to transfer (piece 3)
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  ;  rcgecsda is the ien for the gcs stack file 2100.1 for rebuilds
 | 
|---|
| 74 |  ;
 | 
|---|
| 75 |  ;  rctranid is the document identifier
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  N COUNT,DATA,DESCRIP,FISCALYR,FUND,GECSFMS,LINE,REVSRCE,TR2,X,Y
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  S FISCALYR=$$FY^RCFN01(RCDATEND)
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ;  build detail line
 | 
|---|
| 82 |  S COUNT=0
 | 
|---|
| 83 |  S FUND="" F  S FUND=$O(RCTRANS(FUND)) Q:FUND=""  D
 | 
|---|
| 84 |  .   S REVSRCE="" F  S REVSRCE=$O(RCTRANS(FUND,REVSRCE)) Q:'REVSRCE  D
 | 
|---|
| 85 |  .   .   S DATA=RCTRANS(FUND,REVSRCE)
 | 
|---|
| 86 |  .   .   ;  if no value, quit
 | 
|---|
| 87 |  .   .   I '$P(DATA,"^",3) Q
 | 
|---|
| 88 |  .   .   ;
 | 
|---|
| 89 |  .   .   ;  create line to transfer from (decrease)
 | 
|---|
| 90 |  .   .   S COUNT=COUNT+1
 | 
|---|
| 91 |  .   .   S LINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT
 | 
|---|
| 92 |  .   .   S $P(LINE(COUNT),"^",4)=FISCALYR
 | 
|---|
| 93 |  .   .   S $P(LINE(COUNT),U,4)=$S($E(FUND,1,4)=5287:"05",1:FISCALYR)
 | 
|---|
| 94 |  .   .   S $P(LINE(COUNT),"^",6)=FUND
 | 
|---|
| 95 |  .   .   S $P(LINE(COUNT),"^",7)=$E(RCTRANID,1,3) ; station #
 | 
|---|
| 96 |  .   .   S $P(LINE(COUNT),"^",10)=REVSRCE
 | 
|---|
| 97 |  .   .   ;
 | 
|---|
| 98 |  .   .   ;  vendor id
 | 
|---|
| 99 |  .   .   S $P(LINE(COUNT),"^",18)="MCCFVALUE"
 | 
|---|
| 100 |  .   .   I FUND=5358.1 S $P(LINE(COUNT),"^",18)="HSIFVALUE"
 | 
|---|
| 101 |  .   .   ;
 | 
|---|
| 102 |  .   .   S $P(LINE(COUNT),"^",20)=$J($P(DATA,"^",3),0,2)
 | 
|---|
| 103 |  .   .   S $P(LINE(COUNT),"^",21)="D"
 | 
|---|
| 104 |  .   .   S $P(LINE(COUNT),"^",23)=33
 | 
|---|
| 105 |  .   .   S $P(LINE(COUNT),"^",24)="~"
 | 
|---|
| 106 |  .   .   ;
 | 
|---|
| 107 |  .   .   ;  create line to transfer to (increase)
 | 
|---|
| 108 |  .   .   S COUNT=COUNT+1
 | 
|---|
| 109 |  .   .   S LINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT
 | 
|---|
| 110 |  .   .   S $P(LINE(COUNT),"^",4)=FISCALYR
 | 
|---|
| 111 |  .   .   S $P(LINE(COUNT),U,4)=$S($E(FUND,1,4)=5287:"05",1:FISCALYR)
 | 
|---|
| 112 |  .   .   S $P(LINE(COUNT),"^",6)=$P(DATA,"^")
 | 
|---|
| 113 |  .   .   S $P(LINE(COUNT),"^",7)=$E(RCTRANID,1,3) ; station #
 | 
|---|
| 114 |  .   .   S $P(LINE(COUNT),"^",10)=$P(DATA,"^",2)
 | 
|---|
| 115 |  .   .   ;
 | 
|---|
| 116 |  .   .   ;  vendor id
 | 
|---|
| 117 |  .   .   S $P(LINE(COUNT),"^",18)="MCCFVALUE"
 | 
|---|
| 118 |  .   .   I $P(DATA,"^")=5358.1 S $P(LINE(COUNT),"^",18)="HSIFVALUE"
 | 
|---|
| 119 |  .   .   ;
 | 
|---|
| 120 |  .   .   S $P(LINE(COUNT),"^",20)=$J($P(DATA,"^",3),0,2)
 | 
|---|
| 121 |  .   .   S $P(LINE(COUNT),"^",21)="I"
 | 
|---|
| 122 |  .   .   S $P(LINE(COUNT),"^",23)=33
 | 
|---|
| 123 |  .   .   S $P(LINE(COUNT),"^",24)="~"
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 |  ;  build tr2
 | 
|---|
| 126 |  S TR2="CR2^"_$E(RCDATEND,2,3)_"^"_$E(RCDATEND,4,5)_"^"_$E(RCDATEND,6,7)_"^^^^^^E^^^"
 | 
|---|
| 127 |  ;  deposit number which is equal to the gcs id
 | 
|---|
| 128 |  ;  $j(0,0,2) is the document total which is zero
 | 
|---|
| 129 |  S TR2=TR2_$P(RCTRANID,"^")_"^^"_$J(0,0,2)_"^^"
 | 
|---|
| 130 |  ;  deposit/transfer date which is end date of prior month
 | 
|---|
| 131 |  S TR2=TR2_$E(RCDATEND,2,3)_"^"_$E(RCDATEND,4,5)_"^"_$E(RCDATEND,6,7)_"^~"
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 |  ;  put together document in gcs
 | 
|---|
| 134 |  N %DT,D,D0,DA,DI,DIC,DIE,DIQ2,DQ,DR
 | 
|---|
| 135 |  S Y=$E(RCDATEND,1,5)_"00" D DD^%DT
 | 
|---|
| 136 |  S DESCRIP="Monthly Transfer MCCF to HSIF for "_Y
 | 
|---|
| 137 |  I 'RCGECSDA D CONTROL^GECSUFMS("A",$E(RCTRANID,1,3),RCTRANID,"TR",10,0,"",DESCRIP)
 | 
|---|
| 138 |  I RCGECSDA D REBUILD^GECSUFM1(RCGECSDA,"A",10,"N","Rebuild "_DESCRIP) S GECSFMS("DA")=RCGECSDA
 | 
|---|
| 139 |  ;
 | 
|---|
| 140 |  ;  store document in gcs
 | 
|---|
| 141 |  D SETCS^GECSSTAA(GECSFMS("DA"),TR2)
 | 
|---|
| 142 |  F COUNT=1:1 Q:'$D(LINE(COUNT))  D SETCS^GECSSTAA(GECSFMS("DA"),LINE(COUNT))
 | 
|---|
| 143 |  D SETCODE^GECSSDCT(GECSFMS("DA"),"D RETN^RCFMFN02")
 | 
|---|
| 144 |  D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q")
 | 
|---|
| 145 |  ;  set the key for lookup
 | 
|---|
| 146 |  D SETKEY^GECSSTAA(GECSFMS("DA"),"TR-"_$E(RCDATEND,1,5)_"00")
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 |  ;  return 1 for success ^ fms document id
 | 
|---|
| 149 |  Q 1_"^TR-"_$P(GECSFMS("CTL"),"^",9)
 | 
|---|