       IDENTIFICATION DIVISION.                                         
      *-----------------------------------------------------------------
       PROGRAM-ID.      AULACOBOL.                                       
       AUTHOR.          GRUPO2.                                                                                               
      *-----------------------------------------------------------------
       ENVIRONMENT DIVISION.                                            
      *-----------------------------------------------------------------
                                                                        
      *-----------------------------------------------------------------
       CONFIGURATION SECTION.                                           
      *-----------------------------------------------------------------
       SPECIAL-NAMES.                                                   
                        DECIMAL-POINT IS COMMA.                         
                                                                        
      *-----------------------------------------------------------------
       INPUT-OUTPUT SECTION.                                            
      *-----------------------------------------------------------------
       FILE-CONTROL.                                                    
                                                                        
           SELECT REGISTRO-MOVIMENTO ASSIGN TO REGISTRO-MOVIMENTO                             
                  FILE STATUS IS WS-REG-MOVIMENTO.                         
           SELECT REGISTRO-FUNCIONARIO ASSIGN TO REGISTRO-FUNCIONARIO                             
                  FILE STATUS IS WS-REG-FUNCIONARIO.                         
           SELECT SAIFUNC ASSIGN TO SAIFUNC                             
                  FILE STATUS IS WS-FS-SAIFUNC.                         
                                                                        
      *-----------------------------------------------------------------
       DATA DIVISION.                                                   
      *-----------------------------------------------------------------
                                                                        
      *-----------------------------------------------------------------
       FILE SECTION.                                                    
      *-----------------------------------------------------------------
                                                                        
       FD  REGISTRO-MOVIMENTO                                                      
           BLOCK CONTAINS 0 RECORDS                                     
           RECORDING MODE IS F                                          
           RECORD CONTAINS 060 CHARACTERS.                              
                                                                        
       01  REG-MOVIMENTO.                                                 
           03  REGMOVI-MATRICULA         PIC 9(010).                    
           03  REGMOVI-NOME              PIC X(050).                    
                                                                        
       FD  REGISTRO-FUNCIONARIO                                                      
           BLOCK CONTAINS 0 RECORDS                                     
           RECORDING MODE IS F                                          
           RECORD CONTAINS 120 CHARACTERS.                              
                                                                        
       01  REG-FUNCIONARIO.                                                 
           03  REGFUNC-MATRICULA         PIC 9(010).                    
           03  REGFUNC-TPREGISTRO        PIC X(001).                    
           03  REGFUNC-CSR               PIC X(005).                    
           03  REGFUNC-DESP              PIC 9(010).                                       
                                                                        
       FD  SAIFUNC                                                      
           BLOCK CONTAINS 0 RECORDS                                     
           RECORDING MODE IS F                                          
           RECORD CONTAINS 170 CHARACTERS.                              
                                                                        
       01  REG-SAIFUNC.                                                 
           03  SAIFUNC-MATRICULA         PIC 9(010).                    
           03  SAIFUNC-NOME              PIC X(050).                    
           03  SAIFUNC-TPREGISTRO        PIC 9(001).                    
           03  SAIFUNC-CSR               PIC X(005).                    
           03  SAIFUNC-DESPCIA           PIC 9(010).
           03  SAIFUNC-DESPCIAT          PIC 9(010).
           03  SAIFUNC-DESPSUC           PIC 9(010).
           03  SAIFUNC-DESPSUCT          PIC 9(010).
           03  SAIFUNC-DESPRAM           PIC 9(010). 
           03  SAIFUNC-DESPRAMT          PIC 9(010). 
           
           
      *-----------------------------------------------------------------
       WORKING-STORAGE SECTION.                                         
      *-----------------------------------------------------------------
                                                                        
       01  WS-AREA-AUXILIAR.                                            
           05  WS-COD-PROGRAMA           PIC X(008)  VALUE 'AULACOBO'.  
           05  WS-COD-VER                PIC X(008)  VALUE 'BETA1'.  
           05  WS-REG-MOVIMENTO          PIC X(002)  VALUE SPACES.      
           05  WS-REG-FUNCIONARIO        PIC X(002)  VALUE SPACES.      
           05  WS-FS-SAIFUNC             PIC X(002)  VALUE SPACES.      
           05  WS-LIDOS-MOV              PIC 9(010)  VALUE ZEROES.      
           05  WS-LIDOS-FUN2             PIC 9(010)  VALUE ZEROES.      
           05  WS-GRAVA-FUNC             PIC 9(010)  VALUE ZEROES.      
           05  WS-MENSAGEM               PIC X(070)  VALUE SPACES.      
           05  WS-PROCESSO               PIC X(070)  VALUE SPACES.           
           
           
      *-----------------------------------------------------------------
       PROCEDURE DIVISION.                                              
      *-----------------------------------------------------------------
                                                                        
           PERFORM P0000-INICIAL         THRU P0000-FIM.                
           PERFORM P1000-PRINCIPAL       THRU P1000-FIM.                
           PERFORM P9000-FINAL           THRU P9000-FIM.                
           GOBACK.  
           
      *-----------------------------------------------------------------
       P0000-INICIAL.                                                   
      *-----------------------------------------------------------------
                                                                        
           MOVE 'P0000-INICIAL' TO        WS-PROCESSO.                  
                                                                        
           OPEN INPUT REGISTRO-MOVIMENTO.                                          
           IF REG-MOVIMENTO NOT EQUAL '00'                              
              MOVE SPACES TO WS-MENSAGEM                                
              STRING 'ERRO ABERTURA ARQUIVO REG-MOVIMENTO FILE STATUS: '      
                     WS-REG-MOVIMENTO                                      
                     DELIMITED BY SIZE  INTO WS-MENSAGEM                
              END-STRING                                                
              PERFORM P8000-ERRO THRU P8000-FIM                         
           END-IF.                                                      
                                                                        
           OPEN INPUT REGISTRO-FUNCIONARIO.                                          
           IF WS-REG-FUNCIONARIO NOT EQUAL '00'                              
              STRING 'ERRO ABERTURA ARQUIVO REGFUNC FILE STATUS: '      
                     WS-REG-FUNCIONARIO                                      
                     DELIMITED BY SIZE  INTO WS-MENSAGEM                
              END-STRING                                                
              PERFORM P8000-ERRO THRU P8000-FIM                         
           END-IF.                                                      
                                                                        
           OPEN OUTPUT SAIFUNC.                                         
           IF WS-FS-SAIFUNC NOT EQUAL '00'                              
              STRING 'ERRO ABERTURA ARQUIVO SAIFUNC FILE STATUS: '      
                     WS-FS-SAIFUNC                                      
                     DELIMITED BY SIZE  INTO WS-MENSAGEM                
              END-STRING                                                
              PERFORM P8000-ERRO THRU P8000-FIM                         
           END-IF.                                                      
                                                                        
        P0000-FIM.                                                      
            EXIT.          
                  
                  
      *-----------------------------------------------------------------
       P1000-PRINCIPAL.                                                 
      *-----------------------------------------------------------------
                                                                        
           MOVE 'P1000-PRINCIPAL      ' TO  WS-PROCESSO.                
                                                                        
           PERFORM P2000-LER-REGMOVI THRU P2000-FIM                     
           PERFORM P3000-LER-REGFUNC THRU P3000-FIM                     
           PERFORM UNTIL WS-REG-MOVIMENTO EQUAL '10'                       
                     AND WS-REG-FUNCIONARIO EQUAL '10'                       
              EVALUATE TRUE                                             
                 WHEN REGMOVI-MATRICULA EQUAL        REGFUNC-MATRICULA  
                      PERFORM P4000-GRAVA-SAIFUNC THRU P4000-FIM        
                      PERFORM P2000-LER-REGMOVI   THRU P2000-FIM        
                      PERFORM P3000-LER-REGFUNC   THRU P3000-FIM        
                 WHEN REGMOVI-MATRICULA LESS THAN    REGFUNC-MATRICULA  
                      PERFORM P2000-LER-REGMOVI   THRU P2000-FIM        
                 WHEN REGMOVI-MATRICULA GREATER THAN REGFUNC-MATRICULA  
                      PERFORM P3000-LER-REGFUNC   THRU P3000-FIM        
              END-EVALUATE                                              
           END-PERFORM.                                                 
                                                                        
       P1000-FIM.                                                       
           EXIT.  
           
      *-----------------------------------------------------------------
       P2000-LER-REGMOVI.                                               
      *-----------------------------------------------------------------
                                                                        
           MOVE 'P2000-LER-REGMOVI' TO WS-PROCESSO                      
           READ REGISTRO-MOVIMENTO                                                 
                AT END                                                  
                MOVE '10'       TO WS-REG-MOVIMENTO                        
                MOVE 9999999999 TO REGMOVI-MATRICULA                    
                NOT AT END                                              
                IF WS-REG-MOVIMENTO NOT EQUAL '00' AND '10'                
                   MOVE SPACES TO WS-MENSAGEM                           
                   STRING 'ERRO LEITURA ARQUIVO REGISTRO-MOVIMENTO FILE STATUS: '  
                           WS-REG-MOVIMENTO                                
                           DELIMITED BY SIZE  INTO WS-MENSAGEM          
                   END-STRING                                           
                   PERFORM P8000-ERRO THRU P8000-FIM                    
                END-IF                                                  
                IF WS-REG-MOVIMENTO EQUAL '00'
                
                    IF REGFUNC-TPREGISTRO = '1'
                    	COMPUTE SAIFUNC-DESPCIAT = SAIFUNC-DESPCIA + SAIFUNC-DESPCIAT
                    END-IF
                    IF REGFUNC-TPREGISTRO = '2'
                    	COMPUTE SAIFUNC-DESPSUCT = SAIFUNC-DESPSUC + SAIFUNC-DESPSUCT
		  END-IF
		  IF REGFUNC-TPREGISTRO = '3'
		  	COMPUTE SAIFUNC-DESPRAMT = SAIFUNC-DESPRAM + SAIFUNC-DESPRAMT
		  END-IF
                                             
                   ADD 1 TO WS-LIDOS-MOV                               
                END-IF                                                  
           END-READ.                                                    
                                                                        
       P2000-FIM.                                                       
           EXIT.   
           
         
      *-----------------------------------------------------------------
       P8000-ERRO.                                                      
      *-----------------------------------------------------------------
                                                                        
           DISPLAY '---------------------------------------------'      
           DISPLAY 'PROGRAMA AULACOCOL CANCELADO'                        
           DISPLAY 'PARAGRAFO   - ' WS-PROCESSO                         
           DISPLAY 'VERSAO      - ' WS-COD-VER                          
           DISPLAY 'MENSAGEM    - ' WS-MENSAGEM                         
           DISPLAY '---------------------------------------------'      
           MOVE 99 TO RETURN-CODE                                       
           GOBACK.                                                      
                                                                        
       P8000-FIM.                                                       
           EXIT.  
                      
      *-----------------------------------------------------------------
       P3000-LER-REGFUNC.                                               
      *-----------------------------------------------------------------
                                                                        
           MOVE 'P3000-LER-REGFUNC' TO WS-PROCESSO                      
           READ REGISTRO-FUNCIONARIO                                                 
                AT END                                                  
                MOVE '10'       TO WS-REG-FUNCIONARIO                        
                MOVE 9999999999 TO REGFUNC-MATRICULA                    
                NOT AT END                                              
                IF WS-REG-FUNCIONARIO NOT EQUAL '00' AND '10'                
                   MOVE SPACES TO WS-MENSAGEM                           
                   STRING 'ERRO LEITURA ARQUIVO REGISTRO-FUNCIONARIO FILE STATUS: '  
                           WS-REG-FUNCIONARIO                                
                           DELIMITED BY SIZE  INTO WS-MENSAGEM          
                   END-STRING                                           
                   PERFORM P8000-ERRO THRU P8000-FIM                    
                END-IF                                                  
                IF WS-REG-FUNCIONARIO EQUAL '00'                             
                   ADD 1 TO WS-LIDOS-FUN2                               
                END-IF                                                  
           END-READ.                                                    
                                                                        
       P3000-FIM.                                                       
           EXIT.  
           
      *-----------------------------------------------------------------
       P4000-GRAVA-SAIFUNC.                                             
      *-----------------------------------------------------------------
                                                                        
           MOVE 'P4000-GRAVA-SAIFUNC' TO WS-PROCESSO                    
           INITIALIZE REG-SAIFUNC                                       
                      REPLACING ALPHANUMERIC BY SPACES                  
                                     NUMERIC BY ZEROES                  
                                                                        
           MOVE REGFUNC-MATRICULA  TO SAIFUNC-MATRICULA                  
           MOVE REGFUNC-TPREGISTRO TO SAIFUNC-TPREGISTRO                   
           MOVE REGFUNC-CSR        TO SAIFUNC-CSR                                                            
           MOVE REGMOVI-NOME       TO SAIFUNC-NOME                       
           WRITE REG-SAIFUNC         END-WRITE                          
                                                                        
           IF WS-FS-SAIFUNC NOT EQUAL '00'                              
              MOVE SPACES TO WS-MENSAGEM                                
              STRING 'ERRO GRAVACAO ARQUIVO SAIFUNC FILE STATUS: '      
                      WS-FS-SAIFUNC                                     
                      DELIMITED BY SIZE  INTO WS-MENSAGEM               
              END-STRING                                                
              PERFORM P8000-ERRO THRU P8000-FIM                         
           END-IF                                                       
                                                                        
           ADD 1 TO WS-GRAVA-FUNC.                                      
                                                                        
       P4000-FIM.                                                       
           EXIT.  
           
      *-----------------------------------------------------------------
       P9000-FINAL.                                                     
      *-----------------------------------------------------------------
                                                                        
           DISPLAY '---------------------------------------------'      
           DISPLAY 'PROGRAMA AULACOBOL - TERMINO OK'                     
           DISPLAY '                                             '      
           DISPLAY 'TOTAL DE LIDOS MOVIMENTOS  -  ' WS-LIDOS-MOV           
           DISPLAY 'TOTAL DE LIDOS FUNCIONARIOS - ' WS-LIDOS-FUN2           
           DISPLAY 'TOTAL GRAVADOS ........ -   ' WS-GRAVA-FUNC.          
                                                                        
       P9000-FIM.                                                       
           EXIT.                                    