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

AFSLDKG2.m

Go to the documentation of this file.
AFSLDKG2 ;IHS/OIRM/DSD/JDM,HJT - WRITE TO ECS-CHECKS FORMAT FILE;  [ 10/27/2004   4:21 PM ]
 ;;3.0t1;1166 APPROVALS FOR PAYMENT;**13**;FEB 07, 1997
 ;ACR*2.1*13.02 IM13574
 ;Verified for Y2K Compliance   1/11/1999HJT
 ;  2-digit or 1-digit dates in this rout cannot be changed - output is
 ;  directed to a fixed format file dictated to the Treasury Dept.
 ;  1/11/1999HJT
 ;Part 2 - Gen. Treasury ECS-format file from Unix Tape-format file.
 ;ACR*2.1*13.02 IM13574    ;REMOVED DUPLICATE SUBROUTINES
FRD ;EP-open & rd tape file & send to ascii formatted file
 S (AFSLRCT,AFSLSAMT)=0
 S AFSLZROS="000000000000"
 S AFSLSPAC="                                   "
 F I=1:1:10 S AFSLASY(I)="                ",AFSLSAM(I)="000000000000"
OPENFLS S %FN=AFSEXFN
 S %IN=1
 S (AFSLBFL1,AFSLBFL2,AFSLBFL3,AFSLBFL4,AFSLBFL5,AFSLGFLG,AFSLXFLG)=0
 S (AFSLXA,AFSLXC,AFSLXX,AFSLTMXX)=""
 D OPENHFS^AFSLCK1
 I $D(AFSERMSG) D ERROR^AFSLCK1 G FINI
 I $D(AFSJFLG) G FINI
 S AFSLTDEV=%DEV
 K %DEV
READTFL ;rd tp fle
 U AFSLTDEV R X:DTIME    ; READ FILE         ;ACR*2.1*13.02 IM13574
 D ^AFSLCKZC                                 ;ACR*2.1*13.02 IM13574
 I X=""!($A(X)=-1)!($E(X,1,3))="C01" G FINI  ;ACR*2.1*13.02 IM13574
ITEM ;process pmt data
 I $E(X,1,3)="C01" G FINI
 I $E(X,1,3)="&01" D  G:$D(AFSJFLG) FINI G:$D(AFSLMFLG) FINI G READTFL
 .S AFSLSCHD=$E(X,4,13)
 .S AFSLALC=$E(X,27,34)
 .S AFSLAID=$P(^AFSLPRM(1,2),U,8)
 .S AFSLRECN="000000"
 .S AFSLRFC=$P(^AFSLPRM(1,2),U,3)
 .D ALCC
 I $E(X,1,3)="A01",$E(X,4,13)=AFSLSCHD D  G READTFL
 .S AFSLANAM=$E(X,72,80)
 I $E(X,1,3)="A01",$E(X,4,13)'=AFSLSCHD D  G READTFL
 .S AFSLANAM=AFSLANAM_$E(X,4,19)
 .S AFSLADR1=$E(X,20,44)
 .S AFSLADR2=$E(X,45,69)
 .D BLCC
B01 ;EVALUATE 'B01' RECORDS AND SET VARIABLES ACCORDING TO WHETHER THE
 ;FIRST THROUGH FIFTH RECORD IS BEING READ
 ;Removed redundant subroutine & commented-out code;ACR*2.1*13.02 IM13574
 I $E(X,1,3)="B01",'$G(AFSLBFL1) D
 .S AFSLRCT=AFSLRCT+1
 .S AFSLENCD=$E(X,14)
 .S AFSLVEIN=$E(X,15,26)
 .S AFSLTAMT=$E(X,27,36)
 .S AFSLSAMT=AFSLSAMT+AFSLTAMT
 .S AFSLVNAM=$E(X,48,80)
 .S AFSLBFL1=1
 I $E(X,1,3)="B01",AFSLBFL1=1 D
 .S AFSLADD1=$E(X,4,38)
 .S AFSLBFL1=2
 I $E(X,1,3)="B01",AFSLBFL1=2 D
 .S AFSLADD2=$E(X,4,38)
 .S AFSLADD3=$E(X,39,68)
 .S AFSLBFL1=3
 I $E(X,1,3)="B01",AFSLBFL1=3 D
 .S AFSLADD4=$E(X,4,33)
 .S AFSLPTYP="A"
 .S AFSLACSY=$E(X,34,49)
 .S AFSLBFL1=4
 I $E(X,1,3)="B01",AFSLBFL1=4 D
 .S AFSLPCNT=$E(X,5,6)
 .S AFSLBFL1=0
 .K AFSLPREC
 .D READLP
 G READTFL
 Q
