Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Encerramento de Custo
Data/Hora da Publicação: 07/04/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:29:13
Descrição da Nota: VALOR LEVADO PARA O ENCERRAMENTO DE CUSTOS ESTA MAIOR DO QUE DEVERIA
Sintoma
O Valor que foi levado para o Encerramento de Custos esta maior do que deveria. Problema de Casas
decimais
Solução
Ajuste para o tratamento de casas decimais.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01174 Data: 07/04/2006 Hora: 16:46:15
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01174
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00108
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01052 - 00001 - 6.0 - 00022 - REGULARIZAÇÃO DAS DESPESAS.
01100 - 00002 - 6.0 - 00023 - DESPESAS DE FRETE E SEGURO SENDO TRATADOS DIFERENTES NO CUSTO
01150 - 00003 - 6.0 - 00023 - AS DESPESAS DE FRETE E SEGURO INTERNACIONAIS SENDO PARAMETRIZADAS
----------------------------------------------------------------------------------------------------
VALOR LEVADO PARA O ENCERRAMENTO DE CUSTOS ESTA MAIOR DO QUE DEVERIA
----------------------------------------------------------------------------------------------------
Palavras Chave:
ENCERRAMENTO DE CUSTOS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI010F03
REPS /PWS/MZYCI010O01
REPS /PWS/ZYCIR007
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
...
LOOP AT itab_zycit029.
v_pos = tc_itens-top_line + v_linha - 1.
CLEAR itab_zycit003_custo.
READ TABLE itab_zycit003_custo INDEX v_pos.
CLEAR itab_zycit036a.
* >> Início da inclusão: FORM TRATA_SELE
DATA: it_zycit036_aux LIKE itab_zycit036 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
READ TABLE itab_zycit036a WITH KEY
ebelp = itab_zycit003_custo-ebelp
ebeln = itab_zycit003_custo-ebeln
codigo = itab_zycit029-codigo.
CLEAR itab_zycit036.
...
...
itab_zycit036-embarca = /pws/zycie001-embarca.
itab_zycit036-codigo = itab_zycit029-codigo.
APPEND itab_zycit036.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_SELE
MOVE itab_zycit036a[] TO it_zycit036_aux[].
LOOP AT it_zycit036_aux.
READ TABLE itab_zycit036 WITH KEY
ebelp = it_zycit036_aux-ebelp
ebeln = it_zycit036_aux-ebeln
codigo = it_zycit036_aux-codigo.
IF sy-subrc EQ 0.
IF NOT it_zycit036_aux-netpr IS INITIAL AND
itab_zycit036-netpr NE it_zycit036_aux-netpr.
itab_zycit036-netpr =
itab_zycit036-netpr + it_zycit036_aux-netpr.
ENDIF.
IF NOT it_zycit036_aux-vlmov IS INITIAL AND
itab_zycit036-vlmov NE it_zycit036_aux-vlmov.
itab_zycit036-vlmov =
itab_zycit036-vlmov + it_zycit036_aux-vlmov.
ENDIF.
IF NOT it_zycit036_aux-vlreal IS INITIAL AND
itab_zycit036-vlreal NE it_zycit036_aux-vlreal.
itab_zycit036-vlreal =
itab_zycit036-vlreal + it_zycit036_aux-vlreal.
ENDIF.
IF NOT it_zycit036_aux-vldif IS INITIAL AND
itab_zycit036-vldif NE it_zycit036_aux-vldif.
itab_zycit036-vldif =
itab_zycit036-vldif + it_zycit036_aux-vldif.
ENDIF.
modify itab_zycit036 index sy-tabix.
ENDIF.
ENDLOOP.
* << Fim da inclusão
CLEAR v_index3.
LOOP AT itab_zycit036.
v_index3 = sy-tabix.
IF itab_zycit036-netpr IS INITIAL AND
itab_zycit036-vlreal IS INITIAL AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010O01
...
/pws/zycie003-vldif to v_vldif_tl.
v_netprt = v_netprt / 100000.
v_vlreal_tl = v_vlreal_tl / 100000.
v_vlmov_tl = v_vlmov_tl / 100000.
v_vldif_tl = v_vldif_tl / 100000.
* >> Início da inclusão: MODULE CARREGA_ZYCBE003
IF /pws/zycie003-waers_real NE /pws/zycie001-waers_real.
* << Fim da inclusão
perform trata_decimais using /pws/zycie003-waers_real
changing v_vlreal_tl.
* >> Início da inclusão: MODULE CARREGA_ZYCBE003
ENDIF.
IF /pws/zycie003-waers_mov NE /pws/zycie001-waers_mov.
* << Fim da inclusão
perform trata_decimais using /pws/zycie003-waers_mov
changing v_vlmov_tl.
* >> Início da inclusão: MODULE CARREGA_ZYCBE003
ENDIF.
IF /pws/zycie003-waers_dif NE /pws/zycie001-waers_dif.
* << Fim da inclusão
perform trata_decimais using /pws/zycie003-waers_dif
changing v_vldif_tl.
* >> Início da inclusão: MODULE CARREGA_ZYCBE003
ENDIF.
* << Fim da inclusão
describe table itab_zycit003_custo lines v_lin.
tc_itens-lines = v_lin.
endmodule.
module status_0003 output.
clear: itab_botoes. refresh: itab_botoes.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR007
...
INCLUDE STRUCTURE /pws/zycie031.
DATA: END OF itab_zycie031_aux.
DATA: BEGIN OF itab_botoes OCCURS 0.
DATA: bname(20) TYPE c.
DATA: END OF itab_botoes.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit001 OCCURS 0.
DATA: nrseq LIKE /pws/zycie001-nrseq ,
waers_real LIKE /pws/zycie001-waers_real,
waers_mov LIKE /pws/zycie001-waers_mov ,
waers_dif LIKE /pws/zycie001-waers_dif.
DATA: END OF itab_zycit001.
DATA: BEGIN OF itab_zycit003 OCCURS 0.
DATA: nrseq LIKE /pws/zycie003-nrseq,
ebeln LIKE /pws/zycie003-ebeln,
ebelp LIKE /pws/zycie003-ebelp.
DATA: END OF itab_zycit003.
data: wa_tcurx like tcurx.
* << Fim da inclusão
DATA:
e_okcode LIKE sy-ucomm ,
v_unit LIKE ekpo-meins,
* >> Início da exclusão:
v_tcode LIKE sy-tcode .
* << Fim da exclusão
* >> Início da inclusão:
v_tcode LIKE sy-tcode,
v_wrbtr like /pws/zycie003-vlreal.
* << Fim da inclusão
START-OF-SELECTION.
IMPORT v_tcode FROM MEMORY ID 'V_TCODE'.
IF v_tcode eq '/PWS/ZYCI001_E'.
MOVE 'CONTAB' TO itab_botoes-bname.
APPEND itab_botoes.
...
...
172 '|', text-016,
183 '|'.
ULINE AT /(183).
IF NOT itab_zycie031_aux[] IS INITIAL.
LOOP AT itab_zycie031_aux.
* >> Início da inclusão: FORM LISTA_IMPRESSAO
CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.
v_wrbtr = itab_zycie031_aux-wrbtr.
v_wrbtr = v_wrbtr / 1000.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031_aux-ebeln
ebelp = itab_zycie031_aux-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
IF itab_zycie031_aux-waers NE itab_zycit001-WAERS_dif.
PERFORM trata_decimais USING itab_zycie031_aux-waers
CHANGING v_wrbtr.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
WRITE: /00 '|', itab_zycie031_aux-ebeln,
14 '|', itab_zycie031_aux-ebelp,
24 '|', itab_zycie031_aux-matnr,
36 '|', itab_zycie031_aux-menge UNIT v_unit,
* >> Início da exclusão: FORM LISTA_IMPRESSAO
53 '|', itab_zycie031_aux-wrbtr CURRENCY
/pws/zycbt007-waersb,
* << Fim da exclusão
* >> Início da inclusão: FORM LISTA_IMPRESSAO
53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,
* << Fim da inclusão
72 '|',
91 '|',
97 '|',
110 '|',
123 '|',
...
...
ULINE AT /(183).
ENDIF.
IF NOT itab_zycbt035_aux[] IS INITIAL.
SORT itab_zycbt035_aux BY ebeln ebelp matuse d_newko.
LOOP AT itab_zycbt035_aux.
* >> Início da inclusão: FORM LISTA_IMPRESSAO
CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.
v_wrbtr = itab_zycbt035_aux-wrbtr.
v_wrbtr = v_wrbtr / 1000.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035_aux-ebeln
ebelp = itab_zycbt035_aux-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
IF itab_zycbt035_aux-waers NE itab_zycit001-WAERS_dif.
PERFORM trata_decimais USING itab_zycbt035_aux-waers
CHANGING v_wrbtr.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
IF itab_zycbt035_aux-bschl EQ '40'.
* >> Início da exclusão: FORM LISTA_IMPRESSAO
itab_zycbt035_aux-wrbtr = itab_zycbt035_aux-wrbtr * -1.
* << Fim da exclusão
* >> Início da inclusão: FORM LISTA_IMPRESSAO
v_wrbtr = v_wrbtr * -1.
* << Fim da inclusão
ENDIF.
WRITE: /00 '|', itab_zycbt035_aux-ebeln,
14 '|', itab_zycbt035_aux-ebelp,
24 '|', itab_zycbt035_aux-matnr,
36 '|', itab_zycbt035_aux-menge UNIT v_unit,
* >> Início da exclusão: FORM LISTA_IMPRESSAO
53 '|', itab_zycbt035_aux-wrbtr CURRENCY
/pws/zycbt007-waersb,
* << Fim da exclusão
* >> Início da inclusão: FORM LISTA_IMPRESSAO
53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,
* << Fim da inclusão
72 '|', itab_zycbt035_aux-newko,
91 '|', itab_zycbt035_aux-matuse,
97 '|', itab_zycbt035_aux-d_gsber,
110 '|', itab_zycbt035_aux-d_kostl,
123 '|', itab_zycbt035_aux-d_prctr,
...
...
14 '|', text-011,
33 '|', text-012,
51 '|'.
ULINE AT /(51).
LOOP AT itab_zycie031.
* >> Início da inclusão: FORM LISTA_IMPRESSAO
CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.
v_wrbtr = itab_zycie031-wrbtr.
v_wrbtr = v_wrbtr / 1000.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031-ebeln
ebelp = itab_zycie031-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
IF itab_zycie031-waers NE itab_zycit001-WAERS_dif.
PERFORM trata_decimais USING itab_zycie031-waers
CHANGING v_wrbtr.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
WRITE: /00 '|', itab_zycie031-matnr,
14 '|', itab_zycie031-menge UNIT v_unit,
33 '|', itab_zycie031-wrbtr CURRENCY /pws/zycbt007-waersb,
51 '|'.
ENDLOOP.
...
...
98 '|', text-010,
115 '|', text-016,
126 '|'.
ULINE AT /(126).
LOOP AT itab_zycbt035.
* >> Início da inclusão: FORM LISTA_IMPRESSAO
CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.
v_wrbtr = itab_zycbt035-wrbtr.
v_wrbtr = v_wrbtr / 1000.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035-ebeln
ebelp = itab_zycbt035-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
IF itab_zycbt035-waers NE itab_zycit001-WAERS_dif.
PERFORM trata_decimais USING itab_zycbt035-waers
CHANGING v_wrbtr.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
IF itab_zycbt035-bschl EQ '50'.
* >> Início da exclusão: FORM LISTA_IMPRESSAO
itab_zycbt035-wrbtr = itab_zycbt035-wrbtr * -1.
* << Fim da exclusão
* >> Início da inclusão: FORM LISTA_IMPRESSAO
v_wrbtr = v_wrbtr * -1.
* << Fim da inclusão
ENDIF.
WRITE: /00 '|', itab_zycbt035-d_newko,
* >> Início da exclusão: FORM LISTA_IMPRESSAO
17 '|', itab_zycbt035-wrbtr CURRENCY /pws/zycbt007-waersb,
* << Fim da exclusão
* >> Início da inclusão: FORM LISTA_IMPRESSAO
17 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,
* << Fim da inclusão
36 '|', itab_zycbt035-matuse,
41 '|', itab_zycbt035-d_gsber,
53 '|', itab_zycbt035-d_kostl,
66 '|', itab_zycbt035-d_prctr,
79 '|', itab_zycbt035-d_fictr,
...
...
d_fipos = itab_zycbt035_aux-d_fipos.
itab_zycbt035_aux-d_newko = itab_zycbt035-d_newko.
itab_zycbt035_aux-newko = itab_zycbt035-newko.
MODIFY itab_zycbt035_aux INDEX v_index.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_DADOS
IF NOT itab_zycie031_aux[] IS INITIAL.
SELECT nrseq ebeln ebelp
FROM /pws/zycit003
INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_zycie031_aux
WHERE ebeln EQ itab_zycie031_aux-ebeln
AND ebelp EQ itab_zycie031_aux-ebelp.
IF sy-subrc EQ 0.
SELECT nrseq waers_real waers_mov waers_dif
FROM /pws/zycit001
INTO TABLE itab_zycit001
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDFORM.
* >> Início da inclusão:
FORM trata_decimais USING p_moeda
CHANGING p_valor.
SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
wa_tcurx-currdec = 2.
ENDIF.
p_valor = p_valor * ( 10 ** ( wa_tcurx-currdec - 2 ) ).
ENDFORM.
* << Fim da inclusão