*S****SAG GENERATOR: WW-OBJECT-MAINT-DIALOG           Version: 3.2.2    
*S****SAG TITLE: 2026-27 ADD Compare
*S****SAG SYSTEM: FINANCIER         
*S****SAG GDA: WWGDA    
*S****SAG DESCS(1): This program displays federal information from      
*S****SAG DESCS(2): the ADD and Federal files.  It allows the user      
*S****SAG DESCS(3): to compare incoming and already-loaded federal      
*S****SAG DESCS(4): application information.    
*S****SAG HEADER1: FINANCIER        
*S****SAG DIRECT-COMMAND-PROCESS:   
*S****SAG ACTIONS: 0001010100000000 
*S****SAG OBJECT-NAME: WFFED27O     
*S****SAG MAX-WINDOWS: 4
*S****SAG MAP-NAME(1): WFA27OVM     
*S****SAG MAP-NAME(2): WFA27STM     
*S****SAG MAP-NAME(3): WFA27PAM     
*S****SAG MAP-NAME(4): WFA27SPM     
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFAFC27P           
*S*** System   : FINANCIER          
*S*** Title    : 2026-27 ADD Compare
*S*** Function : This program displays federal information from         
*S***            the ADD and Federal files.  It allows the user         
*S***            to compare incoming and already-loaded federal         
*S***            application information.       
*S***       
*S***      Copyright 1995 - 2026 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WF27FEXD /* Passed to object subprogram   
*S**  LOCAL USING WFAIDYND /* Passed to object subprogram   
*S**  LOCAL USING WFAIDYNR /* Passed to object subprogram   
*S**  LOCAL USING WFAIDYNS /* Shadow file       
*S**  LOCAL USING WFFED27D /* Passed to object subprogram   
*S**  LOCAL USING WFFED27R /* Passed to object subprogram   
*S**  LOCAL USING WFFED27S /* Shadow file       
*S**  LOCAL USING WWAOBJ   /* Used by object subprograms    
*S***       
*S**  LOCAL USING WWCONST  /* Constants         
*S**  LOCAL USING WWDIALDA /* Common data for dialog objects.           
*S**  LOCAL USING WWENVIRA /* Used to capture/restore previous environment.         
*S**  LOCAL USING WWKEYLDA /* Used to set function keys and names.      
*S**  LOCAL USING WWVALLDA /* Used by valid values/edit mask routine    
*S**  LOCAL 
*S****SAG DEFINE EXIT SECURITY-PGM  
*S**  /*    
*S**  /* Security program exit      
*S**  01 #SECURITY-PROGRAM(A8) INIT<'WFADDBRP'> 
*S****SAG END-EXIT      
*S****SAG DEFINE EXIT EVENT-HISTORY 
*S**  /*    
*S**  /* Literals utilized by Event History routine         
*S**  01 #EVENT-TYPE(A5) CONST<' '> 
*S**  01 #EVENT-DESC(A40) CONST<' '>
*S****SAG END-EXIT      
*S****SAG DEFINE EXIT REQUIREMENTS  
*S**  /*    
*S**  /* Variables Requirement routine          
*S**  01 #REQMNTS(3)    
*S**    02 #REQMNT-TYPE(A1)              /* (A/Application, D/Disbursement)         
*S**        INIT (1)<' '> (2)<' '> (3)<' '>     
*S**    02 #REQMNT-DOC(A6)               /* Document mnemonic           
*S**        INIT (1)<' '> (2)<' '> (3)<' '>     
*S**    02 #REQMNT-PD(A2)                /* (ST/Student, AY/Aid Year)   
*S**        INIT (1)<' '> (2)<' '> (3)<' '>     
*S****SAG END-EXIT      
*S***       
*S*** Scalar Constants. 
*S**  01 #REQ-PAGE(A2)  
*S**  01 REDEFINE #REQ-PAGE         
*S**    02 #REQ-PAGE-N(N2)          
*S**  01 #HOLD-PAGE(A1) 
*S**  01 REDEFINE #HOLD-PAGE        
*S**    02 #HOLD-PAGE-N(N1)         
*S**  01 #REQ-PAGE-CV(C)
*S**  01 #PANELS(P3)    
*S**  01 #MAX-PANELS(P4) CONST<4>   
*S***       
*S*** Miscellaneous Variables.      
*S**  01 #NEXT(L)                        /* Next processing selected    
*S**  01 #DISPLAYED-KEY(A11) /* Last record found           
*S**  01 #FIRST-PANEL(P3)           
*S**  01 #TYPE-POS(P3)  
*S**  01 #KEY(A11)  /* Key field copied from map.           
*S**  01 #LAST-PANEL(N7)
*S**  01 #HOLD-PANEL(N7)
*S**  01 #NEW-OBJECT(L)         /* GET was done on different object     
*S**  01 #BYPASS-OBJECT(L)      /* I/O was done via subprogram          
*S**  01 #BYPASS-INPUT(L)       /* do not perform input statement       
*S**  01 #NULL-KEY(A11) 
*S**  01 #PANEL(N7) INIT <1>        
*S**  01 #SCROLLING(L/1:4)          
*S**  01 REDEFINE #SCROLLING        
*S**    02 #UP-DOWN-SCROLLING(L)    
*S****SAG DEFINE EXIT LOCAL-DATA    
*S**  01 #TITLE(A43)    
*S***       
*S**  01 #TAB-REJECTS(A1)           
*S**  01 #FED-DEP(A11)  
*S**  01 #FED-SAI(A8)   
*S**  01 #FED-SANAL(A7) 
*S**  01 #FED-SC(A10)   
*S**  01 #FED-SCI(A10)  
*S**  01 #FED-SCA(A10)  
*S**  01 #FED-PANAL(A7) 
*S**  01 #FED-PC(A10)   
*S**  01 #FED-PCI(A10)  
*S**  01 #FED-PCA(A10)  
*S***       
*S**  01 #FE-S-AFINF-N(P11)         
*S**  01 #FE-S-AFINF(A14)           
*S**  01 #FE-S-UNTXD-N(P11)         
*S**  01 #FE-S-UNTXD(A14)           
*S**  01 #FE-SP-AFINF-N(P11)        
*S**  01 #FE-SP-AFINF(A14)          
*S**  01 #FE-SP-UNTXD-N(P11)        
*S**  01 #FE-SP-UNTXD(A14)          
*S**  01 #FE-P1-AFINF-N(P11)        
*S**  01 #FE-P1-AFINF(A14)          
*S**  01 #FE-P1-UNTXD-N(P11)        
*S**  01 #FE-P1-UNTXD(A14)          
*S**  01 #FE-P2-AFINF-N(P11)        
*S**  01 #FE-P2-AFINF(A14)          
*S**  01 #FE-P2-UNTXD-N(P11)        
*S**  01 #FE-P2-UNTXD(A14)          
*S**  01 #EDCR(P11)     
*S***       
*S**  01 #ADDL-S-TOTAL-N(P11)       
*S**  01 #ADDL-S-TOTAL(A11)         
*S**  01 #UNTX-S-TOTAL-N(P11)       
*S**  01 #UNTX-S-TOTAL(A11)         
*S**  01 #ADDL-SP-TOTAL-N(P11)      
*S**  01 #ADDL-SP-TOTAL(A11)        
*S**  01 #UNTX-SP-TOTAL-N(P11)      
*S**  01 #UNTX-SP-TOTAL(A11)        
*S**  01 #ADDL-P1-TOTAL-N(P11)      
*S**  01 #ADDL-P1-TOTAL(A11)        
*S**  01 #UNTX-P1-TOTAL-N(P11)      
*S**  01 #UNTX-P1-TOTAL(A11)        
*S**  01 #ADDL-P2-TOTAL-N(P11)      
*S**  01 #ADDL-P2-TOTAL(A11)        
*S**  01 #UNTX-P2-TOTAL-N(P11)      
*S**  01 #UNTX-P2-TOTAL(A11)        
*S***       
*S**  01 #HOLD-SAI(N6)  
*S**  01 #HOLD-SC(N15)  
*S**  01 #HOLD-SCI(N15) 
*S**  01 #HOLD-SCA(N12) 
*S**  01 #HOLD-PC(N15)  
*S**  01 #HOLD-PCI(N15) 
*S**  01 #HOLD-PCA(N12) 
*S**  01 #CNVT-NEG(L)   
*S**  01 #CNVT-BYTE(A1) 
*S**  01 #PASS-KEY(A30) 
*S**  01 #PASS-TEMP(A30)
*S**  01 #6-BYTE-FIELD(A6)          
*S**  01 #6-BYTE-FIELD-N(P6)        
*S**  01 #15-BYTE-FIELD(A15)        
*S**  01 #15-BYTE-FIELD-N(P15)      
*S**  01 #SAVE-WWAOBJ-EXISTS(L)     
*S**  01 #REJ-LIT(A8)   
*S****SAG END-EXIT      
*S**END-DEFINE          
*S***       
*S***       
*S*** Define Formats    
*S**FORMAT PS=23 KD=ON LS=133 ZP=OFF
*S***       
*S**PERFORM INITIALIZATIONS         
*S***       
*S*************************************************************************         
*S***       
*S**PROG.   
*S**REPEAT                                           /* until exit action           
*S**  /*    
*S**NEW-SCREEN.         
*S**  REPEAT   /* Escape this repeat with indexes set as desired.       
*S**    /*  
*S**    /*  Security / Required fields          
*S**    /*    Perform first time and/or new student (set via Selection) 
*S**    IF #DISPLAYED-KEY = #NULL-KEY           
*S**      MOVE 'WFAIDYND' TO ##FILE-ID          
*S**      MOVE #SECURITY-PROGRAM TO ##PGM-ID    
*S**      PERFORM AIDNEED-SECURITY AIDNEED-CNTL-VARS        
*S**      RESET INITIAL AIDNEED-LOGICALS        
*S**      MOVE 'WFFED27D' TO ##FILE-ID          
*S**      MOVE #SECURITY-PROGRAM TO ##PGM-ID    
*S**      PERFORM FEDERAL-2627-SECURITY FEDERAL-2627-CNTL-VARS          
*S**      RESET INITIAL FEDERAL-2627-LOGICALS   
*S**      /*
*S**      PERFORM REQUIRED-FIELD-CHECK REQUIRED-FIELD(*)    
*S**      PERFORM SET-KEYS          
*S**    END-IF          
*S**    /*  
*S**    PERFORM VALIDATE-INDEXES    
*S**    /*  
*S**    /* Load appropriate function
*S**    IF #ADD-OBJECT  
*S**      ASSIGN #FUNCTION = 'STORE'
*S**      IF NOT #SCROLLING(*)      
*S**        RESET #ADD-OBJECT       
*S**      END-IF        
*S**    ELSE
*S**      IF #DISPLAYED-KEY NE #KEY 
*S**         OR #KEY = #NULL-KEY    
*S**        ASSIGN #FUNCTION = 'GET'
*S**      ELSE          
*S**        ASSIGN #FUNCTION = 'UPDATE'         
*S**      END-IF        
*S**    END-IF          
*S****SAG DEFINE EXIT BEFORE-CALL-OBJECT        
*S**    /*  
*S**    /* Load student id from GDA, allows selection criteria          
*S**    /* to be properly processed 
*S**    MOVE ##STUDENT-ID TO WFFED27D.WW-STUDENT-ID         
*S**    MOVE ##FAO-ID TO WFFED27D.WF-FAO        
*S****SAG END-EXIT      
*S**    /*  
*S**    /* If ENTER was pressed, process the specified action.          
*S**    DECIDE FOR FIRST CONDITION  
*S**      WHEN #SCROLLING(*)        
*S**        MOVE #LAST-PANEL TO #HOLD-PANEL     
*S**      WHEN NONE     
*S**        /*          
*S**        /* Perform object I/O subprogram    
*S**        IF #BYPASS-OBJECT       
*S**          RESET #BYPASS-OBJECT  
*S**        ELSE        
*S**          PERFORM CALL-OBJECT   
*S**        END-IF      
*S**    END-DECIDE      
*S**    /*  
*S**    /* Load shadow file definitions for appropriate map 
*S**    IF NOT #CONFIRM-PURGE       
*S**      MOVE #PANEL TO #HOLD-PANEL
*S**      MOVE LOAD TO ##PASS-TEMP  
*S**      PERFORM CALL-EXT-SUBS     
*S****SAG DEFINE EXIT AFTER-CALL-LOAD           
*S**      IF WFAIDYNS.WF-AY-M1-DEP NE ' ' AND   
*S**         WFAIDYNS.WF-AY-M1-FC = ' '         
*S**        MOVE '        0' TO WFAIDYNS.WF-AY-M1-FC        
*S**      END-IF        
*S***       
*S**     COMPUTE #FE-S-AFINF-N = WFFED27D.WF-FE-S-EDCR +    
*S**                              WFFED27D.WF-FE-S-U-ROLL-IRA +         
*S**                              WFFED27D.WF-FE-S-U-ROLL-PEN +         
*S**                              WFFED27D.WF-FE-S-GRNT     
*S**     IF #FE-S-AFINF-N > 99999999
*S**       ASSIGN #FE-S-AFINF-N = 99999999      
*S**     END-IF         
*S**     MOVE EDITED #FE-S-AFINF-N (EM=ZZ,ZZZ,ZZZ) TO #FE-S-AFINF       
*S**     COMPUTE #FE-S-UNTXD-N = WFFED27D.WF-FE-S-U-INT +   
*S**                             WFFED27D.WF-FE-S-U-DST-IRA +           
*S**                             WFFED27D.WF-FE-S-U-DST-PEN +           
*S**                             WFFED27D.WF-FE-S-DED-PAY + 
*S**                             WFFED27D.WF-FE-S-U-CSUP    
*S**     IF #FE-S-UNTXD-N > 99999999
*S**       ASSIGN #FE-S-UNTXD-N = 99999999      
*S**     END-IF         
*S**     MOVE EDITED #FE-S-UNTXD-N (EM=Z,ZZZ,ZZZ) TO #FE-S-UNTXD        
*S***       
*S**      COMPUTE #FE-SP-AFINF-N = WFFED27D.WF-FE-SP-EDCR + 
*S**                              WFFED27D.WF-FE-SP-U-ROLL-IRA +        
*S**                              WFFED27D.WF-FE-SP-U-ROLL-PEN          
*S**     IF #FE-SP-AFINF-N > 99999999           
*S**       ASSIGN #FE-SP-AFINF-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-SP-AFINF-N (EM=ZZ,ZZZ,ZZZ) TO #FE-SP-AFINF     
*S**     COMPUTE #FE-SP-UNTXD-N = WFFED27D.WF-FE-SP-U-INT + 
*S**                             WFFED27D.WF-FE-SP-U-DST-IRA +          
*S**                             WFFED27D.WF-FE-SP-U-DST-PEN +          
*S**                             WFFED27D.WF-FE-SP-DED-PAY  
*S**     IF #FE-SP-UNTXD-N > 99999999           
*S**       ASSIGN #FE-SP-UNTXD-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-SP-UNTXD-N (EM=Z,ZZZ,ZZZ) TO #FE-SP-UNTXD      
*S***       
*S**     COMPUTE #FE-P1-AFINF-N = WFFED27D.WF-FE-P1-EDCR +  
*S**                             WFFED27D.WF-FE-P1-U-ROLL-IRA +         
*S**                             WFFED27D.WF-FE-P1-U-ROLL-PEN +         
*S**                             WFFED27D.WF-FE-P1-GRNT     
*S**     IF #FE-P1-AFINF-N > 99999999           
*S**       ASSIGN #FE-P1-AFINF-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-P1-AFINF-N (EM=Z,ZZZ,ZZZ) TO #FE-P1-AFINF      
*S**     COMPUTE #FE-P1-UNTXD-N = WFFED27D.WF-FE-P1-U-INT + 
*S**                             WFFED27D.WF-FE-P1-U-DST-IRA +          
*S**                             WFFED27D.WF-FE-P1-U-DST-PEN +          
*S**                             WFFED27D.WF-FE-P1-DED-PAY +
*S**                             WFFED27D.WF-FE-P1-U-CSUP   
*S**     IF #FE-P1-UNTXD-N > 99999999           
*S**       ASSIGN #FE-P1-UNTXD-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-P1-UNTXD-N (EM=Z,ZZZ,ZZZ) TO #FE-P1-UNTXD      
*S***       
*S**     COMPUTE #FE-P2-AFINF-N = WFFED27D.WF-FE-P2-EDCR +  
*S**                             WFFED27D.WF-FE-P2-U-ROLL-IRA +         
*S**                             WFFED27D.WF-FE-P2-U-ROLL-PEN           
*S**     IF #FE-P2-AFINF-N > 99999999           
*S**       ASSIGN #FE-P2-AFINF-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-P2-AFINF-N (EM=Z,ZZZ,ZZZ) TO #FE-P2-AFINF      
*S**     COMPUTE #FE-P2-UNTXD-N = WFFED27D.WF-FE-P2-U-INT + 
*S**                              WFFED27D.WF-FE-P2-U-DST-IRA +         
*S**                              WFFED27D.WF-FE-P2-U-DST-PEN +         
*S**                              WFFED27D.WF-FE-P2-DED-PAY 
*S**     IF #FE-P2-UNTXD-N > 99999999           
*S**       ASSIGN #FE-P2-UNTXD-N = 99999999     
*S**     END-IF         
*S**     MOVE EDITED #FE-P2-UNTXD-N (EM=Z,ZZZ,ZZZ) TO #FE-P2-UNTXD      
*S*** student           
*S**     IF WF27FEXD.WF-FE-S-EDCR = SPACE       
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-EDCR    
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-U-ROLL-IRA = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-ROLL-IRA          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-U-ROLL-PEN = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-ROLL-PEN          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-GRNT = SPACE       
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-GRNT    
*S**     END-IF         
*S**        
*S**     COMPUTE #ADDL-S-TOTAL-N = VAL(WF27FEXD.WF-FE-S-EDCR) +         
*S**                                VAL(WF27FEXD.WF-FE-S-U-ROLL-IRA) +  
*S**                                VAL(WF27FEXD.WF-FE-S-U-ROLL-PEN) +  
*S**                                VAL(WF27FEXD.WF-FE-S-GRNT)          
*S**     IF #ADDL-S-TOTAL-N > 99999999999       
*S**       ASSIGN #ADDL-S-TOTAL-N = 99999999999 
*S**     END-IF         
*S**     MOVE EDITED #ADDL-S-TOTAL-N (EM=ZZZZZZZZZZ9) TO #ADDL-S-TOTAL  
*S***       
*S**     IF WF27FEXD.WF-FE-S-U-INT = SPACE      
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-INT   
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-U-DST-IRA = SPACE  
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-DST-IRA           
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-U-DST-PEN = SPACE  
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-DST-PEN           
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-DED-PAY = SPACE    
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-DED-PAY 
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-S-U-CSUP = SPACE     
*S**       MOVE '0' TO WF27FEXD.WF-FE-S-U-CSUP  
*S**     END-IF         
*S**     COMPUTE #UNTX-S-TOTAL-N = VAL(WF27FEXD.WF-FE-S-U-INT) +        
*S**                               VAL(WF27FEXD.WF-FE-S-U-DST-IRA) +    
*S**                               VAL(WF27FEXD.WF-FE-S-U-DST-PEN) +    
*S**                               VAL(WF27FEXD.WF-FE-S-DED-PAY) +      
*S**                               VAL(WF27FEXD.WF-FE-S-U-CSUP)         
*S**     IF #UNTX-S-TOTAL-N >  99999999999      
*S**       ASSIGN #UNTX-S-TOTAL-N = 99999999999 
*S**     END-IF         
*S**     MOVE EDITED #UNTX-S-TOTAL-N (EM=ZZZZZZZZZZ9) TO #UNTX-S-TOTAL  
*S*** spouse
*S**     IF WF27FEXD.WF-FE-SP-EDCR = SPACE      
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-EDCR   
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-SP-U-ROLL-IRA = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-U-ROLL-IRA         
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-SP-U-ROLL-PEN = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-U-ROLL-PEN         
*S**     END-IF         
*S**     COMPUTE #ADDL-SP-TOTAL-N = VAL(WF27FEXD.WF-FE-SP-EDCR) +       
*S**                                VAL(WF27FEXD.WF-FE-SP-U-ROLL-IRA) + 
*S**                                VAL(WF27FEXD.WF-FE-SP-U-ROLL-PEN)   
*S**     IF #ADDL-SP-TOTAL-N > 99999999999      
*S**       ASSIGN #ADDL-SP-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #ADDL-SP-TOTAL-N (EM=ZZZZZZZZZZ9) TO #ADDL-SP-TOTAL
*S***       
*S**     IF WF27FEXD.WF-FE-SP-U-INT = SPACE     
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-U-INT  
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-SP-U-DST-IRA = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-U-DST-IRA          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-SP-U-DST-PEN = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-U-DST-PEN          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-SP-DED-PAY = SPACE   
*S**       MOVE '0' TO WF27FEXD.WF-FE-SP-DED-PAY
*S**     END-IF         
*S**     COMPUTE #UNTX-SP-TOTAL-N = VAL(WF27FEXD.WF-FE-SP-U-INT) +      
*S**                               VAL(WF27FEXD.WF-FE-SP-U-DST-IRA) +   
*S**                               VAL(WF27FEXD.WF-FE-SP-U-DST-PEN) +   
*S**                               VAL(WF27FEXD.WF-FE-SP-DED-PAY)       
*S**     IF #UNTX-SP-TOTAL-N >  99999999999     
*S**       ASSIGN #UNTX-SP-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #UNTX-SP-TOTAL-N (EM=ZZZZZZZZZZ9) TO #UNTX-SP-TOTAL
*S*** parent 1          
*S**     IF WF27FEXD.WF-FE-P1-EDCR = SPACE      
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-EDCR   
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-U-ROLL-IRA = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-ROLL-IRA         
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-U-ROLL-PEN = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-ROLL-PEN         
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-GRNT = SPACE      
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-GRNT   
*S**     END-IF         
*S**      COMPUTE #ADDL-P1-TOTAL-N = VAL(WF27FEXD.WF-FE-P1-EDCR) +      
*S**                                VAL(WF27FEXD.WF-FE-P1-U-ROLL-IRA) + 
*S**                                VAL(WF27FEXD.WF-FE-P1-U-ROLL-PEN) + 
*S**                                VAL(WF27FEXD.WF-FE-P1-GRNT)         
*S**     IF #ADDL-P1-TOTAL-N > 99999999999      
*S**       ASSIGN #ADDL-P1-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #ADDL-P1-TOTAL-N (EM=ZZZZZZZZZZ9) TO #ADDL-P1-TOTAL
*S***       
*S**     IF WF27FEXD.WF-FE-P1-U-INT = SPACE     
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-INT  
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-U-DST-IRA = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-DST-IRA          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-U-DST-PEN = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-DST-PEN          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-DED-PAY = SPACE   
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-DED-PAY
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P1-U-CSUP = SPACE    
*S**       MOVE '0' TO WF27FEXD.WF-FE-P1-U-CSUP 
*S**     END-IF         
*S**     COMPUTE #UNTX-P1-TOTAL-N = VAL(WF27FEXD.WF-FE-P1-U-INT) +      
*S**                               VAL(WF27FEXD.WF-FE-P1-U-DST-IRA) +   
*S**                               VAL(WF27FEXD.WF-FE-P1-U-DST-PEN) +   
*S**                               VAL(WF27FEXD.WF-FE-P1-DED-PAY) +     
*S**                               VAL(WF27FEXD.WF-FE-P1-U-CSUP)        
*S**     IF #UNTX-P1-TOTAL-N >  99999999999     
*S**       ASSIGN #UNTX-P1-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #UNTX-P1-TOTAL-N (EM=ZZZZZZZZZZ9) TO #UNTX-P1-TOTAL
*S*** parent 2          
*S**     IF WF27FEXD.WF-FE-P2-EDCR = SPACE      
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-EDCR   
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P2-U-ROLL-IRA = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-U-ROLL-IRA         
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P2-U-ROLL-PEN = SPACE
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-U-ROLL-PEN         
*S**     END-IF         
*S**      COMPUTE #ADDL-P2-TOTAL-N = VAL(WF27FEXD.WF-FE-P2-EDCR) +      
*S**                                VAL(WF27FEXD.WF-FE-P2-U-ROLL-IRA) + 
*S**                                VAL(WF27FEXD.WF-FE-P2-U-ROLL-PEN)   
*S**     IF #ADDL-P2-TOTAL-N > 99999999999      
*S**       ASSIGN #ADDL-P2-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #ADDL-P2-TOTAL-N (EM=ZZZZZZZZZZ9) TO #ADDL-P2-TOTAL
*S***       
*S**     IF WF27FEXD.WF-FE-P2-U-INT = SPACE     
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-U-INT  
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P2-U-DST-IRA = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-U-DST-IRA          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P2-U-DST-PEN = SPACE 
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-U-DST-PEN          
*S**     END-IF         
*S**     IF WF27FEXD.WF-FE-P2-DED-PAY = SPACE   
*S**       MOVE '0' TO WF27FEXD.WF-FE-P2-DED-PAY
*S**     END-IF         
*S**     COMPUTE #UNTX-P2-TOTAL-N = VAL(WF27FEXD.WF-FE-P2-U-INT) +      
*S**                               VAL(WF27FEXD.WF-FE-P2-U-DST-IRA) +   
*S**                               VAL(WF27FEXD.WF-FE-P2-U-DST-PEN) +   
*S**                               VAL(WF27FEXD.WF-FE-P2-DED-PAY)       
*S**     IF #UNTX-P2-TOTAL-N >  99999999999     
*S**       ASSIGN #UNTX-P2-TOTAL-N = 99999999999
*S**     END-IF         
*S**     MOVE EDITED #UNTX-P2-TOTAL-N (EM=ZZZZZZZZZZ9) TO #UNTX-P2-TOTAL
*S****SAG END-EXIT      
*S**    END-IF          
*S**    /*  
*S**    /* Assign appropriate message           
*S**    IF ##MSG = SPACE
*S**      DECIDE ON FIRST VALUE OF #FUNCTION    
*S**        VALUE 'GET' 
*S**          IF #ADD-OBJECT        
*S**            COMPRESS 'This information not currently stored for #TEMP,'         
*S**              'ready to add' INTO ##MSG     
*S**          ELSE      
*S**            COMPRESS 'To modify the current #TEMP information,'     
*S**              'make changes and press ENTER' INTO ##MSG 
*S**          END-IF    
*S**        VALUE 'NEXT'
*S**          COMPRESS 'Next #TEMP information has been displayed'      
*S**            INTO ##MSG          
*S**        VALUE 'UPDATE'          
*S**          COMPRESS '#TEMP information has been modified'
*S**            INTO ##MSG          
*S**        VALUE 'STORE'           
*S**          COMPRESS '#TEMP information has been added'   
*S**            INTO ##MSG          
*S**        VALUE 'DELETE'          
*S**          IF #CONFIRM-PURGE     
*S**            COMPRESS '#TEMP information has been purged'
*S**              INTO ##MSG        
*S**          ELSE      
*S**            COMPRESS 'Press ENTER to confirm purge'     
*S**              INTO ##MSG        
*S**          END-IF    
*S**        ANY         
*S**          EXAMINE ##MSG FOR '#TEMP' AND REPLACE WITH ##SYSTEM-DATA-TYPE         
*S**          EXAMINE ##MSG FOR ##SYSTEM-DATA-TYPE GIVING POSITION #TYPE-POS        
*S**          IF #TYPE-POS = 1      
*S**            EXAMINE SUBSTRING(##MSG,1,1) AND TRANSLATE INTO UPPER CASE          
*S**          END-IF    
*S**        NONE        
*S**          IGNORE    
*S**      END-DECIDE    
*S**    END-IF          
*S**    SET CONTROL 'WB'
*S****SAG DEFINE EXIT DEFINE-WINDOW 
*S**    /*  
*S**    /*  Define Window attributes
*S**    DEFINE WINDOW ADDCOMP       
*S**           SIZE 20*79           
*S**           BASE 2 / 1           
*S**           TITLE #TITLE         
*S**           CONTROL SCREEN       
*S**           FRAMED ON (CD=NE)    
*S**           POSITION OFF         
*S**    DECIDE ON FIRST VALUE #PANEL
*S**      VALUE 1       
*S**        ASSIGN #TITLE = 'ADD/FINANCIER Comparison - Federal Overview'           
*S**      VALUE 2       
*S**        ASSIGN #TITLE = 'ADD/FINANCIER Comparison - Student'        
*S**      VALUE 3       
*S**        ASSIGN #TITLE = 'ADD/FINANCIER Comparison - Par1'           
*S**      VALUE 4       
*S**        ASSIGN #TITLE = 'ADD/FINANCIER Comparison - Spouse/Par2'    
*S**      NONE IGNORE   
*S**    END-DECIDE      
*S**    SET WINDOW 'ADDCOMP'        
*S**    ASSIGN ##COLOR = 'NE'       
*S****SAG END-EXIT      
*S**    /*  
*S**    /* INPUT processing         
*S**    /*  
*S**    /* Set #REJ-LIT to show if there are no rejects     
*S**    IF WF27FEXD.WF-FE-C-REJ-RSNS NE ' '     
*S**      MOVE '(Exist) ' TO #REJ-LIT           
*S**    ELSE
*S**      MOVE '(None)  ' TO #REJ-LIT           
*S**    END-IF          
*S**    /*  
*S**    /* Input Map    
*S**    IF NOT #BYPASS-INPUT        
*S**      /*
*S**      DECIDE ON FIRST VALUE #PANEL          
*S**        VALUE 1     
*S**          INPUT WITH TEXT ##MSG,
*S**                          ##MSG-DATA(1),##MSG-DATA(2),##MSG-DATA(3) 
*S**                USING MAP 'WFA27OVM'        
*S**        VALUE 2     
*S**          INPUT WITH TEXT ##MSG,
*S**                          ##MSG-DATA(1),##MSG-DATA(2),##MSG-DATA(3) 
*S**                USING MAP 'WFA27STM'        
*S**        VALUE 3     
*S**          INPUT WITH TEXT ##MSG,
*S**                          ##MSG-DATA(1),##MSG-DATA(2),##MSG-DATA(3) 
*S**                USING MAP 'WFA27PAM'        
*S**       VALUE 4      
*S**         INPUT WITH TEXT ##MSG, 
*S**                         ##MSG-DATA(1),##MSG-DATA(2),##MSG-DATA(3)  
*S**               USING MAP 'WFA27SPM'         
*S**        NONE IGNORE 
*S**      END-DECIDE    
*S**    END-IF          
*S**    /*  
*S**    RESET ##MSG     
*S**    /*  
*S**    /* Scrolling edit           
*S**    PERFORM SCROLLING /* Determine type of scrolling.   
*S**    /*  
*S**    /* Check standard PF-Keys   
*S**    INCLUDE WWSTDKEY
*S**    /*  
*S**    /* Trap invalid PF-Keys.    
*S**    IF #SCROLLING(*) OR *PF-KEY = 'ENTR'    
*S**       OR *PF-KEY = WWKEYLDA.#SELECT-KEY    
*S**       IGNORE       
*S**    ELSE
*S**      IF *PF-KEY = WWKEYLDA.#EXPAND-KEY     
*S**       IF *CURS-FIELD = POS(#TAB-REJECTS)   
*S**          /*        
*S**          /* ##PASS-ACTION contains WF-AD-SOURCE        
*S**          /*   (passed from WFADDMTP)       
*S**          FETCH RETURN 'WFARJ27P'           
*S**          RESET #DISPLAYED-KEY  
*S**        END-IF      
*S**      ELSE          
*S**       REINPUT 'Invalid program function key' ALARM     
*S**      END-IF        
*S**    END-IF          
*S**    /*  
*S**    /* Perform edit routine     
*S**    RESET INITIAL #FAIL-EDIT    
*S**    MOVE #LAST-PANEL TO #HOLD-PANEL         
*S**    MOVE EDIT TO ##PASS-TEMP    
*S**    PERFORM CALL-EXT-SUBS       
*S**    IF #FAIL-EDIT   
*S**      REINPUT FULL 'Edit errors occurred'   
*S**              MARK #MARK-FIELD ALARM        
*S**    END-IF          
*S**    /*  
*S*************************************************************************         
*S**DEFINE SUBROUTINE NEW-SCREEN    
*S*************************************************************************         
*S**  /*    
*S**  /* Subroutine to allow escape from screen loop        
*S**  ESCAPE BOTTOM(NEW-SCREEN.) IMMEDIATE      
*S**END-SUBROUTINE /* NEW-SCREEN    
*S**  /*    
*S**  END-REPEAT /* on NEW-SCREEN   
*S**END-REPEAT /* on Repeat of Program.         
*S***       
*S**PERFORM FINAL-PROCESSING        
*S***       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-EXT-SUBS 
*S*************************************************************************         
*S**  /*    
*S**  /* Call Edit and/or Mask external subroutines         
*S**  PERFORM WFAFC27P-CALL-EXT-SUBS #HOLD-PANEL WWVALLDA   
*S**        WFAIDYND WFAIDYND-ID    
*S**        WFAIDYNR WFAIDYNS       
*S**        WFFED27D WFFED27D-ID    
*S**        WFFED27R WFFED27S       
*S**  RESET ##PASS-TEMP 
*S**END-SUBROUTINE /* CALL-EXT-SUBS 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT   
*S*************************************************************************         
*S**  /*    
*S**  /* Prior to processing object 
*S**  IF WWAOBJ.#FUNCTION = 'DELETE'
*S**    RESET #CONFIRM-PURGE        
*S**  END-IF
*S**  /*    
*S**  /* Assign #KEY to equal the input fields  
*S**  MOVE BY NAME WFFED27D TO WFFED27D-ID.STRUCTURE        
*S**  ASSIGN #KEY = WFFED27D-ID     
*S**  /*    
*S**  /* Invoke subprogram to process object    
*S**  PERFORM CALL-OBJECT-IO        
*S**** save wwaobj-exists gets overwritten by CALL-OBJECT-AIDNEED       
*S**  #SAVE-WWAOBJ-EXISTS := WWAOBJ.#EXISTS     
*S****SAG DEFINE EXIT AFTER-OBJECT-CALL         
*S**  IF WWAOBJ.#FUNCTION = 'GET'   
*S**    /*  
*S**    /* Get ADD record           
*S**    /*  
*S**    /* ##PASS-ACTION contains WF-AD-SOURCE  
*S**    /*   (passed from WFADDMTP) 
*S**    CALLNAT 'WFAFR27N' WW-GDA WF27FEXD      
*S**    PERFORM PREPARE-FED-OVERVIEW
*S**    /*  
*S**    /* Get AidYear record       
*S**    ASSIGN WFAIDYND.WW-STUDENT-ID = ##STUDENT-ID        
*S**    ASSIGN WFAIDYND.WF-FAO = ##FAO-ID       
*S**    ASSIGN WFAIDYND.WF-AID-YEAR = ##AID-YEAR
*S**    PERFORM CALL-OBJECT-AIDNEED 
*S**  END-IF
*S**** Put wwaobj-exists back to CALL-OBJECT-IO value       
*S**  WWAOBJ.#EXISTS := #SAVE-WWAOBJ-EXISTS     
*S****SAG END-EXIT      
*S**  /*    
*S**  IF WWAOBJ.#FUNCTION = 'GET' AND           
*S**     NOT WWAOBJ.#EXISTS         
*S**    ASSIGN #ADD-OBJECT = TRUE   
*S**  END-IF
*S**  /*    
*S**  ASSIGN #DISPLAYED-KEY = WFFED27D-ID       
*S**  /*    
*S**  /* Reset #KEY if next record displayed    
*S**  IF #FUNCTION = 'NEXT'         
*S**    ASSIGN #KEY = #DISPLAYED-KEY
*S**  END-IF
*S**  /*    
*S**  /* Set logical for update processing      
*S**  IF #FUNCTION = 'STORE'        
*S**            OR = 'UPDATE'       
*S**    ASSIGN #UPDATE-PERFORMED = TRUE         
*S**  END-IF
*S**  /*    
*S**  /* Update performed           
*S**  IF #UPDATE-PERFORMED THEN     
*S**    CALLNAT 'WWDUTILN' WW-GDA WWVALLDA      
*S**    PERFORM ADD-EVENT #EVENT-TYPE #EVENT-DESC           
*S**    END TRANSACTION 
*S**    RESET #UPDATE-PERFORMED #ACTION #ADD-OBJECT #DATA-MODIFIED      
*S**  END-IF
*S**END-SUBROUTINE /* CALL-OBJECT   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-IO
*S*************************************************************************         
*S***       
*S**  CALLNAT 'WFFED27O' WW-GDA     
*S**           WFFED27D 
*S**           WFFED27D-ID          
*S**           WFFED27R 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-IO
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE FINAL-PROCESSING          
*S*************************************************************************         
*S**  /*    
*S**  INCLUDE WWEND /* Restore environment.     
*S**END-SUBROUTINE /* FINAL-PROCESSING          
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE INITIALIZATIONS           
*S*************************************************************************         
*S**  /*    
*S**  INCLUDE WWBEGIN                                /* Capture environment         
*S**  SET CONTROL 'WBM'                  /* Set window size/base        
*S**  /*    
*S**  /* Specify which PF-KEYS are valid, start by resetting all keys,  
*S**  /*  then assign desired keys using RESET INITIAL.     
*S**  INCLUDE WWPFSTD /* Standard PF-Keys.      
*S****SAG DEFINE EXIT SET-PF-KEYS   
*S**  /*    
*S**  /* Set additional PF Keys     
*S**  RESET INITIAL WWKEYLDA.#NOTEPAD-KEY       
*S**  RESET INITIAL WWKEYLDA.#EXPAND-KEY        
*S**  INCLUDE WWPFPRNT  
*S****SAG END-EXIT      
*S**END-SUBROUTINE /* INITIALIZATIONS           
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE SCROLLING     
*S*************************************************************************         
*S***       
*S*** Process scrolling keys and index changes. 
*S**  RESET #SCROLLING(*)           
*S**  ASSIGN #LAST-PANEL = #PANEL   
*S**  /*    
*S**  /* Scrolling      
*S**  DECIDE FOR FIRST CONDITION    
*S**    WHEN *PF-KEY = WWKEYLDA.#BACKWARD-KEY   
*S**      SUBTRACT 1 FROM #PANEL    
*S**    WHEN *PF-KEY = WWKEYLDA.#FORWARD-KEY    
*S**      ADD 1 TO #PANEL           
*S**    WHEN *PF-KEY = 'ENTR' AND #REQ-PAGE-CV MODIFIED     
*S**      MOVE RIGHT JUSTIFIED #REQ-PAGE TO #HOLD-PAGE      
*S**      ASSIGN #PANEL = #HOLD-PAGE-N          
*S**      RESET #REQ-PAGE           
*S**    WHEN ANY        
*S**      ASSIGN #UP-DOWN-SCROLLING = TRUE      
*S**    WHEN NONE       
*S**      IGNORE        
*S**  END-DECIDE        
*S**END-SUBROUTINE /* SCROLLING     
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE SET-KEYS      
*S*************************************************************************         
*S***       
*S**  INCLUDE WWPFUD   /* Scroll up-down keys   
*S**  INCLUDE WWSETKEY /* Set specified keys    
*S**  INCLUDE WWSETHLP /* Set Help keys         
*S**END-SUBROUTINE /* SET-KEY       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE VALIDATE-INDEXES          
*S*************************************************************************         
*S***       
*S*** Ensure panel is valid, implement wrap around scrolling.           
*S**  DECIDE ON FIRST VALUE #PANEL  
*S**    VALUES 1:#MAX-PANELS /* OK  
*S**      IGNORE        
*S**    VALUE -999:0         /* Too low.        
*S**      ASSIGN #PANEL = #MAX-PANELS           
*S**    NONE
*S**      ASSIGN #PANEL = 1  /* Too high.       
*S**  END-DECIDE        
*S***       
*S**END-SUBROUTINE /* VALIDATE-INDEXES          
*S***       
*S****SAG DEFINE EXIT MISCELLANEOUS-SUBROUTINES 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CALL-OBJECT-AIDNEED       
*S*************************************************************************         
*S***       
*S**  CALLNAT 'WFAIDYNO' WW-GDA     
*S**           WFAIDYND 
*S**           WFAIDYND-ID          
*S**           WFAIDYNR 
*S**           WWAOBJ   
*S**END-SUBROUTINE /* CALL-OBJECT-AIDNEED       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE PREPARE-FED-OVERVIEW      
*S*************************************************************************         
*S***       
*S**  MOVE 'WF27FEDD.WF-FE-C-DEP-MODEL' TO #PASS-KEY        
*S**  MOVE WF27FEXD.WF-FE-C-DEP-MODEL TO #PASS-TEMP         
*S**  PERFORM GET-VALUE-TRANSLATION #PASS-KEY #PASS-TEMP    
*S**  MOVE #PASS-TEMP TO #FED-DEP   
*S**  /*    
*S**  /* Student Contribution fields
*S**  MOVE SUBSTRING(WF27FEXD.WF-FE-C-SAI,1,1) TO #CNVT-BYTE
*S**  IF #CNVT-BYTE = '-'           
*S**    ASSIGN #CNVT-NEG = TRUE     
*S**    EXAMINE WF27FEXD.WF-FE-C-SAI FOR '-' DELETE         
*S**  END-IF
*S**  MOVE RIGHT JUSTIFIED WF27FEXD.WF-FE-C-SAI TO #6-BYTE-FIELD        
*S**  EXAMINE #6-BYTE-FIELD FOR ' ' REPLACE WITH '0'        
*S**  IF #6-BYTE-FIELD = MASK(999999)           
*S**    ASSIGN #6-BYTE-FIELD-N = VAL(#6-BYTE-FIELD)         
*S**    IF #CNVT-NEG    
*S**      MULTIPLY #6-BYTE-FIELD-N BY -1        
*S**    END-IF          
*S**    MOVE EDITED #6-BYTE-FIELD-N (EM=ZZZ,ZZ9-) TO #FED-SAI           
*S**  END-IF
*S***       
*S**  MOVE 'WWSYSVRD.WF-CAL-ANAL' TO #PASS-KEY  
*S**  PERFORM GET-VALUE-TRANSLATION #PASS-KEY #PASS-TEMP    
*S**  MOVE #PASS-TEMP TO #FED-SANAL 
*S**  IF WF27FEXD.WF-FE-C-DEP-MODEL = 'D' OR = 'X'          
*S**    MOVE #FED-SANAL TO #FED-PANAL           
*S**  END-IF
*S***       
*S**  MOVE SUBSTRING(WF27FEXD.WF-FE-S-FC1-CI,1,1) TO #CNVT-BYTE         
*S**  IF #CNVT-BYTE = '-'           
*S**    ASSIGN #CNVT-NEG = TRUE     
*S**    EXAMINE WF27FEXD.WF-FE-S-FC1-CI FOR '-' DELETE      
*S**  END-IF
*S**  MOVE RIGHT JUSTIFIED WF27FEXD.WF-FE-S-FC1-CI          
*S**           TO #15-BYTE-FIELD    
*S**  EXAMINE #15-BYTE-FIELD FOR ' ' REPLACE WITH '0'       
*S**  IF #15-BYTE-FIELD = MASK(999999999999999) 
*S**    ASSIGN #15-BYTE-FIELD-N = VAL(#15-BYTE-FIELD)       
*S**    IF #15-BYTE-FIELD-N > 9999999           
*S**      ASSIGN #HOLD-SCI = 9999999
*S**    ELSE
*S**      ASSIGN #HOLD-SCI = #15-BYTE-FIELD-N   
*S**    END-IF          
*S**    IF #CNVT-NEG    
*S**      MULTIPLY #HOLD-SCI BY -1  
*S**    END-IF          
*S**    MOVE EDITED #HOLD-SCI (EM=Z,ZZZ,ZZ9-) TO #FED-SCI   
*S**  END-IF
*S**  MOVE SUBSTRING(WF27FEXD.WF-FE-S-FC1-CA,1,1) TO #CNVT-BYTE         
*S**  IF #CNVT-BYTE = '-'           
*S**    ASSIGN #CNVT-NEG = TRUE     
*S**    EXAMINE WF27FEXD.WF-FE-S-FC1-CA FOR '-' DELETE      
*S**  END-IF
*S**  MOVE RIGHT JUSTIFIED WF27FEXD.WF-FE-S-FC1-CA          
*S**           TO #15-BYTE-FIELD    
*S**  EXAMINE #15-BYTE-FIELD FOR ' ' REPLACE WITH '0'       
*S**  IF #15-BYTE-FIELD = MASK(999999999999999) 
*S**    ASSIGN #15-BYTE-FIELD-N = VAL(#15-BYTE-FIELD)       
*S**    IF #15-BYTE-FIELD-N > 9999999           
*S**      ASSIGN #HOLD-SCA = 9999999
*S**    ELSE
*S**      ASSIGN #HOLD-SCA = #15-BYTE-FIELD-N   
*S**    END-IF          
*S**    IF #CNVT-NEG    
*S**      MULTIPLY #HOLD-SCA BY -1  
*S**    END-IF          
*S**    MOVE EDITED #HOLD-SCA (EM=Z,ZZZ,ZZ9-) TO #FED-SCA   
*S**  END-IF
*S***       
*S**  ASSIGN #HOLD-SC = #HOLD-SCI + #HOLD-SCA   
*S**  MOVE EDITED #HOLD-SC(EM=Z,ZZZ,ZZZ-) TO #FED-SC        
*S**  /*    
*S**  /* Parent Contribution fields 
*S**  MOVE RIGHT JUSTIFIED WF27FEXD.WF-FE-P1-FC1-CONT       
*S**           TO #15-BYTE-FIELD    
*S**  EXAMINE #15-BYTE-FIELD FOR ' ' REPLACE WITH '0'       
*S**  IF #15-BYTE-FIELD = MASK(999999999999999) 
*S**    ASSIGN #15-BYTE-FIELD-N = VAL(#15-BYTE-FIELD)       
*S**    IF #15-BYTE-FIELD-N > 9999999           
*S**      ASSIGN #HOLD-PC = 9999999 
*S**    ELSE
*S**      ASSIGN #HOLD-PC = #15-BYTE-FIELD-N    
*S**    END-IF          
*S**    MOVE EDITED #HOLD-PC (EM=Z,ZZZ,ZZ9-) TO #FED-PC     
*S**  END-IF
*S**  MOVE SUBSTRING(WF27FEXD.WF-FE-P1-FC1-CA,1,1) TO #CNVT-BYTE        
*S**  MOVE RIGHT JUSTIFIED WF27FEXD.WF-FE-P1-FC1-CA         
*S**           TO #15-BYTE-FIELD    
*S**  EXAMINE #15-BYTE-FIELD FOR ' ' REPLACE WITH '0'       
*S**  IF #15-BYTE-FIELD = MASK(999999999999999) 
*S**    ASSIGN #15-BYTE-FIELD-N = VAL(#15-BYTE-FIELD)       
*S**    IF #15-BYTE-FIELD-N > 9999999           
*S**      ASSIGN #HOLD-PCA = 9999999
*S**    ELSE
*S**      ASSIGN #HOLD-PCA = #15-BYTE-FIELD-N   
*S**    END-IF          
*S**    MOVE EDITED #HOLD-PCA (EM=Z,ZZZ,ZZ9-) TO #FED-PCA   
*S**  END-IF
*S***       
*S**  ASSIGN #HOLD-PCI = #HOLD-PC - #HOLD-PCA   
*S**  MOVE EDITED #HOLD-PCI (EM=Z,ZZZ,ZZZ-) TO #FED-PCI     
*S***       
*S**END-SUBROUTINE /* PREPARE-FED-OVERVIEW      
*S****SAG END-EXIT      
*S**END     
*E          
