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

BARDLOG.m

Go to the documentation of this file.
  1. BARDLOG ; IHS/SD/LSL - A/R Debt Collection Log Report ;08/20/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**7**;OCT 26, 2005
  1. ;
  1. ; IHS/SD/LSL - 04/08/2004 - V1.8
  1. ; Routine created. Modified from BBMDCLOG
  1. ; MODIFIED XTMP FILE NAME TO TMP TO MEET SAC REQUIREMENTS;MRS:BAR*1.8*7 IM29892
  1. ; ********************************************************************
  1. ;
  1. EP ; EP
  1. K BARY,BAR
  1. D:'$D(BARUSR) INIT^BARUTL ; Set up basic A/R Variables
  1. S BARMENU=$S($D(XQY0):$P(XQY0,U,2),1:$P($G(^XUTL("XQ",$J,"S")),U,3))
  1. D DATES ; Ask date range
  1. I +BARSTART<1 Q ;No dates entered
  1. S BARQ("RC")="PROCESS^BARDLOG" ; Build tmp global with data
  1. S BARQ("RP")="PRINT^BARDLOG" ; Print reports from tmp global
  1. I BARMENU["Payment" S BARQ("RP")="PRINTP^BARDLOG"
  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. DATES ; EP
  1. W !!,"Enter Transmission Date Range...",!
  1. S BARSTART=$$DATE^BARDUTL(1)
  1. I BARSTART<1 Q
  1. S BAREND=$$DATE^BARDUTL(2)
  1. I BAREND<1 W ! G DATES
  1. I BAREND<BARSTART D G DATES
  1. .W *7
  1. .W !!,"The END date must not be before the START date.",!
  1. Q
  1. ; ********************************************************************
  1. ; ********************************************************************
  1. ;
  1. PROCESS ; EP
  1. K ^TMP($J,"BAR-DLOG")
  1. S X1=BARSTART
  1. S X2=-1
  1. D C^%DTC
  1. S BARDATE=X ; Find day before start
  1. ;
  1. F S BARDATE=$O(^BARDEBT("B",BARDATE)) Q:'+BARDATE!(BARDATE>BAREND) D LOOP
  1. Q
  1. ; ********************************************************************
  1. ;
  1. LOOP ;
  1. S BARIEN=0
  1. F S BARIEN=$O(^BARDEBT("B",BARDATE,BARIEN)) Q:'+BARIEN D DATA
  1. Q
  1. ; ********************************************************************
  1. ;
  1. DATA ; EP
  1. Q:'$D(^BARDEBT(BARIEN,0)) ; No data
  1. S BARAC=$$GET1^DIQ(90050.05,BARIEN,.07)
  1. S:BARAC="" BARAC="Unknown"
  1. S BARHOLD=DUZ(2)
  1. S DUZ(2)=$P($G(^BARDEBT(BARIEN,0)),U,8)
  1. I '+DUZ(2) S DUZ(2)=BARHOLD
  1. S BARBL=$$GET1^DIQ(90050.05,BARIEN,.02)
  1. S BARBLI=$$GET1^DIQ(90050.05,BARIEN,.02,"I") ;RLT
  1. S BARDOS=$$GET1^DIQ(90050.05,BARIEN,".02:DOS BEGIN","I")
  1. S:BARDOS="" BARDOS="******"
  1. S BARBAL=$$GET1^DIQ(90050.05,BARIEN,.03)
  1. S BARACT=$$GET1^DIQ(90050.05,BARIEN,.04)
  1. ;S:BARACT="STARTS" BARPAID=$$TRANS^BARDUTL(DUZ(2),BARIEN,"P") ; payments for bill
  1. S:BARACT="STARTS" BARPAID=$$TRANS^BARDUTL(DUZ(2),BARBLI,"P") ; RLT
  1. S DUZ(2)=BARHOLD
  1. S ^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN)=BARBL_U_BARDATE_U_BARBAL_U_BARACT
  1. S:BARACT="STARTS" $P(^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN),U,5)=BARPAID
  1. Q
  1. ; ********************************************************************
  1. ; ********************************************************************
  1. ;
  1. PRINT ; EP
  1. ; Print Debt Collection Log Report
  1. K BARAC,BARDOS,BARIEN,BARBL,BARDATE,BARBAL,BARACT,BARHOLD
  1. S BARPG=0
  1. D NOW^%DTC
  1. S Y=%
  1. X ^DD("DD")
  1. S BARUN=$P(Y,":",1,2)
  1. S $P(BARDASH,"-",81)=""
  1. D HEAD
  1. ;
  1. ; No data
  1. I '$D(^TMP($J,"BAR-DLOG")) D Q
  1. . W !!,$$CJ^XLFSTR("******* NO RECORDS TO PRINT *******",IOM)
  1. . D PAZ^BARRUTL
  1. ;
  1. S (BARTOT,BARCNT,BARSTOP)=0
  1. S BARAC=""
  1. F S BARAC=$O(^TMP($J,"BAR-DLOG",BARAC)) Q:BARAC="" D ACCT Q:BARSTOP
  1. Q:BARSTOP
  1. W !?50,"------------"
  1. W !?50,$J(BARTOT,10,2)," (",BARCNT,")"
  1. D PAZ^BARRUTL
  1. Q
  1. ; ********************************************************************
  1. ;
  1. ACCT ;
  1. W !?5,"A/R Account: ",BARAC
  1. S BARPTOT=0,BARPCNT=0
  1. S BARDOS=""
  1. F S BARDOS=$O(^TMP($J,"BAR-DLOG",BARAC,BARDOS)) Q:BARDOS="" D DOS Q:BARSTOP
  1. Q:BARSTOP
  1. W !?50,"------------"
  1. W !?50,$J(BARPTOT,10,2)," (",BARPCNT,")"
  1. Q
  1. ; ********************************************************************
  1. ;
  1. DOS ;
  1. S BARIEN=0
  1. F S BARIEN=$O(^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN)) Q:'+BARIEN D BILL Q:BARSTOP
  1. Q
  1. ; ********************************************************************
  1. ;
  1. BILL ;
  1. S BAREC=^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN)
  1. S BARBL=$P(BAREC,U)
  1. S BARDATE=$P(BAREC,U,2)
  1. S BARBAL=$P(BAREC,U,3)
  1. S BARACT=$P(BAREC,U,4)
  1. S BARSTOP=$$CHKLINE(BARAC)
  1. Q:BARSTOP
  1. W !,$$SDT^BARDUTL(BARDATE),?12,BARBL,?35,$$SDT^BARDUTL(BARDOS)
  1. W ?50,$J(BARBAL,10,2),?65,BARACT
  1. S BARPTOT=BARPTOT+BARBAL
  1. S BARTOT=BARTOT+BARBAL
  1. S BARCNT=BARCNT+1
  1. S BARPCNT=BARPCNT+1
  1. Q
  1. ; ********************************************************************
  1. ;
  1. CHKLINE(BARAC) ;EP
  1. ; Q 0 = CONTINUE
  1. ; Q 1 = STOP
  1. N X
  1. I ($Y+5)<IOSL Q 0
  1. W !?(IOM-15),"continued==>"
  1. I $E(IOST)="C" D I 'Y Q 1
  1. . S DIR(0)="E" W ! D ^DIR
  1. D HEAD
  1. W !?5,"A/R Account: "_BARAC
  1. Q 0
  1. ; ********************************************************************
  1. ;
  1. S BARPG=BARPG+1
  1. W $$EN^BARVDF("IOF")
  1. W !,$$CJ^XLFSTR("DEBT COLLECTION LOG",IOM)
  1. W !!,"Run Date: ",BARUN
  1. W ?IOM-15,"Page: "_BARPG
  1. W !!,"DATE SENT",?12,"AR BILL",?35,"DOS",?50,"AR BALANCE",?65,"ACTION CODE"
  1. W !,BARDASH
  1. Q
  1. ; ********************************************************************
  1. ; ********************************************************************
  1. ;
  1. PRINTP ; EP
  1. ; Print Debt Collection Payment Report
  1. K BARAC,BARDOS,BARIEN,BARBL,BARDATE,BARBAL,BARACT,BARHOLD
  1. S BARHDR="DEBT COLLECTION PAYMENT REPORT"
  1. S BARPG=0
  1. D NOW^%DTC
  1. S Y=%
  1. X ^DD("DD")
  1. S BARUN=$P(Y,":",1,2)
  1. S $P(BARDASH,"-",81)=""
  1. D HEADP
  1. ;
  1. ; No data
  1. I '$D(^TMP($J,"BAR-DLOG")) D Q
  1. . W !!,$$CJ^XLFSTR("******* NO RECORDS TO PRINT *******",IOM)
  1. . D PAZ^BARRUTL
  1. ;
  1. S (BARTOT,BARCNT,BARSTOP)=0
  1. S BARTOT2=0
  1. S BARAC=""
  1. F S BARAC=$O(^TMP($J,"BAR-DLOG",BARAC)) Q:BARAC="" D ACCTP Q:BARSTOP
  1. Q:BARSTOP
  1. W !?42,"----------",?69,"----------"
  1. W !?42,$J(BARTOT,10,2)," (",BARCNT,")",?69,$J(BARTOT2,10,2)
  1. D PAZ^BARRUTL
  1. Q
  1. ; ********************************************************************
  1. ;
  1. ACCTP ; EP
  1. W !?5,"A/R Account: ",BARAC
  1. S BARPTOT=0,BARPCNT=0,BARPTOT2=0
  1. S BARDOS=""
  1. F S BARDOS=$O(^TMP($J,"BAR-DLOG",BARAC,BARDOS)) Q:BARDOS="" D DOSP Q:BARSTOP
  1. Q:BARSTOP
  1. W !?42,"----------",?69,"----------"
  1. W !?42,$J(BARPTOT,10,2)," (",BARPCNT,")",?69,$J(BARPTOT2,10,2)
  1. Q
  1. ; ********************************************************************
  1. ;
  1. DOSP ;
  1. S BARIEN=0
  1. F S BARIEN=$O(^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN)) Q:'+BARIEN D BILLP Q:BARSTOP
  1. Q
  1. ; ********************************************************************
  1. ;
  1. BILLP ;
  1. S BAREC=^TMP($J,"BAR-DLOG",BARAC,BARDOS,BARIEN)
  1. S BARBL=$P(BAREC,U)
  1. S BARDATE=$P(BAREC,U,2)
  1. S BARBAL=$P(BAREC,U,3)
  1. S BARACT=$P(BAREC,U,4)
  1. S BARPAID=$P(BAREC,U,5)
  1. S BARSTOP=$$CHKLINEP(BARAC)
  1. Q:BARSTOP
  1. W !,$$SDT^BARDUTL(BARDATE) ; Date transmitted
  1. W ?13,$E(BARBL,1,15) ; Bill Name
  1. W ?30,$$SDT^BARDUTL(BARDOS) ; Date of Service (Begin)
  1. W ?42,$J(BARBAL,10,2) ; Bill balance from Log
  1. W ?55,BARACT ; Action code
  1. W:BARACT="STARTS" ?69,$J(BARPAID,10,2) ; All payments for bill
  1. S BARPTOT=BARPTOT+BARBAL
  1. S BARTOT=BARTOT+BARBAL
  1. S:BARACT="STARTS" BARPTOT2=BARPTOT2+BARPAID
  1. S:BARACT="STARTS" BARTOT2=BARTOT2+BARPAID
  1. S BARCNT=BARCNT+1
  1. S BARPCNT=BARPCNT+1
  1. Q
  1. ; ********************************************************************
  1. ;
  1. CHKLINEP(BARAC) ;EP
  1. ; Q 0 = CONTINUE
  1. ; Q 1 = STOP
  1. N X
  1. I ($Y+5)<IOSL Q 0
  1. W !?(IOM-15),"continued==>"
  1. I $E(IOST)="C" D I 'Y Q 1
  1. . S DIR(0)="E" W ! D ^DIR
  1. D HEADP
  1. W !?5,"A/R Account: "_BARAC
  1. Q 0
  1. ; ********************************************************************
  1. ;
  1. HEADP ;EP
  1. S BARPG=BARPG+1
  1. W $$EN^BARVDF("IOF")
  1. W !,$$CJ^XLFSTR(BARHDR,IOM)
  1. W !!,"Run Date: ",BARUN
  1. W ?IOM-15,"Page: "_BARPG
  1. W !!,"DATE SENT",?13,"AR BILL",?30,"DOS",?42,"AR BALANCE",?55,"ACTION CODE",?72,"PAYMENT"
  1. W !,BARDASH
  1. Q