Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 14/06/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:41:56
Descrição da Nota: ERRO NO RATEIO DE VALOR DE DESPESAS DA DI.
Sintoma
Erro no rateio de valor de despesas.
Solução
Ajuste na declaração de tabelas.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03924 Data: 14/06/2007 Hora: 14:57:58
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03924
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00170
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00759 - 00001 - 6.0 - 00022 - PROBLEMAS COM O VALOR DO RATEIO
01227 - 00002 - 6.0 - 00023 - VISUALIZAÇÃO DO RATEIO DE DESPESAS DA DI ESTÁ INCORRETO
03916 - 00003 - 7.0 - 00001 - PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM
----------------------------------------------------------------------------------------------------
ERRO NO RATEIO DE VALOR DE DESPESAS DA DI.
----------------------------------------------------------------------------------------------------
Palavras Chave:
ERRO - VALOR DE RATEIO - DESPESAS - DI
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
CLEAR v_vlreal.
SELECT SINGLE qtd_iten ntgewd FROM /pws/zycit003 INTO
(/pws/zycie003-qtd_iten, /pws/zycie003-ntgewd)
WHERE nrseq EQ /pws/zycie003-nrseq
AND ebeln EQ /pws/zycie003-ebeln
AND ebelp EQ /pws/zycie003-ebelp.
v_vlreal = /pws/zycie003-vlreal.
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * /pws/zycie003-qtd_itend.
t_vmle2 = /pws/zycie003-vlreal * /pws/zycie003-qtd_itend.
* >> Início da exclusão: FORM LOAD_IFRE
v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_itend.
* << Fim da exclusão
ELSE.
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * /pws/zycie003-qtd_iten.
t_vmle2 = /pws/zycie003-vlreal * /pws/zycie003-qtd_iten.
* >> Início da exclusão: FORM LOAD_IFRE
v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_iten.
* << Fim da exclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_IFRE
v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_iten.
* << Fim da inclusão
v_frete_nm = v_bltofat.
IF NOT v_ntgewd IS INITIAL.
t_ivfre = ( /pws/zycie003-ntgewd / v_ntgewd ) * s_frvr.
v_tot_fre = ( /pws/zycie003-ntgewd / v_ntgewd ) * v_frete_nm.
ELSE.
t_ivfre = ( /pws/zycie003-ntgew / v_ntgew ) * s_frvr.
v_tot_fre = ( /pws/zycie003-ntgew / v_ntgew ) * v_frete_nm.
ENDIF.
IF /pws/zycie085-mdadicao NE 'S'.
IF /pws/zycie093-waersfre NE itab_it-waersbem.
...
...
v_ntgewd IS INITIAL.
IF NOT /pws/zycie093-ternacion IS INITIAL.
v_ternacion = /pws/zycie093-ternacion.
PERFORM trata_decimais USING /pws/zycie085-waersfre
v_ternacion .
IF /pws/zycie085-waersfob NE /pws/zycie093-waersfre .
PERFORM: calc_conv_moeda:
USING /pws/zycie093-waersfre
/pws/zycie085-waersfob
CHANGING v_ternacion.
* >> Início da exclusão: FORM LOAD_IFRE
t_vmle = t_vmle - ( ( /pws/zycie003-ntgew / v_tntgew )
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
endif.
v_diftern = ( ( /pws/zycie003-ntgew / v_tntgew )
* << Fim da inclusão
* v_ternacion ).
* >> Início da exclusão: FORM LOAD_IFRE
ELSE.
t_vmle = t_vmle - ( ( /pws/zycie003-ntgew / v_tntgew )
* v_ternacion ).
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
t_vmle = t_vmle - v_diftern .
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_IFRE
ENDIF.
* << Fim da exclusão
IF itab_zycit003-qtd_itend IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + t_vldif.
ENDIF.
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
ENDFORM.
FORM load_itax USING p_tipo.
DATA v_desp_fren LIKE /pws/zycit049-vldp.
DATA t_dif_seg LIKE /pws/zycit100-vlseg.
* >> Início da inclusão: FORM LOAD_ITAX
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'.
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
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.
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.
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
ENDIF.
IF t_ivdes2 > 0.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
ENDLOOP.
* << Fim da inclusão
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.
PERFORM valor_cfr USING p_tipo.
IF /pws/zycit000-rat_seg_fob IS INITIAL.
CASE s_inco1_ci.
WHEN 'C&F'.
...
...
ENDCASE.
ELSE.
IF s_inco1_ci EQ 'CIF'.
ELSEIF s_inco1_ci EQ 'C&F'.
v_cfr = t_ivmle + t_ivfre.
ELSE.
v_cfr = t_ivmle.
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
* >> Início da inclusão: FORM LOAD_ITAX
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.
v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_itend ) +
itab_it-vlfre_fat + itab_it-vlseg_fat .
ENDIF.
ELSE.
* << Fim da inclusão
v_cif_fat = ( itab_it-vlreal * itab_it-qtd_iten ) +
itab_it-vlfre_fat + itab_it-vlseg_fat .
* >> Início da inclusão: FORM LOAD_ITAX
ENDIF.
* << Fim da inclusão
IF NOT v_tcif_fat IS INITIAL.
t_ivseg = itab_it-vlseg = ( v_cif_fat / v_tcif_fat ) *
s_stvr.
v_tot_seg = ( v_cif_fat / v_tcif_fat ) * v_sgtofat.
ENDIF.
ELSE.
IF NOT v_tcfr IS INITIAL.
t_ivseg = itab_it-vlseg = ( v_cfr / ( v_tcfr ) ) * s_stvr.
v_tot_seg = ( v_cfr / ( v_tcfr ) ) * v_sgtofat.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_ITAX
CLEAR: t_ivdesp.
LOOP AT itab_zycit049 WHERE baseii EQ 'X' AND NOT vlreal IS initial.
IF v_idx EQ v_ipt AND v_ipt NE 1.
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'.
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
ELSE.
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
ENDIF.
ELSE.
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'.
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
ELSE.
t_ivdes2 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
ENDIF.
ENDIF.
IF itab_zycit049-divabs = 'X'.
t_ivdes3 = ( 1 / v_ipt ) * itab_zycit049-vldp.
ELSEIF itab_zycit049-peso = 'X'.
t_ivdes3 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vldp.
ELSEIF itab_zycit049-proporplan = 'X'.
t_ivdes3 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vlreal.
ELSE.
t_ivdes3 = ( v_it_plan / v_tot_plan ) * itab_zycit049-vldp.
ENDIF.
IF t_ivdes2 > 0.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
IF p_tipo = 'I'.
IF /pws/zycie085-mdadicao = 'S'.
IF /pws/zycie085-waersfob EQ itab_zycit049-waers.
ENDIF.
ENDIF.
IF itab_zycit049-tipo = 'D'.
CLEAR s_fbvr_s_d.
IF t_ivdes2 LT 0.
s_fbvr_s_d = s_fbvr.
ELSE.
s_fbvr_s_d = s_fbvr.
ENDIF.
ELSEIF itab_zycit049-tipo = 'A'.
ENDIF.
ELSEIF p_tipo = 'A'.
IF itab_zycit049-tipo = 'A'.
READ TABLE itab_zycit049b WITH KEY
coddesp = itab_zycit049-coddesp.
IF sy-subrc EQ 0.
itab_zycit049b-vlreal = itab_zycit049b-vlreal + t_ivdes2.
itab_zycit049b-vldp = itab_zycit049b-vldp + t_ivdes3.
MODIFY itab_zycit049b INDEX sy-tabix TRANSPORTING
vldp vlreal.
ENDIF.
ELSEIF itab_zycit049-tipo = 'D'.
READ TABLE itab_zycit049c WITH KEY
coddesp = itab_zycit049-coddesp.
IF sy-subrc EQ 0.
itab_zycit049c-vlreal = itab_zycit049c-vlreal + t_ivdes2.
itab_zycit049c-vldp = itab_zycit049c-vldp + t_ivdes3.
MODIFY itab_zycit049c INDEX sy-tabix TRANSPORTING
vldp vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
* << Fim da exclusão
CASE s_inco1_ci.
WHEN 'CIF'.
t_dif_seg = /pws/zycie003-vlseg_fat - v_tot_seg .
ENDCASE.
IF v_dit EQ 'N'.
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.
WHEN 'C&F'.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.
...
...
IF NOT itab_it-qtd_itend IS INITIAL.
t_vmle_d2 = t_vmle2 = t_vmle2 + v_tot_fre.
ELSE.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.
t_vmle2 = t_vmle.
ENDIF.
ENDIF.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivseg + t_ivdesp.
WHEN 'CIF'.
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle_d2 = t_ivmle = t_ivmle + v_desp_fren +
t_ivfre + t_ivseg +
( t_dif_seg * /pws/zycie085-ukursfob ).
IF NOT v_desp_fren IS INITIAL.
IF NOT /pws/zycie085-ukursfob IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg +
( v_desp_fren / /pws/zycie085-ukursfob ) + t_dif_seg.
ELSE.
MESSAGE i015 WITH text-221.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
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.
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 ).
t_vmle =
( ( ( ( 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 ).
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg .
v_difgran = v_difgran * /pws/zycie085-ukursfob.
v_diftern = v_diftern * /pws/zycie085-ukursfob .
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 inclusão
ENDIF.
ELSE.
* >> Início da exclusão: FORM LOAD_ITAX
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre +
v_tot_seg + t_dif_seg.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
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 .
t_ivmle_d2 = t_ivmle =
( ( ( ( itab_it-vlreal *
/pws/zycie085-ukursfob ) * itab_it-qtd_iten ) +
( itab_it-vlfre_fat * /pws/zycie085-ukursfob ) +
( itab_it-vlseg_fat * /pws/zycie085-ukursfob ) ) -
( itab_it-vlfre + itab_it-vlseg + v_diftern ) ).
t_ivmle_d2 = t_ivmle =
t_ivmle + v_desp_fren + t_ivfre + t_ivseg .
* << Fim da inclusão
ENDIF.
t_vmle2 = t_vmle.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.
ENDCASE.
ELSE.
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.
WHEN 'C&F'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
FORM calc_init USING p_tipo.
CLEAR v_tcif_fat.
* >> Início da inclusão: FORM CALC_INIT
CLEAR v_tot_real.
* << Fim da inclusão
DATA: v_qtd_iten LIKE /pws/zycie003-qtd_iten.
DATA: v_diffrete LIKE v_tdif ,
v_diffrete_aux LIKE v_tdif .
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.
...
...
/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
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 ).
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_it.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF itab_it-qtd_itend NE '' AND v_dit = 'N'.
IF NOT v_ntgewd IS INITIAL.
v_diffrete = ( v_tdif * - 1 ) *
( itab_zycit003-ntgewd / v_ntgewd ).
...
...
IF NOT itab_zycit003-ntgewd IS INITIAL.
itab_it-ntgew = itab_zycit003-ntgewd.
ENDIF.
CLEAR: v_tvaln, v_qtd_iten.
IF itab_it-qtd_itend NE '' AND v_dit = 'N'.
v_qtd_iten = itab_it-qtd_itend.
ELSE.
v_qtd_iten = itab_it-qtd_iten.
ENDIF.
v_tntgew = v_tntgew + itab_it-ntgew.
* >> Início da exclusão: FORM CALC_INIT
v_tot_plan = v_tot_plan + ( v_qtd_iten * itab_it-netpr ).
* << Fim da exclusão
v_tmle = v_tmle + ( ( v_qtd_iten * itab_it-vlreal ) *
itab_it-dttaxbem ).
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.
...
...
/pws/zycie085-ukursfob = v_taxa.
ENDIF.
ELSE.
IF NOT itab_it-vlreald IS INITIAL.
v_tval = v_tval + ( itab_it-qtd_itend * itab_it-vlreal ).
ELSE.
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
* >> Início da exclusão: FORM CALC_INIT
v_tcif_fat = v_tcif_fat + ( ( itab_it-vlreal * itab_it-qtd_iten )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
itab_it-qtd_iten )
* << Fim da inclusão
+ itab_it-vlfre_fat + itab_it-vlseg_fat ).
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'CIF'.
v_tdif = v_tfrefat - v_bltofat +
v_tsegfat - v_sgtofat.
ENDCASE.
IF p_tipo NE 'A'.
READ TABLE itab_zycit003 INDEX 1.
...
...
IF itab_zycit003-qtd_itend IS INITIAL.
v_tval3 = v_tval2 = v_tval + v_tdif .
ELSE.
v_tval3 = v_tval2 = v_tval.
ENDIF.
ENDIF.
ENDFORM.
FORM load_iicms USING p_tipo.
CLEAR: t_ivdesp, v_advii, v_advipi, v_advicms,
v_advpis, v_advcof, v_desp.
* >> Início da exclusão: FORM LOAD_IICMS
DATA itab_zycit003_rateio LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
* << Fim da exclusão
SELECT * FROM /pws/zycit438 INTO TABLE itab_zycit438
WHERE regio = v_region
AND lei = 'MP252'.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycit438 INTO TABLE itab_zycit438
WHERE regio = ' '
AND lei = 'MP252'.
ENDIF.
SELECT * FROM /pws/zycit438 APPENDING TABLE itab_zycit438
WHERE regio = v_region
AND lei = 'MP255'.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycit438 APPENDING TABLE itab_zycit438
WHERE regio = ' '
AND lei = 'MP255'.
ENDIF.
CLEAR v_nova.
IF /pws/zycie085-dtuserc IS INITIAL.
/pws/zycie085-dtuserc = sy-datlo.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF NOT itab_it[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_rateio
FOR ALL ENTRIES IN itab_it
WHERE nrseq = itab_it-nrseq AND
ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp.
ENDIF.
CLEAR v_tot_real.
LOOP AT itab_zycit003_rateio.
v_tot_real = v_tot_real +
( itab_zycit003_rateio-vlreal * itab_zycit003_rateio-qtd_iten ).
ENDLOOP.
READ TABLE itab_zycit003_rateio
WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
* << Fim da exclusão
CLEAR : v_fatx, v_xa , v_xb , v_xc, v_faty, v_fatpc.
LOOP AT itab_zycit049 WHERE baseicms EQ 'X' AND NOT vlreal IS initial.
IF /pws/zycit000-flag_txsisc IS INITIAL OR v_dit NE 'N' OR
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.
...
...
t_ivdes2 = ( wa_it-ntgew / v_tntgew ) * itab_zycit049-vlreal.
ELSEIF itab_zycit049-proporplan EQ 'X'.
t_ivdes2 = ( v_it_plan / v_tot_plan ) *
itab_zycit049-vlreal.
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.
* >> Início da exclusão: FORM LOAD_IICMS
t_ivdes2 = ( itab_zycit003_rateio-vlreal *
itab_zycit003_rateio-qtd_iten
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
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.
t_ivdes2 = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten
* << Fim da inclusão
/ v_tot_real ) * itab_zycit049-vlreal.
* >> Início da inclusão: FORM LOAD_IICMS
endif.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
* >> Início da exclusão: FORM LOAD_IICMS
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
ENDLOOP.
CLEAR: v_nr_itens, v_desp. CLEAR: itab_zycit100_temp.
REFRESH itab_zycit100_temp.
MOVE itab_it[] TO itab_zycit100_temp[].
IF itab_it-adicao IS INITIAL AND NOT /pws/zycit000-flag_txsisc IS
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
/pws/zycie100a-basredpis = '0'.
ENDIF.
IF /pws/zycie100a-basredcof >= '100'.
/pws/zycie100a-basredcof = '0'.
ENDIF.
IF /pws/zycie100a-codregtri EQ '4'.
v_advii = /pws/zycie100a-reduzida / 100 .
IF /pws/zycie100a-reduzida IS INITIAL.
v_advii = /pws/zycie003-advalii / 100 .
ENDIF.
* >> Início da inclusão: FORM MP_NOVA
elseif /pws/zycie100a-codregtri eq '3' .
clear v_advii.
* << Fim da inclusão
ENDIF.
IF /pws/zycie100a-codregtriipi EQ '2'.
v_advipi = /pws/zycie100a-reduzidaipi / 100.
IF /pws/zycie100a-reduzidaipi IS INITIAL.
v_advipi = /pws/zycie003-advalipi / 100.
ENDIF.
ELSEIF /pws/zycie100a-codregtriipi EQ '4' AND
/pws/zycie003-advalipi IS INITIAL.
v_advipi = itab_it-ipi_recolher / itab_it-baseipi .
ELSEIF /pws/zycie100a-codregtriipi EQ '1' .
...
...
screen-input = '0'.
CLEAR: /pws/zycie100a-aladi, a_aladi.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE100A-ACORDORATE'.
IF /pws/zycie100a-acordo IS INITIAL.
screen-input = '0'.
CLEAR: /pws/zycie100a-acordorate.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE100A-REDUZIDA'.
IF NOT /pws/zycie100a-percreduz IS INITIAL OR
* >> Início da exclusão: FORM SET_SCREEN_0431
'12369' CA /pws/zycie100a-codregtri.
* << Fim da exclusão
* >> Início da inclusão: FORM SET_SCREEN_0431
'123569' CA /pws/zycie100a-codregtri.
* << Fim da inclusão
screen-input = '0'.
CLEAR: /pws/zycie100a-reduzida.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE100A-PERCREDUZ'.
IF NOT /pws/zycie100a-reduzida IS INITIAL OR
* >> Início da exclusão: FORM SET_SCREEN_0431
'12369' CA /pws/zycie100a-codregtri.
* << Fim da exclusão
* >> Início da inclusão: FORM SET_SCREEN_0431
'123569' CA /pws/zycie100a-codregtri.
* << Fim da inclusão
screen-input = '0'.
CLEAR: /pws/zycie100a-percreduz.
ENDIF.
ELSEIF screen-name EQ '/PWS/ZYCIE100A-CODFUNLEG'.
IF ' 178' CA /pws/zycie100a-codregtri.
screen-input = '0'.
CLEAR: /pws/zycie100a-codfunleg, t_fundes.
ENDIF.
IF v_existe_li EQ 'X'.
screen-input = '0'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
*>> Inicio Inclusão
DATA itab_zycit003_rateio LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
DATA: v_difgran LIKE /pws/zycie085-vlfob.
data: v_diftern type /pws/zycit085-vlfob.
*>> Fim inclusão
DATA: END OF COMMON PART.
...