Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 18/09/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:48:08
Descrição da Nota: ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA DI
Sintoma
- Erro no rateio das despesas dos itens da DI;
- a soma do rateio do seguro não bate com o valor total da carga 2 para processos de
Embarque CIF, granel .
- embarque CIF, rodoviário, o valor do FOB da pasta carga 2 está somando o valor do frete rodoviário
em território.A pasta aduaneira está correta.
- DI faz variação cambial para fatura do tipo P .
Solução
ajustar cálculos da DI.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04750 Data: 18/09/2007 Hora: 10:35:54
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04750
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00012
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02396 - 00004 - 6.0 - 00025 - FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO
03916 - 00001 - 7.0 - 00001 - PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM
03924 - 00002 - 7.0 - 00001 - ERRO NO RATEIO DE VALOR DE DESPESAS DA DI.
04009 - 00003 - 7.0 - 00001 - ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + C
----------------------------------------------------------------------------------------------------
ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA DI
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO DESPESAS - VARIAÇÃO CAMBIAL - VALOR DO SEGURO
GRANEL - DI
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F04
REPS /PWS/MZYCI023X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND
origem = v_ori.
v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
v_vlfrete = v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
ENDIF.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL .
itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr / v_taxa.
ENDIF.
ENDIF.
* << Fim da inclusão
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDIF.
ENDLOOP.
if /pws/zycit001-regime = '04' and /pws/zycit001-tpdecl = 'DI'.
LOOP AT itab_zycit443.
IF NOT '356' CA itab_zycit443-codregtri .
v_tot_ii = itab_zycit443-vlii + v_tot_ii.
ENDIF.
...
...
ENDIF.
endif.
DESCRIBE TABLE itab_zycit003 LINES v_linha.
IF v_programa EQ 'DC' OR v_programa EQ 'PC' OR
v_programa EQ 'DI' OR
( v_programa EQ 'FAT' AND v_parametro(2) EQ '04' ).
MOVE itab_zycit036[] TO itab_zycit036_aux[].
LOOP AT itab_despesa WHERE netpr NE 0.
CLEAR: v_tot_desp.
LOOP AT itab_zycit003 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
ENDIF.
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
t001-land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL .
itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr / v_taxa.
ENDIF.
ENDIF.
* << Fim da inclusão
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
CLEAR itab_zycit036_aux.
IF NOT itab_despesa-matuse IS INITIAL.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF itab_ekpo-j_1bmatuse NE itab_despesa-matuse .
CONTINUE.
ENDIF.
...
...
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
ENDIF.
ELSE.
itab_zycit036_aux-vlreal =
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
* << Fim da exclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
IF NOT itab_despesa-waers IS INITIAL.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSE.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
...
...
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
ENDIF.
ELSE.
itab_zycit036_aux-vlreal =
( itab_zycit003-vlreal * itab_zycit003-qtd_iten
/ v_tot_vlreal ) * itab_despesa-netpr .
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
* << Fim da exclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
IF NOT itab_despesa-waers IS INITIAL.
...
...
ENDIF.
ELSE.
v_tfre = /pws/zycie085-vlfre.
ENDIF.
v_vtot = /pws/zycie085-vlfob + v_tfre + v_tseg.
IF NOT v_vtot IS INITIAL.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
( ( v_vfob + v_vfre + v_vseg ) / v_vtot ) .
ENDIF.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ELSE.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
* << Fim da exclusão
ELSE.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
* << Fim da exclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da exclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ENDIF.
IF NOT itab_despesa-waers IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
* >> Início da inclusão:
vlreal_dest LIKE /pws/zycie003-vlreal,
* << Fim da inclusão
mark,
END OF itab_it.
DATA: BEGIN OF itab_zycit049 OCCURS 0.
INCLUDE STRUCTURE /pws/zycie049.
DATA: tipo LIKE /pws/zycit019-tipo,
coddesp LIKE /pws/zycit000-cod_sisc,
codigo LIKE /pws/zycit019-codigo,
baseicms LIKE /pws/zycit020-baseicms,
baseii LIKE /pws/zycit020-baseii,
reduz LIKE /pws/zycie122-descricao_reduz,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
DATA v_desp_fren LIKE /pws/zycit049-vldp.
DATA t_dif_seg LIKE /pws/zycit100-vlseg.
CLEAR: t_ivdesp.
LOOP AT itab_zycit049 WHERE baseii EQ 'X' AND NOT vlreal IS initial.
IF itab_zycit049-divabs = 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso = 'X'.
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) *
itab_zycit049-vlreal.
ELSEIF itab_zycit049-proporplan = 'X'.
* >> Início da exclusão: FORM LOAD_ITAX
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
IF NOT v_tot_plan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
t_ivdes2 =
( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /
v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
* << Fim da inclusão
ELSE.
IF NOT v_tot_real IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM LOAD_ITAX
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
ENDIF.
* << Fim da inclusão
t_ivdes2 = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
* >> Início da exclusão: FORM LOAD_ITAX
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
* << Fim da inclusão
ENDIF.
IF t_ivdes2 > 0.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
ENDLOOP.
IF /pws/zycie100a-dttaxbem IS INITIAL.
MOVE itab_it-dttaxbem TO /pws/zycie100a-dttaxbem.
ENDIF.
IF p_tipo NE 'B' OR t_ivmle IS INITIAL OR v_dit = 'N'.
t_ivmle_d2 = t_ivmle = t_vmle * /pws/zycie100a-dttaxbem.
...
...
ENDIF.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivseg + t_ivdesp.
WHEN 'CIF'.
CLEAR v_difgran .
IF NOT itab_it-qtd_itend IS INITIAL.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM LOAD_ITAX
v_difgran =
( ( ( ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ) +
itab_it-vlfre_fat + itab_it-vlseg_fat ) -
v_tot_fre - v_tot_seg - v_diftern ) /
itab_zycit003-qtd_iten ) *
( itab_zycit003-qtd_iten - itab_zycit003-qtd_itend ).
* << Fim da exclusão
t_vmle =
* >> Início da exclusão: FORM LOAD_ITAX
( ( ( ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ) +
itab_it-vlfre_fat + itab_it-vlseg_fat ) -
( v_tot_fre + v_tot_seg + v_diftern ) ) - v_difgran ).
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
itab_it-vlreal * itab_it-qtd_itend.
* << Fim da inclusão
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg .
* >> Início da exclusão: FORM LOAD_ITAX
v_difgran = v_difgran * /pws/zycie085-ukursfob.
v_diftern = v_diftern * /pws/zycie085-ukursfob .
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_ivmle = ( itab_it-vlreal * itab_it-qtd_itend ) *
/pws/zycie085-ukursfob .
t_ivmle_d2 = t_ivmle .
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle =
( ( ( ( itab_zycit003-vlreal *
/pws/zycie085-ukursfob ) * itab_zycit003-qtd_iten ) +
( itab_it-vlfre_fat * /pws/zycie085-ukursfob ) +
( itab_it-vlseg_fat * /pws/zycie085-ukursfob ) ) -
( itab_it-vlfre + itab_it-vlseg + v_diftern ) ) -
v_difgran .
t_ivmle_d2 = t_ivmle =
t_ivmle + v_desp_fren + t_ivfre + t_ivseg .
* << Fim da exclusão
ENDIF.
ELSE.
t_vmle =
( ( ( itab_it-vlreal * itab_it-qtd_iten ) +
itab_it-vlfre_fat + itab_it-vlseg_fat ) -
( v_tot_fre + v_tot_seg + v_diftern ) ) .
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg .
v_diftern = v_diftern * /pws/zycie085-ukursfob .
...
...
( itab_it-vlfre_fat / itab_zycit003-qtd_iten ).
CLEAR itab_it-vlfre_fat.
ENDIF.
IF NOT itab_it-vlseg_fat IS INITIAL and
not itab_zycit003-qtd_iten is initial.
itab_it-vlreal = itab_it-vlreal +
( itab_it-vlseg_fat / itab_zycit003-qtd_iten ).
CLEAR itab_it-vlseg_fat.
ENDIF.
endif.
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-vlreal_dest = itab_it-vlreal.
* << Fim da inclusão
MODIFY itab_it.
ENDLOOP.
ENDFORM.
FORM fill_it115b.
CLEAR: itab_zycit115b[].
REFRESH: itab_zycit115b[].
LOOP AT itab_zycit115 WHERE
nrseq = wa_it-nrseq AND
ebeln = wa_it-ebeln AND
ebelp = wa_it-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
FORM calc_init USING p_tipo.
CLEAR v_tcif_fat.
CLEAR v_tot_real.
DATA: v_qtd_iten LIKE /pws/zycie003-qtd_iten.
DATA: v_diffrete LIKE v_tdif ,
v_diffrete_aux LIKE v_tdif .
* >> Início da inclusão: FORM CALC_INIT
DATA: v_calc_seg LIKE /pws/zycit003-vlreal ,
v_perc_seg LIKE /pws/zycie085-per_seg.
* << Fim da inclusão
IF itab_zycit049[] IS INITIAL.
SELECT * FROM /pws/zycit049 INTO TABLE itab_zycit049
WHERE nrseq = /pws/zycie085-nrseqdi.
ENDIF.
IF p_tipo = 'I'.
LOOP AT itab_zycit049.
v_tabix = sy-tabix.
IF NOT itab_zycit049-vldp IS INITIAL.
IF itab_zycit049-waers NE wa_zycbt007-waersb.
PERFORM taxa_converte USING itab_zycit049-waers
...
...
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vlreal.
ENDIF.
ENDIF.
CLEAR itab_zycit049-vldp_aux.
MODIFY itab_zycit049 INDEX v_tabix TRANSPORTING vlreal vldp_aux.
ENDLOOP.
ENDIF.
DESCRIBE TABLE itab_it LINES v_ipt.
LOOP AT itab_it.
* >> Início da inclusão: FORM CALC_INIT
READ TABLE itab_zycit003 WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
* << Fim da inclusão
IF /pws/zycie085-waersfob NE itab_it-waers.
PERFORM: calc_conv_moeda USING itab_it-waers
/pws/zycie085-waersfob
CHANGING itab_it-vlfre_fat.
v_tfrefat = v_tfrefat + itab_it-vlfre_fat.
ELSE.
v_tfrefat = v_tfrefat + itab_it-vlfre_fat.
ENDIF.
* >> Início da inclusão: FORM CALC_INIT
v_calc_seg = v_calc_seg + ( itab_it-vlreal_dest *
itab_zycit003-qtd_iten ).
* << Fim da inclusão
ENDLOOP.
IF v_dit = 'N'.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
v_sgtofat = /pws/zycie085-vlseg.
IF NOT v_sgtofat IS INITIAL .
PERFORM retorna_decimais USING /pws/zycie085-waersseg
v_sgtofat .
ENDIF.
CASE s_inco1_ci.
...
...
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
PERFORM calc_conv_frete CHANGING v_bltofat.
WHEN 'CIF'.
PERFORM: calc_conv_frete CHANGING v_bltofat,
calc_conv_seg CHANGING v_sgtofat.
IF NOT v_sgtofat IS INITIAL .
PERFORM trata_decimais USING /pws/zycie085-waersseg
v_sgtofat .
ENDIF.
v_tdif = v_tfrefat - v_bltofat .
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
PERFORM calc_conv_frete CHANGING v_bltofat.
ENDCASE.
ENDIF.
CLEAR v_ntgew.
CLEAR v_tfrefat .
CLEAR v_ntgewd.
LOOP AT itab_zycit003.
v_ntgew = v_ntgew + itab_zycit003-ntgew.
v_ntgewd = v_ntgewd + itab_zycit003-ntgewd.
* >> Início da inclusão: FORM CALC_INIT
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
* << Fim da inclusão
v_tot_real = v_tot_real +
( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).
v_tot_plan = v_tot_plan +
( itab_zycit003-qtd_iten * itab_zycit003-netpr ).
ENDLOOP.
LOOP AT itab_it.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
...
...
ELSE.
v_diffrete = ( ( v_tdif * - 1 ) *
( itab_zycit003-ntgew / v_ntgew ) ).
ENDIF.
IF /pws/zycie093-waersfre NE itab_zycit003-waers .
v_diffrete_aux = v_diffrete .
PERFORM calc_conv_moeda USING /pws/zycie093-waersfre
itab_zycit003-waers
CHANGING v_diffrete_aux.
itab_it-vlreald =
* >> Início da exclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_zycit003-vlreal ) -
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_it-vlreal_dest ) -
* << Fim da inclusão
v_diffrete_aux ) / itab_zycit003-qtd_iten ) .
ELSE.
itab_it-vlreald =
* >> Início da exclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_zycit003-vlreal ) -
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_it-vlreal_dest ) -
* << Fim da inclusão
v_diffrete ) / itab_zycit003-qtd_iten ) .
* >> Início da inclusão: FORM CALC_INIT
ENDIF.
IF s_inco1_ci EQ 'CIF'.
IF NOT v_calc_seg IS INITIAL.
itab_it-vlreald =
( ( itab_zycit003-qtd_iten * itab_it-vlreald ) -
( ( itab_it-vlreal_dest * itab_zycit003-qtd_iten ) * ( v_sgtofat
/ v_calc_seg ) ) )
/ itab_zycit003-qtd_iten .
ENDIF.
* << Fim da inclusão
ENDIF.
MODIFY itab_it.
ENDIF.
ENDLOOP.
LOOP AT itab_it.
IF p_tipo = 'I'.
itab_it-seq = sy-tabix.
ENDIF.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
...
...
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
itab_it-qtd_iten )
+ itab_it-vlfre_fat + itab_it-vlseg_fat ).
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'CIF'.
* >> Início da inclusão: FORM CALC_INIT
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
PERFORM: calc_conv_frete CHANGING v_bltofat.
* << Fim da inclusão
v_tdif = v_tfrefat - v_bltofat +
v_tsegfat - v_sgtofat.
* >> Início da inclusão: FORM CALC_INIT
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
PERFORM calc_conv_frete CHANGING v_bltofat.
* << Fim da inclusão
ENDCASE.
READ TABLE itab_zycit003 INDEX 1.
IF sy-subrc EQ 0 .
...
...
wa_it000-cod_sisc NE itab_zycit049-tpdesp.
IF NOT itab_zycit049-tipo EQ 'D'.
IF v_idx EQ v_ipt AND v_ipt NE 1.
t_ivdes2 = itab_zycit049-vlreal - itab_zycit049-vldp_aux.
ELSE.
IF itab_zycit049-divabs EQ 'X'.
t_ivdes2 = ( 1 / v_ipt ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-peso EQ 'X'.
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-proporplan EQ 'X'.
* >> Início da exclusão: FORM LOAD_IICMS
t_ivdes2 = ( v_it_plan / v_tot_plan ) *
itab_zycit049-vlreal.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF NOT v_tot_plan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
t_ivdes2 = ( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /
v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
* << Fim da inclusão
ELSE.
IF /pws/zycit062-bs_rat_icms EQ 'CIF'.
t_ivdes2 = ( itab_zycit049-vlreal *
( itab_it-vlfob + v_tot_fre + v_tot_seg ) )
/ ( /pws/zycie085-vlfob + v_bltofat + v_sgtofat ) .
ELSE.
IF NOT v_tot_real IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
ENDIF.
* << Fim da inclusão
t_ivdes2 = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
FORM reclassificacao_ia_funcao.
DATA: BEGIN OF itab_variacao OCCURS 0.
INCLUDE STRUCTURE /pws/zycit085.
DATA: END OF itab_variacao.
CHECK NOT /pws/zycie085-dtreg IS INITIAL AND
NOT /pws/zycie085-nrdi IS INITIAL.
* >> Início da inclusão: FORM RECLASSIFICACAO_IA_FUNCAO
LOOP AT ITAB_ZYCIT006.
IF ITAB_ZYCIT006-FRPAGTO EQ 'P' or
itab_zycit006-FRPAGTO eq 'A' .
delete itab_zycit006.
endif.
ENDLOOP.
LOOP AT ITAB_ZYCIT006.
ENDLOOP.
if sy-subrc ne 0 .
exit.
endif.
* << Fim da inclusão
IF v_modo_bi IS INITIAL .
v_modo_bi = 'N'.
ENDIF.
CLEAR: v_dele.
IF /pws/zycie085-belnr_0 IS INITIAL AND
NOT /pws/zycie085-belnr_0_f05 IS INITIAL.
v_text = text-208.
PERFORM executa_fb08 USING /pws/zycie085-belnr_0_f05
/pws/zycie085-budat_0.
IF v_dele IS INITIAL.
...