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

ACRFIRS6.m

Go to the documentation of this file.
  1. ACRFIRS6 ;IHS/OIRM/DSD/AEF - PRINT 1099s [ 07/24/2002 3:17 PM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**1,3**;NOV 05, 2001
  1. ;
  1. EN ;EP -- PRINT ALL VENDOR 1099S
  1. ;
  1. N ACRLOC,ACRYR,ZTSAVE
  1. ;
  1. D HOME^%ZIS
  1. D ^XBKVAR
  1. ;
  1. D LOC(.ACRLOC)
  1. Q:'$G(ACRLOC)
  1. ;
  1. D YR(.ACRYR)
  1. Q:'$G(ACRYR)
  1. ;
  1. S ZTSAVE("ACRLOC")=""
  1. S ZTSAVE("ACRYR")=""
  1. D QUE^ACRFUTL("DQ^ACRFIRS6",.ZTSAVE,"PRINT 1099s")
  1. ;
  1. D ^%ZISC
  1. Q
  1. DQ ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. ; INCOMING VARIABLES:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. ; OTHER VARIABLES USED:
  1. ; ACRTAMT = ARRAY CONTAINING AMOUNT TOTALS BY TYPE CODE
  1. ; ACRTCNT = ARRAY CONTAINING VENDOR COUNT BY TYPE CODE
  1. ;
  1. N ACRTAMT,ACRTCNT
  1. ;
  1. D ^XBKVAR
  1. ;
  1. D LOOP(ACRLOC,ACRYR,.ACRTAMT,.ACRTCNT)
  1. ;
  1. D TOTALS(.ACRTAMT,.ACRTCNT)
  1. ;
  1. K ACRLOC,ACRYR
  1. ;
  1. D ^%ZISC
  1. Q
  1. LOOP(ACRLOC,ACRYR,ACRTAMT,ACRTCNT) ;
  1. ;----- LOOP THROUGH ARMS VENDOR FILE AND PRINT 1099s
  1. ;
  1. ; INPUT:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. ; RETURNS:
  1. ; ACRTAMT = ARRAY CONTAINING PAYMENT AMOUNTS BY TYPE CODE
  1. ; ACRTCNT = ARRAY CONTAINING VENDOR COUNTS BY TYPE CODE
  1. ;
  1. N ACRCNT,ACRNAME,ACRVEN
  1. ;
  1. K ^TMP("ACR1099",$J)
  1. ;
  1. D ALPHA(ACRYR)
  1. Q:'$D(^TMP("ACR1099",$J))
  1. ;
  1. S ACRCNT=0
  1. S ACRNAME=""
  1. F S ACRNAME=$O(^TMP("ACR1099",$J,ACRNAME)) Q:ACRNAME']"" D
  1. . S ACRVEN=0 F S ACRVEN=$O(^TMP("ACR1099",$J,ACRNAME,ACRVEN)) Q:'ACRVEN D
  1. . . Q:$$AMT(ACRVEN,ACRYR)<600
  1. . . S ACRCNT=ACRCNT+1
  1. . . I ACRCNT>1,ACRCNT#2 W @IOF
  1. . . D PRT(ACRVEN,ACRLOC,ACRYR,ACRCNT,.ACRTAMT,.ACRTCNT)
  1. . . D UPDATE(ACRVEN,ACRYR)
  1. ;
  1. K ^TMP("ACR1099",$J)
  1. Q
  1. ALPHA(ACRYR) ;
  1. ;----- BUILD ALPHABETIC ARRAY OF VENDORS IN ^TMP("ACR1099",$J)
  1. ;
  1. ; INPUT:
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N ACRNAME,ACRVEN
  1. S ACRVEN=0
  1. F S ACRVEN=$O(^ACR1099V("C",ACRYR,ACRVEN)) Q:'ACRVEN D
  1. . S ACRNAME=$P(^AUTTVNDR(ACRVEN,0),U)
  1. . S ^TMP("ACR1099",$J,ACRNAME,ACRVEN)=0
  1. Q
  1. PRT(ACRVEN,ACRLOC,ACRYR,ACRCNT,ACRTAMT,ACRTCNT) ;
  1. ;----- PRINT VENDOR 1099
  1. ;
  1. ; INPUT:
  1. ; ACRVEN = VENDOR IEN
  1. ; ACRLOC = PAYER IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. ; RETURNS:
  1. ; ACRTAMT = ARRAY CONTAINING AMOUNT TOTALS BY TYPE CODE
  1. ; ACRTCNT = ARRAY CONTAINING COUNT TOTALS BY TYPE CODE
  1. ;
  1. ; VARIABLES SET AND USED BY THIS SUBROUTINE:
  1. ; ACRAMT = ARRAY CONTAINING PAYMENT AMOUNTS BY TYPE CODE
  1. ; ACRCOR = CORRECTED RETURN INDICATOR
  1. ; ACRIRS = PAYER IRS NAME
  1. ; ACRPADD = ARRAY CONTAINING PAYER ADDRESS
  1. ; ACRPSN = PAYER STATE NUMBER
  1. ; ACRPTIN = PAYER TAX ID NUMBER
  1. ; ACRTYP = PAYMENT TYPE CODE
  1. ; ACRVADD = ARRAY CONTAINING VENDOR ADDRESS
  1. ; ACRVTIN = VENDOR TAX ID NUMBER
  1. ;
  1. ;
  1. ;----- SET VARIABLES
  1. ;
  1. N ACRAMT,ACRCOR,ACRIRS,ACRPADD,ACRPSN,ACRPTIN,ACRTYP,ACRVADD,ACRVTIN,DATA
  1. I '$D(^ACR1099V(ACRVEN,1,ACRYR)) D Q ;ACR*2.1*3.30
  1. . W !,"NO DATA FOUND" ;ACR*2.1*3.30
  1. ;
  1. F I=1:1:8,"A","B","C" S ACRAMT(I)=""
  1. S ACRCOR=""
  1. I $P($G(^ACR1099V(ACRVEN,1,ACRYR,0)),U,6)="Y" S ACRCOR="X"
  1. S DATA=^ACR1099V(ACRVEN,0)
  1. S ACRTYP=$P(DATA,U,2)
  1. S ACRIRS=$P(DATA,U,3)
  1. S ACRAMT(ACRTYP)=$$AMT(ACRVEN,ACRYR)
  1. D PADD(ACRLOC,.ACRPADD)
  1. D VADD(ACRVEN,ACRIRS,.ACRVADD)
  1. S ACRPTIN=$P(^ACR1099P(ACRLOC,0),U,8)
  1. S ACRVTIN=$E($P(^AUTTVNDR(ACRVEN,11),U),2,10)
  1. S ACRPSN=$P($G(^ACR1099P(ACRLOC,1)),U)
  1. ;
  1. ;----- PRINT INDIVIDUAL LINES
  1. ;
  1. ;LINE2 BLANK
  1. ;W !
  1. ;
  1. ;LINE3 CORRECTED RETURN INDICATOR
  1. ;W !
  1. W ?30,ACRCOR
  1. ;
  1. ;LINE4 BLANK
  1. W !
  1. ;
  1. ;LINE5 PAYER'S NAME
  1. W !
  1. W ?5,ACRPADD(1)
  1. ;
  1. ;LINE6 PAYER'S ADDRESS LINE 1 / RENTS AMOUNT
  1. W !
  1. W ?5,ACRPADD(2)
  1. W ?39,$J(ACRAMT(1),12,2)
  1. ;
  1. ;LINE7 PAYER'S ADDRESS LINE 2
  1. W !
  1. W ?5,ACRPADD(3)
  1. ;
  1. ;LINE8 PAYER'S CITY,STATE,ZIP
  1. W !
  1. W ?5,ACRPADD(4)
  1. ;
  1. ;LINE9 ROYALTIES AMOUNT
  1. W !
  1. W ?39,$J(ACRAMT(2),12,2)
  1. ;
  1. ;LINE10 BLANK
  1. W !
  1. ;
  1. ;LINE11 OTHER INCOME AMOUNT / FEDERAL INCOME TAX WHLD AMOUNT
  1. W !
  1. W ?39,$J(ACRAMT(3),12,2)
  1. W ?53,$J(ACRAMT(4),12,2)
  1. ;
  1. ;LINE12 BLANK
  1. W !
  1. ;
  1. ;LINE13 BLANK
  1. W !
  1. ;
  1. ;LINE14 BLANK
  1. W !
  1. ;
  1. ;LINE15 PAYER TIN / PAYEE TIN / FISHING BOAT AMOUNT / MEDICAL AMOUNT
  1. W !
  1. W ?5,ACRPTIN
  1. W ?25,ACRVTIN
  1. W ?39,$J(ACRAMT(5),12,2)
  1. W ?53,$J(ACRAMT(6),12,2)
  1. ;
  1. ;LINE16 BLANK
  1. W !
  1. ;
  1. ;LINE17 PAYEE'S NAME
  1. W !
  1. W ?5,ACRVADD(1)
  1. ;
  1. ;LINE18 BLANK
  1. W !
  1. ;
  1. ;LINE19 NONEMPLOYEE COMP AMOUNT / SUBSTITUTE PMT AMOUNT
  1. W !
  1. W ?39,$J(ACRAMT(7),12,2)
  1. W ?53,$J(ACRAMT(8),12,2)
  1. ;
  1. ;LINE20 BLANK
  1. W !
  1. ;
  1. ;LINE21 PAYEE ADDRESS LINE 1
  1. W !
  1. W ?5,ACRVADD(2)
  1. ;
  1. ;LINE22 PAYEE ADDRESS LINE 2 / CROP INSURANCE AMOUNT
  1. W !
  1. W ?5,ACRVADD(3)
  1. W ?53,$J(ACRAMT("A"),12,2)
  1. ;
  1. ;LINE23 BLANK
  1. W !
  1. ;
  1. ;LINE24 PAYEE CITY,STATE,ZIP
  1. W !
  1. W ?5,ACRVADD(4)
  1. ;
  1. ;LINE25 BLANK
  1. W !
  1. ;
  1. ;LINE26 BLANK
  1. W !
  1. ;
  1. ;LINE27 GOLDEN PARACHUTE AMOUNT / PROCEEDS TO ATTORNEY AMOUNT
  1. W !
  1. W ?39,$J(ACRAMT("B"),12,2)
  1. W ?53,$J(ACRAMT("C"),12,2)
  1. ;
  1. ;LINE28 BLANK
  1. W !
  1. ;
  1. ;LINE29 STATE/PAYER'S STATE NO.
  1. W !
  1. W ?55,ACRPSN
  1. ;
  1. ;LINE30 BLANK
  1. W !
  1. ;
  1. I $G(ACRCNT)#2 F I=1:1:6 W !
  1. ;
  1. ;----- SET DOLLAR AMOUNT ARRAY
  1. ;
  1. S ACRTAMT(ACRTYP)=$G(ACRTAMT(ACRTYP))+ACRAMT(ACRTYP)
  1. S ACRTCNT(ACRTYP)=$G(ACRTCNT(ACRTYP))+1
  1. Q
  1. LOC(ACRLOC) ;
  1. ;----- ASK FINANCE LOCATION
  1. ;
  1. ; RETURNS:
  1. ; ACRLOC = PAYER IEN
  1. ;
  1. N DIC,DTOUT,DUOUT,X,Y
  1. S DIC="^ACR1099P("
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select FINANCE LOCATION: "
  1. D ^DIC
  1. Q:$D(DTOUT)!($D(DUOUT))
  1. Q:+Y'>0
  1. S ACRLOC=+Y
  1. Q
  1. YR(ACRYR) ;
  1. ;----- ASK CALENDAR YEAR
  1. ;
  1. ; RETURNS:
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N DIR,DIRUT,DTOUT,DUOUT,X,Y
  1. S DIR(0)="N^0000:9999"
  1. S DIR("A")="Select CALENDAR YEAR"
  1. S DIR("B")=($E(DT,1,3)+1700)-1
  1. D ^DIR
  1. Q:$D(DTOUT)!($D(DUOUT))!($D(DIRUT))
  1. Q:+Y'>0
  1. S ACRYR=+Y
  1. Q
  1. VEN(ACRVEN) ;
  1. ;----- ASK VENDOR
  1. ;
  1. ; RETURNS:
  1. ; ACRVEN = VENDOR IEN
  1. ;
  1. N DIC,DTOUT,DUOUT,X,Y
  1. S DIC="^ACR1099V("
  1. S DIC(0)="AEMQ"
  1. S DIC("A")="Select VENDOR: "
  1. D ^DIC
  1. Q:$D(DTOUT)!($D(DUOUT))
  1. Q:+Y'>0
  1. S ACRVEN=+Y
  1. Q
  1. UPDATE(ACRVEN,ACRYR) ;
  1. ;----- UPDATE 1099 PRINT DATE FIELD IN ARMS 1099 VENDOR FILE
  1. ;
  1. ; INPUT:
  1. ; ACRVEN = VENDOR IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N DA,DIE,DR,X,Y
  1. S DA(1)=ACRVEN
  1. S DA=ACRYR
  1. S DIE="^ACR1099V("_DA(1)_",1,"
  1. S DR=".05////"_DT
  1. D ^DIE
  1. Q
  1. ONE ;EP -- PRINT ONE VENDOR 1099
  1. ;
  1. N ACRLOC,ACRVEN,ACRYR,ZTSAVE
  1. ;
  1. D HOME^%ZIS
  1. D ^XBKVAR
  1. ;
  1. D LOC(.ACRLOC)
  1. Q:'$G(ACRLOC)
  1. ;
  1. D YR(.ACRYR)
  1. Q:'$G(ACRYR)
  1. ;
  1. D VEN(.ACRVEN)
  1. Q:'$G(ACRVEN)
  1. ;
  1. S ZTSAVE("ACRLOC")=""
  1. S ZTSAVE("ACRYR")=""
  1. S ZTSAVE("ACRVEN")=""
  1. D QUE^ACRFUTL("DQ1^ACRFIRS6",.ZTSAVE,"PRINT ONE 1099")
  1. ;
  1. D ^%ZISC
  1. Q
  1. DQ1 ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. ; INPUT:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRVEN = VENDOR IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N ACRMTOT,ACRMAMT,ACRNTOT,ACRNAMT
  1. ;
  1. W @IOF
  1. ;
  1. D ^XBKVAR
  1. ;
  1. D PRT(ACRVEN,ACRLOC,ACRYR,$G(ACRCNT),.ACRTAMT,.ACRTCNT)
  1. ;
  1. D TOTALS(.ACRTAMT,.ACRTCNT)
  1. ;
  1. D ^%ZISC
  1. K ACRLOC,ACRVEN,ACRYR
  1. Q
  1. TEST ;EP -- PRINT TEST 1099s
  1. ;
  1. N ACRLOC,ACRYR,ZTSAVE
  1. ;
  1. D ^XBKVAR
  1. ;
  1. D LOC(.ACRLOC)
  1. Q:'$G(ACRLOC)
  1. ;
  1. D YR(.ACRYR)
  1. Q:'$G(ACRYR)
  1. ;
  1. S ZTSAVE("ACRLOC")=""
  1. S ZTSAVE("ACRYR")=""
  1. D QUE^ACRFUTL("DQ2^ACRFIRS6",.ZTSAVE,"PRINT TEST 1099s")
  1. ;
  1. D ^%ZISC
  1. Q
  1. DQ2 ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. ; INPUT:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N ACRTAMT,ACRTCNT,ACRVEN,ACRCNT
  1. ;
  1. W @IOF
  1. ;
  1. D ^XBKVAR
  1. ;
  1. S (ACRVEN,ACRCNT)=0
  1. F Q:ACRCNT>9 S ACRVEN=$O(^ACR1099V("C",ACRYR,ACRVEN)) Q:'ACRVEN D
  1. . S ACRCNT=ACRCNT+1
  1. . Q:ACRCNT>9
  1. . I ACRCNT>1,ACRCNT#2 W @IOF
  1. . D PRT(ACRVEN,ACRLOC,ACRYR,ACRCNT,.ACRTAMT,.ACRTCNT)
  1. ;
  1. D TOTALS(.ACRTAMT,.ACRTCNT)
  1. ;
  1. K ACRLOC,ACRYR
  1. D ^%ZISC
  1. Q
  1. RANGE ;EP -- PRINT RANGE OF VENDOR 1099S
  1. ;
  1. N ACRLOC,ACRVEN,ACRYR,ZTSAVE
  1. ;
  1. D ^XBKVAR
  1. ;
  1. K ^TMP("ACR1099",$J)
  1. ;
  1. D LOC(.ACRLOC)
  1. Q:'$G(ACRLOC)
  1. ;
  1. D YR(.ACRYR)
  1. Q:'$G(ACRYR)
  1. ;
  1. D ALPHA(ACRYR)
  1. I '$D(^TMP("ACR1099",$J)) D G RANGE
  1. . W !,"No Vendor data found for ",ACRYR
  1. ;
  1. D VEND(.ACRVEN)
  1. Q:ACRVEN']""
  1. ;
  1. S ZTSAVE("ACRLOC")=""
  1. S ZTSAVE("ACRYR")=""
  1. S ZTSAVE("ACRVEN")=""
  1. D QUE^ACRFUTL("DQ3^ACRFIRS6",.ZTSAVE,"PRINT RANGE OF 1099S")
  1. ;
  1. D ^%ZISC
  1. Q
  1. DQ3 ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. ; INPUT:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRVEN = VENDOR RANGE
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. N ACRTAMT,ACRTCNT
  1. ;
  1. D ^XBKVAR
  1. ;
  1. D LOOP3(ACRLOC,ACRYR,ACRVEN,.ACRTAMT,.ACRTCNT)
  1. ;
  1. K ACRLOC,ACRYR,ACRVEN
  1. D ^%ZISC
  1. Q
  1. LOOP3(ACRLOC,ACRYR,ACRVEN,ACRTAMT,ACRTCNT) ;
  1. ;
  1. ; INPUT:
  1. ; ACRLOC = PAYER IEN
  1. ; ACRVEN = VENDOR RANGE
  1. ; ACRYR = CALENDAR YEAR
  1. ;
  1. ; RETURNS:
  1. ; ACRTAMT = ARRAY CONTAINING AMOUNTS BY PAYMENT TYPE CODE
  1. ; ACRTCNT = ARRAY CONTAINING VENDOR COUNTS BY PAYMENT TYPE CODE
  1. ;
  1. N ACREND,ACRNAME,ACRCNT
  1. ;
  1. D ALPHA(ACRYR)
  1. Q:'$D(^TMP("ACR1099",$J))
  1. ;
  1. S ACREND=$P(ACRVEN,U,2)
  1. S ACRNAME=$P(ACRVEN,U)
  1. S ACRNAME=$O(^TMP("ACR1099",$J,ACRNAME),-1)
  1. ;
  1. S ACRCNT=0
  1. F S ACRNAME=$O(^TMP("ACR1099",$J,ACRNAME)) Q:ACRNAME']"" Q:ACRNAME]ACREND D
  1. . S ACRVEN=0
  1. . F S ACRVEN=$O(^TMP("ACR1099",$J,ACRNAME,ACRVEN)) Q:'ACRVEN D
  1. . . Q:$$AMT(ACRVEN,ACRYR)<600
  1. . . S ACRCNT=ACRCNT+1
  1. . . I ACRCNT>1,ACRCNT#2 W @IOF
  1. . . D PRT(ACRVEN,ACRLOC,ACRYR,ACRCNT,.ACRTAMT,.ACRTCNT)
  1. ;
  1. D TOTALS(.ACRTAMT,.ACRTCNT)
  1. ;
  1. K ^TMP("ACR1099",$J)
  1. Q
  1. VEND(ACRVEN) ;
  1. ;----- GETS START AND END VENDORS IN RANGE SELECTION
  1. ;
  1. V ; RETURNS:
  1. ; ACRVEN = CONTAINS BEGINNING AND ENDING VENDOR NAME RANGE
  1. ;
  1. N DIR,X,Y
  1. S ACRVEN=""
  1. S DIR(0)="F"
  1. S DIR("A")="Start with VENDOR"
  1. S DIR("?")="Enter BEGINNING VENDOR in range"
  1. D ^DIR
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIRUT)) S ACRVEN="" Q
  1. Q:Y']""
  1. S ACRVEN=Y
  1. S DIR("A")="End with VENDOR"
  1. S DIR("?")="Enter ENDING VENDOR in range"
  1. D ^DIR
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIRUT)) S ACRVEN="" Q
  1. I Y']"" S ACRVEN="" Q
  1. I Y']ACRVEN D G V
  1. . W !,"'",Y,"' does not follow '",ACRVEN,"'"
  1. S ACRVEN=ACRVEN_"^"_Y
  1. Q
  1. TOTALS(ACRTAMT,ACRTCNT) ;
  1. ;----- PRINTS GRAND TOTALS
  1. ;
  1. ; INPUT:
  1. ; ACRTAMT = ARRAY CONTAINING AMOUNT TOTALS BY PAYMENT TYPE CODE
  1. ; ACRTCNT = ARRAY CONTAINING VENDOR COUNTS BY PAYMENT TYPE CODE
  1. ;
  1. W @IOF
  1. ;
  1. N ACRGAMT,ACRGCNT,ACRTYP,I
  1. ;
  1. S ACRTYP(1)="RENTS"
  1. S ACRTYP(2)="ROYALTIES"
  1. S ACRTYP(3)="OTHER INCOME"
  1. S ACRTYP(4)="FED INC TAX WHLD"
  1. S ACRTYP(5)="FISHING BOAT PROC"
  1. S ACRTYP(6)="MED & HLTH CARE"
  1. S ACRTYP(7)="NONEMPLOYEE COMP"
  1. S ACRTYP(8)="SUBSTITUTE PMTS"
  1. S ACRTYP("A")="CROP INS PROC"
  1. S ACRTYP("B")="EXC GOLD PARA"
  1. S ACRTYP("C")="PROC TO ATTY"
  1. ;
  1. F I=1:1:3 W !
  1. ;
  1. S (ACRGCNT,ACRGAMT)=0
  1. F I=1:1:8,"A","B","C" D
  1. . ;Q:'$D(ACRTAMT(I))
  1. . W ?5,"TOTAL FOR ",ACRTYP(I)," PMTS:"
  1. . W ?40,$J(+$G(ACRTCNT(I)),4)
  1. . W ?50,$J(+$G(ACRTAMT(I)),12,2)
  1. . S ACRGCNT=$G(ACRGCNT)+$G(ACRTCNT(I))
  1. . S ACRGAMT=$G(ACRGAMT)+$G(ACRTAMT(I))
  1. . W !!
  1. ;
  1. W ?40,"----"
  1. W ?50,"------------"
  1. W !
  1. W ?40,$J(ACRGCNT,4)
  1. W ?50,$J(ACRGAMT,12,2)
  1. Q
  1. AMT(ACRVEN,ACRYR) ;
  1. ;----- EXTRINSIC FUNCTION TO RETURN DOLLAR AMOUNT
  1. ;
  1. N X
  1. S X=$G(^ACR1099V(ACRVEN,1,ACRYR,0))
  1. S Y=$P(X,U,2)
  1. I $P(X,U,6)="Y" S Y=$P(X,U,8)
  1. Q Y
  1. PADD(ACRLOC,ACRPADD) ;
  1. ;----- RETURN PAYER'S ADDRESS ARRAY
  1. ;
  1. N I,DATA,X
  1. K ACRPADD
  1. F I=1:1:4 S ACRPADD(I)=""
  1. S I=0
  1. S DATA=$G(^ACR1099P(ACRLOC,0))
  1. I $P(DATA,U,2)]"" D
  1. . S I=I+1
  1. . S ACRPADD(I)=$P(DATA,U,2)
  1. I $P(DATA,U,3)]"" D
  1. . S I=I+1
  1. . S ACRPADD(I)=$P(DATA,U,3)
  1. I $P(DATA,U,4)]"" D
  1. . S I=I+1
  1. . S ACRPADD(I)=$P(DATA,U,4)
  1. S X=$P(DATA,U,5)_", "_$P(^DIC(5,$P(DATA,U,6),0),U,2)_" "_$P(DATA,U,7)
  1. S I=I+1
  1. S ACRPADD(I)=X
  1. Q
  1. VADD(ACRVEN,ACRIRS,ACRVADD) ;
  1. ;----- RETURN VENDOR'S ADDRESS ARRAY
  1. ;
  1. N I,DATA,X
  1. K ACRVADD
  1. F I=1:1:4 S ACRVADD(I)=""
  1. S ACRVADD(1)=$P(^AUTTVNDR(ACRVEN,0),U)
  1. I ACRIRS]"" S ACRVADD(1)=ACRIRS
  1. S I=1
  1. S DATA=$G(^AUTTVNDR(ACRVEN,13))
  1. I $P(DATA,U)]"" D
  1. . S I=I+1
  1. . S ACRVADD(I)=$P(DATA,U)
  1. I $P(DATA,U,10)]"" D
  1. . S I=I+1
  1. . S ACRVADD(I)=$P(DATA,U,10)
  1. S X=$P(DATA,U,2)_", "_$P(^DIC(5,$P(DATA,U,3),0),U,2)_" "_$P(DATA,U,4)
  1. S ACRVADD(4)=X
  1. Q