| 1 | RCXFMSWR ;WISC/RFJ-fms writeoff (wr) code sheet generator ;1 Nov 97 | 
|---|
| 2 | ;;4.5;Accounts Receivable;**96,135,98,156,170,191,220,184**;Mar 20, 1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | STARTWR(RCDATEND) ;  top entry point to generate a wr code sheet | 
|---|
| 8 | ; | 
|---|
| 9 | ;  rcdatend is the ending date of the period. | 
|---|
| 10 | ;  This date is the 3rd work day from the end of the month. | 
|---|
| 11 | ;  The utility $$LDATE^RCRJR is used to figure it out. It will | 
|---|
| 12 | ;  change from month to month and figures in holidays also. | 
|---|
| 13 | ;  For example,  if running the ARDC for the month of June 2003 | 
|---|
| 14 | ;  the EOAM will calculate out to be June 25, 2003. | 
|---|
| 15 | ;  This is called by the background monthly data collector | 
|---|
| 16 | ; | 
|---|
| 17 | ;  data stored in tmp($j,rcrjrcolwr,type,revsourcecode) | 
|---|
| 18 | ;  this is called by the background monthly data collector | 
|---|
| 19 | ; | 
|---|
| 20 | N GECSDATA,RCTRANID,RESULT | 
|---|
| 21 | ;  lookup fms document number to see if the monthly sv has been sent | 
|---|
| 22 | ;  example rcdatend=3010531, lookup on 3010500 | 
|---|
| 23 | D KEYLOOK^GECSSGET("WR-"_$E(RCDATEND,1,5)_"00",1) | 
|---|
| 24 | ; | 
|---|
| 25 | ;  get the transacion id for the fms document | 
|---|
| 26 | ;  if it is not sent, get the next number available | 
|---|
| 27 | I $G(GECSDATA) S RCTRANID=$E($P(GECSDATA("2100.1",GECSDATA,".01","E"),"-",2),1,11) | 
|---|
| 28 | I $G(RCTRANID)="" S RCTRANID=$$ENUM^RCMSNUM | 
|---|
| 29 | I RCTRANID<0 Q  ;unable to retrieve the next number | 
|---|
| 30 | ;  remove dash (example 460-K1A05HY) | 
|---|
| 31 | S RCTRANID=$TR(RCTRANID,"-") | 
|---|
| 32 | ; | 
|---|
| 33 | ;  build and send the sv document to fms | 
|---|
| 34 | S RESULT=$$BUILDWR(RCDATEND,+$G(GECSDATA),RCTRANID) | 
|---|
| 35 | ;  error in building code sheet | 
|---|
| 36 | I 'RESULT Q | 
|---|
| 37 | ; | 
|---|
| 38 | ;  add/update entry in file 347 for reports | 
|---|
| 39 | N %DT,%X,D,D0,DA347,DI,DQ,DIC,ERROR | 
|---|
| 40 | S DA347=$O(^RC(347,"D","WR-"_$E(RCDATEND,1,5)_"00",0)) | 
|---|
| 41 | ;  if not in the file, addit   fmsdocid   wr   id | 
|---|
| 42 | I 'DA347 D OPEN^RCFMDRV1($P(RESULT,"^",2),8,"WR-"_$E(RCDATEND,1,5)_"00",.DA347,.ERROR) | 
|---|
| 43 | I DA347 D SSTAT^RCFMFN02($P(RESULT,"^",2),1) | 
|---|
| 44 | Q | 
|---|
| 45 | ; | 
|---|
| 46 | ; | 
|---|
| 47 | BUILDWR(RCDATEND,RCGECSDA,RCTRANID) ;  generate a wr code sheet for monthly data | 
|---|
| 48 | ;  rcgecsda is the ien for the gcs stack file 2100.1 for rebuilds | 
|---|
| 49 | ;  data stored in tmp($j,rcrjrcolwr) | 
|---|
| 50 | ; | 
|---|
| 51 | N AMOUNT,COUNT,CR2,DESCRIP,DOCTOTAL,FISCALYR,FMSLINE,FUND,GECSFMS,RSC,TYPE | 
|---|
| 52 | ; | 
|---|
| 53 | S FISCALYR=$$FY^RCFN01(RCDATEND) | 
|---|
| 54 | ; | 
|---|
| 55 | S COUNT=0,DOCTOTAL=0 | 
|---|
| 56 | S TYPE="" F  S TYPE=$O(^TMP($J,"RCRJRCOLWR",TYPE)) Q:TYPE=""  D | 
|---|
| 57 | .   S FUND="" F  S FUND=$O(^TMP($J,"RCRJRCOLWR",TYPE,FUND)) Q:FUND=""  D | 
|---|
| 58 | .   .   S RSC="" F  S RSC=$O(^TMP($J,"RCRJRCOLWR",TYPE,FUND,RSC)) Q:RSC=""  D | 
|---|
| 59 | .   .   .   S AMOUNT=^TMP($J,"RCRJRCOLWR",TYPE,FUND,RSC),DOCTOTAL=DOCTOTAL+AMOUNT | 
|---|
| 60 | .   .   .   I AMOUNT=0 Q | 
|---|
| 61 | .   .   .   S COUNT=COUNT+1 | 
|---|
| 62 | .   .   .   S FMSLINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT | 
|---|
| 63 | .   .   .   ;S $P(FMSLINE(COUNT),"^",4)=$S(FUND=4032:"03",1:FISCALYR)          ;begin fy | 
|---|
| 64 | .   .   .   S $P(FMSLINE(COUNT),"^",4)=FISCALYR          ;begin fy | 
|---|
| 65 | .   .   .   S $P(FMSLINE(COUNT),"^",4)=$S($E(FUND,1,4)=5287:"05",1:FISCALYR)  ;begin fy | 
|---|
| 66 | .   .   .   S $P(FMSLINE(COUNT),"^",6)=FUND | 
|---|
| 67 | .   .   .   S $P(FMSLINE(COUNT),"^",7)=$E(RCTRANID,1,3)  ;site number | 
|---|
| 68 | .   .   .   S $P(FMSLINE(COUNT),"^",10)=RSC | 
|---|
| 69 | .   .   .   ; | 
|---|
| 70 | .   .   .   ;  vendor id | 
|---|
| 71 | .   .   .   S $P(FMSLINE(COUNT),"^",18)="MCCFVALUE" | 
|---|
| 72 | .   .   .   I FUND=4032!(FUND=528709) S $P(FMSLINE(COUNT),"^",18)="EXCFVALUE" | 
|---|
| 73 | .   .   .   ;  for transaction type P4, send vendorid of PERSONOTH | 
|---|
| 74 | .   .   .   I TYPE="P4" S $P(FMSLINE(COUNT),"^",18)="PERSONOTH" | 
|---|
| 75 | .   .   .   ; | 
|---|
| 76 | .   .   .   S $P(FMSLINE(COUNT),"^",20)=$J(AMOUNT,0,2) | 
|---|
| 77 | .   .   .   S $P(FMSLINE(COUNT),"^",21)="I" | 
|---|
| 78 | .   .   .   S $P(FMSLINE(COUNT),"^",23)=TYPE_"^~" | 
|---|
| 79 | ; | 
|---|
| 80 | ;  no code sheets to send | 
|---|
| 81 | I COUNT=0 Q "0^No wr code sheets to send for this month" | 
|---|
| 82 | ; | 
|---|
| 83 | S CR2="CR2^"_$E(RCDATEND,2,3)_"^"_$E(RCDATEND,4,5)_"^"_$E(RCDATEND,6,7) | 
|---|
| 84 | S $P(CR2,"^",10)="E" | 
|---|
| 85 | S $P(CR2,"^",13)=999999999999 | 
|---|
| 86 | S $P(CR2,"^",15)=$J(DOCTOTAL,0,2) | 
|---|
| 87 | S $P(CR2,"^",17)=$E(RCDATEND,2,3) | 
|---|
| 88 | S $P(CR2,"^",18)=$E(RCDATEND,4,5) | 
|---|
| 89 | S $P(CR2,"^",19)=$E(RCDATEND,6,7)_"^~" | 
|---|
| 90 | ; | 
|---|
| 91 | ;  put together document in gcs | 
|---|
| 92 | N %DT,D0,DA,DI,DIC,DIE,DQ,DR,X,Y | 
|---|
| 93 | S Y=$E(RCDATEND,1,5)_"00" D DD^%DT | 
|---|
| 94 | S DESCRIP="Monthly Write Off for "_Y | 
|---|
| 95 | I 'RCGECSDA D CONTROL^GECSUFMS("A",$E(RCTRANID,1,3),RCTRANID,"WR",10,0,"",DESCRIP) | 
|---|
| 96 | I RCGECSDA D REBUILD^GECSUFM1(RCGECSDA,"A",10,"N","Rebuild "_DESCRIP) S GECSFMS("DA")=RCGECSDA | 
|---|
| 97 | ; | 
|---|
| 98 | ;  store document in gcs | 
|---|
| 99 | D SETCS^GECSSTAA(GECSFMS("DA"),CR2) | 
|---|
| 100 | F COUNT=1:1 Q:'$D(FMSLINE(COUNT))  D SETCS^GECSSTAA(GECSFMS("DA"),FMSLINE(COUNT)) | 
|---|
| 101 | D SETCODE^GECSSDCT(GECSFMS("DA"),"D RETN^RCFMFN02") | 
|---|
| 102 | D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q") | 
|---|
| 103 | ;  set the key for lookup | 
|---|
| 104 | D SETKEY^GECSSTAA(GECSFMS("DA"),"WR-"_$E(RCDATEND,1,5)_"00") | 
|---|
| 105 | ; | 
|---|
| 106 | ;  return 1 for success ^ fms document transaction number | 
|---|
| 107 | Q "1^WR-"_$P(GECSFMS("CTL"),"^",9) | 
|---|