Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 17/12/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:52:02
Descrição da Nota: AJUSTADO RATEIO DO SEGURO PARA PROCESSOS CIF A GRANEL
Sintoma
O total do seguro rateado entres itens da DI é menor que o total calculado pela DI.
Solução
Ajustar o rateio para utilizar o valor CIF.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05477 Data: 17/12/2007 Hora: 10:48:32
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05477
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00027
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04644 - 00001 - 7.0 - 00002 - ERRO DI JPY + GRANEL NO VALOR DO SEGURO E VARIAÇÃO DO RODOVIÁRIO
05431 - 00002 - 7.0 - 00003 - AJUSTADO REATEIO DO SEGURO NA DI PARA PROCESSOS CIF
----------------------------------------------------------------------------------------------------
AJUSTADO RATEIO DO SEGURO PARA PROCESSOS CIF A GRANEL
----------------------------------------------------------------------------------------------------
Palavras Chave:
DI - RATEIO - SEGURO - GRANEL - CIF
/PWS/SAPMZYCI023
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
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.
CLEAR: t_ivdesp.
LOOP AT itab_zycit049 WHERE baseii EQ 'X' AND NOT vlreal IS initial.
* >> Início da inclusão: FORM LOAD_ITAX
IF /pws/zycit000-flag_txsisc IS INITIAL OR
wa_it000-cod_sisc NE itab_zycit049-tpdesp.
* << Fim da inclusão
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'.
IF NOT v_tot_plan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
...
...
ENDIF.
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
ENDIF.
IF t_ivdes2 > 0.
t_ivdesp = t_ivdesp + t_ivdes2.
ENDIF.
* >> Início da inclusão: FORM LOAD_ITAX
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 INITIAL.
READ TABLE itab_zycit100_temp WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc = 0.
PERFORM adic_list.
ENDIF.
ENDIF.
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
LOOP AT itab_zycit100_temp WHERE adicao = itab_it-adicao.
v_nr_itens = v_nr_itens + 1.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM LOAD_ITAX
ENDIF.
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
v_pii = 'X'.
READ TABLE itab_zycit049 WITH KEY tpdesp = wa_it000-cod_sisc.
IF sy-subrc = 0.
IF v_sisco3 IS INITIAL.
DESCRIBE TABLE itab_zycit116 LINES v_ipa.
PERFORM fill_taxasiscomex USING v_ipa.
ENDIF.
IF NOT v_sisco3 IS INITIAL AND NOT v_nr_itens IS INITIAL.
v_desp = ( v_sisco3 / v_nr_itens ).
ENDIF.
ENDIF.
ENDIF.
IF v_nr_itens GT 1.
t_ivdesp = t_ivdesp + v_desp .
ELSE.
t_ivdesp = t_ivdesp + v_sisco3.
ENDIF.
CLEAR: v_sisco3.
* << 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 s_inco1_ci EQ 'CIF'.
IF NOT itab_it-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM LOAD_ITAX
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.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
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_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .
ENDIF.
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.
* << Fim da inclusão
ENDIF.
ELSE.
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_iten ) +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .
ENDIF.
IF NOT v_tcfr IS INITIAL.
...
...
IF sy-subrc EQ 0.
itab_zycit049-vldp = s_wsisco.
itab_zycit049-vlreal = s_wsisco.
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp vlreal.
v_propoe_sisc = 'X'.
ENDIF.
ENDIF.
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
v_adics = p_adics.
IF NOT v_adics IS INITIAL.
* >> Início da inclusão: FORM FILL_TAXASISCOMEX
IF v_pii EQ 'X'.
READ TABLE itab_zycit049 WITH KEY tpdesp = /pws/zycit000-cod_sisc
baseii = 'X'.
CLEAR: v_pii.
ELSE.
* << Fim da inclusão
READ TABLE itab_zycit049 WITH KEY tpdesp = /pws/zycit000-cod_sisc
baseicms = 'X'.
* >> Início da inclusão: FORM FILL_TAXASISCOMEX
ENDIF.
* << Fim da inclusão
IF sy-subrc = 0.
v_sisco1 = ( itab_zycit049-vldp -
/pws/zycit000-txsis_fix ) / v_adics.
v_sisco2 = /pws/zycit000-txsis_fix / v_adics.
v_sisco3 = v_sisco1 + v_sisco2.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
/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 inclusão: FORM CALC_INIT
IF NOT itab_it-qtd_itend IS INITIAL.
* << Fim da inclusão
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
* >> Início da inclusão: FORM CALC_INIT
itab_it-qtd_itend )
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).
ELSE.
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
* << Fim da inclusão
itab_it-qtd_iten )
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).
* >> Início da inclusão: FORM CALC_INIT
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'CIF'.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
PERFORM: calc_conv_frete CHANGING v_bltofat.
v_tdif = v_tfrefat - v_bltofat +
v_tsegfat - v_sgtofat.
v_bltofat = /pws/zycie093-prepaid +
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
t_vlii LIKE /pws/zycie006-vlmerc,
t_vlipi LIKE /pws/zycie006-vlmerc,
t_vlicms LIKE /pws/zycie006-vlmerc,
t_ivdesp LIKE t_icms,
t_ivdes2 LIKE t_icms,
t_ivdes3 LIKE t_icms,
t_ivfre LIKE t_icms,
t_ivseg LIKE t_icms,
t_ivadu LIKE t_icms,
t_iirec LIKE t_icms,
* >> Início da inclusão:
v_pii type C,
* << Fim da inclusão
t_ipibas LIKE t_icms,
t_ipirec LIKE t_icms,
v_tot_seg LIKE t_icms,
v_tval2 LIKE t_icms,
a_baseipi LIKE /pws/zycie116-baseii,
a_baseicms LIKE /pws/zycie116-baseii,
a_itval LIKE t_icms,
a_icdevi LIKE t_icms,
a_icreco LIKE t_icms,
a_iiacor LIKE t_icms,
...