Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Prestação de Contas
Data/Hora da Publicação: 05/06/2008 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:33:04
Descrição da Nota: AO RATEAR DESPESAS ESTÁ CONSIDERANDO ITENS ISENTOS OU SUSPENSOS.
Sintoma
Quando temos ICMS suspenso ou isento em 1 dos itens a prestação de contas não está fazendo o cálculo
correto para enviar ao custo. Está rateando o valor entre itens isentos e integrais.
Solução
Verificar se o item é suspenso ou isento antes de ratear.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06695 Data: 05/06/2008 Hora: 10:57:11
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06695
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00050
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04911 - 00001 - 7.0 - 00003 - PRESTAÇÃO DE CONTAS DIFERENÇA VALOR DOCUMENTO CONTÁBIL
----------------------------------------------------------------------------------------------------
AO RATEAR DESPESAS ESTÁ CONSIDERANDO ITENS ISENTOS OU SUSPENSOS.
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO - DESPESA - ISENÇÃO - SUSPENSÃO - ICMS - IMPOSTOS.
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI007F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI007F01
...
ENDLOOP.
IF sy-subrc = 0.
IF /pws/zycie001-regime = '04' AND /pws/zycie001-tpdecl = 'DI'.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseq = /pws/zycie026-nrseq. "#EC CI_NOFIRST
IF sy-subrc NE 0.
MESSAGE e015 WITH text-083 text-084.
ELSE.
CLEAR: v_tot_ii, v_tot_ipi, v_tot_icms, v_tot_pis, v_tot_cofins.
LOOP AT itab_zycit443.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit443-codregtri .
* << Fim da inclusão
v_tot_ii = itab_zycit443-vlii + v_tot_ii.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
IF NOT '156' CA itab_zycit443-codregtriipi .
* << Fim da inclusão
v_tot_ipi = itab_zycit443-vlipi + v_tot_ipi.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
IF NOT '356' CA itab_zycit443-codregtripiscofi.
v_tot_pis = itab_zycit443-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit443-vlcofins + v_tot_cofins.
ENDIF.
IF NOT '356' CA itab_zycit443-codregtriicms .
* << Fim da inclusão
v_tot_icms = itab_zycit443-vlicms + v_tot_icms.
* >> Início da exclusão: FORM VERIFICA_ITENS
v_tot_pis = itab_zycit443-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit443-vlcofins + v_tot_cofins.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDLOOP.
IF NOT itab_zycit443[] IS INITIAL.
...
...
ENDIF.
ENDIF.
ELSE.
SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100
WHERE nrseq = /pws/zycie026-nrseq. "#EC CI_NOFIRST
IF sy-subrc NE 0.
MESSAGE e015 WITH text-083 text-084.
ELSE.
CLEAR: v_tot_ii, v_tot_ipi, v_tot_icms, v_tot_pis, v_tot_cofins.
LOOP AT itab_zycit100.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit100-codregtri .
* << Fim da inclusão
v_tot_ii = itab_zycit100-vlii + v_tot_ii.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
IF NOT '156' CA itab_zycit100-codregtriipi .
* << Fim da inclusão
v_tot_ipi = itab_zycit100-vlipi + v_tot_ipi.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
IF NOT '356' CA itab_zycit100-codregtripiscofi.
v_tot_pis = itab_zycit100-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit100-vlcofins + v_tot_cofins.
ENDIF.
IF NOT '356' CA itab_zycit100-codregtriicms .
* << Fim da inclusão
v_tot_icms = itab_zycit100-vlicms + v_tot_icms.
* >> Início da exclusão: FORM VERIFICA_ITENS
v_tot_pis = itab_zycit100-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit100-vlcofins + v_tot_cofins.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDLOOP.
IF NOT itab_zycit100[] IS INITIAL.
...
...
ebeln = it_item-ebeln
ebelp = it_item-ebelp.
ENDIF.
it_lanca-tpdesp = it_zycit027_aux-tpdesp.
IF it_zycit027_aux-tpdesp = '001'.
IF v_index = v_lines.
it_lanca-lancamento = it_zycit027_aux-vldp - v_total.
CLEAR v_total.
ELSE.
IF /pws/zycit001-regime = '04' AND /pws/zycit001-tpdecl = 'DI'.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '156' CA itab_zycit443-codregtriipi .
* << Fim da inclusão
vl_imp = itab_zycit443-vlipi / v_tot_ipi.
it_lanca-porcent = vl_imp.
it_lanca-lancamento = ( it_zycit027_aux-vldp *
itab_zycit443-vlipi / v_tot_ipi ).
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '156' CA itab_zycit100-codregtriipi .
* << Fim da inclusão
vl_imp = itab_zycit100-vlipi / v_tot_ipi.
it_lanca-porcent = vl_imp.
it_lanca-lancamento = ( it_zycit027_aux-vldp *
itab_zycit100-vlipi / v_tot_ipi ).
it_lanca-lancamento = v_vldp_rat .
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDIF.
v_total = v_total + it_lanca-lancamento.
ENDIF.
ELSEIF it_zycit027_aux-tpdesp = '002'.
IF v_index = v_lines.
it_lanca-lancamento = it_zycit027_aux-vldp - v_total.
CLEAR v_total.
ELSE.
IF /pws/zycit001-regime = '04' AND /pws/zycit001-tpdecl = 'DI'.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit443-codregtriicms .
* << Fim da inclusão
vl_imp = itab_zycit443-vlicms / v_tot_icms.
it_lanca-porcent = vl_imp.
it_lanca-lancamento = ( it_zycit027_aux-vldp *
itab_zycit443-vlicms / v_tot_icms ).
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit100-codregtriicms .
* << Fim da inclusão
vl_imp = itab_zycit100-vlicms / v_tot_icms.
it_lanca-porcent = vl_imp.
v_vldp_rat = ( it_zycit027_aux-vldp *
itab_zycit100-vlicms / v_tot_icms ).
it_lanca-lancamento = v_vldp_rat.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDIF.
v_total = v_total + it_lanca-lancamento.
ENDIF.
ELSEIF it_zycit027_aux-tpdesp = '003'.
IF v_index = v_lines.
it_lanca-lancamento = it_zycit027_aux-vldp - v_total.
CLEAR v_total.
ELSE.
IF /pws/zycit001-regime = '04' AND /pws/zycit001-tpdecl = 'DI'.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit443-codregtri .
* << Fim da inclusão
vl_imp = itab_zycit443-vlii / v_tot_ii.
it_lanca-porcent = vl_imp.
it_lanca-lancamento = ( it_zycit027_aux-vldp *
itab_zycit443-vlii / v_tot_ii ).
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit100-codregtri .
* << Fim da inclusão
vl_imp = itab_zycit100-vlii / v_tot_ii.
it_lanca-porcent = vl_imp.
v_vldp_rat = ( it_zycit027_aux-vldp *
itab_zycit100-vlii / v_tot_ii ).
it_lanca-lancamento = v_vldp_rat.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDIF.
v_total = v_total + it_lanca-lancamento.
...
...
it_lanca-porcent =
itab_zycit100-vl_sisco / it_zycit027_aux-vldp.
ENDIF.
ENDIF.
ELSEIF it_zycit027_aux-tpdesp = /pws/zycit000-cod_pis.
IF v_index = v_lines.
it_lanca-lancamento = it_zycit027_aux-vldp - v_total.
CLEAR v_total.
ELSE.
IF /pws/zycit001-regime = '04' AND /pws/zycit001-tpdecl = 'DI'.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit443-codregtripiscofi.
* << Fim da inclusão
vl_imp = itab_zycit443-vlpis / v_tot_pis.
it_lanca-porcent = vl_imp.
it_lanca-lancamento = ( it_zycit027_aux-vldp *
itab_zycit443-vlpis / v_tot_pis ).
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM VERIFICA_ITENS
IF NOT '356' CA itab_zycit100-codregtripiscofi.
* << Fim da inclusão
vl_imp = itab_zycit100-vlpis / v_tot_pis.
it_lanca-porcent = vl_imp.
v_vldp_rat = ( it_zycit027_aux-vldp *
itab_zycit100-vlpis / v_tot_pis ).
it_lanca-lancamento = v_vldp_rat.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
* << Fim da inclusão
ENDIF.
v_total = v_total + it_lanca-lancamento.
...