You are on page 1of 13

*----------------------------------------------------------------*

IDENTIFICATION DIVISION.
*----------------------------------------------------------------*
PROGRAM-ID.
C0PBBL03.
AUTHOR.
Aullus Silva.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
ENVIRONMENT DIVISION.
*----------------------------------------------------------------*
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
*----------------------------------------------------------------*
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*---------------ARQUIVO(S) ENTRADA-------------------------------*
SELECT C0TRANSA ASSIGN TO
CONTAS
FILE STATUS IS WS-FL-S-CONTAS.
SELECT C0CONTA ASSIGN TO
MVTOTXN
FILE STATUS IS WS-FL-S-MVTOTXN

SELECT C0CONTA ASSIGN TO


TRANS
FILE STATUS IS WS-FL-S-TRANS.
SELECT C0CONTA ASSIGN TO
CARTAO
FILE STATUS IS WS-FL-S-CARTAO.
*-------------------ARQUIVOS SAIDA-------------------------------*
SELECT C0RELAT

ASSIGN TO
RELATO
FILE STATUS IS WS-FL-S-RELATO.

SELECT C0CONTA ASSIGN TO


CTAATU
FILE STATUS IS WS-FL-S-CTAATU.
*----------------------------------------------------------------*
DATA DIVISION.
*----------------------------------------------------------------*
FILE SECTION.
**==> ARQUIVO ENTRADA
FD CONTA
LABEL
BLOC
RECORD
RECORDING

RECORD
CONTAINS
CONTAINS
MODE IS

ARE
0
42
F.

01 CONTA-REC.
05 CONTA
05 NOME
05 LIMITE
05 SALDO
05 SALDO DISP.
FD MVTOTXN
LABEL
BLOC

RECORD
CONTAINS

STANDARD
RECORDS
CHARACTERS

PIC
PIC
PIC
PIC
PIC
ARE
0

9(005).
X(010).
9(007)'V99'.
9(007)'V99'.
9(007)'V99'.

STANDARD
RECORDS

RECORD
CONTAINS
RECORDING MODE IS

30
F.

01 MVTOTXN-REC.
05 MVTO-TXN-CONTA
05 MVTO-TXN-CARTAO
05 MVTO-TXN-COD.
05 MVTO-TXN-VALOR
05 MVTO-TXN-DT.
FD TRANS
LABEL
BLOC
RECORD
RECORDING

RECORD
CONTAINS
CONTAINS
MODE IS

PIC
PIC
PIC
PIC
PIC
ARE
0
28
F.

01 TRANS-REC.
05 TRANS-TXN-CONTA
05 TRANS-TXN-CARTAO
FD CARTAO
LABEL
BLOC
RECORD
RECORDING

RECORD
CONTAINS
CONTAINS
MODE IS

CHARACTERS

9(005).
X(005).
9(003).
9(007)'V99'.
9(008).

STANDARD
RECORDS
CHARACTERS

PIC 9(003).
PIC X(025).
ARE
0
26
F.

01 CARTAO-REC.
05 CART-CONTA
05 CART-DT-EMISSAO
05 CART-DT-VALIDADE
05 CART-CARTAO

STANDARD
RECORDS
CHARACTERS

PIC
PIC
PIC
PIC

9(005).
X(008).
9(008).
9(005).

*----------------------------------------------------------------*
**==> ARQUIVOS SAIDA
*----------------------------------------------------------------*
FD RELATO
LABEL
RECORD
ARE
STANDARD
BLOC
CONTAINS
0
RECORDS
RECORD
CONTAINS
133
CHARACTERS
RECORDING MODE IS
F.
01 RELATO-REC.
05 C0RELAT-RELATORIO
FD CONTA
LABEL
BLOC
RECORD
RECORDING

RECORD
CONTAINS
CONTAINS
MODE IS

01 CONTA-REC.
05 C0CONTA-RELATORIO

PIC X(133).
ARE
0
42
F.

STANDARD
RECORDS
CHARACTERS

PIC X(42).

*----------------------------------------------------------------*
WOR ING-STORAGE SECTION.
*----------------------------------------------------------------*
*-------------AREA DE TRAMENTO DE CHAVES-------------------------*
77 WS-CH-CONTA
PIC 9(002) VALUE ZEROS.
77 WS-CH-MVTOTXN
PIC X(002) VALUE ZEROS.
77 WS-CH-TRANS
PIC 9(002) VALUE ZEROS.

