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

AFSLTF1.m

Go to the documentation of this file.
AFSLTF1 ;IHS/OIRM/DSD/JDM,HJT - EXPORT PAYMENT RCDS TO FILE(ECS)-MODULE #2;  [ 10/27/2004   4:21 PM ]
 ;;3.0t1;1166 APPROVALS FOR PAYMENT;**13**;
 ;;MODIFIED FOR CACHE' COMPLIANCE ACR*2.1*9
 ;Modified for Y2k compliance   IHS/DSD/HJT    1/24/1999
 ;Generate unix file for convey of pmts to Treasury - part 2
 U IO(0)
 S (AFSL1,AFSLEMSG,AFSLFLG1,AFSL1A,AFSL2,AFSL3,AFSL4,AFSL5)=0
 S (AFSLSCH1,AFSLFYN,AFSLSEQ,AFSLSEQ1,AFSLCNT,AFSLAMT,AFSLIN)=0
 S AFSLPG=1
 S AFSLFY=AFSLTFY,AFSLNXPN=0
PRC ;
 ;  Var AFSLFY should be a 4-digit year here.   IHS/DSD/HJT  1/23/1999
 I '$O(^AFSLAFP("B",AFSLFY,AFSLFYN)) D ASKYR
 S AFSLFYN="",AFSLFYN=$O(^AFSLAFP("B",AFSLFY,AFSLFYN))
 S (AFSLEIN,AFSLEIN1)=""
 S (AFSLCBC,AFSLFLG,AFSLCBA,AFSLCNT)=0,AFSLCNT1=1
 ;
TREAS ;GET & CHECK SCHED#
 I AFSLFYN="" G PRC
 S AFSLBN=AFSLTNUM,X=AFSLTNUM G TREASX
 S AFSLBN=$P(^AFSLAFP(AFSLFYN,2),U,1)+1
 S DIR(0)="F^6:6"
 S DIR("B")=AFSLBN
 S DIR("A")="TREASURY SCHEDULE NUMBER (6 CHARACTERS):"
 S DIR("?")="Enter a six characters"
 S DIR("??")="AFSL TREASURY"
 U IO(0) D ^DIR S AFSLBN=Y
 ;
TREASX ;
 S AFSLSCDX="0000"_X
 S DIE="^AFSLAFP(",DA=AFSLFYN,DR="2////"_AFSLBN D ^DIE
 S AFSLSH11="0000"_AFSLBN
 ;
GROUPING ;
 I AFSLXTYP="A"!(AFSLXTYP="C") S X="Y" G GROUPX
 I AFSLXTYP="B" S X="N" G GROUPX
 K DIR
 S DIR(0)="S^Y:GROUP PAYMENTS FOR PAYEE (CHECKS & ACH-TYPE A);N:NO, DONT GROUP (1 ENCLOSURE FOR EACH PMT ENTERED)"
 S DIR("A")="PAYMENT GROUPING OPTION",DIR("B")="N"
 D ^DIR
 I $D(DUOUT)!($D(DTOUT))!($D(DIROUT)) U IO(0) W !!,"NO '^' ALLOWED AT THIS TIME" H 2 G GROUPING
 ;
GROUPX ;
 S AFSLEXTP=X
 I AFSLEXTP="Y"!(AFSLEXTP="y") S AFSLEXTP="A"
 I AFSLEXTP="N"!(AFSLEXTP="n") S AFSLEXTP="B"
XHDR ;CREATE '&' AND 'A' CARDS
 D HDR^AFSLTF2
