Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 05/08/2011 00:00:00
Data/Hora Última Alteração: 05/08/2011 10:40:37
Descrição da Nota: RATEIO DE SEGURO NÃO BATE COM TOTAL DE ITENS QUANDO A MOEDA É DIFERENTE
Sintoma
O valor do rateio de seguro está incorreto, não bate com o total dos itens quando a moeda é
diferente.
Solução
Ajustar conversão de moeda e rateio entre os itens quando está flegado por FOB na ZYCIT000 ou sem
flag.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11377 Data: 05/08/2011 Hora: 10:27:38
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11377
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00008
Agrupamento : 00080
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02453 - 00001 - 6.0 - 00025 - O VALOR DO RATEIO DO FRETE NA DI GRANEL ESTÁ CALCULADO ERRADO.
04009 - 00002 - 7.0 - 00001 - ERRO NO CÁLCULO DE DESPESAS E VALORES DA NF UTILIZANDO GRANEL + C
05431 - 00003 - 7.0 - 00003 - AJUSTADO REATEIO DO SEGURO NA DI PARA PROCESSOS CIF
07026 - 00004 - 7.0 - 00006 - ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCU
07823 - 00005 - 7.0 - 00008 - RATEIO DE SEGURO INCORRETO NA DI.
08231 - 00006 - 7.0 - 00009 - AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA F
----------------------------------------------------------------------------------------------------
RATEIO DE SEGURO NÃO BATE COM TOTAL DE ITENS QUANDO A MOEDA É DIFERENTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
ITENS - DI - SEGURO - MOEDAS DIFERENTES - CONVERSAO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
v_vlreal = /pws/zycie003-vlreal.
v_decim1 = /pws/zycie003-qtd_iten * 10000.
v_decim2 = /pws/zycie003-qtd_itend * 10000.
v_qtd_c3 = trunc( v_decim1 ) / 10000.
v_qtd_dc3 = trunc( v_decim2 ) / 10000.
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal *
v_qtd_dc3.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
t_vmle = v_vlreal * v_qtd_dc3.
* << Fim da inclusão
t_vmle2 = /pws/zycie003-vlreal * v_qtd_dc3.
ELSE.
* >> Início da exclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * v_qtd_c3.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
t_vmle = v_vlreal * v_qtd_c3.
* << Fim da inclusão
t_vmle2 = /pws/zycie003-vlreal * v_qtd_c3.
ENDIF.
* >> Início da inclusão: FORM LOAD_IFRE
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING itab_it-waersbem
/pws/zycie085-waersfob
CHANGING t_vmle.
ENDIF.
t_vmle3 = t_vmle_d2 = t_vmle .
* << Fim da inclusão
v_it_plan = /pws/zycie003-netpr * v_qtd_c3.
* >> Início da exclusão: FORM LOAD_IFRE
v_frete_nm = v_bltofat.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
v_frete_nm = /pws/zycie093-prepaid + /pws/zycie093-collect +
/pws/zycie093-ternacion.
* << Fim da inclusão
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.
IF NOT v_ntgew IS INITIAL.
t_ivfre = ( /pws/zycie003-ntgew / v_ntgew ) * s_frvr.
v_tot_fre = ( /pws/zycie003-ntgew / v_ntgew ) * v_frete_nm.
ENDIF.
ENDIF.
IF /pws/zycie085-mdadicao NE 'S'.
* >> Início da exclusão: FORM LOAD_IFRE
IF /pws/zycie093-waersfre NE itab_it-waersbem.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
IF /pws/zycie093-waersfre NE /pws/zycie085-waersfob.
* << Fim da inclusão
PERFORM: calc_conv_moeda:
USING /pws/zycie093-waersfre
* >> Início da exclusão: FORM LOAD_IFRE
itab_it-waersbem
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
/pws/zycie085-waersfob
* << Fim da inclusão
CHANGING v_tot_fre.
ENDIF.
...
...
IF v_nr_itens GT 1.
t_ivdesp = t_ivdesp + v_desp .
ELSE.
t_ivdesp = t_ivdesp + v_sisco3.
ENDIF.
CLEAR: v_sisco3.
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'.
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle_d2 = t_ivmle = t_vmle * /pws/zycie100a-dttaxbem.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_ivmle_d2 = t_ivmle = t_vmle * /pws/zycie085-ukursfob.
* << Fim da inclusão
ENDIF.
PERFORM valor_cfr USING p_tipo.
* >> Início da exclusão: FORM LOAD_ITAX
IF itab_it-waersbem NE /pws/zycie085-waersfob AND
/pws/zycie085-ukursfob > 0 AND
/pws/zycit000-rat_seg_fob IS INITIAL.
v_cfr = ( v_cfr * /pws/zycie100a-dttaxbem ) /
/pws/zycie085-ukursfob.
ENDIF.
* << Fim da exclusão
IF s_inco1_ci EQ 'CIF'.
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_itendc3 ) +
...
...
ELSE.
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.
* >> Início da inclusão: FORM LOAD_ITAX
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_ITAX
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING /pws/zycie085-waersfob
itab_it-waersbem
CHANGING t_vmle2.
* << Fim da inclusão
ENDIF.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
...
...
t_ivmle_d2 = t_ivmle =
( ( ( ( itab_it-vlreal *
/pws/zycie085-ukursfob ) * itab_it-qtd_itenc3 ) +
( 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 .
ENDIF.
t_vmle2 = t_vmle.
* >> Início da inclusão: FORM LOAD_ITAX
IF /pws/zycie085-waersfob NE itab_it-waersbem.
PERFORM: calc_conv_moeda:
USING /pws/zycie085-waersfob
itab_it-waersbem
CHANGING t_vmle2.
ENDIF.
* << Fim da inclusão
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle2 + v_casasd3 .
ENDCASE.
ELSE.
CASE s_inco1_ci.
WHEN 'FOB'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
FORM valor_cfr USING p_tipo.
CLEAR: v_tcfr.
s_fbvr_s_d = /pws/zycie085-vlfob * /pws/zycie085-ukursfob.
IF /pws/zycit000-rat_seg_fob IS INITIAL.
IF s_inco1_ci EQ 'CIF'.
v_tcfr = /pws/zycie085-vlfob + v_sgtofat + v_bltofat.
v_cfr = t_vmle .
* >> Início da inclusão: FORM VALOR_CFR
ELSEIF s_inco1_ci NE 'FOB'.
v_tcfr = /pws/zycie085-vlfob +
( s_frvr / /pws/zycie085-ukursfob ).
v_cfr = t_vmle + ( t_ivfre / /pws/zycie085-ukursfob ).
* << Fim da inclusão
ELSE.
v_tcfr = /pws/zycie085-vlfob .
v_cfr = t_vmle .
ENDIF.
ELSE.
IF s_inco1_ci EQ 'CIF'.
v_tcfr = /pws/zycie085-vlfob + v_sgtofat + v_bltofat.
v_cfr = t_vmle .
ELSE.
v_tcfr = s_fbvr_s_d .
...