77 WS-CH-CARTAO
77 WS-CH-RELATO
77 WS-CH-CTAATU

PIC 9(002) VALUE ZEROS.


PIC 9(002) VALUE ZEROS.
PIC 9(002) VALUE ZEROS.

*-------------FILE STATUS----------------------------------------*
77 WS-FL-S-CONTA
PIC X(002) VALUE ZEROS.
77 WS-FL-S-MVTOTXN
PIC X(002) VALUE ZEROS.
77 WS-FL-S-TRANS
PIC X(002) VALUE ZEROS.
77 WS-FL-S-CARTAO
PIC X(002) VALUE ZEROS.
77 WS-FL-S-RELATO
PIC X(002) VALUE ZEROS.
77 WS-FL-S-CTAATU
PIC X(002) VALUE ZEROS.
*-------------DATA-----------------------------------------------*
01 WS-DATA.
05 WS-AA
PIC 9(002) VALUE ZEROS.
05 WS-MM
PIC 9(002) VALUE ZEROS.
05 WS-DD
PIC 9(002) VALUE ZEROS.
01 WS-DATA-SISTEMA.
05 WS-DATA-SIS-ANO.
10 WS-DT-SIS-SEC
10 WS-DT-SIS-AA
05 WS-DT-SIS-MM
05 WS-DT-SIS-DD

PIC
PIC
PIC
PIC

9(02)
9(02)
9(02)
9(02)

VALUE
VALUE
VALUE
VALUE

20.
ZEROS.
ZEROS.
ZEROS.

*-------------CONTADORES-----------------------------------------*
01 WS-CONTADORES.
05 WCNT-LIDOS-TRANS
PIC 9(009) VALUE ZEROS.
05 WCNT-GRAVADOS-RELATO
PIC 9(009) VALUE ZEROS.
05 WCNT-LINHA
PIC 9(002) VALUE 99.
05 WCNT-PAGINA
PIC 9(004) VALUE ZEROS.
05 WCNT-CARTO
PIC 9(009) VALUE ZEROS.
05 WCNT-MVTOTXN
PIC 9(009) VALUE ZEROS.
05 WCNT-CONTAS
PIC 9(009) VALUE ZEROS.
05 WCNT-TOTAL GERAL
PIC 9(009) VALUE ZEROS.
*-------------ACUMULADORES---------------------------------------*
01 WS-ACUMULADORES.
05 WACM-VALOR-CONTAS
PIC 9(011)V99 VALUE ZEROS.
05 WACM-VALOR-TOTAL GERAL
PIC 9(011)V99 VALUE ZEROS.
05 WACM-TOTAL DA CONTA
PIC 9(011)V99 VALUE ZEROS.
01 WTAB-TABELAS.
03 WTAB-CONTAS.
10 FILLER
'001-CONTA
10 FILLER
'002-CARTO
10 FILLER
'003-COD
10 FILLER
'004-VALOR
10 FILLER
'005-DT

PIC X(020) VALUE


'.
PIC X(020) VALUE
'.
PIC X(020) VALUE
'.
PIC X(020) VALUE
'.
PIC X(020) VALUE
'.

03 WTAB-CONTAS-R
REDEFINES WTAB-CONTAS OCCURS 05 TIMES.
10 WTAB-COD-ORG
PIC 9(003).
10 WTAB-NOME-ORG
PIC X(017).
*---------------------CABECALHO----------------------------------*

01 WCAB01.
05 FILLER
PIC X(01)
05 FILLER
PIC X(05)
05 FILLER
PIC X(28)
05 FILLER
PIC X(33)
'RELATORIO DE TRANSACOES POR CONTA'.
05 FILLER
PIC X(06)
05 FILLER
PIC X(23)
'PERIODO: XXXXXXXXX.9999'.
05 FILLER
PIC X(06)
05 WCAB01-DT-DIA
PIC 9(02)
05 FILLER
PIC X(01)
05 WCAB01-DT-MES
PIC 9(02)
05 FILLER
PIC X(01)
05 WCAB01-DT-ANO
PIC 9(04)
05 FILLER
PIC X(07)
05 FILLER
PIC X(05)
05 WCAB01-PAGINA
PIC ZZ99.
05 FILLER
PIC X(03)

