Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Encerramento de Custo
Data/Hora da Publicação: 08/04/2009 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:44:49
Descrição da Nota: AJUSTE DE PERFORMANCE
Sintoma
Ajuste de performance
Solução
Ajuste de performance
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08292 Data: 08/04/2009 Hora: 11:44:40
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08292
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00009
Agrupamento : 00093
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02118 - 00001 - 6.0 - 00024 - PLANEJADO E MOVIMENTADO DO ENCERRAMENTO ESTÁ INCORRETO PARA JPY
02654 - 00002 - 6.0 - 00025 - ERRO AO ALTERARMOEDA DE EXIBIÇÃO NO CUSTO EFETIVO.
05395 - 00003 - 7.0 - 00003 - TRATAMENTO PARA PARAMETR. DE FATOR DE MOEDA PARA TAXA CONVERSÃO N
05762 - 00004 - 7.0 - 00004 - SELECIONAR VALORES FUNDAP QUANDO A NOTA FISCAL É EXIBIDA
06295 - 00005 - 7.0 - 00005 - AO ENTRAR NO CUSTO DE EMBARQUE DE SERVIÇO,RECLAMA DA FALTA DA TAX
07150 - 00006 - 7.0 - 00006 - EMBARQUE COM MAIS DE 1 ITEM PEGAR DT. INICIO PARA CALCULAR VL.PLA
----------------------------------------------------------------------------------------------------
AJUSTE DE PERFORMANCE
----------------------------------------------------------------------------------------------------
Palavras Chave:
AJUSTES - PERFORMANCE
/PWS/SAPMZYCI010 - /PWS/ZYCIR035 - /PWS/ZYCIR006
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI010F01
REPS /PWS/MZYCI010F03
REPS /PWS/MZYCI010X01
REPS /PWS/ZYCIR006
REPS /PWS/ZYCIR035
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F01
...
FORM converter_moeda USING p_devlme
p_deme
p_parame
p_data
CHANGING p_paravlme.
* >> Início da inclusão: FORM CONVERTER_MOEDA
DATA: v_pfact LIKE tcurr-ffact.
* << Fim da inclusão
...
...
IF p_devlme NE 0.
IF p_deme IS INITIAL.
v_deme = /pws/zycbt007-waersb.
ELSE.
v_deme = p_deme.
ENDIF.
IF p_parame IS INITIAL.
v_parame = /pws/zycbt007-waersb.
ELSE.
v_parame = p_parame.
ENDIF.
* >> Início da inclusão: FORM CONVERTER_MOEDA
LOOP AT itab_taxob08
WHERE demoeda = v_deme
AND paramoeda = v_parame
AND data = p_data.
p_paravlme = ( ( itab_taxob08-tax / itab_taxob08-dfact ) *
itab_taxob08-pfact ) * p_devlme.
EXIT.
ENDLOOP.
IF sy-subrc NE 0.
IF /pws/zycit000-land1 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie001-bukrs.
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
* >> Início da inclusão: FORM CONVERTER_MOEDA
ENDIF.
* << Fim da inclusão
IF /pws/zycit000-kurst IS INITIAL.
v_kurst = 'M'.
ELSE.
v_kurst = /pws/zycit000-kurst.
ENDIF.
...
...
EXPORTING
i_montante = p_devlme
i_demoeda = v_deme
i_paramoeda = v_parame
i_ctmoeda = v_kurst
i_dtbase = p_data
IMPORTING
e_montante = p_paravlme
e_txc = v_tax
e_defator = v_dfact
* >> Início da inclusão: FORM CONVERTER_MOEDA
e_parafator = v_pfact
* << Fim da inclusão
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
tabela_categ_nao_configurada = 8
OTHERS = 9.
* >> Início da inclusão: FORM CONVERTER_MOEDA
IF sy-subrc EQ 0.
itab_taxob08-demoeda = v_deme.
itab_taxob08-paramoeda = v_parame.
itab_taxob08-data = p_data.
itab_taxob08-tax = v_tax.
itab_taxob08-dfact = v_dfact.
itab_taxob08-pfact = v_pfact.
APPEND itab_taxob08.
ENDIF.
* << Fim da inclusão
IF sy-subrc NE 0.
MESSAGE i061 WITH text-013 p_deme 'para' p_parame.
v_medestino = v_meatual.
v_erro_conv = 'S'.
ENDIF.
IF v_tax < 0.
MESSAGE e015 WITH text-066.
CLEAR p_paravlme.
* >> Início da inclusão: FORM CONVERTER_MOEDA
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF p_deme = 'JPY'.
p_paravlme = p_paravlme * v_dfact.
ENDIF.
ENDFORM.
...
...
v_idx LIKE sy-index .
CLEAR: itab_zycit140. FREE: itab_zycit140.
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie001-bukrs.
SELECT * FROM /pws/zycit140 INTO TABLE itab_zycit140
WHERE codmod EQ 'D'
AND land1 EQ t001-land1.
CLEAR: it_036_tmp. FREE: it_036_tmp.
it_036_tmp[] = itab_zycit036_aux[].
LOOP AT it_036_tmp.
v_idx = sy-tabix.
* >> Início da inclusão: FORM ATUALIZAR_CUSTOS
IF itab_zycit003-ebeln NE it_036_tmp-ebeln OR
itab_zycit003-ebelp NE it_036_tmp-ebelp.
* << Fim da inclusão
READ TABLE itab_zycit003 WITH KEY ebeln = it_036_tmp-ebeln
ebelp = it_036_tmp-ebelp.
* >> Início da inclusão: FORM ATUALIZAR_CUSTOS
ENDIF.
* << Fim da inclusão
IF it_036_tmp-origem NE 'PED' .
CLEAR: itab_zycit140.
READ TABLE itab_zycit140 WITH KEY codigo = it_036_tmp-codigo
origem = it_036_tmp-origem.
IF sy-subrc EQ 0.
IF itab_zycit140-custo EQ ' '.
IF itab_zycit003-servico = 'X' AND
( it_036_tmp-codigo = 'FOB' OR
it_036_tmp-codigo = 'CIF' OR
it_036_tmp-codigo = 'C&F' ) AND
it_036_tmp-origem = 'FAT' .
ELSE.
DELETE itab_zycit036_aux WHERE nrseq = it_036_tmp-nrseq
* >> Início da exclusão: FORM ATUALIZAR_CUSTOS
AND ebeln = it_036_tmp-ebeln
AND ebelp = it_036_tmp-ebelp
* << Fim da exclusão
AND codigo = it_036_tmp-codigo
AND origem = it_036_tmp-origem.
ENDIF.
ENDIF.
ELSE.
IF itab_zycit003-servico = 'X' AND
( it_036_tmp-codigo = 'FOB' OR
it_036_tmp-codigo = 'CIF' OR
it_036_tmp-codigo = 'C&F' ) AND
it_036_tmp-origem = 'FAT' .
ELSE.
DELETE itab_zycit036_aux WHERE nrseq = it_036_tmp-nrseq
* >> Início da exclusão: FORM ATUALIZAR_CUSTOS
AND ebeln = it_036_tmp-ebeln
AND ebelp = it_036_tmp-ebelp
* << Fim da exclusão
AND codigo = it_036_tmp-codigo
AND origem = it_036_tmp-origem.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
PERFORM cod_duplicados.
PERFORM custeando_despesas.
ENDFORM.
...
...
SELECT * FROM /pws/zycit006 INTO TABLE it_fat
FOR ALL ENTRIES IN itab_zycit036_per
WHERE nrseq EQ itab_zycit036_per-nrseqori.
FREE it_dc.
SELECT * FROM /pws/zycit008 INTO TABLE it_dc
FOR ALL ENTRIES IN itab_zycit036_per
WHERE nradto EQ itab_zycit036_per-nrseqori.
FREE it_pc.
SELECT * FROM /pws/zycit026 INTO TABLE it_pc "#EC CI_NOFIRST
FOR ALL ENTRIES IN itab_zycit036_per
* >> Início da exclusão: FORM CUSTEAR_ITENS
WHERE nrpres EQ itab_zycit036_per-nrseqori.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEAR_ITENS
WHERE nrpres EQ itab_zycit036_per-nrseqori
AND nrseq EQ itab_zycit003-nrseq.
* << Fim da inclusão
FREE it_nf.
it_nf[] = itab_zycit042[].
SORT itab_zycit036_aux BY nrseq ebeln ebelp.
DATA : v_ebelp LIKE itab_zycit003-ebelp,
v_ebeln LIKE itab_zycit003-ebeln.
CLEAR: v_ebeln, v_ebelp.
FREE itab_zycit003_custo.
LOOP AT itab_zycit003.
CLEAR itab_zycit003_custo.
LOOP AT itab_zycit036_aux2
...
...
FORM cod_duplicados.
CLEAR: v_codigo,
v_vlreal.
CLEAR: itab_zycit036_aux2. REFRESH: itab_zycit036_aux2.
* >> Início da inclusão: FORM COD_DUPLICADOS
CLEAR itab_zycit036_plan. REFRESH itab_zycit036_plan.
* << Fim da inclusão
SORT itab_zycit036_aux BY codigo.
LOOP AT itab_zycit036_aux.
IF itab_zycit036_aux-origem NE 'PED'.
MOVE itab_zycit036_aux TO wa_zycit036.
READ TABLE itab_zycit036_aux2 WITH KEY
nrseq = itab_zycit036_aux-nrseq
ebeln = itab_zycit036_aux-ebeln
ebelp = itab_zycit036_aux-ebelp
codigo = itab_zycit036_aux-codigo
origem = itab_zycit036_aux-origem
...
...
itab_zycit036_aux2-vldif.
IF itab_zycit036_aux2-waers_dif IS INITIAL.
itab_zycit036_aux2-waers_dif = itab_zycit036_aux-waers_dif.
ENDIF.
MODIFY itab_zycit036_aux2 INDEX v_index.
ELSE.
MOVE itab_zycit036_aux TO itab_zycit036_aux2.
CLEAR: itab_zycit036_aux2-netpr.
APPEND itab_zycit036_aux2.
ENDIF.
* >> Início da inclusão: FORM COD_DUPLICADOS
ELSE.
MOVE itab_zycit036_aux TO itab_zycit036_plan.
APPEND itab_zycit036_plan.
* << Fim da inclusão
ENDIF.
ENDLOOP.
IF /pws/zycit000-fretepres = 'X'.
LOOP AT itab_zycit036_aux2 WHERE
( origem = 'PC' OR
origem = 'PCD' OR
origem = 'FAT' ) AND
codigo = 'FRETEI'.
READ TABLE itab_zycit036_aux WITH KEY
nrseq = itab_zycit036_aux2-nrseq
...
...
IF sy-subrc = 0.
LOOP AT itab_zycit036_aux2 WHERE
( origem = 'NF' OR
origem = 'DI' ) AND
codigo = 'FRETEI'.
IF itab_zycit036_aux2-vlreal IS INITIAL.
DELETE itab_zycit036_aux2.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da exclusão: FORM COD_DUPLICADOS
ENDIF.
CLEAR: itab_zycit036_plan.
REFRESH itab_zycit036_plan.
LOOP AT itab_zycit036_aux.
IF itab_zycit036_aux-origem = 'PED'.
MOVE itab_zycit036_aux TO itab_zycit036_plan.
APPEND itab_zycit036_plan.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM COD_DUPLICADOS
ENDLOOP.
SORT itab_zycit036_plan BY codigo.
* << Fim da exclusão
LOOP AT itab_zycit036_plan.
IF NOT itab_zycit036_plan-netpr = 0.
READ TABLE itab_zycit036_aux2 WITH KEY
nrseq = itab_zycit036_plan-nrseq
ebeln = itab_zycit036_plan-ebeln
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
...
FORM retira_imposto.
CLEAR /pws/zycit398.
DATA: v_bukrs LIKE /pws/zycit001-bukrs.
IF itab_zycit100[] IS INITIAL.
* >> Início da inclusão: FORM RETIRA_IMPOSTO
READ TABLE itab_zycit003 INDEX 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit100 "#EC CI_NOFIRST
INTO TABLE itab_zycit100
* >> Início da exclusão: FORM RETIRA_IMPOSTO
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM RETIRA_IMPOSTO
WHERE nrseq EQ itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE bukrs FROM /pws/zycit001 INTO v_bukrs
WHERE nrseq = itab_zycit003-nrseq.
ENDIF.
SELECT SINGLE * FROM t001w
WHERE werks = /pws/zycie001-werks.
* >> Início da exclusão: FORM RETIRA_IMPOSTO
IF v_remessa = 'X'.
MOVE itab_zycit044[] TO itab_itens_nf[].
ELSEIF NOT itab_zycit042[] IS INITIAL.
LOOP AT itab_zycit042.
MOVE-CORRESPONDING itab_zycit042 TO itab_itens_nf.
APPEND itab_itens_nf.
ENDLOOP.
ENDIF.
* << Fim da exclusão
v_clnf = 'G'.
IF itab_zycit042[] IS INITIAL AND NOT
itab_zycit003[] IS INITIAL.
READ TABLE itab_zycit003 INDEX 1.
SELECT * FROM /pws/zycit042 "#EC CI_NOFIRST
INTO TABLE itab_zycit042
WHERE nrseq EQ itab_zycit003-nrseq.
ENDIF.
CLEAR itab_zycit398.
REFRESH itab_zycit398 .
...
...
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
SELECT SINGLE land1
FROM t001
INTO t001-land1
WHERE bukrs EQ /pws/zycie001-bukrs.
SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029
* >> Início da exclusão: FORM RETIRA_IMPOSTO
WHERE land1 EQ t001-land1. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FORM RETIRA_IMPOSTO
WHERE land1 EQ t001-land1 "#EC CI_NOFIRST
AND codmod EQ 'D'.
* << Fim da inclusão
LOOP AT itab_zycit036_aux .
READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit036_aux-codigo.
IF itab_zycit029-estatistico = 'X'.
itab_zycit036_aux-vlmov = ' '.
itab_zycit036_aux-vldif = ' '.
CLEAR: itab_zycit036_aux-waers_mov,
itab_zycit036_aux-waers_dif.
ENDIF.
IF itab_zycit036_aux-origem = 'PED' AND
itab_zycit029-provisao = 'X'.
...
...
FORM trata_decimais USING p_moeda
CHANGING p_valor.
* >> Início da inclusão: FORM TRATA_DECIMAIS
READ TABLE itab_tcurx INTO wa_tcurx WITH KEY currkey = p_moeda.
IF sy-subrc NE 0.
CLEAR: wa_tcurx.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
wa_tcurx-currdec = 2.
* >> Início da inclusão: FORM TRATA_DECIMAIS
ENDIF.
wa_tcurx-currkey = p_moeda.
APPEND wa_tcurx TO itab_tcurx.
* << Fim da inclusão
ENDIF.
p_valor = p_valor * ( 10 ** ( wa_tcurx-currdec - 2 ) ).
ENDFORM.
...
...
FORM taxa_converte USING p_waers
p_data
CHANGING p_taxa.
CLEAR: p_taxa.
DATA: v_moeda LIKE tcurc-/pws/codmo,
v_msgd(10).
* >> Início da inclusão: FORM TAXA_CONVERTE
LOOP AT itab_zycit174 INTO /pws/zycit174
WHERE waers = p_waers AND
vigen_inicio <= p_data AND
vigen_fim >= p_data .
p_taxa = /pws/zycit174-txconver.
EXIT.
ENDLOOP.
IF sy-subrc NE 0.
* << Fim da inclusão
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = p_waers.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit174 INTO /pws/zycit174 WHERE
codconver = v_moeda AND
vigen_inicio <= p_data AND
vigen_fim >= p_data AND
land1 = t001-land1.
* >> Início da inclusão: FORM TAXA_CONVERTE
IF sy-subrc EQ 0.
itab_zycit174 = /pws/zycit174.
itab_zycit174-waers = p_waers.
APPEND itab_zycit174.
ELSEIF /pws/zycie001-tpdecl EQ 'DI' AND
/pws/zycie001-modalidade EQ '02' .
itab_zycit174-txconver = '1'.
itab_zycit174-vigen_fim =
itab_zycit174-vigen_inicio = p_data.
itab_zycit174-waers = p_waers.
APPEND itab_zycit174.
ENDIF.
* << Fim da inclusão
IF sy-subrc EQ 0.
p_taxa = /pws/zycit174-txconver.
ELSE.
IF ( /pws/zycie001-tpdecl EQ 'DI' AND
/pws/zycie001-modalidade EQ '02' ).
p_taxa = '1'.
ELSE.
CONCATENATE p_data+6(2) '/' p_data+4(2) '/' p_data+0(4)
INTO v_msgd.
CONCATENATE p_waers text-022 v_msgd INTO s_msg1 SEPARATED BY space.
MESSAGE s015 WITH text-075 v_msgd.
ENDIF.
ENDIF.
ELSE.
s_msg1 = 'X'.
ENDIF.
* >> Início da inclusão: FORM TAXA_CONVERTE
ENDIF.
* << Fim da inclusão
ENDFORM.
...
...
SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036_aux
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc NE 0.
MESSAGE w015 WITH text-034 /pws/zycie001-nrseq.
LEAVE TO SCREEN 0.
EXIT.
ENDIF.
PERFORM custeando_planejado(/pws/zycir035) TABLES it_desp
itab_zycit036_plan.
LOOP AT itab_zycit036_aux.
* >> Início da inclusão: FORM TRATA_ORIGEM
CLEAR: itab_zycit036_plan.
* << Fim da inclusão
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036_aux-nrseq
ebeln = itab_zycit036_aux-ebeln
ebelp = itab_zycit036_aux-ebelp
codigo = itab_zycit036_aux-codigo.
* >> Início da exclusão: FORM TRATA_ORIGEM
IF sy-subrc = 0.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_ORIGEM
IF sy-subrc = 0 AND
( itab_zycit036_plan-netpr NE itab_zycit036_aux-netpr OR
itab_zycit036_plan-waers NE itab_zycit036_aux-waers ).
* << Fim da inclusão
MOVE itab_zycit036_plan-netpr TO itab_zycit036_aux-netpr.
MOVE itab_zycit036_plan-waers TO itab_zycit036_aux-waers.
MODIFY itab_zycit036_aux.
IF itab_zycit036_aux-origem = 'PED' .
UPDATE /pws/zycit036 SET netpr = itab_zycit036_aux-netpr
waers = itab_zycit036_aux-waers
WHERE nrseq = itab_zycit036_aux-nrseq AND
ebeln = itab_zycit036_aux-ebeln AND
ebelp = itab_zycit036_aux-ebelp AND
codigo = itab_zycit036_aux-codigo AND
origem = 'PED'.
ENDIF.
* >> Início da exclusão: FORM TRATA_ORIGEM
ELSE.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_ORIGEM
ELSEIF itab_zycit036_plan-netpr NE itab_zycit036_aux-netpr.
* << Fim da inclusão
IF itab_zycit036_aux-origem = 'PED'.
CLEAR: itab_zycit036_aux-netpr.
MODIFY itab_zycit036_aux.
UPDATE /pws/zycit036 SET netpr = itab_zycit036_aux-netpr
WHERE nrseq = itab_zycit036_aux-nrseq AND
ebeln = itab_zycit036_aux-ebeln AND
ebelp = itab_zycit036_aux-ebelp AND
codigo = itab_zycit036_aux-codigo AND
origem = 'PED'.
ENDIF.
...
...
PERFORM calcular_outros_custos_da(/pws/zycir006)
TABLES itab_zycit036_aux2.
ELSE.
PERFORM calcular_outros_custos(/pws/zycir006) TABLES
itab_zycit036_aux2.
ENDIF.
indx-aedat = sy-datlo.
indx-usera = sy-uname.
IMPORT itab_zycit036[] FROM MEMORY ID 'I006A'.
LOOP AT itab_zycit036_aux2.
* >> Início da inclusão: FORM CUSTEAR_MOVIMENTADO
CLEAR: itab_zycit036_ori2.
READ TABLE itab_zycit036_ori2
WITH KEY nrseq = itab_zycit036_aux2-nrseq
ebeln = itab_zycit036_aux2-ebeln
ebelp = itab_zycit036_aux2-ebelp
codigo = itab_zycit036_aux2-codigo
origem = itab_zycit036_aux2-origem
nrseqori = itab_zycit036_aux2-nrseqori.
IF itab_zycit036_ori2-vlmov NE itab_zycit036_aux2-vlmov OR
itab_zycit036_ori2-waers_mov NE itab_zycit036_aux2-waers_mov OR
itab_zycit036_ori2-vldif NE itab_zycit036_aux2-vldif OR
itab_zycit036_ori2-waers_dif NE itab_zycit036_aux2-waers_dif OR
itab_zycit036_ori2-congelamov NE itab_zycit036_aux2-congelamov.
* << Fim da inclusão
UPDATE /pws/zycit036 SET vlmov = itab_zycit036_aux2-vlmov
waers_mov = itab_zycit036_aux2-waers_mov
vldif = itab_zycit036_aux2-vldif
waers_dif = itab_zycit036_aux2-waers_dif
congelamov = itab_zycit036_aux2-congelamov
WHERE nrseq = itab_zycit036_aux2-nrseq AND
ebeln = itab_zycit036_aux2-ebeln AND
ebelp = itab_zycit036_aux2-ebelp AND
codigo = itab_zycit036_aux2-codigo AND
origem = itab_zycit036_aux2-origem AND
nrseqori = itab_zycit036_aux2-nrseqori.
IF sy-subrc NE 0.
INSERT /pws/zycit036 FROM itab_zycit036_aux2.
* >> Início da inclusão: FORM CUSTEAR_MOVIMENTADO
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
FREE MEMORY ID 'I006A'.
MOVE itab_zycit036_aux2[] TO itab_zycit036_aux[].
PERFORM retira_imposto.
MOVE itab_zycit036_aux[] TO itab_zycit036_aux2[].
ENDFORM.
...
...
FORM retorna_decimais USING p_moeda
CHANGING p_valor.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
READ TABLE itab_tcurx INTO wa_tcurx WITH KEY currkey = p_moeda.
IF sy-subrc NE 0.
CLEAR: wa_tcurx.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
wa_tcurx-currdec = 2.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
ENDIF.
wa_tcurx-currkey = p_moeda.
APPEND wa_tcurx TO itab_tcurx.
* << Fim da inclusão
ENDIF.
p_valor = p_valor / ( 10 ** ( wa_tcurx-currdec - 2 ) ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010X01
...
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit174 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit174.
DATA: waers TYPE /pws/zycit036-waers.
DATA: END OF itab_zycit174.
DATA BEGIN OF itab_taxob08 OCCURS 0.
DATA: demoeda TYPE waers,
paramoeda TYPE waers,
data TYPE sy-datum,
tax TYPE tcurr-ukurs,
dfact TYPE tcurr-ffact,
pfact TYPE tcurr-ffact.
DATA END OF itab_taxob08.
DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: END OF COMMON PART b.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
AND belnr = v_belnr_p
AND gjahr = v_dtincl+0(4).
APPEND itab_bkpf.
v_kursf = itab_bkpf-kursf.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
v_valor = itab_zycit036-vlreal.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
SELECT SINGLE * FROM tcurx WHERE
currkey = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
* << Fim da exclusão
PERFORM retorna_decimais USING itab_zycit036-waers_real
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
CHANGING v_valor.
ELSE.
PERFORM trata_decimais USING itab_zycit036-waers_real
* << Fim da exclusão
CHANGING v_valor.
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
ENDIF.
* << Fim da exclusão
IF v_itemcongela NE 'X'.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
IF itab_zycit036-origem NE 'FAT'.
itab_zycit036-vlmov = v_valor *
/pws/zycit085-ukursfob.
ELSE.
PERFORM busca_fator_moed USING itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_de
...
...
FORM busca_fator_moed USING p_waers
p_waersb
CHANGING p_de
p_para.
IF /pws/zycit000-kurst IS INITIAL.
/pws/zycit000-kurst = 'M'.
ENDIF.
LOOP AT itab_tcurf
WHERE fcurr = p_waers
AND tcurr = p_waersb
* >> Início da exclusão: FORM BUSCA_FATOR_MOED
AND gdatu >= sy-datum
* << Fim da exclusão
* >> Início da inclusão: FORM BUSCA_FATOR_MOED
AND gdatu <= sy-datum
* << Fim da inclusão
AND kurst = /pws/zycit000-kurst. "#EC PORTABLE
ENDLOOP.
IF sy-subrc NE 0.
itab_tcurf-gdatu = '99999999' - sy-datum.
SELECT SINGLE ffact tfact fcurr tcurr
gdatu kurst
FROM tcurf
INTO itab_tcurf
WHERE fcurr = p_waers AND
tcurr = p_waersb AND
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
* >> Início da inclusão:
DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: it_zycit085 LIKE /pws/zycie085,
wa_desp LIKE it_desp,
wa_036 LIKE itab_zycit036.
SELECTION-SCREEN BEGIN OF BLOCK di WITH FRAME TITLE text-001.
PARAMETER: pa_nrseq LIKE /pws/zycie085-nrseqdi,
pa_plan AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK di.
PERFORM data_load TABLES it_desp USING pa_nrseq CHANGING v_ok.
IF v_ok = 'S'.
PERFORM cria_despesas TABLES it_desp itab_zycit036.
...
...
FORM retorna_decimais USING p_itab_zycit036_waers_real
CHANGING p_itab_zycit036_vlreal.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
READ TABLE itab_tcurx INTO tcurx
WITH KEY currkey = p_itab_zycit036_waers_real.
IF sy-subrc NE 0.
CLEAR: tcurx.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = p_itab_zycit036_waers_real.
IF sy-subrc <> 0.
tcurx-currdec = 2.
* >> Início da inclusão: FORM RETORNA_DECIMAIS
ENDIF.
tcurx-currkey = p_itab_zycit036_waers_real.
APPEND tcurx TO itab_tcurx.
* << Fim da inclusão
ENDIF.
p_itab_zycit036_vlreal =
...