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

BARDMBS.m

Go to the documentation of this file.
  1. BARDMBS ; IHS/OIT/FCJ - DEBT MANAGEMENT BILL SEARCH ; 26 May 2011 8:41 AM
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**22,23,24**;OCT 26, 2005;Build 69
  1. ;New routine 5-12-2011 for Debt Letter Management
  1. ;
  1. ;Search the A/R Bill file for overdue bills and
  1. ;and queue letters for overdue bills.
  1. ;IHS/SD/POT JULY 2013 FIXED BAREND IN DATE "AG" LOOP - BAR*1.8*.23
  1. ;IHS/SD/POT HEAT152452 2/10/2014 CHK IF PAR/SAT FILE CORECTLY SET UP - BAR*1.8*.24
  1. ST ;
  1. ;
  1. D PAR^BARDMU
  1. G:$G(BARQ) XIT ;P.OTT HEAT152452 2/10/2014 - BAR*1.8*.24
  1. D VAR
  1. I $G(BARRPT)'="C" D PARCHK
  1. G:$G(BARQ) XIT
  1. I IOST["C-",'$D(IO("S")) W !!,"Searching for overdue bills..."
  1. ;S BARPSDI-EFF DT,BARDRDT-RUN DATE
  1. ;start new code bar*1.8*22 SDR
  1. S X1=BARDRDT
  1. S X2=-(BARPCD(1)-1)
  1. D C^%DTC
  1. S BARDRDT=X
  1. K X,X1,X2
  1. ;end new code bar*1.8*22 SDR
  1. S BARDRDT=$S(BARDRDT<1:BARPSDI,1:BARDRDT) ;OR EFFECTIVE DATE OR THE LAST TIME RAN, UPDATING INS LIST WILL RESET RUN DATE
  1. ;start old code bar*1.8*22 SDR
  1. ;F S BARDADT=$O(^BARBL(DUZ(2),"AG",BARDADT)) Q:BARDADT="" D
  1. ;.Q:BARDADT'<BARDMDT
  1. ;end old code start new code bar*1.8*22 SDR
  1. F S BARDRDT=$O(^BARBL(DUZ(2),"AG",BARDRDT)) Q:BARDRDT=""!(BARDRDT\1>BARDADT) D ;- BAR*1.8*.23
  1. .Q:BARDRDT'<BARDADT
  1. .;end new code bar*1.8*22 SDR
  1. .D CHKBIL
  1. ;I IOST["C-",'$D(IO("S")) W !!,"Number of NEW overdue bills found: ",CNT ;bar*1.8*22 SDR
  1. I IOST["C-",'$D(IO("S")) W !!,"Number of NEW overdue bills found: ",BARCNT ;bar*1.8*22 SDR
  1. S DIE="^BAR(90052.06,"_BARPIEN_",",DA=DUZ(2)
  1. S DR="1807///"_DT
  1. D ^DIE
  1. XIT ;
  1. ;K BARDADT,BARDMDT,CNT,SUBCNT,DIR,DIE,DR,DA ;bar*1.8*22 SDR
  1. K BARDADT,BARDMDT,BARCNT,BARSBCNT,DIR,DIE,DR,DA ;bar*1.8*22 SDR
  1. Q
  1. ;
  1. VAR ;
  1. ;W $$EN^BARVDF("IOF") ;bar*1.8*22 SDR
  1. I IOST["C-",'$D(IO("S")) W $$EN^BARVDF("IOF") ;bar*1.8*22 SDR
  1. ;S CNT=0 ;bar*1.8*22 SDR
  1. S BARCNT=0 ;bar*1.8*22 SDR
  1. ;S SUBCNT=0 ;bar*1.8*22 SDR
  1. S BARSBCNT=0 ;bar*1.8*22 SDR
  1. K DIR
  1. ;
  1. ;CALCULATES LETTER 1 PRINT DATE
  1. S X1=DT
  1. S X2=-(BARPCD(1)-1)
  1. D C^%DTC
  1. S (BARDADT,BARDMDT)=X
  1. K X,X1,X2
  1. ;
  1. ;SET UP ARRAY FOR INS TYPE
  1. ;start old code bar*1.8*22 SDR
  1. ;S L=0
  1. ;F S L=$O(^BAR(90052.06,BARPIEN,DUZ(2),19,L)) Q:L'?1N.N D
  1. ;.S L1=$P(^BAR(90052.06,BARPIEN,DUZ(2),19,L,0),U)
  1. ;.S L2=$P($G(^BAR(90053.03,L1,0)),U,2)
  1. ;.I L2'="" S BARDINS(L2)=""
  1. ;end old code start new code
  1. S BARL=0
  1. F S BARL=$O(^BAR(90052.06,BARPIEN,DUZ(2),19,BARL)) Q:BARL'?1N.N D
  1. .S BARL1=$P(^BAR(90052.06,BARPIEN,DUZ(2),19,BARL,0),U)
  1. .S BARL2=$$GET1^DIQ(90053.03,BARL1,".01","E")
  1. .I BARL2'="" S BARDINS(BARL2)=""
  1. ;end new code
  1. Q
  1. ;
  1. PARCHK ;CHECK FOR REQUIRED PARAMETERS
  1. S BARQ=0
  1. S BARPAR1=^BAR(90052.06,BARPIEN,DUZ(2),18)
  1. ;start old code bar*1.8*22 SDR
  1. ;F L=1:1:4 I (BARPCD(L)="")!(BARPCL(L)="") S BARQ=1 D ERRMSG Q
  1. ;F L=1,13,14 I $P(BARPAR,U,L)="" S BARQ=1 D ERRMSG Q
  1. ;F L=1,3,4,5,6,8 I $P(BARPAR1,U,L)="" S BARQ=1 D ERRMSG Q
  1. ;end old code start new code
  1. F BARL=1:1:4 I (BARPCD(BARL)="")!(BARPCL(BARL)="") S BARQ=1 D ERRMSG Q
  1. F BARL=1,13,14 I $P(BARPAR,U,BARL)="" S BARQ=1 D ERRMSG Q
  1. F BARL=1,3,4,5,6,8 I $P(BARPAR1,U,BARL)="" S BARQ=1 D ERRMSG Q
  1. ;end new code
  1. Q
  1. ERRMSG ;
  1. W !?5,"All of the Required parameters are not set up. You will need to set",!,"these up to continue.",!
  1. D RTRN^BARDMU
  1. Q
  1. ;
  1. CHKBIL ;
  1. ;CHECKS FOR BILL AMOUNT > 0
  1. S BARBIEN=0
  1. ;F S BARBIEN=$O(^BARBL(DUZ(2),"AG",BARDADT,BARBIEN)) Q:BARBIEN="" D ;bar*1.8*22 SDR
  1. F S BARBIEN=$O(^BARBL(DUZ(2),"AG",BARDRDT,BARBIEN)) Q:BARBIEN="" D ;bar*1.8*22 SDR
  1. .;S SUBCNT=SUBCNT+1 ;bar*1.8*22 SDR
  1. .S BARSBCNT=BARSBCNT+1 ;bar*1.8*22 SDR
  1. .;I IOST["C-",'$D(IO("S")),SUBCNT#1000 W "." ;bar*1.8*22 SDR
  1. .I IOST["C-",'$D(IO("S")),BARSBCNT#1000 W "." ;bar*1.8*22 SDR
  1. .;CHECK IF BILL ALREADY IN BARDM
  1. .Q:$D(^BARDM(DUZ(2),"B",BARBIEN))
  1. .;CHECKS FOR BILL AMOUNT > 0
  1. .Q:$P(^BARBL(DUZ(2),BARBIEN,0),U,15)'>0
  1. .;CHECKS FOR ACCOUNT AND INSURER TYPE
  1. .; BARDAC=0 ;ACCT POINTER
  1. .S BARDAC=$P(^BARBL(DUZ(2),BARBIEN,0),U,3)
  1. .;TEST ACCOUNT FOR TSI TRANSMISSION
  1. .;I $D(^BAR(90052.06,BARPIEN,DUZ(2),13,"B",BARDAC)) S R=$O(^BAR(90052.06,BARPIEN,DUZ(2),13,"B",BARDAC,0)) Q:$P(^BAR(90052.06,BARPIEN,DUZ(2),13,R,0),U,2)=0 ;bar*1.8*22 SDR
  1. .I $D(^BAR(90052.06,BARPIEN,DUZ(2),13,"B",BARDAC)) S BARR=$O(^BAR(90052.06,BARPIEN,DUZ(2),13,"B",BARDAC,0)) Q:$P(^BAR(90052.06,BARPIEN,DUZ(2),13,BARR,0),U,2)=0 ;bar*1.8*22 SDR
  1. .Q:$P(^BARAC(DUZ(2),BARDAC,0),U,7)="N"
  1. .I $P(^BARAC(DUZ(2),BARDAC,0),U,7)="Y" D ADD Q ;TEST ACCT=YES
  1. .;TEST INSURANCE TYPE
  1. .D INSTYP^BARDMU
  1. .I BARDITY'="",$D(BARDINS(BARDITY)) D ADD Q
  1. Q
  1. ;
  1. ADD ;ADD BILL TO A/R DEBT MAN
  1. K DD,DO,DINUM
  1. S (DIE,DIC)="^BARDM("_DUZ(2)_",",DIC(0)="L",X=BARBIEN
  1. D FILE^DICN
  1. S:+Y>0 BARDIEN=+Y
  1. I +Y<0 W !,"ERROR ADDING BILL NUMBER: ",$P(^BARBL(DUZ(2),BARBIEN,0),U) Q
  1. S DR=".02///A"
  1. D ^DIE
  1. ;ADD SUB ENTRY STATUS
  1. S DA(1)=BARDIEN
  1. S DIC="^BARDM("_DUZ(2)_","_BARDIEN_",50,",DIC(0)="L",X=DT
  1. S DIC("P")=$P(^DD(90053.05,50,0),U,2)
  1. D FILE^DICN
  1. S:+Y>0 DA=+Y
  1. I +Y<0 W !,"ERROR ADDING STATUS COMMENTS ENTRY " Q
  1. S DIE=DIC
  1. S DR=".02///"_DUZ_";.03///A"
  1. D ^DIE
  1. ;ADD LETTER TO SUB-RECORD
  1. S DA(1)=BARDIEN
  1. S DIC="^BARDM("_DUZ(2)_","_BARDIEN_",100,",DIC(0)="L",X="CYCLE 1"
  1. S DIC("P")=$P(^DD(90053.05,100,0),U,2)
  1. D FILE^DICN
  1. S:+Y>0 DA=+Y
  1. I +Y<0 W !,"ERROR ADDING CYCLE ENTRY TO DEBT BILL: ",$P(^BARBL(DUZ(2),BARBIL,0),U) Q
  1. S DIE=DIC
  1. S DR=".02///"_BARPCL(1)_";.03///Q"_";.06///"_$P(^BARBL(DUZ(2),BARBIEN,0),U,15)
  1. D ^DIE
  1. ;Q WRITE ERROR MESSAGE
  1. ;S CNT=CNT+1 ;bar*1.8*22 SDR
  1. S BARCNT=BARCNT+1 ;bar*1.8*22 SDR
  1. K DIC,DIE,DR,DA
  1. Q
  1. ;