| 1 | RCRJRTRA ;WISC/RFJ-transaction report ;1 Mar 97 | 
|---|
| 2 | ;;4.5;Accounts Receivable;**68,153**;Mar 20, 1995 | 
|---|
| 3 | N DATEEND,DATESTRT,RCRJSUMM,TRANTYPE | 
|---|
| 4 | ; | 
|---|
| 5 | ;  select date range | 
|---|
| 6 | D DATESEL("AR TRANSACTIONS") I '$G(DATEEND) Q | 
|---|
| 7 | S DATEEND=DATEEND+.99 | 
|---|
| 8 | ; | 
|---|
| 9 | ;  select transaction types | 
|---|
| 10 | D TRANTYPE(DATESTRT,DATEEND) I '$O(TRANTYPE(0)) W !,"NO transaction types selected." Q | 
|---|
| 11 | ; | 
|---|
| 12 | S RCRJSUMM=$$SUMMARY I 'RCRJSUMM Q | 
|---|
| 13 | ; | 
|---|
| 14 | ;  select device | 
|---|
| 15 | W ! S %ZIS="Q" D ^%ZIS Q:POP | 
|---|
| 16 | I $D(IO("Q")) D  D ^%ZTLOAD K IO("Q"),ZTSK Q | 
|---|
| 17 | .   S ZTDESC="AR Transaction Listing Report",ZTRTN="DQ^RCRJRTRA" | 
|---|
| 18 | .   S ZTSAVE("DATE*")="",ZTSAVE("RCRJ*")="",ZTSAVE("TRANTYPE*")="",ZTSAVE("ZTREQ")="@" | 
|---|
| 19 | W !!,"<*> please wait <*>" | 
|---|
| 20 | ; | 
|---|
| 21 | DQ ;  report (queue) starts here | 
|---|
| 22 | N ADM,BILLDA,CATDA,DA,DATA0,DATE,INT,PRIN,TYPE,VALUE,X,Y | 
|---|
| 23 | K ^TMP($J,"RCRJRTRA") | 
|---|
| 24 | ; | 
|---|
| 25 | S TRANTYPE=0 F  S TRANTYPE=$O(TRANTYPE(TRANTYPE)) Q:'TRANTYPE  I $D(^PRCA(433,"AT",TRANTYPE)) D | 
|---|
| 26 | .   S DATE=DATESTRT-.01 F  S DATE=$O(^PRCA(433,"AT",TRANTYPE,DATE)) Q:'DATE!(DATE>DATEEND)  D | 
|---|
| 27 | .   .   S DA=0 F  S DA=$O(^PRCA(433,"AT",TRANTYPE,DATE,DA)) Q:'DA  D | 
|---|
| 28 | .   .   .   S DATA0=$G(^PRCA(433,DA,0)) | 
|---|
| 29 | .   .   .   ; | 
|---|
| 30 | .   .   .   S BILLDA=+$P(DATA0,"^",2) | 
|---|
| 31 | .   .   .   ;  bill not linked to a site | 
|---|
| 32 | .   .   .   I '$P($G(^PRCA(430,BILLDA,0)),"^",12) Q | 
|---|
| 33 | .   .   .   ; | 
|---|
| 34 | .   .   .   S CATDA=+$P($G(^PRCA(430,BILLDA,0)),"^",2) | 
|---|
| 35 | .   .   .   I 'CATDA Q | 
|---|
| 36 | .   .   .   ; | 
|---|
| 37 | .   .   .   S VALUE=$$TRANBAL^RCRJRCOT(DA) I VALUE="" Q | 
|---|
| 38 | .   .   .   S PRIN=$P(VALUE,"^"),INT=$P(VALUE,"^",2),ADM=$P(VALUE,"^",3)+$P(VALUE,"^",4)+$P(VALUE,"^",5) | 
|---|
| 39 | .   .   .   ; | 
|---|
| 40 | .   .   .   S TYPE=TRANTYPE | 
|---|
| 41 | .   .   .   ;  contract adjustment | 
|---|
| 42 | .   .   .   I TYPE=35,$P($G(^PRCA(433,DA,8)),"^",8) S TYPE="35C" | 
|---|
| 43 | .   .   .   ;  pre-payments | 
|---|
| 44 | .   .   .   I (TYPE=2!(TYPE=34)),$P($G(^PRCA(433,DA,5)),"^") S TYPE="34P" | 
|---|
| 45 | .   .   .   ; | 
|---|
| 46 | .   .   .   I TYPE'=12 D SETVALUE(TYPE,PRIN,INT,ADM) Q | 
|---|
| 47 | .   .   .   ; | 
|---|
| 48 | .   .   .   ;  if trans is 12, breakout charges added + and exempt - | 
|---|
| 49 | .   .   .   ;  both +, charges added | 
|---|
| 50 | .   .   .   I INT'<0,ADM'<0 D SETVALUE("12A","",INT,ADM) Q | 
|---|
| 51 | .   .   .   ;  both -, charges exempt | 
|---|
| 52 | .   .   .   I INT<0,ADM<0 D SETVALUE("12E","",-INT,-ADM) Q | 
|---|
| 53 | .   .   .   ;  one is + and the other - | 
|---|
| 54 | .   .   .   I INT<0 D:ADM SETVALUE("12A","","",ADM) D SETVALUE("12E","",-INT,"") Q | 
|---|
| 55 | .   .   .   I ADM<0 D:INT SETVALUE("12A","",INT,"") D SETVALUE("12E","","",-ADM) Q | 
|---|
| 56 | ; | 
|---|
| 57 | D PRINT^RCRJRTR1 | 
|---|
| 58 | ; | 
|---|
| 59 | D ^%ZISC | 
|---|
| 60 | K ^TMP($J,"RCRJRTRA") | 
|---|
| 61 | Q | 
|---|
| 62 | ; | 
|---|
| 63 | ; | 
|---|
| 64 | SETVALUE(TYPE,PRIN,INT,ADM) ;  store value in tmp global for printing | 
|---|
| 65 | ;  =  trans amt ^ prin amt ^ int amt ^ adm amt | 
|---|
| 66 | ;  add spaces to type for sorting in numerical order | 
|---|
| 67 | S TYPE=" "_$S($L(+TYPE)=1:" ",1:"")_TYPE | 
|---|
| 68 | S ^TMP($J,"RCRJRTRA",TYPE,CATDA,BILLDA,DA)=(PRIN+INT+ADM)_"^"_PRIN_"^"_INT_"^"_ADM | 
|---|
| 69 | Q | 
|---|
| 70 | ; | 
|---|
| 71 | ; | 
|---|
| 72 | DATESEL(DESCR) ;  select starting and ending dates in days | 
|---|
| 73 | ;  returns datestrt and dateend | 
|---|
| 74 | N %,%DT,%H,%I,DEFAULT,X,Y | 
|---|
| 75 | K DATEEND,DATESTRT | 
|---|
| 76 | START S Y=$E(DT,1,5)_"01" D DD^%DT S DEFAULT=Y | 
|---|
| 77 | S %DT("A")="Start with "_$S(DESCR'="":DESCR_" ",1:"")_"Date: ",%DT("B")=DEFAULT,%DT="AEP",%DT(0)=-DT D ^%DT I Y<0 Q | 
|---|
| 78 | I $E(Y,6,7)="00" S Y=$E(Y,1,5)_"01" | 
|---|
| 79 | S DATESTRT=Y | 
|---|
| 80 | S Y=DT D DD^%DT S DEFAULT=Y | 
|---|
| 81 | S %DT("A")="  End with "_$S(DESCR'="":DESCR_" ",1:"")_"Date: ",%DT("B")=DEFAULT,%DT="AEP",%DT(0)=-DT D ^%DT I Y<0 Q | 
|---|
| 82 | I $E(Y,6,7)="00" S Y=$E(Y,1,5)_"01" | 
|---|
| 83 | I Y<DATESTRT W !,"END DATE MUST BE GREATER THAN OR EQUAL TO THE START DATE.",! G START | 
|---|
| 84 | S DATEEND=Y,Y=DATESTRT D DD^%DT | 
|---|
| 85 | W !?5,"***  Selected date range from ",Y," to " S Y=DATEEND D DD^%DT W Y,"  ***" | 
|---|
| 86 | Q | 
|---|
| 87 | ; | 
|---|
| 88 | ; | 
|---|
| 89 | TRANTYPE(DATESTRT,DATEEND)          ;  select transaction types | 
|---|
| 90 | ;  requires datestrt and dateend for date range | 
|---|
| 91 | ;  returns TRANTYPE(#) for selected entries | 
|---|
| 92 | N %,COUNT,DATE,DIR,DIRUT,RCRJFLAG,TRANLIST,X,Y | 
|---|
| 93 | K TRANTYPE | 
|---|
| 94 | ; | 
|---|
| 95 | ;  compile a list of available transactions in date range | 
|---|
| 96 | S TRANLIST="",DATE=DATESTRT-.01 | 
|---|
| 97 | S TRANTYPE=0 F  S TRANTYPE=$O(^PRCA(433,"AT",TRANTYPE)) Q:'TRANTYPE  S %=+$O(^PRCA(433,"AT",TRANTYPE,DATE)) I %,%<DATEEND D | 
|---|
| 98 | .   I TRANTYPE=45 Q  ;do not look at comments | 
|---|
| 99 | .   S %=$P($G(^PRCA(430.3,TRANTYPE,0)),"^") | 
|---|
| 100 | .   S TRANLIST(TRANTYPE)=% | 
|---|
| 101 | .   S TRANLIST=TRANLIST_TRANTYPE_":"_$E(%,1,10)_";" | 
|---|
| 102 | I TRANLIST="" W !,"There are NO transactions within the date range." Q | 
|---|
| 103 | S TRANLIST=TRANLIST_"*:ALL transactions;-:NO transactions;" | 
|---|
| 104 | ; | 
|---|
| 105 | F  D  Q:$G(RCRJFLAG) | 
|---|
| 106 | .   D SHOWLIST | 
|---|
| 107 | .   S DIR(0)="SOA^"_TRANLIST,DIR("A")="Select TRANSACTION TYPE: " | 
|---|
| 108 | .   D ^DIR | 
|---|
| 109 | .   I $D(DIRUT) S RCRJFLAG=1 Q | 
|---|
| 110 | .   I Y="*" S %=0 F  S %=$O(TRANLIST(%)) Q:'%  S TRANTYPE(%)="" | 
|---|
| 111 | .   I Y="-" K TRANTYPE Q | 
|---|
| 112 | .   S Y=+Y | 
|---|
| 113 | .   I $D(TRANLIST(Y)) D | 
|---|
| 114 | .   .   I $D(TRANTYPE(Y)) K TRANTYPE(Y) W "  un-selected" Q | 
|---|
| 115 | .   .   S TRANTYPE(Y)="" W "  selected" | 
|---|
| 116 | Q | 
|---|
| 117 | ; | 
|---|
| 118 | ; | 
|---|
| 119 | SHOWLIST ;  show list of available/selected transaction types | 
|---|
| 120 | W !!,"The following is a list of available transactions within the date range.",!,"Asterisks (**) next to the transaction indicates it has been selected",!,"for the report." | 
|---|
| 121 | S %=0 F COUNT=1:1 S %=$O(TRANLIST(%)) Q:'%  D | 
|---|
| 122 | .   I (COUNT#2)'=0 W ! | 
|---|
| 123 | .   E  W ?40 | 
|---|
| 124 | .   W $S($D(TRANTYPE(%)):"**",1:"  ")," " | 
|---|
| 125 | .   W $S($L(%)=1:" ",1:""),%,"  ",TRANLIST(%) | 
|---|
| 126 | Q | 
|---|
| 127 | ; | 
|---|
| 128 | ; | 
|---|
| 129 | SUMMARY() ;  ask to print detailed or summary report | 
|---|
| 130 | N DIR,DIRUT,X,Y | 
|---|
| 131 | S DIR(0)="SOA^D:detailed;S:summary;",DIR("A")="Type of report to print: ",DIR("B")="summary" | 
|---|
| 132 | W ! D ^DIR | 
|---|
| 133 | I $D(DIRUT) Q 0 | 
|---|
| 134 | Q $S(Y="S":1,Y="D":2,1:0) | 
|---|