Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 03/10/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:50:15
Descrição da Nota: NÃO GERA VARIAÇÃO P/MATERIAIS DE CENTROS DE LUCROS DIFERENTES
Sintoma
Em processo com materiais de centros de lucros diferentes, o sistema nao gera a variação cambial
para todos os itens.
Solução
considerar centro de lucro para fazer a variação cambial da DI.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04895 Data: 03/10/2007 Hora: 15:05:50
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04895
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00015
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03047 - 00001 - 6.0 - 00026 - ESTA NOTA CRIA A FUNÇÃO DE RECLASSIFICAÇÃO DE IA
04090 - 00002 - 7.0 - 00002 - LANÇAR O CENTRO DE CUSTO NA RECLASSIFICAÇÃO DE IA.
04287 - 00003 - 7.0 - 00002 - DECLARAÇÃO DE IMPORTAÇÃO (DI) - VARIAÇÃO CAMBIAL
04390 - 00003 - 7.0 - 00002 - ERRO NA DI AO FAZER VARIAÇÃO CAMBIAL.
----------------------------------------------------------------------------------------------------
NÃO GERA VARIAÇÃO P/MATERIAIS DE CENTROS DE LUCROS DIFERENTES
----------------------------------------------------------------------------------------------------
Palavras Chave:
VARIAÇÃO CAMBIAL - DI - CENTRO DE LUCRO - CENTRO DE CUSTO
ITENS DIFERENTES
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RECLASSIFICACAO_IA
REPS /PWS/LZYCIGF2F01
REPS /PWS/LZYCIGF2TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2TOP
*Ir no grupo de função /PWS/ZYCIGF2, Programa Básico e selecionar INCLUDE /PWS/LZYCIGF2TOP.
...
DATA: BEGIN OF itab_di OCCURS 0,
hkont LIKE bsis-hkont,
vlseg LIKE /pws/zycit100-vlseg,
vlfre LIKE /pws/zycit100-vlfre,
vlfob LIKE /pws/zycit100-vlfob,
vldi LIKE /pws/zycit100-vlfob,
vlfren LIKE /pws/zycit100-vlfre,
kostl type ekkn-kostl,
prctr type ekkn-prctr,
END OF itab_di .
* >> Início da inclusão:
DATA: BEGIN OF itab_di_aux OCCURS 0,
hkont LIKE bsis-hkont,
vlseg LIKE /pws/zycit100-vlseg,
vlfre LIKE /pws/zycit100-vlfre,
vlfob LIKE /pws/zycit100-vlfob,
vldi LIKE /pws/zycit100-vlfob,
vlfren LIKE /pws/zycit100-vlfre,
kostl type ekkn-kostl,
prctr type ekkn-prctr,
END OF itab_di_aux .
* << Fim da inclusão
DATA: BEGIN OF itab_matuse OCCURS 0 ,
ebeln TYPE ekpo-ebeln ,
ebelp TYPE ekpo-ebelp ,
matnr TYPE ekpo-matnr ,
bwtar TYPE ekpo-bwtar ,
j_1bmatuse TYPE ekpo-j_1bmatuse,
knttp TYPE ekpo-knttp ,
werks TYPE t001w-werks ,
bwkey TYPE mbew-bwkey ,
reclassifica ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RECLASSIFICACAO_IA
...
dmbtr TYPE bsis-dmbtr ,
wrbtr TYPE bsis-wrbtr ,
belnr TYPE bsis-belnr ,
buzei TYPE bsis-buzei ,
tpfatura TYPE /pws/zycit006-tpfatura,
END OF itab_bsis_aux1.
DATA: BEGIN OF itab_zycit132 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit132.
DATA: END OF itab_zycit132.
REFRESH: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
itab_bsis, itab_matuse.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
itab_bsis, itab_matuse, itab_di_aux.
* << Fim da inclusão
CLEAR: itab_di, itab_bsis_aux, itab_matuse_aux2, itab_matuse_aux,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
itab_bsis, itab_matuse.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
itab_bsis, itab_matuse, itab_di_aux.
* << Fim da inclusão
DATA:
itab_zycit094 TYPE /pws/zycie094 OCCURS 0 WITH HEADER LINE,
itab_zycit006 TYPE /pws/zycit006 OCCURS 0 WITH HEADER LINE,
...
...
ENDIF.
ENDIF.
PERFORM retorna_decimais USING /pws/zycie085-waersfre
CHANGING itab_di-vlfren.
itab_di-vldi = itab_di-vlfob + itab_di-vlseg +
itab_di-vlfre + itab_di-vlfren.
itab_matuse-reclassifica = 'X' .
modify itab_matuse transporting reclassifica
where ebeln = t_zycit100-ebeln
and ebelp = t_zycit100-ebelp.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
move itab_di to itab_di_aux.
clear: itab_di-prctr, itab_di-kostl.
* << Fim da inclusão
COLLECT itab_di.
CLEAR itab_di.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RECLASSIFICACAO_IA
collect itab_di_aux.
CLEAR itab_di_aux.
* << Fim da inclusão
ENDLOOP.
CLEAR: v_rec_ia, v_rec_ia_1.
LOOP AT itab_matuse_aux2.
FREE: t_zycbt032, itab_contas.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2F01
...
FORM move_lanctos USING p_valor
vl_variacao.
DATA: v_conta TYPE hkont,
vl_variacao_aux TYPE p DECIMALS 2,
v_valor_variacao TYPE p DECIMALS 2,
* >> Início da exclusão: FORM MOVE_LANCTOS
v_diferenca TYPE p DECIMALS 2.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_LANCTOS
v_diferenca TYPE p DECIMALS 2,
v_cont TYPE i,
v_variacao TYPE p DECIMALS 2,
vL_total TYPE p DECIMALS 2.
* << Fim da inclusão
MOVE vl_variacao TO vl_variacao_aux.
IF vl_variacao_aux < 0.
v_valor_variacao = itab_bsis_aux-dmbtr - ABS( vl_variacao_aux ).
ELSE.
v_valor_variacao = itab_bsis_aux-dmbtr + ABS( vl_variacao_aux ).
ENDIF.
v_diferenca = v_valor_variacao - p_valor.
IF ( v_diferenca < 1
AND v_diferenca > -1
AND v_diferenca NE 0 ).
...
...
itab_contas-d_newko = itab_cta-konth.
ELSE.
READ TABLE itab_cta INDEX 1.
itab_contas-bschl = '40'.
itab_contas-wrbtr = abs( vl_variacao ).
itab_contas-d_newko = itab_cta-konts.
ENDIF.
APPEND itab_contas.
CLEAR itab_contas.
ENDIF.
* >> Início da exclusão: FORM MOVE_LANCTOS
itab_contas-c_kostl = itab_contas-d_kostl = itab_di-kostl.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_LANCTOS
CLEAR: v_cont, vL_total.
LOOP AT itab_di_aux WHERE
hkont = itab_matuse_aux2-hkont.
v_cont = v_cont + 1.
IF /pws/zycit031-inco1_ci = 'FOB'.
vL_total = vL_total + itab_di_aux-vlfob .
ELSEIF /pws/zycit031-inco1_ci = 'C&F'.
vL_total = vL_total +
itab_di_aux-vlfob + itab_di_aux-vlfre + itab_di_aux-vlfren.
ELSEIF /pws/zycit031-inco1_ci = 'CIF'.
vL_total = vL_total +
itab_di_aux-vlfob + itab_di_aux-vlfre + itab_di_aux-vlfren +
itab_di_aux-vlseg.
endif.
ENDLOOP.
CLEAR v_variacao.
LOOP AT itab_di_aux WHERE
hkont = itab_matuse_aux2-hkont.
v_cont = v_cont - 1 .
IF v_cont = 0.
itab_contas-wrbtr = p_valor - v_variacao.
ELSE.
IF /pws/zycit031-inco1_ci = 'FOB'.
itab_contas-wrbtr =
p_valor * ( itab_di_aux-vlfob / vL_total ).
ELSEIF /pws/zycit031-inco1_ci = 'C&F'.
itab_contas-wrbtr =
p_valor * ( ( itab_di_aux-vlfob + itab_di_aux-vlfre +
itab_di_aux-vlfren ) / vL_total ).
ELSEIF /pws/zycit031-inco1_ci = 'CIF'.
itab_contas-wrbtr = p_valor * ( ( itab_di_aux-vlfob +
itab_di_aux-vlfre + itab_di_aux-vlfren + itab_di_aux-vlseg ) /
vL_total ).
ENDIF.
v_variacao = v_variacao + itab_contas-wrbtr.
ENDIF.
itab_contas-c_kostl = itab_contas-d_kostl = itab_di_aux-kostl.
* << Fim da inclusão
IF /pws/zycit000-clucro_ia NE space.
* >> Início da exclusão: FORM MOVE_LANCTOS
itab_contas-c_prctr = itab_contas-d_prctr = itab_di-prctr.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_LANCTOS
itab_contas-c_prctr = itab_contas-d_prctr = itab_di_aux-prctr.
* << Fim da inclusão
ENDIF.
itab_contas-tcode = 'F-51'.
itab_contas-mandt = sy-mandt.
itab_contas-tabela = '/PWS/ZYCIT044'.
itab_contas-bschl = '40'.
* >> Início da exclusão: FORM MOVE_LANCTOS
itab_contas-wrbtr = p_valor .
* << Fim da exclusão
itab_contas-d_newko = itab_bsis_aux-hkont.
APPEND itab_contas.
CLEAR itab_contas.
* >> Início da inclusão: FORM MOVE_LANCTOS
ENDLOOP.
* << Fim da inclusão
ENDFORM.
FORM move_lanctos_f05 USING vl_variacao.
DATA: v_conta TYPE hkont,
* >> Início da exclusão: FORM MOVE_LANCTOS_F05
v_variadec TYPE /pws/zycit085-vlfre.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_LANCTOS_F05
v_variadec TYPE /pws/zycit085-vlfre,
v_cont TYPE i,
v_variacao TYPE p DECIMALS 2,
vL_total TYPE p DECIMALS 2,
p_valor TYPE p DECIMALS 2.
* << Fim da inclusão
CLEAR v_erro_f05.
itab_contas-tcode = 'F-05'.
itab_contas-mandt = sy-mandt.
itab_contas-tabela = '/PWS/ZYCIT044'.
IF vl_variacao > 0.
itab_contas-bschl = '40'.
ELSEIF vl_variacao < 0.
itab_contas-bschl = '50'.
ELSE .
v_erro_f05 = 'S'.
ENDIF.
v_variadec = vl_variacao.
itab_contas-wrbtr = abs( v_variadec ).
* >> Início da inclusão: FORM MOVE_LANCTOS_F05
p_valor = itab_contas-wrbtr.
CLEAR: v_cont, vL_total.
LOOP AT itab_di_aux WHERE
hkont = itab_matuse_aux2-hkont.
v_cont = v_cont + 1.
IF /pws/zycit031-inco1_ci = 'FOB'.
vL_total = vL_total + itab_di_aux-vlfob .
ELSEIF /pws/zycit031-inco1_ci = 'C&F'.
vL_total = vL_total +
itab_di_aux-vlfob + itab_di_aux-vlfre + itab_di_aux-vlfren.
ELSEIF /pws/zycit031-inco1_ci = 'CIF'.
vL_total = vL_total +
itab_di_aux-vlfob + itab_di_aux-vlfre + itab_di_aux-vlfren +
itab_di_aux-vlseg.
endif.
ENDLOOP.
CLEAR v_variacao.
LOOP AT itab_di_aux WHERE
hkont = itab_matuse_aux2-hkont.
v_cont = v_cont - 1 .
IF v_cont = 0.
itab_contas-wrbtr = p_valor - v_variacao.
ELSE.
IF /pws/zycit031-inco1_ci = 'FOB'.
itab_contas-wrbtr =
p_valor * ( itab_di_aux-vlfob / vL_total ).
ELSEIF /pws/zycit031-inco1_ci = 'C&F'.
itab_contas-wrbtr =
p_valor * ( ( itab_di_aux-vlfob + itab_di_aux-vlfre +
itab_di_aux-vlfren ) / vL_total ).
ELSEIF /pws/zycit031-inco1_ci = 'CIF'.
itab_contas-wrbtr = p_valor * ( ( itab_di_aux-vlfob +
itab_di_aux-vlfre + itab_di_aux-vlfren + itab_di_aux-vlseg ) /
vL_total ).
ENDIF.
v_variacao = v_variacao + itab_contas-wrbtr.
ENDIF.
itab_contas-tcode = 'F-05'.
itab_contas-mandt = sy-mandt.
itab_contas-tabela = '/PWS/ZYCIT044'.
IF vl_variacao > 0.
itab_contas-bschl = '40'.
ELSEIF vl_variacao < 0.
itab_contas-bschl = '50'.
ELSE .
v_erro_f05 = 'S'.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM MOVE_LANCTOS_F05
itab_contas-c_kostl = itab_contas-d_kostl = itab_di-kostl.
itab_contas-c_prctr = itab_contas-d_prctr = itab_di-prctr.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_LANCTOS_F05
itab_contas-c_kostl = itab_contas-d_kostl = itab_di_aux-kostl.
itab_contas-c_prctr = itab_contas-d_prctr = itab_di_aux-prctr.
* << Fim da inclusão
itab_contas-d_newko = itab_bsis_aux-hkont.
APPEND itab_contas.
CLEAR itab_contas.
* >> Início da inclusão: FORM MOVE_LANCTOS_F05
endloop.
* << Fim da inclusão
itab_contas-tcode = 'F-05'.
itab_contas-mandt = sy-mandt.
itab_contas-tabela = '/PWS/ZYCIT044'.
itab_contas-c_kostl = itab_contas-d_kostl = itab_di-kostl.
...