1 | IBJDF63 ;ALB/RB - MISC. BILLS FOLLOW-UP REPORT (COMPILE/PRINT SUMMARY);15-APR-00
|
---|
2 | ;;2.0;INTEGRATED BILLING;**123**;21-MAR-94
|
---|
3 | ;
|
---|
4 | INIT ; - Initialize counters, if necessary.
|
---|
5 | I IBSDV,IBDIV," 6 7 10 21 "'[(" "_IBCAT_" ") Q
|
---|
6 | I IBSDV,'IBDIV," 6 7 10 21 "[(" "_IBCAT_" ") Q
|
---|
7 | F I=1:1:8 S IB(IBDIV,IBCAT,I)=0
|
---|
8 | Q
|
---|
9 | ;
|
---|
10 | EN ; - Compile entry point from IBJDF61.
|
---|
11 | ; Pre-set variables IBA, IBCAT, IBDIV required.
|
---|
12 | N I,IB0,IBAGE,IBARD,IBOUT,J
|
---|
13 | ;
|
---|
14 | ; - Add totals for summary.
|
---|
15 | S IBARD=$$ACT^IBJDF2(IBA) G:'IBARD ENQ ; No activation date.
|
---|
16 | S IBOUT=0 F I=1:1:5 S IBOUT=IBOUT+$P($G(^PRCA(430,IBA,7)),U,I)
|
---|
17 | S IBAGE=$$FMDIFF^XLFDT(DT,IBARD),IB0=$$CAT(IBAGE)
|
---|
18 | S $P(IB(IBDIV,IBCAT,IB0),U)=+IB(IBDIV,IBCAT,IB0)+1
|
---|
19 | S $P(IB(IBDIV,IBCAT,IB0),U,2)=$P(IB(IBDIV,IBCAT,IB0),U,2)+IBOUT
|
---|
20 | ENQ Q
|
---|
21 | ;
|
---|
22 | PRT ; - Print entry point from IBJDF62.
|
---|
23 | ;
|
---|
24 | ; - Extract summary data.
|
---|
25 | I $G(IBXTRACT) D EXTMO(.IB) G ENQ1
|
---|
26 | ;
|
---|
27 | S IBDIV=""
|
---|
28 | F S IBDIV=$O(IB(IBDIV)) Q:IBDIV="" D SUM(IBDIV) Q:IBQ
|
---|
29 | ;
|
---|
30 | ENQ1 Q
|
---|
31 | ;
|
---|
32 | EXTMO(IBS) ; Extract/transmit data to DM Extract Module
|
---|
33 | ; IBS - Array containing the summary information
|
---|
34 | ;
|
---|
35 | N IB,IBCT,IBI,IBJ,IBR,IBSQ,IBTP,IBZ
|
---|
36 | ;
|
---|
37 | F IBI=1,2,3 F IBJ=1:1:16 S IB(IBI,IBJ)=$S(IBJ#2:0,1:"0.00")
|
---|
38 | ;
|
---|
39 | F IBCT=6,7,10 D
|
---|
40 | . S IBTP=0
|
---|
41 | . I IBCT=7 S IBTP=1 ; Workman's Comp.
|
---|
42 | . I IBCT=10 S IBTP=2 ; NO-Fault Auto Accident
|
---|
43 | . I IBCT=6 S IBTP=3 ; Tort-Feasor
|
---|
44 | . S IBSQ=1
|
---|
45 | . F IBI=1:1:7 D
|
---|
46 | . . S IBZ=$G(IBS(0,IBCT,IBI))
|
---|
47 | . . S IB(IBTP,IBSQ)=+IBZ
|
---|
48 | . . S IB(IBTP,IBSQ+1)=$FN(+$P(IBZ,"^",2),"",2)
|
---|
49 | . . S IB(IBTP,15)=IB(IBTP,15)+IBZ
|
---|
50 | . . S IB(IBTP,16)=IB(IBTP,16)+$P(IBZ,"^",2)
|
---|
51 | . . S IBSQ=IBSQ+2
|
---|
52 | . S IB(IBTP,16)=$FN(IB(IBTP,16),"",2)
|
---|
53 | ;
|
---|
54 | F IBR=22:1:24 D E^IBJDE(IBR,0)
|
---|
55 | Q
|
---|
56 | ;
|
---|
57 | SUM(IBDIV) ; - Print summary for division.
|
---|
58 | ; Input: IBDIV=Pointer to the division in file #40.8 and pre-set
|
---|
59 | ; variable IBRPT
|
---|
60 | N IBDH,IBTYP,I,J,Z,%
|
---|
61 | ;
|
---|
62 | S IBCAT=0
|
---|
63 | F S IBCAT=$O(IB(IBDIV,IBCAT)) Q:'IBCAT D Q:IBQ
|
---|
64 | . D HDR Q:IBQ
|
---|
65 | . S IBTYP=$G(IBCTG(IBCAT(IBCAT)))_" RECEIVABLES"
|
---|
66 | . W !!?(80-$L(IBTYP))\2,IBTYP
|
---|
67 | . W !?(80-$L(IBTYP)\2),$$DASH($L(IBTYP))
|
---|
68 | . I IBDIV D
|
---|
69 | . . S IBDH="Division: "_$P($G(^DG(40.8,IBDIV,0)),U)
|
---|
70 | . . W !?(80-$L(IBDH)\2),IBDH
|
---|
71 | . ;
|
---|
72 | . W !!
|
---|
73 | . ;
|
---|
74 | . ; - Calculate totals first.
|
---|
75 | . F I=1:1:7 F J=1,2 S $P(IB(IBDIV,IBCAT,8),U,J)=$P(IB(IBDIV,IBCAT,8),U,J)+$P(IB(IBDIV,IBCAT,I),U,J)
|
---|
76 | . ;
|
---|
77 | . W "AR Category",?31,"# Receivables",?52,"Total Outstanding Balance",!
|
---|
78 | . W "-----------",?31,"-------------",?52,"-------------------------"
|
---|
79 | . I 'IB(IBDIV,IBCAT,8) W !!,"There are no active receivables",$S(IBDIV:" for this division",1:""),".",!! D PAUSE Q
|
---|
80 | . ;
|
---|
81 | . ; - Primary loop to write results.
|
---|
82 | . S Y=$P(IB(IBDIV,IBCAT,8),U,2) F I=1:1:8 S X=$P($T(CATN+I),";;",2,99) D
|
---|
83 | . . W:I=8 ! W !,X,?30,$J(+IB(IBDIV,IBCAT,I),6)
|
---|
84 | . . W " (",$J(+IB(IBDIV,IBCAT,I)/+IB(IBDIV,IBCAT,8)*100,0,$S(I=8:0,1:2)),"%)"
|
---|
85 | . . S Z=$FN($P(IB(IBDIV,IBCAT,I),U,2),",",2)
|
---|
86 | . . W ?52,$J($S(I=1!(I=9):"$",1:"")_Z,15)
|
---|
87 | . . W " (",$J($S('Y:0,1:$P(IB(IBDIV,IBCAT,I),U,2)/Y*100),0,$S(I=8:0,1:2)),"%)"
|
---|
88 | . . W:I=8 !!
|
---|
89 | . ;
|
---|
90 | . D PAUSE
|
---|
91 | ;
|
---|
92 | SUMQ Q
|
---|
93 | ;
|
---|
94 | HDR ; - Write the summary report header.
|
---|
95 | N X,PD,PDA,PDF,PDL
|
---|
96 | ;
|
---|
97 | I $E(IOST,1,2)="C-"!$G(IBPAG) W @IOF,*13
|
---|
98 | S IBPAG=$G(IBPAG)+1
|
---|
99 | W "MISCELLANEOUS BILLS FOLLOW-UP SUMMARY REPORT"
|
---|
100 | W ?71,"Page: ",$J(IBPAG,3),!,"Run Date: ",IBRUN
|
---|
101 | S X=""
|
---|
102 | I IBRPT="D" D
|
---|
103 | . I IBSMN'="A" D
|
---|
104 | . . S X=" RECEIVABLES OVER "_IBSMN_" AND LESS THAN "_IBSMX_" DAYS OLD "
|
---|
105 | . I IBCAT(IBCAT)>4 S PD="DEBTORS",PDA=IBSDA,PDF=IBSDF,PDL=IBSDL
|
---|
106 | . I IBCAT(IBCAT)<5 S PD="PATIENTS",PDA=IBSNA,PDF=IBSNF,PDL=IBSNL
|
---|
107 | . I $G(PDA)'="ALL" D
|
---|
108 | . . S X=X_"/ "_PD_" FROM '"_$S(PDF="":"FIRST",1:PDF)_"' TO '"
|
---|
109 | . . S X=X_$S(PDL="zzzzz":"LAST",1:PDL)_"' "
|
---|
110 | . I $G(IBSAM) S X=X_"/ MINIMUM BALANCE: $"_$FN(IBSAM,",",2)_" "
|
---|
111 | S $E(X,1,2)=""
|
---|
112 | I X'="" F I=1:1 W !,$E(X,1,80) S X=$E(X,81,999) I X="" Q
|
---|
113 | ;
|
---|
114 | Q
|
---|
115 | DASH(X) ; - Return a dashed line.
|
---|
116 | Q $TR($J("",X)," ","=")
|
---|
117 | ;
|
---|
118 | PAUSE ; - Page break.
|
---|
119 | I $E(IOST,1,2)'="C-" Q
|
---|
120 | N IBX,DIR,DIRUT,DUOUT,DTOUT,DIROUT,X,Y
|
---|
121 | F IBX=$Y:1:(IOSL-3) W !
|
---|
122 | S DIR(0)="E" D ^DIR S:$D(DIRUT)!($D(DUOUT)) IBQ=1
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | CAT(X) ; - Determine category to place receivable.
|
---|
126 | Q $S($G(X)<31:1,X<61:2,X<91:3,X<121:4,X<181:5,X<366:6,1:7)
|
---|
127 | ;
|
---|
128 | CATN ; - List of category names.
|
---|
129 | ;;Less than 30 days old
|
---|
130 | ;;31-60 days
|
---|
131 | ;;61-90 days
|
---|
132 | ;;91-120 days
|
---|
133 | ;;121-180 days
|
---|
134 | ;;181-365 days
|
---|
135 | ;;Over 365 days
|
---|
136 | ;;Total Misc. Receivables
|
---|