VALUE '1'.
VALUE 'RELAT01'.
VALUE SPACES.
VALUE
VALUE SPACES.
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

SPACES.
ZEROS.
'/'.
ZEROS.
'/'.
ZEROS.
SPACES.
'PAG. '.

VALUE SPACES.

01 WCAB02.
05 FILLER
05 FILLER

PIC X(01) VALUE '0'.


PIC X(132) VALUE ALL '-'.

01 WCAB03.
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER
05 FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

01 WCAB04.
05 FILLER
05 FILLER

PIC X(01) VALUE '0'.


PIC X(132) VALUE ALL '-'.

X(06)
X(05)
X(08)
X(04)
X(12)
X(06)
X(11)
X(08)
X(15)
X(07)
X(06)
X(10)
X(07)
X(05)
X(09)
X(14)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

SPACES.
'CONTA'.
SPACES.
'NOME'.
SPACES.
'CARTAO'.
SPACES.
'VALIDADE'.
SPACES.
'DESCR. '.
'TRANS.'.
SPACES.
'DT.TRANS'.
SPACES.
'VLR.TRANS'.
SPACES.

*----------------------------------------------------------------*
*
DETALHE DO RELATORIO
*
*----------------------------------------------------------------*
01 WDET.
05 FILLER
PIC X(01) VALUE '0'.
05 WDET-NRO-CONTA.
10 WDET-NRO-CONTA
PIC 9(05) VALUE ZEROS.
05 FILLER
PIC X(05) VALUE SPACES.
05 WDET-NOME
PIC X(10) VALUE SPACES.
05 FILLER
PIC X(09) VALUE SPACES.
05 WDET-CARTAO
PIC 9(05) VALUE SPACES.
05 FILLER
PIC X(12) VALUE SPACES.
05 WDET-VALIDADE POS1
PIC 9(02) VALUE '99'.
05 FILLER
PIC X(01) VALUE '.'.

05
05
05
05
05
05
05
05
05
05
05
05
05
05

WDET-VALIDADE POS2
FILLER
WDET-VALIDADE POS3
FILLER
WDET-DESCR.TRANS
FILLER
WDET-DT.TRANS POS1
FILLER
WDET-DT.TRANS POS2
FILLER
WDET-DT.TRANS POS3
FILLER
WDET-VALOR-TRANSACAO
FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

9(02) VALUE '99'.


X(01) VALUE '.'.
9(04) VALUE '9999'.
X(06) VALUE SPACES
X(25) VALUE SPACES.
X(03) VALUE SPACES
9(02) VALUE '99'.
X(01) VALUE '.'.
9(02) VALUE '99'.
X(01) VALUE '.'.
9(04) VALUE '9999'.
X(03) VALUE SPACES
Z.ZZZ.ZZZ,99.
X(011) VALUE SPACES.

*****************************************************************
*
TOTAL DO RELATORIO
*
*****************************************************************
01 WTOT1.
05 FILLER
PIC X(01) VALUE '0'.
05 FILLER
PIC X(06) VALUE SPACES
05 FILLER
PIC X(15) VALUE
'TOTAL DA CONTA:'.
05 WTOT-NRO-CONTA.
10 WDET-NRO-CONTA
PIC 9(05) VALUE ZEROS.
05 FILLER
PIC X(05) VALUE SPACES.
05 WTOT-NOME
PIC X(10) VALUE SPACES.
05 FILLER
PIC X(09) VALUE SPACES.
05 WTOT-CARTAO
PIC 9(05) VALUE SPACES.
05 FILLER
PIC X(12) VALUE SPACES.
05 WTOT-VALIDADE POS1
PIC 9(02) VALUE '99'.
05 FILLER
PIC X(01) VALUE '.'.
05 WTOT-VALIDADE POS2
PIC 9(02) VALUE '99'.
05 FILLER
PIC X(01) VALUE '.'.
05 WTOT-VALIDADE POS3
PIC 9(04) VALUE '9999'.
05 FILLER
PIC X(06) VALUE SPACES
05 WTOT-DESCR.TRANS
PIC X(25) VALUE SPACES.
05 FILLER
PIC X(03) VALUE SPACES
05 WTOT-DT.TRANS POS1
PIC 9(02) VALUE '99'.
05 FILLER
PIC X(01) VALUE '.'.
05 WTOT-DT.TRANS POS2
PIC 9(02) VALUE '99'.
05 FILLER
PIC X(01) VALUE '.'.
05 WTOT-DT.TRANS POS3
PIC 9(04) VALUE '9999'.
05 FILLER
PIC X(03) VALUE SPACES
05 WTOT-VALOR-TRANSACAO
PIC Z.ZZZ.ZZZ,99.
05 FILLER
PIC X(011) VALUE SPACES.
01 WTOT2.
05 FILLER
05 FILLER
01 WTOT3.
05 FILLER
05 FILLER
05 FILLER
'TOTAL DA CONTA :'.
05 FILLER
05 WTOT-TOTAL DA CONTA
05 FILLER

