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

BARRAMR.m

Go to the documentation of this file.
  1. BARRAMR ; IHS/SD/LSL - Aging management report ;08/20/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**7,24**;OCT 26, 2005;Build 69
  1. ;
  1. ; IHS/ASDS/LSL - 08/29/00 - Routine created
  1. ; Really Age Detail and Bills Listing Reports
  1. ;
  1. ; IHS/SD/LSL - 04/19/02 - V1.6 Patch 2
  1. ; Modified to accomodate new "Location to sort report by" parameter
  1. ; MODIFIED XTMP FILE NAME TO TMP TO MEET SAC REQUIREMENTS;MRS:BAR*1.8*7 IM29892
  1. ;
  1. ;IHS/SD/POT HEAT118656 11/14/2013 fixed <undefined> error if VISIT LOC NIL / NOT DEF BAR*1.8*24
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EN ; EP
  1. K BARY,BAR
  1. S BARP("RTN")="BARRAMR"
  1. S BAR("PRIVACY")=1 ; Privacy act applies
  1. D:'$D(BARUSR) INIT^BARUTL ; Set A/R basic variable
  1. S BAR("LOC")=$$GET1^DIQ(90052.06,DUZ(2),16) ; BILLING or VISIT
  1. I BAR("LOC")="" S BAR("LOC")="VISIT"
  1. D ^BARRSEL ; Select exclusion parameters
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) Q
  1. I $D(BARY("RTYP")) S BAR("HD",0)=BARY("RTYP","NM")_" "_BARMENU
  1. E S BAR("HD",0)=BARMENU
  1. D ^BARRHD ; Report header
  1. S BARQ("RC")="COMPUTE^BARRAMR" ; Compute routine
  1. S BARQ("RP")="PRINT^BARRAMR" ; Print routine
  1. S BARQ("NS")="BAR" ; Namespace for variables
  1. S BARQ("RX")="POUT^BARRUTL" ; Clean-up routine
  1. D ^BARDBQUE ; Double queuing
  1. D PAZ^BARRUTL
  1. Q
  1. ; *********************************************************************
  1. ;
  1. COMPUTE ;
  1. ;
  1. S BAR("SUBR")="BAR-AMR"
  1. K ^TMP($J,"BAR-AMR")
  1. S BARP("RTN")="BARRAMR" ; Routine used to get data if no parameters
  1. I BAR("LOC")="BILLING" D LOOP^BARRUTL Q
  1. S BARDUZ2=DUZ(2)
  1. S DUZ(2)=0
  1. F S DUZ(2)=$O(^BARBL(DUZ(2))) Q:'DUZ(2) D LOOP^BARRUTL
  1. S DUZ(2)=BARDUZ2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. DATA ; EP
  1. ; Called by BARRUTL if no parameters
  1. S BARP("HIT")=0
  1. D BILL^BARRCHK
  1. Q:'BARP("HIT")
  1. S BAR("BAL")=$P(BAR(0),U,15) ; Current bill amt
  1. ; Quit if Age Detail report and absolute value of balance < a penny
  1. I BAR("OPT")="AGE",$FN(BAR("BAL"),"-")<.01 Q
  1. S BAR("PAT")=$$VAL^XBDIQ1(9000001,BAR("P"),.01)
  1. S BAR("SORT")=$S(BARY("SORT")="C":BAR("C"),1:BAR("V"))
  1. I BAR("I")]"" S BAR("ACCT")=$$VAL^XBDIQ1(90050.02,BAR("I"),.01)
  1. E S BAR("ACCT")="No A/R Account"
  1. ;OLD CODE S BAR("L")=$$VAL^XBDIQ1(9999999.06,BAR("L"),.01)
  1. I BAR("L")]"" S BAR("L")=$$VAL^XBDIQ1(9999999.06,BAR("L"),.01)
  1. I BAR("L")="" S BAR("L")="UNK LOC" ;BAR*1.8*24
  1. ; For detail
  1. S ^TMP($J,"BAR-AMR",BAR("L")_U_BAR("SORT")_U_BAR("ACCT")_U_BAR("PAT")_U_BAR)=""
  1. ; For summary
  1. S $P(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT")),U)=$P($G(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT"))),U)+1
  1. S $P(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT")),U,2)=$P($G(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT"))),U,2)+$P(BAR(0),U,13)
  1. S $P(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT")),U,3)=$P($G(BAR("ST",BAR("L"),BAR("SORT"),BAR("ACCT"))),U,3)+BAR("BAL")
  1. Q
  1. ; *********************************************************************
  1. ;
  1. PRINT ; EP
  1. ; Print
  1. S BAR("PG")=0
  1. I BARY("RTYP")=1 D DETAIL^BARRAMR2,FOOTER
  1. I BARY("RTYP")=2 D SUMM^BARRAMR3,FOOTER
  1. I BARY("RTYP")=3 D
  1. . D DETAIL^BARRAMR2
  1. . Q:$G(BAR("F1"))
  1. . Q:'$D(@BAR) ; No data
  1. . D PAZ^BARRUTL
  1. . D SUMM^BARRAMR3
  1. . D FOOTER
  1. Q
  1. ; *********************************************************************
  1. ;
  1. Q:$G(BAR("F1"))
  1. I $D(BAR("ST")) D
  1. . W !!!!?16,"***** R E P O R T C O M P L E T E *****"
  1. Q