| 1 | RCYPAY ;WISC/LDB-Date Sorted Payment report ;18 Aug 97
 | 
|---|
| 2 | V ;;4.5;Accounts Receivable;**91**;Mar 20, 1995
 | 
|---|
| 3 |  N ADM,AMT,BILL,CAT,CNT,DAT,DATE,DATESTRT,DATEEND,DATEX,DATEY,INT,LN,NOW,OUT,PG,POP,PRIN,RECPT,SUM,TN,TN0,TN1,TN3,TOT,TYP,X,Y,Z,ZTDESC,ZTRTN,ZTSAVE,%ZIS
 | 
|---|
| 4 |  K ^TMP($J,"PAY"),^TMP($J,"CAT")
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;  select date range
 | 
|---|
| 7 |  D DATESEL("PAYMENT POSTED") I '$G(DATEEND) Q
 | 
|---|
| 8 |  S DATEEND=DATEEND+.99
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;  select summary or detail
 | 
|---|
| 11 |  S DIR(0)="S^S:SUMMARY;D:DETAILED",DIR("A")="Summary or Detailed ",DIR("B")="S",DIR("?")="Detailed will include individual bill amounts."
 | 
|---|
| 12 |  D ^DIR Q:$D(DIRUT)
 | 
|---|
| 13 |  K DIR
 | 
|---|
| 14 |  S SUM=Y
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | CAT ;select category
 | 
|---|
| 17 |  K DIC S Y=0
 | 
