- AFSLRTT1 ;IHS/OIRM/OKCRDC/JDM - PROGRAM TO RE-EXPORT TREASURY TAPE #2; [ 09/27/2005 5:01 PM ]
- ;;3.0t1;1166 APPROVALS FOR PAYMENT;**19**;AUG 31, 2005
- ;Modified for Y2k compliance 12/24/98HJT
- ;Re-export U.S. treasury tape - part 2
- S (AFSL1,AFSLEMSG,AFSLFLG1,AFSL1A,AFSL2,AFSL3,AFSL4,AFSL5,AFSLSCH1,AFSLFYN,AFSLSEQ,AFSLSEQ1,AFSLCNT,AFSLAMT,AFSLVFU)=0
- ASK ;fy and payment type prompts
- U IO(0)
- D ^XBCLS
- S DY=15,DX=16 X XY
- K DIR
- S DIR(0)="D"
- S DIR("A")="ENTER THE EXPORT DATE YOU WISH TO RE-EXPORT"
- S DIR("?")="^S DIC=""^AFSLAFP("",DIC(0)=""FEQ"",D=""B"",DZ=""??"" D DQ^DICQ"
- D ^DIR
- I $D(DUOUT)!$D(DTOUT)!$D(DIROUT) S AFSLEFLG=1 Q
- ;Begin Y2k fix
- ;Create a 4-digit year for lookup in ^AFSLAFP 12/24/98HJT
- S AFSLFY=$E(Y,1,3)+1700 ;Y2000
- ;S AFSLFY=$E(Y,2,3)
- ;End of Y2k fix
- EDAT ;
- K DIR("?")
- S DIR(0)="DA",DIR("A")="Enter the Effective Date :" D ^DIR I $D(DUOUT) D ^XBCLS W !!,"NO ""^"" ALLOWED" G EDAT
- I $D(DTOUT)!$D(DUOUT) G ASK
- I $D(DIROUT) S AFSLEFLG=1 Q
- S AFSLPDT=$P(Y,".",1)
- DEV K IOP
- U IO(0) S %ZIS("A")="PRINTER TO PRINT TAPE CONTENTS REPORT: ",%ZIS="" D ^%ZIS S AFSLDEV=IO,AFSLDSL=IOSL
- I POP S AFSLEFLG=1 Q
- PRC ;loop thru payment type x-ref's
- L +^AFSLAFP:10 I '$T W !,"ANOTHER IS ENTERING DATA. YOU CANNOT PROCESS A TREASURY TAPE AT THIS TIME. TRY LATER." S AFSLEFLG=1 Q
- S AFSLFYN="",AFSLFYN=$O(^AFSLAFP("B",AFSLFY,AFSLFYN))
- S (AFSLEIN,AFSLEIN1)="",(AFSLCBC,AFSLFLG,AFSLCBA,AFSLCNT,AFSLIN)=0 S (AFSLCNT1,AFSLPG)=1
- TREAS ;
- S DIE="^AFSLAFP(",DIE("NO^")="",DA=AFSLFYN,DR="2//" D ^DIE
- S AFSLSH11="0000"_$P(^AFSLAFP(AFSLFYN,2),U,1)
- D HDR^AFSLRTT2
- F AFSLX="E","G","H" D XREF
- D EXDAT
- I AFSLEMSG=0,AFSLFLG=1 D TRL^AFSLRTT2,FRD^AFSLRTT3 Q
- ;E S AFSLEMSG=1
- S AFSLEMSG=1
- Q
- XREF ;
- F J=0:0 S AFSLEIN=$O(^AFSLAFP(AFSLX,AFSLEIN)) Q:(AFSLEIN="")!(AFSLEMSG=1) I $D(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN)) D SEIN0
- Q
- SEIN0 ;
- S AFSLSCH1="" F I=1:1 S AFSLSCH1=$O(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN,AFSLSCH1)) D:AFSLSCH1="" GSET Q:(AFSLSCH1="")!(AFSLEMSG=1) D CHK D:AFSLFLG1 SEIN1 S AFSLFLG1=0
- Q
- I '$D(^AFSLAFP("M",AFSLBN,AFSLFYN,AFSLSCH1)) D TNUM
- SEIN1 S AFSLEIN1="" F L=0:0 S AFSLEIN1=$O(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN,AFSLSCH1,AFSLEIN1)) Q:(AFSLEIN1="")!(AFSLEMSG=1) D DCHK^AFSLRTT2 Q:AFSLEMSG=1 D SEIN2
- Q
- EXDAT ;set export date for schedule
- S AFSLSC12="" F V=0:0 S AFSLSC12=$O(AFSLSCH1(AFSLSC12)) Q:AFSLSC12="" S DIE="^AFSLAFP(AFSLFYN,1,",DA(1)=AFSLFYN,DA=AFSLSC12,DR="5///TODAY" D ^DIE L -^AFSLAFP ;UNLOCK 1166 PAYMENTS FILE
- Q
- SEIN2 Q:('$D(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,0)))!($P(^(0),U,27)["D") S AFSLTT=^(0)
- S:$D(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1)) AFSLTT5=^(1)
- S:$D(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1)) AFSLTT=AFSLTT_$P(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,21)
- S X=$P(AFSLTT,U,11)
- S X2="2",X3=10
- D COMMA^%DTC
- S AFSLTT9=$E(X,1,9)
- S AFSLTT9=$J(AFSLTT9,10)
- D PDT
- S AFSLCBC=AFSLCBC+1,AFSLCBA=AFSLCBA+$P(AFSLTT,U,11)
- D GSET1
- Q
- GSET1 ;module to generate line item payment data
- S AFSLTT1A=$S(AFSLX="E":$P(AFSLTT,U,10),1:$P(AFSLTT,U,24))
- S AFSLTT2=$S(AFSLX="E":$P(^AUTTVNDR(AFSLTT1A,11),U,1),1:$P(^VA(200,AFSLTT1A,1),U,9))
- S AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)=$P(AFSLTT,U,20)_" "_"$"_AFSLTT9_" "_$P(AFSLTT,U,14) S AFSLLG=$L(AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)),AFSLLG=55-AFSLLG
- S AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)=AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)_$J("",AFSLLG)
- ;I AFSLVFU=1,AFSLX["E" S AFSLCBAV=-$P(AFSLTT,U,11) S AFSLCBAV=$P(^AUTTVNDR(AFSLTT1A,11),U,7)-AFSLCBAV S DIE=9999999.11,DA=AFSLTT1A,DR="1107///^S X=AFSLCBAV" D ^DIE
- D:AFSLCBC=12 GSET
- Q
- GSET ;module to generate record total data
- Q:AFSLCBC=0
- S AFSLCBA=AFSLCBA*100,AFSLCBA=$E(AFSLOO,1,8-$L(AFSLCBA))_AFSLCBA,AFSLCBA=$J(AFSLCBA,8)
- S AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLSH11_"2"
- S AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLTT(AFSLTT2,AFSLCNT1,0)_AFSLTT2_$J("",12-$L(AFSLTT2))_"0"_AFSLCBA_"IHS"_$J("",7)_"B"
- ;S AFSLTT4=$S(AFSLX="E":$P(^AUTTVNDR(AFSLTT1A,0),U,1),1:$P(^VA(200,AFSLTT1A,0),U,1)),AFSLTT4=AFSLTT4_$J("",35-$L(AFSLTT4)) ;ACR*2.1*19.02 IM16848
- S AFSLTT4=$S(AFSLX="E":$P(^AUTTVNDR(AFSLTT1A,0),U,1),1:$$NAME2^ACRFUTL1(AFSLTT1A)) ;ACR*2.1*19.02 IM16848
- S AFSLTT4=AFSLTT4_$J("",35-$L(AFSLTT4)) ;ACR*2.1*19.02 IM16848
- S AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLTT(AFSLTT2,AFSLCNT1,0)_AFSLTT4
- I AFSLX["E" D VADR^AFSLTT4
- I AFSLX'["E" D EADR^AFSLTT4
- S AFSLTT(AFSLTT2,AFSLCNT1,2)=AFSLTT(AFSLTT2,AFSLCNT1,2)_$J("",67)_$S(AFSLCBC<10:"0"_AFSLCBC,1:AFSLCBC)
- S AFSLCNT=AFSLCNT+1,AFSLAMT=AFSLAMT+AFSLCBA,AFSLCBC=0,AFSLCBA=0
- D PRC^AFSLRTT2 K AFSLTT S AFSLCNT1=AFSLCNT1+1
- 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
- S AFSLFLG=1,AFSLFLG1=1,AFSLSCH=$P(AFSLSCH3,U,1),AFSLSCH1(AFSLSCH1)=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),AFSLDFYN=$P(^(1),U,15),AFSLPDNM=$P(^(1),U,7)
- 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
- AFSLRTT1 ;IHS/OIRM/OKCRDC/JDM - PROGRAM TO RE-EXPORT TREASURY TAPE #2; [ 09/27/2005 5:01 PM ]
- +1 ;;3.0t1;1166 APPROVALS FOR PAYMENT;**19**;AUG 31, 2005
- +2 ;Modified for Y2k compliance 12/24/98HJT
- +3 ;Re-export U.S. treasury tape - part 2
- +4 SET (AFSL1,AFSLEMSG,AFSLFLG1,AFSL1A,AFSL2,AFSL3,AFSL4,AFSL5,AFSLSCH1,AFSLFYN,AFSLSEQ,AFSLSEQ1,AFSLCNT,AFSLAMT,AFSLVFU)=0
- ASK ;fy and payment type prompts
- +1 USE IO(0)
- +2 DO ^XBCLS
- +3 SET DY=15
- SET DX=16
- XECUTE XY
- +4 KILL DIR
- +5 SET DIR(0)="D"
- +6 SET DIR("A")="ENTER THE EXPORT DATE YOU WISH TO RE-EXPORT"
- +7 SET DIR("?")="^S DIC=""^AFSLAFP("",DIC(0)=""FEQ"",D=""B"",DZ=""??"" D DQ^DICQ"
- +8 DO ^DIR
- +9 IF $DATA(DUOUT)!$DATA(DTOUT)!$DATA(DIROUT)
- SET AFSLEFLG=1
- QUIT
- +10 ;Begin Y2k fix
- +11 ;Create a 4-digit year for lookup in ^AFSLAFP 12/24/98HJT
- +12 ;Y2000
- SET AFSLFY=$EXTRACT(Y,1,3)+1700
- +13 ;S AFSLFY=$E(Y,2,3)
- +14 ;End of Y2k fix
- EDAT ;
- +1 KILL DIR("?")
- +2 SET DIR(0)="DA"
- SET DIR("A")="Enter the Effective Date :"
- DO ^DIR
- IF $DATA(DUOUT)
- DO ^XBCLS
- WRITE !!,"NO ""^"" ALLOWED"
- GOTO EDAT
- +3 IF $DATA(DTOUT)!$DATA(DUOUT)
- GOTO ASK
- +4 IF $DATA(DIROUT)
- SET AFSLEFLG=1
- QUIT
- +5 SET AFSLPDT=$PIECE(Y,".",1)
- DEV KILL IOP
- +1 USE IO(0)
- SET %ZIS("A")="PRINTER TO PRINT TAPE CONTENTS REPORT: "
- SET %ZIS=""
- DO ^%ZIS
- SET AFSLDEV=IO
- SET AFSLDSL=IOSL
- +2 IF POP
- SET AFSLEFLG=1
- QUIT
- PRC ;loop thru payment type x-ref's
- +1 LOCK +^AFSLAFP:10
- IF '$TEST
- WRITE !,"ANOTHER IS ENTERING DATA. YOU CANNOT PROCESS A TREASURY TAPE AT THIS TIME. TRY LATER."
- SET AFSLEFLG=1
- QUIT
- +2 SET AFSLFYN=""
- SET AFSLFYN=$ORDER(^AFSLAFP("B",AFSLFY,AFSLFYN))
- +3 SET (AFSLEIN,AFSLEIN1)=""
- SET (AFSLCBC,AFSLFLG,AFSLCBA,AFSLCNT,AFSLIN)=0
- SET (AFSLCNT1,AFSLPG)=1
- TREAS ;
- +1 SET DIE="^AFSLAFP("
- SET DIE("NO^")=""
- SET DA=AFSLFYN
- SET DR="2//"
- DO ^DIE
- +2 SET AFSLSH11="0000"_$PIECE(^AFSLAFP(AFSLFYN,2),U,1)
- +3 DO HDR^AFSLRTT2
- +4 FOR AFSLX="E","G","H"
- DO XREF
- +5 DO EXDAT
- +6 IF AFSLEMSG=0
- IF AFSLFLG=1
- DO TRL^AFSLRTT2
- DO FRD^AFSLRTT3
- QUIT
- +7 ;E S AFSLEMSG=1
- +8 SET AFSLEMSG=1
- +9 QUIT
- XREF ;
- +1 FOR J=0:0
- SET AFSLEIN=$ORDER(^AFSLAFP(AFSLX,AFSLEIN))
- IF (AFSLEIN="")!(AFSLEMSG=1)
- QUIT
- IF $DATA(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN))
- DO SEIN0
- +2 QUIT
- SEIN0 ;
- +1 SET AFSLSCH1=""
- FOR I=1:1
- SET AFSLSCH1=$ORDER(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN,AFSLSCH1))
- IF AFSLSCH1=""
- DO GSET
- IF (AFSLSCH1="")!(AFSLEMSG=1)
- QUIT
- DO CHK
- IF AFSLFLG1
- DO SEIN1
- SET AFSLFLG1=0
- +2 QUIT
- +3 IF '$DATA(^AFSLAFP("M",AFSLBN,AFSLFYN,AFSLSCH1))
- DO TNUM
- SEIN1 SET AFSLEIN1=""
- FOR L=0:0
- SET AFSLEIN1=$ORDER(^AFSLAFP(AFSLX,AFSLEIN,AFSLFYN,AFSLSCH1,AFSLEIN1))
- IF (AFSLEIN1="")!(AFSLEMSG=1)
- QUIT
- DO DCHK^AFSLRTT2
- IF AFSLEMSG=1
- QUIT
- DO SEIN2
- +1 QUIT
- EXDAT ;set export date for schedule
- +1 ;UNLOCK 1166 PAYMENTS FILE
- SET AFSLSC12=""
- FOR V=0:0
- SET AFSLSC12=$ORDER(AFSLSCH1(AFSLSC12))
- IF AFSLSC12=""
- QUIT
- SET DIE="^AFSLAFP(AFSLFYN,1,"
- SET DA(1)=AFSLFYN
- SET DA=AFSLSC12
- SET DR="5///TODAY"
- DO ^DIE
- LOCK -^AFSLAFP
- +2 QUIT
- SEIN2 IF ('$DATA(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,0)))!($PIECE(^(0),U,27)["D")
- QUIT
- SET AFSLTT=^(0)
- +1 IF $DATA(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1))
- SET AFSLTT5=^(1)
- +2 IF $DATA(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1))
- SET AFSLTT=AFSLTT_$PIECE(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,21)
- +3 SET X=$PIECE(AFSLTT,U,11)
- +4 SET X2="2"
- SET X3=10
- +5 DO COMMA^%DTC
- +6 SET AFSLTT9=$EXTRACT(X,1,9)
- +7 SET AFSLTT9=$JUSTIFY(AFSLTT9,10)
- +8 DO PDT
- +9 SET AFSLCBC=AFSLCBC+1
- SET AFSLCBA=AFSLCBA+$PIECE(AFSLTT,U,11)
- +10 DO GSET1
- +11 QUIT
- GSET1 ;module to generate line item payment data
- +1 SET AFSLTT1A=$SELECT(AFSLX="E":$PIECE(AFSLTT,U,10),1:$PIECE(AFSLTT,U,24))
- +2 SET AFSLTT2=$SELECT(AFSLX="E":$PIECE(^AUTTVNDR(AFSLTT1A,11),U,1),1:$PIECE(^VA(200,AFSLTT1A,1),U,9))
- +3 SET AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)=$PIECE(AFSLTT,U,20)_" "_"$"_AFSLTT9_" "_$PIECE(AFSLTT,U,14)
- SET AFSLLG=$LENGTH(AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0))
- SET AFSLLG=55-AFSLLG
- +4 SET AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)=AFSLTT(AFSLTT2,AFSLCNT1,3,AFSLCBC,0)_$JUSTIFY("",AFSLLG)
- +5 ;I AFSLVFU=1,AFSLX["E" S AFSLCBAV=-$P(AFSLTT,U,11) S AFSLCBAV=$P(^AUTTVNDR(AFSLTT1A,11),U,7)-AFSLCBAV S DIE=9999999.11,DA=AFSLTT1A,DR="1107///^S X=AFSLCBAV" D ^DIE
- +6 IF AFSLCBC=12
- DO GSET
- +7 QUIT
- GSET ;module to generate record total data
- +1 IF AFSLCBC=0
- QUIT
- +2 SET AFSLCBA=AFSLCBA*100
- SET AFSLCBA=$EXTRACT(AFSLOO,1,8-$LENGTH(AFSLCBA))_AFSLCBA
- SET AFSLCBA=$JUSTIFY(AFSLCBA,8)
- +3 SET AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLSH11_"2"
- +4 SET AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLTT(AFSLTT2,AFSLCNT1,0)_AFSLTT2_$JUSTIFY("",12-$LENGTH(AFSLTT2))_"0"_AFSLCBA_"IHS"_$JUSTIFY("",7)_"B"
- +5 ;S AFSLTT4=$S(AFSLX="E":$P(^AUTTVNDR(AFSLTT1A,0),U,1),1:$P(^VA(200,AFSLTT1A,0),U,1)),AFSLTT4=AFSLTT4_$J("",35-$L(AFSLTT4)) ;ACR*2.1*19.02 IM16848
- +6 ;ACR*2.1*19.02 IM16848
- SET AFSLTT4=$SELECT(AFSLX="E":$PIECE(^AUTTVNDR(AFSLTT1A,0),U,1),1:$$NAME2^ACRFUTL1(AFSLTT1A))
- +7 ;ACR*2.1*19.02 IM16848
- SET AFSLTT4=AFSLTT4_$JUSTIFY("",35-$LENGTH(AFSLTT4))
- +8 SET AFSLTT(AFSLTT2,AFSLCNT1,0)=AFSLTT(AFSLTT2,AFSLCNT1,0)_AFSLTT4
- +9 IF AFSLX["E"
- DO VADR^AFSLTT4
- +10 IF AFSLX'["E"
- DO EADR^AFSLTT4
- +11 SET AFSLTT(AFSLTT2,AFSLCNT1,2)=AFSLTT(AFSLTT2,AFSLCNT1,2)_$JUSTIFY("",67)_$SELECT(AFSLCBC<10:"0"_AFSLCBC,1:AFSLCBC)
- +12 SET AFSLCNT=AFSLCNT+1
- SET AFSLAMT=AFSLAMT+AFSLCBA
- SET AFSLCBC=0
- SET AFSLCBA=0
- +13 DO PRC^AFSLRTT2
- KILL AFSLTT
- SET AFSLCNT1=AFSLCNT1+1
- +14 QUIT
- CHK ;checks for certification date,open/close,export date
- +1 IF $DATA(^AFSLAFP(AFSLFYN,1,AFSLSCH1,0))
- SET AFSLSCH3=^(0)
- +2 IF '$TEST
- QUIT
- +3 IF $DATA(^AFSLAFP(AFSLFYN,1,AFSLSCH1,2))
- SET AFSLSCH2=^(2)
- +4 IF '$TEST
- QUIT
- +5 IF '$DATA(^AFSLAFP("ME",AFSLFYN,$PIECE(^AFSLAFP(AFSLFYN,1,AFSLSCH1,0),U,1)))
- QUIT
- +6 SET AFSLFLG=1
- SET AFSLFLG1=1
- SET AFSLSCH=$PIECE(AFSLSCH3,U,1)
- SET AFSLSCH1(AFSLSCH1)=AFSLSCH1
- +7 SET AFSLOO="0000000000"
- +8 QUIT
- TNUM ;
- +1 SET X=AFSLBN
- +2 SET DIE="^AFSLAFP("_AFSLFYN_",1,"
- +3 SET DA(1)=AFSLFYN
- +4 SET DA=AFSLSCH1
- +5 SET DR="10////"_AFSLSH11
- +6 DO ^DIE
- +7 QUIT
- PDT ;
- +1 SET DIE="^AFSLAFP("_AFSLFYN_",1,"_AFSLSCH1_",1,"
- SET DA(2)=AFSLFYN
- +2 SET DA(1)=AFSLSCH1
- SET DA=AFSLEIN1
- SET DR="19////"_AFSLPDT
- +3 DO ^DIE
- +4 SET AFSLDNUM=$PIECE(^AFSLAFP(AFSLFYN,1,AFSLSCH1,1,AFSLEIN1,1),U,16)
- SET AFSLDFYN=$PIECE(^(1),U,15)
- SET AFSLPDNM=$PIECE(^(1),U,7)
- +5 SET DIE="^AFSLODOC("_AFSLDFYN_",1,"_AFSLDNUM_",1,"
- +6 SET DA(2)=AFSLDFYN
- +7 SET DA(1)=AFSLDNUM
- +8 SET DA=AFSLPDNM
- +9 SET DR="1////"_AFSLPDT
- +10 DO ^DIE
- +11 QUIT