CE PLUS - Nota 010889

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Liquidação de Fatura

Data/Hora da Publicação: 13/01/2011 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:02:30

Descrição da Nota: VINCULAÇÃO/LIQUIDAÇÃO ARBITRAGEM-MOEDA SEM CASAS DECIMAIS, CENTAVOS

Sintoma

- Cenários incorretos ao efetuar uma vinculação/liquidação(principalmente com arbitragem parcial).

Erros nos valores da tela, nos cálculos, nas atualizações dos saldos, nas contabilizações.

- Tabelas /PWS/ZYCBT005 e /PWS/ZYCBT006 não estão armazenando corretamente os valores.

Cenários:

- moedas iguais, mas sem casas decimais(zeros a mais/menos);

- moedas diferentes, onde uma delas não tem casas decimais(tanto fatura, quanto contrato-zeros a

mais/menos);

- moedas diferentes, onde o valor vinculado do contrato é alterado manualmente(após o cálculo da

vinculação-centavos, arredondamento). Neste caso o programa de liquidação não traz o valor correto

quando é efetuado parcialmente.

 

 

Solução

- Ajustar os campos das tabelas /PWS/ZYCBT005 e /PWS/ZYCBT006, referenciando a moeda correta e

 fazendo com que armazene o valor correto nos campos(sem zeros a mais);

- Ajustar os cálculos que dependem de valores sem casas decimais, onde antes de efetuar o mesmo, se

o valor não possui casas decimais, incluir dois zeros(2 devido o campo possuir 2 casas decimais na

tabela). Após isso efetuar o cálculo e voltar estes dois zeros, para não ficar incorreto na tela;

- Criar os campos Moeda Contrato e Valor Contrato na tabela /PWS/ZYCBT006, para armazenar o valor

liquidado na moeda do contrato(cenário parcial), pois só armazenava o valor na moeda da fatura,

necessitando sempre recalcular. Efetuar também uma carga no programa de liquidação quando estes

novos campos se estiverem vazios(processos antigos), atualizando os mesmos com o cálculo correto de

paridade ou nos casos de moedas iguais(repetir o valor da fatura).

- Ajustar Relatório de Contratos e Câmbios Fechados, para considerar estes novos campos da

tabela /PWS/ZYCBT006.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÕES DE FATURAS AOS CONTRATOS

LIQUIDAÇÃO - CONTA CLIENTE

LIQUIDAÇÃO COM PERFORMANCE CAMPO EMPRESA

LIQUIDAÇÃO EM ANDAMENTO - EXIT LIQ011 - NOME FUNCIONALIDADE

BUSCA DE DOCUMENTO INCORRETO NO DESMEMBRAMENTO DO ACE

IMPRESSÃO HISTORICO CONTABIL LIQUIDACAO

EXPORTAÇÃO AGRUPAMENTO DE FATURAS

VALOR INCORRETO NO CAMPO VALOR DO CANCELAMENTO (HISTÓRICO CONTÁBIL)

LIQUIDAÇÃO - NÃO CONTABILIZAR QUANDO 209 TIVER SALDO IGUAL A ZERO.

RELATÓRIO DE CONTRATOS - ERRO SALDO A PAGAR

VINCULAÇÃO - FATOR DE CONVERSÃO DE MOEDAS

LIQUIDAÇÃO EM ANDAMENTO - EXIT LIQ001 E LIQ002

LIQUIDAÇÃO - PONTO DE EXIT LIQ005(DISPONIBILIZAR NOVA TABELA)

VINCULAÇÃO COM LIQUIDAÇÃO AUTOMATICA - CAMPO DATA DOCTO.

ENCERRAMENTO DE CUSTO

LIQUIDAÇÃO - ATUALIZAÇÃO DO SALDO NO ESTORNO

ERRO NA LIQUIDAÇÃO DE MAIS DE UMA FATURA DE ARBITRAGEM - CONTRATO DE ACC

ERRO NO ESTORNO DE LIQUIDAÇÕES COM PERFORMANCE

MATCH CODE DE FATURAS UNICODE VINCULAÇÃO F-30

LIQUIDAÇÃO - ATUALIZAÇÃO DO SALDO - EXIT ATIVA

MATCHCODE LIQUIDAÇÃO EM ANDAMENTO - MOEDA E DECIMAIS

VINCULAÇÃO - AO ESTORNAR FATURAS O SALDO DA FATURA É DUPLICADO.

ENVIAR O CAMPO BUPLA PARA A TELA.

TRATAMENTO DE SBU PELA EXIT VNC011

VINCULAÇÃO COM PERFORMANCE - EMPRESA DO CONTRATO

LIQUIDAÇÃO EM ANDAMENTO - VLME VLSALDO ESTORNO

VINCULAÇÃO FATURAS DE ARBITRAGEM - LIMPA PARIDADE

LIQUIDAÇÃO - PONTO DE EXIT LIQ032 PARA CHAMAR OUTRO PROGRAMA

LIQUIDAÇÃO EM ANDAMENTO - CAMPO PRAZO NO DOC. DESMEMBRAMENTO

EXIT VINCULAÇÃO NO DEVOLUÇÃO - CRIAR

VINCULAÇÃO/LIQUIDAÇÃO DE DP NÃO PREENCHE ATRIBUIÇÃO ZUONR

LIQUIDAÇÃO, ESTORNO -ATUAL. SALDOS DA FATURA E DA LIQ. EM ANDAMENTO

VINCULAÇÃO - ERRO DUPLO CLIQUE PARA VINCULAR SALDO TOTAL-DUPLICA FATURA

DUMP NA FUNÇÃO MONTANTE_CONVERTE NA VINCULAÇÃO

LIQUIDAÇÃO DE FATURAS - SALDO A LIQUIDAR

CÁLCULO DOS JUROS NA LIQUIDAÇÃO DE FATURAS PARA PT

VINCULAÇÃO / LIQUIDAÇÃO 3ª F-30 (DOCUMENTO DE PERFORMANCE)

VINCULAÇÃO - CAMPO DESCRIÇÃO FLAG 321 TEXTO ITEM

INCLUSÃO DE EXIT NA VINCULAÇÃO

PASSAGEM DO NÚMERO DA CONTA CORRETA PARA A CONTABILIZAÇÃO

RELATORIO CAMBIOS FECHADOS, CONTRATOS PENDENTES, LIQUIDADOS, TODOS

VINCULAÇÃO - CONTABILIZAÇÃO COM JPY

LIQUIDAÇÃO DE FATURAS - ESTORNO

CONTABILIZAÇÃO LIQUIDAÇÃO EM ANDAMENTO - ZFBDT

LIQUIDAÇÃO EM ANDAMENTO CAMPOS ABERTOS

LIQUIDAÇÃO - CAMPO LOCAL DE NEGOCIO NO BI INCORRETO

VINCULAÇÃO/LIQUIDAÇÃO CÂMBIO PRONTO - CONTABILIZAÇÃO NÃO EFETUADA

LIQUIDAÇÃO DE CONTRATO

VINCULAÇÃO - ATUALIZAÇÃO BELNR2 TABELA /PWS/ZYCBT002

VINCULAÇÃO - EXIT VNC030

VINCULAÇÃO - 1º "/N", FECHE A EDIÇÃO DA VINCULAÇÃO.(APAREÇA EXBINDO)

RELATÓRIO CÂMBIOS FECHADOS

LIQUIDAÇÃO EM ANDAMENTO - VALOR PARCIAL

PROBLEMA BRL E JPY HISTORICO CONTABI

HISTÓRICO CONTÁBIL - DRILL-DOWN - ANO CONTÁBIL INCORRETO

LIQUIDAÇÃO EM ANDAMENTO - DUMP AO SALVAR SEM PRESSIONAR ENTER

LIQUIDAÇÃO - EXCLUIR FATURAS TABLE CONTROL

VINCULAÇÃO - DESVINCULAR PARCIALMENTE FATURA ARBITRAGEM

LIQUIDAÇÃO DE FATURAS - DATA BASE DE CONVERSÃO PARA TAXA

VINCULAÇÃO-TEXTO DEDUZ JUROS INCORRETO NA TELA DE CONTRATOS DIF. PT E ST

LIQUIDAÇÃO COM PERFORMANCE.

IMPRESSÃO DOS DADOS DA DEVOLUÇÃO NO HISTÓRICO CONTÁBIL

SUBSTITUIÇÃO DO TIPO DO DOCUMENTO NO ESTORNO DA LIQUIDAÇÃO EM ANDAMENTO

LIQUIDAÇÃO - TRATAMENTO ESPECÍFICO QUANDO SALVAR REGISTRO /PWS/ZYCBT006

LEVAR PARA O CAMPO VALUT A DATA DE LANÇAMENTO

VINCULAÇÃO EXPORTAÇÃO, MENSAGEM, HOMOLOGAÇÃO

EXIT NA VINCULAÇÃO PARA TRATAR OS REGISTROS QUE FORAM ELIMINADOS

O CAMPO DATA BASE DA ABERTURA SEGUNDA FATURA É PREENCHIDO COM 00.00.0000

BOTÃO VOLTAR DO RELATORIO DA VINCULAÇÃO

VINCULAÇÃO - VINCULAR TOTAL

VINCULAÇÃO DE CONTRATO DE EXPORTAÇÃO DE PRÉ PAGAMENTO

VINCULAÇÃO DE CONTRATOS DE CAPTAÇÃO DE DP, ORDEM DE VENDA

BUSCA DA CONTA CONTÁBIL DO DESMEMBRAMENTO DO ACE

VINCULAÇÃO - DATA DE PAGAMENTO NO EXTERIOR

VINCULAÇÃO - CAPTAÇÃO TIPO DOW PAYMENT, NO MATCH CODE ABRE TODAS FATURAS

LIQUIDAÇÃO - EMPRESA CAPTAÇÃO FATURA

VINCULAÇÃO - INCLUSÃO DE EXIT AO SALVAR/ESTORNAR A DEVOLUÇÃO DE FATURAS

VINCULAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.

HISTÓRICO CONTÁBIL - JUROS

VINCULAÇÃO DP EM LONGO PRAZO(LP) - PERMITIR SEMPRE VINCULAR

BAIXA DO CLIENTE NA VINCULAÇÃO DE FATURAS

HISTÓRICO CONTÁBIL - QUEBRA POR FATURA, PARCELA, DIVISÃO

SELEÇÃO DE FATURA PELO MATCHCODE VINCULAÇÃO COM FORMATO DATA INCORRETO

LIQUIDAÇÃO - BARRAR LANÇAMENTO DA PROVISÃO SEM LIQUIDAÇÃO EM ANDAMENTO

FUNÇÃO MONTANTE_CONVERTE NÃO TRATAVA AS EXCEÇÕES.

TRATAMENTO DE SBU NO ESTORNO DA LIQUIDAÇÃO PELA EXIT LIQ016

VINCULAÇÃO - DATA DE VENCIMENTO APARECE NO FORMATO 00.00.0000

ERRO NO ESTORNO DA VINCULAÇÃO DE PRÉ-PAGAMENTO

HISTÓRICO CONTÁBIL - NÃO EXIBE DOCUMENTOS QUE ESTÃO NA /PWS/ZYCBT084

REL CÂMBIOS FECHADOS - COLUNAS "TX JUROS BRL" E "JUROS BRL" EM BRANCO.

RELATÓRIO ESTORNO LIQUIDAÇÃO AUTOMÁTICA NA VINCULAÇÃO

LIQUIDAÇÃO EM ANDAMENTO - DATA DE VENCIMENTO PRORROGADA

LIQUIDAÇÃO DE FATURAS - CRIAÇÃO DO PONTO DE EXIT LIQ026

271323 EXIT LIQUIDAÇÃO EM ANDAMENTO VNC009, LIQ011 E LI

NO HISTÓRICO CONTÁBIL AS INFORMAÇÕES ESTAVAM SENDO IMPRESSAS ERRADAS.

ERRO VINCULAÇÃO/LIQUIDAÇÃO DE UM MESMO CONTRATO/FATURA EM DATAS DIFERENT

VINCULAÇÃO - O PROGRAMA NÃO ESTÁ EFETUANDO O ESTORNO

VINCULAÇÃO - FILTRO POR DATA DE LANÇAMENTO

SELECIONAR FATURAS PARA VINCULAÇÃO CHAVE "EMPRESA"

ERRO NA VINCULAÇÃO NA ATUALIZAÇÃO DOS SALDOS DA FATURA

LIQUIDAÇÃO EM ANDAMENTO - CAMPO FILIAL (BUPLA)

LIQUIDAÇÃO - COLUNA VALOR JUROS ACC/ACE - ESTORNO PROVISÃO

VINCULAÇÃO - F-30 PARA BUSCAR A CHAVE DE REFERÊNCIA NA BKPF

DOCUMENTO DE LIQUIDAÇÃO NÃO APARECE NO HISTÓRICO CONTÁBIL

DESVINCULAÇÃO DE VALORES NAS FATURAS NA VINCULAÇÃO

VINCULAÇÃO - TAXAS /PWS/ZYGLT007

TRANSAÇÃO PARA O ACESSO AO PROGRAMA EMBARQUE FOI ALTERADA

VINCULAÇÃO - RECEBIMENTO/PDD - RECUP. DIVISAS - HIST. CONTÁBIL - ERROS

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 10889 Data: 13/01/2011 Hora: 17:00:44

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 10889

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 8.0

Pacote                   : 00006

Agrupamento              : 00054

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

00014  - 00001 - 6.0    - 00021  - CÁLCULO DOS JUROS NA LIQUIDAÇÃO DE FATURAS PARA PT

00115  - 00002 - 6.0    - 00021  - CONTABILIZAÇÃO LIQUIDAÇÃO EM ANDAMENTO - ZFBDT

00183  - 00003 - 6.0    - 00021  - RELATÓRIO ESTORNO LIQUIDAÇÃO AUTOMÁTICA NA VINCULAÇÃO

00230  - 00004 - 6.0    - 00021  - SUBSTITUIÇÃO DO TIPO DO DOCUMENTO NO ESTORNO DA LIQUIDAÇÃO EM AND

00259  - 00005 - 6.0    - 00021  - LEVAR PARA O CAMPO VALUT A DATA DE LANÇAMENTO

00260  - 00006 - 6.0    - 00021  - MATCHCODE LIQUIDAÇÃO EM ANDAMENTO - MOEDA E DECIMAIS

00278  - 00007 - 6.0    - 00021  - TRANSAÇÃO PARA O ACESSO AO PROGRAMA EMBARQUE FOI ALTERADA

00292  - 00008 - 6.0    - 00021  - EXIT VINCULAÇÃO NO DEVOLUÇÃO - CRIAR

00374  - 00009 - 6.0    - 00021  - PASSAGEM DO NÚMERO DA CONTA CORRETA PARA A CONTABILIZAÇÃO

00384  - 00010 - 6.0    - 00021  - BUSCA DA CONTA CONTÁBIL DO DESMEMBRAMENTO DO ACE

