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

BARRSYNC.m

Go to the documentation of this file.
  1. BARRSYNC ; IHS/SD/LSL - AUTO SYNC MANAGEMENT REPORT ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**1,3**;MAR 27,2007
  1. ;
  1. ; IHS/SD/LSL - 05/29/02 - V1.6 Patch 2
  1. ; Routine created
  1. ;
  1. ; IHS/SD/LSL - 01/13/03 - V1.7
  1. ; Modified to accomodate new global structure for multiple runs
  1. ; of the Auto Sync (BARSYNC).
  1. ;
  1. ; *********************************************************************
  1. ;
  1. ; This routine will traverse the ^BARSYNC global created in BARSYNC
  1. ; that was run when A/R V1.6 Patch 2 was installed. A report will
  1. ; be generated that displays those bills that had an AUTO IN SYNC
  1. ; transaction created. The BARSYNC global looks like:
  1. ;
  1. ; ^BARSYNC(BARSTART,DUZ(2),BARVISOU,BARAC,BARDOS,BARBILL)=BARBAMT^BARTAMT
  1. ;
  1. ; Where: BARSTART = Date AUTO SYNC was run
  1. ; DUZ(2) = Billing location
  1. ; BARVIS = Visit type on A/R Bill
  1. ; BARAC = A/R Account on A/R Bill
  1. ; BARDOS = DOS Begin on A/R Bill
  1. ; BARBILL = A/R Bill
  1. ; BARBAMT = Current Bill Amount from A/R Bill File
  1. ; BARTAMT = Transaction History Balance
  1. ;
  1. ; *********************************************************************
  1. Q
  1. ; *********************************************************************
  1. ;
  1. EN ; EP
  1. K BARY,BAR
  1. I '$D(^BARSYNC) D NODATA Q ; Auto Sync did not run
  1. D:'$D(BARUSR) INIT^BARUTL ; Set up basic A/R variables
  1. S BARP("RTN")="BARRSYNC" ; Routine used to gather data
  1. S BAR("PRIVACY")=1 ; Privacy act applies (used BARRHD)
  1. S BAR("LOC")=$$GET1^DIQ(90052.06,DUZ(2),16) ; BILLING or VISIT
  1. I BAR("LOC")="" S BAR("LOC")="VISIT"
  1. D MSG^BARRSEL ; Message about BILLING/VISIT loc
  1. D LOC^BARRSL1 ; Ask location - BARY("LOC")
  1. Q:$D(DTOUT)!($D(DUOUT))
  1. W:'$D(BARY("LOC")) "ALL"
  1. D SETHDR ; Build header array
  1. S BARQ("RC")="COMPUTE^BARRSYNC" ; Gather data
  1. S BARQ("RP")="PRINT^BARRSYNC" ; Print report
  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 ; Press return to continue
  1. Q
  1. ; *********************************************************************
  1. ;
  1. NODATA ;
  1. ; Write message because Auto Sync did not run
  1. W !!?5,$$EN^BARVDF("RVN"),"WARNING:",$$EN^BARVDF("RVF")
  1. W ?18,"Auto Sync has not been executed. This report contains no data."
  1. W !?18,"Contact your site manager for further assistance."
  1. D PAZ^BARRUTL
  1. Q
  1. ; *********************************************************************
  1. ;
  1. SETHDR ;
  1. ; Build header array
  1. S BAR("LVL")=0
  1. S BAR("HD",0)="Auto Sync Management Report"
  1. S BAR("TXT")="ALL"
  1. I $D(BARY("LOC")) S BAR("TXT")=$P(^DIC(4,BARY("LOC"),0),U)
  1. I BAR("LOC")="BILLING" D
  1. . S BAR("TXT")=BAR("TXT")_" Visit location(s) under "
  1. . S BAR("TXT")=BAR("TXT")_$P(^DIC(4,DUZ(2),0),U)
  1. . S BAR("TXT")=BAR("TXT")_" Billing Location"
  1. E S BAR("TXT")=BAR("TXT")_" Visit location(s) regardless of Billing Location"
  1. S BAR("CONJ")="at "
  1. D CHK^BARRHD
  1. Q
  1. ; *********************************************************************
  1. ;
  1. COMPUTE ;
  1. N BARSTART
  1. Q:BAR("LOC")="BILLING"
  1. S BARSTART=0
  1. F S BARSTART=$O(^BARSYNC(BARSTART)) Q:'+BARSTART D
  1. . S BARBLOC=0
  1. . F S BARBLOC=$O(^BARSYNC(BARSTART,BARBLOC)) Q:'+BARBLOC D
  1. . . S BARVLOC=""
  1. . . F S BARVLOC=$O(^BARSYNC(BARSTART,BARBLOC,BARVLOC)) Q:BARVLOC="" D
  1. . . . I $D(BARY("LOC")),BARY("LOC","NM")'=BARVLOC Q
  1. . . . S BAR("VISIT",BARVLOC)=""
  1. Q
  1. ; *********************************************************************
  1. ;
  1. PRINT ;
  1. ; Print report
  1. K BARRCNT,BARR1,BARR2,BARR3
  1. S BAR("PG")=0
  1. S BARDASH="W !?43,""---------- ---------- ----------"""
  1. S BAREQUAL="W !?43,""========== ========== =========="""
  1. D HDB ; Print page and column headers
  1. I '+$O(^BARSYNC(0)) D Q
  1. . W !!!,"*** NO DATA TO PRINT ***"
  1. . D EOP^BARUTL(0)
  1. I BAR("LOC")="BILLING" D BILL
  1. E D VISIT
  1. Q:$G(BAR("F1"))
  1. I '$D(BARRCNT) D Q
  1. . W !!!,"*** NO DATA TO PRINT ***"
  1. E D
  1. . X BAREQUAL
  1. . W !,"*** REPORT TOTAL (Bill cnt:"
  1. . W ?37,$J(BARRCNT,4),")"
  1. . W ?43,$J($FN(BARR1,",",2),10)
  1. . W ?56,$J($FN(BARR2,",",2),10)
  1. . W ?69,$J($FN(BARR3,",",2),10)
  1. Q
  1. ; *********************************************************************
  1. ;
  1. HD ; EP
  1. D PAZ^BARRUTL
  1. I $D(DTOUT)!$D(DUOUT)!$D(DIROUT) S BAR("F1")=1 Q
  1. ;
  1. HDB ; EP
  1. ; Page and column header
  1. S BAR("PG")=BAR("PG")+1
  1. S BAR("I")=""
  1. D WHD^BARRHD ; Page header
  1. W !?48,"BILL",?56,"TRANSACTION"
  1. W !,"A/R BILL",?15,"DOS",?27,"A/R ACCOUNT",?46,"BALANCE",?56,"HISTORY BAL",?69,"DIFFERENCE"
  1. S $P(BAR("DASH"),"=",$S($D(BAR(132)):132,1:80))=""
  1. W !,BAR("DASH"),!
  1. Q
  1. ; *********************************************************************
  1. ;
  1. BILL ;
  1. ; Report of selected visit types for DUZ(2) logged into.
  1. I $D(BARY("LOC")) D Q
  1. . ;BEGIN NEW CODE IM23858
  1. . S BARSTART=0
  1. . F S BARSTART=$O(^BARSYNC(BARSTART)) Q:'+BARSTART!($G(BAR("F1"))) D
  1. . .S Y=BARSTART
  1. . .D DD^%DT
  1. . .W !!,$$CJ^XLFSTR("(As of Auto Sync run on "_Y_")",IOM)
  1. . .S BARVIS=BARY("LOC","NM")
  1. . .S (BARV1,BARV2,BARV3,BARVCNT)=0
  1. . .D BILL2
  1. . .;END NEW CODE
  1. . ;S BARVIS=BARY("LOC","NM")
  1. . ;K BARV1,BARV2,BARV3,BARVCNT
  1. . ;D BILL2
  1. E D
  1. . S BARSTART=0
  1. . F S BARSTART=$O(^BARSYNC(BARSTART)) Q:'+BARSTART!($G(BAR("F1"))) D
  1. . . S Y=BARSTART
  1. . . D DD^%DT
  1. . . W !!,$$CJ^XLFSTR("(As of Auto Sync run on "_Y_")",IOM)
  1. . . S BARVIS=""
  1. . . F S BARVIS=$O(^BARSYNC(BARSTART,DUZ(2),BARVIS)) Q:BARVIS=""!($G(BAR("F1"))) D
  1. . . . K BARV1,BARV2,BARV3,BARVCNT
  1. . . . D BILL2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. BILL2 ;
  1. W !!?5,"Visit Location: ",BARVIS,!
  1. S BARAC=""
  1. F S BARAC=$O(^BARSYNC(BARSTART,DUZ(2),BARVIS,BARAC)) Q:BARAC=""!$G(BAR("F1")) D
  1. . S BARDOS=0
  1. . F S BARDOS=$O(^BARSYNC(BARSTART,DUZ(2),BARVIS,BARAC,BARDOS)) Q:'+BARDOS!$G(BAR("F1")) D
  1. . . S BARBILL=0
  1. . . F S BARBILL=$O(^BARSYNC(BARSTART,DUZ(2),BARVIS,BARAC,BARDOS,BARBILL)) Q:'+BARBILL!$G(BAR("F1")) D
  1. . . . S BARBAMT=$P(^BARSYNC(BARSTART,DUZ(2),BARVIS,BARAC,BARDOS,BARBILL),U)
  1. . . . S BARTAMT=$P(^BARSYNC(BARSTART,DUZ(2),BARVIS,BARAC,BARDOS,BARBILL),U,2)
  1. . . . S BARDIFF=BARBAMT-BARTAMT
  1. . . . I $Y>(IOSL-5) D HD Q:$G(BAR("F1"))
  1. . . . W !,$E($$GET1^DIQ(90050.01,BARBILL,.01),1,12)
  1. . . . I BARDOS=99 W ?14,"NO DOS"
  1. . . . E W ?14,$$SDT^BARDUTL(BARDOS)
  1. . . . W ?26,$E(BARAC,1,15)
  1. . . . W ?43,$J($FN(BARBAMT,",",2),10)
  1. . . . W ?56,$J($FN(BARTAMT,",",2),10)
  1. . . . W ?69,$J($FN(BARDIFF,",",2),10)
  1. . . . ;
  1. . . . S BARVCNT=$G(BARVCNT)+1
  1. . . . S BARRCNT=$G(BARRCNT)+1
  1. . . . S BARV1=$G(BARV1)+BARBAMT
  1. . . . S BARV2=$G(BARV2)+BARTAMT
  1. . . . S BARV3=$G(BARV3)+BARDIFF
  1. . . . S BARR1=$G(BARR1)+BARBAMT
  1. . . . S BARR2=$G(BARR2)+BARTAMT
  1. . . . S BARR3=$G(BARR3)+BARDIFF
  1. Q:$G(BAR("F1"))
  1. X BARDASH
  1. W !," ** Visit Location Total (Bill cnt:"
  1. ;W ?37,$J(BARVCNT,4),")"
  1. ;W ?43,$J($FN(BARV1,",",2),10)
  1. ;W ?56,$J($FN(BARV2,",",2),10)
  1. ;W ?69,$J($FN(BARV3,",",2),10)
  1. ;IHS/SD/TPF BAR*1.8*3 IM25783
  1. W ?37,$J($G(BARVCNT),4),")"
  1. W ?43,$J($FN($G(BARV1),",",2),10)
  1. W ?56,$J($FN($G(BARV2),",",2),10)
  1. W ?69,$J($FN($G(BARV3),",",2),10)
  1. ;END BAR*1.8*3 IM25783
  1. Q
  1. ; *********************************************************************
  1. ;
  1. VISIT ;
  1. Q:'$D(BAR("VISIT"))
  1. S BARSTART=0
  1. F S BARSTART=$O(^BARSYNC(BARSTART)) Q:'+BARSTART!($G(BAR("F1"))) D
  1. . S Y=BARSTART
  1. . D DD^%DT
  1. . W !!,$$CJ^XLFSTR("(As of Auto Sync run on "_Y_")",IOM)
  1. . S BARVIS=""
  1. . F S BARVIS=$O(BAR("VISIT",BARVIS)) Q:BARVIS=""!($G(BAR("F1"))) D VISIT2
  1. Q
  1. ; *********************************************************************
  1. ;
  1. VISIT2 ;
  1. K BARVCNT,BARV1,BARV2,BARV3
  1. S BARHOLD=DUZ(2)
  1. S DUZ(2)=0
  1. F S DUZ(2)=$O(^BARSYNC(BARSTART,DUZ(2))) Q:'+DUZ(2)!($G(BAR("F1"))) D
  1. . Q:'$D(^BARSYNC(BARSTART,DUZ(2),BARVIS))
  1. . D BILL2
  1. S DUZ(2)=BARHOLD
  1. Q