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

AFSLSNXT.m

Go to the documentation of this file.
  1. AFSLSNXT ;IHS/OIRM/DSD/HJT - BATCH# GEN; [ 09/27/2005 4:27 PM ]
  1. ;;3.0t1;1166 APPROVALS FOR PAYMENT;**19**;AUG 31, 2005
  1. ;Modified for Y2k Compliance
  1. ;Opens and generates batch number
  1. K AFSLSFND,AFSLSNOD,AFSLSZRO
  1. S AFSLSCDT="NOW",(AFSLCOFF,AFSLSNXT,AFSLSTAT,AFSLUSR,AFSLERR,AFSL2OPN,AFSLTSCD)="",AFSLEBDT="MMDDYY",Y="-1",AFSLOPN="O",AFSLZROS="0000000000"
  1. PFX ;
  1. S AFSLSIT=$P(^AUTTSITE(1,0),U,1),AFSLARNM=$P(^AUTTLOC(AFSLSIT,0),U,4),AFSLAREA=$P(^AUTTAREA(AFSLARNM,0),U,2),AFSLPFX=AFSLAREA
  1. FYR ;
  1. ;Begin Y2k Modifications
  1. D ^XBCLS,CRTSETUP^AFSLCRTS W !!!," FISCAL YR FOR WHICH TO OPEN A BATCH/SCHEDULE (i.e., ""1991""): " S AFSLCHRS=4 D READCHRS^AFSLSRDR S AFSLFYR=AFSLVOUT ;Y2000
  1. I AFSLFYR=""!(AFSLFYR="^") S AFSLERR="" G FINI
  1. I AFSLFYR'?4N S AFSLERR="INVALID ENTRY" G FINI ;Y2000
  1. ;End Y2k Modifications
  1. D ^AFSLYRLU
  1. I Y<1 S AFSLERR="FISCAL YEAR NOT INITIALIZED IN FILE YET." G FINI
  1. D DSPF,^AFSLCTLU,EXPBDT ;I AFSL2OPN="1" S AFSLERR="" G FINI
  1. D SCHD G FINI
  1. DSPF ;
  1. D ^XBCLS
  1. S DY=2,DX=23 X XY W @AFSLRVON,"1166 APPROVALS FOR PAYMENT SYSTEM"
  1. S DY=4,DX=31 X XY W "OPEN A BATCH/SCHEDULE",@AFSLRVOF
  1. S DY=8,DX=2 X XY W "BATCH/SCHEDULE NO.: ",@AFSLRVON,AFSLSNXT,@AFSLRVOF
  1. S DX=30 X XY W "DATE/TIME:",@AFSLRVON,AFSLSCDT,@AFSLRVOF
  1. S DX=60 X XY W "DUE DATE: ",@AFSLRVON,AFSLEBDT,@AFSLRVOF
  1. S DY=9,DX=2 X XY W "TREASURY#: ",@AFSLRVON,AFSLTSCD,@AFSLRVOF
  1. S DY=18,DX=31 X XY W @AFSLRVON,AFSLSTAT,@AFSLRVOF
  1. ;S DY=20,DX=15 X XY W "CERTIFYING OFFICER: ",@AFSLRVON,AFSLCOFF,@AFSLRVOF
  1. S DY=21,DX=15 X XY W "ACCOUNTING TECHNICIAN:",@AFSLRVON,AFSLUSR,@AFSLRVOF
  1. S DY=22,DX=15 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF S AFSLERR=""
  1. Q
  1. EXPBDT ;
  1. S DY=8,DX=71 X XY S AFSLCHRS=6 D READCHRS^AFSLSRDR S AFSLEBDT=AFSLVOUT
  1. I AFSLEBDT=""!(AFSLEBDT["^") S AFSLERR="" Q
  1. I AFSLEBDT'?6N W *7 S AFSLERR="***MUST ENTER 6 DIGITS**",DY=23,DX=15 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF S AFSLERR="" G EXPBDT
  1. I $E(AFSLEBDT,1,2)<1!($E(AFSLEBDT,1,2)>12) W *7 S AFSLERR="ENTERED MONTH IS INVALID",DY=23,DX=15 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF S AFSLERR="" G EXPBDT
  1. I $E(AFSLEBDT,3,4)<1!($E(AFSLEBDT,3,4)>31) W *7 S AFSLERR="*ENTERED DAY IS INVALID*",DY=23,DX=15 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF S AFSLERR="" G EXPBDT
  1. S %H=$H D YX^%DTC S AFSLSCDT=$E(X,4,7)_$E(X,2,3)
  1. I AFSLEBDT<AFSLSCDT W *7 S AFSLERR="DUE DATE CANNOT BE < TODAY",DY=23,DX=15 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF S AFSLERR="" H 3 X XY W " " G EXPBDT
  1. ;
  1. S ZZ=1,AFSLDFND(ZZ)="",AFSLNXSC=0,X=AFSLEBDT D ^%DT S AFSLSDDT=Y D CHKDT
  1. Q
  1. SCHD ;
  1. I AFSLEBDT=""!(AFSLEBDT["^") Q
  1. S DY=10,DX=10 X XY W @AFSLRVON,"TREASURY SCHEDULE FOR WHICH THIS BATCH IS PLANNED FOR EXPORT:",@AFSLRVOF S AFSLCHRS=6 D READCHRS^AFSLSRDR S AFSLTSCD=AFSLVOUT
  1. I '$D(^AFSLAFP(AFSLYNOD,1,0)) S $P(^AFSLAFP(AFSLYNOD,1,0),U,1)="^9002325.01^0^0"
  1. I $P(^AFSLAFP(AFSLYNOD,1,0),U,4)="0" S DIC="^AFSLAFP("_AFSLYNOD_",1,",DA(1)=AFSLYNOD,DIC(0)="L",DLAYGO="9002325.01",X=AFSLPFX_"0001",AFSLSNXT=X D ^DIC,SETF
  1. EXTYP ;
  1. S DY=15,DX=10 X XY W " "
  1. S DY=20,DX=15 X XY W " "
  1. S DY=21,DX=15 X XY W " "
  1. S DY=11,DX=1 X XY W " "
  1. K DIR S DIR(0)="S^T:TAPE (CHECK FORMAT GROUPED BY PAYEE;A:ACH (GROUPED BY PAYEE);B:ACH (ONE ENCLOSURE PER ENTERED PMT);C:CHECKS (GROUPED BY PAYEE)",DIR("A")="TREASURY FORMAT TYPE?",DIR("B")="A"
  1. D ^DIR
  1. S AFSLTPEX=X
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) S AFSLERR="" Q
  1. I AFSLTPEX="" S AFSLTPEX="A"
  1. I AFSLTPEX["^" S AFSLERR="" Q
  1. I AFSLTPEX="A" W !!,@AFSLRVON,"NOTE: WHEN ENTERING INTO AN 'ACH-FORMAT-A' BATCH/SCHEDULE, YOU'LL ONLY",!," BE ALLOWED TO ENTER *1* ADDENDUM PER UNIQUE PAYEE IN BATCH.",@AFSLRVOF," <PRESS RETURN>" R AFSLRTNX:300 G FNDLST
  1. I AFSLTPEX="B" W !!,@AFSLRVON,"NOTE: WHEN ENTERING PMTS INTO AN 'ACH-FORMAT-B' BATCH/SCHEDULE, YOU'LL BE ",!," ASKED TO ENTER AN 80-COLUMN ADDENDUM FOR EACH PAYMENT ENTERED."
  1. I AFSLTPEX="B" W !!," PLEASE ENTER THE ADDENDUM FOR EACH UNIQUE PAYEE FOR THE SCHEDULE INTO THE",!," *** FIRST *** PAYMENT ENTERED FOR THE PAYEE.",@AFSLRVOF," <PRESS RETURN/ENTER>" R AFSLRTNX:300
  1. FNDLST ;
  1. S AFSLSLST=0
  1. FNDLST2 ;
  1. I '$O(^AFSLAFP(AFSLYNOD,1,"B",AFSLSLST)) G SCHD2
  1. S AFSLSLST=$O(^AFSLAFP(AFSLYNOD,1,"B",AFSLSLST))
  1. G FNDLST2
  1. SCHD2 ;
  1. I AFSLSLST=0 S AFSLSLST=AFSLAREA_"0000"
  1. S AFSLSNXT=AFSLSLST+1
  1. S AFSLSNXT=AFSLTSCD
  1. S AFSLBNUM=$E(AFSLSNXT,3,6)
  1. I AFSLBNUM>9999 W !,"YOU MAY NOT EXCEED 9,999 BATCHES IN A FISCAL YEAR. NOTIFY ADP MANAGER." G FINI
  1. I $L(AFSLSNXT)'=6 W !,"PROBLEM ENCOUNTERED COMPUTING NEXT AVAILABLE BATCH#. NOTIFY ADP MANAGER" G FINI
  1. S DIC="^AFSLAFP("_AFSLYNOD_",1,",DA(1)=AFSLYNOD,DIC(0)="L",DLAYGO="9002325.01",X=AFSLSNXT D ^DIC
  1. I $D(AFSLRFLG) S AFSLY=Y
  1. D SETF
  1. Q
  1. FINI ;
  1. I $D(AFSLRFLG) Q
  1. I '$D(AFSLERR) G ERRSKP
  1. I '$D(AFSLRVON) D CRTSETUP^AFSLCRTS
  1. S DY=22,DX=20 X XY W @AFSLRVON,AFSLERR,@AFSLRVOF,*7
  1. S DY=23,DX=54 X XY W @AFSLRVON,"<PRESS RETURN/ENTER>",@AFSLRVOF R AFSLRTNX:300
  1. ERRSKP ;
  1. K AFSLCERO,AFSLCERT,AFSLCNOD,AFSLCNXT,AFSLCOFF,AFSLEBDT,AFSLERR,AFSLFYR,AFSLOPN,AFSLPFX,AFSLRTNX,AFSLSCHD,AFSLUSER,AFSLCHRS,AFSLVOUT
  1. K AFSLSCDT,AFSLSFND,AFSLSLST,AFSLSNOD,AFSLSNXT,AFSLSTAT,AFSLSZRO,AFSLZROS,AFSLUSR,AFSLYNOD,AFSLRVOF,AFSLRVON,AFSLYFND,AFSLYZRO
  1. K AFSL2OPN,AFSLOPT,AFSLAREA,AFSLARNM,AFSLDFND,AFSLNXSC,AFSLSDDT,AFSLSIT,AFSLXAST,AFSLSAD,AFSLE,AFSLSOPN
  1. K AFSLVDTE,AFSLVIOL,DIE,DIK,DIC,DLAYGO,DR,DX,DY,ZZ
  1. QUIT
  1. SETF ;
  1. D ^AFSLCTLU
  1. S AFSLSCHD=AFSLSNXT D ^AFSLSCLU
  1. S %H=$H D YX^%DTC S AFSLSCDT=Y
  1. ;S AFSLUSR=$P(^VA(200,DUZ,0),U,1),AFSLCERT=$P(^AFSLCERT(AFSLCNOD,0),U,1),AFSLCOFF=$P(^VA(200,AFSLCERT,0),U,1) ;ACR*2.1*19.02 IM16848
  1. S AFSLUSR=$$NAME2^ACRFUTL1(DUZ) ;ACR*2.1*19.02 IM16848
  1. S AFSLCERT=$P(^AFSLCERT(AFSLCNOD,0),U) ;ACR*2.1*19.02 IM16848
  1. S AFSLCOFF=$$NAME2^ACRFUTL1(AFSLCERT) ;ACR*2.1*19.02 IM16848
  1. S AFSLCERO=AFSLCNOD
  1. I '$D(AFSLTPEX) S AFSLTPEX=""
  1. S DA=AFSLSNOD,DIE=DIC,DR="1///^S X=AFSLSCDT;2///^S X=AFSLCERO;3///^S X=AFSLEBDT;6///^S X=AFSLOPN;8///^S X=AFSLUSR;10///^S X=AFSLTSCD;22///^S X=AFSLTPEX"
  1. L +^AFSLAFP(AFSLYNOD,1,AFSLSNOD,0):0 I $T D ^DIE L -^AFSLAFP(AFSLYNOD,1,AFSLSNOD,0)
  1. KEEPYN ;
  1. I $D(Y) S DIK=DIE D ^DIK S AFSLSTAT="**NOT OPENED**" Q
  1. S AFSLSTAT="****OPENED****"
  1. D DSPF
  1. Q
  1. CHKDT ;
  1. I '$O(^AFSLAFP("J",AFSLSDDT,AFSLYNOD,AFSLNXSC)) S AFSLDFND(ZZ)="",ZZ=1 G CHKOPN
  1. S AFSLDFND(ZZ)=$O(^AFSLAFP("J",AFSLSDDT,AFSLYNOD,AFSLNXSC))
  1. S AFSLNXSC=$O(^AFSLAFP("J",AFSLSDDT,AFSLYNOD,AFSLNXSC)),ZZ=ZZ+1 G CHKDT
  1. CHKOPN ;
  1. Q:AFSLDFND(ZZ)=""
  1. S AFSLSOPN=AFSLDFND(ZZ)
  1. I $D(^AFSLAFP("K","O",AFSLYNOD,AFSLSOPN)) D CHKCO
  1. S ZZ=ZZ+1 G CHKOPN
  1. Q
  1. CHKCO ;
  1. S AFSLSCHD=$P(^AFSLAFP(AFSLYNOD,1,AFSLSOPN,0),U,1)
  1. I $D(^AFSLAFP("C",AFSLCNOD,AFSLYNOD,AFSLSOPN)) S AFSL2OPN="1",DY=15,DX=10 X XY W @AFSLRVON,"WARNING: BATCH ",AFSLSCHD," IS ALREADY OPEN FOR DUE DATE ",AFSLEBDT,".",@AFSLRVOF,*7
  1. Q