1 | RCXFMSCR ;WISC/RFJ-fms cash receipt (cr) code sheet generator ;1 Oct 97
|
---|
2 | ;;4.5;Accounts Receivable;**90,114,148,172,204,203,173,220,184**;Mar 20, 1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | BUILDCR(RCRECTDA,RCGECSDA,RCEFT) ; generate a cr/tr code sheet for a receipt
|
---|
7 | ; rcgecsda is the ien for the gcs stack file 2100.1 for rebuilds
|
---|
8 | ; rceft = 1 if processing CR for an EFT deposit (CR to rev src cd 8NZZ)
|
---|
9 | ; = 2 if processing TR for the receipt detail relating to an EFT
|
---|
10 | ; (TR from 528704/8NZZ to original fund/rsc)
|
---|
11 | ;
|
---|
12 | N AMOUNT,BILLDA,COUNT,CR2,DETAIL,DEPOSIT,DESCRIP,DOCTOTAL,FISCALYR,FMSTYPE,FUND,GECSFMS,LINE,RCDEPTDA,REVSRCE,TOTAL,TRANDA,TRANNUMB,UNAPPLY,UNAPPNUM,VENDORID,EFTDEP
|
---|
13 | ;
|
---|
14 | ; build the lines for all payments on receipt
|
---|
15 | S RCEFT=+$G(RCEFT)
|
---|
16 | K ^TMP($J,"RCFMSCR") ; used for 215 report, not used here
|
---|
17 | D FMSLINES^RCXFMSC1(RCRECTDA)
|
---|
18 | K ^TMP($J,"RCFMSCR")
|
---|
19 | ;
|
---|
20 | ; unapplied payments to accounts
|
---|
21 | S TRANDA=0 F S TRANDA=$O(^RCY(344,RCRECTDA,1,TRANDA)) Q:'TRANDA D
|
---|
22 | . ; dollars applied in AR
|
---|
23 | . I $P(^RCY(344,RCRECTDA,1,TRANDA,0),"^",5) Q
|
---|
24 | . ; no dollars on transaction
|
---|
25 | . S AMOUNT=$P(^RCY(344,RCRECTDA,1,TRANDA,0),"^",4) I 'AMOUNT Q
|
---|
26 | . ;
|
---|
27 | . I RCEFT=1 S TOTAL("5287"_$S(DT<3030926:"",DT'<3030926&(DT<$$ADDPTEDT^PRCAACC()):".4",1:"04"),"8NZZ","MCCFVALUE")=$G(TOTAL("5287"_$S(DT<3030926:"",1:"04"),"8NZZ","MCCFVALUE"))+AMOUNT Q
|
---|
28 | . S UNAPPLY($$GETUNAPP(RCRECTDA,TRANDA,1))=AMOUNT
|
---|
29 | ;
|
---|
30 | ; no code sheets to send
|
---|
31 | I '$D(DETAIL),'$D(TOTAL),'$D(UNAPPLY) Q "-1^No code sheets to send for this receipt"
|
---|
32 | ;
|
---|
33 | ; get the next common number in the series = station "-" nextnumber
|
---|
34 | ; use (field 200 in file 344) if document previously sent
|
---|
35 | S TRANNUMB=$P($P($G(^RCY(344,RCRECTDA,2)),"^"),"-",2)
|
---|
36 | I TRANNUMB="" S TRANNUMB=$$ENUM^RCMSNUM
|
---|
37 | I TRANNUMB<0 Q "0^Unable to lookup next transaction number"
|
---|
38 | ; remove the dash (i,e, 460-K1A05HY)
|
---|
39 | S TRANNUMB=$TR(TRANNUMB,"-")
|
---|
40 | ;
|
---|
41 | S FISCALYR=$$FY^RCFN01(DT)
|
---|
42 | ;
|
---|
43 | S COUNT=0,DOCTOTAL=0
|
---|
44 | ; build detail line
|
---|
45 | S FMSTYPE="" F S FMSTYPE=$O(DETAIL(FMSTYPE)) Q:FMSTYPE="" D
|
---|
46 | . S BILLDA=0 F S BILLDA=$O(DETAIL(FMSTYPE,BILLDA)) Q:'BILLDA D
|
---|
47 | . . S AMOUNT=DETAIL(FMSTYPE,BILLDA),DOCTOTAL=DOCTOTAL+AMOUNT
|
---|
48 | . . S COUNT=COUNT+1
|
---|
49 | . . S LINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT
|
---|
50 | . . S $P(LINE(COUNT),"^",20)=$J(AMOUNT,0,2)
|
---|
51 | . . S $P(LINE(COUNT),"^",21)="I"
|
---|
52 | . . S $P(LINE(COUNT),"^",23)=FMSTYPE
|
---|
53 | . . S $P(LINE(COUNT),"^",24)="BD"
|
---|
54 | . . S $P(LINE(COUNT),"^",25)=$TR($P(^PRCA(430,BILLDA,0),"^"),"-")
|
---|
55 | . . S $P(LINE(COUNT),"^",26)=$$LINE^RCXFMSC1(BILLDA)
|
---|
56 | . . S $P(LINE(COUNT),"^",27)="~"
|
---|
57 | ;
|
---|
58 | ; build summary line
|
---|
59 | S FUND="" F S FUND=$O(TOTAL(FUND)) Q:FUND="" D
|
---|
60 | . S REVSRCE="" F S REVSRCE=$O(TOTAL(FUND,REVSRCE)) Q:REVSRCE="" D
|
---|
61 | . . S VENDORID="" F S VENDORID=$O(TOTAL(FUND,REVSRCE,VENDORID)) Q:VENDORID="" D
|
---|
62 | . . . S AMOUNT=TOTAL(FUND,REVSRCE,VENDORID),DOCTOTAL=DOCTOTAL+AMOUNT
|
---|
63 | . . . S COUNT=COUNT+1
|
---|
64 | . . . S LINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT
|
---|
65 | . . . S $P(LINE(COUNT),"^",4)=$S(FUND=4032:"03",1:FISCALYR)
|
---|
66 | . . . S $P(LINE(COUNT),"^",4)=$S($E(FUND,1,4)=5287:"05",1:FISCALYR)
|
---|
67 | . . . S $P(LINE(COUNT),"^",6)=FUND
|
---|
68 | . . . S $P(LINE(COUNT),"^",7)=$E(TRANNUMB,1,3) ; station #
|
---|
69 | . . . S $P(LINE(COUNT),"^",10)=REVSRCE
|
---|
70 | . . . ;I FUND=4032 S $P(LINE(COUNT),"^",13)="24GX40100"
|
---|
71 | . . . S $P(LINE(COUNT),"^",18)=VENDORID
|
---|
72 | . . . S $P(LINE(COUNT),"^",20)=$J(AMOUNT,0,2)
|
---|
73 | . . . S $P(LINE(COUNT),"^",21)="I"
|
---|
74 | . . . S $P(LINE(COUNT),"^",23)=23
|
---|
75 | . . . S $P(LINE(COUNT),"^",24)="~"
|
---|
76 | ;
|
---|
77 | ; build unapplied payment lines
|
---|
78 | S UNAPPNUM="" F S UNAPPNUM=$O(UNAPPLY(UNAPPNUM)) Q:UNAPPNUM="" D
|
---|
79 | . S AMOUNT=UNAPPLY(UNAPPNUM),DOCTOTAL=DOCTOTAL+AMOUNT
|
---|
80 | . S COUNT=COUNT+1
|
---|
81 | . S LINE(COUNT)="LIN^~CRA^"_$S($L(COUNT)=1:"00",$L(COUNT)=2:"0",1:"")_COUNT
|
---|
82 | . S $P(LINE(COUNT),"^",4)=FISCALYR
|
---|
83 | . S $P(LINE(COUNT),"^",6)=3875
|
---|
84 | . S $P(LINE(COUNT),"^",7)=$E(TRANNUMB,1,3) ; station #
|
---|
85 | . S $P(LINE(COUNT),"^",20)=$J(AMOUNT,0,2)
|
---|
86 | . S $P(LINE(COUNT),"^",21)="I"
|
---|
87 | . S $P(LINE(COUNT),"^",23)=17
|
---|
88 | . S $P(LINE(COUNT),"^",24)="~CRB"
|
---|
89 | . S $P(LINE(COUNT),"^",32)=UNAPPNUM
|
---|
90 | . S $P(LINE(COUNT),"^",33)="~"
|
---|
91 | ;
|
---|
92 | ; get data from file 344.1, the ar deposit file
|
---|
93 | S RCDEPTDA=$P(^RCY(344,RCRECTDA,0),"^",6),DEPOSIT=$G(^RCY(344.1,RCDEPTDA,0))
|
---|
94 | ;
|
---|
95 | ; build cr2, $p(deposit,^,3)=deposit date
|
---|
96 | N FMSDT S FMSDT=$$FMSDATE^RCBEUTRA(DT)
|
---|
97 | S CR2="CR2^"_$E(FMSDT,2,3)_"^"_$E(FMSDT,4,5)_"^"_$E(FMSDT,6,7)_"^^^^^^E^^^"
|
---|
98 | S CR2=CR2_$P(DEPOSIT,"^")_"^^"_$J(DOCTOTAL,0,2)_"^^"
|
---|
99 | S CR2=CR2_$E($P(DEPOSIT,"^",3),2,3)_"^"_$E($P(DEPOSIT,"^",3),4,5)_"^"_$E($P(DEPOSIT,"^",3),6,7)_"^~"
|
---|
100 | ;
|
---|
101 | ; put together document in gcs
|
---|
102 | N %DT,D,D0,DA,DI,DIC,DIE,DIQ2,DQ,DR
|
---|
103 | S DESCRIP="Receipt: "_$P(^RCY(344,RCRECTDA,0),"^")
|
---|
104 | I 'RCGECSDA D CONTROL^GECSUFMS("A",$E(TRANNUMB,1,3),TRANNUMB,"CR",10,0,"",DESCRIP)
|
---|
105 | I RCGECSDA D REBUILD^GECSUFM1(RCGECSDA,"A",10,"N","Rebuild "_DESCRIP) S GECSFMS("DA")=RCGECSDA
|
---|
106 | ;
|
---|
107 | ; store document in gcs
|
---|
108 | D SETCS^GECSSTAA(GECSFMS("DA"),CR2)
|
---|
109 | F COUNT=1:1 Q:'$D(LINE(COUNT)) D SETCS^GECSSTAA(GECSFMS("DA"),LINE(COUNT))
|
---|
110 | D SETCODE^GECSSDCT(GECSFMS("DA"),"D RETN^RCFMFN02")
|
---|
111 | D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q")
|
---|
112 | ;
|
---|
113 | ; add/update entry in file 347 for unprocessed document report
|
---|
114 | N %DT,%X,D,DA347,D0,DI,DQ,DIC,ERROR,FMSDOCNO,X
|
---|
115 | S FMSDOCNO="CR-"_$P(GECSFMS("CTL"),"^",9)
|
---|
116 | S DA347=$O(^RC(347,"C",FMSDOCNO,0))
|
---|
117 | ; if not in the file, addit fmsdocid cr id
|
---|
118 | I 'DA347 D OPEN^RCFMDRV1(FMSDOCNO,3,"RC"_$P($G(^RCY(344,RCRECTDA,0)),"^"),.DA347,.ERROR)
|
---|
119 | I DA347 D SSTAT^RCFMFN02(FMSDOCNO,1)
|
---|
120 | ;
|
---|
121 | ; return 1 for success ^ fms document transaction number
|
---|
122 | Q "1^"_FMSDOCNO
|
---|
123 | ;
|
---|
124 | ;
|
---|
125 | GETUNAPP(RCRECTDA,RCTRANDA,RCSTORE) ; get unapplied deposit number for receipt
|
---|
126 | ; if $g(rcstore) store it with transaction
|
---|
127 | N UNAPPNUM
|
---|
128 | ; if number is already assigned, use it
|
---|
129 | I $P($G(^RCY(344,RCRECTDA,1,RCTRANDA,2)),"^",5)'="" Q $P(^(2),"^",5)
|
---|
130 | ;
|
---|
131 | S UNAPPNUM=$P(^RCY(344,RCRECTDA,0),"^")
|
---|
132 | ; if the receipt number is more than 9 characters, take the last 9
|
---|
133 | I $L(UNAPPNUM)>9 S UNAPPNUM=$E(UNAPPNUM,$L(UNAPPNUM)-8,$L(UNAPPNUM))
|
---|
134 | S UNAPPNUM=UNAPPNUM_$TR($J(RCTRANDA,4)," ",0)
|
---|
135 | ;
|
---|
136 | ; store unapplied number
|
---|
137 | I $G(RCSTORE) D SETUNAPP^RCDPURET(RCRECTDA,RCTRANDA,UNAPPNUM)
|
---|
138 | ;
|
---|
139 | Q UNAPPNUM
|
---|