ADMINISTRATOR PROGRAM                                                           

 
       IDENTIFICATION DIVISION.                                        
       PROGRAM-ID. PROGA.                                              
       DATA DIVISION.                                                  
       WORKING-STORAGE SECTION.                                        
       01 WS-ADUID PIC S9(9) COMP.                                     
       01 WS-ADPWD PIC X(20).                                          
       01 WS-ADPWD1 PIC X(20).                                         
       01 WS-INVALID PIC X(13) VALUE 'INVALID ENTRY'.                  
       01 WS-ACT1F PIC X(10).                                          
       01 WS-ACT2F PIC X(10).                                          
       01 WS-MBL1F PIC S9(9) COMP.                                     
       01 WS-MBL2F PIC S9(9) COMP.                                     
       01 WS-INT1F PIC S9(9) COMP.                                     
       01 WS-INT2F PIC S9(9) COMP.                                     
       01 WS-STATUS PIC S9(9) COMP VALUE 0.                            
       01 WS-ACNSTF PIC S9(9) COMP.                                    
       01 WS-ACNSTUF PIC S9(9) COMP.                                   
       01 WS-STATUS1 PIC S9(9) COMP.                                   
       01 WS-SAVINGS PIC X(10) VALUE 'SAVINGS   '.                     
       01 WS-CURRENT PIC X(10) VALUE 'CURRENT   '.                     
       01 WS-OPER PIC X(19) VALUE 'OPERATION PERFORMED'.               
           COPY ADACINF.                                               
           COPY ADMIN.                                                 
           COPY ADMNUSR.                                            
           COPY FREEZE.                                             
      *     COPY EIBAID.                                            
           COPY DFHAID.                                             
           EXEC SQL                                                 
            INCLUDE SQLCA                                           
           END-EXEC.                                                
       PROCEDURE DIVISION.                                          
       ADMINENTRY.                                                  
           EXEC CICS SEND CONTROL ERASE END-EXEC.                   
           MOVE LOW-VALUES TO ADMENO.                               
           MOVE LOW-VALUES TO ADMENUO.                              
           MOVE LOW-VALUES TO ADMINO.                               
           MOVE LOW-VALUES TO USERO.                                
           MOVE LOW-VALUES TO FREEZMO.                              
           EXEC CICS SEND MAP('ADMIN') MAPSET('ADMNUSR')            
           END-EXEC.                                                
           EXEC CICS RECEIVE MAP('ADMIN') MAPSET('ADMNUSR')         
           END-EXEC.                                                
           MOVE ADUIDI  TO WS-ADUID.                                
           MOVE ADPWDI TO WS-ADPWD.                                 
           EXEC SQL                                                 
            SELECT PWORD INTO :WS-ADPWD1 FROM TABA                  
             WHERE USERID = :WS-ADUID                               
           END-EXEC.                                                
           IF WS-ADPWD = WS-ADPWD1 PERFORM ADMINPARA                
           ELSE PERFORM ADMINVALID                                  
           END-IF.                                                  
           EXEC CICS RETURN END-EXEC.                               
       ADMINPARA.                                                   
           EXEC CICS SEND CONTROL ERASE END-EXEC.                   
           EXEC CICS SEND MAP('ADMENU') MAPSET('ADMIN')             
           END-EXEC.                                                
           EXEC CICS RECEIVE MAP('ADMENU') MAPSET('ADMIN')          
           END-EXEC.                                                
           IF ADCHCEI = 1 PERFORM ADACINFO                          
           ELSE IF ADCHCEI = 2 PERFORM FRZACC                       
           ELSE IF ADCHCEI = 3 PERFORM LOGOUTPARA                   
           ELSE PERFORM ADMINENTRY                                  
           END-IF.                                                  
       ADACINFO.                                                    
           EXEC CICS SEND CONTROL ERASE END-EXEC.                   
           EXEC SQL                                                 
            SELECT MIN_BAL, INTEREST INTO :WS-MBL1F,                
            :WS-INT1F FROM ACCTAB WHERE ACCTYPE = :WS-SAVINGS       
           END-EXEC.                                                
           MOVE WS-SAVINGS TO AC1FO.                                
           MOVE WS-MBL1F TO MB1FO.                                  
           MOVE WS-INT1F TO IN1FO.                                  
           EXEC SQL                                                 
            SELECT MIN_BAL, INTEREST INTO :WS-MBL2F,                
            :WS-INT2F FROM ACCTAB WHERE ACCTYPE = :WS-CURRENT       
          END-EXEC.                                                   
          MOVE WS-CURRENT TO AC2FO.                                   
          MOVE WS-MBL2F TO MB2FO.                                     
          MOVE WS-INT2F TO IN2FO.                                     
          EXEC CICS SEND CONTROL ERASE END-EXEC.                      
          EXEC CICS SEND MAP('ADMEN') MAPSET('ADACINF')               
          END-EXEC.                                                   
          EXEC CICS RECEIVE MAP('ADMEN') MAPSET('ADACINF')            
          END-EXEC.                                                   
          MOVE AC1FI TO WS-ACT1F.                                     
          MOVE AC2FI TO WS-ACT2F.                                     
          MOVE MB1FI TO WS-MBL1F.                                     
          MOVE MB2FI TO WS-MBL2F.                                     
          MOVE IN1FI TO WS-INT1F.                                     
          MOVE IN2FI TO WS-INT2F.                                     
          EXEC SQL                                                    
           UPDATE ACCTAB SET MIN_BAL = :WS-MBL1F, INTEREST = :WS-INT1F
            WHERE ACCTYPE = :WS-SAVINGS                               
          END-EXEC.                                                   
          EXEC CICS SYNCPOINT END-EXEC.                               
          EXEC SQL                                                    
           UPDATE ACCTAB SET MIN_BAL = :WS-MBL2F, INTEREST = :WS-INT2F
            WHERE ACCTYPE = :WS-CURRENT                               
          END-EXEC.                                                   
          EXEC CICS SYNCPOINT END-EXEC.                               
     *    PERFORM ACOUNTSAVE.                                   &~bsp sBbznbsp5;Z&o w7C-26ncrpu3B-36nbsp; 
          IF EIBAID = DFHPF3 PERFORM ADMINPARA.                    
          PERFORM ADMINPARA.                                       
      FRZACC.                                                      
          EXEC CICS SEND CONTROL ERASE END-EXEC.                   
          EXEC CICS SEND MAP('FREEZM') MAPSET('FREEZE')            
          END-EXEC.                                                
          EXEC CICS RECEIVE MAP('FREEZM') MAPSET('FREEZE')         
          END-EXEC.                                                
          IF ACNSTFL > 0                                           
          MOVE ACNSTFI TO WS-ACNSTF                                
          MOVE 1 TO WS-STATUS                                      
          EXEC SQL                                                 
           UPDATE MASTAB SET STATUS = :WS-STATUS                   
             WHERE ACCNO = :WS-ACNSTF                              
          END-EXEC.                                                
          EXEC CICS SYNCPOINT END-EXEC.                            
          IF  ACNSTUFL > 0                                         
          MOVE ACNSTUFI TO WS-ACNSTUF                              
          MOVE 0 TO WS-STATUS                                      
          EXEC SQL                                                 
           UPDATE MASTAB SET STATUS = :WS-STATUS                   
             WHERE ACCNO = :WS-ACNSTUF                             
          END-EXEC.                                                
          EXEC CICS SYNCPOINT END-EXEC.                            
          EXEC CICS SEND TEXT                                      
           FROM(WS-OPER)                                           
           LENGTH(LENGTH OF WS-OPER)                                  
           FREEKB                                                     
          END-EXEC.                                                   
          EXEC CICS SEND CONTROL ERASE END-EXEC.                      
          PERFORM ADMINPARA.                                          
     *ACOUNTSAVE.                                                     
     *    MOVE AC1FI TO WS-ACT1F.                                     
     *    MOVE AC2FI TO WS-ACT2F.                                     
     *    MOVE MB1FI TO WS-MBL1F.                                     
     *    MOVE MB2FI TO WS-MBL2F.                                     
     *    MOVE IN1FI TO WS-INT1F.                                     
     *    MOVE IN2FI TO WS-INT2F.                                     
     *    EXEC SQL                                                    
     *     UPDATE ACCTAB SET MIN_BAL = :WS-MBL1F, INTEREST = :WS-INT1F
     *      WHERE ACCTYPE = :WS-ACT1F                                 
     *    END-EXEC.                                                   
     *    EXEC CICS SYNCPOINT END-EXEC.                               
     *    EXEC SQL                                                    
     *     UPDATE ACCTAB SET MIN_BAL = :WS-MBL2F, INTEREST = :WS-INT2F
     *      WHERE ACCTYPE = :WS-ACT2F                                 
     *    END-EXEC.                                                   
     *    EXEC CICS SYNCPOINT END-EXEC.                               
      ADMINVALID.                                                     
          EXEC CICS SEND TEXT                                         
           FROM(WS-INVALID)                                           
           FREEKB                                                   
          END-EXEC.                                                 
          PERFORM ADMINENTRY.                                       
      INVALIDPARA.                                                  
          EXEC CICS SEND TEXT                                       
           FROM(WS-INVALID)                                         
           LENGTH(LENGTH OF WS-INVALID)                             
           FREEKB                                                   
          END-EXEC.                                                 
      LOGOUTPARA.                                                   
          EXEC CICS LINK PROGRAM ('MAINP')                          
          END-EXEC.    

0 comments:

Post a Comment