Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCA399D

PRCA399D.m

Go to the documentation of this file.
PRCA399D ;MNTVBB/RGB - Restores any changes to AR files to allow re-testing ; 2/22/22
 ;;4.5;Accounts Receivable;**399**;Feb 05, 2022;Build 67
V ;;Per VA Directive 6402, this routine should not be modified.
EN(PRCADB,PRCABEG,PRCAEND,PRCATTY) ;*CALLER MUST KILL ^TMP("PRCAGT",$J)
 K ^TMP("PRCAGT",$J)    ;S (PRCABEG,PRCAEND,PRCATTY)="",PRCADB=PRCADBTR
 S PRCAAC=+$O(^PRCA(430.3,"AC",102,0)),PRCAOP=+$O(^PRCA(430.3,"AC",112,0)),PRCARVW=+$O(^PRCA(430.3,"AC",113,0))
 S:$G(PRCABEG)="" PRCABEG=0 I +$G(PRCAEND)=0 D NOW^%DTC S PRCAEND=%
 S PRCABEG=0
 S PRCATTY=$G(PRCATTY) I PRCATTY="" D F430
 D F433
Q Q PRCATTY
F430 W:PRCAW !,"F430"
 NEW PRCADAT,PRCABN
 S PRCADAT=PRCABEG F  S PRCADAT=$O(^PRCA(430,"ATD",PRCADB,PRCADAT)) Q:('PRCADAT)!(PRCADAT>PRCAEND)  S PRCABN=0 F  S PRCABN=$O(^PRCA(430,"ATD",PRCADB,PRCADAT,PRCABN)) Q:'PRCABN  D
 .Q:'$D(^XTMP("PRCA399",$J,1,1,PRCABN))!$D(^XTMP("PRCA399",$J,5,PRCADB,PRCABN,46))
 .S PRCASTS=$P(^PRCA(430,PRCABN,0),U,8) I PRCASTS=PRCAAC!(PRCASTS=PRCAOP)!(PRCASTS=PRCARVW) D
 ..I $D(^XTMP("PRCA399",$J,1,1,PRCABN)),$P(^PRCA(430,PRCABN,0),U,3) S ^TMP("PRCAGT",$J,PRCADB,PRCADAT,PRCABN,99,1)=$P(^PRCA(430,PRCABN,0),"^",3)_"^1^"_PRCABN_U_"ORIG AMT"
 Q
F433 ;
 K ^PRCAGT("PRCAGT",$J)
 N PRCAPREP,PRCAPRPY
 W:PRCAW !,"F433"
 S PRCACOMM=0,PRCAPREP=+$O(^PRCA(430.2,"AC",33,0)),PRCASKIP=0
 F PRCADAT=PRCABEG:0 S PRCADAT=$O(^PRCA(433,"ATD",PRCADB,PRCADAT)) Q:('PRCADAT)!(PRCADAT>PRCAEND)  F PRCATN=0:0 S PRCATN=$O(^PRCA(433,"ATD",PRCADB,PRCADAT,PRCATN)) Q:'PRCATN  D
CK1 .S PRCATN0=$G(^PRCA(433,PRCATN,0)) Q:PRCATN0=""  S PRCATN1=$G(^PRCA(433,PRCATN,1)),PRCADT=$P(PRCATN1,U,9)
 .Q:'$P(PRCATN1,U,2)!'$P(PRCATN1,U,5)
 .S PRCABILL=$P(PRCATN0,U,2),PRCAPRPY=0,PRCAPULL=0 Q:'PRCABILL
 .I $P(^PRCA(430,PRCABILL,0),U,8)=31 Q
 .I '$D(^XTMP("PRCA399",$J,1,1,PRCABILL)) Q
CK2 .I $D(^XTMP("PRCA399",$J,5,PRCADB,PRCABILL,46)) Q:$P(PRCATN1,U,9)<^XTMP("PRCA399",$J,5,PRCADB,PRCABILL,46)
 .I $D(^XTMP("PRCA399",$J,2,1,PRCADB,1,PRCABILL,2,PRCATN)) S $P(PRCATN1,U,5)=$P(PRCATN1,U,5)-^XTMP("PRCA399",$J,2,1,PRCADB,1,PRCABILL,2,PRCATN)
 .S PRCATYPE=$P(PRCATN1,U,2),PRCATAMT=$P(PRCATN1,U,5)
 .I ":199:47:45:8:"[(":"_PRCATYPE_":") Q
 .I PRCATYPE=14,PRCATAMT<0 S PRCATYPE=13,PRCATAMT=$TR(PRCATAMT,"-")
 .I PRCATYPE=12,PRCATAMT<0 S PRCATAMT=$TR(PRCATAMT,"-")
 .I PRCATYPE=2,$P(^XTMP("PRCA399",$J,2,1,0),U,3)=528,$P(PRCATN1,U,3)="P17011000" Q
CK3 .I '$D(^XTMP("PRCA399",$J,1,1,PRCABILL)),$P($G(^PRCA(430,PRCABILL,6)),U,21)<$P(^XTMP("PRCA399",$J,2,1,0),U),$P(PRCATN1,U,9)>$P(^XTMP("PRCA399",$J,2,1,0),U) D
 ..Q:",2,7,9,10,11,14,19,29,34,35,41,"'[(","_PRCATYPE_",")!($P(PRCATN0,U,10)=1)
 ..S $P(^XTMP("PRCA399",$J,2,8,PRCADBTR,0),U)=$P(^XTMP("PRCA399",$J,2,8,PRCADBTR,0),U)+$P(PRCATN1,U,5)
 ..S $P(^XTMP("PRCA399",$J,2,1,PRCADBTR,2,PRCABILL,0),":::")=$P(PRCATN1,U,5)
 ..S ^XTMP("PRCA399",$J,2,8,PRCADBTR,PRCABILL,2)=$P(PRCATN1,U,5),$P(^XTMP("PRCA399",$J,2,1,PRCADBTR,2,PRCABILL,0),":::",1)=$P(PRCATN1,U,5)
 .I $P($G(^XTMP("PRCA399",$J,1,1,PRCABILL,0)),U,2)=PRCAPREP S PRCAPRPY=1   ;@@@@@@@@@@@@@@
 .I $P(PRCATN0,U,10)=1,'$D(^XTMP("PRCA399",$J,1,1,PRCABILL)) S ^XTMP("PRCA399",$J,2,6,PRCABILL,PRCATN)=PRCATN0_U_PRCATYPE_U_PRCATAMT Q
 .I PRCATYPE=14,PRCATAMT<0 S PRCATYPE=13,$P(PRCATN1,U,5)=$TR(PRCATAMT,"-")
 .W:PRCAW !,PRCATN,?12,PRCATN0,?52,PRCATN1
 .I $G(PRCATTY)'="",PRCATTY'=PRCATYPE Q
 .I PRCATTY="",",3,4,5,6,7,24,25,30,90,91,92,"[(","_PRCATYPE_",") Q
 .I (PRCATYPE="")!($P(PRCATN0,U,4)'=2) Q    ;*******
 .I $G(PRCAHIST)="THIST",PRCATYPE=45 Q
F433A .S ^TMP("PRCAGT",$J,PRCADB,PRCADAT,PRCABILL,99,PRCATN)=+PRCATAMT_U_PRCATYPE_U_PRCABILL_U_PRCAPRPY_U_PRCATN
 .I PRCATAMT["-" S ^XTMP("PRCA399",$J,8,5,PRCADB,PRCABILL,PRCATN,0)=PRCATAMT_U_PRCATYPE_U_PRCABN_U_PRCAPRPY
 S PRCADAT=0 F  S PRCADAT=$O(^TMP("PRCAGT",$J,PRCADB,PRCADAT)) Q:'PRCADAT  S PRCAEND=PRCADAT
 K PRCADAT,PRCATN,PRCAPRCATN0,PRCATN1,PRCACOMM,PRCATYPE,PRCATTYP
 Q
TBAL(PRCADB,PRCATBAL) ;get balance of transactions
 N PRCAPRPY,PRCAPREP
 NEW PRCABN,PRCACH,PRCADAT,PRCAPC,PRCARF,PRCARR,PRCATAMT,PRCATXN,PRCATTY,PRCACS,PRCACSFL
 S (PRCATBAL,PRCAPC,PRCARF,PRCARR,PRCACH,PRCAZ,PRCAW,PRCATN,PRCACHH)=0
 S PRCARR=+$O(^PRCA(430.2,"AC",33,0)),(PRCATOT,PRCAHTMT,PRCATTY)=0,PRCACSFL=$D(PRCACSTC),PRCAPNEG=0
 I $D(^XTMP("PRCA399",$J,2,1,PRCADB,0)),($P(^XTMP("PRCA399",$J,2,1,PRCADB,0),U)+$P(^XTMP("PRCA399",$J,2,1,PRCADB,0),U,2)>0) D
 .F PRCAI=1,2 S PRCAPC=PRCAPC-$P(^XTMP("PRCA399",$J,2,1,PRCADB,0),U,PRCAI)
 .W:PRCAW !,"PRENEG HIT: ",^XTMP("PRCA399",$J,2,1,PRCADB,0) S PRCAPNEG=^XTMP("PRCA399",$J,2,1,PRCADB,0) R:PRCAW PRCAZ:10
 I '$D(^TMP("PRCAGT",$J,PRCADB)) G TBALQ
 F PRCADAT=0:0 S PRCADAT=$O(^TMP("PRCAGT",$J,PRCADB,PRCADAT)),PRCABN=0 Q:'PRCADAT  F  S PRCABN=$O(^TMP("PRCAGT",$J,PRCADB,PRCADAT,PRCABN)) Q:'PRCABN  D
 .S PRCACS=$D(^PRCA(430,"TCSP",PRCABN)) ; set flag for CS bills
 .I $D(^TMP("PRCAGT",$J,PRCADB,PRCADAT,PRCABN,0)) S PRCACH=PRCACH+^(0) S:PRCACS PRCACTCH=$G(PRCACTCH)+^(0)
 .S PRCATXN=0 F  S PRCATXN=$O(^TMP("PRCAGT",$J,PRCADB,PRCADAT,PRCABN,99,PRCATXN)) Q:'PRCATXN  D
 ..S PRCATAMT=^(PRCATXN),PRCATTY=$P(PRCATAMT,U,2),PRCAPRPY=$P(PRCATAMT,U,4) W:PRCAW !,PRCATXN,"/",$P(^PRCA(433,PRCATXN,0),U,2),?24,PRCATAMT
 ..I PRCATTY'=45 D
 ...I PRCATAMT["-" S PRCANFLG=1,^XTMP("PRCA399",$J,2,1,PRCADB,3,PRCABN,PRCATXN)=+PRCATAMT
 ...I PRCATTY=12!(PRCATTY=74) S:PRCATAMT<0 PRCAPC=PRCAPC+PRCATAMT D CHK S:PRCATAMT'<0 PRCACH=PRCACH+PRCATAMT S:PRCATAMT<0&PRCACS PRCACST=$G(PRCACST)+PRCATAMT S:PRCATAMT'<0 PRCACST=$G(PRCACST)+PRCATAMT D W
 ...;  interest and admin charges may be negative
 ...;  this was added in patch 165
 ...I PRCAPRPY,":1:41:35:"[(":"_PRCATTY_":") S:PRCATTY=1 PRCAPC=PRCAPC-PRCATAMT S:(PRCATTY=41!(PRCATTY=35)) PRCARF=PRCARF+PRCATAMT D CHK Q
 ...I ",2,7,9,10,11,14,19,29,34,35,47,"[(","_PRCATTY_",") S PRCAPC=PRCAPC-PRCATAMT S:PRCACS PRCACS=$G(PRCACS)-PRCATAMT D CHK D W Q
 ...I ",1,13,43,46,73,"[(","_PRCATTY_",") S PRCACH=PRCACH+PRCATAMT S:PRCACS PRCACS=$G(PRCACS)+PRCATAMT D W D CHK
 ;
TBALQ S PRCATBAL("RF")=PRCARF,PRCATBAL("CH")=PRCACH,PRCATBAL("PC")=PRCAPC,PRCATBAL=PRCARF+PRCACH+PRCAPC
 I 'PRCACSFL K PRCACSCH,PRCACSPC
 K PRCABN,PRCACH,PRCADAT,PRCAPC,PRCARF,PRCARR,PRCATAMT,PRCATXN,PRCACS,PRCACSFL,^TMP("PRCAGU",$J),^TMP("PRCAGT",$J)
 K PRCAAC,PRCABILL,PRCACST,PRCACSTC,PRCACTCH,PRCAHIST,PRCAHTMT,PRCAOP,PRCAPNEG,PRCAQ,PRCASTS
 K PRCATN0,PRCATOT,PRCAI,PRCANFLG,PRCAZ,PRCAPULL,PRCARVW
 Q PRCATTY
CHK ;CHK TOTALS
 ;W !,PRCATAMT,?30,PRCARF_U_PRCACH_U_PRCAPC_U_(PRCARF+PRCACH+PRCAPC),?60,PRCAPBAL," / ",(PRCARF+PRCACH+PRCAPC)," / ",PRCABBAL
 ;S ^BZ2(1,PRCADB,PRCABN,PRCADAT,PRCATXN,1)=PRCARF_U_PRCACH_U_PRCAPC_U_(PRCARF+PRCACH+PRCAPC)
 Q
W W:PRCAW ?40,PRCARF,"   ",PRCACH,"    ",PRCAPC,"  [ ",PRCAPNEG," ]" Q