PIC X(01) VALUE '0'.


PIC X(132) VALUE ALL '-'.
PIC X(01) VALUE '0'.
PIC X(06) VALUE SPACES
PIC X(15) VALUE
PIC X(88) VALUE SPACES
PIC Z.ZZZ.ZZZ,99.
PIC X(011) VALUE SPACES.

01 WTOT4.
05 FILLER
05 FILLER
05 FILLER
'TOTAL GERAL
:'.
05 FILLER
05 WTOT-TOTAL DA CONTA
05 FILLER

PIC X(01) VALUE '0'.


PIC X(06) VALUE SPACES
PIC X(15) VALUE
PIC X(88) VALUE SPACES
PIC Z.ZZZ.ZZZ,99.
PIC X(011) VALUE SPACES.

*---------------------------------------------------------------PROCEDURE DIVISION.
*----------------------------------------------------------------*
0000-ROT-PRINCIPAL
SECTION.
*----------------------------------------------------------------*
PERFORM 1000-INICIALIZAR

THRU

1999-EXIT.

PERFORM 2000-PROCESSAR
UNTIL WS-FIM-CONTA

THRU
EQUAL

2099-EXIT
'S'.

PERFORM 2199-PROCESSAR
UNTIL WS-FIM-MVTOTXN

THRU
EQUAL

2299-EXIT
'S'.

PERFORM 2399-PROCESSAR
UNTIL WS-FIM-TRANS

THRU
EQUAL

2499-EXIT
'S'.

PERFORM 2599-PROCESSAR
UNTIL WS-FIM-CARTAO

THRU
EQUAL

2699-EXIT
'S'.

PERFORM 3000-FINALIZAR

THRU

3999-EXIT.

STOP RUN.
0999-EXIT. EXIT.
*----------------------------------------------------------------*
1000-INICIALIZAR
SECTION.
*----------------------------------------------------------------*
OPEN INPUT

CONTA
C0PBBL03.
OPEN OUTPUT RELATO.
IF WS-FL-S-CONTA
NOT EQUAL '00'
DISPLAY '*===================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO *'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO C0CONTAS*'
DISPLAY ' FILE STATUS = ' WS-FL-S-CONTA
DISPLAY '*===================================*'
STOP RUN
END-IF
IF WS-FL-S- MVTOTXN
NOT EQUAL '00'
DISPLAY '*===================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO *'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO C0CONTA *'
DISPLAY ' FILE STATUS = ' WS-FL-S-MVTOTXN
DISPLAY '*===================================*'
STOP RUN
END-IF

IF WS-FL-S-TRANS
NOT EQUAL '00'
DISPLAY '*====================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO SAINOVAS *'
DISPLAY ' FILE STATUS = ' WS-FL-S-TRANS
DISPLAY '*====================================*'
STOP RUN
END-IF
IF WS-FL-S-CARTAO
NOT EQUAL '00'
DISPLAY '*====================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO SAINOVAS *'
DISPLAY ' FILE STATUS = ' WS-FL-S-CARTAO
DISPLAY '*====================================*'
STOP RUN
END-IF
IF WS-FL-S-RELATO
NOT EQUAL '00'
DISPLAY '*====================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO SAINOVAS *'
DISPLAY ' FILE STATUS = ' WS-FL-S-RELATO
DISPLAY '*====================================*'
STOP RUN
END-IF
IF WS-FL-S-CTAATU
NOT EQUAL '00'
DISPLAY '*====================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA ABERTURA DO ARQUIVO SAINOVAS *'
DISPLAY ' FILE STATUS = ' WS-FL-S-CTAATU
DISPLAY '*====================================*'
STOP RUN
END-IF
PERFORM
PERFORM
PERFORM
PERFORM