XDTL ;LOOP THRU 'ME' XREF & CREATE DETAIL RCDS
 ;
 ;Kill Temp work globals
 K ^AFSLPTMP,^AFSLXTMP   ;EXEMPTION ************** H.A.S. DOWNLOAD G
 ;
 ; Set ^AFSLPTMP( Nodes
 D XREF
 ;
 I AFSLEXTP="A" D
 .D ^AFSLTPRC
 .S (AFSLCKNX,AFSLCNTX,AFSLPAX,AFSLPTX,AFSLPCX)=0
 .D WRLS^AFSLTPRC ; Set ^AFSLXTMP( NODES
 ;
 I AFSLEXTP="B" D
 .D ^AFSLTPAC
 .S (AFSLCKNX,AFSLCNTX,AFSLPAX,AFSLPTX,AFSLPCX)=0
 .D WRLS^AFSLTPRC ; Set ^AFSLXTMP( NODES
 ;
XTRL ;CREATE TRAILER RCDS
 D EXDAT
 S AFSLFLG=1
 I AFSLEMSG=0,AFSLFLG=1 S AFSLECSP=1 D TRL^AFSLTF2 Q
 S AFSLEFLG=1
 Q
XREF ;SET ^AFSLPTMP( NODES
 S AFSLMNX=0
LOOPME ;Loop thru 'ME' Xref using all payments in all export batches
 ;
 S AFSLMNX=$O(^AFSLAFP("ME",AFSLFYN,AFSLMNX))
 Q:AFSLMNX=""
 ;
 U IO(0) W !,"PROCESSING BATCH:",AFSLTRSC
 S AFSLBYND=AFSLFYN D PRCX
 I '$D(AFSLBCNT) S AFSLBCNT=0
 S AFSLBCNT=AFSLBCNT+1 S AFSLBATC(AFSLBCNT)=AFSLBND
 G LOOPME
 ;
PRCX ;SET TEMP EXPORT GBL ^AFSLPTMP(
 Q:AFSLMNX=""
 S AFSLBND=AFSLMNX,AFSLBTCX=$P(^AFSLAFP(AFSLBYND,1,AFSLMNX,0),U,1)
 G RNDXP
 S AFSLBND=$O(^AFSLAFP("L",AFSLMNX,AFSLBYND,0))
 S AFSLBND=$O(^AFSLAFP(AFSLBYND,1,AFSLMNX,0))
 ;
RNDXP ;REINDEX XREF 'P' FOR THE BATCH
 F XX=1:1:9999 D
 .Q:'$O(^AFSLAFP(AFSLBYND,1,AFSLBND,1,XX))
 .S DIK="^AFSLAFP("_AFSLBYND_",1,"_AFSLBND_",1,",DIK(1)="33"
 .S DA=XX,DA(2)=AFSLBYND,DA(1)=AFSLBND
 .D EN^DIK
 S AFSLONX="0"
 S AFSLSCH1=AFSLBND,AFSLFYN=AFSLBYND D CHK
 ;
LOOPO ;
 Q:'$L($O(^AFSLAFP("P",AFSLONX)))
 S AFSLONX=$O(^AFSLAFP("P",AFSLONX))
 S AFSLPND=0 D LOOPP
 G LOOPO
 ;
LOOPP ;
 ; This subroutine sets up temporary globals inorder to write the
 ; payment details to a Unix file (DE - call #58).
 ;
 I '$O(^AFSLAFP("P",AFSLONX,AFSLBYND,AFSLBND,AFSLPND)) Q
 S AFSLPND=$O(^AFSLAFP("P",AFSLONX,AFSLBYND,AFSLBND,AFSLPND))
 I '$D(^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,0)) S AFSLPND0="",AFSLPND1="",AFSLPND2="" G SKPNDS
 I '$D(^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,1)) S AFSLPND1="",AFSLPND2="" G SKPNDS
 I '$D(^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,2)) S AFSLPND2="" G SKPNDS
 S AFSLPND0=^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,0)
 S AFSLPND1=^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,1)
 S AFSLPND2=^AFSLAFP(AFSLBYND,1,AFSLBND,1,AFSLPND,2)
 ;
SKPNDS ;
 I '$D(AFSLPND0) S AFSLPND0=""
 I '$D(AFSLPND1) S AFSLPND1=""
 I '$D(AFSLPND2) S AFSLPND2=""
 S AFSLNXPN=AFSLNXPN+1
 S ^AFSLPTMP(AFSLNXPN,0)=AFSLPND0
 S ^AFSLPTMP(AFSLNXPN,1)=AFSLPND1
 S ^AFSLPTMP(AFSLNXPN,2)=AFSLPND2
 G LOOPP
 Q
CHK ;checks for certification date,open/close,export date
 I $D(^AFSLAFP(AFSLFYN,1,AFSLSCH1,0)) S AFSLSCH3=^(0)
 E  Q
 I $D(^AFSLAFP(AFSLFYN,1,AFSLSCH1,2)) S AFSLSCH2=^(2)
 E  Q
 I '$D(^AFSLAFP("ME",AFSLFYN,$P(^AFSLAFP(AFSLFYN,1,AFSLSCH1,0),U,1))) Q
 I $P(AFSLSCH3,U,5)]"",$P(AFSLSCH2,U,1)']"",$P(AFSLSCH2,U,3)["C",$P(AFSLSCH2,U,2)'>DT-7 S AFSLFLG=1,AFSLFLG1=1,AFSLSCH=$P(AFSLSCH3,U,1),AFSLSCH1(AFSLSCH1)=AFSLSCH1,AFSLSCHZ=AFSLSCH1
 S AFSLOO="0000000000"
 Q
TNUM ;
 S X=AFSLBN
 S DIE="^AFSLAFP("_AFSLFYN_",1,"
 S DA(1)=AFSLFYN
 S DA=AFSLSCH1
 S DR="10////"_AFSLSH11
 D ^DIE
 Q
PDT ;
 S DIE="^AFSLAFP("_AFSLFYN_",1,"_AFSLSCH1_",1,",DA(2)=AFSLFYN
 S DA(1)=AFSLSCH1,DA=AFSLEIN1,DR="19////"_AFSLPDT
 D ^DIE
 S AFSLDNUM=$P(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,16)
 ;S AFSLDFYN=$P(^(1),U,15),AFSLPDNM=$P(^(1),U,7)   ;ACR*2.1*13.02 IM13574
 S AFSLDFYN=$P(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,15) ;ACR*2.1*13.02 IM13574 IM13574
 S AFSLPDNM=$P(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,7) ;ACR*2.1*13.02 IM13574 IM13574
 S DIE="^AFSLODOC("_AFSLDFYN_",1,"_AFSLDNUM_",1,"
 S DA(2)=AFSLDFYN
 S DA(1)=AFSLDNUM
 S DA=AFSLPDNM
 S DR="1////"_AFSLPDT
 D ^DIE
 Q
EXDAT ;set export date for schedule
 S AFSLBTN=0
STEXDT Q:'$O(AFSLBATC(AFSLBTN))
 S AFSLBTN=$O(AFSLBATC(AFSLBTN))
 S AFSLBATN=AFSLBATC(AFSLBTN)
 S DIE="^AFSLAFP("_AFSLFYN_",1,",DA(1)=AFSLFYN
 S DA=AFSLBATN,DR="5///TODAY"
 D ^DIE L -^AFSLAFP ; UNLK PMTS FILE
 G STEXDT
 Q
 S AFSLBTN=0
ASKYR ;
 K DIR
 S DIR("A")="FISCAL YEAR NOT SET-UP IN PAYMENT FILE.  RE-ENTER"
 ;Begin Y2k fix    IHS/DSD/HJT   1/23/1999
 ;   Asking for 2 digit year to lookup in file.  Ch anged to 4 digit.
 S DIR(0)="F^4:4"   ;Y2000
 D ^DIR
 I $D(DIRUT) S X="^"
 I X'?4N W *7 G ASKYR      ;Y2000
 ;End Y2k fix
 S AFSLFY=X
 Q