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

ACRFODOC.m

Go to the documentation of this file.
  1. ACRFODOC ;IHS/OIRM/DSD/AEF - OPEN DOCUMENT FILE INTERFACE [ 07/24/2002 3:26 PM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**3**;NOV 05, 2001
  1. ;
  1. EN(ACRDOCDA,ACR1,ACR2) ;EP
  1. ;----- MAIN ENTRY POINT
  1. ;
  1. ; CALLED BY CREATE^ACRFDHR
  1. ;
  1. ; ACRDOCDA = FMS DOCUMENT IEN
  1. ; ACR1 = STRING CONTAINING DATA:
  1. ; DOCUMENT TYPE^TRANSACTION CODE^REVERSE CODE^
  1. ; MODIFIER CODE^DOCUMENT REFERENCE CODE^CAN NUMBER^
  1. ; OBJECT CLASS CODE^AMOUNT^FED/NON FED CODE^
  1. ; PID (VENDOR IEN OR TRAVELER SSN)^DOCUMENT NUMBER
  1. ; ACR2 = STRING CONTAINING DATA:
  1. ; PAYMENT DATE^AFP BATCH^TREAS SCHED NO^AFP BATCH SEQ
  1. ;
  1. D ^XBKVAR
  1. I $P(ACR1,U,2)="050" D OBL(ACRDOCDA,ACR1)
  1. Q
  1. ;
  1. OBL(ACRDOCDA,ACR) ;EP
  1. ;----- ENTER/EDIT OBLIGATION IN OPEN DOCUMENT FILE
  1. ;
  1. ; ACR = STRING CONTAINING DATA:
  1. ; TYPE^TRNCD^REVCD^MODCD^REF^CAN^OCC^AMT^FED^PID^DOCNO
  1. ; ACRDOC0 = ZERO NODE OF FMS DOCUMENT FILE
  1. ; ACRFY = FISCAL YEAR OF FUNDS
  1. ; ACRDEPT = DEPARTMENT ACCOUNT
  1. ; ACRALW = ALLOWANCE NUMBER
  1. ; ACRAPP = APPROPRIATION NUMBER
  1. ; ACRLOC = LOCATION CODE
  1. ; ACRSSA = SUB-SUB-ACTIVITY
  1. ; ACRIMN = IMN NUMBER
  1. ;
  1. N ACRALW,ACRAPP,ACRDEPT,ACRDOC0,ACRFY,ACRIMN,ACRLOC,ACRSSA,DATA,DATA1,DATA2,DATA3
  1. D ^XBKVAR
  1. S ACRDOC0=$G(^ACRDOC(ACRDOCDA,0))
  1. S ACRDEPT=$P($G(ACRDOC0),U,6)
  1. I ACRDEPT D
  1. . S DATA=$G(^ACRLOCB(ACRDEPT,"DT"))
  1. . S ACRFY=$P(DATA,U)
  1. . Q:'ACRFY
  1. . S ACRALW=$P(DATA,U,5)
  1. . I ACRALW S ACRALW=$P($G(^AUTTALLW(ACRALW,0)),U)
  1. . S ACRLOC=$P(DATA,U,11)
  1. . I ACRLOC S ACRLOC=$P($G(^AUTTLCOD(ACRLOC,0)),U)
  1. . S ACRSSA=$P(DATA,U,8)
  1. . I ACRSSA S ACRSSA=$P($G(^AUTTSSA(ACRSSA,0)),U)
  1. . S ACRAPP=$P(DATA,U,4)
  1. . I ACRAPP D
  1. . . S DATA=$G(^AUTTPRO(ACRAPP,0))
  1. . . S ACRAPP=$P(DATA,U)
  1. . . S ACRIMN=$P(DATA,U,3)
  1. K DATA
  1. Q:'ACRFY
  1. S DATA1=U_$P(ACR,U,6)_U_$P(ACR,U,7)_U_$P(ACR,U,9)_U_$P(ACR,U)_U_$P(ACR,U,10)_U_U_DT_U_$P(ACR,U,8)
  1. S DATA2=$P(ACR,U,5)_U_U_U_U_DT_U_$P(ACR,U,2)_$P(ACR,U,3)_$P(ACR,U,4)_U_$P(ACR,U,8)_U_U_ACRFY_U_ACRALW_U_ACRAPP_U_ACRLOC_U_ACRSSA_U_DT
  1. S DATA3=DT_U_DT_U_ACRIMN
  1. D AFY(ACRFY,.Y)
  1. S ACRD0=+Y
  1. D DOC(ACRD0,DATA1,DATA2,DATA3,$P(ACR,U,11))
  1. ;
  1. Q
  1. DOC(ACRD0,DATA1,DATA2,DATA3,X) ;EP
  1. ;----- ADD/EDIT OPEN DOCUMENT FILE ENTRY
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT SUBFILE IEN
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ; DATA1-DATA3 = STRINGS CONTAINING DATA (SEE EDOC)
  1. ;
  1. N ACRD1,Y
  1. Q:X']""
  1. D LDOC(ACRD0,X,.Y)
  1. I +Y'>0 D ADOC(ACRD0,X,.Y)
  1. Q:+Y'>0
  1. S ACRD1=+Y
  1. D EDOC(ACRD0,ACRD1,DATA1,DATA2,DATA3)
  1. Q
  1. PAY(ACRD0,DATA,X) ;EP
  1. ;----- ADD/EDIT OPEN DOCUMENT PAYMENT ENTRY
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ; DATA = STRING CONTAINING DATA (SEE PDOC)
  1. ;
  1. N ACRD1,ACRD2,Y
  1. D APMT(ACRD0,.ACRD1,X,.Y)
  1. Q:Y'>0
  1. S ACRD2=+Y
  1. D EPMT(ACRD0,ACRD1,ACRD2,DATA)
  1. Q
  1. LDOC(ACRD0,X,Y) ;EP
  1. ;----- LOOKUP DOCUMENT ENTRY
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ; Y = INTERNAL DOCUMENT ENTRY IEN (-1 IF NOT FOUND) (RETURNED)
  1. ;
  1. N DIC
  1. S DIC="^AFSLODOC("_ACRD0_",1,"
  1. S DIC(0)=""
  1. D ^DIC
  1. Q
  1. ADOC(ACRD0,X,Y) ;EP
  1. ;----- ADD NEW DOCUMENT ENTRY
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ; Y = INTERNAL DOCUMENT ENTRY IEN (RETURNED)
  1. ;
  1. N DA,DD,DIC,DO
  1. S DA(1)=ACRD0
  1. S DLAYGO=9002325.3
  1. S DIC="^AFSLODOC("_DA(1)_",1,"
  1. S DIC(0)="L"
  1. S DIC("P")=$P(^DD(9002325.3,1,0),U,2)
  1. K DD,DO
  1. D FILE^DICN
  1. Q
  1. EDOC(ACRD0,ACRD1,DATA1,DATA2,DATA3) ;EP
  1. ;----- EDIT DOCUMENT DATA
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT NUMBER SUBFILE IEN
  1. ; DATA1 = STRING CONTAINING DATA:
  1. ; DOCUMENT SFX^CAN^SUB-OBJ CLASS^FED-NON FED^DOC TYPE^
  1. ; PID^PID-SUFFIX^OBLIGATION DATE^OBLIGATION AMT^CLOSED
  1. ; FLAG
  1. ; DATA2 = STRING CONTAINING DATA:
  1. ; DOCUMENT REF^DOWNLOAD ENTRY^VND-POINTER^LINKED
  1. ; DOCUMENT^DATE OF LAST TRANSACTION^LAST TRANSACTION
  1. ; CODE^LAST TRANSACTION AMOUNT^BATCH NAME^FY OF FUNDS^
  1. ; ALLOWANCE^APPROPRIATION^LOCATION^SSA^OBLIGATION POSTED^
  1. ; DATA3 = STRING CONTAINING DATA:
  1. ; OBLIG CREATE DATE^LAST ACTIVITY DATE^IMN
  1. ;
  1. N AMT,BAL,CODE,DA,DIE,DR,X
  1. S AMT=$P(DATA1,U,9)
  1. S CODE=$P(DATA2,U,6)
  1. S CODE=$E(CODE,4)
  1. I CODE=2 S AMT=(0-AMT)
  1. Q:'$D(^AFSLODOC(ACRD0,1,ACRD1))
  1. S DA(1)=ACRD0
  1. S DA=ACRD1
  1. S X=""
  1. I $P(DATA1,U)]"" S X=X_"1////"_$P(DATA1,U)
  1. I $P(DATA1,U,2)]"" S X=X_";2////"_$P(DATA1,U,2)
  1. I $P(DATA1,U,3)]"" S X=X_";3////"_$P(DATA1,U,3)
  1. I $P(DATA1,U,4)]"" S X=X_";4////"_$P(DATA1,U,4)
  1. I $P(DATA1,U,5)]"" S X=X_";5////"_$P(DATA1,U,5)
  1. I $P(DATA1,U,6)]"" S X=X_";6////"_$P(DATA1,U,6)
  1. I $P(DATA1,U,7)]"" S X=X_";7////"_$P(DATA1,U,7)
  1. I $P(DATA1,U,8)]"" S X=X_";8////"_$P(DATA1,U,8)
  1. ;I $P(DATA1,U,9)]"" S X=X_";9////"_$P(DATA1,U,9)
  1. I AMT]"",'+$P($G(^AFSLODOC(ACRD0,1,ACRD1,0)),U,10) S X=X_";9////"_AMT
  1. F Q:$E(X)'=";" S X=$E(X,2,9999)
  1. I X]"" S DR=X
  1. S X=""
  1. I $P(DATA2,U)]"" S X=X_"12////"_$P(DATA2,U)
  1. I $P(DATA2,U,2)]"" S X=X_";14////"_$P(DATA2,U,2)
  1. I $P(DATA2,U,3)]"" S X=X_";15////"_$P(DATA2,U,3)
  1. I $P(DATA2,U,4)]"" S X=X_";16////"_$P(DATA2,U,4)
  1. I $P(DATA2,U,5)]"" S X=X_";17////"_$P(DATA2,U,5)
  1. I $P(DATA2,U,6)]"" S X=X_";18////"_$P(DATA2,U,6)
  1. I $P(DATA2,U,7)]"" S X=X_";19////"_$P(DATA2,U,7)
  1. I $P(DATA2,U,8)]"" S X=X_";20////"_$P(DATA2,U,8)
  1. I $P(DATA2,U,9)]"" S X=X_";21////"_$P(DATA2,U,9)
  1. I $P(DATA2,U,10)]"" S X=X_";22////"_$P(DATA2,U,10)
  1. I $P(DATA2,U,11)]"" S X=X_";23////"_$P(DATA2,U,11)
  1. I $P(DATA2,U,12)]"" S X=X_";24////"_$P(DATA2,U,12)
  1. I $P(DATA2,U,13)]"" S X=X_";25////"_$P(DATA2,U,13)
  1. I $P(DATA2,U,14)]"" S X=X_";26////"_$P(DATA2,U,14)
  1. F Q:$E(X)'=";" S X=$E(X,2,9999)
  1. I X]"" S DR(1,9002325.31,1)=X
  1. S X=""
  1. I $P(DATA3,U)]"" S X=X_";32////"_$P(DATA3,U)
  1. I $P(DATA3,U,2)]"" S X=X_";33////"_$P(DATA3,U,2)
  1. I $P(DATA3,U,3)]"" S X=X_";36////"_$P(DATA3,U,3)
  1. F Q:$E(X)'="" S X=$E(X,2,9999)
  1. I X]"" S DR(1,9002325.31,1)=$G(DR(1,9002325.31,1))_X ;ACR*2.1*3.11
  1. K X
  1. Q:'$D(DR)
  1. S DIE="^AFSLODOC("_DA(1)_",1,"
  1. D ^DIE
  1. D BAL(ACRD0,ACRD1)
  1. Q
  1. KDOC(ACRD0,ACRD1) ;EP
  1. ;----- DELETE DOCUMENT ENTRY
  1. ;
  1. ; ACRD0 = FY IEN
  1. ; ACRD1 = DOCUMENT ENTRY IEN
  1. ;
  1. N DA,DIK,X,Y
  1. S DA=ACRD1
  1. S DA(1)=ACRD0
  1. S DIK="^AFSLODOC("_DA(1)_",1,"
  1. D ^DIK
  1. Q
  1. APMT(ACRD0,ACRD1,X,Y) ;EP
  1. ;----- ADD NEW PAYMENT ENTRY TO PMT# SUBFILE
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT ENTRY IEN (RETURNED)
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ; Y = PAYMENT NUMBER IEN (RETURNED)
  1. ;
  1. N DA,DD,DIC,DINUM,DLAYGO,DO
  1. I '$D(^AFSLODOC("DOCNO",X,ACRD0)) D Q
  1. . W !?5,"Document number ",X," is not in the Open Document file"
  1. . S Y=-1
  1. S (ACRD1,DA(1))=$$GETODOC(ACRD0,X)
  1. Q:'DA(1)
  1. S DA(2)=ACRD0
  1. Q:'$D(^AFSLODOC(DA(2),1,DA(1)))
  1. L +^AFSLODOC(DA(2),1,DA(1)):1 Q:'$T
  1. S X=$P($G(^AFSLODOC(DA(2),1,DA(1),1,0)),U,3)
  1. F S X=X+1 Q:'$D(^AFSLODOC(DA(2),1,DA(1),1,"B",X))
  1. S DINUM=X
  1. S DLAYGO=9002325.3
  1. S DIC="^AFSLODOC("_DA(2)_",1,"_DA(1)_",1,"
  1. S DIC(0)="L"
  1. S DIC("P")=$P(^DD(9002325.31,11,0),U,2)
  1. K DD,DO
  1. D FILE^DICN
  1. L -^AFSLODOC(DA(2),1,DA(1))
  1. Q
  1. EPMT(ACRD0,ACRD1,ACRD2,DATA) ;EP
  1. ;----- Edit PAYMENT DATA
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT NUMBER SUBFILE IEN
  1. ; ACRD2 = PAYMENT NUMBER SUBFILE IEN
  1. ; DATA = STRING CONTAINING DATA:
  1. ; PAYMENT DATE^PAYMENT AMOUNT^AFP BATCH^EIN/SSN^
  1. ; TREAS SCHED#^PD-FOR^PAYMENT POSTED^MODIFIER^
  1. ; AFP BATCH PMT#
  1. ;
  1. N DA,DIE,DR,X,Y
  1. Q:'$D(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2))
  1. S DA(2)=ACRD0
  1. S DA(1)=ACRD1
  1. S DA=ACRD2
  1. S X=""
  1. I $P(DATA,U)]"" S X=X_"1////"_$P(DATA,U)
  1. I $P(DATA,U,2)]"" S X=X_";2////"_$P(DATA,U,2)
  1. I $P(DATA,U,3)]"" S X=X_";.05////"_$P(DATA,U,3)
  1. I $P(DATA,U,4)]"" S X=X_";3////"_$P(DATA,U,4)
  1. I $P(DATA,U,5)]"" S X=X_";4////"_$P(DATA,U,5)
  1. I $P(DATA,U,6)]"" S X=X_";5////"_$P(DATA,U,6)
  1. I $P(DATA,U,7)]"" S X=X_";6////"_$P(DATA,U,7)
  1. I $P(DATA,U,8)]"" S X=X_";7////"_$P(DATA,U,8)
  1. I $P(DATA,U,9)]"" S X=X_";8////"_$P(DATA,U,9)
  1. I $E(X)=";" S X=$E(X,2,9999)
  1. I X]"" S DR=X
  1. K X
  1. Q:'$D(DR)
  1. S DIE="^AFSLODOC("_DA(2)_",1,"_DA(1)_",1,"
  1. D ^DIE
  1. ;
  1. S DA(1)=ACRD0
  1. S DA=ACRD1
  1. S DIE="^AFSLODOC("_DA(1)_",1,"
  1. S DR="19////"_$P(DATA,U,2)
  1. D ^DIE
  1. ;
  1. D BAL(ACRD0,ACRD1)
  1. Q
  1. KP(ACRFY,ACRDOCNO,ACRBATNO,ACRSEQNO) ;EP
  1. ;----- ENTRY POINT TO DELETE OPEN DOCUMENT FILE PAYMENT ENTRY
  1. ; WHEN DELETING PAYMENT FROM ARMS PAYMENT BATCH
  1. ; CALLED BY DELETE^ACRFPAY4
  1. ;
  1. ; FROM 1166 APPROVALS FOR PAYMENT FILE:
  1. ; ACRFY = EXTERNAL FISCAL YEAR
  1. ; ACRDOCNO = DOCUMENT NUMBER
  1. ; ACRBATNO = PAYMENT BATCH NUMBER
  1. ; ACRSEQNO = PAYMENT SEQUENCE NUMBER
  1. ;
  1. Q:ACRFY']"" ;ACR*2.1*3.34
  1. Q:ACRDOCNO']"" ;ACR*2.1*3.34
  1. Q:ACRBATNO']"" ;ACR*2.1*3.34
  1. Q:ACRSEQNO']"" ;ACR*2.1*3.34
  1. S ACRD0=$O(^AFSLODOC("B",ACRFY,0))
  1. Q:'ACRD0
  1. S ACRD1=$O(^AFSLODOC(ACRD0,1,"B",ACRDOCNO,0))
  1. Q:'ACRD1
  1. S ACRD2=$O(^AFSLODOC(ACRD0,1,ACRD1,1,"C",ACRBATNO,ACRSEQNO,0))
  1. Q:'ACRD2
  1. D KPMT(ACRD0,ACRD1,ACRD2)
  1. Q
  1. KPMT(ACRD0,ACRD1,ACRD2) ;EP
  1. ;----- DELETE OPEN DOCUMENT FILE PAYMENT ENTRY
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT NUMBER SUBFILE IEN
  1. ; ACRD2 = PAYMENT NUMBER SUBFILE IEN
  1. ;
  1. N DA,DIK,X,Y
  1. S DA(2)=ACRD0
  1. Q:'DA(2)
  1. S DA(1)=ACRD1
  1. S DA=ACRD2
  1. S DIK="^AFSLODOC("_DA(2)_",1,"_DA(1)_",1,"
  1. D ^DIK
  1. D BAL(ACRD0,ACRD1)
  1. Q
  1. AFY(X,Y) ;EP -- ADD NEW FISCAL YEAR ENTRY
  1. ;
  1. ; X = EXTERNAL FISCAL YEAR
  1. ;
  1. N DIC,DD,DO,DLAYGO
  1. S DIC="^AFSLODOC("
  1. S DIC(0)=""
  1. I '$O(^AFSLODOC("B",X,0)) D
  1. . S DIC(0)="L"
  1. . S DLAYGO=9002325.3
  1. D ^DIC
  1. Q
  1. FIND(ACRFY,ACRBATNO,ACRSEQNO,ACRDOC) ;EP
  1. ;----- FIND PMT NODE BELONGING TO BATCH AND SEQUENCE
  1. ;
  1. ; ACRFY = EXTERNAL FISCAL YEAR
  1. ; ACRBATNO = EXTERNAL 1166 BATCH NUMBER
  1. ; ACRSEQNO = EXTERNAL 1166 SEQUENCE NUMBER
  1. ; ACRDOC = EXTERNAL DOCUMENT NUMBER
  1. ;
  1. N DATA,ACRD0,ACRD1,ACRD2
  1. S (ACRD0,ACRD1,ACRD2)=""
  1. S ACRD0=$O(^AFSLODOC("B",ACRFY,0))
  1. S ACRD1=0
  1. F S ACRD1=$O(^AFSLODOC("G",ACRBATNO,ACRD0,ACRD1)) Q:'ACRD1 D
  1. . Q:$P(^AFSLODOC(ACRD0,1,ACRD1,0),U)'=ACRDOC
  1. . S ACRD2=0
  1. . F S ACRD2=$O(^AFSLODOC("G",ACRBATNO,ACRD0,ACRD1,ACRD2)) Q:'ACRD2 D
  1. . . S DATA=$G(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2,0))
  1. . . Q:$P(DATA,U,4)'=ACRBATNO
  1. . . Q:$P(DATA,U,10)'=ACRSEQNO
  1. Q
  1. GETODOC(ACRD0,X) ;EP
  1. ;----- GET OPEN DOCUMENT SUBFILE DOCUMENT ENTRY IEN
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; X = EXTERNAL DOCUMENT NUMBER
  1. ;
  1. N Y
  1. S Y=$O(^AFSLODOC(ACRD0,1,"B",X,0))
  1. Q $G(Y)
  1. SETC(ACRD0,ACRD1,ACRD2) ;EP
  1. ;EP -- CALLED BY "C" CROSSREFERENCE IN OPEN DOCUMENT FILE
  1. ;
  1. N X
  1. Q:'ACRD0
  1. Q:'ACRD1
  1. Q:'ACRD2
  1. S X=$G(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2,0))
  1. Q:$P(X,U,4)=""
  1. Q:$P(X,U,10)=""
  1. S ^AFSLODOC(ACRD0,1,ACRD1,1,"C",$P(X,U,4),$P(X,U,10),ACRD2)=""
  1. Q
  1. KILLC(ACRD0,ACRD1,ACRD2) ;EP
  1. ;EP -- CALLED BY "C" CROSSREFERENCE IN OPEN DOCUMENT FILE
  1. ;
  1. N X
  1. Q:'ACRD0
  1. Q:'ACRD1
  1. Q:'ACRD2
  1. S X=$G(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2,0))
  1. Q:$P(X,U,4)=""
  1. Q:$P(X,U,10)=""
  1. K ^AFSLODOC(ACRD0,1,ACRD1,1,"C",$P(X,U,4),$P(X,U,10),ACRD2)
  1. Q
  1. BAL(ACRD0,ACRD1) ;EP
  1. ;----- CALCULATE AND ADJUST OPEN DOCUMENT BALANCE
  1. ;
  1. ; ACRD0 = FISCAL YEAR IEN
  1. ; ACRD1 = DOCUMENT ENTRY IEN
  1. ;
  1. N ACRBAL,DA,DIE,DR
  1. D CALC(ACRD0,ACRD1,.ACRBAL)
  1. S DA=ACRD1
  1. S DA(1)=ACRD0
  1. S DIE="^AFSLODOC("_DA(1)_",1,"
  1. S DR="27////"_ACRBAL
  1. D ^DIE
  1. ;
  1. Q
  1. CALC(ACRD0,ACRD1,ACRBAL) ;EP
  1. ;----- CALCULATE OPEN DOCUMENT BALANCE
  1. ;
  1. ; RETURNS:
  1. ; ACRBAL = BALANCE OF OBLIGATIONS MINUS PAYMENTS
  1. ;
  1. N ACRAMT,ACRDHR,ACRDOC,ACRDOCDA,ACRREV,ACRD2,DATA
  1. S ACRBAL=0
  1. S ACRDOC=$P($G(^AFSLODOC(ACRD0,1,ACRD1,0)),U)
  1. Q:ACRDOC']""
  1. S ACRDOCDA=0
  1. F S ACRDOCDA=$O(^ACRDOC("C",ACRDOC,ACRDOCDA)) Q:'ACRDOCDA D
  1. . S ACRDHR=0
  1. . F S ACRDHR=$O(^ACRDHR("E",ACRDOCDA,ACRDHR)) Q:'ACRDHR D
  1. . . S DATA=$G(^ACRDHR(ACRDHR,1))
  1. . . Q:$P(DATA,U,3)'="050"
  1. . . S ACRREV=$P(DATA,U,4)
  1. . . S ACRAMT=$P(DATA,U,14)
  1. . . S ACRAMT=$$DOL^ACRFUTL(ACRAMT/100)
  1. . . I ACRREV=2 S ACRAMT=0-ACRAMT
  1. . . S ACRBAL=ACRBAL+ACRAMT
  1. . . S ACRBAL=$$DOL^ACRFUTL(ACRBAL)
  1. . . I ACRBAL["(" S ACRBAL=$TR(ACRBAL,"()",""),ACRBAL="-"_ACRBAL
  1. S ACRD2=0
  1. F S ACRD2=$O(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2)) Q:'ACRD2 D
  1. . S ACRAMT=$P(^AFSLODOC(ACRD0,1,ACRD1,1,ACRD2,0),U,3)
  1. . S ACRBAL=ACRBAL-ACRAMT
  1. . S ACRBAL=$$DOL^ACRFUTL(ACRBAL)
  1. . I ACRBAL["(" S ACRBAL=$TR(ACRBAL,"()",""),ACRBAL="-"_ACRBAL
  1. Q