1500-LER-ARQ-CONTA
2500-LER-ARQ-MVTOTXN
3500-LER-ARQ-TRANS
4500-LER-ARQ-CARTAO

THRU
THRU
THRU
THRU

1599-EXIT
2599-EXIT
3599-EXIT
4599-EXIT

1999-EXIT. EXIT.
*----------------------------------------------------------------*
1500-LER-ARQ-CONTA
SECTION.
*----------------------------------------------------------------*
READ CONTA.
IF

WS-FL-S-CONTA
MOVE
'S'
GO
TO
END-IF

EQUAL
TO

10
XXXXXXXX
1599-EXIT

IF WS-FL-S-CONTA
NOT EQUAL ZEROS
DISPLAY '*======================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA LEITURA DO ARQUIVO CONTA
*'
DISPLAY ' FILE STATUS = ' WS-FL-S-CONTA
DISPLAY '*======================================*'
STOP RUN

END-IF
MOVE

CT-CONTA

TO WS-CH-CONTA.

1599-EXIT.
EXIT.
*----------------------------------------------------------------*
2500-LER-ARQ-MVTOTXN
SECTION.
*----------------------------------------------------------------*
READ MVTOTXN.
IF

WS-FL-S-C0TRANSA
MOVE
999
GO
TO
END-IF

EQUAL
TO

10
XXXXXX
2599-EXIT

IF WS-FL-S-MVTOTXN
NOT EQUAL ZEROS
DISPLAY '*======================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA LEITURA DO ARQUIVO MVTOTXN
*'
DISPLAY ' FILE STATUS = ' WS-FL-S-MVTOTXN
DISPLAY '*======================================*'
STOP RUN
END-IF
MOVE C0-MVTOTXN TO WS-CH-MVTOTXN.
*----------------------------------------------------------------*
2599-EXIT.
EXIT.
*----------------------------------------------------------------*
3500-LER-ARQ-TRANS
SECTION.
*----------------------------------------------------------------*
READ TRANS.
IF

WS-FL-S-TRANS
MOVE
999
GO
TO
END-IF

EQUAL
TO

10
XXXXXX
3599-EXIT

IF WS-FL-S-TRANS
NOT EQUAL ZEROS
DISPLAY '*======================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA LEITURA DO ARQUIVO TRANS
*'
DISPLAY ' FILE STATUS = ' WS-FL-S-TRANS
DISPLAY '*======================================*'
STOP RUN
END-IF
MOVE C0-TRANS TO WS-CH-TRANS.
*----------------------------------------------------------------*
3599-EXIT.
EXIT.
*----------------------------------------------------------------*
4500-LER-ARQ-CARTAO
SECTION.
*----------------------------------------------------------------*
READ CARTAO.
IF

WS-FL-S-CARTAO
MOVE
999
GO
TO

EQUAL
TO

10
XXXXXX
4599-EXIT

END-IF
IF WS-FL-S-CARTAO
NOT EQUAL ZEROS
DISPLAY '*======================================*'
DISPLAY ' PGM TRANSACAO PROGRAMA CANCELADO
*'
DISPLAY 'ERRO NA LEITURA DO ARQUIVO CARTAO
*'
DISPLAY ' FILE STATUS = ' WS-FL-S-CARTAO
DISPLAY '*======================================*'
STOP RUN
END-IF
MOVE C0-CARTAO TO WS-CH-CARTAO.
*----------------------------------------------------------------*
4599-EXIT.
EXIT.
*----------------------------------------------------------------*
2000-PROCESSAR
SECTION.
*----------------------------------------------------------------*
IF WS-CH-CONTA GREATER WS-CH-MVTOTXN
PERFORM 2500-LER-ARQ-MVTOTXN THRU 2599-EXIT
GO TO 2099-EXIT
END-IF
IF WS-CH-CONTA LESS WS-CH-MVTOTXN
PERFORM 1500-LER-ARQ-CONTA THRU 1599-EXIT
GO TO 2099-EXIT
END-IF
IF WS-CH-CONTA GREATER WS-CH-TRANS
PERFORM 2500-LER-ARQ-TRANSA THRU 2599-EXIT
GO TO 2099-EXIT
END-IF
IF WS-CH-CONTA LESS WS-CH-TRANS
PERFORM 1500-LER-ARQ-CONTA THRU 1599-EXIT
GO TO 2099-EXIT
END-IF
IF WS-CH-CONTA GREATER WS-CH-CARTAO
PERFORM 2500-LER-ARQ-CARTAO THRU 2599-EXIT
GO TO 2099-EXIT
END-IF
IF WS-CH-CONTA LESS WS-CH-CARTAO
PERFORM 1500-LER-ARQ-CONTA THRU 1599-EXIT
GO TO 2099-EXIT
END-IF
PERFORM IMPRIME-RELATO TRHU
PERFORM
PERFORM
PERFORM
PERFORM

