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

BARROLL.m

Go to the documentation of this file.
  1. BARROLL ; IHS/SD/LSL - ROLLOVER AFTER POSTING - DEC 4,1996 ; [ 02/15/2006 5:57 PM ]
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**20**;OCT 26, 2005
  1. ;;
  1. ; IHS/ASDS/LSL - 06/21/2001 - V1.5 Patch 1 - NOIS NDA-0601-180067
  1. ; Allow rollback to function properly
  1. ;
  1. ; IHS/ASDS/LSL - 11/26/2001 - V1.6 Patch 1 - NOIS BXX-0501-150094
  1. ; Resolve <UNDEF>INS2+16^ABMDLCK1
  1. ;
  1. ; IHS/ASDS/LSL - 12/04/2001 - V1.6 Patch 1 - NOIS NEA-1201-180002
  1. ; Find the proper 3PB bill if 3P bill IEN matches but not bill
  1. ; name or DOS.
  1. ;
  1. ; IHS/SD/LSL - 04/04/2002 - V1.6 Patch 2 - NOIS XJG-0302-16095
  1. ; Modified to look all possible locations in 3P for bill during
  1. ; the rollback process.
  1. ;
  1. ; IHS/SD/LSL - 09/22/03 - V1.7 Patch 4 - IM11532
  1. ; Resolve UNDEF error when rollback occurs at time of posting
  1. ; when more than 50 bills have been flagged. This error should
  1. ; not ocur when rolling back from ROL.
  1. ;
  1. ; *********************************************************************
  1. Q
  1. ;
  1. EN ;EP - rollover posted bills
  1. S BARQUIT=0
  1. S BARBLDA=0
  1. F S BARBLDA=$O(BARROLL(BARBLDA)) Q:'BARBLDA D
  1. .N X S X=$$VAL^XBDIQ1(90050.01,BARBLDA,15) Q:X'=0
  1. .D SET
  1. .Q:'$G(BAR3PDA)
  1. .Q:'$G(BARRAYGO)
  1. .D BILL
  1. K BARROLL,BARBLDA,BAR3PNM,BAR3PDA,BARCNT
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SET ;set rollback status
  1. K BAR3PDA
  1. S DIE="^BARBL(DUZ(2),"
  1. S DA=BARBLDA
  1. S DR="208////P"
  1. S DIDEL=90050
  1. D ^DIE
  1. K DIDEL
  1. S BAR3PNM=$$GET1^DIQ(90050.01,BARBLDA,.01)
  1. S BAR3PNM=$P(BAR3PNM,"-")
  1. S BAR("3P BILL LOC")=$$FIND3PB^BARUTL(DUZ(2),BARBLDA)
  1. I BAR("3P BILL LOC")="" D Q
  1. . D SETBLRL
  1. . W *7," ",BAR3PNM," not found in the 3P System"
  1. . D EOP^BARUTL(0)
  1. S BAR3PDA=$$GET1^DIQ(90050.01,BARBLDA,17,"I")
  1. I $P(BAR("3P BILL LOC"),U,2)'=BAR3PDA D
  1. .S DIE="^BARBL(DUZ(2),"
  1. .S DA=BARBLDA
  1. .S DR="17////^S X=$P(BAR(""3P BILL LOC""),"","",2)"
  1. .S DR=";22////^S X=$P(BAR(""3P BILL LOC""),"","")"
  1. .S DIDEL=90050
  1. .D ^DIE
  1. .K DIDEL
  1. ;
  1. SETE ;
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ;** MENU ENTRY -------------------
  1. S BARBLDA=""
  1. S BARQUIT=0,BARCNT=0
  1. F S BARBLDA=$O(^BARBL(DUZ(2),"AF","P",BARBLDA)) Q:'BARBLDA D BILL Q:BARQUIT
  1. I $G(BARCNT)<1 W !!!!!?14,"*** There are no bills to process for rollover. ***",!!!!!
  1. K BARCNT
  1. Q
  1. ; *********************************************************************
  1. ;
  1. BILL ;
  1. ; needs BARBLDA builds tr amounts by category
  1. S BARCNT=+$G(BARCNT)+1
  1. I '(BARCNT#50) D Q:BARQUIT
  1. .W !!,BARCNT,?10,"Bills have been processed for Rollover",!
  1. .D EOP^BARUTL(0)
  1. .S:'$G(Y) BARQUIT=1
  1. K BARBL
  1. D ENP^XBDIQ1(90050.01,BARBLDA,".01;3;15;17;101;114;108;205;206;207;214","BARBL(","I")
  1. W !,"CHECKING A/R BILL ",BARBL(.01)
  1. ;
  1. I $L(BARBL(214)) D Q
  1. . W !,"This bill was already rolled over by ",BARBL(214)
  1. . D SETBLRL
  1. ;
  1. S BAR3PDA=BARBL(17)
  1. I BAR3PDA'>0 D Q
  1. . W !,BARBL(.01)," NOT 3P BILL"
  1. . D EOP^BARUTL(0)
  1. . K ^TMP($J,"BARRL",BARBLDA)
  1. . D SETBLRL
  1. ;
  1. I BARBL(15) D Q
  1. .;amt not zero rm P status
  1. .S DIE=$$DIC^XBDIQ1(90050.01)
  1. .S DA=BARBLDA
  1. .S DR="208///@"
  1. .S DIDEL=90050
  1. .D ^DIE
  1. .K DIDEL
  1. W $$EN^BARVDF("IOF"),!,"Reviewing Bill ",BARBL(.01),?70,BARBLDA
  1. K BART,BARTM,BARTOT
  1. D SETVAR
  1. D DSP Q:$G(BARQUIT)
  1. D ROLL
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SETVAR ; EP
  1. ; ** PAY = PAY - GROUPER + WRITE OFF - REFUND
  1. LOOP ;
  1. K BARTOT,BARTM
  1. S BARTRDA=""
  1. F S BARTRDA=$O(^BARTR(DUZ(2),"AC",BARBLDA,BARTRDA)) Q:BARTRDA'>0 D TOTAL^BARTR(BARTRDA)
  1. I '$D(BARBL) D ENP^XBDIQ1(90050.01,BARBLDA,".01;3;15;17;101;108;114;205;206;207;214;17.2","BARBL(","I")
  1. S BARBILL=$$GET1^DIQ(90050.01,BARBLDA,13)
  1. ;array rollback to 3P
  1. S (BARBIL,BARSUM("AMT"))=$G(BARTOT("T49"))
  1. S (BARPAY,BARSUM("PAY"))=$G(BARTOT("T40"))
  1. S (BAR3PCR,BARSUM("3P"))=$G(BARTOT("T108"))
  1. S (BARWO,BARSUM("WO"))=$G(BARTOT("A3"))
  1. S (BARNP,BARSUM("NP"))=$G(BARTOT("A4"))
  1. S (BARDED,BARSUM("DED"))=$G(BARTOT("A13"))
  1. S (BARCOP,BARSUM("COP"))=$G(BARTOT("A14"))
  1. S (BARPEN,BARSUM("PEN"))=$G(BARTOT("A15"))
  1. S (BARGRP,BARSUM("GRP"))=$G(BARTOT("A16"))
  1. S (BARRF,BARSUM("RF"))=$G(BARTOT("A19"))
  1. S (BARPCR,BARSUM("PCR"))=$G(BARTOT("A20"))
  1. ; IHS/SD/PKD 1.8*20 3/11/11 Sent to Collections "A25"
  1. S (BARSTC,BARSUM("STC"))=$G(BARTOT("A25"))
  1. ;pay calculated = payments + grouper + refunds + 3p credits + write off + credits
  1. S BARPCAL=BARPAY+BARGRP+BARRF+BAR3PCR+BARWO+BARPCR
  1. S BARSUM=BARPCAL
  1. ;
  1. ; array rollback to 3P
  1. ; IHS/SD/PKD 1.8*20 Include Sent to Collection in ADJUSTMENTS
  1. ;adjustments= Non-Pay + Deductable + Co-Pay + Penalty
  1. ;S BARADJ=BARNP+BARDED+BARCOP+BARPEN
  1. S BARADJ=BARNP+BARDED+BARCOP+BARPEN+BARSTC
  1. S BARROLL=BARBILL-BARPCAL
  1. S BARCBAL=BARBILL-BARPCAL-BARADJ
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DSP ;
  1. S BAR3PNM=$$VAL^XBDIQ1(90050.01,BARBLDA,.01)
  1. W !,"BILL",?10,$J(BAR3PNM,10)
  1. W ?25,">PAYMENTS<",?50,">ADJUSTMENTS<"
  1. W !,"BILLED",?10,$J(BARBILL,10,2)
  1. W ?25,"3-P CRD",?35,$J(BAR3PCR,10,2),?50,"NON-PAY",?60,$J(BARNP,10,2)
  1. W !,"PAY TOT",?10,$J(BARPCAL,10,2)
  1. W ?25,"PAYMENTS",?35,$J(BARPAY,10,2),?50,"DED",?60,$J(BARDED,10,2)
  1. W !,"ADJ TOT",?10,$J(BARADJ,10,2)
  1. W ?25,"PAY CRD",?35,$J(BARPCR,10,2)
  1. W ?50,"CO-PAY",?60,$J(BARCOP,10,2)
  1. W !,?25,"WR OFFS",?35,$J(BARWO,10,2),?50,"PENALTY",?60,$J(BARPEN,10,2)
  1. ;IHS/SD/PKD 1.8*20 Print STC in ADJ column, move TOTAL ADJ down 1 line
  1. ;W !,?25,"GROUPER",?35,$J(BARGRP,10,2),?50,"TOTAL ADJ*",?60,$J(BARADJ,10,2)
  1. ;W !,?25,"REFUND",?35,$J(BARRF,10,2)
  1. W !,?25,"GROUPER",?35,$J(BARGRP,10,2),?50,"STC",?60,$J(BARSTC,10,2)
  1. W !,?25,"REFUND",?35,$J(BARRF,10,2),?50,"TOTAL ADJ*",?60,$J(BARADJ,10,2)
  1. ;END 1.8*20
  1. W !,"ROLLOVER",?10,$J(BARROLL,10,2)
  1. W ?25,"TOTAL PAY*",?35,$J(BARPCAL,10,2),!
  1. W !,"Pat:",?10,BARBL(101),?40,"Visit Type.: "_$G(BARBL(114))
  1. W !,?40,"Bill Status: "_$G(BARBL(17.2))
  1. W !!,?2,"Original bill approved with the following:"
  1. W !!,?5,"P: ",BARBL(205),!,?5,"S: ",BARBL(206),!,?5,"T: ",BARBL(207)
  1. I $L(BARBL(214)) W !!,"This bill was already rolled over by ",BARBL(214)
  1. I $G(BARRAYGO) D EOP^BARUTL(1)
  1. W !!
  1. ;
  1. DSPE ;
  1. Q
  1. ; *********************************************************************
  1. ;
  1. ROLL ;** ROLL
  1. K DIE,DA,DR
  1. S BAR3PNM=BARBL(.01)
  1. S:(BAR3PNM["-") BAR3PNM=$P(BAR3PNM,"-")
  1. S Y=+BAR3PDA
  1. S DIC=$$DIC^XBDIQ1(9002274.4)
  1. S DUZO2=DUZ(2)
  1. S DUZ(2)=$P($G(^BARBL(DUZO2,BARBLDA,0)),U,22)
  1. S:DUZ(2)="" DUZ(2)=$P($G(^BARBL(DUZO2,BARBLDA,1)),U,8)
  1. S Y=Y_"^"_DUZ(2)
  1. S BARGBL=DIC_+Y_")"
  1. I '$D(@BARGBL) S DUZ(2)=$P($G(^BARBL(DUZO2,BARBLDA,0)),U,8) ; Parent
  1. I $D(@BARGBL) D
  1. . S BARTMP1=$P($G(^ABMDBILL(DUZ(2),+Y,0)),U) ; 3P bill
  1. . S BARTMP2=$P($G(^ABMDBILL(DUZ(2),+Y,7)),U) ; 3P Service date from
  1. . S BARDOS=$P($G(^BARBL(DUZO2,BARBLDA,1)),U,2) ; A/R bill DOS Begin
  1. . I BARTMP1'=BAR3PNM!(BARTMP2'=BARDOS) D
  1. . . S DUZ(2)=$P($G(^BARBL(DUZO2,BARBLDA,1)),U,8) ; Use parent
  1. I $D(@BARGBL) D EN^XBNEW("START^ABMAROLL(Y,.BARSUM,BAR3PNM)","Y,BARPCAL,BAR3PNM,BARSUM")
  1. ; array rollback to 3P
  1. S DUZ(2)=DUZO2
  1. D SETBLRL
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SETBLRL ; EP **set bill as rolled
  1. K DIC,DR,DA
  1. S DIE=$$DIC^XBDIQ1(90050.01)
  1. S DA=BARBLDA
  1. S DR="208////R;210///NOW;214////^S X=DUZ;209///^S X=+$G(BARROLL)"
  1. S DIDEL=90050
  1. D ^DIE
  1. K DIDEL
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SUM(BARBLDA) ;EP display bill summary
  1. D SETVAR,DSP
  1. Q