Professional Documents
Culture Documents
Cbar 1 y 87
Cbar 1 y 87
IDENTIFICATION DIVISION.
******************************************************************
PROGRAM-ID. CBAR1Y89.
AUTHOR. 7COMM.
*================================================================*
* 7 C O M M *
*----------------------------------------------------------------*
* *
* PROGRAMA : CBAR1Y89 *
* PROGRAMADOR : FABRICA - 7COMM *
* DATA : DEZEMBRO/2020 *
* *
* OBJETIVO : *
* SELECIONA REGISTROS PARA INCLUSAO NO MOVIMENTO DE RAJA- *
* DA DE CODIGO DE BARRAS *
* *
* ARQUIVOS *
* *
* INPUT : *
* MOVTOSEL - EMPRESAS SELECIONADAS PARA GERACAO DO ARQUIVO *
* *
* TABELAS DB2 *
* CBARB00A - DB2PRD.THIST_PGTO_ISTAN *
* *
* MODULOS CHAMADOS *
* *
* CBAR4000 - INCLUI NO MOVIMENTO DE RAJADA *
* BRAD7100 - MODULO DE TRATAMENTO DE ERROS *
* *
*================================================================*
******************************************************************
ENVIRONMENT DIVISION.
******************************************************************
*----------------------------------------------------------------*
CONFIGURATION SECTION.
*----------------------------------------------------------------*
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
*----------------------------------------------------------------*
INPUT-OUTPUT SECTION.
*----------------------------------------------------------------*
FILE-CONTROL.
******************************************************************
DATA DIVISION.
******************************************************************
*----------------------------------------------------------------*
FILE SECTION.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* INPUT LRECL = 100 *
*----------------------------------------------------------------*
FD MOVTOSEL
LABEL RECORD STANDARD
BLOCK CONTAINS 0 RECORDS
RECORDING F.
******************************************************************
WORKING-STORAGE SECTION.
******************************************************************
*----------------------------------------------------------------*
* AREAS PARA TESTE DE FILE STATUS *
*----------------------------------------------------------------*
01 WRK-MSG-FS-ERRO.
03 FILLER PIC X(08) VALUE SPACES.
03 FILLER PIC X(02) VALUE '* '.
03 FILLER PIC X(05) VALUE 'ERRO'.
03 WRK-OPERACAO PIC X(13) VALUE SPACES.
03 FILLER PIC X(12) VALUE
' DO ARQUIVO '.
03 WRK-NOME-ARQ PIC X(08) VALUE SPACES.
03 FILLER PIC X(17) VALUE
' - FILE-STATUS = '.
03 WRK-FILE-STATUS PIC X(02) VALUE SPACES.
03 FILLER PIC X(02) VALUE ' *'.
*----------------------------------------------------------------*
* AREA DO ARQUIVO DE ENTRADA *
*----------------------------------------------------------------*
COPY 'I#CBAR88'.
*----------------------------------------------------------------*
01 FILLER PIC X(050) VALUE
'BOOK UTILIZADO PARA ACESSAR CKRS0105'.
*----------------------------------------------------------------*
COPY 'I#CKRS04'.
*----------------------------------------------------------------*
* ACUMULADORES *
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* AREA DE CHAVES *
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* INDICADORES DE NULIDADE *
*----------------------------------------------------------------*
01 WRK-CBARB00A-NULL.
03 WRK-CSGMTO-EMPR-NULL PIC S9(04) COMP VALUE +0.
03 WRK-CEMPR-CONVN-ARRE-NULL PIC S9(04) COMP VALUE +0.
*----------------------------------------------------------------*
* AREA AUXILIAR *
*----------------------------------------------------------------*
COPY 'I#BRAD7C'.
*----------------------------------------------------------------*
* TABELAS DB2 *
*----------------------------------------------------------------*
EXEC SQL
INCLUDE SQLCA
END-EXEC.
EXEC SQL
INCLUDE CBARB00A
END-EXEC.
EXEC SQL
INCLUDE CBARB00G
END-EXEC
******************************************************************
PROCEDURE DIVISION.
******************************************************************
*----------------------------------------------------------------*
0000-ROTINA-PRINCIPAL SECTION.
*----------------------------------------------------------------*
PERFORM 1000-INICIO.
PERFORM 5000-PROCESSO UNTIL WRK-FS-MOVTOSEL EQUAL '10'.
PERFORM 8000-FINALIZA.
GOBACK.
*----------------------------------------------------------------*
0000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
1000-INICIO SECTION.
*----------------------------------------------------------------*
CALL 'CKRS1000'
PERFORM 7000-CHAMAR-CKRS0105.
PERFORM 1100-TESTAR-FS-MOVTOSEL.
PERFORM 1200-LER-MOVTOSEL.
*----------------------------------------------------------------*
1000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
1100-TESTAR-FS-MOVTOSEL SECTION.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
1100-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
1200-LER-MOVTOSEL SECTION.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
1200-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* ABERTURA DO CURSOR CSR01-CBARB00G *
*----------------------------------------------------------------*
1500-OPEN-CSR01-CBARB00G SECTION.
*----------------------------------------------------------------*
EXEC SQL
OPEN CSR01-CBARB00G
END-EXEC.
*----------------------------------------------------------------*
1500-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* LEITURA DO CURSOR CSR01-CBARB00G *
*----------------------------------------------------------------*
1600-FETCH-CSR01-CBARB00G SECTION.
*----------------------------------------------------------------*
EXEC SQL
FETCH CSR01-CBARB00G
INTO :CBARB00G.CNRO-SEQ-TRANS
,:CBARB00G.CPTCAO-TBELA
,:CBARB00G.CCTA-BCRIA-CLI
,:CBARB00G.HATULZ
,:CBARB00G.VRECBD-DOCTO
,:CBARB00G.CBARRA-DOCTO
,:CBARB00G.CAUTEN-PGTO-ISTAN
,:CBARB00G.CSGMTO-EMPR
,:CBARB00G.CEMPR-CONVN-ARRE
,:CBARB00G.CIDTFD-PGTO-ISTAN
,:CBARB00G.CIDTFD-TPO-COD
,:CBARB00G.CBCO
,:CBARB00G.CAG-BCRIA-ORIGE
,:CBARB00G.CCTA-BCRIA-ORIGE
,:CBARB00G.CIDTFD-TRANS-ISTAN
,:CBARB00G.CSIT-TRNSM-ONLINE
,:CBARB00G.CSIT-GERAC-CONSL
END-EXEC.
*----------------------------------------------------------------*
1600-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* FECHAMENTO DO CURSOR CSR01-CBARB00G *
*----------------------------------------------------------------*
1700-CLOSE-CSR01-CBARB00G SECTION.
*----------------------------------------------------------------*
EXEC SQL
CLOSE CSR01-CBARB00G
END-EXEC.
*----------------------------------------------------------------*
1700-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
5000-PROCESSO SECTION.
*----------------------------------------------------------------*
PERFORM 1500-OPEN-CSR01-CBARB00G.
PERFORM 1600-FETCH-CSR01-CBARB00G.
PERFORM 7000-CHAMAR-CKRS0105.
PERFORM 1700-CLOSE-CSR01-CBARB00G.
PERFORM 1200-LER-MOVTOSEL.
*----------------------------------------------------------------*
5000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
5100-ACESSA-CBARB00A SECTION.
*----------------------------------------------------------------*
EXEC SQL
SELECT
CIDTFD_PGTO_ISTAN,
DINIC_VGCIA_ISTAN,
CTPO_IDTFD_PGTO,
CSGMTO_EMPR,
CEMPR_CONVN_ARRE,
CINDCD_COMPS_BARRA,
CIDTFD_COMPS_TRANS,
DFIM_VGCIA_ISTAN,
CUSUAR_SENHA,
HATULZ
INTO
:CBARB00A.CIDTFD-PGTO-ISTAN,
:CBARB00A.DINIC-VGCIA-ISTAN,
:CBARB00A.CTPO-IDTFD-PGTO,
:CBARB00A.CSGMTO-EMPR
:WRK-CSGMTO-EMPR-NULL,
:CBARB00A.CEMPR-CONVN-ARRE
:WRK-CEMPR-CONVN-ARRE-NULL,
:CBARB00A.CINDCD-COMPS-BARRA,
:CBARB00A.CIDTFD-COMPS-TRANS,
:CBARB00A.DFIM-VGCIA-ISTAN,
:CBARB00A.CUSUAR-SENHA,
:CBARB00A.HATULZ
FROM DB2PRD.THIST_PGTO_ISTAN
WHERE CIDTFD_PGTO_ISTAN = :CBARB00A.CIDTFD-PGTO-ISTAN
AND DINIC_VGCIA_ISTAN <= :CBARB00A.DINIC-VGCIA-ISTAN
AND DFIM_VGCIA_ISTAN >= :CBARB00A.DFIM-VGCIA-ISTAN
END-EXEC.
*----------------------------------------------------------------*
5100-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
5200-LER-CSR-CBARB00G SECTION.
*----------------------------------------------------------------*
PERFORM 6000-CHAMAR-CBAR4000.
PERFORM 1600-FETCH-CSR01-CBARB00G.
*----------------------------------------------------------------*
5200-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
6000-CHAMAR-CBAR4000 SECTION.
*----------------------------------------------------------------*
PERFORM 6200-ATUALIZAR-CBARB00G.
*----------------------------------------------------------------*
6000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
6100-FORMATAR-BARRA SECTION.
*----------------------------------------------------------------*
PERFORM 6110-CALCULA-DIG-GERAL.
MOVE WRK-DIGITO TO SAI-COD-BARRA (04:01).
*----------------------------------------------------------------*
6100-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
6110-CALCULA-DIG-GERAL SECTION.
*----------------------------------------------------------------*
IF WRK-RESTO EQUAL 0 OR 1
MOVE 0 TO WRK-DIGITO-11-N
ELSE
IF WRK-RESTO EQUAL 10
MOVE 1 TO WRK-DIGITO-11-N
ELSE
COMPUTE WRK-DIGITO-11-P = 11 - WRK-RESTO
MOVE WRK-DIGITO-11-P TO WRK-DIGITO-11-N
END-IF
END-IF
MOVE WRK-DIGITO-11 TO WRK-DIGITO-N
END-IF.
*----------------------------------------------------------------*
6110-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
6200-ATUALIZAR-CBARB00G SECTION.
*----------------------------------------------------------------*
EXEC SQL
UPDATE DB2PRD.TMOVTO_PGTO_ISTAN
SET CSIT_TRNSM_ONLINE = :CBARB00G.CSIT-TRNSM-ONLINE
,CBARRA_DOCTO = :CBARB00G.CBARRA-DOCTO
WHERE CURRENT OF CSR01-CBARB00G
END-EXEC.
ADD 1 TO WRK-ACU-UPDAT-CBARB00G
WRK-ACU-EFETIVA.
*----------------------------------------------------------------*
6200-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
* ROTINA PARA CONEXAO E DESCONEXAO COM DB2 *
*----------------------------------------------------------------*
7000-CHAMAR-CKRS0105 SECTION.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
7000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
8000-FINALIZA SECTION.
*----------------------------------------------------------------*
CLOSE MOVTOSEL
MOVTOSAI.
PERFORM 1100-TESTAR-FS-MOVTOSEL.
PERFORM 1110-TESTAR-FS-MOVTOSAI.
PERFORM 7000-CHAMAR-CKRS0105.
*----------------------------------------------------------------*
8000-99-FIM. EXIT.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
9999-ROTINA-ERRO SECTION.
*----------------------------------------------------------------*
*----------------------------------------------------------------*
9999-99-FIM. EXIT.
*----------------------------------------------------------------*