*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFPKPAKB           
*S*** System   : FINANCIER          
*S*** Title    : Packaging Selection
*S*** Function : This program drives the selection of students for a    
*S***             mass packaging run.  It reads a work file of selected 
*S***             students (created by WFPKSELB)
*S***             and then invokes a year-specific program to apply     
*S***             packaging logic.  
*S***       
*S***      Copyright 1995 - 2012 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WWREQIBD /* Input parameter PDA           
*S**  LOCAL USING WFAIDYRD /* Passed to object subprogram (WF-AIDYEAR)  
*S**  LOCAL USING WFAIDYRR /* Passed to object subprogram (WF-AIDYEAR)  
*S**  LOCAL USING WWSTDNTD /* Passed to object subprogram (WW-STUDENT)  
*S**  LOCAL USING WWSTDNTR /* Passed to object subprogram (WW-STUDENT)  
*S**  LOCAL USING WWAOBJ   /* Used by object subprograms    
*S***       
*S**  LOCAL USING WFPKPAKL /* Packaging LDA     
*S**  LOCAL USING WFPKPAKD /* Packaging PDA (Student data)  
*S**  LOCAL USING WFPKFNDD /* Packaging Funds PDA           
*S**  LOCAL USING WWCONST  /* Constants LDA     
*S**  LOCAL USING WFMAINTD /* Batch transactions
*S**  LOCAL USING WWVALLDA /* Value validation  
*S***       
*S**  LOCAL 
*S**  01 #MAX-READ(P3) INIT<50>     
*S**  01 #MAX-WRITE(P3) INIT<10>    
*S**  01 #ET-READ-COUNTER(P7)       
*S**  01 #ET-WRITE-COUNTER(P7)      
*S**  01 #REPLACE-LIT(A30)          
*S***       
*S**  01 #DEBUG-DET(A1) INIT<'2'>   
*S**  01 #ESTIMATED-PELL-FUND(A8) INIT<'PELL-EST'>          
*S***       
*S**  01 #END-KEY       
*S**    02 WF-AID-YEAR(A4)          
*S**    02 WF-FAO(A2)   
*S**    02 WW-STUDENT-ID(A9)        
*S**    02 WF-EC-SRC(A1)
*S**  01 REDEFINE #END-KEY          
*S**    02 #END-KEY-RED(A16)        
*S***       
*S**  01 #STUDENT-PACKAGED(L)       
*S**  01 #TOTAL-PACKAGE(P7.2)       
*S**  01 #HOLD-AMOUNT(A7)           
*S**  01 REDEFINE #HOLD-AMOUNT      
*S**    02 #HOLD-AMOUNT-N(N5.2)     
*S***       
*S**  01 #READ-COUNTER(P7)          
*S**  01 #BYPASS-COUNTER(P7)        
*S**  01 #NOSELECT-COUNTER(P7)      
*S**  01 #SELECT-COUNTER(P7)        
*S**  01 #STATUS-COUNTER(P7)        
*S**  01 #WRITE-COUNTER(P7)         
*S**  01 #AWD-WRITE-COUNTER(P7)     
*S**  01 #PKG-WRITE-COUNTER(P7)     
*S**  01 #FR-WRITE-COUNTER(P7)      
*S**  01 #DL-WRITE-COUNTER(P7)      
*S**  01 #AWD-DISP(A10) 
*S**  01 #WRITE-LINE(A35)           
*S**  01 #WRITE-LINE-2(A65)         
*S**  01 #PASS-TEMP(A30)
*S**  01 #PASS-KEY(A30) 
*S**  01 #HOLD-TEMP1(A200)          
*S**  01 #HOLD-TEMP2(A200)          
*S**  01 #HOLD-TEMP3(A200)          
*S**  01 #HOLD-TEMP(A12)
*S**  01 #PRINT-LINE(A200)          
*S**  01 #PRINT-PRIORITY-REPORT(L)  
*S**  01 #79-UNDERSCORE(A79)        
*S**  01 #TAB-FIELDS(A100)          
*S**  01 REDEFINE #TAB-FIELDS       
*S**    02 #3T(A3)      
*S**    02 #3T-FILLER(A97)          
*S**  01 REDEFINE #TAB-FIELDS       
*S**    02 #6T(A6)      
*S**    02 #6T-FILLER(A94)          
*S**  01 REDEFINE #TAB-FIELDS       
*S**    02 #9T(A9)      
*S**    02 #9T-FILLER(A91)          
*S**  01 #PRT1-LINE     
*S**    02 #PRT1-COA-LIT(A10) INIT<'Pell COA: '>
*S**    02 #PRT1-COA(A6)
*S**    02 #PRT1-FILLER2(A2) INIT<' '>          
*S**    02 #PRT1-NEED-LIT(A11) INIT<'Pell Need: '>          
*S**    02 #PRT1-NEED(A5)           
*S**    02 #PRT1-FILLER3(A2) INIT<' '>          
*S**    02 #PRT1-FC-LIT(A12) INIT<'Pell EFC: '> 
*S**    02 #PRT1-FC(A7) 
*S**    02 #PRT1-FILLER6(A48) INIT<' '>         
*S**  01 REDEFINE #PRT1-LINE        
*S**    02 #PRT1-LINE-R(A102)       
*S**  01 #PRT2-LINE     
*S**    02 #PRT2-FILLER1(A5) INIT<' '>          
*S**    02 #PRT2-COA-LIT(A5) INIT<'COA: '>      
*S**    02 #PRT2-COA(A6)
*S**    02 #PRT2-FILLER2(A7) INIT<' '>          
*S**    02 #PRT2-NEED-LIT(A6) INIT<'Need: '>    
*S**    02 #PRT2-NEED(A5)           
*S**    02 #PRT2-FILLER3(A8) INIT<' '>          
*S**    02 #PRT2-FC-LIT(A6) INIT<'FC: '>        
*S**    02 #PRT2-FC(A7) 
*S***   02 #PRT2-FILLER4(A1) INIT<' '>          
*S**    02 #PRT2-PC-LIT(A4) INIT<'PC: '>        
*S**    02 #PRT2-PC(A6) 
*S**    02 #PRT2-FILLER5(A1) INIT<' '>          
*S**    02 #PRT2-SC-LIT(A4) INIT<'SC: '>        
*S**    02 #PRT2-SC(A6) 
*S**    02 #PRT2-FILLER6(A28) INIT<' '>         
*S**  01 REDEFINE #PRT2-LINE        
*S**    02 #PRT2-LINE-R(A104)       
*S**  01 #PRT3-LINE     
*S**    02 #PRT3-NEED-LIT(A28) INIT<'Remaining ======>     Need: '>     
*S**    02 #PRT3-NEED(A5)           
*S**    02 #PRT3-FILLER3(A8) INIT<' '>          
*S**    02 #PRT3-FC-LIT(A6) INIT<'FC: '>        
*S**    02 #PRT3-FC(A7) 
*S***   02 #PRT3-FILLER4(A1) INIT<' '>          
*S**    02 #PRT3-PC-LIT(A4) INIT<'PC: '>        
*S**    02 #PRT3-PC(A6) 
*S**    02 #PRT3-FILLER5(A1) INIT<' '>          
*S**    02 #PRT3-SC-LIT(A4) INIT<'SC: '>        
*S**    02 #PRT3-SC(A6) 
*S**    02 #PRT3-FILLER6(A28) INIT<' '>         
*S**  01 REDEFINE #PRT3-LINE        
*S**    02 #PRT3-LINE-R(A103)       
*S**  01 #PRT4-LINE     
*S**    02 #PRT4-FILLER1(A4) INIT<' '>          
*S**    02 #PRT4-LIT(A19) INIT<'Total package amt: '>       
*S**    02 #PRT4-PKG-AMT(A9)        
*S**    02 #PRT4-FILLER2(A68) INIT<' '>         
*S**  01 REDEFINE #PRT4-LINE        
*S**    02 #PRT4-LINE-R(A100)       
*S**  01 #PRT5-LINE     
*S**    02 #PRT5-FILLER1(A9) INIT<' '>          
*S**    02 #PRT5-MEET-NEED-LIT(A14) INIT<'Meets need: '>    
*S**    02 #PRT5-MEET-NEED(A1)      
*S**    02 #PRT5-FILLER2(A8) INIT<' '>          
*S**    02 #PRT5-REM-NEED-LIT(A16) INIT<'Remaining Need: '> 
*S**    02 #PRT5-REM-NEED(A5)       
*S**    02 #PRT5-FILLER3(A47) INIT<' '>         
*S**  01 REDEFINE #PRT5-LINE        
*S**    02 #PRT5-LINE-R(A100)       
*S**  01 #PRT6-LINE     
*S**    02 #PRT6-FILLER1(A9) INIT<' '>          
*S**    02 #PRT6-REPL-FC-LIT(A14) INIT<'Replaces FC:'>      
*S**    02 #PRT6-REPL-FC(A1)        
*S**    02 #PRT6-FILLER3(A76) INIT<' '>         
*S**  01 REDEFINE #PRT6-LINE        
*S**    02 #PRT6-LINE-R(A100)       
*S**  01 #PRT7-LINE     
*S**    02 #PRT7-FILLER1(A9) INIT<' '>          
*S**    02 #PRT7-REPL-FC-LIT(A14) INIT<'Replaces FC:'>      
*S**    02 #PRT7-REPL-FC(A1)        
*S**    02 #PRT7-FILLER2(A7) INIT<' '>          
*S**    02 #PRT7-REM-FC-LIT(A16) INIT<'Remaining FC:'>      
*S**    02 #PRT7-RUN-FC(A6)         
*S**    02 #PRT7-FILLER3(A7) INIT<' '>          
*S**    02 #PRT7-REM-SC-LIT(A16) INIT<'Remaining SC:'>      
*S**    02 #PRT7-RUN-SC(A6)         
*S**    02 #PRT7-FILLER4(A20) INIT<' '>         
*S**  01 REDEFINE #PRT7-LINE        
*S**    02 #PRT7-LINE-R(A102)       
*S**  01 #PRT8-LINE     
*S**    02 #PRT8-FILLER1(A9) INIT<' '>          
*S**    02 #PRT8-REPL-FC-LIT(A14) INIT<'Replaces FC:'>      
*S**    02 #PRT8-REPL-FC(A1)        
*S**    02 #PRT8-FILLER2(A7) INIT<' '>          
*S**    02 #PRT8-REM-FC-LIT(A16) INIT<'Remaining FC:'>      
*S**    02 #PRT8-RUN-FC(A6)         
*S**    02 #PRT8-FILLER3(A7) INIT<' '>          
*S**    02 #PRT8-REM-PC-LIT(A16) INIT<'Remaining PC:'>      
*S**    02 #PRT8-RUN-PC(A6)         
*S**    02 #PRT8-FILLER4(A20) INIT<' '>         
*S**  01 REDEFINE #PRT8-LINE        
*S**    02 #PRT8-LINE-R(A102)       
*S**  01 #PRT9-LINE     
*S**    02 #PRT9-FILLER1(A9) INIT<' '>          
*S**    02 #PRT9-REPL-FC-LIT(A14) INIT<'Replaces FC:'>      
*S**    02 #PRT9-REPL-FC(A1)        
*S**    02 #PRT9-FILLER2(A8) INIT<' '>          
*S**    02 #PRT9-REM-FC-LIT(A15) INIT<'Remaining FC:'>      
*S**    02 #PRT9-RUN-FC(A7)         
*S**    02 #PRT9-FILLER3(A47) INIT<' '>         
*S**  01 REDEFINE #PRT9-LINE        
*S**    02 #PRT9-LINE-R(A101)       
*S***       
*S**  01 #SUB(P3)       
*S**  01 #FUND-NO(N2)   
*S***       
*S*** Input files       
*S**  01 WF-SEL         
*S**    02 #YEAR(A4)    
*S**    02 #DELIMITER1(A1)          
*S**    02 #FAO(A2)     
*S**    02 #DELIMITER2(A1)          
*S**    02 #SID(A9)     
*S**    02 #DELIMITER3(A1)          
*S**    02 #NAME(A35)   
*S**    02 #DELIMITER4(A1)          
*S**    02 #FILLER1(A55)
*S**    02 #POPULATION(A1)          
*S**    02 #FILLER2(A1) 
*S**    02 #PROCESS-RSN(A20)        
*S**  01 REDEFINE WF-SEL
*S**    02 #WF-SELECTED(A131)       
*S***       
*S**  01 #SUBSCRIPTS    
*S**    02 #SUB2(P3)    
*S**    02 #AWARD-SUB(P3)           
*S***       
*S**  01 #PASS-FIELDS   
*S**    02 #PASS-NM-LAST(A20)       
*S**    02 #PASS-NM-FIRST(A20)      
*S**    02 #PASS-NM-MI(A1)          
*S**    02 #PASS-FORMAT(A1)         
*S**    02 #PASS-DOB(A8)
*S**    02 #PASS-SSN(A9)
*S**    02 #PASS-SID(A9)
*S**    02 #PASS-FAO(A2)
*S**    02 #PASS-COLLEGE-CODE(A7)   
*S**    02 #STATUS-FUNCTION(A8)     
*S**    02 #STATUS-DECISION(A1)     
*S***       
*S*** Award transaction input file. 
*S**  01 #MAINT-HDR(L)  INIT<FALSE> 
*S**  01 WF-MAINTB-HDR  
*S**    02 HDR(A9)      INIT<'BATCH HDR'>       
*S**    02 BATCH-ID(A8) INIT<'PACKAGE'>         
*S**    02 USER-ID(A8)  INIT<'WFPKPAKB'>        
*S**    02 FAO(A2)      
*S**    02 AID-YEAR(A4) 
*S**    02 ACTIVATE(A1) 
*S**    02 DECISION(A1) INIT<'Y'>   
*S**    02 #FILLER1(A47)
*S**  01 REDEFINE WF-MAINTB-HDR     
*S**    02 WF-MAINTB(A80)           
*S**  01 #AWARD-HDR(L)  INIT<FALSE> 
*S**  01 WF-AWARDB-HDR  
*S**    02 SID(A9)      
*S**    02 AID-YEAR(A4) 
*S**    02 FAO(A2)      
*S**    02 FUND-ID(A9)  
*S**    02 ACTION-CODE(A2)          
*S**    02 AMOUNT(A9)   
*S**    02 #FILLER1(A45)
*S**  01 REDEFINE WF-AWARDB-HDR     
*S**    02 WF-AWARDB(A80)           
*S**  01 #LOGICALS      
*S**    02 #WROTE-AWARD-TRAN(L)     
*S**    02 #WROTE-AWARD-HDR(L)      
*S**    02 #WROTE-PACKAGING-HDR(L)  
*S***       
*S*** Award transaction file.       
*S**  01 AWARD-TRAN     
*S**    02 KEY-INFO     
*S**      03 WW-ST-SID(A9)          
*S**      03 WF-AID-YEAR(A4)        
*S**      03 WF-FAO(A2) 
*S**      03 WF-FUND-ID(A9)         
*S**      03 K-FILLER(A1)           
*S**      03 ACTION-CODE(A2)        
*S**      03 AMOUNT(A9) 
*S**      03 DIST-CODE(A1)          
*S**      03 K-FILLER2(A43)         
*S**  01 REDEFINE AWARD-TRAN        
*S**    02 HEADER-TRAN  
*S**      03 HEADER(A9) 
*S**      03 ID(A8)     
*S**      03 USER(A8)   
*S**      03 FAO(A2)    
*S**      03 AID-YEAR(A4)           
*S**      03 H-FILLER(A49)          
*S**    02 REDEFINE HEADER-TRAN     
*S**      03 BATCH-HEADER(A80)      
*S***       
*S**01 FUND-ROSTER-TRAN 
*S**  02 WW-ST-SID(A9)  
*S**  02 WF-AID-YEAR(A4)
*S**  02 WF-FAO(A2)     
*S**  02 WF-FUND-ID(A9) 
*S**  02 EST-FUND(A1)   
*S**  02 ACTION-CODE(A2)
*S**  02 AMOUNT(A9)     
*S**  02 REDEFINE AMOUNT
*S**    03 AMOUNT-N (N9)
*S**  02 DIST-CODE(A1)  
*S**  02 NAME(A35)      
*S**  02 K-FILLER2(A8)  
*S**01 REDEFINE FUND-ROSTER-TRAN    
*S**  02 FILLER(A80)    
*S***       
*S**01 DETAIL-LINE      
*S**  02 LAST-NAME(A20) 
*S**  02 FIRST-NAME(A20)
*S**  02 WW-ST-SID(A9)  
*S**  02 LINE-NO(N2)    
*S**  02 WF-AID-YEAR(A4)
*S**  02 WF-FAO(A2)     
*S**  02 STUDENT-PACKAGED(A1)       
*S**  02 PRINT-LINE(A79)
*S**01 REDEFINE DETAIL-LINE         
*S**  02 FILLER(A137)   
*S***       
*S*** Award table       
*S**  01 #AWARD-ARRAY   
*S**    02 WF-PM-AW1-OFF(N5)        
*S**    02 WF-PM-AW1-FUND(A2)       
*S**    02 WF-PM-AW1-ACCT(A12)      
*S**    02 WF-PM-AW1-STAT(A1)       
*S**    02 WF-PM-AW2-OFF(N5)        
*S**    02 WF-PM-AW2-FUND(A2)       
*S**    02 WF-PM-AW2-ACCT(A12)      
*S**    02 WF-PM-AW2-STAT(A1)       
*S**    02 WF-PM-AW3-OFF(N5)        
*S**    02 WF-PM-AW3-FUND(A2)       
*S**    02 WF-PM-AW3-ACCT(A12)      
*S**    02 WF-PM-AW3-STAT(A1)       
*S**    02 WF-PM-AW4-OFF(N5)        
*S**    02 WF-PM-AW4-FUND(A2)       
*S**    02 WF-PM-AW4-ACCT(A12)      
*S**    02 WF-PM-AW4-STAT(A1)       
*S**    02 WF-PM-AW5-OFF(N5)        
*S**    02 WF-PM-AW5-FUND(A2)       
*S**    02 WF-PM-AW5-ACCT(A12)      
*S**    02 WF-PM-AW5-STAT(A1)       
*S**    02 WF-PM-AW6-OFF(N5)        
*S**    02 WF-PM-AW6-FUND(A2)       
*S**    02 WF-PM-AW6-ACCT(A12)      
*S**    02 WF-PM-AW6-STAT(A1)       
*S**    02 WF-PM-AW7-OFF(N5)        
*S**    02 WF-PM-AW7-FUND(A2)       
*S**    02 WF-PM-AW7-ACCT(A12)      
*S**    02 WF-PM-AW7-STAT(A1)       
*S**    02 WF-PM-AW8-OFF(N5)        
*S**    02 WF-PM-AW8-FUND(A2)       
*S**    02 WF-PM-AW8-ACCT(A12)      
*S**    02 WF-PM-AW8-STAT(A1)       
*S**    02 WF-PM-AW9-OFF(N5)        
*S**    02 WF-PM-AW9-FUND(A2)       
*S**    02 WF-PM-AW9-ACCT(A12)      
*S**    02 WF-PM-AW9-STAT(A1)       
*S**    02 WF-PM-AW10-OFF(N5)       
*S**    02 WF-PM-AW10-FUND(A2)      
*S**    02 WF-PM-AW10-ACCT(A12)     
*S**    02 WF-PM-AW10-STAT(A1)      
*S**  01 REDEFINE #AWARD-ARRAY      
*S**    02 #AWARD-OCCURS(10)        
*S**      03 WF-PM-AW-OFF(N5)       
*S**      03 WF-PM-AW-FUND(A2)      
*S**      03 WF-PM-AW-ACCT(A12)     
*S**      03 REDEFINE WF-PM-AW-ACCT 
*S**        04 WF-FU-ACCT(A11)      
*S**        04 WF-FU-DIST-CODE(A1)  
*S**      03 WF-PM-AW-STAT(A1)      
*S***       
*S**END-DEFINE          
*S***       
*S*** Define printers, formats, headings        
*S**EJECT OFF(1)        
*S***       
*S*** Define printers, formats, headings        
*S**DEFINE PRINTER(1)   
*S**FORMAT(1) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S**DEFINE PRINTER(2)   
*S**FORMAT(2) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S**DEFINE PRINTER(3)   
*S**FORMAT(3) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S**DEFINE PRINTER(4)   
*S**FORMAT(4) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S**DEFINE PRINTER(5)   
*S**FORMAT(5) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S**DEFINE PRINTER(6)   
*S**FORMAT(6) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S***       
*S**AT TOP OF PAGE(1)   
*S**  WRITE(1) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING ***'   
*S**        71T 'Page' *PAGE-NUMBER(1)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        28T 'Processing Counts/Errors'      
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**END-TOPPAGE         
*S**AT TOP OF PAGE(2)   
*S**  WRITE(2) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING ***'   
*S**        71T 'Page' *PAGE-NUMBER(2)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        25T 'Students Selected but not Packaged'        
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**     // 32T 'Aid Year:' ##DISP-AY           
*S**      / 37T ##DISP-LIT ##DISP-FAO           
*S**    /// 'StudentID     Name'    
*S**  SKIP(2) 1         
*S**END-TOPPAGE         
*S**AT TOP OF PAGE(3)   
*S**  WRITE(3) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING ***'   
*S**        71T 'Page' *PAGE-NUMBER(3)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        32T 'Students Packaged' 
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**     // 32T 'Aid Year:' ##DISP-AY           
*S**      / 37T ##DISP-LIT ##DISP-FAO           
*S**    /// 'StudentID     Name'    
*S**  SKIP(3) 1         
*S**END-TOPPAGE         
*S**AT TOP OF PAGE(4)   
*S**  WRITE(4) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING  ***'  
*S**        71T 'Page' *PAGE-NUMBER(4)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        33T 'Fund Statistics'   
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**     // 31T 'Aid Year:' ##DISP-AY           
*S**      / 36T ##DISP-LIT ##DISP-FAO           
*S**    /// 'Fund ID       Name'    
*S**  SKIP(4) 1         
*S**END-TOPPAGE         
*S**AT TOP OF PAGE(5)   
*S**  WRITE(5) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING ***'   
*S**        71T 'Page' *PAGE-NUMBER(5)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        25T 'Students Selected but not Packaged'        
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**     // 32T 'Aid Year:' ##DISP-AY           
*S**      / 37T ##DISP-LIT ##DISP-FAO           
*S**    /// 'StudentID     Name'    
*S**  SKIP(5) 1         
*S**END-TOPPAGE         
*S**AT TOP OF PAGE(6)   
*S**  WRITE(6) NOTITLE ##PGM-ID     
*S**        27T '*** FINANCIER PACKAGING ***'   
*S**        71T 'Page' *PAGE-NUMBER(6)(EM=ZZ9)  
*S**      / *DATX(EM=LLL' 'DD', 'YYYY)          
*S**        32T 'Students Packaged' 
*S**        71T *TIMX(EM=HH':'II' 'AP)          
*S**     // 32T 'Aid Year:' ##DISP-AY           
*S**      / 37T ##DISP-LIT ##DISP-FAO           
*S**    /// 'StudentID     Name'    
*S**  SKIP(6) 1         
*S**END-TOPPAGE         
*S***       
*S**ASSIGN ##PGM-ID = *PROGRAM      
*S**ASSIGN ##BYPASS-TRANSLATION = ' '           
*S**MOVE ALL ' ' TO #TAB-FIELDS     
*S**MOVE ALL '_' TO #79-UNDERSCORE  
*S***       
*S**IF *DEVICE = 'BATCH' THEN       
*S**  SET CONTROL 'D' /* Set delimiter mode for batch input 
*S**END-IF  
*S***       
*S*************************************************************************         
*S***       
*S*** Read and edit parameters      
*S**  INPUT(AD=MITL'_' SG=ON IP=OFF ZP=OFF)     
*S**        'Aid Year:' #INPUT-AID-YEAR /       
*S**        'Term:' #INPUT-TERM /   
*S**        'FAO:' #INPUT-FAO /     
*S**        'Run Mode:' #INPUT-RUNMODE /        
*S**        'Effective Date:' #INPUT-EFF-DATE / 
*S**        'Distribution Code:' #INPUT-DIST-CODE /         
*S**        'Student detail:' #PRINT-STUDENT-DETAIL /       
*S**        'Fund detail:' #PRINT-FUND-DETAIL / 
*S**        'Print priority order report:' #PRINT-OPT-RPT / 
*S**        'Use prior Year Pell:' #PKG-USE-PRIOR-PELL /    
*S**        'Fund no:' #PKG-FUND-CT 
*S**  /*    
*S**  IF #PKG-FUND-CT = MASK(99) OR 
*S**     #PKG-FUND-CT = MASK(9)     
*S**    ASSIGN #FUND-NO = VAL(#PKG-FUND-CT)     
*S**  ELSE  
*S**    ASSIGN #FUND-NO = 1         
*S**  END-IF
*S**  /*    
*S**  IF #FUND-NO > 0 AND #INPUT-AID-YEAR > '2013'          
*S**    INPUT(AD=MITL'_' SG=ON IP=OFF ZP=OFF)   
*S**          'Fund 1:' #PKG-FUND-1 /           
*S**          'Fund 2:' #PKG-FUND-2 /           
*S**          'Fund 3:' #PKG-FUND-3 /           
*S**          'Fund 4:' #PKG-FUND-4 /           
*S**          'Fund 5:' #PKG-FUND-5 /           
*S**          'Fund 6:' #PKG-FUND-6 /           
*S**          'Fund 7:' #PKG-FUND-7 
*S**  END-IF
*S**  IF #FUND-NO > 7 AND #INPUT-AID-YEAR > '2013'          
*S**    INPUT(AD=MITL'_' SG=ON IP=OFF ZP=OFF)   
*S**          'Fund 8:' #PKG-FUND-8 /           
*S**          'Fund 9:' #PKG-FUND-9 /           
*S**          'Fund 10:' #PKG-FUND-10 /         
*S**          'Fund 11:' #PKG-FUND-11 /         
*S**          'Fund 12:' #PKG-FUND-12 /         
*S**          'Fund 13:' #PKG-FUND-13 /         
*S**          'Fund 14:' #PKG-FUND-14 /         
*S**  END-IF
*S**  IF #FUND-NO > 14 AND          
*S**     #FUND-NO < 21 AND          
*S**     #INPUT-AID-YEAR > '2013'   
*S**    INPUT(AD=MITL'_' SG=ON IP=OFF ZP=OFF)   
*S**          'Fund 15:' #PKG-FUND-15 /         
*S**          'Fund 16:' #PKG-FUND-16 /         
*S**          'Fund 17:' #PKG-FUND-17 /         
*S**          'Fund 18:' #PKG-FUND-18 /         
*S**          'Fund 19:' #PKG-FUND-19 /         
*S**          'Fund 20:' #PKG-FUND-20           
*S**  END-IF
*S**  WRITE(1) ' '      
*S**  PERFORM REQUIRED-FIELD-BATCH WWREQIBD     
*S**  WRITE(1)          
*S**    31T 'Aid Year:' ##DISP-AY / 
*S**    36T ##DISP-LIT ##DISP-FAO ///           
*S***       
*S**IF *DEVICE = 'BATCH' THEN       
*S**  SET CONTROL 'D' /* Set delimiter mode for batch input 
*S**END-IF  
*S**MOVE EDITED *TIMX(EM=MMDDHHII) TO #INPUT-BATCH-ID       
*S***       
*S*************************************************************************         
*S***       
*S*** Load parameters   
*S**MOVE #PRINT-STUDENT-DETAIL TO #DEBUG-DET    
*S**IF #PRINT-STUDENT-DETAIL = ' '  
*S**  ASSIGN #DEBUG-DET = '2' /* Default Student detail (all funds)     
*S**END-IF  
*S**IF #PRINT-FUND-DETAIL = ' '     
*S**  ASSIGN #PRINT-FUND-DETAIL = '1' /* Default Fund roster detail off 
*S**END-IF  
*S**IF #PRINT-OPT-RPT = ' '         
*S**  ASSIGN #PRINT-OPT-RPT = 'N'       /* Default priority report off  
*S**END-IF  
*S**IF #PRINT-OPT-RPT = 'Y'         
*S**  ASSIGN #PRINT-PRIORITY-REPORT = TRUE      
*S**ELSE    
*S**  ASSIGN #PRINT-PRIORITY-REPORT = FALSE     
*S**END-IF  
*S**/*      
*S**/* Override Pell EFC to Pell SAI
*S**IF ##AID-YEAR > '2024'          
*S**  ASSIGN #PRT1-LINE.#PRT1-FC-LIT = 'Pell SAI: '         
*S**END-IF  
*S**/*      
*S**/* Load Fund IDs into WFPKFNDD array        
*S**MOVE #PKG-FUND-ID(*) TO WFPKFNDD.WF-FUND-ID(*)          
*S**/*      
*S**ASSIGN WFPKFNDD.RUNMODE = 'BATCH'           
*S***       
*S*** Load Fund info    
*S**CALLNAT 'WFPKFNDN'  
*S**         WW-GDA     
*S**         WFPKFNDD   
*S***       
*S**READ WORK FILE 1 WF-SEL         
*S**  /*    
*S**  /* Rejected packaging records 
*S**  ADD 1 TO #READ-COUNTER        
*S**  ADD 1 TO #ET-READ-COUNTER     
*S**  IF #ET-READ-COUNTER > #MAX-READ           
*S**    PERFORM COMMIT-OR-BACKOUT   
*S**  END-IF
*S**  /*    
*S**  /* New student processing     
*S**  RESET WFPKPAKD    
*S**  ASSIGN #STUDENT-PACKAGED = FALSE          
*S**  ASSIGN WFPKPAKD.#USE-PRIOR-PELL = #PKG-USE-PRIOR-PELL 
*S**  RESET #PKG-PASS-TEMP          
*S**        #HOLD-TEMP1 
*S**        #HOLD-TEMP2 
*S**        #HOLD-TEMP3 
*S**  ASSIGN DETAIL-LINE.LINE-NO = 0
*S**  /*    
*S**  /* SID lookup     
*S**  ASSIGN ##FAO-ID = WF-SEL.#FAO 
*S**  ASSIGN ##AID-YEAR = #INPUT-AID-YEAR       
*S**  ASSIGN ##SID = WF-SEL.#SID    
*S**  PERFORM GET-STUDENT-KEY       
*S**  PERFORM GET-STUDENT-INFO      
*S**  /*    
*S**  /* Read student data          
*S**  /*    
*S**  /* Read WW-STUDENT data       
*S**  ASSIGN WWSTDNTD.WF-FAO = ##FAO-ID         
*S**  ASSIGN WWSTDNTD.WW-STUDENT-ID = ##STUDENT-ID          
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-STATUS         
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-ATTRIBUTES     
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-ACAD-CAREER    
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-REG-TERM1      
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-REG-TERM2      
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-REG-TERM3      
*S**  MOVE 'R' TO WWSTDNTD.WW-ST-REG-TERM4      
*S**  MOVE 'GET' TO WWAOBJ.#FUNCTION
*S**  PERFORM CALL-OBJECT-STUDENT   
*S**  /*    
*S**  /* Read WF-AIDYEAR data       
*S**  ASSIGN WFAIDYRD.WF-FAO = ##FAO-ID         
*S**  ASSIGN WFAIDYRD.WF-AID-YEAR = ##AID-YEAR  
*S**  ASSIGN WFAIDYRD.WW-STUDENT-ID = ##STUDENT-ID          
*S**  PERFORM CALL-OBJECT-AIDYEAR   
*S**  /*    
*S**  /* Invoke intermediate subprogram         
*S**  CALLNAT 'WFPKPAKN' WW-GDA     
*S**                     #STUDENT-PACKAGED      
*S**                     WFPKPAKD   
*S**                     WFPKFNDD   
*S**                     WWSTDNTD   
*S**                     WWSTDNTD-ID
*S**                     WFAIDYRD   
*S**                     WFAIDYRD-ID
*S**  /*    
*S**  /* If limited run, print report line      
*S**  PERFORM SETUP-PRINT-DETAIL    
*S**  IF #STUDENT-PACKAGED          
*S**    ADD 1 TO #SELECT-COUNTER    
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(3) / ##SID ##COMP-NAME 'Packaged'           
*S**    END-IF          
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    COMPRESS FULL ##SID  ##COMP-NAME  'Packaged'        
*S**     INTO DETAIL-LINE.PRINT-LINE
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    PERFORM PRINT-PACKAGE-DETAIL
*S**    /*  
*S**    /* Create transactions      
*S**    PERFORM WRITE-AWARD-TRANSACTION         
*S**    PERFORM WRITE-PACKAGING-TRANSACTION     
*S**    PERFORM WRITE-FUND-ROSTER-TRANSACTION   
*S***   PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  ELSE  
*S**    ADD 1 TO #NOSELECT-COUNTER  
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(2) / ##SID ##COMP-NAME 'Not packaged'       
*S**    END-IF          
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    COMPRESS FULL ##SID  ##COMP-NAME  'Not packaged'    
*S**     INTO DETAIL-LINE.PRINT-LINE
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    PERFORM PRINT-BYPASS-DETAIL 
*S***   PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  END-IF
*S**  /*    
*S**  /* Check for limited-run maximum          
*S**  IF #INPUT-LIMIT-COUNT > 0     
*S**    IF #SELECT-COUNTER GE #INPUT-LIMIT-COUNT
*S**      ESCAPE BOTTOM IMMEDIATE   
*S**    END-IF          
*S**  END-IF
*S**        
*S**END-WORK
*S***       
*S*** Issue final END TRANSACTION   
*S**PERFORM COMMIT-OR-BACKOUT       
*S***       
*S*** Print job statistics          
*S**COMPUTE #BYPASS-COUNTER = #STATUS-COUNTER + #NOSELECT-COUNTER       
*S**WRITE(1)
*S**    15T 'FINANCIER processing:' /           
*S**    17T 'Student records read:' 
*S**                        (I) 55T #READ-COUNTER (EM=Z,ZZZ,ZZ9) //     
*S**    17T 'Students packaged:'    
*S**                        (I) 55T #SELECT-COUNTER (EM=Z,ZZZ,ZZ9) /    
*S**    17T 'Packaging bypass:'     
*S**                        (I) 55T #BYPASS-COUNTER (EM=Z,ZZZ,ZZ9) /    
*S***       
*S*** Sort tentative awards for fund roster reporting       
*S**CLOSE WORK 5        
*S**READ WORK FILE 5 FUND-ROSTER-TRAN           
*S**END-ALL 
*S***       
*S**SORT BY FUND-ROSTER-TRAN.NAME USING         
*S**  FUND-ROSTER-TRAN.WW-ST-SID    
*S**  FUND-ROSTER-TRAN.WF-AID-YEAR  
*S**  FUND-ROSTER-TRAN.WF-FAO       
*S**  FUND-ROSTER-TRAN.WF-FUND-ID   
*S**  FUND-ROSTER-TRAN.EST-FUND     
*S**  FUND-ROSTER-TRAN.ACTION-CODE  
*S**  FUND-ROSTER-TRAN.AMOUNT       
*S**  FUND-ROSTER-TRAN.DIST-CODE    
*S***  FUND-ROSTER-TRAN.NAME        
*S**  FUND-ROSTER-TRAN.K-FILLER2    
*S** WRITE WORK 5 FUND-ROSTER-TRAN  
*S**END-SORT
*S***       
*S*** Print fund detail 
*S**FOR #SUB = 1 to 20  
*S**  DECIDE ON FIRST VALUE OF WFPKFNDD.WF-FU-REPL-FC(#SUB) 
*S**    VALUE 'N'       
*S**     ASSIGN #REPLACE-LIT = ' '  
*S**    VALUE 'S'       
*S**     ASSIGN #REPLACE-LIT = 'Replaces: SC'   
*S**    VALUE 'P'       
*S**     ASSIGN #REPLACE-LIT = 'Replaces: PC'   
*S**    VALUE 'F'       
*S**     ASSIGN #REPLACE-LIT = 'Replaces: FC'   
*S**    NONE
*S**     ASSIGN #REPLACE-LIT = ' '  
*S**  END-DECIDE        
*S**  IF WFPKFNDD.WF-FUND-ID(#SUB) <> ' '       
*S**    IF #SUB > 1     
*S**      NEWPAGE(4)    
*S**    END-IF          
*S**    WRITE(4)        
*S**     2T WFPKFNDD.WF-FUND-ID(#SUB)           
*S**     15T WFPKFNDD.WF-FU-NAME(#SUB)          
*S**     //  10T 'Meets Need: '     
*S**       51T WFPKFNDD.WF-FU-MEET-NEED(#SUB)   
*S**     / 10T 'Replace FC/SC/PC: ' 
*S**       40T #REPLACE-LIT         
*S**     / 10T 'Offer Limit: '      
*S**       40T WFPKFNDD.WF-FU-U-O-LIM(#SUB) (EM=ZZZ,ZZZ,ZZ9.99)         
*S**     // 10T 'Beginning balance (offers):'   
*S**       40T WFPKFNDD.BEGINNING-BAL(#SUB) (EM=ZZZ,ZZZ,ZZ9.99)         
*S**     / 10T 'Amount Offered: '   
*S**       40T WFPKFNDD.AWD-OFFERS(#SUB) (EM=ZZZ,ZZZ,ZZ9.99)
*S**     / 10T 'Ending Balance: '   
*S**       40T WFPKFNDD.ENDING-BAL(#SUB) (EM=ZZZ,ZZZ,ZZ9.99)
*S**     / 10T 'Students awarded:'  
*S**       43T WFPKFNDD.AWD-COUNT(#SUB) (EM=Z,ZZZ,ZZ9)      
*S**     // ' '         
*S**    /*  
*S**    /* Fund parameters          
*S**    WRITE(4)        
*S**      / 10T 'Fund parameters:'  
*S**      / ' '         
*S**    IF WFPKFNDD.FUND-PELL (#SUB) = 'Y'      
*S**      WRITE(4)      
*S**        13T 'Fund ID:'  WFPKFNDD.WF-FUND-ID (#SUB)      
*S**        43T 'Category:'  WFPKFNDD.FUND-CATEGORY (#SUB)  
*S**        70T 'Pell fund'         
*S**        / ' '       
*S**    ELSE
*S**      WRITE(4)      
*S**        13T 'Fund ID:'  WFPKFNDD.WF-FUND-ID (#SUB)      
*S**        43T 'Category:'  WFPKFNDD.FUND-CATEGORY (#SUB)  
*S**        / ' '       
*S**    END-IF          
*S**    IF WFPKFNDD.FUND-PKG (#SUB) = 'Y'       
*S**      WRITE(4)      
*S**        13T '(Fund considered this run)'    
*S**        / ' '       
*S**    ELSE
*S**      IF WFPKFNDD.FUND-PKG (#SUB) = 'F'     
*S**        WRITE(4)    
*S**          13T '(Fund NOT considered this run - no funds available)' 
*S**          / ' '     
*S**      ELSE          
*S**        WRITE(4)    
*S**          13T '(Fund NOT considered this run)'          
*S**          / ' '     
*S**      END-IF        
*S**    END-IF          
*S**    IF WFPKFNDD.FUND-PELL-ELIG (#SUB) = 'Y' 
*S**      WRITE(4)      
*S**        13T 'Student must be Pell eligible (per ISIR)'  
*S**    END-IF          
*S**    IF WFPKFNDD.FUND-EFC-CHECK (#SUB) = 'Y' 
*S**      IF ##AID-YEAR > '2024'    
*S**        WRITE(4)    
*S**          13T 'Minimum SAI:' WFPKFNDD.FUND-MIN-EFC (#SUB)           
*S**          43T 'Maximum SAI:' WFPKFNDD.FUND-MAX-EFC (#SUB)           
*S**      ELSE          
*S**        WRITE(4)    
*S**          13T 'Minimum EFC:' WFPKFNDD.FUND-MIN-EFC (#SUB)           
*S**          43T 'Maximum EFC:' WFPKFNDD.FUND-MAX-EFC (#SUB)           
*S**      END-IF        
*S**    END-IF          
*S**    IF WFPKFNDD.FUND-DOC (#SUB) NOT = ' '   
*S**      IF WFPKFNDD.FUND-DOC-EXCLUDE (#SUB) = 'Y'         
*S**        WRITE(4)    
*S**          13T 'Exclude Document:' WFPKFNDD.FUND-DOC (#SUB)          
*S**          43T '(excludes student from consideration'    
*S**      ELSE          
*S**        IF WFPKFNDD.FUND-DOC-STAT (#SUB) = ' '          
*S**          WRITE(4)  
*S**            13T 'Required document:' WFPKFNDD.FUND-DOC (#SUB)       
*S**            43T '(Document needs to exist)' 
*S**        ELSE        
*S**          COMPRESS '(Document status must = '           
*S**                WFPKFNDD.FUND-DOC-STAT (#SUB) ')' TO    
*S**                   #WRITE-LINE  
*S**          WRITE(4)  
*S**            13T 'Required document:' WFPKFNDD.FUND-DOC (#SUB)       
*S**            43T #WRITE-LINE     
*S**        END-IF      
*S**      END-IF        
*S**    END-IF          
*S**    IF WFPKFNDD.WF-FUND-ID (#SUB) = WFPKFNDD.PELL-FUND-ID           
*S**      WRITE(4) /    
*S**        13T '** = Estimated Pell (PELL-EST)'
*S**    END-IF          
*S**    /*  
*S**    /* Student detail (per fund)
*S**    IF #PRINT-FUND-DETAIL = '2' 
*S**      WRITE(4)      
*S**       // 7T  'ID ' 
*S**          20T 'Name '           
*S**          54T 'Amount'          
*S**          64T 'Tran'
*S**        / ' '       
*S**    END-IF          
*S**    IF #PRINT-FUND-DETAIL = '2' 
*S**      /*
*S**      /* Print fund roster      
*S**      CLOSE WORK 05 
*S**      READ WORK FILE 05 FUND-ROSTER-TRAN    
*S**        IF FUND-ROSTER-TRAN.WF-FUND-ID = WFPKFNDD.WF-FUND-ID(#SUB)  
*S**          MOVE RIGHT JUSTIFIED FUND-ROSTER-TRAN.AMOUNT  
*S**             TO #HOLD-AMOUNT    
*S**          IF FUND-ROSTER-TRAN.EST-FUND = '*'
*S**            MOVE EDITED #HOLD-AMOUNT-N (EM=ZZ,ZZ9.99) TO #HOLD-TEMP 
*S**            COMPRESS #HOLD-TEMP '**' INTO #HOLD-TEMP LEAVING NO SPACE           
*S**          ELSE      
*S**            MOVE EDITED #HOLD-AMOUNT-N (EM=ZZ,ZZ9.99) TO #HOLD-TEMP 
*S**          END-IF    
*S**          WRITE(4)  
*S**           4T FUND-ROSTER-TRAN.WW-ST-SID    
*S**           16T FUND-ROSTER-TRAN.NAME        
*S**           52T #HOLD-TEMP       
*S**           65T FUND-ROSTER-TRAN.ACTION-CODE 
*S**        END-IF      
*S**      END-WORK      
*S**    END-IF          
*S**  END-IF
*S**END-FOR 
*S***       
*S*** Sort and print student detail (name order)
*S**CLOSE WORK 6        
*S**READ WORK FILE 6 DETAIL-LINE    
*S**END-ALL 
*S***       
*S**SORT BY DETAIL-LINE.LAST-NAME   
*S**        DETAIL-LINE.FIRST-NAME  
*S**        DETAIL-LINE.WW-ST-SID   
*S**        DETAIL-LINE.LINE-NO     
*S** ASCENDING USING    
*S*** DETAIL-LINE.NAME  
*S*** DETAIL-LINE.WW-ST-SID         
*S*** DETAIL-LINE.LINE-NO           
*S**  DETAIL-LINE.WF-AID-YEAR       
*S**  DETAIL-LINE.WF-FAO
*S**  DETAIL-LINE.STUDENT-PACKAGED  
*S**  DETAIL-LINE.PRINT-LINE        
*S** WRITE WORK 7 DETAIL-LINE       
*S**END-SORT
*S**READ WORK FILE 07 DETAIL-LINE   
*S**  IF DETAIL-LINE.STUDENT-PACKAGED = 'Y'     
*S**    WRITE(6) DETAIL-LINE.PRINT-LINE         
*S**  ELSE  
*S**    WRITE(5) DETAIL-LINE.PRINT-LINE         
*S**  END-IF
*S**END-WORK
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-AIDYEAR       
*S*************************************************************************         
*S**  /*    
*S**  /* Call WF-AIDYEAR file object subprogram 
*S**  CALLNAT 'WFAIDYRO' WW-GDA     
*S**           WFAIDYRD 
*S**           WFAIDYRD-ID          
*S**           WFAIDYRR 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-AIDYEAR       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-STUDENT       
*S*************************************************************************         
*S**  /*    
*S**  /* Call WW-STUDENT file object subprogram 
*S**  CALLNAT 'WWSTDNTO' WW-GDA     
*S**           WWSTDNTD 
*S**           WWSTDNTD-ID          
*S**           WWSTDNTR 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-STUDENT       
*S***       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE COMMIT-OR-BACKOUT         
*S*************************************************************************         
*S**  /*    
*S**  /* Periodically issue END TRANSACTION     
*S**  IF #INPUT-RUNMODE = 'TRIAL'   
*S**    BACKOUT TRANSACTION         
*S**  ELSE  
*S**    END TRANSACTION 
*S**  END-IF
*S**  RESET #ET-READ-COUNTER #ET-WRITE-COUNTER #FR-WRITE-COUNTER        
*S**END-SUBROUTINE /* COMMIT-OR-BACKOUT         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE PRINT-BYPASS-DETAIL       
*S*************************************************************************         
*S**  /*    
*S**  /* Print bypass detail        
*S**  SEPARATE #PKG-PASS-TEMP INTO #HOLD-TEMP1 #HOLD-TEMP2  
*S**     WITH DELIMITER '|'         
*S**  SEPARATE #HOLD-TEMP2 INTO #HOLD-TEMP2 #HOLD-TEMP3     
*S**     WITH DELIMITER '\'         
*S**  IF #DEBUG-DET = '3'           
*S**    COMPRESS ##ST-STATUS '; ' TO #WRITE-LINE-2 LEAVING NO SPACE     
*S**    COMPRESS #WRITE-LINE-2 #HOLD-TEMP1 TO #WRITE-LINE-2 
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(2) 11T #WRITE-LINE-2
*S**    END-IF          
*S**    COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE     
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    IF #HOLD-TEMP2 NOT = ' '    
*S**      COMPRESS #HOLD-TEMP2 TO #WRITE-LINE-2 
*S**          LEAVING NO SPACE      
*S**      IF #PRINT-PRIORITY-REPORT 
*S**        WRITE(2) 11T #WRITE-LINE-2 /        
*S**      END-IF        
*S**      COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE   
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**    END-IF          
*S**    IF #HOLD-TEMP3 NOT = ' '    
*S**      COMPRESS #HOLD-TEMP3 TO #WRITE-LINE-2 
*S**          LEAVING NO SPACE      
*S**      IF #PRINT-PRIORITY-REPORT 
*S**        WRITE(2) 11T #WRITE-LINE-2 /        
*S**      END-IF        
*S**      COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE   
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**      MOVE ' ' TO DETAIL-LINE.PRINT-LINE    
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**    END-IF          
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      IF ##AID-YEAR > '2024'    
*S**        IF #BLANK-SAI = 'Y'     
*S**          WRITE(2) 1T  'Pell COA:' #PELL-COA
*S**          18T 'Pell Need:' #PELL-NEED       
*S**          36T 'Pell SAI:  '  ' BLANK'       
*S**        ELSE        
*S**          WRITE(2) 1T  'Pell COA:' #PELL-COA
*S**          18T 'Pell Need:' #PELL-NEED       
*S**          36T 'Pell SAI:  ' #FED-EFC(EM=ZZZZZ9-)        
*S**        END-IF      
*S**      ELSE          
*S**        WRITE(2) 1T  'Pell COA:' #PELL-COA  
*S**                 18T 'Pell Need:' #PELL-NEED
*S**                 36T 'Pell EFC:  ' #FED-EFC 
*S**      END-IF        
*S**    END-IF          
*S**    MOVE EDITED #PELL-COA (EM=ZZZZZ9) TO #PRT1-LINE.#PRT1-COA       
*S**    MOVE EDITED WFPKPAKD.#PELL-NEED (EM=ZZZZ9) TO #PRT1-LINE.#PRT1-NEED         
*S**    MOVE EDITED WFPKPAKD.#FED-EFC (EM=ZZZZZ9-) TO #PRT1-LINE.#PRT1-FC           
*S**    IF #BLANK-SAI = 'Y'         
*S**      MOVE ' BLANK' TO #PRT1-LINE.#PRT1-FC  
*S**    END-IF          
*S**    MOVE #PRT1-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(2) 1T  '     COA:' #COA         
*S**               18T '     Need:' WFPKPAKD.#NEED          
*S**               42T 'FC:  ' WFPKPAKD.#FC (EM=ZZZZZ9-)    
*S**                   'PC:' WFPKPAKD.#PC       
*S**                   'SC:' WFPKPAKD.#SC /     
*S**    END-IF          
*S**    MOVE EDITED #COA (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-COA
*S**    MOVE EDITED WFPKPAKD.#NEED (EM=ZZZZ9) TO #PRT2-LINE.#PRT2-NEED  
*S**    MOVE EDITED WFPKPAKD.#FC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-FC     
*S**    MOVE EDITED WFPKPAKD.#PC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-PC     
*S**    MOVE EDITED WFPKPAKD.#SC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-SC     
*S**    MOVE #PRT2-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  END-IF
*S**  FOR #AWARD-SUB = 1 TO 20      
*S**    IF WFPKPAKD.FUND-ID(#AWARD-SUB) NOT = ' '           
*S**      IF #PRINT-PRIORITY-REPORT 
*S**        WRITE(2) 8T WFPKPAKD.FUND-ID(#AWARD-SUB)        
*S**                    #DET-LINE(#AWARD-SUB)   
*S**      END-IF        
*S**      COMPRESS FULL #6T WFPKPAKD.FUND-ID(#AWARD-SUB)    
*S**                  #DET-LINE(#AWARD-SUB)     
*S**       INTO DETAIL-LINE.PRINT-LINE          
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**    END-IF          
*S**  END-FOR           
*S**  IF #DEBUG-DET = '3'           
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(2) / 1T 'Remaining ======>'     
*S**               18T '     Need:' WFPKPAKD.#NEED          
*S**               42T 'FC:  ' WFPKPAKD.#FC     
*S**                   'PC:' WFPKPAKD.#PC       
*S**                   'SC:' WFPKPAKD.#SC /     
*S**    END-IF          
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE EDITED WFPKPAKD.#NEED (EM=ZZZZ9) TO #PRT3-LINE.#PRT3-NEED  
*S**    MOVE EDITED WFPKPAKD.#FC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-FC     
*S**    MOVE EDITED WFPKPAKD.#PC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-PC     
*S**    MOVE EDITED WFPKPAKD.#SC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-SC     
*S**    MOVE #PRT3-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  END-IF
*S**  IF #PRINT-PRIORITY-REPORT     
*S**    WRITE(2) '_'(79)
*S**  END-IF
*S**  COMPRESS #79-UNDERSCORE       
*S**   INTO DETAIL-LINE.PRINT-LINE  
*S**    LEAVING NO SPACE
*S**  PERFORM WRITE-PRINT-DETAIL-FILE           
*S**END-SUBROUTINE /* PRINT-BYPASS-DETAIL       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE PRINT-PACKAGE-DETAIL      
*S*************************************************************************         
*S**  /*    
*S**  /* Print package detail       
*S**  SEPARATE #PKG-PASS-TEMP INTO #HOLD-TEMP1 #HOLD-TEMP2  
*S**     WITH DELIMITER '|'         
*S**  SEPARATE #HOLD-TEMP2 INTO #HOLD-TEMP2 #HOLD-TEMP3     
*S**     WITH DELIMITER '\'         
*S**  IF #DEBUG-DET = '3'           
*S**    COMPRESS ##ST-STATUS '; ' TO #WRITE-LINE-2 LEAVING NO SPACE     
*S**    COMPRESS #WRITE-LINE-2 #HOLD-TEMP1 TO #WRITE-LINE-2 
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(3) 11T #WRITE-LINE-2
*S**    END-IF          
*S**    COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE     
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    IF #HOLD-TEMP2 NOT = ' '    
*S**      COMPRESS #HOLD-TEMP2 TO #WRITE-LINE-2 
*S**          LEAVING NO SPACE      
*S**      IF #PRINT-PRIORITY-REPORT 
*S**        WRITE(3) 11T #WRITE-LINE-2 /        
*S**      END-IF        
*S**      COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE   
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**    END-IF          
*S**    IF #HOLD-TEMP3 NOT = ' '    
*S**      COMPRESS #HOLD-TEMP3 TO #WRITE-LINE-2 
*S**          LEAVING NO SPACE      
*S**      IF #PRINT-PRIORITY-REPORT 
*S**        WRITE(3) 11T #WRITE-LINE-2 /        
*S**      END-IF        
*S**      COMPRESS FULL #9T #WRITE-LINE-2 INTO DETAIL-LINE.PRINT-LINE   
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**      MOVE ' ' TO DETAIL-LINE.PRINT-LINE    
*S**      PERFORM WRITE-PRINT-DETAIL-FILE       
*S**    END-IF          
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      IF ##AID-YEAR > '2024'    
*S**        IF #BLANK-SAI = 'Y'     
*S**          WRITE(3) 1T  'Pell COA:' #PELL-COA
*S**          18T 'Pell Need:' #PELL-NEED       
*S**          36T 'Pell SAI:  ' ' BLANK'        
*S**        ELSE        
*S**          WRITE(3) 1T  'Pell COA:' #PELL-COA
*S**          18T 'Pell Need:' #PELL-NEED       
*S**          36T 'Pell SAI:  ' #FED-EFC(EM=ZZZZZ9-)        
*S**        END-IF      
*S**      ELSE          
*S**        WRITE(3) 1T  'Pell COA:' #PELL-COA  
*S**                 18T 'Pell Need:' #PELL-NEED
*S**                 36T 'Pell EFC:  ' #FED-EFC 
*S**      END-IF        
*S**    END-IF          
*S**    MOVE EDITED #PELL-COA (EM=ZZZZZ9) TO #PRT1-LINE.#PRT1-COA       
*S**    MOVE EDITED WFPKPAKD.#PELL-NEED (EM=ZZZZ9) TO #PRT1-LINE.#PRT1-NEED         
*S**    MOVE EDITED WFPKPAKD.#FED-EFC (EM=ZZZZZ9-) TO #PRT1-LINE.#PRT1-FC           
*S**    IF #BLANK-SAI = 'Y'         
*S**      MOVE ' BLANK' TO #PRT1-LINE.#PRT1-FC  
*S**    END-IF          
*S**    MOVE #PRT1-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(3) 1T  '     COA:' #COA         
*S**               18T '     Need:' WFPKPAKD.#NEED          
*S**               42T 'FC:  ' WFPKPAKD.#FC(EM=ZZZZZ9-)     
*S**                   'PC:' WFPKPAKD.#PC       
*S**                   'SC:' WFPKPAKD.#SC /     
*S**    END-IF          
*S**    MOVE EDITED #COA (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-COA
*S**    MOVE EDITED WFPKPAKD.#NEED (EM=ZZZZ9) TO #PRT2-LINE.#PRT2-NEED  
*S**    MOVE EDITED WFPKPAKD.#FC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-FC     
*S**    MOVE EDITED WFPKPAKD.#PC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-PC     
*S**    MOVE EDITED WFPKPAKD.#SC (EM=ZZZZZ9) TO #PRT2-LINE.#PRT2-SC     
*S**    MOVE #PRT2-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  END-IF
*S**  MOVE 0 TO #TOTAL-PACKAGE      
*S**  FOR #AWARD-SUB = 1 TO 20      
*S**    IF WFPKPAKD.FUND-ID(#AWARD-SUB) NOT = ' '           
*S**      COMPUTE #TOTAL-PACKAGE = #TOTAL-PACKAGE +         
*S**                               WFPKPAKD.AWARD-AMT(#AWARD-SUB)       
*S**      IF #DEBUG-DET = '1'       
*S**        IF WFPKPAKD.AWARD-AMT(#AWARD-SUB) > 0           
*S**          IF #PRINT-PRIORITY-REPORT         
*S**            WRITE(3) 5T WFPKPAKD.FUND-ID(#AWARD-SUB)    
*S**                         #DET-LINE(#AWARD-SUB)          
*S**          END-IF    
*S**          COMPRESS FULL #3T WFPKPAKD.FUND-ID(#AWARD-SUB)
*S**                      #DET-LINE(#AWARD-SUB) 
*S**           INTO DETAIL-LINE.PRINT-LINE      
*S**          PERFORM WRITE-PRINT-DETAIL-FILE   
*S**        END-IF      
*S**      END-IF        
*S**      IF #DEBUG-DET = '2'       
*S**        IF #PRINT-PRIORITY-REPORT           
*S**          WRITE(3) 5T WFPKPAKD.FUND-ID(#AWARD-SUB)      
*S**                       #DET-LINE(#AWARD-SUB)
*S**        END-IF      
*S**        COMPRESS FULL #3T WFPKPAKD.FUND-ID(#AWARD-SUB)  
*S**                    #DET-LINE(#AWARD-SUB)   
*S**         INTO DETAIL-LINE.PRINT-LINE        
*S**        PERFORM WRITE-PRINT-DETAIL-FILE     
*S**      END-IF        
*S**      IF #DEBUG-DET = '3'       
*S**        IF #PRINT-PRIORITY-REPORT           
*S**          WRITE(3) 5T WFPKPAKD.FUND-ID(#AWARD-SUB)      
*S**                       #DET-LINE(#AWARD-SUB)
*S**        END-IF      
*S**        COMPRESS FULL #3T WFPKPAKD.FUND-ID(#AWARD-SUB)  
*S**                    #DET-LINE(#AWARD-SUB)   
*S**         INTO DETAIL-LINE.PRINT-LINE        
*S**        PERFORM WRITE-PRINT-DETAIL-FILE     
*S**        IF WFPKPAKD.AWARD-AMT(#AWARD-SUB) > 0           
*S**          IF #PRINT-PRIORITY-REPORT         
*S**            WRITE(3) 10T 'Meets need: '     
*S**                         WFPKFNDD.WF-FU-MEET-NEED(#AWARD-SUB)       
*S**                    33T 'Remaining Need:' WFPKPAKD.#RUN-NEED(#AWARD-SUB)        
*S**          END-IF    
*S**          MOVE WFPKFNDD.WF-FU-MEET-NEED(#AWARD-SUB) TO  
*S**                      #PRT5-LINE.#PRT5-MEET-NEED        
*S**          MOVE EDITED WFPKPAKD.#RUN-NEED(#AWARD-SUB) (EM=ZZZZ9) TO  
*S**                      #PRT5-LINE.#PRT5-REM-NEED         
*S**          MOVE #PRT5-LINE-R TO DETAIL-LINE.PRINT-LINE   
*S**          PERFORM WRITE-PRINT-DETAIL-FILE   
*S**          DECIDE ON FIRST VALUE OF WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB)           
*S**            VALUE 'N'           
*S**              IF #PRINT-PRIORITY-REPORT     
*S**                WRITE(3) 10T 'Replaces FC: '
*S**                             WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) /   
*S**              END-IF
*S**              MOVE WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) TO
*S**                          #PRT6-LINE.#PRT6-REPL-FC      
*S**              MOVE #PRT6-LINE-R TO DETAIL-LINE.PRINT-LINE           
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**              MOVE ' ' TO DETAIL-LINE.PRINT-LINE        
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**            VALUE 'S'           
*S**              IF #PRINT-PRIORITY-REPORT     
*S**                WRITE(3) 10T 'Replaces FC: '
*S**                             WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB)     
*S**                         33T 'Remaining FC: '           
*S**                             WFPKPAKD.#RUN-FC(#AWARD-SUB)           
*S**                        60T 'Remaining SC:' WFPKPAKD.#RUN-SC(#AWARD-SUB)        
*S**                         /      
*S**              END-IF
*S**              MOVE WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) TO
*S**                          #PRT7-LINE.#PRT7-REPL-FC      
*S**              MOVE EDITED WFPKPAKD.#RUN-FC(#AWARD-SUB) (EM=ZZZZZ9) TO           
*S**                          #PRT7-LINE.#PRT7-RUN-FC       
*S**              MOVE EDITED WFPKPAKD.#RUN-SC(#AWARD-SUB) (EM=ZZZZZ9) TO           
*S**                          #PRT7-LINE.#PRT7-RUN-SC       
*S**              MOVE #PRT7-LINE-R TO DETAIL-LINE.PRINT-LINE           
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**              MOVE ' ' TO DETAIL-LINE.PRINT-LINE        
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**            VALUE 'P'           
*S**              IF #PRINT-PRIORITY-REPORT     
*S**                WRITE(3) 10T 'Replaces FC: '
*S**                             WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB)     
*S**                         33T 'Remaining FC: '           
*S**                             WFPKPAKD.#RUN-FC(#AWARD-SUB)           
*S**                        60T 'Remaining PC:' WFPKPAKD.#RUN-PC(#AWARD-SUB)        
*S**                         /      
*S**              END-IF
*S**              MOVE WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) TO
*S**                          #PRT8-LINE.#PRT8-REPL-FC      
*S**              MOVE EDITED WFPKPAKD.#RUN-FC(#AWARD-SUB) (EM=ZZZZZ9) TO           
*S**                          #PRT8-LINE.#PRT8-RUN-FC       
*S**              MOVE EDITED WFPKPAKD.#RUN-PC(#AWARD-SUB) (EM=ZZZZZ9) TO           
*S**                          #PRT8-LINE.#PRT8-RUN-PC       
*S**              MOVE #PRT8-LINE-R TO DETAIL-LINE.PRINT-LINE           
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**              MOVE ' ' TO DETAIL-LINE.PRINT-LINE        
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**            VALUE 'F'           
*S**              IF #PRINT-PRIORITY-REPORT     
*S**                WRITE(3) 10T 'Replaces FC: '
*S**                             WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB)     
*S**                         33T 'Remaining FC: '           
*S**                             WFPKPAKD.#RUN-FC(#AWARD-SUB)           
*S**                         /      
*S**              END-IF
*S**              MOVE WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) TO
*S**                          #PRT9-LINE.#PRT9-REPL-FC      
*S**              MOVE EDITED WFPKPAKD.#RUN-FC(#AWARD-SUB) (EM=ZZZZZ9) TO           
*S**                          #PRT9-LINE.#PRT9-RUN-FC       
*S**              MOVE #PRT9-LINE-R TO DETAIL-LINE.PRINT-LINE           
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**              MOVE ' ' TO DETAIL-LINE.PRINT-LINE        
*S**              PERFORM WRITE-PRINT-DETAIL-FILE           
*S**            NONE    
*S**              IF #PRINT-PRIORITY-REPORT     
*S**                WRITE(3) 10T 'Replaces FC: '
*S**                             WFPKFNDD.WF-FU-REPL-FC(#AWARD-SUB) /   
*S**              END-IF
*S**          END-DECIDE
*S**        END-IF      
*S**      END-IF        
*S**    END-IF          
*S**  END-FOR           
*S**  IF #DEBUG-DET = '3'           
*S**    IF #PRINT-PRIORITY-REPORT   
*S**      WRITE(3) / 1T 'Remaining ======>'     
*S**               18T '     Need:' WFPKPAKD.#REM-NEED      
*S**               42T 'FC:  ' WFPKPAKD.#REM-FC 
*S**                   'PC:' WFPKPAKD.#REM-PC   
*S**                   'SC:' WFPKPAKD.#REM-SC / 
*S**    END-IF          
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE EDITED WFPKPAKD.#REM-NEED (EM=ZZZZ9) TO #PRT3-LINE.#PRT3-NEED          
*S**    MOVE EDITED WFPKPAKD.#REM-FC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-FC 
*S**    MOVE EDITED WFPKPAKD.#REM-PC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-PC 
*S**    MOVE EDITED WFPKPAKD.#REM-SC (EM=ZZZZZ9) TO #PRT3-LINE.#PRT3-SC 
*S**    MOVE #PRT3-LINE-R TO DETAIL-LINE.PRINT-LINE         
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**    MOVE ' ' TO DETAIL-LINE.PRINT-LINE      
*S**    PERFORM WRITE-PRINT-DETAIL-FILE         
*S**  END-IF
*S**  /*    
*S**  IF #PRINT-PRIORITY-REPORT     
*S**    WRITE(3) / 5T 'Total package amt:'  #TOTAL-PACKAGE (EM=ZZ,ZZ9.99)           
*S**  END-IF
*S**  MOVE ' ' TO DETAIL-LINE.PRINT-LINE        
*S**  PERFORM WRITE-PRINT-DETAIL-FILE           
*S**  MOVE EDITED #TOTAL-PACKAGE (EM=ZZ,ZZ9.99) TO #PRT4-LINE.#PRT4-PKG-AMT         
*S**  MOVE #PRT4-LINE-R TO DETAIL-LINE.PRINT-LINE           
*S**  PERFORM WRITE-PRINT-DETAIL-FILE           
*S**  IF #PRINT-PRIORITY-REPORT     
*S**    WRITE(3) '_'(79)
*S**  END-IF
*S**  COMPRESS #79-UNDERSCORE       
*S**   INTO DETAIL-LINE.PRINT-LINE  
*S**    LEAVING NO SPACE
*S**  PERFORM WRITE-PRINT-DETAIL-FILE           
*S**  /*    
*S**END-SUBROUTINE /* PRINT-PACKAGE-DETAIL      
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE SETUP-PRINT-DETAIL        
*S*************************************************************************         
*S**  /*    
*S**  /* Print bypass detail        
*S** MOVE ##STATUS TO #PASS-TEMP    
*S** MOVE 'WWSTDNTD.WW-ST-ST-STATUS' TO #PASS-KEY           
*S** PERFORM GET-VALUE-TRANSLATION #PASS-KEY #PASS-TEMP     
*S** MOVE #PASS-TEMP TO ##ST-STATUS 
*S**  RESET #DET-LINE(*)
*S**  FOR #AWARD-SUB = 1 TO 20      
*S**    DECIDE FOR FIRST CONDITION  
*S**      WHEN WFPKPAKD.#REJECT-RSN(#AWARD-SUB) NOT = ' '   
*S**        DECIDE ON FIRST VALUE OF #REJECT-RSN(#AWARD-SUB)
*S**          VALUE #FUND-PREV-AWARDED          
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund previously awarded'    
*S**          VALUE #NOT-PELL-ELIGIBLE          
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not Pell eligible'          
*S**          VALUE #HAS-BLANK-SAI  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Blank SAI'      
*S**          VALUE #FUND-NOT-FOUND 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund not found' 
*S**          VALUE #FUND-FROZEN    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund frozen'    
*S**          VALUE #FUND-ALLOW     
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund not allowed'           
*S**          VALUE #FUND-STATUS    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund status'    
*S**          VALUE #DEGREE-REQ     
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Degree requirement'         
*S**          VALUE #PAR-ED-LEVEL   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Parent Ed level'
*S**          VALUE #PELL-INDEX-ERR 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Pell index > fund index max'
*S**          VALUE #EFC-CHECK-ERR  
*S**            IF ##AID-YEAR > '2024'          
*S**              ASSIGN #DET-LINE(#AWARD-SUB) =
*S**                           ': SAI out of range'         
*S**            ELSE    
*S**              ASSIGN #DET-LINE(#AWARD-SUB) =
*S**                           ': EFC out of range'         
*S**            END-IF  
*S**          VALUE #FUND-MIN-ERR   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund min not met'           
*S**          VALUE #FUND-LIMIT-ERR 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund limit exceeded'        
*S**          VALUE #NO-SECOND-DEGREE           
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Second degree'  
*S**          VALUE #FUND-MAX-ERR   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': No Fund maximum'
*S**          VALUE #NO-NEED        
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': No remaining need'          
*S**          VALUE #INVALID-ENR    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid enrollment'         
*S**          VALUE #INVALID-CLASS  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid class'  
*S**          VALUE #INVALID-DEGREE 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid degree' 
*S**          VALUE #INVALID-COLLEGE
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid college'
*S**          VALUE #INVALID-MAJOR  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid major'  
*S**          VALUE #INVALID-YR-COL 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid year in college'    
*S**          VALUE #INVALID-DEP    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid dep status'         
*S**          VALUE #NO-INT         
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not interested in work'     
*S**          VALUE #NO-LOAN        
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not interested in loan'     
*S**          VALUE #PACKAGE-FUND   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Fund not set for packaging' 
*S**          VALUE #REQ-NOT-FOUND  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Requirement not met'        
*S**          VALUE #REQ-FOUND      
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Invalid Requirement'        
*S**          VALUE #PROG-NOT-FOUND 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Category not found'         
*S**          VALUE #STATE-RES      
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': State residency'
*S**          VALUE #GPA-THRESHOLD-ERR          
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': GPA threshold'  
*S**          VALUE #NEED-THRESHOLD-ERR         
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Need threshold' 
*S**          VALUE #FC-THRESHOLD-ERR           
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': FC threshold'   
*S**          VALUE #INCOME-THRESHOLD-ERR       
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Income threshold'           
*S**          VALUE #APPROVED-PROGRAM-ERR       
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not in approved program'    
*S**          VALUE #SNAPSHOT-ERR   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Snapshot error' 
*S**          VALUE #INVALID-REQ    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Reqmt not allowed'          
*S**          VALUE #NUM-AWARDS     
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Number of awards'           
*S**          VALUE #DATE-PASSED    
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Cutoff date passed'         
*S**          VALUE #ALTERNATE-FUND 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Alternate fund awarded'     
*S**          VALUE #DEP-STATUS-ERR 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Dependency status'          
*S**          VALUE #NOT-ELIGIBLE   
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not eligible'   
*S**          VALUE #FISAP-INCOME-ERR           
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': FISAP income limit'         
*S**          VALUE #ANNUAL-LIMIT-ERR           
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Annual limit reached'       
*S**          VALUE #LIFETIME-LIMIT-ERR         
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Lifetime limit reached'     
*S**          VALUE #CIT-ERR        
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Citizenship inappropriate'  
*S**          VALUE #NOT-GRAD-STDNT 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not a graduate student'     
*S**          VALUE #NOT-DEP-STDNT  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Not a dependent student'    
*S**          VALUE #NO-ISIR        
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': No ISIR found'  
*S**          VALUE #NO-FUNDS       
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': No fund limit defined'      
*S**          VALUE #NO-PELL-AWARD  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': No Pell awarded'
*S**          VALUE #PELL-LEU-LIMIT 
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Pell LEU limit' 
*S**          VALUE #GR-WITH-BACH-DEG-ERR       
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': Graduate with bach degree'  
*S**          VALUE #M2-BUDGET-ERR  
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': M2 Budget = 0'  
*S**          VALUE #DL-SUB-LIMIT-ERR           
*S**            ASSIGN #DET-LINE(#AWARD-SUB) =  
*S**                         ': DL Sub limit '  
*S**          NONE      
*S**            COMPRESS 'No reject message:'   
*S**                      WFPKPAKD.#REJECT-RSN(#AWARD-SUB)  
*S**                 TO #DET-LINE(#AWARD-SUB)   
*S**        END-DECIDE  
*S**      WHEN WFPKPAKD.AWARD-AMT(#AWARD-SUB) > 0           
*S**        MOVE EDITED WFPKPAKD.AWARD-AMT(#AWARD-SUB) (EM=ZZZ,ZZ9.99)  
*S**             TO #AWD-DISP       
*S**        IF WFPKFNDD.WF-FUND-ID(#AWARD-SUB) = PELL-FUND-ID AND       
*S**           WFPKPAKD.#USE-EST-PELL = 'Y'     
*S**          COMPRESS 'Awarded:' #AWD-DISP '** (PELL-EST)' 
*S**                   TO #DET-LINE(#AWARD-SUB) 
*S**        ELSE        
*S**          COMPRESS 'Awarded:' #AWD-DISP     
*S**                   TO #DET-LINE(#AWARD-SUB) 
*S**        END-IF      
*S**      WHEN NONE     
*S**        MOVE EDITED WFPKPAKD.AWARD-AMT(#AWARD-SUB) (EM=ZZZ,ZZ9.99)  
*S**             TO #AWD-DISP       
*S**        COMPRESS 'No award:' #AWD-DISP      
*S**                 TO #DET-LINE(#AWARD-SUB)   
*S**        IGNORE      
*S**    END-DECIDE      
*S**  END-FOR           
*S**END-SUBROUTINE /* SETUP-PRINT-DETAIL        
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE WRITE-AWARD-TRANSACTION   
*S*************************************************************************         
*S**  /*    
*S**  /* Write award transactions   
*S**  IF NOT #WROTE-AWARD-HDR       
*S**    ASSIGN #WROTE-AWARD-HDR = TRUE          
*S**    ASSIGN AWARD-TRAN.HEADER = 'BATCH HDR'  
*S**    ASSIGN AWARD-TRAN.ID = #INPUT-BATCH-ID  
*S**    ASSIGN AWARD-TRAN.USER = 'WFPKPAKB'     
*S**    ASSIGN AWARD-TRAN.FAO = ##FAO-ID        
*S**    ASSIGN AWARD-TRAN.AID-YEAR = ##AID-YEAR 
*S**    ADD 1 TO #AWD-WRITE-COUNTER 
*S**    WRITE WORK 3 AWARD-TRAN     
*S**  END-IF
*S**  FOR #AWARD-SUB = 1 to 20      
*S**    IF WFPKPAKD.AWARD-AMT(#AWARD-SUB) > 0   
*S**      RESET AWARD-TRAN          
*S**      ASSIGN #WROTE-AWARD-TRAN = TRUE       
*S**      ASSIGN AWARD-TRAN.WW-ST-SID = WWSTDNTD.WW-ST-SID  
*S**      ASSIGN AWARD-TRAN.WF-AID-YEAR = ##AID-YEAR        
*S**      ASSIGN AWARD-TRAN.WF-FAO = ##FAO-ID   
*S**      IF WFPKFNDD.WF-FUND-ID(#AWARD-SUB) = PELL-FUND-ID AND         
*S**         WFPKPAKD.#USE-EST-PELL = 'Y'       
*S**        ASSIGN AWARD-TRAN.WF-FUND-ID = #ESTIMATED-PELL-FUND         
*S**      ELSE          
*S**        ASSIGN AWARD-TRAN.WF-FUND-ID = WFPKFNDD.WF-FUND-ID(#AWARD-SUB)          
*S**      END-IF        
*S**      ASSIGN AWARD-TRAN.ACTION-CODE = WFPKFNDD.FUND-OFFER(#AWARD-SUB)           
*S**      MOVE EDITED WFPKPAKD.AWARD-AMT(#AWARD-SUB) (EM=99999.99)      
*S**        TO AWARD-TRAN.AMOUNT    
*S**      IF #INPUT-DIST-CODE NE ' '
*S**        ASSIGN AWARD-TRAN.DIST-CODE = #INPUT-DIST-CODE  
*S**      ELSE          
*S**        ASSIGN AWARD-TRAN.DIST-CODE = WFPKFNDD.WF-FU-DIST(#AWARD-SUB)           
*S**      END-IF        
*S**      ADD 1 TO #AWD-WRITE-COUNTER           
*S**      WRITE WORK 3 AWARD-TRAN   
*S**    END-IF          
*S**  END-FOR           
*S**END-SUBROUTINE /* WRITE-AWARD-TRANSACTION   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE WRITE-FUND-ROSTER-TRANSACTION         
*S*************************************************************************         
*S**  /*    
*S**  /* Write Fund roster transactions         
*S**  FOR #AWARD-SUB = 1 to 20      
*S**    IF WFPKPAKD.AWARD-AMT(#AWARD-SUB) > 0   
*S**      RESET FUND-ROSTER-TRAN    
*S**      ASSIGN FUND-ROSTER-TRAN.WW-ST-SID = WWSTDNTD.WW-ST-SID        
*S**      ASSIGN FUND-ROSTER-TRAN.WF-AID-YEAR = ##AID-YEAR  
*S**      ASSIGN FUND-ROSTER-TRAN.WF-FAO = ##FAO-ID         
*S**      ASSIGN FUND-ROSTER-TRAN.WF-FUND-ID =  
*S**             WFPKFNDD.WF-FUND-ID(#AWARD-SUB)
*S**      IF WFPKPAKD.#USE-EST-PELL = 'Y'       
*S**        ASSIGN FUND-ROSTER-TRAN.EST-FUND = '*'          
*S**      END-IF        
*S**      ASSIGN FUND-ROSTER-TRAN.ACTION-CODE = 
*S**             WFPKFNDD.FUND-OFFER(#AWARD-SUB)
*S**      ASSIGN FUND-ROSTER-TRAN.AMOUNT = WFPKPAKD.AWARD-AMT(#AWARD-SUB)           
*S**      IF #INPUT-DIST-CODE NE ' '
*S**        ASSIGN FUND-ROSTER-TRAN.DIST-CODE = #INPUT-DIST-CODE        
*S**      ELSE          
*S**        ASSIGN FUND-ROSTER-TRAN.DIST-CODE = 
*S**               WFPKFNDD.WF-FU-DIST(#AWARD-SUB)          
*S**      END-IF        
*S**      ASSIGN FUND-ROSTER-TRAN.NAME = ##COMP-NAME        
*S**      ADD 1 TO #FR-WRITE-COUNTER
*S**      WRITE WORK 5 FUND-ROSTER-TRAN         
*S**    END-IF          
*S**  END-FOR           
*S**END-SUBROUTINE /* WRITE-FUND-ROSTER-TRANSACTION         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE WRITE-PACKAGING-TRANSACTION           
*S*************************************************************************         
*S**  /*    
*S**  /* Write packaging transactions for students with award transactions          
*S**  IF #WROTE-AWARD-TRAN          
*S**    IF NOT #WROTE-PACKAGING-HDR 
*S**      ASSIGN #WROTE-PACKAGING-HDR = TRUE    
*S**      ASSIGN INPUT-TRAN.HEADER = 'BATCH HDR'
*S**      ASSIGN INPUT-TRAN.ID = #INPUT-BATCH-ID
*S**      ASSIGN INPUT-TRAN.USER = 'WFPKPAKB'   
*S**      ADD 1 TO #PKG-WRITE-COUNTER           
*S**      WRITE WORK 4 INPUT-TRAN   
*S**    END-IF          
*S**    /*  
*S**    /* Write packaging status transaction   
*S**    RESET INPUT-TRAN
*S**    ASSIGN INPUT-TRAN.WW-ST-SID = WWSTDNTD.WW-ST-SID    
*S**    ASSIGN INPUT-TRAN.WF-AID-YEAR = ##AID-YEAR          
*S**    ASSIGN INPUT-TRAN.WF-FAO = ##FAO-ID     
*S**    ASSIGN INPUT-TRAN.FILE-FIELD = 'WF-AIDYEAR.WF-AY-P-STAT'        
*S**    ASSIGN INPUT-TRAN.DATA-VALUE = 'P'                /* Aid packaged           
*S**    ADD 1 TO #PKG-WRITE-COUNTER 
*S**    WRITE WORK 4 INPUT-TRAN     
*S**    /*  
*S**    RESET #WROTE-AWARD-TRAN     
*S**  END-IF
*S**END-SUBROUTINE /* WRITE-PACKAGING-TRANSACTION           
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE WRITE-PRINT-DETAIL-FILE   
*S*************************************************************************         
*S**  /*    
*S**  /* Write detail lines to work file        
*S**  /*  (for student name sorted report)      
*S**  ADD 1 TO DETAIL-LINE.LINE-NO  
*S**  ASSIGN DETAIL-LINE.WW-ST-SID = WWSTDNTD.WW-ST-SID     
*S**  ASSIGN DETAIL-LINE.WF-AID-YEAR = ##AID-YEAR           
*S**  ASSIGN DETAIL-LINE.WF-FAO = ##FAO-ID      
*S**  ASSIGN DETAIL-LINE.LAST-NAME = WWSTDNTD.WW-ST-NM-LAST 
*S**  ASSIGN DETAIL-LINE.FIRST-NAME = WWSTDNTD.WW-ST-NM-FIRST           
*S**  IF #STUDENT-PACKAGED          
*S**    ASSIGN DETAIL-LINE.STUDENT-PACKAGED = 'Y'           
*S**  ELSE  
*S**    ASSIGN DETAIL-LINE.STUDENT-PACKAGED = 'N'           
*S**  END-IF
*S**  WRITE WORK 6 DETAIL-LINE      
*S**END-SUBROUTINE /* WRITE-PRINT-DETAIL-FILE   
*S**END     
