Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 27/06/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:32:48
Descrição da Nota: AO CRIAR FATURA COM PEDIDOS DE MOEDAS DIFERENTES FICA ERRADO.
Sintoma
Ao vincular dois ou mais pedidos de moedas diferentes de uma única vez, utilizando a seleção
múltipla e após criar a Fatura para um único Pedido ele assume o valor de outra moeda para a Origem
PED (Pedido) na tabela /PWS/ZYCIT036.
Solução
Converter valores para a mesma moeda.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06867 Data: 27/06/2008 Hora: 15:26:32
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06867
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00054
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01986 - 00001 - 6.0 - 00024 - ERRO NO CUSTO EFETIVO E FATURA DO TIPO P
06660 - 00002 - 7.0 - 00005 - CRIADO TEXTOS AUSENTES NA FUNÇÃO DE TEXTOS DETALHE DO ITEM
----------------------------------------------------------------------------------------------------
AO CRIAR FATURA COM PEDIDOS DE MOEDAS DIFERENTES FICA ERRADO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ERRO - CONVERSÃO - FATURA - PEDIDOS - MOEDAS DIFERENTES
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCIR035
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
CONCATENATE '0' it_desp-ebelp INTO v_ebelp.
LOOP AT itab_custo_condition
WHERE kposn EQ v_ebelp
AND kschl EQ itab_zycit030-kschl.
READ TABLE itab_ekpo WITH KEY ebeln = it_desp-ebeln
ebelp = it_desp-ebelp.
IF sy-subrc EQ 0.
itab_zycit030_aux-porcent = itab_custo_condition-kbetr .
IF not itab_ekpo-menge is initial and
not it_desp-qtd_iten is initial.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
perform retorna_decimais using it_desp-waers
changing itab_custo_condition-kwert.
* << Fim da inclusão
itab_zycit030_aux-valor = itab_custo_condition-kwert /
itab_ekpo-menge * it_desp-qtd_iten.
endif.
APPEND itab_zycit030_aux.
ENDIF.
ENDLOOP.
ENDIF.
IF sy-subrc NE 0.
IF itab_zycit030-codigo EQ 'II' OR
itab_zycit030-codigo EQ 'IPI' OR
...
...
ENDLOOP.
ELSE.
CLEAR v_ebelp.
CONCATENATE '0' it_desp-ebelp INTO v_ebelp.
LOOP AT itab_custo_condition
WHERE kposn EQ v_ebelp
AND kschl EQ itab_zycit030-kschl.
itab_zycit030_aux-porcent = itab_custo_condition-kbetr .
IF not it_desp-menge is initial and
not it_desp-qtd_iten is initial.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
perform retorna_decimais using it_desp-waers
changing itab_custo_condition-kwert.
* << Fim da inclusão
itab_zycit030_aux-valor = itab_custo_condition-kwert /
it_desp-menge * it_desp-qtd_iten.
endif.
APPEND itab_zycit030_aux.
ENDLOOP.
ENDIF.
IF sy-subrc NE 0.
IF itab_zycit030-codigo EQ 'II' OR
itab_zycit030-codigo EQ 'IPI' OR
itab_zycit030-codigo EQ 'ICMS' OR
...
...
nrseq = itab_zycit030_aux-nrseq
ebeln = itab_zycit030_aux-ebeln
ebelp = itab_zycit030_aux-ebelp.
itab_zycit036_plan-nrseq = itab_zycit030_aux-nrseq.
itab_zycit036_plan-embarca = itab_zycit001-embarca.
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 inclusão: FORM CUSTEANDO_PLANEJADO
if itab_zycit030_aux-codigo eq 'FOB' OR
itab_zycit030_aux-codigo eq 'C&F' OR
itab_zycit030_aux-codigo eq 'CIF'.
* << Fim da inclusão
v_valor = itab_zycit003-netpr.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
else.
v_valor = itab_zycit030_aux-valor.
endif.
* << Fim da inclusão
PERFORM converter_moeda(/pws/sapmzyci010) USING
v_valor
itab_zycit003-waers
/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
itab_zycit001-waers
CHANGING v_valor.
ENDIF.
IF v_valor NE 0.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
if itab_zycit030_aux-codigo eq 'FOB' OR
itab_zycit030_aux-codigo eq 'C&F' OR
itab_zycit030_aux-codigo eq 'CIF'.
* << Fim da inclusão
itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.
* >> Início da inclusão: FORM CUSTEANDO_PLANEJADO
else.
itab_zycit030_aux-valor = v_valor.
endif.
* << Fim da inclusão
ENDIF.
ENDIF.
itab_zycit036_plan-ebeln = itab_zycit030_aux-ebeln.
itab_zycit036_plan-ebelp = itab_zycit030_aux-ebelp.
...