1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
IDENTIFICATION DIVISION.
PROGRAM-ID. TESTE-TREINAMENTO.
AUTHOR.
*=========================================================================*
* C P M B R A X I S - S I S T E M A S *
*=========================================================================*
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT REGISTRO-FUNCIONARIO ASSIGN TO DISK.
SELECT REGISTRO-MOVIMENTO ASSIGN TO DISK.
SELECT LIST-FUNCIONARIO ASSIGN TO SYS$OUTPUT.
SELECT LIST-RELATORIO ASSIGN TO SYS$OUTPUT.
SELECT LIST-TIPO-REGISTRO ASSIGN TO SYS$OUTPUT.
FILE SECTION.
FD REGISTRO-FUNCIONARIO
01 REG-FUNCIONARIO.
05 MATRICULA-FUNCIONARIO-E PIC X(05).
05 NOME-FUNCIONARIO-E PIC X(30).
FD REGISTRO-MOVIMENTO
01 REG-MOVIMENTO.
05 MATRICULA-FUNCIONARIO-MOVIMENTO-E PIC X(05).
05 TIPO-REGISTRO-E PIC X(01).
05 CIA-SUCURSAL-RAMO-E PIC X(04).
05 VALOR-DESPESA-E PIC 9(04)V99.
FD LISTA-FUNCIONARIO-MOVIMENTO
01 REG-IMPR.
05 FILLER PIC X(20).
05 NOME-FUNCIONARIO-S PIC X(05).
05 FILLER PIC X(20).
05 TIPO-REGISTRO-S
PIC 9(04)V99
05 FILLER PIC X(20).
05 CIA-SUCURSAL-RAMO-S PIC X(04).
05 FILLER PIC X(20).
05 VALOR-DESPESA-S PIC 9(04)V99.
FD LISTA-RELATORIO LABEL RECORDS ARE OMITTED.
01 REG-FUNCIONARIO.
05 FILLER
05 MATRICULA-FUNCIONARIO-SS PIC X(05).
05 FILLER PIC X(20).
05 NOME-FUNCIONARIO-SS PIC X(30).
05 FILLER PIC X(20).
05 TOTAL-DESPESA-CIA PIC 9(04)V99.
05 TOTAL-DESPESA-SUCURSAL PIC 9(04)V99.
05 TOTAL-DESPESA-RAMO PIC 9(04)V99.
01 HA-MAIS-REGISTROS-FUNCIONARIO PICTURE XXX VALUE 'SIM'.
01 HA-MAIS-REGISTROS-MOVIMENTO PICTURE XXX VALUE 'SIM'.
PROCEDURE DIVISION.
*--------------------------------------------------------------------*
3000-PROCESSAR SECTION.
*--------------------------------------------------------------------*
100-MODULO-PRINC.
OPEN INPUT REGISTRO-RELATORIO
OPEN INPUT REGISTRO-MOVIMENTO
OUTPUT LISTA-FUNCIONARIO-MOVIMENTO.
OUTPUT LISTA-RELATORIO.
READ REGISTRO-MOVIMENTO
AT END MOVE 'NAO' TO HA-MAIS-REGISTROS-MOVIMENTO.
PERFORM 200-ROTINA-MOVIMENTO
UNTIL HA-MAIS-REGISTROS-MOVIMENTO = 'NAO'.
READ REGISTRO-RELATORIO
AT END MOVE 'NAO' TO HA-MAIS-REGISTROS-FUNCIONARIO.
OPEN INPUT REG-IMPR
PERFORM 300-ROTINA-FUNCIONARIO
UNTIL HA-MAIS-REGISTROS-FUNCIONARIO = 'NAO'. = 'NAO'.
CLOSE REGISTRO-FUNCIONARIO
REGISTRO-MOVIMENTO
REG-IMPR
LIST-FUNCIONARIO
LIST-RELATORIO
LIST-TIPO-REGISTRO.
STOP RUN.
200-ROTINA-MOVIMENTO
MOVE SPACES TO REG-IMPR.
IF MATRICULA-FUNCIONARIO-FUNCIONARIO-E = MATRICULA-FUNCIONARIO-MOVIMENTO-E
MOVE NOME-FUNCIONARIO-E TO NOME-FUNCIONARIO-S.
MOVE DESPESA-CIA-E TO DESPESA-CIA-S.
MOVE DESPESA-SUCURSAL-E TO DESPESA-SUCURSAL-S.
MOVE DESPESA-RAMO-E TO DESPESA-RAMO-S.
MOVE CIA-SUCURSAL-RAMO-E TO CIA-SUCURSAL-RAMO-S.
MOVE VALOR-DESPESA-E TO VALOR-DESPESA-S.
END-IF
WRITE REG-IMPR
READ REG-MOVIMENTO
AT END MOVE 'NAO' TO HA-MAIS-REGISTROS-FUNCIONARIO.
READ REG-FUNCIONARIO
AT END MOVE 'NAO' TO HA-MAIS-REGISTROS-FUNCIONARIO.
300-ROTINA-MOVIMENTO
READ REG-IMPR
AT END
MOVE MATRICULA-FUNCIONARIO-MOVIMENTO-E TO MATRICULA-FUNCIONARIO-SS
MOVE NOME-FUNCIONARIO-S TO NOME-FUNCIONARIO-SS
ADD DESPESA-CIA-S DESPESA-SUCURSAL-S DESPESA-RAMO-S GIVING TOTAL-DESPESA-RELATORIO
WRITE REG-FUNCIONARIO
READ REG-IMPR
AT END.