2500-LER-ARQ-TRANSA
1500-LER-ARQ-CONTA
3500-LER-ARQ-MVTOTXN
4500-LER-ARQ-CARTAO

THRU
THRU
THRU
THRU

2599-EXIT
1599-EXIT.
3599-EXIT
4599-EXIT.

2099-EXIT. EXIT.
*----------------------------------------------------------------*
2500-IMPRIME-CABEC
SECTION.
*----------------------------------------------------------------*
MOVE
MOVE
MOVE
MOVE
ADD
MOVE

ZEROS
WS-DT-SIS-DD
WS-DT-SIS-MM
WS-DATA-SIS-ANO
+1
WCNT-PAGINA

TO
TO
TO
TO
TO
TO

WCNT-LINHA.
WCAB01-DT-DIA.
WCAB01-DT-MES.
WCAB01-DT-ANO.
WCNT-PAGINA.
WCAB01-PAGINA.

MOVE WCAB01
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-RELATORIO.
2799-EXIT.

MOVE SPACES
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-REC.
2799-EXIT.

MOVE WS-CONTA-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-CONTA
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-NOME-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-NOME
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-CARTAO-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-CARTAO
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-VALIDADE-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-VALIDADE
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-DESCR.TRANS-ANTERIOR TO
MOVE WCAB03
TO
PERFORM 2700-GRAVA-RELAT
THRU

WCAB03-DESCR.TRANS
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-DT.TRANS-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-DT.TRANS
RELATO-RELATORIO.
2799-EXIT.

MOVE WS-VLR.TRANS-ANTERIOR
MOVE WCAB03
PERFORM 2700-GRAVA-RELAT

TO
TO
THRU

WCAB03-VLR.TRANS
RELATO-RELATORIO.
2799-EXIT.

MOVE SPACES
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-RELATORIO.
2799-EXIT.

MOVE WS-TRACO
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-RELATORIO.
2799-EXIT.

*
*

MOVE WCAB04
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-RELATORIO.
2799-EXIT.

*
*

MOVE SPACES
PERFORM 2700-GRAVA-RELAT

TO
THRU

RELATO-RELATORIO.
2799-EXIT.

2599-EXIT. EXIT.

*----------------------------------------------------------------*
2700-GRAVA-RELATO
SECTION.
*----------------------------------------------------------------*
WRITE RELATO-REC.
IF WS-FL-S-RELATO
NOT EQUAL '00'
DISPLAY '********************************************'
DISPLAY '* PGM TRANSACAO= PROGRAMA CANCELADO
*'
DISPLAY '*
ERRO GRAVACAO DO RELATORIO
*'
DISPLAY '* FILE STATUS = ' WS-FL-S-RELATO
DISPLAY '********************************************'
STOP RUN
END-IF.
ADD 1
ADD +1

TO
TO

WCNT-GRAVADOS-RELATORIO.
WCNT-LINHA.

2799-EXIT. EXIT.
*----------------------------------------------------------------*
3000-FINALIZAR
SECTION.
*----------------------------------------------------------------*
IF WCNT-LINHA
GREATER 45
MOVE ZEROS
TO
WCNT-LINHA
PERFORM 2500-IMPRIME-CABEC THRU
2599-EXIT
END-IF
MOVE SPACES
TO
PERFORM 2700-GRAVA-RELATOTHRU

RELATO-REC
2799-EXIT.

MOVE WACM-CONTA
MOVE WACM-VALOR-CONTA
MOVE WTOT1
PERFORM 2700-GRAVA-RELATO

WTOT1-CONTA
WTOT1-VALOR-CONTA
RELATO-RELATORIO
2799-EXIT.

TO
TO
TO
THRU

MOVE SPACES
TO
PERFORM 2800-GRAVA-RELATOTHRU

RELATO-REC
2899-EXIT.

