Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 01/03/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:07:08
Descrição da Nota: TRATAMENTO DE CASAS DECIMAIS DE MOEDA
Sintoma
Os valores referentes a moedas com numero de casas decimais diferente de 2 estão sendo exbidos
incorrtamente.
O programa está selecionando itens de exportações já utilizados em outra composição.
Solução
Adionado tratamento para ajustar os valores de acordo com as casas decimasi da moeda utilizada e
corigida preenchimento dos itens equiparados a exportação para gravar na tabela.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03173 Data: 01/03/2007 Hora: 14:29:37
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03173
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00155
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01436 - 00001 - 6.0 - 00023 - INSERÇÃO DE MENSAGEM QUANDO NÃO HOUVER MATERIAL SUFICIENTE PARA I
----------------------------------------------------------------------------------------------------
TRATAMENTO DE CASAS DECIMAIS DE MOEDA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CASAS - SECIMAIS - MOEDA - COMPOSIÇÃO - COMPOSIÇÃO
/PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
REPS /PWS/MZYCI064TOP
REPT /PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
WHERE nrseqre EQ itab_re_final-nrseqre.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
PERFORM testa_nao_vinculacao.
ENDIF.
PERFORM trata_ordem_venda3.
REFRESH itab_mess_un.
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
IF itab_re_final[] IS INITIAL.
MESSAGE i015 WITH text-292 text-293.
ENDIF.
* << Fim da exclusão
LOOP AT itab_re_final.
CHECK NOT itab_re_final-matnr IS INITIAL.
IF /pws/zycit321-ltopc NE '1'.
READ TABLE itab_zycit281 WITH KEY matnr = itab_re_final-matnr
werks = itab_re_final-werks.
IF sy-subrc NE 0.
SELECT SINGLE a~wrk02
FROM ( t460a AS a INNER JOIN marc AS b ON
a~werks EQ b~werks AND
a~sobsl EQ b~sobsl AND
...
...
itab_zycit373-it_fornec TO itab_det_exp_final-it_fornec ,
itab_mara-gewei TO itab_det_exp_final-gewei ,
/pws/zycie258-nrseqd TO itab_det_exp_final-nrseqd ,
/pws/zycie258-lifnr TO itab_det_exp_final-lifnr ,
itab_zycit281-werks TO itab_det_exp_final-werks ,
itab_zycit281-stlnr TO itab_det_exp_final-stlnr ,
itab_zycit281-stlal TO itab_det_exp_final-stlal ,
itab_zycit281-stlan TO itab_det_exp_final-stlan ,
itab_nota_c-matnr TO itab_det_exp_final-codmat ,
itab_zycit373-doc_fat TO itab_det_exp_final-vbeln_vf ,
* >> Início da inclusão: FORM EQUIP_EXP
itab_zycit373-it_docfat TO itab_det_exp_final-posnr ,
* << Fim da inclusão
itab_nota_c-werks TO itab_det_exp_final-werks_e ,
itab_nota_c-nbm TO itab_det_exp_final-j_1bnbm ,
itab_nota_c-nfnum TO itab_det_exp_final-nfnum ,
itab_nota_c-series TO itab_det_exp_final-serie ,
itab_nota_c-docdat TO itab_det_exp_final-dtnf ,
itab_nota_c-meins TO itab_det_exp_final-meins ,
itab_zycit373-qtd_apro TO itab_det_exp_final-qtd_iten ,
itab_nota_c-waers TO itab_det_exp_final-waersfob ,
itab_nota_c-waers TO itab_det_exp_final-waerscif ,
itab_nota_c-waers TO itab_det_exp_final-waersemb .
...
...
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
* >> Início da inclusão: FORM MONTA_DIS3
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-vlfob.
* << Fim da inclusão
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
...
...
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM MONTA_DIS3
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-valor_u.
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-vlfob_t.
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-netpr.
* << Fim da inclusão
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ wa_itab_di_final-nrdi AND
...
...
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM MONTA_DIS3
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-valor_u.
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-vlfob_t.
PERFORM retorna_decimais USING itab_zycit085-waersfob
CHANGING itab_di_final-netpr.
* << Fim da inclusão
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ wa_itab_di_final-nrdi AND
...
...
READ TABLE itab_areas INDEX 1.
IF sy-subrc EQ 0 AND v_areas IS INITIAL.
MOVE itab_areas-codagrup TO /pws/zycie258-codagrup.
ELSE.
MOVE v_areas TO /pws/zycie258-codagrup.
ENDIF.
DELETE itab_areas WHERE codagrup = /pws/zycie258-codagrup.
SET CURSOR FIELD /pws/zycie258-codagrup.
CLEAR v_areas.
ENDFORM.
* >> Início da inclusão:
FORM retorna_decimais USING p_moeda
CHANGING p_valor.
SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064TOP
PROGRAM /pws/sapmzyci064 MESSAGE-ID /pws/zycim.
INCLUDE /pws/mzyci064x01.
INCLUDE /pws/mzyci064top2.
INCLUDE /pws/mzyci064top3.
TABLES:
bsak ,
mast ,
stpo ,
stko ,
* >> Início da inclusão:
tcurx ,
* << Fim da inclusão
stas ,
stpox ,
mbew ,
makt ,
icon ,
icons ,
ckmlcr ,
ekpo ,
stxl ,
t604f,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI064
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: PT
Símbolo: 267
Texto: (36 caracteres)
"Não foram encontradas registros para"
Comprimento máximo: 38