READLP ;rd 1-14 pd-for rcds & create AFSLPREC(1-14)
 F J=1:1:AFSLPCNT D
 .U AFSLTDEV R X:DTIME D ^AFSLCKZC
 .U IO(0) G:X=""!($A(X)=-1)!(AFSLGFLG=1) FINI D:AFSLXFLG'=1 SETPREC
 D PMTREC
 Q
SETPREC ;set AFSLPREC(J)
 S AFSLPREC(J)=$E(X,4,58)
 Q
ALCC ;create ALC ctl rcd
 D SHDR^AFSLDKG3
 Q:$D(AFSLMFLG)
 S AFSLAID=AFSLAID_$E("          ",1,10-$L(AFSLAID))
 S AFSLALCC="02"_"000001"_AFSLSCHD_"    "_"             "_AFSLALC_"           "_"&"_AFSLB50_AFSLB50_AFSLB50_AFSLB50_AFSLB50_AFSLB50_AFSLB50_$E(AFSLB50,1,35)
 D WRTALCC
 Q
BLCC ;create Agcy Billing Addr Ctl Rcd
 S AFSLBLCC="03"_"000002"_AFSLSCHD_"    "_"0000000000000"_"                   "_"A"_AFSLANAM_AFSLADR1_AFSLADR2_$E(AFSLB50,1,25)_"          "_AFSLB50_AFSLB50_AFSLB50_AFSLB50_AFSLB50_$E(AFSLB50,1,25)
 U AFSLKDEV W AFSLBLCC
 U AFSLKDEV
 Q
PMTREC ;create pmt rcd
 S AFSLPYID=$E(AFSLVEIN,2,10)
 S AFSLPYID=AFSLPYID_$E("                ",1,16-$L(AFSLPYID))
 S AFSLVNAM=AFSLVNAM_$E($$SPACE^AFSLUTLM(35),1,35-$L(AFSLVNAM))
 S AFSLRECN=$E($$ZERO^AFSLUTLM(6),1,6-$L(AFSLRCT))_AFSLRCT
 S AFSLTAMT=$E($$ZERO^AFSLUTLM(10),1,10-$L(AFSLTAMT))_AFSLTAMT
 S AFSLAID=AFSLAID_$E(AFSLB50,1,10-$L(AFSLAID))
 S AFSLVEIN=AFSLVEIN_$E(AFSLB50,1,16-$L(AFSLVEIN))
WRTPMT ;
 S AFSLALCP="04"_AFSLRECN_AFSLSCHD_"    "_AFSLENCD_"       "_"0"_AFSLTAMT_AFSLAID_"B"_AFSLVNAM_AFSLADD1_AFSLADD2_AFSLADD3_AFSLADD4_AFSLPTYP_AFSLACSY_AFSLPYID_$E(AFSLB50,1,33)
 S AFSLAPPN=AFSLACSY
 S AFSLPCNT=$E("00",1,2-$L(AFSLPCNT))_AFSLPCNT
 S AFSLALCP=AFSLALCP_AFSLPCNT
 S AFSLSYMT=AFSLSYMT+AFSLTAMT
 I '$D(AFSLTOT(AFSLAPPN)) S AFSLTOT(AFSLAPPN)=0
 S AFSLTOT(AFSLAPPN)=AFSLTOT(AFSLAPPN)+AFSLTAMT
 S AFSLASY(1)=AFSLAPPN
 S AFSLSAM(1)=$E("000000000000",1,12-$L(AFSLSYMT))_AFSLSYMT
 U AFSLKDEV W AFSLALCP
PIDLINE ;
 F L=1:1:14 D WRTPLINS
 U AFSLKDEV W AFSLB50_$E(AFSLB50,1,38)
 Q
WRTALCC ;write alc ctl rcd
 S %FN=$$ARMSDIR^ACRFSYS(1)                ;ACR*2.1*13.06 IM14144
 S %FN=%FN_AFSLNXDK_"-"_AFSLMMDD,%IN=0     ;ACR*2.1*13.06 IM14144
 I '$D(^AFSLPRM(1,3)) G SKPPRM
 I $P(^AFSLPRM(1,3),U,1)'="" S %FN=$P(^AFSLPRM(1,3),U,1)_"/"_AFSLNXDK_"-"_AFSLMMDD
