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:42:14
Descrição da Nota: PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM
Sintoma
Existe algum problema com o rateio da despesa de ARMAZENAGEM. Houve uma divergência para a Base de
IPI com relação à planilha anexa que utilizamos para validação dos processos de homologação.
Ao retirar a despesa de ARMAZENAGEM os valores do processo ficam corretos.
Solução
Atualização do rateio da DI para despesas com base de II
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03916 Data: 14/06/2007 Hora: 09:47:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03916
Categoria : Melhoria
Prioridade : Média
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
----------------------------------------------------------------------------------------------------
PROBLEMA COM O RATEIO DA DESPESA DE ARMAZENAGEM
----------------------------------------------------------------------------------------------------
Palavras Chave:
FORM LOAD_ITAX, ITAB_ZYCIT003_RATEIO, FORM CALC_INIT, ITAB_IT[]
V_TOT_REAL
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
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 inclusão: FORM LOAD_ITAX
READ TABLE itab_zycit003_rateio
WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
* << Fim da inclusão
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.
...
...
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.
* >> 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_real IS INITIAL.
t_ivdes2 = ( itab_zycit003_rateio-vlreal *
itab_zycit003_rateio-qtd_iten
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
* << Fim da inclusão
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.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.
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.
* >> Início da inclusão: FORM CALC_INIT
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.
* << Fim da inclusão
LOOP AT itab_it.
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.
ENDLOOP.
...
...
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.
* << Fim da exclusão
READ TABLE itab_zycit003_rateio
WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
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 = ( 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 inclusão: FORM LOAD_IICMS
IF NOT v_tot_real IS INITIAL.
* << Fim da inclusão
t_ivdes2 = ( itab_zycit003_rateio-vlreal *
itab_zycit003_rateio-qtd_iten
/ v_tot_real ) * itab_zycit049-vlreal.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
...