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

FBNHEDPA.m

Go to the documentation of this file.
  1. FBNHEDPA ;AISC/GRR - EDIT PAYMENT FOR COMMUNITY NURSING HOME ;10/7/14 17:55
  1. ;;3.5;FEE BASIS;**61,124,132,154**;JAN 30, 1995;Build 12
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. EDIT ;ENTRY POINT TO EDIT PAYMENT
  1. S IOP=$S($D(ION):ION,1:"HOME") D ^%ZIS K IOP
  1. BT S DIC="^FBAA(161.7,",DIC(0)="AEQMZ",DIC("S")="I $P(^(0),U,3)=""B9""",DIC("S")=$S($D(^XUSEC("FBAA LEVEL 2",DUZ)):DIC("S"),1:DIC("S")_"&($P(^(0),U,5)=DUZ)") D ^DIC
  1. G END:X=""!(X="^"),BT:Y<0 S FBN=+Y,FBN(0)=Y(0)
  1. S FBSTAT=^FBAA(161.7,FBN,"ST")
  1. I FBSTAT="C"&('$D(^XUSEC("FBAA LEVEL 2",DUZ))) W !!,*7,?3,"You must Reopen the batch prior to editing the invoice.",! G END
  1. I FBSTAT="S"!(FBSTAT="P")!(FBSTAT="R")&('$D(^XUSEC("FBAA LEVEL 2",DUZ))) W !!,*7,?3,"You must be a holder of the 'FBAA LEVEL 2' security key",!,?3,"to edit this invoice.",! G END
  1. I FBSTAT="T"!(FBSTAT="F")!(FBSTAT="V") W !!,?3,"Batch has already been sent to Austin for payment.",! G END
  1. INV W ! S DIC("A")="Select Invoice Number: ",DIC="^FBAAI(",DIC(0)="AEQMZ",DIC("S")="I $P(^(0),U,17)=FBN" D ^DIC K DIC G BT:X=""!(X="^"),INV:Y<0 S FBI=+Y,FBOLD(0)=Y(0)
  1. S FBLISTC="",FBHDI=FBI W @IOF D START^FBCHDI S FBI=FBHDI K FBHDI
  1. ;
  1. ; enforce separation of duties
  1. S DFN=$P(FBOLD(0),U,4)
  1. S FB7078I=$P(FBOLD(0),U,5)
  1. S FTP=$S(FB7078I]"":$O(^FBAAA("AG",FB7078I,DFN,0)),1:"")
  1. I '$$UOKPAY^FBUTL9(DFN,FTP) D G INV
  1. . W !!,"You cannot process a payment associated with authorization ",DFN,"-",FTP
  1. . W !,"due to separation of duties."
  1. ;
  1. K FBHAP,FBAP
  1. S (DIE,DIC)="^FBAAI(",DIC(0)="AEQM",DA=FBI,DR="[FBNH EDIT PAYMENT]",DIE("NO^")=""
  1. W !
  1. N FBHAC
  1. ; get values of FPPS Claim ID and Line Item
  1. S FBFPPSC=$P($G(^FBAAI(FBI,3)),U)
  1. S FBFPPSL=$P($G(^FBAAI(FBI,3)),U,2)
  1. ; load current adjustment data
  1. D LOADADJ^FBCHFA(FBI_",",.FBADJ)
  1. ; save adjustment data prior to edit session in sorted list
  1. S FBADJL(0)=$$ADJL^FBUTL2(.FBADJ) ; sorted list of original adjustments
  1. ; load current remittance remark data
  1. D LOADRR^FBCHFR(FBI_",",.FBRRMK)
  1. ; save remittance remarks prior to edit session in sorted list
  1. S FBRRMKL(0)=$$RRL^FBUTL4(.FBRRMK)
  1. D ^DIE K DIE("NO^")
  1. I $D(DTOUT) S DR="5///^S X="_$P(FBOLD(0),U,6)_";6///^S X="_$P(FBOLD(0),U,7) D ^DIE
  1. ; if adjustment data changed then file
  1. I $$ADJL^FBUTL2(.FBADJ)'=FBADJL(0) D FILEADJ^FBCHFA(FBI_",",.FBADJ)
  1. ; if remit remark data changed then file
  1. I $$RRL^FBUTL4(.FBRRMK)'=FBRRMKL(0) D FILERR^FBCHFR(FBI_",",.FBRRMK)
  1. I $D(FBHAP),$D(FBAP),FBAP-FBHAP S FBDIF=FBAP-FBHAP,$P(^FBAA(161.7,FBN,0),"^",9)=$P(^FBAA(161.7,FBN,0),"^",9)+FBDIF
  1. END K DA,DFN,DIC,DIE,DR,FBAAOUT,FBDX,FBI,FBIN,FBLISTC,FBN,FBPROC,FBSTAT,FBVEN,FBVID,J,K,L,POP,Q,VA,VADM,X,Y,FBAC,FBAP,FBBAL,FBHAP,FBDIF
  1. K FBADJ,FBADJL,FBRRMK,FBRRMKL,FBFPPSC,FBFPPSL,FB7078I,FTP
  1. D KILL^FBPAY K FBOLD,FBINODE,FBPAT,FBPRGNAM
  1. Q
  1. ;
  1. BADDATE(INVRCVDT,TEMPDA) ;Compare edited Invoice Received Date to Treatment Date, reject if before
  1. I INVRCVDT="" Q 0 ;Inv Date not changed, no check necessary
  1. N TDAT,SHODAT S TDAT=$$GET1^DIQ(162.5,TEMPDA_",",6,"I") I TDAT]"" S SHODAT="TO"
  1. I TDAT="" S TDAT=$$GET1^DIQ(162.5,TEMPDA_",",5,"I"),SHODAT="FROM"
  1. I INVRCVDT<TDAT D Q 1 ;Reject entered date
  1. .N SHOTDAT S SHOTDAT=$E(TDAT,4,5)_"/"_$E(TDAT,6,7)_"/"_$E(TDAT,2,3) ;Convert TDAT into display format for error message
  1. .N MSG1,MSG2 S MSG1="*** Invoice Received Date cannot be before",MSG2=" Treatment "_SHODAT_" Date ("_SHOTDAT_") !!!"
  1. .W !!?5,*7,MSG1,!?8,MSG2
  1. Q 0 ;Date entered is OK
  1. ;
  1. BADTDATE(TDAT,INVRCVDT,SHODAT) ;Compare edited Treatment TO or FROM Date to Invoice Received Date, reject if AFTER
  1. I INVRCVDT<TDAT D Q 1 ;Reject entered date
  1. .N SHOIRDAT S SHOIRDAT=$E(INVRCVDT,4,5)_"/"_$E(INVRCVDT,6,7)_"/"_$E(INVRCVDT,2,3) ;Convert INVRCVDT into display format for error message.
  1. .N MSG1,MSG2 S MSG1="*** Treatment "_SHODAT_" Date cannot be after",MSG2=" Invoice Received Date ("_SHOIRDAT_") !!!"
  1. .W !!?5,*7,MSG1,!?8,MSG2
  1. Q 0 ;Date entered is OK
  1. ;