MOVE WACM-NOME
MOVE WACM-VALOR-NOME
MOVE WTOT1
PERFORM 2900-GRAVA-RELAT

WTOT1-NOME
WTOT1-VALOR-NOME
RELATO-RELATORIO
2999-EXIT.

TO
TO
TO
THRU

MOVE SPACES
TO
PERFORM 3000-GRAVA-RELAT THRU

RELATO-REC
3099-EXIT.

MOVE WACM-CARTAO
MOVE WACM-VALOR-CARTAO
MOVE WTOT1
PERFORM 3100-GRAVA-RELAT

TO
TO
TO
THRU

WTOT1-CARTAO
WTOT1-VALOR-CARTAO
RELATO-RELATORIO
3199-EXIT.

MOVE WACM-VALIDADE
MOVE WACM-VALOR-VALIDADE
MOVE WTOT1
PERFORM 3200-GRAVA-RELAT

TO
TO
TO
THRU

WTOT1-VALIDADE
WTOT1-VALOR-VALIDADE
RELATO-RELATORIO
3299-EXIT.

MOVE WACM-DESCR.TRANS
TO
MOVE WACM-VALOR-DESCR.TRANSTO

WTOT1-DESCR.TRANS
WTOT1-VALOR-DESCR.TRANS

MOVE WTOT1
TO
PERFORM 3300-GRAVA-RELAT THRU

RELATO-RELATORIO
3399-EXIT.

MOVE WACM-DT.TRANS
MOVE WACM-VALOR-DT.TRANS
MOVE WTOT1
PERFORM 3400-GRAVA-RELAT

TO
TO
TO
THRU

WTOT1-DT.TRANS
WTOT1-VALOR-DT.TRANS
RELATO-RELATORIO
3499-EXIT.

MOVE WACM-VLR.TRANS
MOVE WACM-VALOR-VLR.TRANS
MOVE WTOT1
PERFORM 3500-GRAVA-RELAT

TO
TO
TO
THRU

WTOT1-VLR.TRANS
WTOT1-VALOR-VLR.TRANS
RELATO-RELATORIO
3599-EXIT.

MOVE SPACES
TO
PERFORM 3600-GRAVA-RELAT THRU

RELATO-REC
3699-EXIT.

MOVE WS-TRACO
PERFORM 3700-GRAVA-RELAT

RELATO-REC.
2799-EXIT.

TO
THRU

MOVE SPACES
TO
PERFORM 2700-GRAVA-RELAT THRU

RELATO-REC
3799-EXIT.

MOVE WACM-TOTAL DA CONTA


MOVE WACM-TOTAL GERAL
MOVE WTOT3
MOVE WTOT4
PERFORM 3800-GRAVA-RELAT

WTOT3-TOTAL DA CONTA
WTOT4-TOTAL GERAL
RELATO-RELATORIO.
RELATO-RELATORIO.
3899-EXIT.

TO
TO
TO
TO
THRU

CLOSE TRANSA.
IF

WS-FL-S-TRANSA

NOT EQUAL 00

DISPLAY '********************************************'
DISPLAY '* PGM TRANSACAO = PROGRAMA CANCELADO
*'
DISPLAY '* ERRO FECHAMENTO DO ARQUIVO ENTRADA
*'
DISPLAY '* FILE STATUS = WS-FL-S-TRANSA
*'
DISPLAY '********************************************'
STOP RUN
END-IF.
CLOSE RELAT0.
IF

WS-FL-S-RELATO

NOT EQUAL 00

DISPLAY '********************************************'
DISPLAY '* PGM TRANSACAO= PROGRAMA CANCELADO
*'
DISPLAY '* ERRO FECHAMENTO DO ARQUIVO RELATORIO
*'
DISPLAY '* FILE STATUS = WS-FL-S-RELATO
*'
DISPLAY '********************************************'
STOP RUN
END-IF.
DISPLAY
DISPLAY
DISPLAY
DISPLAY
DISPLAY
DISPLAY

'*************TRANSACAO**********************'
'********************************************'
'******** TOTAIS PARA CONTROLE **************'
'********************************************'
'*CONTAS LIDOS..........=' WCNT-LIDOS-C0TRANSA
'*RELATORIO.........=' WCNT-GRAVADOS-RELATORIO

DISPLAY '********************************************'.
3999-EXIT.

EXIT.

You might also like