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

ACHSPAI.m

Go to the documentation of this file.
  1. ACHSPAI ; IHS/ITSC/PMF - DOCUMENT PAYMENT - INTEREST & PENALTY ; [ 10/16/2001 8:16 AM ]
  1. ;;3.1;CONTRACT HEALTH MGMT SYSTEM;;JUN 11, 2001
  1. ;
  1. EDIT ;EP - From Option. Edit Interest and Penalty Data.
  1. Q
  1. ;
  1. D SEL^ACHSPAM ;SELECT DOCUMENT AND DISPLAY DATA
  1. I $D(DUOUT)!($D(DTOUT))!'$D(ACHSDIEN) D END Q
  1. ;
  1. D PROMPT ;input to Interest fields from EOBR.
  1. I $D(DUOUT)!$D(DTOUT) D END Q
  1. ;
  1. D PROCESS ;
  1. ;
  1. D RTRN^ACHS
  1. ;
  1. D END
  1. Q
  1. ;
  1. END ; Kill vars, quit.
  1. K DR,D0,D1
  1. Q
  1. ;
  1. PROMPT ; Prompt user for input to Interest fields from EOBR.
  1. N DIC,DIE
  1. S:'$D(D0) D0=DUZ(2)
  1. S:'$D(D1) D1=ACHSDIEN
  1. I '$G(ACHSTIEN) S ACHSTIEN=$$SELTRANS^ACHSUD(ACHSDIEN)
  1. Q:$D(DUOUT)!$D(DTOUT)
  1. S DA(2)=DUZ(2),DA(1)=ACHSDIEN,DA=ACHSTIEN
  1. F ACHS=22:1:29 S ACHS(ACHS)=$$DIR^XBDIR("9002080.02,"_ACHS_"""","",$$VAL^XBDIQ1(9002080.02,.DA,ACHS)) Q:$D(DUOUT)!$D(DTOUT) S:X="@" ACHS(ACHS)="@"
  1. Q
  1. ;
  1. PROCESS ;TRY TO ENTER THE DATA
  1. I '$$DIET^ACHS("22////"_$P(ACHS(22),U)_";23////"_ACHS(23)_";24///"_ACHS(24)_";25///"_ACHS(25)_";26///"_ACHS(26)_";27///"_ACHS(27)_";28///"_ACHS(28)) D
  1. . W:'$D(ZTQUEUED) *7,"Interest data failed DIE at PROCESS^ACHSPAI"
  1. . I $D(ACHSISAO) S ACHSERRE=37,ACHSEDAT="" D ^ACHSEOBG ;INTEREST DATA FAILED DIE;W
  1. ;
  1. Q
  1. ;
  1. DISP ;EP - Display Interest info from selected doc.
  1. D ^ACHSUD
  1. Q:$D(DUOUT)!$D(DTOUT)!'$D(ACHSDIEN)
  1. S ACHSTIEN=$$SELTRANS^ACHSUD(ACHSDIEN)
  1. Q:$D(DUOUT)!$D(DTOUT)
  1. S DA(2)=DUZ(2),DA(1)=ACHSDIEN,DA=ACHSTIEN
  1. F ACHS=22:1:28 W !?5,$P(^DD(9002080.02,ACHS,0),U),$E($$REPEAT^XLFSTR(".",35),1,35-$L($P(^(0),U)))," ",$$VAL^XBDIQ1(9002080.02,.DA,ACHS)
  1. D RTRN^ACHS
  1. Q
  1. ;
  1. INT ;EP - Calculate Interest amount.
  1. N ACHSP,ACHSI,ACHSD
  1. W !,"You need to enter Pay amount, Interest rate, and # days late."
  1. S ACHSP=$$DIR^XBDIR("N^::2"," Enter Payment Amount")
  1. Q:$D(DUOUT)!$D(DTOUT)
  1. S ACHSI=$$DIR^XBDIR("N^::2","Enter Interest Rate, e.g., 5.87")
  1. Q:$D(DUOUT)!$D(DTOUT)
  1. S ACHSD=$$DIR^XBDIR("N^::2"," Enter Number of Days Late")
  1. Q:$D(DUOUT)!$D(DTOUT)
  1. W !,"The calculated Interest Amount is $",$FN(ACHSP*ACHSI*.01*ACHSD/360,",",2)
  1. W !," ( amt * rate * days / 360 )"
  1. W !," ( ",ACHSP," * ( ",ACHSI," * .01 ) * ",ACHSD," / 360 )"
  1. D RTRN^ACHS
  1. Q
  1. ;
  1. AUTO ;EP - For auto EOBR processing of Interest data.
  1. F ACHS=22:1:28 S ACHS(ACHS)=$G(ACHSEOBR("I",ACHS-14))
  1. ;
  1. ; Interest CAN
  1. S %=$O(^ACHS(2,"B",ACHS(22),0))
  1. I % S ACHS(22)=%
  1. E I ACHS(22)?7UN S ACHSERRE=38,ACHSEDAT=ACHS(22) D ^ACHSEOBG
  1. I ACHS(22)?1." " S ACHS(22)=""
  1. ;
  1. ; Interest OCC
  1. S %=$O(^ACHS(3,DUZ(2),1,"B",ACHS(23),0))
  1. I % S ACHS(23)=%
  1. E I ACHS(23)?4UN S ACHSERRE=39,ACHSEDAT=ACHS(23) D ^ACHSEOBG
  1. I ACHS(23)?1." " S ACHS(23)=""
  1. ;
  1. ; Interest Rate
  1. I ACHS(24) S %=ACHS(24),%=+$E(%,1,2)_"."_$E(%,3,5),ACHS(24)=%
  1. E S ACHS(24)=""
  1. ;
  1. ; Interest Days Eligible
  1. I ACHS(25) S ACHS(25)=+ACHS(25)
  1. E S ACHS(25)=""
  1. ;
  1. ; Interest Paid
  1. I ACHS(26) S %=ACHS(26),%=+$E(%,1,7)_"."_$E(%,8,9),ACHS(26)=%
  1. E S ACHS(26)=""
  1. ;
  1. ; Interest Additional Penalty Paid
  1. I ACHS(27) S %=ACHS(27),%=+$E(%,1,4)_"."_$E(%,5,6),ACHS(27)=%
  1. E S ACHS(27)=""
  1. ;
  1. ; Interest Total Paid This Transaction
  1. I ACHS(28) S %=ACHS(28),%=+$E(%,1,8)_"."_$E(%,9,10),ACHS(28)=%
  1. E S ACHS(28)=""
  1. ;
  1. D PROCESS
  1. Q
  1. ;