00419  - 00011 - 6.0    - 00021  - VALOR INCORRETO NO CAMPO VALOR DO CANCELAMENTO (HISTÓRICO CONTÁBI

00449  - 00012 - 6.0    - 00021  - PROBLEMA BRL E JPY HISTORICO CONTABI

00454  - 00013 - 6.0    - 00022  - TRATAMENTO DE SBU PELA EXIT VNC011

00463  - 00014 - 6.0    - 00021  - O CAMPO DATA BASE DA ABERTURA SEGUNDA FATURA É PREENCHIDO COM 00.

00475  - 00015 - 6.0    - 00021  - BUSCA DE DOCUMENTO INCORRETO NO DESMEMBRAMENTO DO ACE

00477  - 00016 - 6.0    - 00021  - IMPRESSÃO DOS DADOS DA DEVOLUÇÃO NO HISTÓRICO CONTÁBIL

00559  - 00017 - 6.0    - 00022  - EXIT NA VINCULAÇÃO PARA TRATAR OS REGISTROS QUE FORAM ELIMINADOS

00582  - 00018 - 6.0    - 00022  - 271323 EXIT LIQUIDAÇÃO EM ANDAMENTO VNC009, LIQ011 E LI

00609  - 00019 - 6.0    - 00022  - LIQUIDAÇÃO DE CONTRATO

00635  - 00020 - 6.0    - 00022  - VINCULAÇÃO - INCLUSÃO DE EXIT AO SALVAR/ESTORNAR A DEVOLUÇÃO DE F

00646  - 00021 - 6.0    - 00022  - TRATAMENTO DE SBU NO ESTORNO DA LIQUIDAÇÃO PELA EXIT LIQ016

00701  - 00022 - 6.0    - 00022  - ERRO NO ESTORNO DA VINCULAÇÃO DE PRÉ-PAGAMENTO

00758  - 00023 - 6.0    - 00022  - LIQUIDAÇÃO - TRATAMENTO ESPECÍFICO QUANDO SALVAR REGISTRO /PWS/ZY

00847  - 00024 - 6.0    - 00022  - LIQUIDAÇÃO - ATUALIZAÇÃO DO SALDO NO ESTORNO

00900  - 00025 - 6.0    - 00022  - BAIXA DO CLIENTE NA VINCULAÇÃO DE FATURAS

00918  - 00026 - 6.0    - 00022  - NO HISTÓRICO CONTÁBIL AS INFORMAÇÕES ESTAVAM SENDO IMPRESSAS ERRA

00922  - 00027 - 6.0    - 00022  - ERRO NA VINCULAÇÃO NA ATUALIZAÇÃO DOS SALDOS DA FATURA

00952  - 00028 - 6.0    - 00022  - SELEÇÃO DE FATURA PELO MATCHCODE VINCULAÇÃO COM FORMATO DATA INCO

00978  - 00029 - 6.0    - 00022  - VINCULAÇÃO - AO ESTORNAR FATURAS O SALDO DA FATURA É DUPLICADO.

00993  - 00030 - 6.0    - 00022  - VINCULAÇÃO FATURAS DE ARBITRAGEM - LIMPA PARIDADE

00994  - 00031 - 6.0    - 00022  - IMPRESSÃO HISTORICO CONTABIL LIQUIDACAO

01003  - 00032 - 6.0    - 00022  - VINCULAÇÃO - DESVINCULAR PARCIALMENTE FATURA ARBITRAGEM

01074  - 00033 - 6.0    - 00023  - MATCH CODE DE FATURAS UNICODE VINCULAÇÃO F-30

01084  - 00034 - 6.0    - 00023  - BOTÃO VOLTAR DO RELATORIO DA VINCULAÇÃO

01086  - 00035 - 6.0    - 00023  - VINCULAÇÃO - DATA DE VENCIMENTO APARECE NO FORMATO 00.00.0000

01149  - 00036 - 6.0    - 00023  - ERRO NA LIQUIDAÇÃO DE MAIS DE UMA FATURA DE ARBITRAGEM - CONTRATO

01163  - 00037 - 6.0    - 00023  - LIQUIDAÇÃO EM ANDAMENTO - VLME VLSALDO ESTORNO

01168  - 00038 - 6.0    - 00023  - FUNÇÃO MONTANTE_CONVERTE NÃO TRATAVA AS EXCEÇÕES.

01190  - 00039 - 6.0    - 00023  - VINCULAÇÃO / LIQUIDAÇÃO 3ª F-30 (DOCUMENTO DE PERFORMANCE)

01206  - 00040 - 6.0    - 00023  - SELECIONAR FATURAS PARA VINCULAÇÃO CHAVE "EMPRESA"

01239  - 00041 - 6.0    - 00023  - LIQUIDAÇÃO EM ANDAMENTO - DATA DE VENCIMENTO PRORROGADA

01244  - 00042 - 6.0    - 00023  - VINCULAÇÃO/LIQUIDAÇÃO CÂMBIO PRONTO - CONTABILIZAÇÃO NÃO EFETUADA

01261  - 00043 - 6.0    - 00023  - VINCULAÇÃO - O PROGRAMA NÃO ESTÁ EFETUANDO O ESTORNO

01360  - 00044 - 6.0    - 00023  - LIQUIDAÇÃO COM PERFORMANCE.

01365  - 00045 - 6.0    - 00023  - LIQUIDAÇÃO COM PERFORMANCE CAMPO EMPRESA

01424  - 00046 - 6.0    - 00023  - VINCULAÇÃO COM LIQUIDAÇÃO AUTOMATICA - CAMPO DATA DOCTO.

01435  - 00047 - 6.0    - 00023  - LIQUIDAÇÃO DE FATURAS - ESTORNO

01463  - 00048 - 6.0    - 00023  - VINCULAÇÃO COM PERFORMANCE - EMPRESA DO CONTRATO

01552  - 00049 - 6.0    - 00024  - VINCULAÇÃO/LIQUIDAÇÃO DE DP NÃO PREENCHE ATRIBUIÇÃO ZUONR

01595  - 00050 - 6.0    - 00023  - VINCULAÇÃO - FATOR DE CONVERSÃO DE MOEDAS

01695  - 00051 - 6.0    - 00024  - INCLUSÃO DE EXIT NA VINCULAÇÃO

01906  - 00052 - 6.0    - 00024  - DOCUMENTO DE LIQUIDAÇÃO NÃO APARECE NO HISTÓRICO CONTÁBIL

02091  - 00053 - 6.0    - 00024  - LIQUIDAÇÃO DE FATURAS - DATA BASE DE CONVERSÃO PARA TAXA

02109  - 00054 - 6.0    - 00024  - DESVINCULAÇÃO DE VALORES NAS FATURAS NA VINCULAÇÃO

02199  - 00055 - 6.0    - 00025  - VINCULAÇÃO - CAMPO DESCRIÇÃO FLAG 321 TEXTO ITEM

02215  - 00056 - 6.0    - 00025  - ERRO NO ESTORNO DE LIQUIDAÇÕES COM PERFORMANCE

02263  - 00057 - 6.0    - 00025  - LIQUIDAÇÃO EM ANDAMENTO - CAMPO FILIAL (BUPLA)

02269  - 00058 - 6.0    - 00025  - LIQUIDAÇÃO EM ANDAMENTO CAMPOS ABERTOS

02301  - 00059 - 6.0    - 00025  - LIQUIDAÇÃO EM ANDAMENTO - CAMPO PRAZO NO DOC. DESMEMBRAMENTO

02323  - 00060 - 6.0    - 00025  - LIQUIDAÇÃO EM ANDAMENTO - DUMP AO SALVAR SEM PRESSIONAR ENTER

02330  - 00061 - 6.0    - 00025  - LIQUIDAÇÃO - EXCLUIR FATURAS TABLE CONTROL

02395  - 00062 - 6.0    - 00025  - LIQUIDAÇÃO - BARRAR LANÇAMENTO DA PROVISÃO SEM LIQUIDAÇÃO EM ANDA

02496  - 00063 - 6.0    - 00025  - VINCULAÇÃO - FILTRO POR DATA DE LANÇAMENTO

02540  - 00064 - 6.0    - 00025  - LIQUIDAÇÃO, ESTORNO -ATUAL. SALDOS DA FATURA E DA LIQ. EM ANDAMEN

02566  - 00065 - 6.0    - 00025  - LIQUIDAÇÃO - ATUALIZAÇÃO DO SALDO - EXIT ATIVA

02756  - 00066 - 6.0    - 00026  - REL CÂMBIOS FECHADOS - COLUNAS "TX JUROS BRL" E "JUROS BRL" EM BR

02765  - 00067 - 6.0    - 00026  - VINCULAÇÃO - 1º "/N", FECHE A EDIÇÃO DA VINCULAÇÃO.(APAREÇA EXBIN

02838  - 00068 - 6.0    - 00026  - DUMP NA FUNÇÃO MONTANTE_CONVERTE NA VINCULAÇÃO

02862  - 00069 - 6.0    - 00026  - LIQUIDAÇÃO - COLUNA VALOR JUROS ACC/ACE - ESTORNO PROVISÃO

02880  - 00070 - 6.0    - 00026  - VINCULAÇÃO -  F-30 PARA BUSCAR A CHAVE DE REFERÊNCIA NA BKPF

03075  - 00071 - 6.0    - 00026  - LIQUIDAÇÃO - CONTA CLIENTE

03212  - 00072 - 6.0    - 00026  - LIQUIDAÇÃO - EMPRESA CAPTAÇÃO FATURA

03294  - 00073 - 6.0    - 00028  - ENCERRAMENTO DE CUSTO

03558  - 00074 - 7.0    - 00001  - LIQUIDAÇÃO DE FATURAS - SALDO A LIQUIDAR

03849  - 00075 - 7.0    - 00001  - LIQUIDAÇÃO EM ANDAMENTO - VALOR PARCIAL

03864  - 00076 - 7.0    - 00001  - LIQUIDAÇÃO EM ANDAMENTO - EXIT LIQ011 - NOME FUNCIONALIDADE

03888  - 00077 - 7.0    - 00001  - LIQUIDAÇÃO - NÃO CONTABILIZAR QUANDO 209 TIVER SALDO IGUAL A ZERO

03920  - 00078 - 7.0    - 00002  - LIQUIDAÇÃO EM ANDAMENTO - EXIT LIQ001 E LIQ002

04221  - 00079 - 7.0    - 00002  - ENVIAR O CAMPO BUPLA PARA A TELA.

04264  - 00080 - 7.0    - 00002  - VINCULAÇÃO - ATUALIZAÇÃO BELNR2 TABELA /PWS/ZYCBT002

04546  - 00081 - 7.0    - 00002  - EXPORTAÇÃO AGRUPAMENTO DE FATURAS

04729  - 00082 - 7.0    - 00003  - VINCULAÇÃO DP EM LONGO PRAZO(LP) - PERMITIR SEMPRE VINCULAR

04736  - 00083 - 7.0    - 00003  - VINCULAÇÃO - VINCULAR TOTAL

04964  - 00084 - 7.0    - 00003  - LIQUIDAÇÃO DE FATURAS - CRIAÇÃO DO PONTO DE EXIT LIQ026

05904  - 00085 - 7.0    - 00004  - LIQUIDAÇÃO - PONTO DE EXIT LIQ005(DISPONIBILIZAR NOVA TABELA)

05909  - 00086 - 7.0    - 00004  - VINCULAÇÕES DE FATURAS AOS CONTRATOS

06150  - 00087 - 7.0    - 00004  - HISTÓRICO CONTÁBIL - QUEBRA POR FATURA, PARCELA, DIVISÃO

06481  - 00088 - 7.0    - 00005  - VINCULAÇÃO - EXIT VNC030

06740  - 00089 - 7.0    - 00005  - VINCULAÇÃO - CONTABILIZAÇÃO COM JPY

06815  - 00090 - 7.0    - 00006  - VINCULAÇÃO - DATA DE PAGAMENTO NO EXTERIOR

06906  - 00091 - 7.0    - 00006  - VINCULAÇÃO - TAXAS /PWS/ZYGLT007

07924  - 00092 - 7.0    - 00008  - HISTÓRICO CONTÁBIL - DRILL-DOWN - ANO CONTÁBIL INCORRETO

08865  - 00093 - 7.0    - 00010  - HISTÓRICO CONTÁBIL - NÃO EXIBE DOCUMENTOS QUE ESTÃO NA /PWS/ZYCBT

09036  - 00094 - 8.0    - 00001  - LIQUIDAÇÃO - PONTO DE EXIT LIQ032 PARA CHAMAR OUTRO PROGRAMA

09170  - 00095 - 8.0    - 00001  - VINCULAÇÃO - CAPTAÇÃO TIPO DOW PAYMENT, NO MATCH CODE ABRE TODAS

09244  - 00096 - 8.0    - 00001  - VINCULAÇÃO DE CONTRATO DE EXPORTAÇÃO DE PRÉ PAGAMENTO

09266  - 00097 - 8.0    - 00001  - RELATÓRIO CÂMBIOS FECHADOS

09336  - 00098 - 8.0    - 00001  - VINCULAÇÃO - RECEBIMENTO/PDD - RECUP. DIVISAS - HIST. CONTÁBIL -

09426  - 00099 - 8.0    - 00001  - ERRO VINCULAÇÃO/LIQUIDAÇÃO DE UM MESMO CONTRATO/FATURA EM DATAS D

10053  - 00100 - 8.0    - 00003  - VINCULAÇÃO-TEXTO DEDUZ JUROS INCORRETO NA TELA DE CONTRATOS DIF.

10202  - 00101 - 8.0    - 00003  - VINCULAÇÃO - PREENCHIMENTO DO CAMPO SOCIEDADE PARCEIRA.

10264  - 00102 - 8.0    - 00003  - VINCULAÇÃO EXPORTAÇÃO, MENSAGEM, HOMOLOGAÇÃO

10326  - 00103 - 8.0    - 00004  - VINCULAÇÃO AJUSTE PARA CÁLCULO DE VALOR VINCULAR

10331  - 00104 - 8.0    - 00004  - CODE INSPECTOR - PW.CE - CAMBIO

10380  - 00105 - 8.0    - 00004  - RELATORIO CAMBIOS FECHADOS, CONTRATOS PENDENTES, LIQUIDADOS, TODO

10522  - 00106 - 8.0    - 00004  - VINCULAÇÃO DE CONTRATOS DE CAPTAÇÃO DE DP, ORDEM DE VENDA

10534  - 00107 - 8.0    - 00004  - VINCULAÇÃO - ERRO DUPLO CLIQUE PARA VINCULAR SALDO TOTAL-DUPLICA

10724  - 00108 - 8.0    - 00005  - HISTÓRICO CONTÁBIL - JUROS

10739  - 00109 - 8.0    - 00005  - LIQUIDAÇÃO - CAMPO LOCAL DE NEGOCIO NO BI INCORRETO

10833  - 00110 - 8.0    - 00006  - RELATÓRIO DE CONTRATOS - ERRO SALDO A PAGAR

----------------------------------------------------------------------------------------------------

VINCULAÇÃO/LIQUIDAÇÃO ARBITRAGEM-MOEDA SEM CASAS DECIMAIS, CENTAVOS

----------------------------------------------------------------------------------------------------

Palavras Chave:

VINCULAÇÃO/LIQUIDAÇÃO ARBITRAGEM-MOEDA SEM CASAS DECIMAIS, CENTAVOS

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

DYNP /PWS/SAPMZYCB004                        0102

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB004I01

REPS /PWS/MZYCB004O01

REPS /PWS/MZYCB004TOP

REPS /PWS/MZYCB004X01

REPS /PWS/MZYCB009F03

REPS /PWS/MZYCB009F04

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009F08

REPS /PWS/MZYCB009F10

REPS /PWS/MZYCB009I01

REPS /PWS/MZYCB031F01

REPS /PWS/ZYCBR010

REPS /PWS/ZYCBR047

REPS /PWS/ZYCBR059

TABD /PWS/ZYCBE005

TABD /PWS/ZYCBE006

TABD /PWS/ZYCBT005

TABD /PWS/ZYCBT006

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DYNP /PWS/SAPMZYCB004                        0102

 

 

Solicitar arquivo para upload da tela - Equipe Produto pw.CE Câmbio - 5504 0170

 

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

       gsberf   TYPE /pws/zycbt030-gsberf,

       pendcomm TYPE /pws/zycbt030-pendcomm,

     END OF t_pendcomm,

     t_itab_pendcomm TYPE SORTED TABLE OF t_pendcomm

       WITH UNIQUE KEY nrinvoic nrparcf gsberf.

  DATA:

    itab_pendcomm  TYPE t_itab_pendcomm,

    v_bukrs_fat LIKE /pws/zycbt017-bukrs.

  REFRESH: itab_zycbt005.

  CLEAR:  /pws/zycbe005, /pws/zycbe006.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

  CLEAR:   itab_paridade.

  REFRESH: itab_paridade.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

  clear: itab_paridade,   itab_paridade_ant.

  refresh: itab_paridade, itab_paridade_ant.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycbt007 INTO /pws/zycbt007

                  WHERE bukrs = /pws/zycbe001-bukrs.

  wa_zycbt007 = /pws/zycbt007.

  SELECT SINGLE * FROM /pws/zycbt089 INTO /pws/zycbt089

                  WHERE bukrs = /pws/zycbe001-bukrs.

  SELECT SINGLE * FROM /pws/zyglt009 INTO /pws/zyglt009

                  WHERE bukrs = /pws/zycbe001-bukrs.

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

  select * from tcurx

           into table itab_tcurx.

  select * from /pws/zycbt006

           into table itab_zycbt006_pagos

           where nrseqc = v_nrseqc.                     "#EC CI_NOFIRST

* << Fim da inclusão

  IF v_trans IS INITIAL.

    IF v_dtvencto IS INITIAL AND

       v_nrinvoic IS INITIAL.

      SELECT *

        FROM /pws/zycbt005

        INTO TABLE itab_zycbt005

       WHERE nrseqc   EQ v_nrseqc

         AND tpdesp   EQ ' '

         AND dtvincul EQ v_dtvincul

         AND slpagar GT 0.

...

 

...

      ENDIF.

    ENDIF.

    IF NOT itab_zycbt005[] IS INITIAL.

      SELECT nrinvoic nrparcf gsberf pendcomm

        FROM /pws/zycbt030 INTO TABLE itab_pendcomm

        FOR ALL ENTRIES IN itab_zycbt005

        WHERE nrinvoic = itab_zycbt005-nrinvoic

          AND nrparcf  = itab_zycbt005-nrparcf

          AND gsberf   = itab_zycbt005-gsberf

          AND pendcomm = 'X'.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

    ENDIF.

    IF NOT itab_zycbt005[] IS INITIAL.

      SELECT * FROM /pws/zycbt006

        INTO TABLE itab_zycbt006

        FOR ALL ENTRIES IN itab_zycbt005

       WHERE nrinvoic = itab_zycbt005-nrinvoic

         AND nrparcf  = itab_zycbt005-nrparcf

         AND gsberf   = itab_zycbt005-gsberf.

* << Fim da exclusão

    ENDIF.

    LOOP AT itab_zycbt005.

      READ TABLE itab_pendcomm

        WITH KEY

          nrinvoic = itab_zycbt005-nrinvoic

          nrparcf  = itab_zycbt005-nrparcf

          gsberf   = itab_zycbt005-gsberf

          pendcomm = 'X'

        TRANSPORTING NO FIELDS.

      IF sy-subrc EQ 0.

        MESSAGE i061 WITH text-054

                          itab_zycbt005-nrinvoic

                          text-231

                          text-217.

        DELETE itab_zycbt005.

        CONTINUE.

      ENDIF.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

      v_total_liq = 0.

      READ TABLE itab_zycbt006

        WITH KEY nrinvoic = itab_zycbt005-nrinvoic

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

      itab_zycbt005-vlme  = itab_zycbt005-slpagar.

      if itab_zycbt005-waers ne itab_zycbt005-waers_c.

        read table itab_zycbt006_pagos with key

                                      nrinvoic = itab_zycbt005-nrinvoic

* << Fim da inclusão

                 nrparcf  = itab_zycbt005-nrparcf

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

                 gsberf   = itab_zycbt005-gsberf.

      IF sy-subrc EQ 0.

        LOOP AT itab_zycbt006 WHERE  nrinvoic = itab_zycbt005-nrinvoic

                                AND  nrparcf  = itab_zycbt005-nrparcf

                                AND  gsberf   = itab_zycbt005-gsberf.

          v_total_liq = v_total_liq + itab_zycbt006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

                                      gsberf   = itab_zycbt005-gsberf

                                      dtvincul = itab_zycbt005-dtvincul.

        if sy-subrc = 0.

          itab_zycbt005-vlme = itab_zycbt006_pagos-vlme.

          perform determina_fator using v_parafator

                                        v_defator.

          clear v_vlme.

          loop at itab_zycbt006_pagos

                              where nrinvoic = itab_zycbt005-nrinvoic

                              and nrparcf  = itab_zycbt005-nrparcf

                              and gsberf   = itab_zycbt005-gsberf

                              and dtvincul = itab_zycbt005-dtvincul.

            v_vlme = v_vlme + itab_zycbt006_pagos-vlme.

* << Fim da inclusão

        ENDLOOP.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

        itab_zycbt005-vlme  = itab_zycbt005-vlme_p - v_total_liq.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

          v_vlme = v_vlme + itab_zycbt005-vlme.

          if itab_zycbt005-vlme_p ne v_vlme.

            v_vlme = itab_zycbt005-vlme_p - v_vlme.

            itab_zycbt005-vlme = itab_zycbt005-vlme + v_vlme.

          endif.

* << Fim da inclusão

      ELSE.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

        itab_zycbt005-vlme  = itab_zycbt005-vlme_p.

      ENDIF.

      IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

        SELECT *

          FROM tcurx

          UP TO 1 ROWS

          WHERE currkey EQ itab_zycbt005-waers_c.

        ENDSELECT.

        IF sy-subrc <> 0.

          tcurx-currdec = 2.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

          itab_zycbt005-vlme = itab_zycbt005-vlme_p.

* << Fim da inclusão

        ENDIF.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

        itab_zycbt005-vlme = itab_zycbt005-vlme  /

                             ( 10 ** ( tcurx-currdec - 2 ) ).

* << Fim da exclusão

      ENDIF.

      MODIFY itab_zycbt005.

      MOVE-CORRESPONDING itab_zycbt005 TO itab_paridade.

      MOVE itab_zycbt005-parid TO itab_paridade-v_parid.

      MOVE itab_zycbt005-waers_c TO itab_paridade-v_waers_c.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

      MOVE itab_zycbt005-slpagar TO itab_paridade-v_vlme_c.

* << Fim da exclusão

      APPEND itab_paridade.

    ENDLOOP.

    CLEAR: itab_zycbt005-status.

    MODIFY itab_zycbt005 TRANSPORTING status

                         WHERE nrseqc = v_nrseqc.

    LOOP AT itab_paridade.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

      SELECT *

        FROM tcurx

        UP TO 1 ROWS

        WHERE currkey EQ itab_paridade-waers.

      ENDSELECT.

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

      read table itab_zycbt006_pagos with key

                                     nrinvoic = itab_paridade-nrinvoic

                                     nrparcf  = itab_paridade-nrparcf

                                     gsberf   = itab_paridade-gsberf

                                     dtvincul = itab_paridade-dtvincul.

      if sy-subrc = 0.

        perform determina_fator using v_parafator

                                      v_defator.

        itab_paridade-v_vlme_c = itab_paridade-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

        read table itab_tcurx with key

                         currkey = itab_paridade-waers_c into tcurx.

        if sy-subrc = 0 and tcurx-currdec = 0.

          read table itab_tcurx with key

                           currkey = itab_paridade-waers into tcurx.

          if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

            itab_paridade-v_vlme_c = itab_paridade-v_vlme_c / 100.

          endif.

        endif.

        read table itab_zycbt005 with key

                               nrinvoic = itab_paridade-nrinvoic

                               nrparcf  = itab_paridade-nrparcf

                               gsberf   = itab_paridade-gsberf.

        if sy-subrc = 0 and

           ( itab_paridade-v_vlme_c > itab_zycbt005-slpagar and

             itab_zycbt005-slpagar  > 0 ) or

            itab_paridade-v_vlme_c < itab_zycbt005-slpagar.

          itab_paridade-v_vlme_c = itab_zycbt005-slpagar.

        endif.

      else.

        read table itab_zycbt005 with key

                               nrinvoic = itab_paridade-nrinvoic

                               nrparcf  = itab_paridade-nrparcf

                               gsberf   = itab_paridade-gsberf.

        if sy-subrc = 0.

          itab_paridade-v_vlme_c = itab_zycbt005-vlvinc.

        endif.

* << Fim da inclusão

      ENDIF.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

      itab_paridade-v_vlme_c = itab_paridade-v_vlme_c  /

                           ( 10 ** ( tcurx-currdec - 2 ) ).

      PERFORM verifica_casas_decimais

        USING

          itab_paridade-v_vlme_c

          itab_paridade-v_waers_c

          itab_paridade-waers

        CHANGING itab_paridade-v_vlme_c.

* << Fim da exclusão

      MODIFY itab_paridade.

    ENDLOOP.

  ELSE.

    SELECT a~nrseqc a~tpdesp a~nrparc a~dtincl a~nrinvoic

           a~nrparcf

           a~gsberf a~dtvincul a~dtvencto a~nrcontr a~tpcontr

           a~bconegoc a~bcofinan a~bukrs a~gsber a~kunnr a~waers

           b~vlvinc b~slpagar a~txtinf a~ftxt b~belnr a~dtpagext

           a~status a~kostl a~prctr a~fipos

           a~vlme a~dtpagto b~j_1bbranch b~werks

...

 

...

        ENDIF.

      ENDIF.

      MODIFY itab_zycbt005.

      MOVE-CORRESPONDING itab_zycbt005 TO itab_paridade.

      MOVE itab_zycbt005-parid TO itab_paridade-v_parid.

      MOVE itab_zycbt005-waers_c TO itab_paridade-v_waers_c.

      APPEND itab_paridade.

    ENDLOOP.

    MOVE itab_zycbt005[] TO itab_zycbt005_ant[].

    LOOP AT itab_paridade.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

      itab_paridade-v_vlme_c =

              itab_paridade-vlme * itab_paridade-v_parid.

      PERFORM verifica_casas_decimais

        USING

          itab_paridade-v_vlme_c

          itab_paridade-v_waers_c

          itab_paridade-waers

        CHANGING itab_paridade-v_vlme_c.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

      read table itab_zycbt005 with key

                                   nrinvoic = itab_paridade-nrinvoic

                                   nrparcf  = itab_paridade-nrparcf

                                   gsberf   = itab_paridade-gsberf.

      if sy-subrc = 0 and itab_zycbt005-vlme_p = itab_paridade-vlme.

        itab_paridade-v_vlme_c = itab_zycbt005-vlvinc.

      elseif sy-subrc = 0.

        perform determina_fator using v_parafator

                                      v_defator.

        read table itab_zycbt006_pagos with key

                                       nrinvoic = itab_zycbt005-nrinvoic

                                       nrparcf  = itab_zycbt005-nrparcf

                                       gsberf   = itab_zycbt005-gsberf

                                       dtvincul = itab_zycbt005-dtvincul

                                       dtpagto  = v_dtpagto

                                       dtpagext = v_dtpagext.

        if sy-subrc = 0.

          itab_paridade-v_vlme_c = itab_zycbt006_pagos-vlme_c.

        else.

          itab_paridade-v_vlme_c = itab_paridade-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

        endif.

        if itab_zycbt005-slpagar is initial and

           itab_zycbt006_pagos-vlme_c is initial.

          clear v_vlme.

          sort itab_zycbt006_pagos by dtpagto.

          loop at itab_zycbt006_pagos

                                where nrinvoic = itab_zycbt005-nrinvoic

                                  and nrparcf  = itab_zycbt005-nrparcf

                                  and gsberf   = itab_zycbt005-gsberf

                                  and dtvincul = itab_zycbt005-dtvincul.

            .

            v_vlme = v_vlme + ( itab_zycbt006_pagos-vlme *

              ( ( itab_paridade-v_parid / v_defator ) * v_parafator ) ).

          endloop.

          if itab_zycbt006_pagos-dtpagto = v_dtpagto and

             v_vlme ne itab_zycbt005-vlvinc.

            v_vlme = v_vlme - itab_zycbt005-vlvinc.

            itab_paridade-v_vlme_c = itab_paridade-v_vlme_c - v_vlme.

          endif.

        endif.

      endif.

* << Fim da inclusão

      MODIFY itab_paridade.

    ENDLOOP.

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

    itab_paridade_ant[] = itab_paridade[].

* << Fim da inclusão

  ENDIF.

  SELECT * FROM /pws/zycbt001

         INTO TABLE itab_zycbt001

         WHERE nrseqc = v_nrseqc.

  IF NOT itab_zycbt001[] IS INITIAL.

    SELECT *

           FROM /pws/zycbt074

           INTO TABLE itab_zycbt074

           FOR ALL ENTRIES IN itab_zycbt001

           WHERE nrseqc = itab_zycbt001-nrseqc.

  ENDIF.

  CLEAR v_msg_1.

  LOOP AT itab_zycbt005.

    MOVE-CORRESPONDING itab_zycbt005 TO itab_zycbt005_s.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

    itab_zycbt005_s-slliquid = itab_zycbt005-slpagar.

* << Fim da exclusão

    APPEND itab_zycbt005_s.

    PERFORM lock_record.

  ENDLOOP.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

  PERFORM calcula_valor_liquidado.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

  if sy-subrc eq 0.

* << Fim da inclusão

  PERFORM carrega_vljur_vlcomis.

* >> Início da exclusão: FORM CARREGA_ITAB_ZYCBT005

  IF v_trans IS INITIAL.

    CLEAR: itab_zycbt005-slpagar.

    MODIFY itab_zycbt005 TRANSPORTING slpagar

                         WHERE nrseqc = v_nrseqc.

  ENDIF.

  IF sy-subrc EQ 0.

* << Fim da exclusão

    CLEAR itab_zycbt005.

    CLEAR: v_fipos, v_dtpagto, v_ftxt,

           v_txtinf.

    READ TABLE itab_zycbt005 INDEX 1.

    IF NOT itab_zycbt005-bukrs_f IS INITIAL

       AND sy-tcode EQ c_transacao_c.

      MESSAGE i061 WITH text-135 text-136 text-137.

      EXIT.

    ELSEIF NOT itab_zycbt005-bukrs_f IS INITIAL

      AND ( sy-tcode EQ c_transacao_a OR

...

 

...

          v_dt_pgt = ' '.

          v_dtliq = 'X'.

          /pws/zycbt006-dtcalcjur = ' '.

        ELSEIF /pws/zycbt006-dtcalcjur = ' '.

          v_dt_pgt = ' '.

          v_dtliq = ' '.

          /pws/zycbt006-dtcalcjur = ' '.

        ENDIF.

      ENDIF.

    ENDIF.

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

    perform seleciona_dados.

* << Fim da inclusão

    CALL SCREEN '0100'.

  ELSE.

    IF v_trans IS INITIAL.

      MESSAGE i011(pc) WITH text-024.

    ELSE.

      MESSAGE i011(pc) WITH text-027.

    ENDIF.

    EXIT.

  ENDIF.

  IF NOT itab_zycbt005[] IS INITIAL.

...

 

...

    ELSE.

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

                                          /pws/zycbe005-bukrs

                                          ID 'ACTVT' FIELD '03'.

      IF sy-subrc NE 0.

        MESSAGE e083(f5) WITH /pws/zycbe005-bukrs.

      ENDIF.

    ENDIF.

  ENDIF.

  v_dt_estorno = v_dtpagto.

* >> Início da inclusão: FORM CARREGA_ITAB_ZYCBT005

  perform seleciona_dados.

* << Fim da inclusão

  CALL SCREEN '0100'.

ENDFORM.

FORM carrega_zycbe006.

  IF sy-tcode EQ c_transacao_c.

    IF wa_zycbt007-fltxt = 'X'.

      v_ftxt = 'X'.

    ENDIF.

  ENDIF.

  MOVE:  itab_zycbt005-vljur_acc TO v_vljur_acc,

         itab_zycbt005-vljur_ace TO v_vljur_ace.

...

 

...

    v_parid   = itab_paridade-v_parid.

    v_waers_c = itab_paridade-v_waers_c.

    v_vlme_c = itab_paridade-v_vlme_c.

    MODIFY itab_paridade TRANSPORTING v_vlme_c

           WHERE nrinvoic = itab_zycbt005-nrinvoic AND

                 dtvincul = itab_zycbt005-dtvincul .

  ENDIF.

ENDFORM.

FORM altera_itab_zycbt005.

  DATA: v_vlmedif LIKE /pws/zycbt006-vlme.

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

  data: v_saldo_fatura type /pws/zycbe006-vlme.

* << Fim da inclusão

  IF v_status_s EQ 0.

    MODIFY itab_zycbt005

    INDEX tc_faturas-current_line TRANSPORTING mark.

    EXIT.

  ENDIF.

  IF NOT /pws/zycbe006-vlme IS INITIAL.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

    CLEAR: itab_zycbt005_ant, itab_zycbt005_s.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

    v_saldo_fatura = itab_zycbt005-vlme_p - /pws/zycbe006-vlme.

    if v_saldo_fatura => 0.

* << Fim da inclusão

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

    READ TABLE itab_zycbt005_s

      WITH KEY nrinvoic = /pws/zycbe006-nrinvoic

               nrparcf  = /pws/zycbe006-nrparcf

               gsberf   = /pws/zycbe006-gsberf.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

      loop at itab_zycbt006_pagos

                              where nrinvoic eq itab_zycbt005-nrinvoic

                                and nrparcf  eq itab_zycbt005-nrparcf

                                and gsberf   eq itab_zycbt005-gsberf

                                and dtvincul eq itab_zycbt005-dtvincul

* << Fim da inclusão

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

    READ TABLE itab_zycbt005_ant

      WITH KEY nrinvoic = /pws/zycbe006-nrinvoic

               nrparcf  = /pws/zycbe006-nrparcf

               gsberf   = /pws/zycbe006-gsberf.

    IF sy-subrc EQ 0.

      v_vlmedif = /pws/zycbe006-vlme - itab_zycbt005_ant-vlme.

      IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

        v_vlmedif = v_vlmedif * itab_zycbt005-parid.

      ENDIF.

    ELSE.

      v_vlmedif = /pws/zycbe006-vlme.

      IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

        v_vlmedif = v_vlmedif * itab_zycbt005-parid.

      ENDIF.

    ENDIF.

    IF v_trans = 2.

      v_total_liq = 0.

      LOOP AT itab_zycbt006

                  WHERE nrinvoic = /pws/zycbe006-nrinvoic

                    AND nrparcf  = /pws/zycbe006-nrparcf

                    AND gsberf   = /pws/zycbe006-gsberf.

        IF itab_zycbt006-dtvincul  = v_dtvincul AND

           itab_zycbt006-dtpagto   = v_dtpagto  AND

           itab_zycbt006-dtpagext  = v_dtpagext.

        ELSE.

          v_total_liq = v_total_liq + itab_zycbt006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

                                and dtpagext ne /pws/zycbe006-dtpagext

                                and dtpagto  ne v_dtpagto.

        v_saldo_fatura = v_saldo_fatura - itab_zycbt006_pagos-vlme.

      endloop.

* << Fim da inclusão

        ENDIF.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

      ENDLOOP.

      v_total_liq = v_total_liq + /pws/zycbe006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

    if v_saldo_fatura lt 0.

* << Fim da inclusão

      IF v_vinculacao IS INITIAL.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

        IF v_total_liq > itab_zycbt005-vlme_p.

          MOVE /pws/zycbe006-vlme       TO v_aux_1.

          MOVE itab_zycbt005_s-slliquid TO v_aux_2.

          CONDENSE: v_aux_1 NO-GAPS,

                    v_aux_2 NO-GAPS.

          CONCATENATE: text-025 v_aux_1 INTO v_msg_1,

                       'é superior ao saldo     => ' v_aux_2

                                        INTO v_msg_2.

          PERFORM msg_valor_invalido USING v_msg_1 v_msg_2.

          EXIT.

        ENDIF.

      ENDIF.

    ENDIF.

    IF /pws/zycbe006-vlme = itab_zycbt005_s-vlme.

      v_vlmedif = itab_zycbt005_s-slpagar.

    ENDIF.

    IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

      itab_zycbt005-slpagar =

        itab_zycbt005_s-slliquid - v_vlmedif.

    ELSE.

      itab_zycbt005-slpagar =

        itab_zycbt005_s-slpagar - v_vlmedif.

    ENDIF.

    IF itab_zycbt005-slpagar LT 0.

      IF sy-ucomm = 'DELE'.

        MODIFY itab_zycbt005

        INDEX tc_faturas-current_line TRANSPORTING mark.

        EXIT.

      ENDIF.

* << Fim da exclusão

      CLEAR: v_aux_1, v_aux_2, v_msg_1, v_msg_2.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

      IF itab_zycbt005-waers EQ itab_zycbt005-waers_c.

        MOVE /pws/zycbe006-vlme         TO v_aux_1.

        MOVE itab_zycbt005_s-slpagar TO v_aux_2.

        CONDENSE: v_aux_1 NO-GAPS,

                  v_aux_2 NO-GAPS.

        CONCATENATE: text-025 v_aux_1 INTO v_msg_1,

                     'é superior ao saldo     => ' v_aux_2

                                      INTO v_msg_2.

        PERFORM msg_valor_invalido USING v_msg_1 v_msg_2.

        EXIT.

      ELSEIF v_vlmedif < /pws/zycbe006-vlme..

* << Fim da exclusão

        MOVE /pws/zycbe006-vlme         TO v_aux_1.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

        MOVE v_vlmedif                  TO v_aux_2.

* << Fim da exclusão

        CONDENSE: v_aux_1 NO-GAPS,

                  v_aux_2 NO-GAPS.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

        CONCATENATE: text-025 v_aux_1 INTO v_msg_1,

                     'é superior ao saldo     => ' v_aux_2

                                      INTO v_msg_2.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

        concatenate: text-025 v_aux_1 into v_msg_1.

        v_msg_2 = 'é superior ao saldo.'.

* << Fim da inclusão

        PERFORM msg_valor_invalido USING v_msg_1 v_msg_2.

        EXIT.

      ENDIF.

    ELSE.

      v_ind_mudanca = 'X'.

      itab_zycbt005-vlme        = /pws/zycbe006-vlme.

      IF itab_zycbt005-waers NE /pws/zycbt001-waers.

        PERFORM calc_paridade.

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

      else.

        clear itab_paridade.

        read table itab_paridade

             with key nrseqc    = itab_zycbt005-nrseqc

                       tpdesp   = itab_zycbt005-tpdesp

                       nrparc   = itab_zycbt005-nrparc

                       dtincl   = itab_zycbt005-dtincl

                       nrinvoic = itab_zycbt005-nrinvoic

                       gsberf   = itab_zycbt005-gsberf

                       dtvincul = itab_zycbt005-dtvincul

                       dtvencto = itab_zycbt005-dtvencto.

        if sy-subrc eq 0.

          itab_paridade-v_vlme_c = itab_zycbt005-vlme.

          modify itab_paridade index sy-tabix.

* << Fim da inclusão

      ENDIF.

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

      endif.

* << Fim da inclusão

      itab_zycbt005-txjtotal2   = /pws/zycbe006-txjtotal.

      MOVE:  /pws/zycbe006-vljur_acc TO itab_zycbt005-vljur_acc,

             /pws/zycbe006-vljur_ace TO itab_zycbt005-vljur_ace.

      PERFORM move_zycbt005.

      MODIFY itab_zycbt005

      INDEX tc_faturas-current_line TRANSPORTING dtpagto vlme slpagar

...

 

...

    WHEN 'D'.

      v_dtaux = /pws/zycbt001-dtdesem.

    WHEN 'O'.

      v_dtaux = /pws/zycbt001-dtcontr.

    WHEN 'C' OR ' '.

      v_dtaux = /pws/zycbt001-dtcred.

  ENDCASE.

  IF v_dtpagto LT v_dtaux.

    MESSAGE i011(pc) WITH text-026.

    v_dtpagto = sy-datum.

* >> Início da inclusão: FORM VERIFICA_DTPAGTO

    perform seleciona_dados.

* << Fim da inclusão

    CALL SCREEN '0100'.

  ENDIF.

  IF v_dtpagto > /pws/zycbt001-dtliquid.

    IF /pws/zycbe001-tpcontr(1) = 'S' OR

       /pws/zycbe001-tpcontr(1) = 'P'.

      SELECT SINGLE * FROM /pws/zycbt003

        WHERE nrseqc = /pws/zycbt001-nrseqc AND

              tppror = 'P' AND

              dtpror >= v_dtpagto.

      IF sy-subrc NE 0.

...

 

...

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F28

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_A

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F22

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

          SELECT SINGLE dtincl FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

* >> Início da exclusão: FORM FILL_DATE6_F30

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE6_F30

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

* << Fim da inclusão

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

...

 

...

  ENDIF.

  PERFORM clear_date_batch.

  CLEAR itab_zycbt036.

  REFRESH itab_zycbt036.

ENDFORM.

FORM atualiza_tabelas_transparentes.

  DATA: v_subrc TYPE c,

        v_vlme LIKE /pws/zycbt006-vlme.

  DATA: wa_zycbt006_sbu LIKE /pws/zycbt006.

  CHECK v_cta_bloq NE 'S'.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSPARENTES

  SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSPARENTES

  read table itab_tcurx with key

                             currkey = itab_zycbt005-waers into tcurx.

* << Fim da inclusão

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  itab_zycbt005-vljur_acc = itab_zycbt005-vljur_acc *

                            ( 10 ** ( tcurx-currdec - 2 ) ).

  itab_zycbt005-vljur_ace = itab_zycbt005-vljur_ace *

                            ( 10 ** ( tcurx-currdec - 2 ) ).

  itab_zycbt005-status = 'C'.

  MODIFY itab_zycbt005 TRANSPORTING status

                       WHERE nrseqc = /pws/zycbe005-nrseqc.

...

 

...

            ELSE.

              itab_zycet010-belnr   = itab_zycbt032-belnr.

              itab_zycet010-status  = space.

              itab_zycet010-dtpagto = '00000000'.

              MODIFY itab_zycet010 TRANSPORTING belnr status dtpagto

                       WHERE nrseq    = itab_zycet010-nrseq

                         AND lifnr    = itab_zycet010-lifnr

                         AND dtvencto = itab_zycet010-dtvencto.

            ENDIF.

            MODIFY /pws/zycet010 FROM itab_zycet010.

* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO

            if v_vinculacao is initial.

* << Fim da inclusão

            COMMIT WORK.

* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO

            endif.

* << Fim da inclusão

          ELSE.

            IF itab_zycbt006-v_status <> 'E'.

           LOOP AT itab_zycet013 WHERE nrseq EQ itab_zycbt006-nrinvoic .

                itab_zycet013-status  = 'C'.

                itab_zycet013-belnr_c = itab_zycbt032-belnr.

                itab_zycet013-dtpagto = v_dtpagto.

...

 

...

                MODIFY itab_zycet013 TRANSPORTING status

                                                  belnr

                                                  dtpagto

                         WHERE nrseq    = itab_zycet013-nrseq

                           AND lifnr    = itab_zycet013-lifnr

                           AND gsber    = itab_zycet013-gsber

                           AND prctr    = itab_zycet013-prctr.

              ENDLOOP.

            ENDIF.

            MODIFY /pws/zycet013 FROM itab_zycet013.

* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO

            if v_vinculacao is initial.

* << Fim da inclusão

            COMMIT WORK.

          ENDIF.

* >> Início da inclusão: FORM FILL_DATE_F30_COMISSAO

          endif.

* << Fim da inclusão

          MOVE itab_zycbt032 TO itab_zycbt032a.

          MOVE itab_zycbe033-budat TO itab_zycbt032a-budat.

          APPEND itab_zycbt032a.

          v_status_f30 = 'S'.

          IF v_vinculacao IS INITIAL.

...

 

...

  READ TABLE itab_zycbt030 WITH KEY

             nrinvoic = itab_aux-nrinvoic

             nrparcf  = itab_aux-nrparcf

             vbeln    = itab_aux-vbeln

             gsberf   = itab_aux-gsberf.

  READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                                    nrparcf  = itab_zycbt006-nrparcf

                                    gsberf   = itab_zycbt006-gsberf.

  LOOP AT itab_zycbt006_pagos WHERE nrinvoic = itab_zycbt006-nrinvoic

                               AND   nrparcf  = itab_zycbt006-nrparcf

* >> Início da exclusão: FORM VALOR_BAIXAR_COMISSAO

                               AND  gsberf   = itab_zycbt006-gsberf.

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_BAIXAR_COMISSAO

                               and  gsberf   = itab_zycbt006-gsberf

                               and  dtvincul = itab_zycbt006-dtvincul.

* << Fim da inclusão

    v_some = v_some + itab_zycbt006_pagos-vlme.

  ENDLOOP.

  v_saliq = itab_zycbt017-vlavinc - v_some - itab_zycbt006-v_vldif.

  IF v_saliq = 0.

    IF itab_aux-valor = 0.

      v_gjahr = itab_zycbt030-budat(4).

      CLEAR v_year.

      CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

           EXPORTING

                v_bukrs                = itab_zycbt005-bukrs

...

 

...

      ENDIF.

    ELSE.

      itab_zycbe033-wrbtr  = itab_aux-valor.

    ENDIF.

  ELSE.

    itab_zycbe033-wrbtr  = itab_aux-valor.

  ENDIF.

ENDFORM.

FORM seleciona_dados.

  IF NOT itab_zycbt006[] IS INITIAL.

* >> Início da exclusão: FORM SELECIONA_DADOS

    SELECT * FROM /pws/zycbt006

     INTO TABLE itab_zycbt006_pagos

     FOR ALL ENTRIES IN itab_zycbt006

     WHERE nrinvoic = itab_zycbt006-nrinvoic AND

           nrparcf  = itab_zycbt006-nrparcf  AND

           gsberf   = itab_zycbt006-gsberf.             "#EC CI_NOFIRST

* << Fim da exclusão

    SELECT * FROM /pws/zycbt017

     INTO TABLE itab_zycbt017

     FOR ALL ENTRIES IN itab_zycbt006

     WHERE nrinvoic = itab_zycbt006-nrinvoic AND

           nrparcf  = itab_zycbt006-nrparcf  AND

           gsberf   = itab_zycbt006-gsberf.

    SELECT * FROM /pws/zycbt069

     INTO TABLE itab_zycbt069

     FOR ALL ENTRIES IN itab_zycbt006

     WHERE nrinvoic = itab_zycbt006-nrinvoic

...

 

...

FORM valor_baixar_f28.

  CLEAR: v_vlcomis, v_saliq, v_some.

  READ TABLE itab_zycbt005 WITH KEY

             nrinvoic = itab_zycbt006-nrinvoic

             gsberf   = itab_zycbt006-gsberf.

  READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                                    nrparcf  = itab_zycbt006-nrparcf

                                    gsberf   = itab_zycbt006-gsberf.

  LOOP AT itab_zycbt006_pagos WHERE nrinvoic = itab_zycbt006-nrinvoic

                                AND nrparcf  = itab_zycbt006-nrparcf

* >> Início da exclusão: FORM VALOR_BAIXAR_F28

                               AND  gsberf   = itab_zycbt006-gsberf.

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_BAIXAR_F28

                               and  gsberf   = itab_zycbt006-gsberf

                               and  dtvincul = itab_zycbt006-dtvincul.

* << Fim da inclusão

    v_some = v_some + itab_zycbt006_pagos-vlme.

  ENDLOOP.

  IF /pws/zycet037-comis_provisao IS INITIAL OR

     /pws/zycet037-comis_provisao EQ 0.

    READ TABLE itab_zycet010 WITH KEY nrseq = itab_zycbt006-nrinvoic.

  ELSE.

    READ TABLE itab_zycet013 WITH KEY nrseq = itab_zycbt006-nrinvoic

                                      gsber = itab_zycbt006-gsberf.

  ENDIF.

  IF sy-subrc EQ 0.

...

 

...

  CLEAR: v_vlcomis, v_saliq, v_some.

  READ TABLE itab_zycbt005 WITH KEY

             nrinvoic = itab_zycbt006-nrinvoic

             nrparcf  = itab_zycbt006-nrparcf

             gsberf   = itab_zycbt006-gsberf.

  READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                                    nrparcf  = itab_zycbt006-nrparcf

                                    gsberf   = itab_zycbt006-gsberf.

  LOOP AT itab_zycbt006_pagos WHERE nrinvoic = itab_zycbt006-nrinvoic

                                AND nrparcf  = itab_zycbt006-nrparcf

* >> Início da exclusão: FORM VALOR_BAIXAR_F30A

                               AND  gsberf   = itab_zycbt006-gsberf.

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_BAIXAR_F30A

                               and  gsberf   = itab_zycbt006-gsberf

                               and  dtvincul = itab_zycbt006-dtvincul.

* << Fim da inclusão

    v_some = v_some + itab_zycbt006_pagos-vlme.

  ENDLOOP.

  IF /pws/zycet037-comis_provisao IS INITIAL OR

     /pws/zycet037-comis_provisao EQ 0.

    READ TABLE itab_zycet010 WITH KEY nrseq = itab_zycbt006-nrinvoic.

  ELSE.

    READ TABLE itab_zycet013 WITH KEY nrseq = itab_zycbt006-nrinvoic

                                      gsber = itab_zycbt006-gsberf.

  ENDIF.

  IF sy-subrc EQ 0.

...

 

...

                                              dtlanc

                                              status

                                              dtpagto

                                              belnr51

                                              belnr_p

                   WHERE nrseq    = itab_zycet010-nrseq AND

                         lifnr    = itab_zycet010-lifnr AND

                         dtvencto = itab_zycet010-dtvencto.

          ENDIF.

          MODIFY /pws/zycet010 FROM itab_zycet010.

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

          if v_vinculacao is initial.

* << Fim da inclusão

          COMMIT WORK.

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

          endif.

* << Fim da inclusão

        ELSE.

          IF itab_zycbt006-v_status <> 'E'.

           LOOP AT itab_zycet013 WHERE nrseq EQ itab_zycbt006-nrinvoic .

              itab_zycet013-belnr_cl = itab_zycbt032-belnr.

              MODIFY itab_zycet013 TRANSPORTING belnr_cl

                       WHERE nrseq   = itab_zycet013-nrseq

                         AND gsber   = itab_zycet013-gsber

                         AND lifnr   = itab_zycet013-lifnr

                         AND prctr   = itab_zycet013-prctr.

              MODIFY /pws/zycet013 FROM itab_zycet013 .

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

              if v_vinculacao is initial.

* << Fim da inclusão

              COMMIT WORK.

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

              endif.

* << Fim da inclusão

            ENDLOOP.

          ELSE.

           LOOP AT itab_zycet013 WHERE nrseq EQ itab_zycbt006-nrinvoic .

              itab_zycet013-belnr    = itab_zycbt032-belnr.

              itab_zycet013-dtlanc  = itab_zycbe033-budat.

              itab_zycet013-status   = space.

...

 

...

                                                dtlanc

                                                status

                                                dtpagto

                                                belnr_cl

                                                belnr_c

                       WHERE nrseq = itab_zycet013-nrseq

                         AND gsber = itab_zycet013-gsber

                         AND lifnr = itab_zycet013-lifnr

                         AND prctr = itab_zycet013-prctr.

              MODIFY /pws/zycet013 FROM itab_zycet013 .

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

              if v_vinculacao is initial.

* << Fim da inclusão

              COMMIT WORK.

* >> Início da inclusão: FORM EXECUTA_CLEARING_AGENTE

              endif.

* << Fim da inclusão

            ENDLOOP.

          ENDIF.

        ENDIF.

        IF itab_zycbt006-v_status <> 'E'.

          itab_zycbt006-vlcomis = /pws/zycbt017-vlcomis.

        ELSE.

...

 

...

        itab_zycbt030-budat  = itab_zycbe033-budat.

        itab_zycbt030-vlslliq = itab_zycbt030-vlslliq + v_vlme .

        MODIFY itab_zycbt030 TRANSPORTING belnr6 budat vlslliq

               WHERE nrinvoic = itab_aux-nrinvoic AND

                     nrparcf  = itab_aux-nrparcf  AND

                     vbeln    = itab_aux-vbeln    AND

                     gsberf   = itab_aux-gsberf.

        MODIFY itab_zycbt030 TRANSPORTING belnr6 budat

               WHERE belnr6 = v_belnr6.

        MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.

* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE

        if v_vinculacao is initial.

* << Fim da inclusão

        COMMIT WORK.

* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE

        endif.

* << Fim da inclusão

        IF /pws/zycet037-comis_provisao IS INITIAL OR

           /pws/zycet037-comis_provisao EQ 0.

          CLEAR :itab_zycet010-belnr_p .

          MODIFY itab_zycet010 TRANSPORTING  belnr_p

                   WHERE nrseq    = itab_zycet010-nrseq

                     AND lifnr    = itab_zycet010-lifnr

                     AND dtvencto = itab_zycet010-dtvencto.

          MODIFY /pws/zycet010 FROM itab_zycet010.

* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE

          if v_vinculacao is initial.

* << Fim da inclusão

          COMMIT WORK.

* >> Início da inclusão: FORM EXECUTA_CLEARING_CLIENTE

          endif.

* << Fim da inclusão

        ELSE.

          LOOP AT itab_zycet013 WHERE nrseq EQ itab_zycbt006-nrinvoic.

            CLEAR: itab_zycet013-belnr_c ,

                   itab_zycet013-belnr_cl .

            MODIFY itab_zycet013 TRANSPORTING belnr_c

                                              belnr_cl

...

 

...

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_B

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_ACE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

  SELECT SINGLE kursf FROM bkpf

               INTO itab_zycbe033-kursf

              WHERE belnr EQ itab_zycbt005-belnr

                AND bukrs EQ itab_zycbt006-bukrs

                AND gjahr EQ v_year.

  PERFORM verify_null_field USING itab_zycbe033-kursf

                                  'TXCAMB'

                                  text-051.

  PERFORM determina_fator USING v_parafator

                                v_defator.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  SELECT *

         UP TO 1 ROWS

         FROM tcurx

         WHERE currkey = itab_zycbt005-waers.

  ENDSELECT.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  READ TABLE itab_paridade

        WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                 gsberf   = itab_zycbt006-gsberf

                 nrparcf  = itab_zycbt006-nrparcf.

  IF sy-subrc EQ 0.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE6_F30_ACE

  read table itab_paridade with key nrinvoic = itab_zycbt005-nrinvoic

                                    nrparcf  = itab_zycbt005-nrparcf

                                    gsberf   = itab_zycbt005-gsberf.

  if sy-subrc = 0.

* << Fim da inclusão

    itab_zycbe033-wrbtr = itab_paridade-v_vlme_c.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  ELSE.

    itab_zycbe033-wrbtr = itab_zycbt006-vlme *

           ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

* << Fim da exclusão

  ENDIF.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  itab_zycbe033-wrbtr = itab_zycbe033-wrbtr /

                        ( 10 ** ( tcurx-currdec - 2 ) ).

  PERFORM verifica_casas_decimais

    USING

      itab_zycbe033-wrbtr

      itab_zycbt005-waers_c

      itab_zycbt005-waers

    CHANGING itab_zycbe033-wrbtr.

* << Fim da exclusão

  itab_zycbe033-c_gsber = itab_zycbt006-gsberf.

  itab_zycbe033-d_gsber = itab_zycbt006-gsberf.

  IF /pws/zycbe001-tpcontr(1) = 'D' AND

     /pws/zycbt089-f_cont_vinc = 'F'.

    itab_zycbe033-newbs   = '19'.

    itab_zycbe033-agkoa   = 'D'.

    CONCATENATE '002' /pws/zycbe005-tpcontr INTO v_codeven.

    SELECT agums FROM /pws/zycbt011

           INTO itab_zycbe033-agums

           UP TO 1 ROWS

...

 

...

        itab_zycbe033-belnr  = itab_zycbt005-belnr.

      ENDIF.

      itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.

    ENDIF.

  ENDIF.

  itab_zycbt036-tcode   = 'F-30'.

  itab_zycbt036-tabela  = '/PWS/ZYCBT006'.

  itab_zycbt036-cpochv  = v_cpochv.

  PERFORM determina_fator USING v_parafator

                                v_defator.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  SELECT *

         UP TO 1 ROWS

         FROM tcurx

         WHERE currkey = itab_zycbt005-waers.

  ENDSELECT.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  READ TABLE itab_paridade

        WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                 gsberf   = itab_zycbt006-gsberf

                 nrparcf  = itab_zycbt006-nrparcf.

  IF sy-subrc EQ 0.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE6_F30_ACE

  read table itab_paridade with key nrinvoic = itab_zycbt005-nrinvoic

                                    nrparcf  = itab_zycbt005-nrparcf

                                    gsberf   = itab_zycbt005-gsberf.

  if sy-subrc = 0.

* << Fim da inclusão

    itab_zycbt036-residuo = itab_paridade-v_vlme_c.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  ELSE.

    itab_zycbt036-residuo = itab_zycbt006-vlme *

           ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

* << Fim da exclusão

  ENDIF.

* >> Início da exclusão: FORM FILL_DATE6_F30_ACE

  itab_zycbt036-residuo = itab_zycbt036-residuo /

                        ( 10 ** ( tcurx-currdec - 2 ) ).

  PERFORM verifica_casas_decimais

    USING

      itab_zycbt036-residuo

      itab_zycbt005-waers_c

      itab_zycbt005-waers

    CHANGING itab_zycbt036-residuo.

* << Fim da exclusão

  CLEAR v_year.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs                = itab_zycbe033-bukrs

            v_date                 = itab_zycbe033-dtdocto

       IMPORTING

            v_year                 = v_year

       EXCEPTIONS

            variante_de_exercicio  = 1

            data_nao_encontrada    = 2

...

 

...

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_CLIENTE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                       tpdesp   = itab_zycbt005-tpdesp

                       nrparc   = itab_zycbt005-nrparc

                       dtincl   = itab_zycbt005-dtincl

                       nrinvoic = itab_zycbt005-nrinvoic

                       gsberf   = itab_zycbt005-gsberf

                       dtvincul = itab_zycbt005-dtvincul

                       dtvencto = itab_zycbt005-dtvencto.

  IF v_status_s EQ 0.

    EXIT.

  ENDIF.

* >> Início da inclusão: FORM CALC_PARIDADE

  clear itab_paridade_ant.

  read table itab_paridade_ant

           with key nrseqc    = itab_zycbt005-nrseqc

                     tpdesp   = itab_zycbt005-tpdesp

                     nrparc   = itab_zycbt005-nrparc.

* << Fim da inclusão

  PERFORM determina_fator USING v_parafator

                                v_defator.

* >> Início da exclusão: FORM CALC_PARIDADE

  READ TABLE itab_zycbt005_s

    WITH KEY nrinvoic = itab_zycbt005-nrinvoic

             nrparcf  = itab_zycbt005-nrparcf

             gsberf   = itab_zycbt005-gsberf.

  IF sy-subrc EQ 0 AND itab_zycbt005-vlme = itab_zycbt005_s-vlme.

    itab_zycbt005-vlme = itab_zycbt005_s-vlme.

    v_vlme_c           = itab_zycbt005_s-slpagar.

  ELSEIF itab_zycbt005-vlme EQ 0 AND v_parid NE 0 AND v_vlme_c NE 0.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

  if itab_zycbt005-vlme eq 0 and v_parid ne 0 and v_vlme_c ne 0.

* << Fim da inclusão

    itab_zycbt005-vlme = v_vlme_c /

              ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

* >> Início da exclusão: FORM CALC_PARIDADE

    PERFORM verifica_casas_decimais

      USING

        itab_zycbt005-vlme

        itab_zycbt005-waers

        itab_zycbt005-waers_c

      CHANGING itab_zycbt005-vlme.

* << Fim da exclusão

    v_vlme_c =  itab_zycbt005-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

* >> Início da exclusão: FORM CALC_PARIDADE

    PERFORM verifica_casas_decimais

      USING

        v_vlme_c

        itab_zycbt005-waers_c

        itab_zycbt005-waers

      CHANGING v_vlme_c.

* << Fim da exclusão

  ELSEIF itab_zycbt005-vlme NE 0 AND v_parid NE 0 AND

          v_vlme_c EQ 0.

* >> Início da exclusão: FORM CALC_PARIDADE

    v_vlme_c =  itab_zycbt005-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

    PERFORM verifica_casas_decimais

      USING

        v_vlme_c

        itab_zycbt005-waers_c

        itab_zycbt005-waers

      CHANGING v_vlme_c.

  ELSEIF itab_zycbt005-vlme NE 0 AND v_parid NE 0 AND

         v_vlme_c NE 0 AND v_vlme_c NE itab_paridade-v_vlme_c.

    itab_zycbt005-vlme = v_vlme_c /

              ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

    PERFORM verifica_casas_decimais

      USING

        itab_zycbt005-vlme

        itab_zycbt005-waers

        itab_zycbt005-waers_c

      CHANGING itab_zycbt005-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

    read table itab_tcurx with key

                             currkey = itab_zycbt005-waers into tcurx.

    if sy-subrc = 0 and tcurx-currdec = 0.

      read table itab_tcurx with key

                            currkey = itab_zycbt005-waers_c into tcurx.

      if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

        itab_zycbt005-vlme = itab_zycbt005-vlme  / ( 10 ** ( 0 - 2 ) ).

      endif.

    endif.

* << Fim da inclusão

    v_vlme_c =  itab_zycbt005-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

* >> Início da exclusão: FORM CALC_PARIDADE

    PERFORM verifica_casas_decimais

      USING

        v_vlme_c

        itab_zycbt005-waers_c

        itab_zycbt005-waers

      CHANGING v_vlme_c.

* << Fim da exclusão

  ELSEIF itab_zycbt005-vlme NE 0 AND v_parid NE 0.

* >> Início da inclusão: FORM CALC_PARIDADE

    read table itab_tcurx with key

                             currkey = itab_zycbt005-waers into tcurx.

    if sy-subrc = 0 and tcurx-currdec = 0.

      read table itab_tcurx with key

                            currkey = itab_zycbt005-waers_c into tcurx.

      if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

        itab_zycbt005-vlme = itab_zycbt005-vlme  / ( 10 ** ( 0 - 2 ) ).

      endif.

    endif.

* << Fim da inclusão

    v_vlme_c =  itab_zycbt005-vlme *

                ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

* >> Início da exclusão: FORM CALC_PARIDADE

    SELECT *

      FROM tcurx

      UP TO 1 ROWS

      WHERE currkey EQ itab_zycbt005-waers.

    ENDSELECT.

    IF sy-subrc <> 0.

      tcurx-currdec = 2.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

  endif.

  read table itab_tcurx with key

                             currkey = itab_zycbt005-waers into tcurx.

  if sy-subrc = 0 and tcurx-currdec = 0.

    read table itab_tcurx with key

                          currkey = itab_zycbt005-waers_c into tcurx.

    if ( sy-subrc = 0 and tcurx-currdec > 0 ) or sy-subrc ne 0.

      itab_zycbt005-vlme = itab_zycbt005-vlme  * ( 10 ** ( 0 - 2 ) ).

    endif.

  endif.

  read table itab_tcurx with key

                           currkey = itab_zycbt005-waers_c into tcurx.

  if sy-subrc = 0 and tcurx-currdec = 0.

    read table itab_tcurx with key

                          currkey = itab_zycbt005-waers into tcurx.

    if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

      v_vlme_c = v_vlme_c  / 100.

    endif.

  endif.

  if itab_zycbt005-vlme_p eq itab_zycbt005-vlme.

    v_vlme_c = itab_zycbt005-vlvinc.

  elseif itab_zycbt005-vlme eq itab_paridade-vlme.

    if v_trans is initial.

      v_vlme_c = itab_zycbt005-slpagar.

    elseif v_vlme_c ne itab_paridade_ant-v_vlme_c.

      v_vlme_c = itab_paridade_ant-v_vlme_c.

* << Fim da inclusão

    ENDIF.

* >> Início da exclusão: FORM CALC_PARIDADE

    v_vlme_c = v_vlme_c  / ( 10 ** ( tcurx-currdec - 2 ) ).

    PERFORM verifica_casas_decimais

      USING

        v_vlme_c

        itab_zycbt005-waers_c

        itab_zycbt005-waers

      CHANGING v_vlme_c.

* << Fim da exclusão

  ENDIF.

  MOVE v_vlme_c TO itab_paridade-v_vlme_c.

  MODIFY itab_paridade TRANSPORTING v_vlme_c

    WHERE nrinvoic = itab_zycbt005-nrinvoic AND

          gsberf   = itab_zycbt005-gsberf   AND

          nrparcf  = itab_zycbt005-nrparcf.

  MODIFY itab_zycbt005 INDEX v_index.

ENDFORM.

FORM determina_fator USING    p_parafator

                              p_defator.

* >> Início da inclusão: FORM DETERMINA_FATOR

  if not itab_zycbt005[] is initial.

* << Fim da inclusão

  IF itab_zycbt005-waers = itab_zycbt005-waers_c.

    p_parafator = p_defator = 1.

  ELSE.

* >> Início da inclusão: FORM DETERMINA_FATOR

      select single *

        from t001a

        where bukrs = /pws/zycbt001-bukrs.

* << Fim da inclusão

    SELECT SINGLE ffact tfact

      FROM tcurf

* >> Início da exclusão: FORM DETERMINA_FATOR

      INTO  (p_parafator,

             p_defator)

      WHERE fcurr =  itab_zycbt005-waers

* << Fim da exclusão

* >> Início da inclusão: FORM DETERMINA_FATOR

        into  (p_defator,

               p_parafator)

        where kurst = t001a-kurst

          and fcurr =  itab_zycbt005-waers

* << Fim da inclusão

        AND tcurr =  itab_zycbt005-waers_c

* >> Início da exclusão: FORM DETERMINA_FATOR

       AND gdatu >= sy-datum.                             "#EC PORTABLE

* << Fim da exclusão

* >> Início da inclusão: FORM DETERMINA_FATOR

        and gdatu >= sy-datum.                            "#EC PORTABLE

    endif.

  else.

    if itab_zycbt005_ant-waers = itab_zycbt005_ant-waers_c.

      p_parafator = p_defator = 1.

    else.

      select single *

        from t001a

        where bukrs = /pws/zycbt001-bukrs.

      select single ffact tfact

        from tcurf

        into  (p_defator,

               p_parafator)

        where kurst = t001a-kurst

          and fcurr =  itab_zycbt005_ant-waers

          and tcurr =  itab_zycbt005_ant-waers_c

         and gdatu >= sy-datum.

* << Fim da inclusão

  ENDIF.

* >> Início da inclusão: FORM DETERMINA_FATOR

  endif.

  if p_defator = 0.

    p_defator = 1.

  endif.

  if p_parafator = 0.

    p_parafator = 1.

  endif.

* << Fim da inclusão

ENDFORM.

FORM valida_taxa_parametro.

  CLEAR: v_taxa_vazia.

  CLEAR itab_zycbe033-kursf.

  PERFORM verifica_data2 USING /pws/zycbt089-tx_desm_cli

                               itab_zycbt006-dtpagto.

  IF NOT v_databl IS INITIAL.

    PERFORM define_cambio USING v_databl

                                itab_zycbt006-waers

                                wa_zycbt007-waersb

...

 

...

                    empresa_nao_encontrada = 3

                    period_in_not_valid    = 4

                    period_not_assigned    = 5

                    version_undefined      = 6

                    OTHERS                 = 7.

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          APPEND itab_zycbt006_aux4.

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          append itab_zycbt006_aux4.

          if not itab_zycbt209-belnr_f28 is initial.

            itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr_f28.

* << Fim da inclusão

          APPEND itab_zycbt006_aux4.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          endif.

          if not itab_zycbt006-belnr_f28 is initial.

* << Fim da inclusão

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr_f28.

          APPEND itab_zycbt006_aux4.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          endif.

* << Fim da inclusão

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    IF NOT itab_zycbt006_aux4[] IS INITIAL.

      CLEAR itab_zyglt100.

      REFRESH: itab_zyglt100.

      IF itab_zyglt100[] IS INITIAL.

        v_syrepid = sy-repid.

        CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             EXPORTING

...

 

...

          ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.

            SELECT SINGLE dtvencto FROM /pws/zycet001

                   INTO itab_zycbe033-zfbdt

                   WHERE nrseq = itab_zycbt030-nrinvoic.

          ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.

            itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

          ENDIF.

        WHEN 'VALUT'.

          IF itab_zyglt321-cpocb = 'DTVENCTO'.

            itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          elseif itab_zyglt321-cpocb = 'DTLIQUID'.

            itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

          ENDIF.

        WHEN 'ZUONR'.

          IF itab_zyglt321-cpocb = 'NRCONTR'.

            itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

          ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

            itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

          ELSEIF itab_zyglt321-cpocb IS INITIAL AND

                 NOT itab_zyglt321-descr IS INITIAL.

            itab_zycbe033-d_zuonr = itab_zyglt321-descr.

          ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

      itab_partidas-zfbdt = itab_zycbt017-dtvencto.

      APPEND itab_partidas.

      MODIFY itab_zycbt209.

    ENDLOOP.

    LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt006-nrinvoic

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf.

      READ TABLE itab_zycbt084 WITH KEY vbeln = itab_zycbt030-vbeln

                                        tdesmemb = 'K'.

      CHECK sy-subrc EQ 0.

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

      READ TABLE itab_bsad WITH KEY belnr = itab_zycbt084-belnr

.

* << Fim da exclusão

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

      read table itab_zycbt209 with key

                                       nrinvoic = itab_zycbt030-nrinvoic

                                       gsberf   = itab_zycbt030-gsberf

                                       nrparcf  = itab_zycbt030-nrparcf.

      if sy-subrc ne 0.

        read table itab_bsad with key belnr = itab_zycbt084-belnr.

      else.

        loop at itab_bsad where belnr = itab_zycbt084-belnr

                            and zuonr(4) ne 'Des.'.

          exit.

        endloop.

      endif.

* << Fim da inclusão

      CHECK sy-subrc EQ 0.

      itab_zycbt030-v_kwert =

        ( itab_zycbt030-kwert / itab_zycbt030-s_kwert )

                              * v_vlliq.

      MODIFY itab_zycbt030.

      READ TABLE itab_zycbt017 WITH KEY

                                    nrinvoic = itab_zycbt030-nrinvoic

                                    gsberf   = itab_zycbt030-gsberf

                                    nrparcf  = itab_zycbt030-nrparcf.

      itab_zycbe033-zterm = itab_zycbt030-zterm.

...

 

...

                               AND gsberf   = itab_zycbt006-gsberf

                               AND nrparcf  = itab_zycbt006-nrparcf.

    IF itab_zycbt006-v_status EQ 'A'.

      itab_zycbt006-v_status = 'I'.

      READ TABLE itab_zycbt005

                 WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                          gsberf   = itab_zycbt006-gsberf

                          nrparcf  = itab_zycbt006-nrparcf.

      IF sy-subrc EQ 0.

        itab_zycbt005-belnr_d = v_belnr.

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

        MODIFY itab_zycbt005 TRANSPORTING belnr_d

* << Fim da exclusão

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

        itab_zycbt005-belnr = v_belnr.

        modify itab_zycbt005 transporting belnr_d belnr

* << Fim da inclusão

                             WHERE nrinvoic = itab_zycbt006-nrinvoic

                               AND gsberf   = itab_zycbt006-gsberf

                               AND nrparcf  = itab_zycbt006-nrparcf.

      ENDIF.

      itab_zycbt006-status = 'E'.

    ELSE.

      itab_zycbt006-status = ' '.

    ENDIF.

    MODIFY itab_zycbt006.

    CLEAR: v_linha, v_cont, v_ult.

...

 

...

                                    tdesmemb = 'V'.

    IF sy-subrc = 0.

      itab_zycbt030-vlslliq = itab_zycbt030-vlslliq +

                              itab_zycbt084-result_saldo.

      v_vlmext = v_vlmext + itab_zycbt084-result_saldo.

      MODIFY itab_zycbt030 TRANSPORTING vlslliq

       WHERE nrinvoic = itab_zycbt006-nrinvoic AND

               gsberf = itab_zycbt006-gsberf   AND

              nrparcf = itab_zycbt006-nrparcf.

    ENDIF.

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

    read table itab_paridade_ant

           with key nrseqc   = itab_zycbt006-nrseqc

                    tpdesp   = itab_zycbt006-tpdesp

                    nrparc   = itab_zycbt006-nrparc

                    dtincl   = itab_zycbt006-dtincl

                    nrinvoic = itab_zycbt006-nrinvoic

                    gsberf   = itab_zycbt006-gsberf

                    nrparcf  = itab_zycbt006-nrparcf

                    dtvincul = itab_zycbt006-dtvincul

                    dtvencto = itab_zycbt006-dtvencto.

* << Fim da inclusão

    LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt006-nrinvoic

                           AND gsberf   = itab_zycbt006-gsberf

                           AND nrparcf  = itab_zycbt006-nrparcf.

      CHECK NOT itab_zycbt030-belnr_d IS INITIAL.

      IF wa_zycbt007-liq_trans EQ space.

        itab_zycbt030-belnr6  = itab_zycbt030-belnr_d.

        itab_zycbt030-budat   = v_datum.

        itab_zycbt030-vlslliq =

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

        itab_zycbt030-vlslliq + ( itab_zycbt006-vlme - v_liq_and -

* << Fim da exclusão

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

        itab_zycbt030-vlslliq + ( itab_paridade_ant-vlme - v_liq_and -

* << Fim da inclusão

                                  v_vlmext ).

        itab_zycbt030-vlsltrans =

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

  itab_zycbt030-vlsltrans + ( itab_zycbt006-vlme - v_liq_and -

* << Fim da exclusão

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

  itab_zycbt030-vlsltrans + ( itab_paridade_ant-vlme - v_liq_and -

* << Fim da inclusão

                              v_vlmext ).

        CLEAR itab_zycbt030-belnr_d.

      ELSE.

        itab_zycbt030-vlslliq =

* >> Início da exclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          itab_zycbt030-vlslliq + itab_zycbt006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM LANCAMENTO_ESTORNO_ARBITR_3

          itab_zycbt030-vlslliq + itab_paridade_ant-vlme.

* << Fim da inclusão

        CLEAR itab_zycbt030-belnr_d.

      ENDIF.

      IF itab_zycbt030-belnr6 = itab_zycbt030-belnr.

        CLEAR: itab_zycbt030-budat_t,

               itab_zycbt030-belnr_t.

      ENDIF.

      MODIFY itab_zycbt030.

      PERFORM grava_zycbt084 USING ' '.

    ENDLOOP.

    IF itab_zycbt084-result_saldo > 0.

...

 

...

              period_in_not_valid    = 4

              period_not_assigned    = 5

              version_undefined      = 6

              OTHERS                 = 7.

    SELECT SINGLE kursf FROM bkpf

                 INTO bkpf-kursf

                 WHERE belnr EQ itab_zycbt030-belnr6

                   AND bukrs EQ itab_zycbt006-bukrs

                   AND gjahr EQ v_year.

    p_wrbtr = p_wrbtr / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_EST2

    p_wrbtr = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * p_wrbtr.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_EST2

    p_wrbtr = ( ( bkpf-kursf / v_defator_fat )

                           * v_parafator_fat ) * p_wrbtr.

* << Fim da inclusão

    v_taxa_cliente = bkpf-kursf.

  ELSE.

    p_wrbtr = p_wrbtr / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_EST2

    p_wrbtr = ( ( v_txcbrl_fat / v_defator )

                           * v_parafator ) * p_wrbtr.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_EST2

    p_wrbtr = ( ( v_txcbrl_fat / v_defator_fat )

                           * v_parafator_fat ) * p_wrbtr.

* << Fim da inclusão

    v_taxa_cliente = v_txcbrl_fat.

  ENDIF.

ENDFORM.

FORM get_parameters_002_arb2  USING    p_sinal

                                       p_newko.

  DATA: v_nrdias_arb  TYPE i,

        v_prazo_arb,

        v_codaux_arb  LIKE /pws/zyglt316-codaux1.

  v_nrdias_arb = itab_zycbt006-dtpagto - itab_zycbt006-dtvincul.

  IF v_nrdias_arb > 360.

...

 

...

              period_in_not_valid    = 4

              period_not_assigned    = 5

              version_undefined      = 6

              OTHERS                 = 7.

    SELECT SINGLE kursf FROM bkpf

                 INTO bkpf-kursf

                 WHERE belnr EQ p_belnr

                   AND bukrs EQ itab_zycbt006-bukrs

                   AND gjahr EQ v_year.

    p_wrbtr = p_wrbtr / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_EST3

    p_wrbtr = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * p_wrbtr.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_EST3

    p_wrbtr = ( ( bkpf-kursf / v_defator_fat )

                           * v_parafator_fat ) * p_wrbtr.

* << Fim da inclusão

    v_taxa_liqand = bkpf-kursf.

  ELSE.

    p_wrbtr = p_wrbtr / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_EST3

    p_wrbtr = ( ( v_txcbrl_fat / v_defator )

                           * v_parafator ) * p_wrbtr.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_EST3

    p_wrbtr = ( ( v_txcbrl_fat / v_defator_fat )

                           * v_parafator_fat ) * p_wrbtr.

* << Fim da inclusão

    v_taxa_liqand = v_txcbrl_fat.

  ENDIF.

ENDFORM.

FORM verifica_exit_cliente.

  CLEAR wa_zycbt004.

  MOVE /pws/zycbt004 TO wa_zycbt004.

  CLEAR v_rep.

  MOVE sy-repid TO v_rep.

  READ TABLE itab_zyglt100 WITH KEY codmod = v_descr_exit

                                    func   = v_rep

...

 

...

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt006-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_LIQUID_3

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

      ELSE.

        itab_partidas-dtdocto = itab_zycbt030-dtbelnr.

      ENDIF.

      PERFORM determina_ano USING itab_partidas-dtdocto

                                  itab_zycbt006-bukrs

                            CHANGING v_ano.

      SELECT zuonr FROM bseg INTO itab_partidas-d_zuonr

                   UP TO 1 ROWS

                   WHERE bukrs = itab_zycbt006-bukrs

                     AND belnr = itab_partidas-belnr

* >> Início da exclusão: FORM FILL_DATE6_F30_LIQUID_3

                     AND gjahr = v_ano.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE6_F30_LIQUID_3

                     and gjahr = v_ano

                     and ( augbl = space or

                           augbl = '          ' ).

* << Fim da inclusão

      ENDSELECT.

      v_zuonr = 'X'.

    ELSE.

      CONCATENATE text-460

                  itab_zycbt006-nrinvoic

                  itab_zycbt006-nrparcf

                  INTO itab_partidas-d_zuonr

                  SEPARATED BY space.

    ENDIF.

    itab_partidas-v_sinal = '-'.

...

 

...

        ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.

          SELECT SINGLE dtvencto FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM FILL_DATE_F22_PERF

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

        ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.

          SELECT SINGLE dtvencto FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM FILL_DATE_F22_ACE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

  READ TABLE itab_zyglt316 INDEX 1 INTO wa_zyglt316.

  IF sy-subrc = 0.

    CASE p_tipo.

      WHEN 'D'.

        MOVE wa_zyglt316-konts TO p_conta.

      WHEN 'C'.

        MOVE wa_zyglt316-konth TO p_conta.

    ENDCASE.

  ENDIF.

ENDFORM.

* >> Início da exclusão: FORM CALCULA_VALOR_LIQUIDADO

FORM calcula_valor_liquidado.

  DATA: v_ult_liquidacao(1) TYPE c.

  v_ult_liquidacao = 'N'.

  IF NOT v_trans IS INITIAL AND NOT itab_zycbt005[] IS INITIAL.

    SELECT * FROM /pws/zycbt006

      INTO TABLE itab_zycbt006

      FOR ALL ENTRIES IN itab_zycbt005

     WHERE nrinvoic = itab_zycbt005-nrinvoic

       AND nrparcf  = itab_zycbt005-nrparcf

       AND gsberf   = itab_zycbt005-gsberf.

    SORT itab_zycbt006 BY nrinvoic nrparcf gsberf dtpagto DESCENDING.

    LOOP AT itab_zycbt005_s.

      READ TABLE itab_zycbt005 WITH KEY

                               nrinvoic = itab_zycbt005_s-nrinvoic

                               nrparcf  = itab_zycbt005_s-nrparcf

                               gsberf   = itab_zycbt005_s-gsberf.

      IF sy-subrc EQ 0 AND itab_zycbt005-slpagar = 0.

        READ TABLE itab_zycbt006 WITH KEY

                              nrinvoic = itab_zycbt005_s-nrinvoic

                              nrparcf  = itab_zycbt005_s-nrparcf

                              gsberf   = itab_zycbt005_s-gsberf.

        IF sy-subrc EQ 0.

          IF itab_zycbt006-dtvincul  = v_dtvincul AND

             itab_zycbt006-dtpagto   = v_dtpagto  AND

             itab_zycbt006-dtpagext  = v_dtpagext.

            v_vlme_c = 0.

            LOOP AT itab_zycbt006

                        WHERE nrinvoic = itab_zycbt005_s-nrinvoic

                          AND nrparcf  = itab_zycbt005_s-nrparcf

                          AND gsberf   = itab_zycbt005_s-gsberf.

              IF itab_zycbt006-dtvincul  = v_dtvincul AND

                 itab_zycbt006-dtpagto   = v_dtpagto  AND

                 itab_zycbt006-dtpagext  = v_dtpagext.

              ELSE.

                v_vlme_c = v_vlme_c + itab_zycbt006-vlme.

              ENDIF.

            ENDLOOP.

            PERFORM determina_fator USING v_parafator

                                          v_defator.

            v_vlme_c = v_vlme_c * ( ( itab_zycbt005-parid /

                              v_defator ) * v_parafator ).

            v_vlme_c = itab_zycbt005-vlvinc - v_vlme_c.

            v_ult_liquidacao = 'S'.

          ELSE.

            PERFORM determina_fator USING v_parafator

                                            v_defator.

            v_vlme_c = itab_zycbt005_s-vlme *

           ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

          ENDIF.

        ENDIF.

      ELSE.

        PERFORM determina_fator USING v_parafator

                                      v_defator.

        v_vlme_c = itab_zycbt005_s-vlme *

             ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

      ENDIF.

      PERFORM verifica_casas_decimais

        USING

          itab_zycbt005-vlme

          itab_zycbt005-waers

          itab_zycbt005-waers_c

        CHANGING v_vlme_c.

      itab_zycbt005_s-slpagar = v_vlme_c.

      MODIFY itab_zycbt005_s.

      IF v_ult_liquidacao = 'S'.

        LOOP AT itab_paridade

                    WHERE nrinvoic = itab_zycbt005_s-nrinvoic

                      AND nrparcf  = itab_zycbt005_s-nrparcf

                      AND gsberf   = itab_zycbt005_s-gsberf.

          IF itab_paridade-dtvincul  = v_dtvincul AND

             itab_paridade-dtpagto   = v_dtpagto  AND

             itab_paridade-dtpagext  = v_dtpagext.

            itab_paridade-v_vlme_c  = v_vlme_c.

            MODIFY itab_paridade.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.

* << Fim da exclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

    perform lancamento_provisao3.

    if v_subrc eq 0.

      v_cont_ok = 'X'.

    endif.

  endif.

endform.

form atualiza_tabelas_transp2.

  data: v_subrc type c.

  data: wa_zycbt006_sbu like /pws/zycbt006,

        v_slpagar001 type /pws/zycbt001-slpagar.

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

  DATA: v_vldif_aux TYPE /pws/zycbe006-vlme.

* << Fim da inclusão

  itab_zycbt005-status = 'C'.

  modify itab_zycbt005 transporting status

                       where nrseqc = /pws/zycbe005-nrseqc.

  loop at itab_zycbt006.

    select dtpagext

           up to 1 rows

           from /pws/zycbt005

           into /pws/zycbt005-dtpagext

           where nrseqc    = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

...

 

...

      modify itab_zycbt005 transporting dtpagext

             where nrseqc  = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

             and dtincl    = itab_zycbt006-dtincl

             and nrinvoic  = itab_zycbt006-nrinvoic

             and nrparcf   = itab_zycbt006-nrparcf

             and gsberf    = itab_zycbt006-gsberf

             and dtvincul  = itab_zycbt006-dtvincul

             and dtvencto  = itab_zycbt006-dtvencto.

    endif.

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

    READ TABLE itab_paridade WITH KEY nrinvoic = itab_zycbt006-nrinvoic

                                      nrparcf  = itab_zycbt006-nrparcf

                                      gsberf   = itab_zycbt006-gsberf.

    IF sy-subrc = 0.

      itab_zycbt006-waers_c = itab_paridade-waers_c.

      itab_zycbt006-vlme_c  = itab_paridade-v_vlme_c.

      MODIFY itab_zycbt006.

    ENDIF.

* << Fim da inclusão

  endloop.

  modify /pws/zycbt005 from table itab_zycbt005.

  itab_zycbt005-dtpagext = /pws/zycbe006-dtpagext.

  modify itab_zycbt005 transporting dtpagext

                       where nrseqc = /pws/zycbe001-nrseqc.

  modify /pws/zycbt074 from table itab_zycbt074.

  modify /pws/zycbt231 from table itab_zycbt231.

  call customer-function '002'

    importing

        v_subrc = v_subrc.

  loop at itab_zycbt006.

    read table itab_zycbt005 with key

                      nrseqc   = itab_zycbt006-nrseqc

                      nrinvoic = itab_zycbt006-nrinvoic

                      dtvincul = itab_zycbt006-dtvincul

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

                      nrparcf  = itab_zycbt006-nrparcf.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

                      nrparcf  = itab_zycbt006-nrparcf

                      gsberf   = itab_zycbt006-gsberf.

* << Fim da inclusão

    clear v_slpagar.

    if itab_zycbt006-status   eq '1' and

       itab_zycbt006-v_status eq 'E'.

      message i061 with text-155 itab_zycbt006-nrinvoic

                        text-162 text-163.

      continue.

    endif.

    if   itab_zycbt006-v_status eq 'E' or

       ( itab_zycbt006-v_status eq 'A' and

         itab_zycbt006-status   eq 'E' ).

...

 

...

                             and tpdesp   = itab_zycbt006-tpdesp

                             and nrparc   = itab_zycbt006-nrparc

                             and dtincl   = itab_zycbt006-dtincl

                             and nrinvoic = itab_zycbt006-nrinvoic

                             and gsberf   = itab_zycbt006-gsberf

                             and dtvincul = itab_zycbt006-dtvincul

                             and dtvencto = itab_zycbt006-dtvencto

                             and dtpagto  = itab_zycbt006-dtpagto

                             and dtpagext = itab_zycbt006-dtpagext

                             and nrparcf  = itab_zycbt006-nrparcf.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      read table itab_paridade

            with key nrinvoic = itab_zycbt006-nrinvoic

                     gsberf   = itab_zycbt006-gsberf

                     nrparcf  = itab_zycbt006-nrparcf.

      if sy-subrc eq 0.

        v_vlme_sl = itab_paridade-v_vlme_c.

      else.

        v_vlme_sl = itab_zycbt006-vlme * itab_zycbt005_ant-parid.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

      v_vldif_aux = itab_zycbt006-v_vldif * -1.

      READ TABLE itab_paridade WITH KEY

          nrinvoic = itab_zycbt006-nrinvoic

          nrparcf  = itab_zycbt006-nrparcf

          gsberf   = itab_zycbt006-gsberf.

      IF sy-subrc = 0 AND itab_paridade-vlme = v_vldif_aux.

        v_vlme_sl = itab_zycbt006-v_vldif_arb =

                                            itab_paridade-v_vlme_c * -1.

      ELSEIF sy-subrc = 0.

        READ TABLE itab_tcurx WITH KEY

                          currkey = itab_zycbt005_ant-waers INTO tcurx.

        IF sy-subrc = 0 AND tcurx-currdec = 0.

          READ TABLE itab_tcurx WITH KEY

                        currkey = itab_zycbt005_ant-waers_c INTO tcurx.

          IF sy-subrc <> 0 OR ( sy-subrc = 0 AND tcurx-currdec > 0 ).

            itab_zycbt006-v_vldif =

                           itab_zycbt006-v_vldif  / ( 10 ** ( 0 - 2 ) ).

          ENDIF.

        ENDIF.

        PERFORM determina_fator USING v_parafator

                                      v_defator.

        v_vlme_sl = itab_zycbt006-v_vldif *

          ( ( itab_zycbt005_ant-parid / v_defator ) * v_parafator ).

        READ TABLE itab_tcurx WITH KEY

                         currkey = itab_zycbt005_ant-waers_c INTO tcurx.

        IF sy-subrc = 0 AND tcurx-currdec = 0.

          READ TABLE itab_tcurx WITH KEY

                           currkey = itab_zycbt005_ant-waers INTO tcurx.

          IF sy-subrc <> 0 OR ( sy-subrc = 0 AND tcurx-currdec > 0 ).

            v_vlme_sl = v_vlme_sl  / 100.

          ENDIF.

* << Fim da inclusão

      endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      clear tcurx-currdec.

      select single * from tcurx

                      where ( currkey = itab_zycbt005_ant-waers_c

                         or   currkey = itab_zycbt005_ant-waers )

                        and currdec = 0.

      if sy-subrc <> 0.

        tcurx-currdec = 2.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

        READ TABLE itab_paridade_ant WITH KEY

            nrinvoic = itab_zycbt006-nrinvoic

            nrparcf  = itab_zycbt006-nrparcf

            gsberf   = itab_zycbt006-gsberf.

        IF sy-subrc = 0.

          IF itab_paridade_ant-v_vlme_c > itab_paridade-v_vlme_c.

            v_vlme_sl =

                  itab_paridade_ant-v_vlme_c - itab_paridade-v_vlme_c.

          ELSEIF itab_paridade-v_vlme_c > itab_paridade_ant-v_vlme_c.

            v_vlme_sl =

                  itab_paridade-v_vlme_c - itab_paridade_ant-v_vlme_c.

* << Fim da inclusão

      endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      v_vlme_sl = v_vlme_sl * ( 10 ** ( tcurx-currdec - 2 ) ).

      read table itab_paridade

            with key nrinvoic = itab_zycbt006-nrinvoic

                     gsberf   = itab_zycbt006-gsberf

                     nrparcf  = itab_zycbt006-nrparcf.

      if sy-subrc eq 0.

* << Fim da exclusão

        if itab_zycbt006-v_vldif < 0.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

          itab_zycbt006-v_vldif_arb = itab_paridade-v_vlme_c * -1.

        else.

          itab_zycbt006-v_vldif_arb = itab_paridade-v_vlme_c.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

            v_vlme_sl = v_vlme_sl * -1.

          ENDIF.

* << Fim da inclusão

        endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      else.

        itab_zycbt006-v_vldif_arb =  itab_zycbt006-v_vldif *

                                              itab_zycbt005_ant-parid.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

        itab_zycbt006-v_vldif_arb = v_vlme_sl.

* << Fim da inclusão

      endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      itab_zycbt006-v_vldif_arb =

            itab_zycbt006-v_vldif_arb * ( 10 ** ( tcurx-currdec - 2 ) ).

* << Fim da exclusão

      v_slpagar001 = v_slpagar001 + itab_zycbt006-v_vldif_arb.

      modify itab_zycbt006.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      update /pws/zycbt005 set slpagar  = slpagar + v_vlme_sl

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

      UPDATE /pws/zycbt005 SET slpagar  = slpagar - v_vlme_sl

* << Fim da inclusão

                         belnr    = itab_zycbt005_ant-belnr

                         dtbelnr  = itab_zycbt005_ant-dtbelnr

...

 

...

                               and dtincl   = itab_zycbt006-dtvincul

                               and nrinvoic = itab_zycbt006-nrinvoic

                               and dtliquid = v_dtpagto

                               and dtpagext = itab_zycbt006-dtpagext

                               and ( dtpagto = '00000000' or

                                     dtpagto = '        ' or

                                    dtpagto = space ).

      endif.

    else.

      if itab_zycbt006-v_status = 'N'.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

        read table itab_paridade

              with key nrinvoic = itab_zycbt006-nrinvoic

                       gsberf   = itab_zycbt006-gsberf

                       nrparcf  = itab_zycbt006-nrparcf.

        if sy-subrc eq 0.

          v_slpagar = itab_zycbt005-slpagar + itab_paridade-v_vlme_c.

        else.

* << Fim da exclusão

          v_slpagar = itab_zycbt005-slpagar +

                      ( itab_zycbt006-v_vldif * itab_zycbt005-parid ).

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

        endif.

* << Fim da exclusão

        read table /pws/zycbt005.

        update /pws/zycbt005 set slpagar = v_slpagar

                          where nrseqc   = itab_zycbt006-nrseqc

                            and nrinvoic = itab_zycbt006-nrinvoic

                            and dtvincul = itab_zycbt006-dtvincul

...

 

...

            if itab_zycbt006-belnr_d = /pws/zycbe001-belnr2.

              update /pws/zycbt005 set belnr   = itab_zycbt006-belnr_d

                                  dtbelnr = itab_zycbt006-dtpagto

                           where nrseqc   = itab_zycbt006-nrseqc

                             and dtvincul = itab_zycbt006-dtvincul.

            endif.

          endif.

        else.

          if v_liquida eq 'X'.

            if itab_zycbt006-status = 'C'.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

              read table itab_paridade

              with key nrinvoic = itab_zycbt006-nrinvoic

                       gsberf   = itab_zycbt006-gsberf

                       nrparcf  = itab_zycbt006-nrparcf.

              if sy-subrc eq 0.

                v_slpagar = itab_zycbt005-slpagar +

                            itab_paridade-v_vlme_c.

              else.

                v_slpagar = itab_zycbt005-slpagar +

                          ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

             v_slpagar = itab_zycbt005-slpagar + ( itab_zycbt006-vlme *

                                                  itab_zycbt005-parid ).

* << Fim da inclusão

              endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

            endif.

* << Fim da exclusão

            read table /pws/zycbt005.

            update /pws/zycbt005 set slpagar = v_slpagar

                              where nrseqc   = itab_zycbt006-nrseqc

                                and nrinvoic = itab_zycbt006-nrinvoic

                                and dtvincul = itab_zycbt006-dtvincul

                                and nrparcf  = itab_zycbt006-nrparcf

...

 

...

                             and dtincl   = itab_zycbt006-dtvincul

                             and tpjuros  = itab_zycbt006-tpjuros

                             and nrparc   = itab_zycbt006-nrparc

                             and dtpagext = v_dtpagext

                             and ( dtpagto  = '00000000' or

                                   dtpagto  = '        ' or

                                   dtpagto  = space )

                             and ( dtliquid = '00000000' or

                                   dtliquid = '        ' or

                                   dtliquid = space ).

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

          ENDIF.

        ENDIF.

      ENDIF.

      READ TABLE itab_zycbt005 WITH KEY

          nrinvoic = itab_zycbt006-nrinvoic

          nrparcf  = itab_zycbt006-nrparcf

          gsberf   = itab_zycbt006-gsberf.

      IF sy-subrc = 0.

        READ TABLE itab_paridade WITH KEY

            nrinvoic = itab_zycbt006-nrinvoic

            nrparcf  = itab_zycbt006-nrparcf

            gsberf   = itab_zycbt006-gsberf.

        IF sy-subrc = 0 AND itab_paridade-vlme = itab_zycbt006-v_vldif.

          itab_zycbt006-v_vldif_arb = itab_paridade-v_vlme_c.

        ELSEIF sy-subrc = 0.

          READ TABLE itab_tcurx WITH KEY

                           currkey = itab_zycbt005-waers INTO tcurx.

          IF sy-subrc = 0 AND tcurx-currdec = 0.

            READ TABLE itab_tcurx WITH KEY

                         currkey = itab_zycbt005-waers_c INTO tcurx.

            IF sy-subrc <> 0 OR ( sy-subrc = 0 AND tcurx-currdec > 0 ).

              itab_zycbt006-v_vldif =

                           itab_zycbt006-v_vldif  / ( 10 ** ( 0 - 2 ) ).

            ENDIF.

          ENDIF.

          PERFORM determina_fator USING v_parafator

                                        v_defator.

          itab_zycbt006-v_vldif_arb =  itab_zycbt006-v_vldif *

              ( ( itab_paridade-v_parid / v_defator ) * v_parafator ).

          READ TABLE itab_tcurx WITH KEY

                             currkey = itab_zycbt005-waers_c INTO tcurx.

          IF sy-subrc = 0 AND tcurx-currdec = 0.

            READ TABLE itab_tcurx WITH KEY

                               currkey = itab_zycbt005-waers INTO tcurx.

            IF sy-subrc <> 0 OR ( sy-subrc = 0 AND tcurx-currdec > 0 ).

              itab_zycbt006-v_vldif_arb =

              itab_zycbt006-v_vldif_arb  / 100.

* << Fim da inclusão

          endif.

        endif.

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

          READ TABLE itab_paridade_ant WITH KEY

              nrinvoic = itab_zycbt006-nrinvoic

              nrparcf  = itab_zycbt006-nrparcf

              gsberf   = itab_zycbt006-gsberf.

          IF sy-subrc = 0.

            IF itab_paridade_ant-v_vlme_c > itab_paridade-v_vlme_c.

              itab_zycbt006-v_vldif_arb =

                    itab_paridade_ant-v_vlme_c - itab_paridade-v_vlme_c.

            ELSEIF itab_paridade-v_vlme_c > itab_paridade_ant-v_vlme_c.

              itab_zycbt006-v_vldif_arb =

                    itab_paridade-v_vlme_c - itab_paridade_ant-v_vlme_c.

* << Fim da inclusão

      endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      read table itab_paridade

            with key nrinvoic = itab_zycbt006-nrinvoic

                     gsberf   = itab_zycbt006-gsberf

                     nrparcf  = itab_zycbt006-nrparcf.

      if sy-subrc eq 0.

* << Fim da exclusão

        if itab_zycbt006-v_vldif < 0.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

          itab_zycbt006-v_vldif_arb =  itab_paridade-v_vlme_c * -1.

        else.

          itab_zycbt006-v_vldif_arb =  itab_paridade-v_vlme_c.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

             itab_zycbt006-v_vldif_arb = itab_zycbt006-v_vldif_arb * -1.

            ENDIF.

          ENDIF.

* << Fim da inclusão

        endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      else.

        itab_zycbt006-v_vldif_arb =  itab_zycbt006-v_vldif *

                                                itab_zycbt005-parid.

* << Fim da exclusão

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

        v_slpagar001 = v_slpagar001 +

        itab_zycbt006-v_vldif_arb.

        v_slpagar = itab_zycbt005-slpagar - itab_zycbt006-v_vldif_arb.

        UPDATE /pws/zycbt005 SET slpagar = v_slpagar

                            WHERE nrseqc   = itab_zycbt006-nrseqc

                              AND nrinvoic = itab_zycbt006-nrinvoic

                              AND dtvincul = itab_zycbt006-dtvincul

                              AND nrparcf  = itab_zycbt006-nrparcf

                              AND gsberf   = itab_zycbt006-gsberf.

* << Fim da inclusão

      endif.

* >> Início da exclusão: FORM ATUALIZA_TABELAS_TRANSP2

      v_slpagar001 = v_slpagar001 + itab_zycbt006-v_vldif_arb.

* << Fim da exclusão

      modify itab_zycbt006.

      clear itab_recurso_aux.

      read table itab_recurso_aux

           with key nrinvoic   = itab_zycbt006-nrinvoic

                    gsberf   = itab_zycbt006-gsberf

                    nrparcf  = itab_zycbt006-nrparcf.

...

 

...

                         dtvincul = /pws/zycbe001-dtvincul

                  where nrseqc = /pws/zycbe001-nrseqc.

  endif.

  clear itab_zycbt005_ant.

  refresh: itab_zycbt005_ant, itab_zycbt006_pre.

  move itab_zycbt005[] to itab_zycbt005_ant[].

  clear v_exec_arb.

  if v_vinculacao is initial.

    commit work.

  endif.

* >> Início da inclusão: FORM ATUALIZA_TABELAS_TRANSP2

  PERFORM carga_valor_contrato.

* << Fim da inclusão

endform.

form lancamento_provisao2.

  data: v_docto  like /pws/zycbt030-belnr,

        v_subrc  like sy-subrc,

        v_linha  type i,

        v_index  type i,

        v_belnr  type belnr_d,

        v_slliq  like /pws/zycbt006-vlme,

        v_total_30 like /pws/zycbt006-vlme,

        v_restante like /pws/zycbt006-vlme,

...

 

...

  data:

        v_wrbtr like bsid-wrbtr,

        v_kunnr type kunnr,

        wa_zycbt226 like line of itab_zycbt226,

        v_dtliquid like /pws/zycbt006-dtpagto,

        v_dtemb    like /pws/zycet001-dtemb.

  clear   itab_doctos.

  refresh itab_doctos.

  data: v_gjahr type gjahr.

  perform clear_date_batch.

* >> Início da inclusão: FORM DESMEMBRA_CLIENTE

  clear v_subrc.

* << Fim da inclusão

  clear: v_data,

         v_codeven.

  concatenate '003' itab_zycbt006-tpcontr into v_codeven.

  clear itab_zyglt321.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

           into table itab_zyglt321

           where ktosl   = 'FTE'

             and codeven = v_codeven.

  itab_zycbe033-tcode  = 'F-30'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM DESMEMBRA_CLIENTE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_zuonr = itab_zycbt006-nrinvoic.

        elseif itab_zyglt321-cpocb = 'NRSEQ'

            or itab_zyglt321-cpocb = 'NRSEQC'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

...

 

...

        v_wrbtr1  type wrbtr,

        v_shkzg   type shkzg,

        v_data    type datum,

        v_dtliquid like /pws/zycbt006-dtpagto,

        v_dtcontr like  /pws/zycbt001-dtcontr,

        v_codaux  like  /pws/zyglt316-codaux1,

        v_dp      type c value is initial.

  clear   itab_doctos.

  refresh itab_doctos.

  perform clear_date_batch.

* >> Início da inclusão: FORM DESMEMBRA_ACE

  clear v_subrc.

* << Fim da inclusão

  clear: v_data.

  concatenate '003' itab_zycbt006-tpcontr into v_codeven.

  clear itab_zyglt321.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

           into table itab_zyglt321

           where ktosl   = 'CPT'

             and codeven = v_codeven.

  itab_zycbe033-tcode  = 'F-30'.

  itab_zycbe033-tabela = 'ZYCBT006'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM DESMEMBRA_ACE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

        v_belnr_cap like /pws/zycbt006-belnr,

        v_codaux    like /pws/zyglt316-codaux1,

        v_codaux1  type /pws/zygle316-codaux1,

        v_codaux2  type /pws/zygle316-codaux2,

        v_tpcontr   like /pws/zycbt001-tpcontr,

        v_contas_iguais(1) type c,

        v_contador  type n.

  constants:  c_002(3)   value '002'.

  perform clear_date_batch.

  concatenate '003' /pws/zycbe005-tpcontr into v_codeven.

* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE

  clear v_subrc.

* << Fim da inclusão

  clear: v_data,

         v_codeven.

  concatenate '003' itab_zycbt006-tpcontr into v_codeven.

  clear itab_zyglt321.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

           into table itab_zyglt321

           where ktosl   = 'CPT'

             and codeven = v_codeven.

  itab_zycbe033-tcode  = 'F-30'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

  perform unlock_razao using itab_zycbe033-d_newko

                             itab_zycbe033-bukrs.

endform.

form anula_liquidacao.

  data: v_monat like t001b-frpe1,

        v_ano   type gjahr,

        v_subrc like sy-subrc,

        v_nrdias type i,

        v_prazo,

        v_codaux    like /pws/zyglt316-codaux1.

* >> Início da inclusão: FORM ANULA_LIQUIDACAO

  clear v_subrc.

* << Fim da inclusão

  perform clear_date_batch.

  if wa_zycbt007-liq_trans eq space.

    itab_zycbe033-agkoa = 'D'.

    perform verify_null_field using itab_zycbt006-kunnr

                                    'KUNNR'

                                    text-009.

    itab_zycbe033-agkon  = itab_zycbt006-kunnr.

  else.

    perform seleciona_conta.

  endif.

...

 

...

                    data_nao_encontrada    = 2

                    empresa_nao_encontrada = 3

                    period_in_not_valid    = 4

                    period_not_assigned    = 5

                    version_undefined      = 6

                    others                 = 7.

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          append itab_zycbt006_aux4.

* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

          append itab_zycbt006_aux4.

* << Fim da inclusão

        endif.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

      clear itab_zyglt100.

      refresh: itab_zyglt100.

      if itab_zyglt100[] is initial.

        v_syrepid = sy-repid.

        call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             exporting

...

 

...

            itab_zycbt030-vlslliq + itab_zycbt006-vlme.

        else.

          itab_zycbt030-budat = itab_zycbt006-dtpagto.

          if /pws/zycbe001-desc_receb is initial.

            itab_zycbt030-vlsltrans =

              itab_zycbt030-vlsltrans + itab_cli-wrbtr.

          endif.

          itab_zycbt030-vlslliq =

            itab_zycbt030-vlslliq + itab_cli-wrbtr.

        endif.

* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO

        if v_vinculacao is initial.

* << Fim da exclusão

          if itab_zycbt030-belnr6 = itab_zycbt030-belnr.

            clear: itab_zycbt030-belnr_t, itab_zycbt030-budat_t.

* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO

          endif.

        else.

          if itab_zycbt030-belnr6 = itab_zycbt030-belnr.

            clear: itab_zycbt030-belnr_t.

          endif.

* << Fim da exclusão

        endif.

...

 

...

          elseif itab_zyglt321-cpocb = 'DTVENCTO'.

            select single dtvencto from /pws/zycet001

                   into itab_zycbe033-zfbdt

                   where nrseq = itab_zycbt030-nrinvoic.

          elseif itab_zyglt321-cpocb = 'DTVINCUL'.

            itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

          endif.

        when 'VALUT'.

          if itab_zyglt321-cpocb = 'DTVENCTO'.

            itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO

          elseif itab_zyglt321-cpocb = 'DTLIQUID'.

            itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

          endif.

        when 'ZUONR'.

          if itab_zyglt321-cpocb = 'NRCONTR'.

            itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

          elseif itab_zyglt321-cpocb = 'NRSEQ'.

            itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

          elseif itab_zyglt321-cpocb is initial and

                 not itab_zyglt321-descr is initial.

            itab_zycbe033-d_zuonr = itab_zyglt321-descr.

          elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                       value(p_umskz)

                       value(p_budat)

                       value(p_kursf)

                       value(p_agkoa)

                       value(p_belnr_ref)

                       value(p_budat_ref)

                       value(p_texto)

                       value(p_fatura)

              changing p_belnr.

  data: v_total type c.

* >> Início da inclusão: FORM CLEARING

  clear v_subrc.

* << Fim da inclusão

  concatenate '003' itab_zycbt006-tpcontr into v_codeven.

  clear itab_zyglt321.

  refresh itab_zyglt321.

  if p_texto = text-189.

    select * from /pws/zyglt321

             into table itab_zyglt321

             where ktosl   = 'CPT'

               and codeven = v_codeven.

  else.

    select * from /pws/zyglt321

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM CLEARING

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_zuonr = itab_zycbt017-nrinvoic.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

...

 

...

                               itab_zycbe033-bukrs.

  elseif p_agkoa eq 'D'.

    perform unlock_cliente using itab_zycbe033-d_newko

                                 itab_zycbe033-bukrs.

  endif.

  sy-subrc = v_subrc.

endform.

form clearing_cli using value(p_kunnr)

                        value(p_datum)

                  changing v_subrc.

* >> Início da inclusão: FORM CLEARING_CLI

  clear v_subrc.

* << Fim da inclusão

  perform clear_date_batch.

  itab_zycbe033-tcode  = 'F-30'.

  concatenate itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

         into itab_zycbe033-cpochv.

  itab_zycbe033-tabela = 'ZYCBT030'.

  refresh itab_zyglt321.

  select * from /pws/zyglt321

           into table itab_zyglt321

           where ktosl   = 'FTE'

             and codeven = v_codeven.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTINVOIC'.

          itab_zycbe033-d_valut = itab_zycbt017-dtinvoic.

        elseif itab_zyglt321-cpocb = 'DTBL'.

          itab_zycbe033-d_valut = itab_zycbt017-dtbl.

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM CLEARING_CLI

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_zuonr = itab_zycbt017-nrinvoic.

        elseif itab_zyglt321-cpocb = 'NREMB'.

          itab_zycbe033-d_zuonr = itab_zycbt017-nremb.

        elseif itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

...

 

...

                 where nrseq = itab_zycbt006-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTEMB'.

          select single dtemb from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt006-nrinvoic.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F22_ARBITR

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

  read table itab_paridade

             with key nrseqc    = itab_zycbt006-nrseqc

                       tpdesp   = itab_zycbt006-tpdesp

                       nrparc   = itab_zycbt006-nrparc

                       dtincl   = itab_zycbt006-dtincl

                       nrinvoic = itab_zycbt006-nrinvoic

                       gsberf   = itab_zycbt006-gsberf

                       nrparcf  = itab_zycbt006-nrparcf

                       dtvincul = itab_zycbt006-dtvincul

                       dtvencto = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

  check sy-subrc = 0.

* << Fim da inclusão

  clear skb1.

  select single xsalh from skb1

               into skb1-xsalh

               where bukrs eq itab_zycbt006-bukrs

                 and saknr eq itab_zycbe033-c_newko.

  clear t001a.

  select single kurst from t001a

                      into t001a-kurst

                      where bukrs eq itab_zycbt006-bukrs.

  clear t001.

  select single xslta from t001

                      into t001-xslta

                      where bukrs eq itab_zycbt006-bukrs.

  perform converte_brl.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

  read table itab_paridade_ant

         with key nrseqc    = itab_zycbt006-nrseqc

                   tpdesp   = itab_zycbt006-tpdesp

                   nrparc   = itab_zycbt006-nrparc

                   dtincl   = itab_zycbt006-dtincl

                   nrinvoic = itab_zycbt006-nrinvoic

                   gsberf   = itab_zycbt006-gsberf

                   nrparcf  = itab_zycbt006-nrparcf

                   dtvincul = itab_zycbt006-dtvincul

                   dtvencto = itab_zycbt006-dtvencto.

  check sy-subrc = 0.

* << Fim da inclusão

  if not skb1-xsalh is initial or

     not t001-xslta is initial.

    clear bkpf.

    clear v_year.

    call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         exporting

              v_bukrs                = itab_zycbt006-bukrs

              v_date                 = itab_zycbt006-dtpagto

         importing

              v_year                 = v_year

...

 

...

              empresa_nao_encontrada = 3

              period_in_not_valid    = 4

              period_not_assigned    = 5

              version_undefined      = 6

              others                 = 7.

    select single kursf from bkpf

                 into bkpf-kursf

                 where belnr eq itab_zycbt006-belnr5

                   and bukrs eq itab_zycbt006-bukrs

                   and gjahr eq v_year.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_c = ( itab_paridade-v_vlme_c  )

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    read table itab_tcurx with key

                             currkey = /pws/zycbe001-waers into tcurx.

    if sy-subrc <> 0.

      tcurx-currdec = 2.

    endif.

    v_reais_c = ( itab_paridade_ant-v_vlme_c  )

* << Fim da inclusão

                / ( 10 ** ( tcurx-currdec - 2 ) ).

    v_reais_c = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_c.

    clear bkpf.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    read table itab_tcurx with key

                             currkey = itab_zycbt006-waers into tcurx.

    if sy-subrc <> 0.

      tcurx-currdec = 2.

    endif.

* << Fim da inclusão

    clear itab_zycbt084.

    read table itab_zycbt084 with key

                                    nrseqc   = itab_zycbt006-nrseqc

                                    nrinvoic = itab_zycbt006-nrinvoic

                                    nrparc   = itab_zycbt006-nrparc

                                    nrparcf  = itab_zycbt006-nrparcf

                                    tpdesp   = itab_zycbt006-tpdesp

                                    gsberf   = itab_zycbt006-gsberf

                                    dtincl   = itab_zycbt006-dtincl

                                    dtvincul = itab_zycbt006-dtvincul

...

 

...

                period_not_assigned    = 5

                version_undefined      = 6

                others                 = 7.

      select single kursf from bkpf

                   into bkpf-kursf

                   where belnr eq itab_zycbt084-belnr

                     and bukrs eq itab_zycbt006-bukrs

                     and gjahr eq v_year.

      v_reais_f2 = itab_zycbt084-result_saldo /

                  ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

      v_reais_f2 = ( ( bkpf-kursf / v_defator )

                             * v_parafator ) * v_reais_f2.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

      v_reais_f2 = ( ( bkpf-kursf / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f2.

* << Fim da inclusão

    endif..

    read table itab_zycbt209

         with key nrinvoic = itab_zycbt006-nrinvoic

                  nrparcf  = itab_zycbt006-nrparcf

                  gsberf   = itab_zycbt006-gsberf

                  nrseqc   = itab_zycbt006-nrseqc.

    if sy-subrc ne 0.

      read table itab_zycbt209

           with key nrinvoic = itab_zycbt006-nrinvoic

                    nrparcf  = itab_zycbt006-nrparcf

...

 

...

                period_in_not_valid    = 4

                period_not_assigned    = 5

                version_undefined      = 6

                others                 = 7.

      select single kursf from bkpf

                   into bkpf-kursf

                   where belnr eq itab_zycbt209-belnr_f28

                     and bukrs eq itab_zycbt006-bukrs

                     and gjahr eq v_year.

    endif.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( itab_zycbt006-vlme - itab_zycbt084-result_saldo )

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( itab_paridade_ant-vlme - itab_zycbt084-result_saldo )

* << Fim da inclusão

                / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( ( bkpf-kursf / v_defator )

                           * v_parafator ) * v_reais_f.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( ( bkpf-kursf / v_defator_fat )

                           * v_parafator_fat ) * v_reais_f.

* << Fim da inclusão

  else.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    read table itab_paridade

          with key nrinvoic = itab_zycbt006-nrinvoic

                   gsberf   = itab_zycbt006-gsberf

                   nrparcf  = itab_zycbt006-nrparcf.

    if sy-subrc eq 0.

      v_reais_c = itab_paridade-v_vlme_c.

    else.

      v_reais_c = ( itab_paridade-v_vlme_c * itab_paridade-v_parid ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_c = ( itab_paridade_ant-v_vlme_c *

                  itab_paridade_ant-v_parid ).

    read table itab_tcurx with key

                             currkey = /pws/zycbe001-waers into tcurx.

    if sy-subrc <> 0.

      tcurx-currdec = 2.

* << Fim da inclusão

    endif.

    v_reais_c = v_reais_c / ( 10 ** ( tcurx-currdec - 2 ) ).

    v_reais_c = ( ( v_txcbrl_cont / v_defator )

                           * v_parafator ) * v_reais_c.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    read table itab_tcurx with key

                             currkey = itab_zycbt006-waers into tcurx.

    if sy-subrc <> 0.

      tcurx-currdec = 2.

    endif.

* << Fim da inclusão

    clear itab_zycbt084.

    read table itab_zycbt084 with key

                                    nrseqc   = itab_zycbt006-nrseqc

                                    nrinvoic = itab_zycbt006-nrinvoic

                                    nrparc   = itab_zycbt006-nrparc

                                    nrparcf  = itab_zycbt006-nrparcf

                                    tpdesp   = itab_zycbt006-tpdesp

                                    gsberf   = itab_zycbt006-gsberf

                                    dtincl   = itab_zycbt006-dtincl

                                    dtvincul = itab_zycbt006-dtvincul

                                    dtpagext = itab_zycbt006-dtpagext

                                    dtpagto  = itab_zycbt006-dtpagto

                                    dtvencto = itab_zycbt006-dtvencto

                                    liq_and  = space

                                    tdesmemb = 'V'.

    if sy-subrc = 0.

      v_reais_f2 = itab_zycbt084-result_saldo /

                            ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

      v_reais_f2 = ( ( v_txcbrl_fat / v_defator )

                             * v_parafator ) * v_reais_f2.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

      v_reais_f2 = ( ( v_txcbrl_fat / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f2.

* << Fim da inclusão

    endif.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( itab_paridade-v_vlme_c - itab_zycbt084-result_saldo )

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f =

            ( itab_paridade_ant-v_vlme_c - itab_zycbt084-result_saldo )

* << Fim da inclusão

                / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( ( v_txcbrl_fat / v_defator )

                           * v_parafator ) * v_reais_f.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS_ESTORN

    v_reais_f = ( ( v_txcbrl_fat / v_defator_fat )

                           * v_parafator_fat ) * v_reais_f.

* << Fim da inclusão

  endif.

  v_reais_f = v_reais_f + v_reais_f2.

  v_variacao = v_reais_c - v_reais_f.

endform.

form converte_brl.

  call function '/PWS/ZYCB_MONTANTE_CONVERTE'

       exporting

            i_montante                 = '1'

            i_demoeda                  = /pws/zycbe001-waers

            i_paramoeda                = wa_zycbt007-waersb

...

 

...

            e_parafator                = v_parafator

       exceptions

            i_demoeda_nao_encontrado   = 1

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            others                     = 8.

* >> Início da exclusão: FORM CONVERTE_BRL

  select single * from tcurx

            where currkey = /pws/zycbe001-waers.

* << Fim da exclusão

* >> Início da inclusão: FORM CONVERTE_BRL

  read table itab_tcurx with key

                           currkey = /pws/zycbe001-waers into tcurx.

* << Fim da inclusão

  if sy-subrc <> 0.

    tcurx-currdec = 2.

  endif.

  call function '/PWS/ZYCB_MONTANTE_CONVERTE'

       exporting

            i_montante                 = '1'

            i_demoeda                  = itab_zycbt006-waers

            i_paramoeda                = wa_zycbt007-waersb

            i_ctmoeda                  = t001a-kurst

            i_dtbase                   = itab_zycbt006-dtpagto

       importing

            e_txc                      = v_txcbrl_fat

* >> Início da exclusão: FORM CONVERTE_BRL

            e_defator                  = v_defator

            e_parafator                = v_parafator

* << Fim da exclusão

* >> Início da inclusão: FORM CONVERTE_BRL

            e_defator                  = v_defator_fat

            e_parafator                = v_parafator_fat

* << Fim da inclusão

       exceptions

            i_demoeda_nao_encontrado   = 1

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            others                     = 8.

* >> Início da exclusão: FORM CONVERTE_BRL

  select single * from tcurx

            where currkey = itab_zycbt006-waers.

* << Fim da exclusão

* >> Início da inclusão: FORM CONVERTE_BRL

  read table itab_tcurx with key

                           currkey = itab_zycbt006-waers into tcurx.

* << Fim da inclusão

  if sy-subrc <> 0.

    tcurx-currdec = 2.

* >> Início da inclusão: FORM CONVERTE_BRL

  endif.

  if v_defator is initial.

    v_defator = 1.

  endif.

  if v_defator_fat is initial.

    v_defator_fat = 1.

  endif.

  if v_parafator is initial.

    v_parafator = 1.

* << Fim da inclusão

  endif.

* >> Início da inclusão: FORM CONVERTE_BRL

  if v_parafator_fat is initial.

    v_parafator_fat = 1.

  endif.

* << Fim da inclusão

endform.

form clearing_cliente.

  perform clear_date_batch.

  clear itab_zycbt036.

...

 

...

      itab_zycbt005-belnr    = v_zycbe001-belnr2.

      modify itab_zycbt005 transporting belnr

                           where nrseqc   = itab_zycbt006-nrseqc

                             and nrinvoic = itab_zycbt006-nrinvoic

                             and gsberf   = itab_zycbt006-gsberf

                             and nrparcf  = itab_zycbt006-nrparcf

                             and dtvincul = itab_zycbt006-dtvincul

                             and dtvencto = itab_zycbt006-dtvencto.

    endif.

  endloop.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO_ARBITR_2

  if sy-subrc ne 0.

    v_subrc = 4.

  endif.

* << Fim da inclusão

  if v_subrc ne 0.

    describe table itab_zycbt006 lines v_linha.

    do v_linha times.

      v_index = v_linha - sy-index + 1.

      read table itab_zycbt006 index v_index.

      check itab_zycbt006-status = 'I' and

            itab_zycbt006-v_armda  = 'X'.

      clear itab_zycbt084.

      read table itab_zycbt084 with key

                                    nrseqc   = itab_zycbt006-nrseqc

...

 

...

                         and dtpagext = itab_zycbt006-dtpagext

                         and dtpagto  = itab_zycbt006-dtpagto

                         and dtvencto = itab_zycbt006-dtvencto

                         and liq_and  = space

                         and tdesmemb = 'V'.

        endif.

      endif.

    enddo.

    v_subrc = 4.

  endif.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO_ARBITR_2

  check v_subrc = 0.

* << Fim da inclusão

  loop at itab_zycbt006 where status = 'C'

                         and  v_armda  = 'X'.

* >> Início da inclusão: FORM LANCAMENTO_PROVISAO_ARBITR_2

    check not itab_zycbt006-belnr_d is initial.

* << Fim da inclusão

    if not itab_zycbt006-belnr is initial.

      itab_zycbt006-belnr5 = itab_zycbt006-belnr_d.

    else.

      itab_zycbt006-belnr = itab_zycbt006-belnr_d.

    endif.

...

 

...

      itab_erro-vbeln = itab_zycbt006-belnr.

      itab_erro-msg   = itab_zycbt034-descricao.

      append itab_erro.

    endloop.

    v_subrc = 4.

  endif.

  sy-subrc = v_subrc.

endform.

form calcula_diferenca_reais.

  clear: v_reais_f, v_reais_f2, v_reais_c.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

  data: v_defatorc   type tcurr-ffact,

        v_parafatorc type tcurr-ffact.

  perform determina_fator using v_parafatorc

                                v_defatorc.

* << Fim da inclusão

  clear skb1.

  select single xsalh from skb1

               into skb1-xsalh

               where bukrs eq itab_zycbt006-bukrs

                 and saknr eq itab_zycbe033-agkon.

  clear t001a.

  select single kurst from t001a

                      into t001a-kurst

                      where bukrs eq itab_zycbt006-bukrs.

  clear t001.

...

 

...

              empresa_nao_encontrada = 3

              period_in_not_valid    = 4

              period_not_assigned    = 5

              version_undefined      = 6

              others                 = 7.

    select single kursf from bkpf

                 into bkpf-kursf

                 where belnr eq itab_zycbt006-belnr_d

                   and bukrs eq itab_zycbt006-bukrs

                   and gjahr eq v_year.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

    read table itab_paridade

          with key nrinvoic = itab_zycbt006-nrinvoic

                   gsberf   = itab_zycbt006-gsberf

                   nrparcf  = itab_zycbt006-nrparcf.

    if sy-subrc eq 0.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

    read table itab_paridade with key nrinvoic = itab_zycbt006-nrinvoic

                                      nrparcf  = itab_zycbt006-nrparcf

                                      gsberf   = itab_zycbt006-gsberf.

    if sy-subrc = 0.

* << Fim da inclusão

      v_reais_c = itab_paridade-v_vlme_c.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

    else.

      v_reais_c = itab_zycbt006-vlme * itab_zycbt005-parid.

* << Fim da exclusão

    endif.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

    clear tcurx-currdec.

    select single * from tcurx

                    where currkey = /pws/zycbe001-waers.

    if sy-subrc <> 0.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

    read table itab_tcurx with key currkey = /pws/zycbe001-waers

                               into tcurx.

    if sy-subrc ne 0.

* << Fim da inclusão

      tcurx-currdec = 2.

    endif.

    if tcurx-currdec = 0.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_c = v_reais_c * ( 10 ** ( tcurx-currdec - 2 ) ).

    else.

* << Fim da exclusão

      v_reais_c = v_reais_c / ( 10 ** ( tcurx-currdec - 2 ) ).

    endif.

    v_reais_c = ( ( bkpf-kursf / v_defator )

...

 

...

                empresa_nao_encontrada = 3

                period_in_not_valid    = 4

                period_not_assigned    = 5

                version_undefined      = 6

                others                 = 7.

      select single kursf from bkpf

                   into bkpf-kursf

                   where belnr eq itab_zycbt084-belnr

                     and bukrs eq itab_zycbt006-bukrs

                     and gjahr eq v_year.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f2 = itab_zycbt084-result_saldo /

                  ( 10 ** ( tcurx-currdec - 2 ) ).

      v_reais_f2 = ( ( bkpf-kursf / v_defator )

                             * v_parafator ) * v_reais_f2.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f2 = itab_zycbt084-result_saldo.

      read table itab_tcurx with key

                               currkey = itab_zycbt005-waers into tcurx.

      if sy-subrc = 0 and tcurx-currdec = 0.

        read table itab_tcurx with key

                             currkey = itab_zycbt005-waers_c into tcurx.

        if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

          v_reais_f2 = v_reais_f2  / ( 10 ** ( 0 - 2 ) ).

        endif.

      endif.

      v_reais_f2 = ( ( bkpf-kursf / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f2.

* << Fim da inclusão

    endif.

    if not v_data_f_28 is initial.

      clear v_year.

      call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

           exporting

                v_bukrs                = itab_zycbt006-bukrs

                v_date                 = v_data_f_28

           importing

                v_year                 = v_year

           exceptions

...

 

...

                empresa_nao_encontrada = 3

                period_in_not_valid    = 4

                period_not_assigned    = 5

                version_undefined      = 6

                others                 = 7.

      select single kursf from bkpf

                   into bkpf-kursf

                   where belnr eq itab_zycbt006-belnr_f28

                     and bukrs eq itab_zycbt006-bukrs

                     and gjahr eq v_year.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f = ( itab_zycbt006-vlme - itab_zycbt084-result_saldo )

                  / ( 10 ** ( tcurx-currdec - 2 ) ).

      v_reais_f = ( ( bkpf-kursf / v_defator )

                             * v_parafator ) * v_reais_f.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f = itab_zycbt006-vlme - itab_zycbt084-result_saldo.

      read table itab_tcurx with key

                               currkey = itab_zycbt005-waers into tcurx.

      if sy-subrc = 0 and tcurx-currdec = 0.

        read table itab_tcurx with key

                             currkey = itab_zycbt005-waers_c into tcurx.

        if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

          v_reais_f = v_reais_f  / ( 10 ** ( 0 - 2 ) ).

        endif.

      endif.

      v_reais_f = ( ( bkpf-kursf / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f.

* << Fim da inclusão

    endif.

  else.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

    read table itab_paridade

          with key nrinvoic = itab_zycbt006-nrinvoic

                   gsberf   = itab_zycbt006-gsberf

                   nrparcf  = itab_zycbt006-nrparcf.

    if sy-subrc eq 0.

      v_reais_c = itab_paridade-v_vlme_c.

    else.

      v_reais_c = ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

    v_reais_c = itab_zycbt006-vlme *

      ( ( itab_zycbt005-parid / v_defatorc ) * v_parafatorc ).

    read table itab_tcurx with key currkey = /pws/zycbe001-waers

                               into tcurx.

    if sy-subrc ne 0.

      tcurx-currdec = 2.

* << Fim da inclusão

    endif.

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

    if tcurx-currdec = 0.

* << Fim da inclusão

    v_reais_c = v_reais_c / ( 10 ** ( tcurx-currdec - 2 ) ).

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

    endif.

* << Fim da inclusão

    v_reais_c = ( ( v_txcbrl_cont / v_defator )

                           * v_parafator ) * v_reais_c.

...

 

...

                                    tpdesp   = itab_zycbt006-tpdesp

                                    gsberf   = itab_zycbt006-gsberf

                                    dtincl   = itab_zycbt006-dtincl

                                    dtvincul = itab_zycbt006-dtvincul

                                    dtpagext = itab_zycbt006-dtpagext

                                    dtpagto  = itab_zycbt006-dtpagto

                                    dtvencto = itab_zycbt006-dtvencto

                                    liq_and  = space

                                    tdesmemb = 'V'.

    if sy-subrc = 0.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f2 = itab_zycbt084-result_saldo /

                            ( 10 ** ( tcurx-currdec - 2 ) ).

      v_reais_f2 = ( ( v_txcbrl_fat / v_defator )

                             * v_parafator ) * v_reais_f2.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f2 = itab_zycbt084-result_saldo.

      read table itab_tcurx with key

                               currkey = itab_zycbt005-waers into tcurx.

      if sy-subrc = 0 and tcurx-currdec = 0.

        read table itab_tcurx with key

                             currkey = itab_zycbt005-waers_c into tcurx.

        if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

          v_reais_f2 = v_reais_f2  / ( 10 ** ( 0 - 2 ) ).

        endif.

      endif.

      v_reais_f2 = ( ( v_txcbrl_fat / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f2.

* << Fim da inclusão

    endif.

    if not v_data_f_28 is initial.

* >> Início da exclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f = ( itab_zycbt006-vlme - itab_zycbt084-result_saldo )

                  / ( 10 ** ( tcurx-currdec - 2 ) ).

      v_reais_f = ( ( v_txcbrl_fat / v_defator )

                             * v_parafator ) * v_reais_f.

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULA_DIFERENCA_REAIS

      v_reais_f = itab_zycbt006-vlme - itab_zycbt084-result_saldo.

      read table itab_tcurx with key

                               currkey = itab_zycbt005-waers into tcurx.

      if sy-subrc = 0 and tcurx-currdec = 0.

        read table itab_tcurx with key

                             currkey = itab_zycbt005-waers_c into tcurx.

        if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

          v_reais_f = v_reais_f  / ( 10 ** ( 0 - 2 ) ).

        endif.

      endif.

      v_reais_f = ( ( v_txcbrl_fat / v_defator_fat )

                             * v_parafator_fat ) * v_reais_f.

* << Fim da inclusão

    endif.

  endif.

  v_reais_f = v_reais_f + v_reais_f2.

  v_variacao = v_reais_c - v_reais_f.

endform.

form fill_date6_f30_2.

  clear: v_data.

  itab_zycbe033-tcode  = 'F-30'.

  itab_zycbe033-tabela = 'ZYCBT006'.

  concatenate itab_zycbt006-nrseqc itab_zycbt006-tpdesp

...

 

...

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt006-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTEMB'.

          select single dtemb from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt006-nrinvoic.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt006-dtvencto.

* >> Início da inclusão: FORM FILL_DATE6_F30_2

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM DESMEMBRA_LIQ_AND

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

  /pws/zycbt084-liq_and  = space.

  /pws/zycbt084-tdesmemb = ' '.

  modify /pws/zycbt084 from /pws/zycbt084.

  if v_vinculacao is initial.

    commit work.

  endif.

  clear /pws/zycbt084.

endform.

form clearing_liq_and using    p_datum

                      changing v_subrc.

* >> Início da inclusão: FORM CLEARING_LIQ_AND

  clear v_subrc.

* << Fim da inclusão

  perform clear_date_batch.

  itab_zycbe033-tcode  = 'F-30'.

  concatenate itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

         into itab_zycbe033-cpochv.

  itab_zycbe033-tabela = 'ZYCBT209'.

  itab_zycbe033-budat = p_datum.

  itab_zycbe033-bldat = itab_zycbe033-budat.

  itab_zycbe033-bktxt   = wa_zycbt007-bktxt.

  itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.

  itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM CLEARING_LIQ_AND

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM DESM_DESC_RECEB

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

                                  gsberf   = itab_zycbt005_t-gsberf.

    if sy-subrc ne 0.

      continue.

    endif.

    read table itab_zycbt006 with key

                                  nrinvoic = itab_zycbt005_t-nrinvoic

                                  nrparcf  = itab_zycbt005_t-nrparcf

                                  gsberf   = itab_zycbt005_t-gsberf.

    check sy-subrc = 0 and itab_zycbt006-status = 'C'.

    v_index = sy-tabix.

* >> Início da exclusão: FORM PROVISIONA_DIFERENCA_JUROS

    if itab_zycbt005_t-waers eq itab_zycbt005_t-waers_c.

      v_calc_jur = itab_zycbt005_t-vlme.

    else.

      v_calc_jur = itab_zycbt005_t-vlme * itab_zycbt005_t-parid.

     select single * from tcurx where currkey = itab_zycbt005_t-waers_c.

      if sy-subrc <> 0.

        tcurx-currdec = 2.

      endif.

      v_calc_jur = v_calc_jur * ( 10 ** ( tcurx-currdec - 2 ) ).

    endif.

* << Fim da exclusão

* >> Início da inclusão: FORM PROVISIONA_DIFERENCA_JUROS

    v_calc_jur = itab_zycbt005-vlvinc.

* << Fim da inclusão

    perform seta_data_juros.

    if v_dt_pgt = 'X'.

      v_dtcalcjur = /pws/zycbe006-dtpagext.

    elseif v_dtliq = 'X'.

      v_dtcalcjur = v_dtpagto.

    else.

      case wa_zycbt007-dtjuros.

        when 'DTPAGEXT'.

          v_dtcalcjur = /pws/zycbe006-dtpagext.

        when 'DTVENCTO'.

...

 

...

    itab_zycbt002[] = itab_zycbt002_aux[].

  endif.

  select * from /pws/zycbt003

           into table itab_zycbt003

           where nrseqc = /pws/zycbt001-nrseqc.

  sort itab_zycbt003 by dtpror descending.

  select * from /pws/zycbt009

           into table itab_zycbt009.

  select * from /pws/zycbt010

           into table itab_zycbt010.

* >> Início da exclusão: FORM CALCULA_JUROS_DIFERENCA

  select * from tcurx

         into table itab_tcurx

         where currkey = /pws/zycbt001-waers.

* << Fim da exclusão

  v_escalonado = /pws/zycbt001-tpcalcjur.

  v_dtde  = v_data_de.

  v_dtate = v_dtcalcjur.

  if ( not itab_zycbt005_t-dtpror   is initial and

       not itab_zycbt005_t-txjtotal is initial and

       not itab_zycbt005_t-tptxjur  is initial ).

    v_dt_pror = itab_zycbt005_t-dtpror.

  endif.

  v_pror_cmb = v_dt_pror.

  v_dtliquid = /pws/zycbt001-dtliquid.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM BAIXA_ACE_PERFORMANCE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt006-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM BAIXA_CLIENTE_PERFORMANCE

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'

            or itab_zyglt321-cpocb = 'NRSEQC'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

...

 

...

                    data_nao_encontrada    = 2

                    empresa_nao_encontrada = 3

                    period_in_not_valid    = 4

                    period_not_assigned    = 5

                    version_undefined      = 6

                    others                 = 7.

          itab_zycbt006_aux4-dtpagto = itab_zycbt209-dtbelnr.

          itab_zycbt006_aux4-belnr   = itab_zycbt209-belnr.

          itab_zycbt006_aux4-gjahr   = v_year.

          append itab_zycbt006_aux4.

* >> Início da inclusão: FORM ESTORNO_PERIODO_AB_PERF

          itab_zycbt006_aux4-belnr   = itab_zycbt006-belnr.

          append itab_zycbt006_aux4.

* << Fim da inclusão

        endif.

      endloop.

    endloop.

    if not itab_zycbt006_aux4[] is initial.

      clear itab_zyglt100.

      refresh: itab_zyglt100.

      if itab_zyglt100[] is initial.

        v_syrepid = sy-repid.

        call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

             exporting

...

 

...

        elseif itab_zyglt321-cpocb = 'DTVENCTO'.

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM CLEARING_PERF

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        elseif itab_zyglt321-cpocb = 'NRINVOIC'.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

         and   shkzg  = 'H'.

  select single ztag1 from t052

    into v_ztag1

    where zterm = v_zterm.

  v_zbd1t = v_ztag1.

  loop at itab_zycbt045 where nrinvoic = itab_zycbt030-nrinvoic.

    v_zbd1t = v_zbd1t + itab_zycbt045-nrdias.

  endloop.

  itab_zycbe033-zbd1t  = v_zbd1t.

endform.

* >> Início da exclusão: FORM VERIFICA_CASAS_DECIMAIS

form verifica_casas_decimais

  using

    value(p_valor)

    value(p_waers)

    value(p_waers_c)

  changing

    p_valor_aj.

  data: v_decimais   like tcurx-currdec,

        v_decimais_c like tcurx-currdec.

  select single currdec

    from tcurx

    into v_decimais

    where currkey eq p_waers.

  if sy-subrc ne 0.

    v_decimais = 2.

  endif.

  select single currdec

    from tcurx

    into v_decimais_c

    where currkey eq p_waers_c.

  if sy-subrc ne 0.

    v_decimais_c = 2.

  endif.

  check v_decimais ne v_decimais_c.

  if v_decimais eq 0.

    p_valor_aj = p_valor / 100.

  elseif v_decimais ne 2.

    p_valor_aj = p_valor * 100.

  endif.

endform.

* << Fim da exclusão

form executa_exit_p

  using value(p_exit) like /pws/zyglt100-zexit.

  constants:

    c_nome_prog like /pws/zyglt100-func value '/PWS/SAPMZYCB004'.

  if itab_zyglt100[] is initial.

    call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

         exporting

              i_codmod      = 'E'

              i_func        = c_nome_prog

         tables

...

 

...

    perform log in program (w_prog) using    p_dados

                                             p_tabela

                                    changing p_wa_log

                                    if found.

  endif.

endform.

form desm_conta_corrente

  using

     p_v_slliq type /pws/zycbt006-vlme

                                 changing v_subrc.

* >> Início da inclusão: FORM DESM_CONTA_CORRENTE

  clear v_subrc.

* << Fim da inclusão

  if /pws/zyglt009-comp_aut_cc is initial.

    if wa_recurso_aux-descorigem eq c_liq_vme.

      if <fs_zycbt226>-sld_exterior >= p_v_slliq.

        itab_recurso_aux-vl_total_saldo = p_v_slliq.

      elseif <fs_zycbt226>-sld_exterior =< p_v_slliq.

        itab_recurso_aux-vl_total_saldo = <fs_zycbt226>-sld_exterior.

      endif.

      modify itab_recurso_aux transporting vl_total_saldo

                              where descorigem eq c_liq_vme

                              and nrinvoic = itab_zycbt006-nrinvoic

...

 

...

    and   dtpagto  = v_dtpagto.                         "#EC CI_NOFIRST

  if not itab_zycbt231[] is initial.

    select * from /pws/zycbt226

      into table itab_zycbt226

      for all entries in itab_zycbt231

      where nrseq = itab_zycbt231-nrseq.

  endif.

endform.

form clearing_cc

                                 changing v_subrc.

* >> Início da inclusão: FORM CLEARING_CC

  clear v_subrc.

* << Fim da inclusão

  if not /pws/zyglt009-comp_aut_cc is initial.

    perform clear_date_batch.

    perform busca_parametros_op.

    itab_zycbe033-tcode  = 'F-30'.

    itab_zycbe033-tabela = 'ZYCBT006'.

    itab_zycbe033-cpochv = /pws/zycbe005-nrseqc.

    itab_zycbe033-bukrs = <fs_zycbt226>-bukrs.

    itab_zycbe033-budat    = v_dtpagto.

    itab_zycbe033-bldat    = v_dtpagto.

    itab_zycbe033-blart    = /pws/zycbt011-blart.

...

 

...

   <fs_documento>  type t_documento,

   <fs_vinculacao> type t_vinculacao.

  data:

    itab_zycbt017       type t_itab_zycbt017,

    itab_zycbt030       type t_itab_zycbt030,

    itab_zycbt069       type t_itab_zycbt069,

    itab_zycbt219       type t_itab_zycbt219,

    itab_zycbt209       type t_itab_zycbt209.

  check not itab_zycbt005[] is initial.

  refresh itab_documento.

* >> Início da inclusão: FORM VERIFICA_DOCUMENTOS

  clear:   itab_vinculacao, itab_documento.

  refresh: itab_vinculacao.

* << Fim da inclusão

  loop at itab_zycbt005.

    read table itab_zycbt006

      with key

        nrinvoic = itab_zycbt005-nrinvoic

        nrparcf  = itab_zycbt005-nrparcf

        gsberf   = itab_zycbt005-gsberf

        status   = 'I'

      transporting no fields.

    check sy-subrc eq 0.

    wa_vinculacao-nrseqc   = itab_zycbt005-nrseqc.

...

 

...

          select single dtvencto from /pws/zycet001

                 into itab_zycbe033-zfbdt

                 where nrseq = itab_zycbt030-nrinvoic.

        elseif itab_zyglt321-cpocb = 'DTVINCUL'.

          itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.

        endif.

      when 'VALUT'.

        if itab_zyglt321-cpocb = 'DTVENCTO'.

          itab_zycbe033-d_valut = itab_zycbt017-dtvencto.

          itab_zycbe033-c_valut = itab_zycbt017-dtvencto.

* >> Início da inclusão: FORM LANCAMENTO_LIQUID_F_02

        elseif itab_zyglt321-cpocb = 'DTLIQUID'.

          itab_zycbe033-d_valut = itab_zycbt006-dtpagto.

          itab_zycbe033-c_valut = itab_zycbt006-dtpagto.

* << Fim da inclusão

        endif.

      when 'ZUONR'.

        if itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.

          itab_zycbe033-c_zuonr = /pws/zycbe001-nrcontr.

        elseif itab_zyglt321-cpocb = 'NRSEQ'.

          itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.

          itab_zycbe033-c_zuonr = /pws/zycbe001-nrseqc.

        elseif itab_zyglt321-cpocb is initial and

               not itab_zyglt321-descr is initial.

...

 

...

             and gsberf   = itab_zycbt006-gsberf

             and dtvincul = itab_zycbt006-dtvincul

             and dtvencto = itab_zycbt006-dtvencto

             and dtpagto  = itab_zycbt006-dtpagto

             and dtpagext = itab_zycbt006-dtpagext

             and liq_and  = p_liq_and

             and tdesmemb = p_tdesmemb.

    endselect.

  endif.

endform.

* >> Início da inclusão:

form ajusta_decimais using    p_waers_f

                              p_waers_c

                     changing p_valor.

  data: v_dec_f type tcurx-currdec,

        v_dec_c type tcurx-currdec,

        v_dec_dif    type i.

  read table itab_tcurx with key currkey = p_waers_f.

  if sy-subrc ne 0.

    v_dec_f = 2.

  else.

    v_dec_f = itab_tcurx-currdec.

  endif.

  read table itab_tcurx with key currkey = p_waers_c.

  if sy-subrc ne 0.

    v_dec_c = 2.

  else.

    v_dec_c = itab_tcurx-currdec.

  endif.

  v_dec_dif = v_dec_c - v_dec_f.

  check not v_dec_dif is initial.

  if v_dec_dif < 0.

    v_dec_dif = v_dec_dif * -1.

    p_valor = p_valor / ( 10 ** ( v_dec_dif ) ).

  else.

    p_valor = p_valor * ( 10 ** ( v_dec_dif ) ).

  endif.

endform.

form carga_valor_contrato.

  data: begin of itab_zycbt005_carga occurs 0.

          include structure /pws/zycbt005.

  data: end of itab_zycbt005_carga.

  data: begin of itab_zycbt006_carga occurs 0.

          include structure /pws/zycbt006.

  data: end of itab_zycbt006_carga.

  select * from /pws/zycbt006

           into table itab_zycbt006_carga.

  delete itab_zycbt006_carga where not waers_c is initial.

  if not itab_zycbt006_carga[] is initial.

    select * from /pws/zycbt005

             into table itab_zycbt005_carga

             for all entries in itab_zycbt006_carga

             where nrseqc   = itab_zycbt006_carga-nrseqc

               and tpdesp = itab_zycbt006_carga-tpdesp

               and nrparc = itab_zycbt006_carga-nrparc

               and dtincl = itab_zycbt006_carga-dtincl

               and nrinvoic = itab_zycbt006_carga-nrinvoic

               and nrparcf  = itab_zycbt006_carga-nrparcf

               and gsberf   = itab_zycbt006_carga-gsberf

               and dtvincul = itab_zycbt006_carga-dtvincul

               and dtvencto = itab_zycbt006_carga-dtvencto.

    loop at itab_zycbt006_carga.

      read table itab_zycbt005_carga with key

                            nrseqc   = itab_zycbt006_carga-nrseqc

                            tpdesp = itab_zycbt006_carga-tpdesp

                            nrparc = itab_zycbt006_carga-nrparc

                            dtincl = itab_zycbt006_carga-dtincl

                            nrinvoic = itab_zycbt006_carga-nrinvoic

                            nrparcf  = itab_zycbt006_carga-nrparcf

                            gsberf   = itab_zycbt006_carga-gsberf

                            dtvincul = itab_zycbt006_carga-dtvincul

                            dtvencto = itab_zycbt006_carga-dtvencto.

      check sy-subrc = 0.

      itab_zycbt006_carga-waers_c = itab_zycbt005_carga-waers_c.

      if itab_zycbt006_carga-vlme = itab_zycbt005_carga-vlme_p.

        itab_zycbt006_carga-vlme_c = itab_zycbt005_carga-vlvinc.

      else.

        if itab_zycbt006_carga-waers = itab_zycbt006_carga-waers_c.

          itab_zycbt006_carga-vlme_c = itab_zycbt006_carga-vlme.

        else.

          perform determina_fator_carga using

                                        itab_zycbt006_carga-bukrs

                                        v_defator

                                        v_parafator

                                        itab_zycbt006_carga-waers

                                        itab_zycbt006_carga-waers_c.

          read table itab_tcurx with key

                         currkey = itab_zycbt006_carga-waers into tcurx.

          if sy-subrc = 0 and tcurx-currdec = 0.

            read table itab_tcurx with key

                       currkey = itab_zycbt006_carga-waers_c into tcurx.

            if sy-subrc <> 0 or ( sy-subrc = 0 and tcurx-currdec > 0 ).

              itab_zycbt006_carga-vlme =

              itab_zycbt006_carga-vlme  / ( 10 ** ( 0 - 2 ) ).

            endif.

          endif.

          itab_zycbt006_carga-vlme_c =  itab_zycbt006_carga-vlme *

                  ( ( itab_zycbt005_carga-parid / v_defator )

                      * v_parafator ).

        endif.

      endif.

      if itab_zycbt006_carga-vlme_c > 0.

        update /pws/zycbt006 set waers_c = itab_zycbt006_carga-waers_c

                                 vlme_c  = itab_zycbt006_carga-vlme_c

                          where nrseqc   = itab_zycbt006_carga-nrseqc

                            and tpdesp   = itab_zycbt006_carga-tpdesp

                            and nrparc   = itab_zycbt006_carga-nrparc

                            and dtincl   = itab_zycbt006_carga-dtincl

                            and nrinvoic = itab_zycbt006_carga-nrinvoic

                            and nrparcf  = itab_zycbt006_carga-nrparcf

                            and gsberf   = itab_zycbt006_carga-gsberf

                            and dtvincul = itab_zycbt006_carga-dtvincul

                            and dtvencto = itab_zycbt006_carga-dtvencto

                            and dtpagto  = itab_zycbt006_carga-dtpagto

                            and dtpagext = itab_zycbt006_carga-dtpagext.

      endif.

    endloop.

    refresh: itab_zycbt006_carga, itab_zycbt005_carga.

    if v_vinculacao is initial.

      commit work.

    endif.

  endif.

endform.

form determina_fator_carga using p_bukrs

                                 p_defator

                                 p_parafator

                                 p_waers

                                 p_waers_c.

  if p_waers = p_waers_c.

    p_parafator = p_defator = 1.

  else.

    select single *

      from t001a

      where bukrs = p_bukrs.

    select single ffact tfact

      from tcurf

      into  (p_defator,

             p_parafator)

      where kurst = t001a-kurst

        and fcurr =  p_waers

        and tcurr =  p_waers_c

      and gdatu >= sy-datum.                              "#EC PORTABLE

  endif.

  if p_defator = 0.

    p_defator = 1.

  endif.

  if p_parafator = 0.

    p_parafator = 1.

  endif.

endform.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004I01

 

...

ENDMODULE.

MODULE seleciona_dados INPUT.

  SELECT * FROM /pws/zycbt002

           INTO TABLE itab_zycbt002j

           WHERE nrseqc = /pws/zycbe005-nrseqc

           AND tpparc = 'J'.

  SELECT * FROM /pws/zycbt009

           INTO TABLE itab_zycbt009.

  SELECT * FROM /pws/zycbt010

           INTO TABLE itab_zycbt010.

* >> Início da exclusão: MODULE SELECIONA_DADOS

  SELECT * FROM tcurx

           INTO TABLE itab_tcurx.

* << Fim da exclusão

  SELECT * FROM /pws/zycbt001

           INTO TABLE itab_zycbt001

           WHERE nrseqc = /pws/zycbe005-nrseqc.

  READ TABLE itab_zycbt001 INDEX 1.

  CASE itab_zycbt001-fdtjuros.

    WHEN 'O'.

      v_dtoperac = itab_zycbt001-dtcontr.

    WHEN 'D'.

      v_dtoperac = itab_zycbt001-dtdesem.

    WHEN OTHERS.

...

 

...

    IF itab_zycbt005-dtcredext NE '00000000' AND

       itab_zycbt005-dtcredext NE '        '.

      itab_zycbt005-v_vljur = itab_zycbt005-vljur.

      MODIFY itab_zycbt005 INDEX v_index.

      CONTINUE.

    ENDIF.

    READ TABLE itab_zycbt001 INDEX 1.

    IF itab_zycbt001-tpcontr+0(1) CA 'ACET' OR

     ( itab_zycbt001-tpcontr+0(01) EQ 'D' AND

       /pws/zycbt089-f_cont_vinc   EQ 'A' ) .

* >> Início da exclusão: MODULE CALCULA_JUROS

      IF itab_zycbt005-waers EQ itab_zycbt005-waers_c.

        v_calc_jur = itab_zycbt005-vlme.

      ELSE.

        v_calc_jur = itab_zycbt005-vlme * itab_zycbt005-parid.

      ENDIF.

* << Fim da exclusão

* >> Início da inclusão: MODULE CALCULA_JUROS

      v_calc_jur = itab_zycbt005-vlvinc.

* << Fim da inclusão

      PERFORM seta_data_juros.

      IF v_dt_pgt = 'X'.

        v_dtcalcjur = /pws/zycbe006-dtpagext.

      ELSEIF v_dtliq = 'X'.

        v_dtcalcjur = v_dtpagto.

      ELSE.

        CASE wa_zycbt007-dtjuros.

          WHEN 'DTPAGEXT'.

            v_dtcalcjur = /pws/zycbe006-dtpagext.

          WHEN 'DTVENCTO'.

            v_dtcalcjur = itab_zycbt005-dtvencto.

          WHEN 'DTPAGTO'.

            v_dtcalcjur = v_dtpagto.

        ENDCASE.

      ENDIF.

      CLEAR itab_zycbt005-v_vljur.

      CLEAR v_zycbe005.

      MOVE-CORRESPONDING itab_zycbt005 TO v_zycbe005.

* >> Início da exclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers_c.

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      v_calc_jur           = v_calc_jur *

                              ( 10 ** ( tcurx-currdec - 2 ) ).

* << Fim da exclusão

      IF NOT /pws/zycbe001-ffrcalc IS INITIAL.

        CALL FUNCTION '/PWS/ZYCB_CALCULA_JUROS'

             EXPORTING

                  zycbe005          = v_zycbe005

                  data_fim          = v_dtcalcjur

                  vlme              = v_calc_jur

                  empresa           = itab_zycbt005-bukrs

             IMPORTING

                  vl_juros          = itab_zycbt005-v_vljur

                  vl_jur_acc        = v_vljur_acc

...

 

...

              MESSAGE i015 WITH text-167.

            WHEN 2.

              MESSAGE i015 WITH text-168.

          ENDCASE.

        ENDIF.

      ENDIF.

      IF itab_zycbt001-tpcontr(1) = 'E'.

        v_vljur_ace = itab_zycbt005-v_vljur.

        CLEAR v_vljur_acc.

      ENDIF.

* >> Início da exclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers_c.

* << Fim da exclusão

* >> Início da inclusão: MODULE CALCULA_JUROS

      read table itab_tcurx with key

                             currkey = itab_zycbt005-waers_c into tcurx.

* << Fim da inclusão

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      itab_zycbt005-v_vljur = itab_zycbt005-v_vljur *

                           ( 10 ** ( tcurx-currdec - 2 ) ).

      v_vljur_acc           = v_vljur_acc *

                           ( 10 ** ( tcurx-currdec - 2 ) ).

      v_vljur_ace           = v_vljur_ace *

                           ( 10 ** ( tcurx-currdec - 2 ) ).

      MOVE:  v_vljur_acc TO /pws/zycbe006-vljur_acc,

...

 

...

             FROM /pws/zycbt006

             INTO /pws/zycbt006-nrinvoic

             WHERE nrseqc EQ itab_zycbt005-nrseqc

               AND dtpagto EQ v_dtpagto.

      IF sy-subrc EQ 0 AND sy-tcode EQ c_transacao_c.

        CLEAR itab_zycbt005-v_vljur.

        MODIFY itab_zycbt005 INDEX v_index.

        EXIT.

      ENDIF.

      PERFORM processa_pre_pagto.

* >> Início da exclusão: MODULE CALCULA_JUROS

      SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers.

* << Fim da exclusão

* >> Início da inclusão: MODULE CALCULA_JUROS

      read table itab_tcurx with key

                             currkey = itab_zycbt005-waers into tcurx.

* << Fim da inclusão

      IF sy-subrc <> 0.

        tcurx-currdec = 2.

      ENDIF.

      itab_zycbt005-v_vljur = itab_zycbt005-v_vljur *

                              ( 10 ** ( tcurx-currdec - 2 ) ).

      MODIFY itab_zycbt005 INDEX v_index.

      EXIT.

    ENDIF.

  ENDLOOP.

ENDMODULE.

MODULE verifica_credext INPUT.

  IF /pws/zycbe006-dtpagext > v_dtpagto.

    MESSAGE i011(pc) WITH text-081.

    /pws/zycbe006-dtpagext = v_dtpagto.

* >> Início da inclusão: MODULE VERIFICA_CREDEXT

    perform seleciona_dados.

* << Fim da inclusão

    CALL SCREEN '0100'.

  ENDIF.

ENDMODULE.

MODULE verifica_liq INPUT.

  CLEAR v_existe_liq.

ENDMODULE.

MODULE apaga_faturas INPUT.

  LOOP AT itab_zycbt005_liq.

    DELETE itab_zycbt005 WHERE nrinvoic = itab_zycbt005_liq-nrinvoic

                           AND nrparcf  = itab_zycbt005_liq-nrparcf

                           AND gsberf   = itab_zycbt005_liq-gsberf.

  ENDLOOP.

  CLEAR itab_zycbt005_liq.

  REFRESH itab_zycbt005_liq.

ENDMODULE.

MODULE casas_decimais INPUT.

* >> Início da exclusão: MODULE CASAS_DECIMAIS

  SELECT SINGLE * FROM tcurx WHERE currkey = itab_zycbt005-waers.

* << Fim da exclusão

* >> Início da inclusão: MODULE CASAS_DECIMAIS

  read table itab_tcurx with key

                         currkey = itab_zycbt005-waers into tcurx.

* << Fim da inclusão

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  /pws/zycbe006-vlme = /pws/zycbe006-vlme  *

                       ( 10 ** ( tcurx-currdec - 2 ) ).

ENDMODULE.

MODULE verifica_liquidacao INPUT.

  PERFORM atualiza_deduz_juros.

  CLEAR v_existe_liq.

  CHECK v_status_s NE '0' AND

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004O01

 

...

           screen-name = '/PWS/ZYCBE006-DTPAGEXT'   or

           screen-name = 'V_DT_PGT'                 or

           screen-name = 'V_FTXT'                   or

           screen-name = 'V_DTPAGTO'                or

           screen-name = 'V_DTLIQ'                  or

           screen-name = 'V_TXTINF'.

          screen-input = '0'.

        endif.

        modify screen.

      endloop.

* >> Início da inclusão: MODULE SET_SCRREN_TC_RECURSO_AUX

    else.

      loop at screen.

        if screen-name = '/PWS/ZYCBE006-DTPAGEXT'   or

           screen-name = 'V_DT_PGT'                 or

           screen-name = 'V_DTPAGTO'                or

           screen-name = 'V_DTLIQ'.

          screen-input = '0'.

        endif.

        modify screen.

      endloop.

* << Fim da inclusão

    endif.

  endif.

endmodule.

module mensagem_tc_recurso_aux output.

  perform mensagem_tc_recurso_aux.

endmodule.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004TOP

 

...

      v_vlme_c         like /pws/zycbt005-vlvinc,

      v_waers_c        like /pws/zycbt005-waers_c,

      v_subrc          like sy-subrc,

      v_cont_ok,

      v_data_desm_ace  like sy-datum,

      v_estorno        like /pws/zycbt006-belnr,

      v_reais_c        like /pws/zycbt005-vlme_p,

      v_variacao       like /pws/zycbt005-vlme_p,

      v_parafator      like  tcurr-tfact,

      v_defator        like  tcurr-ffact,

* >> Início da inclusão:

      v_parafator_fat  TYPE  tcurr-tfact,

      v_defator_fat    TYPE  tcurr-ffact,

* << Fim da inclusão

      v_txcbrl_fat     like tcurr-ukurs,

      v_txcbrl_cont    like tcurr-ukurs,

      v_data_f_28      like sy-datum,

      v_reais_f        like /pws/zycbt005-vlme_p,

      v_juros_dif      like /pws/zycbt005-vlme_p,

      v_vinc,

      v_sbu,

      v_calc_jur       like /pws/zycbt005-vlme_p,

      v_taxa_vazia     type c,

      v_exit1(1)       type c,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB004X01

 

...

data:

  wa_zycbt004 like /pws/zycbt004,

  wa_zycbt007 like /pws/zycbt007.

data: v_zycbe001 type /pws/zycbe001.

data: begin of itab_paridade occurs 0.

        include structure /pws/zycbt006.

data: v_parid         like /pws/zycbt005-parid,

      v_vlme_c        like /pws/zycbt005-vlvinc,

      v_waers_c       like /pws/zycbt005-waers_c.

data: end of itab_paridade.

* >> Início da inclusão:

data: begin of itab_paridade_ant occurs 0.

        include structure /pws/zycbt006.

data: v_parid         like /pws/zycbt005-parid,

      v_vlme_c        like /pws/zycbt005-vlvinc,

      v_waers_c       like /pws/zycbt005-waers_c.

data: end of itab_paridade_ant.

* << Fim da inclusão

data: begin of itab_zycbt005 occurs 0.

        include structure /pws/zycbt005.

data:   vlme        like /pws/zycbe006-vlme,

        dtpagto     like /pws/zycbe006-dtpagto,

        v_status,

        v_vldif     like /pws/zycbt006-vlme,

        v_vlmeant   like /pws/zycbt006-vlme,

        v_armda,

        v_vljur     like /pws/zycbt006-vljur,

        v_vlcomis   like /pws/zycbt006-vlcomis,

...

 

...

        dtvincul like /pws/zycbt005-dtvincul,

        dtvencto like /pws/zycbt005-dtvencto,

      end of itab_zycbt005_aux2.

data: begin of itab_zycbt005_s occurs 0,

        nrinvoic  like /pws/zycbt005-nrinvoic,

        nrparcf   like /pws/zycbt005-nrparcf,

        gsberf    like /pws/zycbt005-gsberf,

        slpagar   like /pws/zycbt005-slpagar,

        vlme      like /pws/zycbt006-vlme,

        slliquid  like /pws/zycbt005-slpagar,

* >> Início da inclusão:

        parid     type /pws/zycbt005-parid,

* << Fim da inclusão

      end of itab_zycbt005_s.

  data: itab_zycbt005_cp like itab_zycbt005_s occurs 0

        with header line.

data: begin of itab_zycbt005_liq occurs 0,

        nrinvoic  like /pws/zycbt005-nrinvoic,

        nrparcf   like /pws/zycbt005-nrparcf,

        gsberf    like /pws/zycbt005-gsberf,

      end of itab_zycbt005_liq.

data: begin of itab_zycbt006_aux occurs 0,

        nrinvoic like /pws/zycbt006-nrinvoic,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F03

 

...

          clear itab_zycbt005-mark.

          clear itab_zycbt005_aux-mark.

        endif.

        perform atualiza_tab_zycbt005.

        modify itab_zycbt005 index v_index.

        modify itab_zycbt005_aux index v_index.

        itab_zycbt005_aux-mark = ''.

      endif.

    else.

      perform atualiza_itab_zycbt005.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

      perform calc_paridade.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

      perform calc_paridade

                  using tc_faturas-current_line.

* << Fim da inclusão

      perform calcula_saldos.

      read table itab_zycbt017 with key

               nrinvoic = itab_zycbt005-nrinvoic

               nrparcf  = itab_zycbt005-nrparcf

               gsberf   = itab_zycbt005-gsberf.

      itab_zycbt005-vlcomis = ( itab_zycbt005-vlme_p *

                               itab_zycbt017-vlcomis ) /

                               itab_zycbt017-vlavinc.

      itab_zycbt005-slcomi =  itab_zycbt005-vlcomis.

      itab_zycbt005-dtpror   = /pws/zycbe005-dtpror.

...

 

...

        else.

          clear itab_zycbt005-mark.

          clear itab_zycbt005_aux-mark.

        endif.

        modify itab_zycbt005 index v_index.

        modify itab_zycbt005_aux index v_index.

        itab_zycbt005_aux-mark = ''.

      endif.

    else.

      perform atualiza_itab_zycbt005.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

      perform calc_paridade.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

      perform calc_paridade

                  using tc_faturas-current_line.

* << Fim da inclusão

      perform calcula_saldos.

      read table itab_zycbt017 with key

               nrinvoic = itab_zycbt005-nrinvoic

               nrparcf  = itab_zycbt005-nrparcf

               gsberf   = itab_zycbt005-gsberf.

      itab_zycbt005-vlcomis = ( itab_zycbt005-vlme_p *

                               itab_zycbt017-vlcomis ) /

                               itab_zycbt017-vlavinc.

      itab_zycbt005-slcomi =  itab_zycbt005-vlcomis.

      itab_zycbt005-dtpror   = /pws/zycbe005-dtpror.

...

 

...

    modify itab_zycbt005 index v_index transporting mark.

    modify itab_zycbt005_aux index v_index transporting mark.

    itab_zycbt005_aux-mark = ''.

    if ok_code eq 'DELE'.

      exit.

    endif.

    if v_existe_invoice eq 'S'.

      exit.

    endif.

    perform atualiza_itab_zycbt005.

* >> Início da exclusão: FORM ALTERA_ITAB_ZYCBT005

    perform calc_paridade.

* << Fim da exclusão

* >> Início da inclusão: FORM ALTERA_ITAB_ZYCBT005

    perform calc_paridade

                  using tc_faturas-current_line.

* << Fim da inclusão

    perform calcula_saldos.

    read table itab_zycbt017 with key

             nrinvoic = itab_zycbt005-nrinvoic

             nrparcf  = itab_zycbt005-nrparcf

             gsberf   = itab_zycbt005-gsberf.

    if /pws/zycbe074 is initial.

      select single * from /pws/zycbt074

            into corresponding fields of /pws/zycbe074

      where nrseqc eq /pws/zycbe001-nrseqc.

    endif.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F04

 

...

          ENDIF.

        ELSE.

          IF itab_zycbt005-vlvinc > /pws/zycbt030-vlslliq.

            MOVE 'X' TO v_cvalor.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

ENDFORM.

* >> Início da exclusão: FORM CALC_PARIDADE

FORM calc_paridade.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

FORM calc_paridade

                  USING p_index.

* << Fim da inclusão

  DATA: v_parafator LIKE tcurf-ffact ,

        v_defator   LIKE tcurf-tfact  .

* >> Início da exclusão: FORM CALC_PARIDADE

  v_index = tc_faturas-current_line.

* << Fim da exclusão

  CLEAR v_tstwaers.

  IF v_status_s EQ 0.

    EXIT.

  ENDIF.

  MOVE /pws/zycbe001-waers TO itab_zycbt005-waers_c.

...

 

...

  IF itab_zycbt005-waers EQ /pws/zycbe001-waers.

    MOVE: '1'                  TO itab_zycbt005-parid.

    IF itab_zycbt005-vlme_p NE 0.

      MOVE itab_zycbt005-vlme_p TO itab_zycbt005-vlvinc.

    ELSEIF itab_zycbt005-vlvinc NE 0.

      MOVE itab_zycbt005-vlvinc TO itab_zycbt005-vlme_p.

    ENDIF.

  ELSE.

    PERFORM determina_fator USING v_parafator

                                  v_defator.

* >> Início da inclusão: FORM CALC_PARIDADE

    IF v_decimais EQ 0 AND v_decimais_c > 0.

      itab_zycbt005-vlme_p       = itab_zycbt005-vlme_p * 100.

      itab_zycbt005_parid-vlme_p = itab_zycbt005_parid-vlme_p * 100.

    ENDIF.

* << Fim da inclusão

    IF itab_zycbt005-vlme_p NE 0 AND itab_zycbt005-vlvinc NE 0

    AND itab_zycbt005-parid EQ 0.

* >> Início da exclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        ELSE.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc * 100.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = ( ( itab_zycbt005-vlvinc /

                    itab_zycbt005-vlme_p ) * v_defator ) / v_parafator.

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc / 100.

* << Fim da inclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlme_p EQ 0 AND itab_zycbt005-parid NE 0

    AND itab_zycbt005-vlvinc NE 0.

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc * 100.

      ENDIF.

* << Fim da inclusão

      itab_zycbt005-vlme_p = itab_zycbt005-vlvinc /

                ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

* >> Início da exclusão: FORM CALC_PARIDADE

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p / 100.

        ELSE.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p * 100.

        ENDIF.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc / 100.

* << Fim da inclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlme_p EQ 0.

      CLEAR itab_zycbt005-vlvinc.

    ELSEIF itab_zycbt005-vlme_p NE itab_zycbt005_parid-vlme_p

    AND itab_zycbt005-parid NE 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

* >> Início da exclusão: FORM CALC_PARIDADE

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        ELSE.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

* << Fim da inclusão

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

* >> Início da exclusão: FORM CALC_PARIDADE

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlme_p NE itab_zycbt005_parid-vlme_p

    AND itab_zycbt005-vlvinc NE 0.

* >> Início da exclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc * 100.

      ENDIF.

      itab_zycbt005-parid = ( ( itab_zycbt005-vlvinc /

                    itab_zycbt005-vlme_p ) * v_defator ) / v_parafator.

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc / 100.

      ENDIF.

* << Fim da inclusão

    ELSEIF itab_zycbt005-parid NE itab_zycbt005_parid-parid

    AND itab_zycbt005-parid NE 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

* >> Início da exclusão: FORM CALC_PARIDADE

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        ELSE.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

* << Fim da inclusão

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

* >> Início da exclusão: FORM CALC_PARIDADE

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlvinc NE itab_zycbt005_parid-vlvinc

    AND itab_zycbt005-vlvinc NE 0.

* >> Início da exclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        ELSE.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc * 100.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = ( ( itab_zycbt005-vlvinc /

                    itab_zycbt005-vlme_p ) * v_defator ) / v_parafator.

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc / 100.

* << Fim da inclusão

      ENDIF.

    ELSEIF itab_zycbt005-parid EQ 0 AND itab_zycbt005-vlvinc NE 0.

* >> Início da exclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        ELSE.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc * 100.

* << Fim da inclusão

        ENDIF.

* >> Início da inclusão: FORM CALC_PARIDADE

      itab_zycbt005-parid = ( ( itab_zycbt005-vlvinc /

                    itab_zycbt005-vlme_p ) * v_defator ) / v_parafator.

      IF v_decimais_c EQ 0 AND v_decimais > 0.

        itab_zycbt005-vlvinc       = itab_zycbt005-vlvinc / 100.

* << Fim da inclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlvinc EQ 0 AND itab_zycbt005-parid NE 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

* >> Início da exclusão: FORM CALC_PARIDADE

      IF v_decimais NE v_decimais_c.

        IF v_decimais EQ 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        ELSE.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais_c EQ 0 AND v_decimais > 0.

* << Fim da inclusão

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

* >> Início da exclusão: FORM CALC_PARIDADE

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ELSEIF itab_zycbt005-vlme_p NE 0 AND itab_zycbt005-parid EQ 0

      AND itab_zycbt005-vlvinc EQ 0.

* >> Início da inclusão: FORM CALC_PARIDADE

      IF v_decimais EQ 0 AND v_decimais_c > 0.

        itab_zycbt005-vlme_p       = itab_zycbt005-vlme_p / 100.

        itab_zycbt005_parid-vlme_p = itab_zycbt005_parid-vlme_p / 100.

      ENDIF.

* << Fim da inclusão

      CLEAR: itab_zycbt005-parid.

      MODIFY itab_zycbt005 TRANSPORTING parid

                     WHERE nrseqc   = itab_zycbt005-nrseqc AND

                           tpdesp   = itab_zycbt005-tpdesp AND

                           nrparc   = itab_zycbt005-nrparc AND

                           nrinvoic = itab_zycbt005-nrinvoic.

      MESSAGE i061 WITH

              text-271 itab_zycbt005-nrinvoic text-272 text-283.

      v_tstwaers = 'X'.

      EXIT.

* >> Início da inclusão: FORM CALC_PARIDADE

    ENDIF.

    IF v_decimais EQ 0 AND v_decimais_c > 0.

      itab_zycbt005-vlme_p       = itab_zycbt005-vlme_p / 100.

      itab_zycbt005_parid-vlme_p = itab_zycbt005_parid-vlme_p / 100.

* << Fim da inclusão

    ENDIF.

  ENDIF.

* >> Início da exclusão: FORM CALC_PARIDADE

  MODIFY itab_zycbt005 INDEX v_index.

* << Fim da exclusão

* >> Início da inclusão: FORM CALC_PARIDADE

  MODIFY itab_zycbt005 INDEX p_index.

* << Fim da inclusão

ENDFORM.

FORM verifica_documentos.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

  clear v_index.

  loop at itab_zycbt005.

    v_index = v_index + 1.

    if  itab_zycbt005-vlme_p eq 0.

      perform move_saldo.

    endif.

  endloop.

endform.

form move_saldo.

  move itab_zycbt005-vlslf to itab_zycbt005-vlme_p.

* >> Início da exclusão: FORM MOVE_SALDO

  perform calc_paridade_2.

* << Fim da exclusão

* >> Início da inclusão: FORM MOVE_SALDO

  perform calc_paridade using v_index.

* << Fim da inclusão

  perform calcula_saldos_2.

  read table itab_zycbt017 with key

           nrinvoic = itab_zycbt005-nrinvoic

           nrparcf  = itab_zycbt005-nrparcf

           gsberf   = itab_zycbt005-gsberf.

  itab_zycbt005-vlcomis = ( itab_zycbt005-vlme_p *

                           itab_zycbt017-vlcomis ) /

                           itab_zycbt017-vlavinc.

  itab_zycbt005-slcomi =  itab_zycbt005-vlcomis.

  modify itab_zycbt005 index v_index.

...

 

...

      else.

        itab_zycbt005-vlslf = itab_zycbt005-vlslf - v_vldif_fat.

        /pws/zycbe001-slvinc = /pws/zycbe001-slvinc - v_vldif.

        modify itab_zycbt005 index v_index

                             transporting vlslf.

      endif.

    endif.

  endif.

  clear itab_zycbt005_aux.

endform.

* >> Início da exclusão: FORM CALC_PARIDADE_2

form calc_paridade_2.

  data: v_parafator like tcurf-ffact ,

        v_defator   like tcurf-tfact  .

  clear v_tstwaers.

  if v_status_s eq 0.

    exit.

  endif.

  move /pws/zycbe001-waers to itab_zycbt005-waers_c.

  read table itab_zycbt005_parid with key

                              nrseqc   = itab_zycbt005-nrseqc

                              tpdesp   = itab_zycbt005-tpdesp

                              nrparc   = itab_zycbt005-nrparc

                              nrinvoic = itab_zycbt005-nrinvoic

                              nrparcf  = itab_zycbt005-nrparcf.

  if itab_zycbt005-waers eq /pws/zycbe001-waers.

    move: '1'                  to itab_zycbt005-parid.

    if itab_zycbt005-vlme_p ne 0.

      move itab_zycbt005-vlme_p to itab_zycbt005-vlvinc.

    elseif itab_zycbt005-vlvinc ne 0.

      move itab_zycbt005-vlvinc to itab_zycbt005-vlme_p.

    endif.

  else.

    perform determina_fator using v_parafator

                                  v_defator.

    if itab_zycbt005-vlme_p ne 0 and itab_zycbt005-vlvinc ne 0

    and itab_zycbt005-parid eq 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p eq 0 and itab_zycbt005-parid ne 0

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-vlme_p = itab_zycbt005-vlvinc /

                ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p / 100.

        else.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p eq 0.

      clear itab_zycbt005-vlvinc.

    elseif itab_zycbt005-vlme_p ne itab_zycbt005_parid-vlme_p

    and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p ne itab_zycbt005_parid-vlme_p

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

    elseif itab_zycbt005-parid ne itab_zycbt005_parid-parid

    and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlvinc ne itab_zycbt005_parid-vlvinc

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-parid eq 0 and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlvinc eq 0 and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p ne 0 and itab_zycbt005-parid eq 0

    and itab_zycbt005-vlvinc eq 0.

      clear itab_zycbt005-parid.

      modify itab_zycbt005 transporting parid

                     where nrseqc   = itab_zycbt005-nrseqc and

                           tpdesp   = itab_zycbt005-tpdesp and

                           nrparc   = itab_zycbt005-nrparc and

                           nrinvoic = itab_zycbt005-nrinvoic.

      .

      message i061 with

              text-271 itab_zycbt005-nrinvoic text-272 text-283.

      v_tstwaers = 'X'.

      exit.

    endif.

  endif.

  modify itab_zycbt005 index v_index.

endform.

* << Fim da exclusão

form exibe_datas.

  data v_flag type c.

  case /pws/zycbe001-tpcontr(1).

    when 'C'.

      if /pws/zycbt007-liq_cp eq 'X'.

        move 'X' to v_flag.

      endif.

    when 'D'.

      if /pws/zycbt089-f_cont_vinc eq 'F'.

        move 'X' to v_flag.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F08

 

...

            value1         = p_paridade

       EXCEPTIONS

            titel_too_long = 1

            OTHERS         = 2.

  IF sy-subrc NE 0.

    v_subrc = 4.

  ENDIF.

ENDFORM.

FORM determina_fator CHANGING e_parafator

                              e_defator.

* >> Início da inclusão: FORM DETERMINA_FATOR

  if itab_zycbt005-waers = itab_zycbt005-waers_c.

    e_parafator = e_defator = 1.

  else.

    select single *

      from t001a

      where bukrs = /pws/zycbe001-bukrs.

* << Fim da inclusão

  SELECT SINGLE ffact tfact

    FROM tcurf

* >> Início da exclusão: FORM DETERMINA_FATOR

    INTO  (e_parafator,

          e_defator)

    WHERE fcurr =  itab_zycbt005-waers

* << Fim da exclusão

* >> Início da inclusão: FORM DETERMINA_FATOR

      into  (e_defator,

            e_parafator)

        where kurst = t001a-kurst

          and fcurr =  itab_zycbt005-waers

* << Fim da inclusão

      AND tcurr =  itab_zycbt005-waers_c

* >> Início da exclusão: FORM DETERMINA_FATOR

      AND gdatu >= sy-datum.                              "#EC PORTABLE

* << Fim da exclusão

* >> Início da inclusão: FORM DETERMINA_FATOR

        and gdatu >= sy-datum.                            "#EC PORTABLE

  endif.

* << Fim da inclusão

ENDFORM.

FORM contabiliza_cp_arbitr.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F10

 

...

    v_pag_jur = 'X'.

  endif.

endform.

form vincula_linha_total using v_index_6.

  if  itab_zycbt005-vlme_p eq 0.

    perform move_saldo_fat using v_index_6.

  endif.

endform.

form move_saldo_fat using v_index_6 .

  move itab_zycbt005-vlslf to itab_zycbt005-vlme_p.

* >> Início da exclusão: FORM MOVE_SALDO_FAT

  perform calc_pridade_3 using v_index_6.

* << Fim da exclusão

* >> Início da inclusão: FORM MOVE_SALDO_FAT

  perform calc_paridade using v_index_6.

* << Fim da inclusão

  perform calcula_saldos_3 using v_index_6.

  read table itab_zycbt017 with key

           nrinvoic = itab_zycbt005-nrinvoic

           nrparcf  = itab_zycbt005-nrparcf

           gsberf   = itab_zycbt005-gsberf.

  itab_zycbt005-vlcomis = ( itab_zycbt005-vlme_p *

                           itab_zycbt017-vlcomis ) /

                           itab_zycbt017-vlavinc.

  itab_zycbt005-slcomi =  itab_zycbt005-vlcomis.

  modify itab_zycbt005 index v_index_6.

  v_index = v_index_6.

  perform atualiza_itab_zycbt017.

endform.

* >> Início da exclusão: FORM CALC_PRIDADE_3

form calc_pridade_3 using    v_index_6.

  data: v_parafator like tcurf-ffact ,

        v_defator   like tcurf-tfact  .

  clear v_tstwaers.

  if v_status_s eq 0.

    exit.

  endif.

  move /pws/zycbe001-waers to itab_zycbt005-waers_c.

  read table itab_zycbt005_parid with key

                              nrseqc   = itab_zycbt005-nrseqc

                              tpdesp   = itab_zycbt005-tpdesp

                              nrparc   = itab_zycbt005-nrparc

                              nrinvoic = itab_zycbt005-nrinvoic

                              nrparcf  = itab_zycbt005-nrparcf.

  if itab_zycbt005-waers eq /pws/zycbe001-waers.

    move: '1'                  to itab_zycbt005-parid.

    if itab_zycbt005-vlme_p ne 0.

      move itab_zycbt005-vlme_p to itab_zycbt005-vlvinc.

    elseif itab_zycbt005-vlvinc ne 0.

      move itab_zycbt005-vlvinc to itab_zycbt005-vlme_p.

    endif.

  else.

    perform determina_fator using v_parafator

                                  v_defator.

    if itab_zycbt005-vlme_p ne 0 and itab_zycbt005-vlvinc ne 0

    and itab_zycbt005-parid eq 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p eq 0 and itab_zycbt005-parid ne 0

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-vlme_p = itab_zycbt005-vlvinc /

                ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p / 100.

        else.

          itab_zycbt005-vlme_p = itab_zycbt005-vlme_p * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p eq 0.

      clear itab_zycbt005-vlvinc.

    elseif itab_zycbt005-vlme_p ne itab_zycbt005_parid-vlme_p

    and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p ne itab_zycbt005_parid-vlme_p

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

    elseif itab_zycbt005-parid ne itab_zycbt005_parid-parid

    and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlvinc ne itab_zycbt005_parid-vlvinc

    and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-parid eq 0 and itab_zycbt005-vlvinc ne 0.

      itab_zycbt005-parid = itab_zycbt005-vlvinc / itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-parid = itab_zycbt005-parid / 100.

        else.

          itab_zycbt005-parid = itab_zycbt005-parid * 100.

        endif.

      endif.

    elseif itab_zycbt005-vlvinc eq 0 and itab_zycbt005-parid ne 0.

      itab_zycbt005-vlvinc = ( ( itab_zycbt005-parid / v_defator )

                           * v_parafator ) * itab_zycbt005-vlme_p.

      if v_decimais ne v_decimais_c.

        if v_decimais eq 0.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc * 100.

        else.

          itab_zycbt005-vlvinc = itab_zycbt005-vlvinc / 100.

        endif.

      endif.

    elseif itab_zycbt005-vlme_p ne 0 and itab_zycbt005-parid eq 0

    and itab_zycbt005-vlvinc eq 0.

      clear itab_zycbt005-parid.

      modify itab_zycbt005 transporting parid

                     where nrseqc   = itab_zycbt005-nrseqc and

                           tpdesp   = itab_zycbt005-tpdesp and

                           nrparc   = itab_zycbt005-nrparc and

                           nrinvoic = itab_zycbt005-nrinvoic.

      .

      message i061 with

              text-271 itab_zycbt005-nrinvoic text-272 text-283.

      v_tstwaers = 'X'.

      exit.

    endif.

  endif.

  modify itab_zycbt005 index v_index_6.

endform.

* << Fim da exclusão

form calcula_saldos_3 using    v_index_6.

  data:

  v_vldif  like /pws/zycbe005-vlslf,

  v_vldif_fat like /pws/zycbe005-vlslf,

  v_slvinc like /pws/zycbe001-slvinc,

  v_vlslf  like /pws/zycbe005-vlslf.

  read table itab_zycbt005_aux

              with key nrinvoic = itab_zycbt005-nrinvoic

                       nrparcf  = itab_zycbt005-nrparcf

                       gsberf   = itab_zycbt005-gsberf.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009I01

 

...

ENDMODULE.

MODULE casas_decimais INPUT.

  SELECT SINGLE currdec FROM tcurx

    INTO v_decimais

    WHERE currkey = /pws/zycbe005-waers.

  IF sy-subrc <> 0.

    v_decimais = 2.

  ENDIF.

  SELECT SINGLE currdec FROM tcurx

    INTO v_decimais_c

* >> Início da exclusão: MODULE CASAS_DECIMAIS

    WHERE currkey = /pws/zycbe005-waers_c.

* << Fim da exclusão

* >> Início da inclusão: MODULE CASAS_DECIMAIS

    where currkey = /pws/zycbe001-waers.

* << Fim da inclusão

  IF sy-subrc <> 0.

    v_decimais_c = 2.

  ENDIF.

  MOVE: /pws/zycbe001-waers TO /pws/zycbe005-waers_c,

        /pws/zycbe001-waers TO /pws/zycbt005-waers_c.

ENDMODULE.

MODULE limpa_var INPUT.

  CLEAR v_existe_vinc.

  READ TABLE itab_zycbt005 INDEX tc_faturas-top_line.

  IF sy-subrc NE 0.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB031F01

 

...

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-d_zuonr = itab_zycbt209-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'REF_ORDEM'.

          itab_zycbe033-d_zuonr = itab_zycbt209-ref_ordem.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ENDIF.

* >> Início da inclusão: FORM PROC_INCLUSAO

        concatenate itab_zycbe033-d_zuonr 'LA'

          into itab_zycbe033-d_zuonr.

* << Fim da inclusão

      WHEN 'ZTERM'.

        IF itab_zyglt321-cpocb = 'ZTERM'.

          itab_zycbe033-zterm = itab_zycbt030-zterm.

        ENDIF.

    ENDCASE.

  ENDLOOP.

  PERFORM verify_null_field USING itab_zycbt209-dtcredext

                                  'BUDAT'

                                  text-039.

  itab_zycbe033-budat = itab_zycbt209-dtcredext.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCBR010

 

...

        vlme    LIKE /pws/zycbt006-vlme,

        status  LIKE /pws/zycbt006-status,

        nrinvoic LIKE /pws/zycbt006-nrinvoic,

        nrparcf  LIKE /pws/zycbt006-nrparcf,

        gsberf   LIKE /pws/zycbt006-gsberf,

        tpdesp   LIKE /pws/zycbt006-tpdesp,

        nrparc   LIKE /pws/zycbt006-nrparc,

        dtincl   LIKE /pws/zycbt006-dtincl,

        dtvincul LIKE /pws/zycbt006-dtvincul,

        dtvencto LIKE /pws/zycbt006-dtvencto,

* >> Início da inclusão:

        vlme_c   type /pws/zycbt006-vlme_c,

* << Fim da inclusão

      END OF itab_zycbt006,

     BEGIN OF itab_zycbt050 OCCURS 100,

       nrseqc    LIKE /pws/zycbt050-nrseqc,

       nrinvoic  LIKE /pws/zycbt050-nrinvoic,

       nrparcf  LIKE /pws/zycbt050-nrparcf,

       gsberf    LIKE /pws/zycbt050-gsberf,

       vldev     LIKE /pws/zycbt050-vldev,

     END  OF itab_zycbt050,

     BEGIN OF itab_zycbt051 OCCURS 100,

       nrseqc    LIKE /pws/zycbt051-nrseqc,

...

 

...

     END  OF itab_zycbt051.

TYPES: BEGIN OF ty_zycbt061,

          nrseq_c TYPE /pws/zycbt061-nrseq_c,

          vlalt   TYPE /pws/zycbt061-vlme_c,

       END OF ty_zycbt061.

DATA: itab_zycbt061 TYPE SORTED TABLE OF ty_zycbt061

      WITH NON-UNIQUE KEY nrseq_c,

      wa_zycbt061 TYPE ty_zycbt061.

DATA: itab_relat TYPE tipo1 OCCURS 100 WITH HEADER LINE,

      itab_relat2 TYPE tipo1 OCCURS 100 WITH HEADER LINE.

* >> Início da inclusão:

data: begin of itab_t001a occurs 0.

        include structure t001a.

data: end of itab_t001a.

data: begin of itab_tcurx occurs 0.

        include structure tcurx.

data: end of itab_tcurx.

* << Fim da inclusão

DATA:

  v_dia_sem(20) TYPE c,

  v_titulo(80)  TYPE c,

  v_tam         TYPE i VALUE 286,

  v_tamr        TYPE i VALUE 87,

  v_usd         LIKE /pws/zycbt001-vlme,

  v_periodo     TYPE i,

  v_prazo(2)    TYPE c,

  v_taxacambial LIKE tcurr-ukurs,

  v_slvinc      LIKE /pws/zycbt005-vlvinc,

  v_vlvinc      LIKE /pws/zycbt005-vlvinc,

  v_vldev       LIKE /pws/zycbt006-vlme,

  v_impr(1),

  v_slpagar     LIKE /pws/zycbt001-slpagar,

* >> Início da exclusão:

  v_vlreceb     LIKE /pws/zycbt051-vlme.

* << Fim da exclusão

* >> Início da inclusão:

  v_vlreceb     like /pws/zycbt051-vlme,

      v_defator     type tcurr-ffact,

      v_parafator   type tcurr-ffact.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: bukrs    FOR /pws/zycbt001-bukrs,

                nrseqc FOR /pws/zycbt001-nrseqc MATCHCODE OBJECT

                                                /pws/zycba050,

                nrcontr  FOR /pws/zycbt001-nrcontr,

                tpcontr  FOR /pws/zycbt001-tpcontr,

                dtcontr  FOR /pws/zycbt001-dtcontr,

                bcofinan FOR /pws/zycbt001-bcofinan,

                bconegoc FOR /pws/zycbt001-bconegoc,

                dtcred   FOR /pws/zycbt001-dtcred,

...

 

...

      AND dtcontr  IN dtcontr

      AND bcofinan IN bcofinan

      AND bconegoc IN bconegoc

      AND dtcred   IN dtcred

      AND dtdesem  IN dtdesem

      AND f_encerrado NE 'X'

      AND f_encerrado NE 'E'

      AND dtentr   IN dtentr.

  SORT itab_zycbt001 BY nrseqc.

  IF NOT itab_zycbt001[] IS INITIAL.

* >> Início da inclusão: FORM PROCESSAR_DADOS2

    select *

          from t001a

          into table itab_t001a

          for all entries in itab_zycbt001

          where bukrs = itab_zycbt001-bukrs.

    select *

          from tcurx

          into table itab_tcurx.

* << Fim da inclusão

    SELECT nrseqc perc_comis perc_comis_flat fpagto_comis

      FROM /pws/zycbt074

      INTO TABLE itab_zycbt074

      FOR ALL ENTRIES IN itab_zycbt001

      WHERE nrseqc = itab_zycbt001-nrseqc.

    SELECT *

           FROM /pws/zycbt003

           INTO TABLE itab_zycbt003

           FOR ALL ENTRIES IN itab_zycbt001

           WHERE nrseqc = itab_zycbt001-nrseqc AND

...

 

...

          WHERE dtvincul LE s_posic

            AND nrseqc = itab_zycbt001-nrseqc

             AND ( status = 'C' OR status = '1' OR status = 'I' ).

    SORT itab_zycbt005 BY nrseqc tpdesp nrparc dtincl nrinvoic nrparcf

                          gsberf dtvincul dtvencto.

    SELECT nrseqc dtpagto

           dtpagext

           nrcontr vlme status

           nrinvoic nrparcf gsberf

           tpdesp nrparc dtincl dtvincul dtvencto

* >> Início da inclusão: FORM PROCESSAR_DADOS2

           vlme_c

* << Fim da inclusão

           FROM /pws/zycbt006

           INTO TABLE itab_zycbt006

           FOR ALL ENTRIES IN itab_zycbt001

          WHERE dtpagto LE s_posic

            AND nrseqc = itab_zycbt001-nrseqc

             AND ( status = 'C' OR status = '1' ).

    SORT itab_zycbt006 BY nrseqc tpdesp nrparc dtincl nrinvoic nrparcf

                          gsberf dtvincul dtvencto dtpagto

                          dtpagext.

    SELECT tpcontr txtdesc

...

 

...

                          AND nrparc = itab_zycbt005-nrparc

                          AND dtincl = itab_zycbt005-dtincl

                          AND nrinvoic = itab_zycbt005-nrinvoic

                          AND nrparcf = itab_zycbt005-nrparcf

                          AND gsberf = itab_zycbt005-gsberf

                          AND dtvincul = itab_zycbt005-dtvincul

                          AND dtvencto = itab_zycbt005-dtvencto.

          IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

            IF itab_zycbt001-tpcontr = 'DP'.

              v_slpagar = v_slpagar + itab_zycbt005-vlvinc.

* >> Início da inclusão: FORM PROCESSAR_DADOS2

            else.

              if itab_zycbt006-vlme_c > 0.

                v_slpagar = v_slpagar + itab_zycbt006-vlme_c.

              else.

                if itab_zycbt005-waers ne itab_zycbt005-waers_c.

                  clear itab_t001a.

                  read table itab_t001a with key

                                            bukrs = itab_zycbt001-bukrs.

                  check sy-subrc = 0.

                  perform busca_fator_conversao using

                                                  itab_zycbt006-vlme

                                                  itab_zycbt005-waers

                                                  itab_zycbt005-waers_c

                                                  itab_t001a-kurst

                                                  sy-datum

                                                changing

                                                  v_defator

                                                  v_parafator.

                  read table itab_tcurx with key currkey =

                                                    itab_zycbt005-waers.

                  if sy-subrc = 0 and itab_tcurx-currdec = 0.

                    itab_zycbt006-vlme = itab_zycbt006-vlme * 100.

                  endif.

                  v_slpagar = v_slpagar +

                              ( itab_zycbt006-vlme *

                                  ( ( itab_zycbt005-parid / v_defator )

                                                      * v_parafator ) ).

* << Fim da inclusão

            ELSE.

              v_slpagar = v_slpagar +

               ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* >> Início da inclusão: FORM PROCESSAR_DADOS2

                endif.

* << Fim da inclusão

            ENDIF.

* >> Início da inclusão: FORM PROCESSAR_DADOS2

            endif.

* << Fim da inclusão

          ELSE.

            v_slpagar = v_slpagar + itab_zycbt006-vlme.

          ENDIF.

        ENDLOOP.

        v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.

      ENDLOOP.

      itab_relat-slpagar = itab_zycbt001-vlme - v_slpagar -

                           v_vldev + v_vlreceb.

      LOOP AT itab_zycbt061

         INTO wa_zycbt061

...

 

...

      DELETE itab_zycbt002 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt050 WHERE nrseqc = itab_zycbt001-nrseqc.

      DELETE itab_zycbt051 WHERE nrseqc = itab_zycbt001-nrseqc.

    ENDLOOP.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form busca_fator_conversao  using    p_vlme

                                     p_waers_de

                                     p_waers_para

                                     p_categoria

                                     p_data

                            changing p_defator

                                     p_parafator.           "#EC *

  call function '/PWS/ZYCB_MONTANTE_CONVERTE'

       exporting

            i_montante                   = p_vlme

            i_demoeda                    = p_waers_de

            i_paramoeda                  = p_waers_para

            i_ctmoeda                    = p_categoria

            i_dtbase                     = p_data

       importing

            e_defator                    = p_defator

            e_parafator                  = p_parafator

       exceptions

            i_demoeda_nao_encontrado     = 1

            i_paramoeda_nao_encontrado   = 2

            i_ctmoeda_nao_encontrado     = 3

            i_dtbase_nao_encontrada      = 4

            taxa_nao_encontrada          = 5

            fator_nao_encontrado         = 6

            i_montante_nao_encontrado    = 7

            tabela_categ_nao_configurada = 8

            others                       = 9.

  if p_defator = 0.

    p_defator = 1.

  endif.

  if p_parafator = 0.

    p_parafator = 1.

  endif.

endform.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCBR047

 

...

        dtincl    like /pws/zycbt006-dtincl,

        nrinvoic  like /pws/zycbt006-nrinvoic,

        nrparcf   like /pws/zycbt006-nrparcf,

        gsberf    like /pws/zycbt006-gsberf,

        dtvincul  like /pws/zycbt006-dtvincul,

        dtvencto  like /pws/zycbt006-dtvencto,

        dtpagto   like /pws/zycbt006-dtpagto,

        dtpagext  like /pws/zycbt006-dtpagext,

        status    like /pws/zycbt006-status,

        vlme      like /pws/zycbt006-vlme,

* >> Início da inclusão:

        vlme_c   type /pws/zycbt006-vlme_c,

* << Fim da inclusão

      end of itab_zycbt006.

data: begin of itab_zycbt017 occurs 0,

        nrinvoic like /pws/zycbt017-nrinvoic,

        nrparcf  like /pws/zycbt017-nrparcf,

        gsberf   like /pws/zycbt017-gsberf,

        fkdat    like /pws/zycbt017-fkdat,

        dtbl     like /pws/zycbt017-dtbl,

        kunag    like /pws/zycbt017-kunag,

        zterm    like /pws/zycbt017-zterm,

        dtvencto like /pws/zycbt017-dtvencto,

...

 

...

        tppror      like /pws/zycbt003-tppror,

        dtpror      like /pws/zycbt003-dtpror,

        nrcontr     like /pws/zycbt003-nrcontr.

data: end of itab_zycbt003.

data: begin of itab_zycbt064 occurs 0.

        include structure /pws/zycbt064.

data: end of itab_zycbt064.

data: begin of itab_zycbt031 occurs 0.

        include structure /pws/zycbt031.

data: end of itab_zycbt031.

* >> Início da inclusão:

data: begin of itab_t001a occurs 0.

        include structure t001a.

data: end of itab_t001a.

data: begin of itab_tcurx occurs 0.

        include structure tcurx.

data: end of itab_tcurx.

* << Fim da inclusão

data: v_data(14)    type c,

      v_type        like tcurr-kurst,

      v_nrdias(4)   type c,

      v_vlrjur      like /pws/zycbt005-vljur,

      v_tvlvinc     like /pws/zycbt001-vlme,

      v_tjurme      like /pws/zycbt005-vljur,

      v_tjurbrl     like /pws/zycbt005-vljur,

      v_moeda       like /pws/zycbt001-waers,

      v_dtfech(10)  type c,

      v_dtfech2(10) type c,

...

 

...

         status

         into table itab_zycbt001 from /pws/zycbt001

         where nrcontr  in s_nrcont and

               bukrs    in s_bukrs  and

               werks    in s_werks  and

               gsber    in s_gsber  and

               tpcontr  in s_tpcont and

               dtcontr  in s_dtcont and

               corret   in s_corret and

               bconegoc in s_bconeg and

* >> Início da exclusão: FORM SELECIONA_DADOS

               kunnr    in s_kunnr                     "#EC CI_NOFIELD

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

               kunnr    in s_kunnr                      "#EC CI_NOFIELD

* << Fim da inclusão

           and f_encerrado ne c_e

           and f_encerrado ne c_i.

  if sy-subrc eq 0.

    select *

* >> Início da inclusão: FORM SELECIONA_DADOS

          from t001a

          into table itab_t001a

          for all entries in itab_zycbt001

          where bukrs = itab_zycbt001-bukrs.

    select *

          from tcurx

          into table itab_tcurx.

    select *

* << Fim da inclusão

          into table itab_lfa1

          from lfa1

          for all entries in itab_zycbt001

          where lifnr = itab_zycbt001-corret.

    select nrseqc tppror dtpror nrcontr

           from /pws/zycbt003

           into table itab_zycbt003

           for all entries in itab_zycbt001

           where nrseqc = itab_zycbt001-nrseqc and

                 tppror = 'L'                    .

...

 

...

    if sy-subrc eq 0.

      select * into table itab_zycbt004

         from /pws/zycbt004

         for all entries in itab_zycbt001

         where nrseqc eq itab_zycbt001-nrseqc

           and tpdesp like 'J%'.

      if not itab_zycbt005[] is initial.

        select nrseqc tpdesp nrparc dtincl nrinvoic nrparcf

               gsberf dtvincul dtvencto dtpagto dtpagext

               status vlme

* >> Início da inclusão: FORM SELECIONA_DADOS

               vlme_c

* << Fim da inclusão

               into table itab_zycbt006 from /pws/zycbt006

               for all entries in itab_zycbt005

               where nrinvoic eq itab_zycbt005-nrinvoic and

                     nrparcf  eq itab_zycbt005-nrparcf  and

                     gsberf   eq itab_zycbt005-gsberf   and

                     dtvincul eq itab_zycbt005-dtvincul and

                     nrseqc   eq itab_zycbt005-nrseqc   and

                     tpdesp   eq itab_zycbt005-tpdesp   and

                     nrparc   eq itab_zycbt005-nrparc   and

                     dtincl   eq itab_zycbt005-dtincl   and

...

 

...

    select nrseqc txjtotal tptxjur into table itab_zycbt002

           from /pws/zycbt002 for all entries in itab_zycbt001

           where nrseqc eq itab_zycbt001-nrseqc and

                 tpparc eq 'J'                  and

                 nrparc eq '1'.

    select kunnr name1 into table itab_kna1cli

           from kna1 for all entries in itab_zycbt001

           where kunnr eq itab_zycbt001-kunnr.

    select tpcontr txtdesc

      from /pws/zycbt016

* >> Início da exclusão: FORM SELECIONA_DADOS

      into corresponding fields of table itab_zycbt016.  "#EC CI_NOWHERE

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

      into corresponding fields of table itab_zycbt016. "#EC CI_NOWHERE

* << Fim da inclusão

  else.

    message i222.

    stop.

  endif.

  select * from /pws/zycbt007

      up to 1 rows

     where bukrs in s_bukrs.

  endselect.

  v_type = c_ctmoed.

  select single * from /pws/zycbt009

...

 

...

       exceptions

            i_demoeda_nao_encontrado     = 1

            i_paramoeda_nao_encontrado   = 2

            i_ctmoeda_nao_encontrado     = 3

            i_dtbase_nao_encontrada      = 4

            taxa_nao_encontrada          = 5

            fator_nao_encontrado         = 6

            i_montante_nao_encontrado    = 7

            tabela_categ_nao_configurada = 8

            others                       = 9.

* >> Início da exclusão: FORM BUSCA_FATOR_CONVERSAO

  if sy-subrc ne 0.

    p_defator = p_parafator = 1.

* << Fim da exclusão

* >> Início da inclusão: FORM BUSCA_FATOR_CONVERSAO

  if p_defator = 0.

    p_defator = 1.

  endif.

  if p_parafator = 0.

    p_parafator = 1.

* << Fim da inclusão

  endif.

endform.

form filtra_dados.

  data: v_tabix   type sy-tabix,

        v_nrseq   like /pws/zycbt001-nrseqc,

        v_vr      like /pws/zycbt001-vlme,

        v_invoic  like /pws/zycbt006-nrinvoic.

  clear: itab_zycbt001,

         itab_zycbt005,

         itab_zycbt006,

...

 

...

                     tpdesp   = itab_zycbt006-tpdesp

                     nrparc   = itab_zycbt006-nrparc

                     dtincl   = itab_zycbt006-dtincl

                     nrinvoic = itab_zycbt006-nrinvoic

                     nrparcf  = itab_zycbt006-nrparcf

                     gsberf   = itab_zycbt006-gsberf

                     dtvincul = itab_zycbt006-dtvincul

                     dtvencto = itab_zycbt006-dtvencto.

          if sy-subrc ne 0.

             v_liquid = v_liquid + itab_zycbt006-vlme.

* >> Início da inclusão: FORM FILTRA_DADOS_NOVO

        else.

          if itab_zycbt006-vlme_c > 0.

            v_liquid = v_liquid + itab_zycbt006-vlme_c.

* << Fim da inclusão

          else.

* >> Início da inclusão: FORM FILTRA_DADOS_NOVO

            if itab_zycbt005-waers ne itab_zycbt005-waers_c.

              clear itab_t001a.

              read table itab_t001a with key

                                            bukrs = itab_zycbt001-bukrs.

              check sy-subrc = 0.

              perform busca_fator_conversao using itab_zycbt006-vlme

                                                  itab_zycbt005-waers

                                                  itab_zycbt005-waers_c

                                                  itab_t001a-kurst

                                                  sy-datum

                                            changing v_defator

                                                     v_parafator.

              read table itab_tcurx with key currkey =

                                                    itab_zycbt005-waers.

              if sy-subrc = 0 and itab_tcurx-currdec = 0.

                itab_zycbt006-vlme = itab_zycbt006-vlme * 100.

              endif.

              v_liquid = v_liquid + ( itab_zycbt006-vlme *

                ( ( itab_zycbt005-parid / v_defator ) * v_parafator ) ).

            else.

* << Fim da inclusão

             v_liquid = v_liquid +

                   ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* >> Início da inclusão: FORM FILTRA_DADOS_NOVO

            endif.

          endif.

* << Fim da inclusão

          endif.

       endif.

    endloop.

    itab_zycbt001-slvinc = itab_zycbt001-vlme -  v_vincul.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCBR059

 

...

        /pws/zycbt005,                             "#EC *

        /pws/zycbt006,                 "#EC *

        /pws/zycbt007,

        /pws/zycbt089,

        /pws/zyglt009,

        /pws/zycbt017,                     "#EC *

        /pws/zycbt021,

        /pws/zycbt050,                              "#EC *

        /pws/zycbt051,   "#EC *

        /pws/zycbt084,   "#EC *

* >> Início da exclusão:

        /pws/zycbt154.

* << Fim da exclusão

* >> Início da inclusão:

        /pws/zycbt154,

        t001a,

        tcurx.

* << Fim da inclusão

data: begin of itab_zycbt001 occurs 10.

        include structure /pws/zycbt001.

data: end of itab_zycbt001.

data: begin of itab_zycbt003 occurs 0.

        include structure /pws/zycbt003.

data: end of itab_zycbt003.

data: begin of itab_zycbt074 occurs 10.

        include structure /pws/zycbt074.

data: end of itab_zycbt074.

data: begin of itab_zycbt002 occurs 10.

...

 

...

       v_apr(01)    type c,

       v_pdd1(01)   type c,

       v_pdd2(01)   type c,

       v_rd(01)     type c,

       v_rp(01)     type c,

       cont_rp      type i,

       cont_rd      type i,

       cont_pd      type i,

       cont_dp      type i,

       cont_geral   type i.

* >> Início da inclusão:

DATA: v_parafator  TYPE  tcurr-tfact,

      v_defator    TYPE  tcurr-ffact,

      v_vlme       TYPE  /pws/zycbt006-vlme.

* << Fim da inclusão

start-of-selection.

  perform verifica_parametros.

  perform seleciona_dados.

  perform imprimir.

  if itab_zycbt001-tpcontr(1) = 'P' or

     itab_zycbt001-tpcontr(1) = 'S'.

    perform imprime_dados_pre.

  else.

    perform imprime_dados.

  endif.

...

 

...

      read table itab_zycbt005 with key nrseqc  = itab_zycbt006-nrseqc

                                       nrparc   = itab_zycbt006-nrparc

                                     nrinvoic = itab_zycbt006-nrinvoic

                                       dtincl   = itab_zycbt006-dtincl

                                       tpdesp   = itab_zycbt006-tpdesp

                                    dtvincul  = itab_zycbt006-dtvincul

                                    dtvencto  = itab_zycbt006-dtvencto.

      if itab_zycbt006-status eq 'C'.

        if itab_zycbt005-waers ne itab_zycbt005-waers_c.

        read table itab_zycbt001 with key nrseqc = itab_zycbt005-nrseqc.

* >> Início da exclusão: FORM SELECIONA_DADOS

          if itab_zycbt001-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

          IF itab_zycbt001-tpcontr(1) = 'D'.

* << Fim da inclusão

            v_vlliq = v_vlliq + itab_zycbt005-vlvinc.

          else.

* >> Início da exclusão: FORM SELECIONA_DADOS

            v_vlliq = v_vlliq +

                          ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

            PERFORM calcula_valor_contrato_arb USING v_vlme.

            v_vlliq = v_vlliq + v_vlme.

* << Fim da inclusão

          endif.

        else.

* >> Início da exclusão: FORM SELECIONA_DADOS

          v_vlliq = v_vlliq +

                         ( itab_zycbt006-vlme * itab_zycbt005-parid ).

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

          PERFORM calcula_valor_contrato_arb USING v_vlme.

          v_vlliq = v_vlliq + v_vlme.

* << Fim da inclusão

        endif.

      elseif itab_zycbt006-status eq 'I'.

* >> Início da exclusão: FORM SELECIONA_DADOS

        v_slapagar = v_slapagar + itab_zycbt006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

        PERFORM calcula_valor_contrato_arb USING v_vlme.

        v_slapagar = v_slapagar + v_vlme.

* << Fim da inclusão

      endif.

...

 

...

                    itab_zycbt004-dtpagto to itab_dados-dtpagto,

                    itab_zycbt004-belnr   to itab_dados-belnr  .

            else.

              if /pws/zyglt009-calc_rot_sep = 'S'.

                move: itab_zycbt004-vlme    to itab_dados-vljur_ace  ,

                      itab_zycbt004-dtpagto to itab_dados-dtpagto_ace,

                      itab_zycbt004-belnr   to itab_dados-belnr_ace  .

              endif.

            endif.

          endloop.

* >> Início da inclusão: FORM SELECIONA_DADOS

          IF itab_zycbt006-vlme_c > 0.

            itab_dados-vlme = itab_zycbt006-vlme_c.

          ELSE.

* << Fim da inclusão

          if itab_zycbt005-waers ne itab_zycbt005-waers_c.

* >> Início da exclusão: FORM SELECIONA_DADOS

            if itab_zycbt001-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

              IF itab_zycbt001-tpcontr(1) = 'D'.

* << Fim da inclusão

              itab_dados-vlme = itab_zycbt005-vlvinc.

            else.

* >> Início da exclusão: FORM SELECIONA_DADOS

             itab_dados-vlme = itab_zycbt005-parid * itab_zycbt006-vlme.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONA_DADOS

                PERFORM calcula_valor_contrato_arb

                                                  USING itab_dados-vlme.

* << Fim da inclusão

            endif.

          else.

            itab_dados-vlme = itab_zycbt006-vlme.

* >> Início da inclusão: FORM SELECIONA_DADOS

            ENDIF.

* << Fim da inclusão

          endif.

          move:

                itab_zycbt006-dtpagext to itab_dados-dtpagext,

                itab_zycbt006-dtpagto  to itab_dados-dtliquid.

...

 

...

        read table itab_zycbt005

          with key nrseqc   = itab_zycbt084_aux-nrseqc

                   tpdesp   = itab_zycbt084_aux-tpdesp

                   nrparc   = itab_zycbt084_aux-nrparc

                   dtincl   = itab_zycbt084_aux-dtincl

                   nrinvoic = itab_zycbt084_aux-nrinvoic

                   nrparcf  = itab_zycbt084_aux-nrparcf

                   gsberf   = itab_zycbt084_aux-gsberf

                   dtvincul = itab_zycbt084_aux-dtvincul

                   dtvencto = itab_zycbt084_aux-dtvencto.

* >> Início da inclusão: FORM MOVE_DADOS

        IF itab_zycbt006-vlme_c > 0.

          itab_dados-vlme = itab_zycbt006-vlme_c.

        ELSE.

* << Fim da inclusão

        if itab_zycbt005-waers ne itab_zycbt005-waers_c.

* >> Início da exclusão: FORM MOVE_DADOS

          if itab_zycbt001-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM MOVE_DADOS

            IF itab_zycbt001-tpcontr(1) = 'D'.

* << Fim da inclusão

            itab_dados-vlme = itab_zycbt005-vlvinc.

          else.

* >> Início da exclusão: FORM MOVE_DADOS

            itab_dados-vlme = itab_zycbt006-vlme * itab_zycbt005-parid.

* << Fim da exclusão

* >> Início da inclusão: FORM MOVE_DADOS

              PERFORM calcula_valor_contrato_arb

                                                USING itab_dados-vlme.

* << Fim da inclusão

          endif.

        else.

          itab_dados-vlme = itab_zycbt006-vlme.

* >> Início da inclusão: FORM MOVE_DADOS

          ENDIF.

* << Fim da inclusão

        endif.

        move:

              itab_zycbt006-dtpagext to itab_dados-dtpagext,

              itab_zycbt006-dtpagto  to itab_dados-dtliquid,

...

 

...

    endif.

    if v_belnr_liq is initial.

      write:

        (01) '|' no-gap, (010) text-009 centered no-gap.

    endif.

    if v_belnr_cli_ace is initial.

      write:

      (01) '|' no-gap, (010) text-065 centered no-gap.

    endif.

    if not v_belnr_liq is initial.

* >> Início da exclusão: FORM IMPRIMIR

      if itab_zycbt006-tpcontr = 'C' or itab_zycbt006-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM IMPRIMIR

      IF itab_zycbt006-tpcontr(1) = 'C' OR

         itab_zycbt006-tpcontr(1) = 'D'.

* << Fim da inclusão

        if itab_zycbt006-status = 'C'.

          write:

           (01) '|' no-gap, (010) text-009 centered no-gap.

        endif.

      else.

        if /pws/zycbt089-est_variacao is initial.

          write:

           (01) '|' no-gap, (010) text-009 centered no-gap.

        endif.

      endif.

...

 

...

    endif.

    if v_belnr_liq is initial.

      write:

        (01) '|' no-gap, (010) text-071 centered no-gap.

    endif.

    if v_belnr_cli_ace is initial.

      write:

      (01) '|' no-gap, (010) text-017 centered no-gap.

    endif.

    if not v_belnr_liq is initial.

* >> Início da exclusão: FORM IMPRIMIR

      if itab_zycbt006-tpcontr = 'C' or itab_zycbt006-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM IMPRIMIR

      IF itab_zycbt006-tpcontr(1) = 'C' OR

         itab_zycbt006-tpcontr(1) = 'D'.

* << Fim da inclusão

        if itab_zycbt006-status = 'C'.

          write:

           (01) '|' no-gap, (010) text-071 centered no-gap.

        endif.

      else.

        if /pws/zycbt089-est_variacao is initial.

          write:

           (01) '|' no-gap, (010) text-071 centered no-gap.

        endif.

      endif.

...

 

...

        write: (01) '|' no-gap, (010) itab_dados-belnr5 centered color

                           col_heading inverse hotspot no-gap.

      endif.

    endif.

    if v_belnr_cli_ace is initial.

      write:

       (01) '|' no-gap, (010) itab_dados-belnr_cli_ace centered color

                              col_heading inverse hotspot no-gap.

    endif.

    if not v_belnr_liq is initial.

* >> Início da exclusão: FORM IMPRIME_DADOS

      if itab_zycbt006-tpcontr = 'C' or itab_zycbt006-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM IMPRIME_DADOS

      IF itab_zycbt006-tpcontr(1) = 'C' OR

         itab_zycbt006-tpcontr(1) = 'D'.

* << Fim da inclusão

        if itab_zycbt006-status = 'C'.

          write:

           (01) '|' no-gap, (010) itab_dados-belnr5 centered color

                                  col_heading inverse hotspot no-gap.

          itab_dados-belnr_liq = itab_dados-belnr5.

        endif.

      else.

        if /pws/zycbt089-est_variacao is initial.

          write:

           (01) '|' no-gap, (010) itab_dados-belnr5 centered color

...

 

...

  loop at itab_dados where belnr_liq ne space        and

                           belnr_liq ne '          ' and

                           belnr_liq ne '0000000000'.

    v_colunas = v_colunas + 39.

    exit.

  endloop.

  if sy-subrc ne 0.

    v_belnr_liq = 'X'.

  endif.

  if not v_belnr_liq is initial.

* >> Início da exclusão: FORM DEFINE_COLUNAS

    if itab_zycbt006-tpcontr = 'C'.

* << Fim da exclusão

* >> Início da inclusão: FORM DEFINE_COLUNAS

    IF itab_zycbt006-tpcontr(1) = 'C'.

* << Fim da inclusão

      if itab_zycbt006-status = 'C'.

        v_colunas = v_colunas + 11.

      endif.

    else.

      if /pws/zycbt089-est_variacao is initial.

        v_colunas = v_colunas + 11.

      endif.

* >> Início da exclusão: FORM DEFINE_COLUNAS

      if itab_zycbt006-tpcontr = 'DP'.

* << Fim da exclusão

* >> Início da inclusão: FORM DEFINE_COLUNAS

      IF itab_zycbt006-tpcontr(1) = 'D'.

* << Fim da inclusão

        v_colunas = v_colunas + 11.

      endif.

    endif.

  endif.

  loop at itab_dados where belnr_desm_cc ne space        and

                           belnr_desm_cc ne '          ' and

                           belnr_desm_cc ne '0000000000'.

    v_colunas = v_colunas + 11.

    exit.

  endloop.

...

 

...

          itab_dados_dev-vlme_pdd2  = itab_dados_pd-vlme.

          itab_dados_dev-belnr_pdd2 = itab_dados_pd-belnr_pdd2.

          itab_dados_dev-dtpdd      = itab_dados_pd-dtpdd.

        endif.

        append itab_dados_dev.

        clear itab_dados_dev.

      enddo.

    endif.

  endloop.

endform.

* >> Início da inclusão:

FORM determina_fator USING p_defator

                           p_parafator.

  SELECT SINGLE *

    FROM t001a

    WHERE bukrs = itab_zycbt005-bukrs.

  SELECT SINGLE ffact tfact

    FROM tcurf

    INTO  (p_defator,

           p_parafator)

    WHERE kurst = t001a-kurst

      AND fcurr =  itab_zycbt005-waers

      AND tcurr =  itab_zycbt005-waers_c

    AND gdatu >= sy-datum.                                "#EC PORTABLE

  IF p_defator = 0.

    p_defator = 1.

  ENDIF.

  IF p_parafator = 0.

    p_parafator = 1.

  ENDIF.

ENDFORM.

FORM calcula_valor_contrato_arb USING p_vlme.

  IF itab_zycbt006-vlme_c > 0.

    p_vlme = itab_zycbt006-vlme_c.

  ELSE.

    IF itab_zycbt005-waers NE itab_zycbt005-waers_c.

      SELECT SINGLE currdec FROM tcurx

             INTO tcurx-currdec

             WHERE currkey = itab_zycbt005-waers.

      IF sy-subrc NE 0.

        tcurx-currdec = 2.

      ENDIF.

      IF tcurx-currdec = 0.

        itab_zycbt006-vlme = itab_zycbt006-vlme * 100.

      ENDIF.

    ENDIF.

    PERFORM determina_fator USING v_defator

                                  v_parafator.

    p_vlme = itab_zycbt006-vlme *

      ( ( itab_zycbt005-parid / v_defator ) * v_parafator ).

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCBE005

 

Referência Moeda - Alterar  MOEDA dos campos abaixo:

*DE:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBE005  WAERS

*PARA:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBE005  WAERS_C

 

*DE:

VLIR            /PWS/ZYCBL258               /PWS/ZYCBE005  WAERS

*PARA:

VLIR            /PWS/ZYCBL258               /PWS/ZYCBE005  WAERS_C

 

*DE:

VLESTORNO       /PWS/ZYCBL472               /PWS/ZYCBE005  WAERS

*PARA:

VLESTORNO       /PWS/ZYCBL472               /PWS/ZYCBE005  WAERS_C

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCBT005

 

 

Referência Moeda - Alterar MOEDA dos campos abaixo:

*DE:

VLVINC          /PWS/ZYCBL057               /PWS/ZYCBT005  WAERS

*PARA:

VLVINC          /PWS/ZYCBL057               /PWS/ZYCBT005  WAERS_C

 

*DE:

SLPAGAR         /PWS/ZYCBL089               /PWS/ZYCBT005  WAERS

*PARA:

SLPAGAR         /PWS/ZYCBL089               /PWS/ZYCBT005  WAERS_C

 

*DE:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT005  WAERS

*PARA:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT005  WAERS_C

 

*DE:

VLIR            /PWS/ZYCBL258               /PWS/ZYCBT005  WAERS

*PARA:

VLIR            /PWS/ZYCBL258               /PWS/ZYCBT005  WAERS_C

 

*DE:

VLESTORNO       /PWS/ZYCBL472               /PWS/ZYCBT005  WAERS

*PARA:

VLESTORNO       /PWS/ZYCBL472               /PWS/ZYCBT005  WAERS_C

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCBE006

 

Referência Moeda - Alterar TABELA dos campos abaixo:

*DE:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

*DE:

VLJUR_ACC       /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR_ACC       /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

*DE:

VLJUR_ACE       /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR_ACE       /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

 

 

 

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:         CPO.RE

BELNR_PERF      BELNR_D

TPFATURA_OR     /PWS/ZYGLL1365

* >> Início da inclusão

WAERS_C         WAERS       ''  ''      ''

VLME_C          WRBTR       ''  ''      ''          /PWS/ZYCBE006     WAERS_C

* << Fim da inclusão

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCBT006

 

 

Referência Moeda - Alterar TABELA dos campos abaixo:

*DE:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR           /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

*DE:

VLJUR_ACC       /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR_ACC       /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

*DE:

VLJUR_ACE       /PWS/ZYCBL106               /PWS/ZYCBT006  WAERS

*PARA:

VLJUR_ACE       /PWS/ZYCBL106               /PWS/ZYCBT001  WAERS

 

 

 

 

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:         CPO.RE

BELNR_PERF      BELNR_D

TPFATURA_OR     /PWS/ZYGLL1365

* >> Início da inclusão

WAERS_C         WAERS       ''  ''      ''

VLME_C          WRBTR       ''  ''      ''          /PWS/ZYCBT006     WAERS_C

* << Fim da inclusão