Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 30/09/2010 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:12:56
Descrição da Nota: ROTINA MENSAL EXP-CLEARING-ERRO JUROS ACC X PRÉ E SEPARAÇÃO ACC/ACE
Sintoma
Na Rotina Mensal quando o parametro Geral Separação do Cálculo de ACC e ACE e Contabilização
Separada de ACC e ACE estão SIM não está calculando o valor da Diferença a Provisional e o valor
está aparecendo com sinal negativo.
Juros de contrato gerado no ACC x Pré e Contrato de ACC gerado normalmente.
Solução
- Ajustar lógica para que considere corretamente as contas de ACC e ACE e seus respectivos valores.
- Criar o campo NRPARC na tabela /PWS/ZYCBT062, para que encontre o registro correspondente na
tabela /PWS/ZYCBT004, trazendo na tela, quando Rotina Mensal, só o que não foi pago. Na opção
Relatório irá trazer tudo, pago e não pago, igual já faz com os contratos normais(não gerado no acc
x pré).
- Ajustar a leitura da tabela /PWS/ZYCBT004 para que considere o tipo de despesa JL e não J, assim
encontra corretamente a conta contábil para gerar a provisão.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10636 Data: 30/09/2010 Hora: 08:31:39
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10636
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00005
Agrupamento : 00041
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01309 - 00001 - 6.0 - 00023 - ROTINA MENSAL EXPORTAÇÃO CONTABILIZAÇÃO SEPARADA DE ACC E ACE = S
03221 - 00002 - 6.0 - 00026 - ROTINA MENSAL EXPORTAÇÃO - CONTA DÉBITO NA MÃO COM 17 CARACTERES
03450 - 00003 - 7.0 - 00001 - DESENVOLVIMENTO ADICIONAL - ESTORNO DA ROTINA MENSAL.
03651 - 00004 - 7.0 - 00001 - ROTINA MENSAL DE EXPORTAÇÃO - JUROS ACC X PRÉ
03938 - 00005 - 7.0 - 00002 - ROTINA MENSAL EXPORTAÇÃO - CAMPO DATA OBRIGATÓRIO
04193 - 00006 - 7.0 - 00002 - ROTINA MENSAL EXPORTAÇÃO - JUROS ACC X PRÉ
04930 - 00007 - 7.0 - 00003 - CODE INSPECTOR(ROTINA MENSAL)
06809 - 00008 - 7.0 - 00006 - ROTINA MENSAL EXPORTAÇÃO - RETIRAR FILTRO /PWS/ZYCBT154 POR GSBER
07111 - 00009 - 7.0 - 00006 - ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE
08164 - 00010 - 7.0 - 00008 - DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURI
08278 - 00011 - 7.0 - 00009 - ROTINA DE PAGAMENTO, PROVISÃO DE JUROS, CONTABILIDADE
08284 - 00012 - 7.0 - 00009 - ROTINA MENSAL EXPORTAÇÃO-SEPARAÇÃO ACC/ACE-NÃO DEDUZ VALOR PROVIS
09825 - 00013 - 8.0 - 00002 - ROTINA MENSAL IMPORTAÇÃO / EXPORTAÇÃO / FINANCEIRO MENSAGENS DE
10538 - 00014 - 8.0 - 00004 - ROTINA MENSAL EXPORTAÇÃO - EXIBIR RELATÓRIO COM TODO HISTÓRICO DA
----------------------------------------------------------------------------------------------------
ROTINA MENSAL EXP-CLEARING-ERRO JUROS ACC X PRÉ E SEPARAÇÃO ACC/ACE
----------------------------------------------------------------------------------------------------
Palavras Chave:
ROTINA MENSAL EXP CLEARING ERRO JUROS ACC X PRÉ E SEPARAÇÃO ACC/ACE
ROTINA MENSAL EXPORTAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBI003
REPS /PWS/ZYCBR003
TABD /PWS/ZYCBE062
TABD /PWS/ZYCBT062
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBE062
DESCRIÇÃO BREVE: CB - Juros do Pré Pagamento
COMPONENTES NOVOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
NRPARC /PWS/ZYCBL047
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCBT062
DESCRIÇÃO BREVE: CB - Juros do Pré Pagamento
CARACTERÍSTICAS
CATEGORIA DA TABELA: Tabela transparente
CLASSE DE ENTREGA:
(A) - AUTUALIZAÇÃO DE TABELAS PERMITIDA
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI: TAB.VERIF.: TAB.REF.: CPO.RE
NRPARC /PWS/ZYCBL047
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBI003
...
ENDIF.
IF itab_relat-vlmeir > 0.
v_vlmeir2 = v_vlmeir2 + itab_relat-vlmeir.
ENDIF.
AT END OF ftpj.
PERFORM verifica_provisao_liquidacao CHANGING v_separa.
IF wa_zycbt007-fprovisao EQ 'C' AND
( /pws/zyglt009-calc_rot_sep EQ 'S' OR
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
aux_relat-tpcontab IS INITIAL AND
* >> Início da inclusão: FORM EXIBE_RELATORIO
aux_relat-vlmej GT 0 AND
* << Fim da inclusão
( aux_relat-tpcontr EQ 'A' OR
aux_relat-tpcontr EQ 'E' ) AND
v_separa EQ 'X'.
CLEAR: v_vlrjprov, v_vlirprov.
LOOP AT itab_zycbt154 WHERE nrcorresp EQ aux_relat-nrseqc
AND bukrs EQ aux_relat-bukrs
AND waers EQ aux_relat-waers
AND tpcontr EQ aux_relat-tpcontr
AND codmodul NE 'C'
AND codmodul NE 'CD'
...
...
IF v_conta_dif IS INITIAL.
IF itab_zycbt154-belnr_cl IS INITIAL.
IF itab_zycbt154-codmodul EQ 'IR'.
ADD itab_zycbt154-vlme TO v_vlirprov.
ELSE.
ADD itab_zycbt154-vlme TO v_vlrjprov.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF sy-subrc NE 0.
PERFORM verifica_conta_acc_ace CHANGING v_conta_dif
v_conta_dif_parametro.
ENDIF.
* << Fim da inclusão
LOOP AT itab_relat_aux WHERE nrseqc EQ itab_relat-nrseqc
AND tpcontab EQ itab_relat-tpcontab
AND ftpj NE itab_relat-ftpj.
EXIT.
ENDLOOP.
IF sy-subrc NE 0 OR NOT v_conta_dif_parametro IS INITIAL OR
* >> Início da exclusão: FORM EXIBE_RELATORIO
( sy-subrc EQ 0 AND itab_relat_aux-ftpj <>
itab_relat-ftpj ).
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_RELATORIO
( sy-subrc EQ 0 AND itab_relat-ftpj = 'E' ).
* << Fim da inclusão
itab_relat-vlrprov = v_vlmej2 - v_vlrjprov.
itab_relat-vlirprov = v_vlmeir2 - v_vlirprov.
MODIFY itab_relat INDEX v_sytabix
TRANSPORTING vlrprov vlirprov.
CLEAR: v_vlmej2, v_vlmeir2.
ENDIF.
ENDIF.
IF NOT v_conta_dif_parametro IS INITIAL.
CLEAR: v_vlmej2, v_vlmeir2.
ENDIF.
...
...
/pws/zyglt009-cont_rot_sep EQ 'S' ) AND
aux_relat-tpcontab IS INITIAL AND
( aux_relat-tpcontr EQ 'A' OR
aux_relat-tpcontr EQ 'E' ) AND
v_separa EQ 'X' ).
IF itab_relat-vlmej > 0.
itab_relat-vlrprov = itab_relat-vlmej - v_vlrjprov.
ELSE.
itab_relat-vlrprov = ( itab_relat-vlmej + v_tjuros ) -
v_vlrjprov.
* >> Início da inclusão: FORM EXIBE_RELATORIO
itab_relat-vlrprov = ( itab_relat-vlrprov + v_vlrjprov )
- v_tjuros.
* << Fim da inclusão
ENDIF.
itab_relat-vlrjprov = v_vlrjprov.
itab_relat-vlirprov = itab_relat-vlmeir - v_vlirprov.
MODIFY itab_relat INDEX v_sytabix
TRANSPORTING vlrprov vlirprov.
ENDIF.
ELSE.
itab_relat-vlirprov = itab_relat-vlmeir.
itab_relat-vlrprov = itab_relat-vlmej.
MODIFY itab_relat INDEX v_sytabix TRANSPORTING
...
...
CLEAR v_codaux1.
IF /pws/zyglt009-provjur_moeda = 'X' AND
itab_relat-waers = wa_zycbt007-waersa.
CONCATENATE 'JUROS C' wa_zycbt007-waersa
INTO v_codaux1 SEPARATED BY space.
ELSE.
v_codaux1 = 'JUROS C'.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
* >> Início da exclusão: FORM PREENCHE_CONTAS_PGTO
bukrs = itab_zycbt004-bukrs
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
bukrs = itab_zycbt001-bukrs
* << Fim da inclusão
ktosl = 'PVE'
codaux1 = v_codaux1
* >> Início da exclusão: FORM PREENCHE_CONTAS_PGTO
codaux2 = itab_zycbt004-tpcontr
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
codaux2 = itab_zycbt001-tpcontr
* << Fim da inclusão
codaux3 = v_codaux3
TABLES
account = itab_contas
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_contas INDEX 1.
itab_relat-c_newko = itab_contas-konth.
ENDIF.
CLEAR v_codaux1.
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
IF NOT itab_zycbt004-tpdesp IS INITIAL.
* << Fim da inclusão
IF /pws/zyglt009-provjur_moeda = 'X' AND
itab_relat-waers = wa_zycbt007-waersa.
CONCATENATE itab_zycbt004-tpdesp wa_zycbt007-waersa
INTO v_codaux1 SEPARATED BY space.
ELSE.
v_codaux1 = itab_zycbt004-tpdesp.
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
ENDIF.
ELSE.
IF /pws/zyglt009-provjur_moeda = 'X' AND
itab_relat-waers = wa_zycbt007-waersa.
CONCATENATE v_jl wa_zycbt007-waersa
INTO v_codaux1 SEPARATED BY space.
ELSE.
v_codaux1 = v_jl.
ENDIF.
* << Fim da inclusão
ENDIF.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
* >> Início da exclusão: FORM PREENCHE_CONTAS_PGTO
bukrs = itab_zycbt004-bukrs
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
bukrs = itab_zycbt001-bukrs
* << Fim da inclusão
ktosl = 'DSE'
codaux1 = v_codaux1
* >> Início da exclusão: FORM PREENCHE_CONTAS_PGTO
codaux2 = itab_zycbt004-tpcontr
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
codaux2 = itab_zycbt001-tpcontr
* << Fim da inclusão
codaux3 = v_codaux3
TABLES
account = itab_contas
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_contas INDEX 1.
itab_relat-d_newko = itab_contas-konts.
ENDIF.
IF /pws/zyglt009-cont_rot_sep EQ 'S'.
IF itab_zycbt004-tpcontr(1) EQ 'A' AND
itab_zycbt004-tpjuros EQ 'E'.
v_codeven = '005E'.
ELSE.
* >> Início da exclusão: FORM PREENCHE_CONTAS_PGTO
CONCATENATE '005' itab_zycbt004-tpcontr INTO v_codeven.
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_CONTAS_PGTO
CONCATENATE '005' itab_zycbt001-tpcontr INTO v_codeven.
* << Fim da inclusão
ENDIF.
ELSE.
CONCATENATE '005' itab_zycbt001-tpcontr INTO v_codeven.
ENDIF.
READ TABLE itab_zycbt011 WITH KEY codeven = v_codeven.
itab_relat-blart = itab_zycbt011-blart.
itab_relat-d_sgtxt = itab_zycbt011-txtdesc.
itab_relat-c_sgtxt = itab_zycbt011-txtdesc.
ENDFORM.
FORM exibe_top_relatorio.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR003
...
v_defator LIKE tcurr-ffact,
v_parafator LIKE tcurr-tfact,
v_separa TYPE c,
v_vlprov_aux LIKE /pws/zycbt004-vlme,
v_fprov TYPE /pws/zycbt007-fprovisao,
v_liq TYPE c.
DATA: v_jace TYPE c,
v_dtpagto TYPE sy-datum.
DATA: v_vinculacao TYPE c.
DATA: v_msg(150) TYPE c.
* >> Início da inclusão:
CONSTANTS: v_jl(2) TYPE c VALUE 'JL'.
* << Fim da inclusão
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
PARAMETERS: s_bukrs LIKE /pws/zycbt001-bukrs OBLIGATORY,
s_dtentr LIKE sy-datum OBLIGATORY.
PARAMETERS: p_agrup AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK a1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-046.
PARAMETERS: s_rbrotm RADIOBUTTON GROUP rg1,
s_rbrotd RADIOBUTTON GROUP rg1,
s_rbrela RADIOBUTTON GROUP rg1.
SELECTION-SCREEN END OF BLOCK b2.
...
...
ENDLOOP.
LOOP AT itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.
PERFORM preenche_itab_relat_pago.
ENDLOOP.
CLEAR itab_zycbt005.
ENDLOOP.
CLEAR itab_zycbt001.
ENDFORM.
FORM preenche_itab_relat_pago.
CLEAR itab_relat.
* >> Início da inclusão: FORM PREENCHE_ITAB_RELAT_PAGO
IF NOT itab_zycbt004-dtpagto IS INITIAL AND
s_rbrela IS INITIAL.
EXIT.
ENDIF.
* << Fim da inclusão
itab_relat-nrseqc = itab_zycbt001-nrseqc.
itab_relat-nrcontr = itab_zycbt001-nrcontr.
itab_relat-tpcontr = itab_zycbt001-tpcontr.
itab_relat-nrparcj = itab_zycbt004-nrparc.
IF itab_zycbt001-tpcontr(1) EQ 'P' OR
itab_zycbt001-tpcontr(1) EQ 'S'.
CLEAR itab_relat-nrinvoic.
ELSE.
READ TABLE itab_zycbt005 WITH KEY nrseqc = itab_zycbt004-nrseqc
nrparc = itab_zycbt004-nrparc
...
...
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 1.
WHEN 2.
WHEN 3.
ENDCASE.
READ TABLE itab_contas INDEX 1.
IF sy-subrc = 0.
* >> Início da inclusão: FORM VERIFICA_CONTA_ACC_ACE
IF NOT itab_zycbt154-d_newko IS INITIAL.
* << Fim da inclusão
IF itab_zycbt154-d_newko NE itab_contas-konts.
p_conta_dif = 'X'.
ENDIF.
IF itab_zycbt154-d_newko+7 EQ itab_contas-konts.
CLEAR p_conta_dif.
* >> Início da inclusão: FORM VERIFICA_CONTA_ACC_ACE
ENDIF.
* << Fim da inclusão
ENDIF.
ELSE.
...
...
itab_relat-dtate = itab_zycbt060-dtdesemb.
ENDIF.
ENDIF.
itab_relat-bukrs = itab_zycbt001-bukrs.
itab_relat-gsber = itab_zycbt001-gsber.
itab_relat-bco = itab_zycbt001-bconegoc.
itab_relat-txjtotal = itab_zycbt062-txjtotal.
itab_relat-vlme = itab_zycbt062-vlme.
itab_relat-ftpj = 'A'.
itab_relat-waers = itab_zycbt001-waers.
* >> Início da inclusão: FORM PREENCHE_LIQ_AND
clear itab_zycbt004.
* << Fim da inclusão
READ TABLE itab_zycbt004 WITH KEY
nrseqc = itab_zycbt062-nrseq_c
tpdesp = 'J'
* >> Início da inclusão: FORM PREENCHE_LIQ_AND
nrparc = v_nrparc
dtincl = itab_zycbt062-dtincl.
IF sy-subrc NE 0.
v_nrparc = itab_zycbt062-nrparc.
READ TABLE itab_zycbt004 WITH KEY
nrseqc = itab_zycbt062-nrseq_c
tpdesp = 'JL'
* << Fim da inclusão
nrparc = v_nrparc
dtincl = itab_zycbt062-dtincl.
* >> Início da inclusão: FORM PREENCHE_LIQ_AND
ENDIF.
IF sy-subrc = 0 AND
NOT itab_zycbt004-dtpagto IS INITIAL AND
s_rbrela IS INITIAL.
EXIT.
ENDIF.
* << Fim da inclusão
PERFORM preenche_contas_pgto.
v_liq = 'X'.
PERFORM processa_calculo_juros USING itab_zycbt062-vlme
itab_zycbt062-txjtotal
itab_zycbt062-tptxjur
itab_relat-dtde
itab_relat-dtate
itab_zycbt001-waers
itab_zycbt011-ctmoed
'A'.
...