Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Despesas
Data/Hora da Publicação: 25/08/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:40:17
Descrição da Nota: ERRO NO CUSTO EFETIVO E FATURA DO TIPO P
Sintoma
No custo efetivo e no embarque estava com erro no valor planejado do FOB.
Fatura do tipo P estava contabilizando mesmo sem ter DI, e a taxa tbm estava incorreta quando havia
mais de uma moeda.
Solução
Atualização no embarque e no custo efetivo para que o sistema primeiro transforme a moeda
estrangeira em nacional e depois transforme na moeda do embarque.Na fatura realizado atualização
para selecionar corretamente o item da DI e buscar a tx da DI para conversão de faturas tipo P.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01986 Data: 25/08/2006 Hora: 16:46:14
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01986
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00128
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
ERRO NO CUSTO EFETIVO E FATURA DO TIPO P
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALOR PLANEJADO EMBARQUE E CUSTO - CONTABILIZAÇÃO FATURA TIPO P
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI003F01
REPS /PWS/ZYCIR035
REPS /PWS/ZYCIR006
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
ENDIF.
ENDIF.
LOOP AT itab_zycit003.
v_tabix = sy-tabix.
IF v_waers_diferente = 'X'.
* >> Início da exclusão: FORM VERIFICA_ITENS
PERFORM busca_taxa_dia USING itab_zycit003-waers
CHANGING v_taxa .
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
PERFORM busca_taxa_dia USING itab_zycit003-waers
itab_zycit003-netpr
CHANGING v_taxa
v_netpr.
* << Fim da inclusão
ELSE.
v_taxa = 1.
* >> Início da inclusão: FORM VERIFICA_ITENS
v_netpr = itab_zycit003-netpr.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM VERIFICA_ITENS
v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *
v_taxa ).
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
v_netpr = v_netpr * itab_zycit003-qtd_iten.
* << Fim da inclusão
PERFORM tratar_decimais USING itab_zycit003-waers
CHANGING v_netpr.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
IF /pws/zycie001-netpr < 0.
CLEAR /pws/zycie001-netpr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
tcurx-currdec = 2.
ENDIF.
p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM.
FORM busca_taxa_dia USING p_waers_real
* >> Início da exclusão: FORM BUSCA_TAXA_DIA
CHANGING p_taxa .
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA_DIA
p_valor
CHANGING p_taxa
p_vlconv.
DATA: v_montante TYPE bsak-wrbtr,
v_kurst TYPE /pws/zycit000-kurst.
v_montante = p_valor.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
IF /pws/zycit000-kurst IS INITIAL.
v_kurst = 'M'.
ELSE.
v_kurst = /pws/zycit000-kurst.
ENDIF.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycbt007 WHERE bukrs EQ /pws/zycie001-bukrs.
IF sy-subrc NE 0.
MESSAGE w120.
ENDIF.
* >> Início da inclusão: FORM BUSCA_TAXA_DIA
IF p_waers_real NE /pws/zycie001-waers.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
* >> Início da exclusão: FORM BUSCA_TAXA_DIA
i_montante = 1
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA_DIA
i_montante = v_montante
* << Fim da inclusão
i_demoeda = p_waers_real
* >> Início da exclusão: FORM BUSCA_TAXA_DIA
i_paramoeda = /pws/zycbt007-waersa
i_ctmoeda = 'M'
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_TAXA_DIA
i_paramoeda = /pws/zycbt007-waersb
i_ctmoeda = v_kurst
i_dtbase = sy-datlo
IMPORTING
e_montante = v_montante
e_txc = p_taxa
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.
CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'
EXPORTING
i_montante = v_montante
i_demoeda = /pws/zycbt007-waersb
i_paramoeda = /pws/zycie001-waers
i_ctmoeda = v_kurst
* << Fim da inclusão
i_dtbase = sy-datlo
IMPORTING
* >> Início da inclusão: FORM BUSCA_TAXA_DIA
e_montante = v_montante
* << Fim da inclusão
e_txc = p_taxa
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 inclusão: FORM BUSCA_TAXA_DIA
ENDIF.
p_vlconv = v_montante.
* << Fim da inclusão
ENDFORM.
FORM altera_tela.
IF v_tcode EQ '/PWS/ZYCI001_E'.
LOOP AT SCREEN.
IF screen-group1 NE 'GR2'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
ENDIF.
IF /pws/zycie001-regime NE '14' AND
/pws/zycie001-regime NE '16'.
LOOP AT itab_zycit003.
IF v_waers_diferente = 'X'.
* >> Início da exclusão: MODULE USER_COMMAND_0102
PERFORM busca_taxa_dia USING itab_zycit003-waers
CHANGING v_taxa .
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0102
PERFORM busca_taxa_dia USING itab_zycit003-waers
itab_zycit003-netpr
CHANGING v_taxa
v_netpr.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: MODULE USER_COMMAND_0102
v_netpr = itab_zycit003-netpr.
* << Fim da inclusão
v_taxa = 1.
ENDIF.
* >> Início da exclusão: MODULE USER_COMMAND_0102
CLEAR v_netpr.
v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *
v_taxa ).
* << Fim da exclusão
* >> Início da inclusão: MODULE USER_COMMAND_0102
v_netpr = v_netpr * itab_zycit003-qtd_iten.
* << Fim da inclusão
PERFORM tratar_decimais USING itab_zycit003-waers
CHANGING v_netpr.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
ENDLOOP.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
CLEAR itab_zycbe033-kursf.
itab_zycbe033-dmbtr = /pws/zycie006-vlfre_clp .
ELSE.
IF /pws/zycie006-frpagto = 'P'.
IF /pws/zycie006-tpfatura = '01' .
* >> Início da exclusão: FORM FILL_DATE_F-43_F-02
v_ukurs = /pws/zycit085-ukursfob.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F-43_F-02
read table itab_zycit003 index 1.
read table itab_zycit100 with key ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
v_ukurs = itab_zycit100-DTTAXBEM.
* << Fim da inclusão
ELSEIF /pws/zycie006-tpfatura = '02'.
v_ukurs = /pws/zycit085-ukursfre.
ELSEIF /pws/zycie006-tpfatura = '03'.
v_ukurs = /pws/zycit085-ukursseg.
ENDIF.
...
...
...
ENDIF.
IF ( /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11' )
AND /pws/zycit085 IS INITIAL.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit100
* >> Início da exclusão: FORM CONSISTE_CAMPOS_OBRIGATORIOS
WHERE ebeln EQ itab_zycit100-ebeln
AND ebelp EQ itab_zycit100-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CONSISTE_CAMPOS_OBRIGATORIOS
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da inclusão
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi EQ /pws/zycit100-nrseqdi.
IF sy-subrc EQ 0.
IF NOT /pws/zycit085-dtreg IS INITIAL AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
itab_zycit036_plan-bukrs = itab_zycit001-bukrs.
itab_zycit036_plan-werks = itab_zycit003-werks.
itab_zycit036_plan-waers = itab_zycit001-waers.
IF itab_zycit003-waers NE itab_zycit001-waers AND
NOT itab_zycit030_aux-valor IS INITIAL.
* >> Início da exclusão: FORM CUSTEANDO_PLANEJADO
v_valor = itab_zycit030_aux-valor.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
v_valor = itab_zycit003-NETPR.
* << Fim da inclusão
PERFORM converter_moeda(/pws/sapmzyci010) USING
v_valor
itab_zycit003-waers
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
/pws/zycbt007-waersb
CHANGING v_valor.
if /pws/zycbt007-waersb ne itab_zycit001-waers.
PERFORM converter_moeda(/pws/sapmzyci010)
USING v_valor
/pws/zycbt007-waersb
* << Fim da inclusão
itab_zycit001-waers
CHANGING v_valor.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
endif.
* << Fim da inclusão
IF v_valor NE 0.
* >> Início da exclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-valor = v_valor.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.
* << Fim da inclusão
ENDIF.
ENDIF.
itab_zycit036_plan-ebeln = itab_zycit030_aux-ebeln.
itab_zycit036_plan-ebelp = itab_zycit030_aux-ebelp.
itab_zycit036_plan-codmod = itab_zycit030_aux-codmod.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
AND gjahr = v_dtincl+0(4).
ENDIF.
ENDIF.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
IF itab_zycit036-origem = 'FAT'.
read table itab_zycit006
with key nrseq_pgfat = itab_zycit263-nrseq_pgfat.
v_valor = itab_zycit006-vltotal.
else.
* << Fim da inclusão
v_valor = itab_zycit036-vlreal.
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
endif.
* << Fim da inclusão
IF t001-land1 EQ 'CL'.
...