SKPPRM ;
 D OPENHFS^AFSLCK1
 I $D(AFSERMSG) U AFSLSDEV W !,AFSERMSG
 I Y>0 U AFSLSDEV W !,"UNABLE TO OPEN DISKETTE FILE FOR WRITE!"
 I Y=1 U AFSLSDEV W !,"No HFS Device available...",! D PAUSE^ACRFWARN ; ACR*2.1*13.06 IM14144
 I Y=2 U AFSLSDEV W !,"Trying to open a new file for read (R) mode...",!
 I Y=3 U AFSLSDEV W !,"Passed fls by ref...",!
 I Y=4 U AFSLSDEV W !,"Invalid fi length...",!
 I Y>0 S AFSJFLG=1 Q
 S AFSLKDEV=%DEV K %DEV
 U AFSLKDEV W AFSLSHDR,AFSLALCC
 U IO(0)
 Q
WRTPLINS ;write pmt lns 1-14
 I L=3 S AFSLRCTY="05" D WRTPRX
 I L=9 S AFSLRCTY="06" D WRTPRX
 I '$D(AFSLPREC(L)) S AFSLPREC(L)=AFSLB50_"     "
 U AFSLKDEV W AFSLPREC(L)
 I L=2 U AFSLKDEV W $E(AFSLB50,1,45)
 I L=8 U AFSLKDEV W AFSLB50_$E(AFSLB50,1,38)
 Q
WRTPRX ;
 U AFSLKDEV W AFSLRCTY_AFSLRECN_AFSLSCHD_"    "
 Q
WRTSCR ;write alc schd ctl rcd
 S %H=$H
 D YX^%DTC
 S AFSLNOW=X_$E(%,1,5)
 S AFSLMMDD=$E(X,4,7)
 S AFSLSICT=$E($$ZERO^AFSLUTLM(7),1,7-$L(AFSLRCT))_AFSLRCT
 S AFSLSAMT=$E($$ZERO^AFSLUTLM(12),1,12-$L(AFSLSAMT))_AFSLSAMT
 S AFSLRECN=AFSLRECN+1,AFSLRECN=$E($$ZERO^AFSLUTLM(6),1,6-$L(AFSLRECN))_AFSLRECN
 S AFSLSCR="09"_AFSLRECN_AFSLSCHD_"    "_"9999999999999"_AFSLSICT_AFSLSAMT_"C"
 S AFSLNXAN="",AFSLACT=0
NXAPN ;
 I AFSLACT=10 G QNXAPN
 I '$O(AFSLTOT(AFSLNXAN)) S AFSLSCR=AFSLSCR_"                000000000000",AFSLACT=AFSLACT+1 G NXAPN
 S AFSLNXAN=$O(AFSLTOT(AFSLNXAN))
 I AFSLTOT(AFSLNXAN)="" S AFSLTOT(AFSLNXAN)=0
 S AFSLTOT(AFSLNXAN)=$E("000000000000",1,12-$L(AFSLTOT(AFSLNXAN)))_AFSLTOT(AFSLNXAN)
 S AFSLSCR=AFSLSCR_AFSLNXAN_AFSLTOT(AFSLNXAN),AFSLACT=AFSLACT+1
 G NXAPN
QNXAPN ;
 S E=10-AFSLACT
 F M=1:1:E S AFSLSCR=AFSLSCR_AFSLASY(2)_AFSLSAM(2)
 U AFSLKDEV W AFSLSCR
 F M=1:1:105 U AFSLKDEV W " "
 S AFSLNXTD=AFSLNXDK_"-"_AFSLMMDD
 S X=AFSLNOW
 S DIC="^AFSLDKGL("
 S DIC(0)="ML"
 U AFSLSDEV
 D ^DIC
 S DIE="^AFSLDKGL(",DA=$P(Y,U,1)
 S DR="1///^S X=AFSLFY" D ^DIE
 S DR="2///^S X=AFSLSCHD" D ^DIE
 S DR="3///^S X=AFSLEXFN" D ^DIE
 S DR="4///^S X=AFSLNXTD" D ^DIE
 S DR="5///^S X=AFSLRCT" D ^DIE
 S DR="6///^S X=AFSLSAMT" D ^DIE
 Q
FINI ;
 I $E(X,1,3)="C01",'$D(AFSJFLG) D WRTSCR,WRTSTRL^AFSLDKG3
 I '$D(AFSLTDEV) G FINI2
 D CLOSE^%ZISH("")                       ; ACR*2.1*13.06 IM14144
FINI2 ;
 I '$D(AFSLKDEV) G FINI3
 D CLOSE^%ZISH("")                       ; ACR*2.1*13.06 IM14144
FINI3 ;
 Q