|---|
| 18 |  W !,"CATEGORY OF BILL: "_$S('$O(^TMP($J,"CAT",0)):"ALL// ",1:"")
 | 
|---|
| 19 |  R X:DTIME I '$T!(X="^") Q
 | 
|---|
| 20 |  I ((X="")!(X="ALL")),'$O(^TMP($J,"CAT",0)) S (CAT,X)="ALL" S ^TMP($J,"CAT",0)="ALL" G QUE
 | 
|---|
| 21 |  S DIC="^PRCA(430.2,",DIC(0)="QEMZ"
 | 
|---|
| 22 |  D ^DIC S CAT=+Y
 | 
|---|
| 23 |  I X["?" W !!,"Enter 'ALL' for all categories or category name.",! G CAT
 | 
|---|
| 24 |  I CAT'="ALL",(+CAT>0) S ^TMP($J,"CAT",+CAT)="" G CAT
 | 
|---|
| 25 |  I X="" G QUE
 | 
|---|
| 26 |  Q:X="^"
 | 
|---|
| 27 |  G:+CAT<0 CAT
 | 
|---|
| 28 |  ;  select device
 | 
|---|
| 29 | QUE W !,"This report requires 132 column display."
 | 
|---|
| 30 |  W ! S %ZIS="Q" D ^%ZIS Q:POP
 | 
|---|
| 31 |  I $D(IO("Q")) D  D ^%ZTLOAD K IO("Q"),ZTSK Q
 | 
|---|
| 32 |  .   S ZTDESC="Date Sorted Payment Report",ZTRTN="DQ^RCYPAY"
 | 
|---|
| 33 |  .   S (ZTSAVE("DATESTRT"),ZTSAVE("DATEEND"),ZTSAVE("SUM"),ZTSAVE("^TMP($J,"))="",ZTSAVE("ZTREQ")="@"
 | 
|---|
| 34 |  W !!,"<*> please wait <*>"
 | 
|---|
| 35 | DQ D PROC D:SUM="D" DPRNT D:SUM="S" SPRNT
 | 
|---|
| 36 |  D ^%ZISC K ^TMP($J,"PAY"),^TMP($J,"CAT") Q
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | PROC ;  report (queue) starts here
 | 
|---|
| 39 |  U IO
 | 
|---|
| 40 |  F TYP=2,34 S DAT=DATESTRT-.01 F  S DAT=$O(^PRCA(433,"AT",TYP,DAT)) Q:'DAT!(DAT>DATEEND)  D
 | 
|---|
| 41 |  .S TN=0 F  S TN=$O(^PRCA(433,"AT",TYP,DAT,TN)) Q:'TN  D
 | 
|---|
| 42 |  ..S TN0=$G(^PRCA(433,+TN,0))
 | 
|---|
| 43 |  ..S TN1=$G(^PRCA(433,+TN,1))
 | 
|---|
| 44 |  ..S TN3=$G(^PRCA(433,+TN,3))
 | 
|---|
| 45 |  ..S BILL=$P(TN0,"^",2) Q:'BILL  S CAT=$P($G(^PRCA(430,+BILL,0)),"^",2) Q:'CAT
 | 
|---|
| 46 |  ..I $G(^TMP($J,"CAT",0))'="ALL" Q:'$D(^TMP($J,"CAT",CAT))
 | 
|---|
| 47 |  ..S RECPT=$P(TN1,"^",3)
 | 
|---|
| 48 |  ..S DATE=$P(TN1,"^")
 | 
|---|
| 49 |  ..S AMT=$P(TN1,"^",5),PRIN=+TN3,INT=$P(TN3,"^",2),ADM=$P(TN3,"^",3)
 | 
|---|
| 50 |  ..S ^TMP($J,"PAY",CAT,BILL,TN)=DATE_"/"_DAT_"^"_RECPT_"^"_AMT_"^"_PRIN_"^"_INT_"^"_ADM
 | 
|---|
| 51 | TOT S CAT=0 F  S CAT=$O(^TMP($J,"PAY",CAT)) Q:'CAT  D
 | 
|---|
| 52 |  .S ^TMP($J,"PAY",CAT,"TOT")=0
 | 
|---|
| 53 |  .S BILL=0 F  S BILL=$O(^TMP($J,"PAY",CAT,BILL)) Q:'BILL  D
 | 
|---|
| 54 |  ..S TN=0 F  S TN=$O(^TMP($J,"PAY",CAT,BILL,TN)) Q:'TN  D
 | 
|---|
| 55 |  ...F Z=2:1:5 S $P(^TMP($J,"PAY",CAT,"TOT"),"^",Z-1)=$P(^TMP($J,"PAY",CAT,BILL,TN),"^",Z+1)+$P(^TMP($J,"PAY",CAT,"TOT"),"^",Z-1)
 | 
|---|
| 56 |  ...F X=1:1:4 S $P(^TMP($J,"PAY","TOT"),"^",X)=$P($G(^TMP($J,"PAY",CAT,"TOT")),"^",X)+$P($G(^TMP($J,"PAY","TOT")),"^",X)
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  ;start print
 | 
|---|
| 59 |  S (OUT,PG)=0
 | 
|---|
| 60 |  S Y=DATESTRT D DD^%DT S DATEX=Y
 | 
|---|
| 61 |  S Y=DATEEND D DD^%DT S DATEY=$P(Y,"@")
 | 
|---|
| 62 |  D NOW^%DTC S Y=% D DD^%DT S NOW=Y
 | 
|---|
| 63 |  I $E(IOST,1,2)="C" W @IOF
 | 
|---|
| 64 |  D HDR D:SUM="S" HDR2 D:SUM="D" HDR1
 | 
|---|
| 65 |  Q
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 | HDR ;header
 | 
|---|
| 68 |  W:$E(IOST,1,2)="C-" @IOF
 | 
|---|
| 69 |  S PG=PG+1
 | 
|---|
| 70 |  W !,"DATE SORTED REPORT"_$S(SUM="D":" Detailed",1:" Summary")
 | 
|---|
| 71 |  W ?45,NOW,?68,"PAGE ",PG
 | 
|---|
| 72 |  W !,?20,"FOR DATES: ",DATEX," - ",DATEY
 | 
|---|
| 73 |  S LN="",$P(LN,"-",IOM)=""
 | 
|---|
| 74 |  ;W !,LN
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | HDR1 ;detailed header
 | 
|---|
| 78 |  W !,"BILL",?13,"POSTED DATE",?25,"PAYMENT DATE",?38,"RECEIPT",?54,"AMOUNT",?69,"PRIN",?83,"INT",?95,"ADM"
 | 
|---|
| 79 |  W !,LN
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 |  ;
 | 
|---|
| 82 | HDR2 ;summary header
 | 
|---|
| 83 |  W !,?26,"AMOUNT",?37,"PRIN",?46,"INT",?57,"ADM"
 | 
|---|
| 84 |  W !,LN
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | DPRNT ;print
 | 
|---|
| 88 |  S ^TMP($J,"PAY","TOT")=0
 | 
|---|
| 89 |  S (CAT,CNT,CNT(2),OUT)=0 F  S CAT=$O(^TMP($J,"PAY",CAT)) Q:'CAT!OUT  D  W !
 | 
|---|
| 90 |  .F X=1:1:4 S $P(^TMP($J,"PAY","TOT"),"^",X)=$P($G(^TMP($J,"PAY","TOT")),"^",X)+$P($G(^TMP($J,"PAY",CAT,"TOT")),"^",X)
 | 
|---|
| 91 |  .W !,"CATEGORY: ",$P($G(^PRCA(430.2,+CAT,0)),"^")
 | 
|---|
| 92 |  .S (CNT,CNT(1),BILL)=0 F  S BILL=$O(^TMP($J,"PAY",CAT,BILL)) Q:BILL=""!OUT  D
 | 
|---|
| 93 |  ..S:BILL'="TOT" CNT=CNT+1
 | 
|---|
| 94 |  ..I BILL="TOT" D
 | 
|---|
| 95 |  ...W !,"TOTAL BILLS: ",CNT,?52,$J($P(^TMP($J,"PAY",CAT,"TOT"),"^"),9,2)
 | 
|---|
| 96 |  ...W ?65,$J($P(^TMP($J,"PAY",CAT,"TOT"),"^",2),9,2),?78,$J($P(^("TOT"),"^",3),8,2),?90,$J($P(^("TOT"),"^",4),8,2)
 | 
|---|
| 97 |  ...S TOT=^TMP($J,"PAY",CAT,"TOT")
 | 
|---|
| 98 |  ...W !,"TOTAL PAYMENTS:",?52,$J(CNT(1),9),?65,$J(CNT(1),9),?77,$J(CNT(1),9),?89,$J(CNT(1),9)
 | 
|---|
| 99 |  ...W !,"SUBMEAN:"
 | 
|---|
| 100 |  ...W ?52,$S($P(TOT,"^"):$J($P(TOT,"^")/CNT(1),9,2),1:"")
 | 
|---|
| 101 |  ...W ?65,$S($P(TOT,"^",2):$J($P(TOT,"^",2)/CNT(1),9,2),1:"")
 | 
|---|
| 102 |  ...W ?77,$S($P(TOT,"^",3):$J($P(TOT,"^",3)/CNT(1),9,2),1:"")
 | 
|---|
| 103 |  ...W ?89,$S($P(TOT,"^",4):$J($P(TOT,"^",4)/CNT(1),9,2),1:"")
 | 
|---|
| 104 |  ..S TN=0 F  S TN=$O(^TMP($J,"PAY",CAT,BILL,TN)) Q:'TN!OUT  D
 | 
|---|
| 105 |  ...S CNT(1)=CNT(1)+1,CNT(2)=CNT(2)+1
 | 
|---|
| 106 |  ...S TN0=^TMP($J,"PAY",CAT,BILL,TN)
 | 
|---|
| 107 |  ...W !,$P($G(^PRCA(430,+BILL,0)),"^")
 | 
|---|
| 108 |  ...W ?13 S Y=$P($P(TN0,"^"),"/",2) X ^DD("DD") W Y
 | 
|---|
| 109 |  ...Q:OUT  S Y=$P($P(TN0,"^"),"/") X ^DD("DD") W ?26,Y
 | 
|---|
| 110 |  ...W ?38,$P(TN0,"^",2),?52,$J($P(TN0,"^",3),9,2),?65,$J($P(TN0,"^",4),9,2),?78,$J($P(TN0,"^",5),8,2),?90,$J($P(TN0,"^",6),8,2)
 | 
|---|
| 111 |  ..Q:OUT  I $Y+10>IOSL D
 | 
|---|
| 112 |  ...N DIR,DIRUT
 | 
|---|
| 113 |  ...I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR S:$D(DIRUT) OUT=1
 | 
|---|
| 114 |  ...Q:OUT  W @IOF D HDR,HDR1
 | 
|---|
| 115 |  S TOT=^TMP($J,"PAY","TOT")
 | 
|---|
| 116 |  Q:OUT  W !,"TOTAL:",?52,$J($P(TOT,"^"),9,2)
 | 
|---|
| 117 |  W ?65,$J($P(TOT,"^",2),9,2),?77,$J($P(TOT,"^",3),9,2),?89,$J($P(TOT,"^",4),9,2)
 | 
|---|
| 118 |  W !,"COUNT",?52,$J(CNT(2),9),?65,$J(CNT(2),9),?77,$J(CNT(2),9),?89,$J(CNT(2),9)
 | 
|---|
| 119 |  W !,"MEAN"
 | 
|---|
| 120 |  W ?52,$S($P(TOT,"^"):$J($P(TOT,"^")/CNT(2),9,2),1:"")
 | 
|---|
| 121 |  W ?65,$S($P(TOT,"^",2):$J($P(TOT,"^",2)/CNT(2),9,2),1:"")
 | 
|---|
| 122 |  W ?77,$S($P(TOT,"^",3):$J($P(TOT,"^",3)/CNT(2),9,2),1:"")
 | 
|---|
| 123 |  W ?89,$S($P(TOT,"^",4):$J($P(TOT,"^",4)/CNT(2),9,2),1:"")
 | 
|---|
| 124 |  W:$O(^TMP($J,"PAY",0))="" !?30,"NONE IN THIS DATE RANGE"
 | 
|---|
| 125 |  I $E(IOST,1,2)="C-" R !,"PRESS RETURN TO CONTINUE",X:DTIME
 | 
|---|
| 126 |  D ^%ZISC
 | 
|---|
| 127 |  K ^TMP($J,"PAY")
 | 
|---|
| 128 |  Q
 | 
|---|
| 129 |  ;
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  ;
 | 
|---|
| 132 | DATESEL(DESCR) ;  select starting and ending dates in days
 | 
|---|
| 133 |  ;  returns datestrt and dateend
 | 
|---|
| 134 |  N %,%DT,%H,%I,DEFAULT,X,Y
 | 
|---|
| 135 |  K DATEEND,DATESTRT
 | 
|---|
| 136 | START S Y=$E(DT,1,5)_"01" D DD^%DT S DEFAULT=Y
 | 
|---|
| 137 |  S %DT("A")="Start with "_$S(DESCR'="":DESCR_" ",1:"")_"Date: ",%DT("B")=DEFAULT,%DT="AEP",%DT(0)=-DT D ^%DT I Y<0 Q
 | 
|---|
| 138 |  I $E(Y,6,7)="00" S Y=$E(Y,1,5)_"01"
 | 
|---|
| 139 |  S DATESTRT=Y
 | 
|---|
| 140 |  S Y=DT D DD^%DT S DEFAULT=Y
 | 
|---|
| 141 |  S %DT("A")="  End with "_$S(DESCR'="":DESCR_" ",1:"")_"Date: ",%DT("B")=DEFAULT,%DT="AEP",%DT(0)=-DT D ^%DT I Y<0 Q
 | 
|---|
| 142 |  I $E(Y,6,7)="00" S Y=$E(Y,1,5)_"01"
 | 
|---|
| 143 |  I Y<DATESTRT W !,"END DATE MUST BE GREATER THAN OR EQUAL TO THE START DATE.",! G START
 | 
|---|
| 144 |  S DATEEND=Y,Y=DATESTRT D DD^%DT
 | 
|---|
| 145 |  W !?5,"***  Selected date range from ",Y," to " S Y=DATEEND D DD^%DT W Y,"  ***"
 | 
|---|
| 146 |  Q
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 |  ;
 | 
|---|
| 149 | SPRNT ;Print Summary
 | 
|---|
| 150 |  S ^TMP($J,"PAY","TOT")=0
 | 
|---|
| 151 |  S (CAT,CNT(2))=0 F  S CAT=$O(^TMP($J,"PAY",CAT)) Q:'CAT!(OUT)  D
 | 
|---|
| 152 |  .I $Y+7>IOSL D
 | 
|---|
| 153 |  ..I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR S:$D(DIRUT) OUT=1
 | 
|---|
| 154 |  ..Q:OUT  W @IOF D HDR,HDR2
 | 
|---|
| 155 |  .Q:OUT
 | 
|---|
| 156 |  .W !!,"CATEGORY: ",$P(^PRCA(430.2,+CAT,0),"^")
 | 
|---|
| 157 |  .W !,"TOTAL BILLS: "
 | 
|---|
| 158 |  .S (BILL,CNT)=0 F  S BILL=$O(^TMP($J,"PAY",CAT,BILL)) Q:'BILL  S CNT=CNT+1
 | 
|---|
| 159 |  .W CNT
 | 
|---|
| 160 |  .S (CNT(1),BILL,TN)=0 F  S BILL=$O(^TMP($J,"PAY",CAT,BILL)) Q:'BILL  D
 | 
|---|
| 161 |  ..S TN=0 F  S TN=$O(^TMP($J,"PAY",CAT,BILL,TN)) Q:'TN  S CNT(1)=CNT(1)+1,CNT(2)=CNT(2)+1
 | 
|---|
| 162 |  .S TOT=^TMP($J,"PAY",CAT,"TOT")
 | 
|---|
| 163 |  .W ?22,$J($P(TOT,"^"),9,2),?33,$J($P(TOT,"^",2),9,2),?43,$J($P(TOT,"^",3),8,2),?54,$J($P(TOT,"^",4),8,2)
 | 
|---|
| 164 |  .F X=1:1:4 S $P(^TMP($J,"PAY","TOT"),"^",X)=$P(TOT,"^",X)+$P($G(^TMP($J,"PAY","TOT")),"^",X)
 | 
|---|
| 165 |  .W !,"TOTAL PAYMENTS",?22,$J(CNT(1),9),?33,$J(CNT(1),9),?41,$J(CNT(1),9),?53,$J(CNT(1),9)
 | 
|---|
| 166 |  .W !,"SUBMEAN",?22,$S($P(TOT,"^"):$J($P(TOT,"^")/CNT(1),9,2),1:"")
 | 
|---|
| 167 |  .W ?33,$S($P(TOT,"^",2):$J($P(TOT,"^",2)/CNT(1),9,2),1:"")
 | 
|---|
| 168 |  .W ?42,$S($P(TOT,"^",3):$J($P(TOT,"^",3)/CNT(1),9,2),1:"")
 | 
|---|
| 169 |  .W ?53,$S($P(TOT,"^",4):$J($P(TOT,"^",4)/CNT(1),9,2),1:"")
 | 
|---|
| 170 |  S TOT=^TMP($J,"PAY","TOT")
 | 
|---|
| 171 |  Q:OUT  W !!,"TOTAL",?22,$J($P(TOT,"^"),9,2),?33,$J($P(TOT,"^",2),9,2)
 | 
|---|
| 172 |  W ?42,$J($P(TOT,"^",3),9,2),?53,$J($P(TOT,"^",4),9,2)
 | 
|---|
| 173 |  W !,"COUNT",?22,$J(CNT(2),9),?33,$J(CNT(2),9),?42,$J(CNT(2),9),?53,$J(CNT(2),9)
 | 
|---|
| 174 |  W !,"MEAN",?22,$S($P(TOT,"^"):$J($P(TOT,"^")/CNT(2),9,2),1:"")
 | 
|---|
| 175 |  W ?33,$S($P(TOT,"^",2):$J($P(TOT,"^",2)/CNT(2),9,2),1:"")
 | 
|---|
| 176 |  W ?42,$S($P(TOT,"^",3):$J($P(TOT,"^",3)/CNT(2),9,2),1:"")
 | 
|---|
| 177 |  W ?53,$S($P(TOT,"^",4):$J($P(TOT,"^",4)/CNT(2),9,2),1:"")
 | 
|---|
| 178 |  W:$O(^TMP($J,"PAY",0))="" !?30,"NONE IN THIS DATE RANGE"
 | 
|---|
| 179 |  I $E(IOST,1,2)="C-" R !,"PRESS RETURN TO CONTINUE",X:DTIME
 | 
|---|
| 180 |  Q
 | 
|---|