Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 19/06/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:24:15
Descrição da Nota: AJUSTE RATEIO ICMS,EXIBIÇÃO DETALHE FRETE E DIFERENÇA DE CENTAVOS
Sintoma
Não está rateando o valor de ICMS da Prestação de conta, ao dar duplo clique na despesa de
FRETEI não é exibido os valores individuais dos itens e está apresentando uma diferença de 2
centavos que não existe.
Solução
Ajustar função de rateio para tratar corretamente o regime tributario;
Considerar os registros de FRETEI com origem no pedido quando não houver outros no detalhe da
despesa;
Ajustado cálculo da diferença no custo para desconsiderar diferenças de 1 centavo proporcional a
moeda de origem da despesa.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03976 Data: 19/06/2007 Hora: 15:37:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03976
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
02513 - 00001 - 6.0 - 00025 - CUSTO EFETIVO ERRO NA DIF. FRETEI QND VEM DA PRESTAÇÃO
03302 - 00004 - 7.0 - 00001 - NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA D
03526 - 00002 - 7.0 - 00001 - DIFERENÇA DE UM CENTAVO NO CUSTO CAUSADO PELA CONVERSÃO DE MOEDA
03903 - 00003 - 7.0 - 00001 - ESTÁ RATEANDO O VALOR DO ICMS INCORRETAMENTE NA PRESTAÇÃO DE CONT
----------------------------------------------------------------------------------------------------
AJUSTE RATEIO ICMS,EXIBIÇÃO DETALHE FRETE E DIFERENÇA DE CENTAVOS
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO - ICMS - DETALHE - FRETE - INTERNACIONAL - DIFERENÇA - CENTAVOS
/PWS/SAPMZYCI010 - /PWS/ZYCIR006
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI010F03
REPS /PWS/MZYCI010I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
/pws/zycit019-codigo EQ 'COFINS' OR
/pws/zycit019-codigo EQ 'PIS' OR
( /pws/zycit000-cod_sisc EQ itab_despesa-tpdesp AND
NOT /pws/zycit000-flag_txsisc IS INITIAL ) ) AND
NOT itab_zycit100a[] IS INITIAL.
IF /pws/zycit019-codigo = 'ICMS' AND
NOT v_tot_icms IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF sy-subrc EQ 0 and not '156' ca
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF sy-subrc EQ 0 and not '356' ca
* << Fim da inclusão
itab_zycit100a-codregtriicms .
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlicms /
v_tot_icms ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'IPI' AND
NOT v_tot_ipi IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F03
...
ENDIF.
MODIFY itab_zycit036_aux.
ENDLOOP.
ENDIF.
ENDIF.
MOVE itab_zycit036_aux[] TO itab_zycit036_ori2[].
ENDFORM.
FORM move_plan_mov_aux.
DATA: v_vlreal LIKE /pws/zycit036-vlmov,
v_valor LIKE /pws/zycit036-vlmov.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
DATA: v_arred LIKE /pws/zycit036-vlmov,
v_arre2 LIKE /pws/zycit036-vlmov.
v_arre2 = v_arred = '00.01'.
* << Fim da inclusão
CLEAR: v_taxa, s_msg1,
v_valor.
SELECT SINGLE land1
FROM t001
INTO t001-land1
WHERE bukrs EQ /pws/zycie001-bukrs.
SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007
WHERE bukrs = /pws/zycie001-bukrs.
IF itab_zycit029[] IS INITIAL.
SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029
...
...
IF itab_zycit036_aux2-origem NE 'EST'.
CLEAR: v_vlreal.
v_vlreal = itab_zycit036_aux2-vlreal.
CASE itab_zycit036_aux2-origem.
WHEN 'DI' OR 'NF'.
PERFORM retorna_decimais USING itab_zycit036_aux2-waers_real
CHANGING v_vlreal.
v_valor = v_vlreal.
IF itab_zycit036_aux2-codigo EQ 'FRETEI'.
v_vlreal = v_vlreal * /pws/zycit085-ukursfre.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursfre.
* << Fim da inclusão
ELSEIF itab_zycit036_aux2-codigo EQ 'SEGURO'.
v_vlreal = v_vlreal * /pws/zycit085-ukursseg.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursseg.
* << Fim da inclusão
ELSE.
PERFORM converter_moeda USING
v_vlreal
itab_zycit036_aux2-waers_real
wa_zycbt007-waersb
CHANGING v_vlreal.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
PERFORM converter_moeda USING
v_arre2
itab_zycit036_aux2-waers_real
wa_zycbt007-waersb
CHANGING v_arred.
* << Fim da inclusão
ENDIF.
WHEN 'FAT'.
READ TABLE it_zycit006_aux2 WITH KEY
nrseq = itab_zycit036_aux2-nrseqori.
IF sy-subrc EQ 0 AND it_zycit006_aux2-frpagto EQ 'P'.
v_vlreal = v_vlreal * /pws/zycit085-ukursfre .
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursfre.
* << Fim da inclusão
ELSE.
READ TABLE it_bkpf WITH KEY
bukrs = it_zycit006_aux2-bukrs
belnr = it_zycit006_aux2-belnr_p
gjahr = it_zycit006_aux2-dt_belnrp(04).
v_vlreal = v_vlreal * it_bkpf-kursf.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * it_bkpf-kursf.
* << Fim da inclusão
ENDIF.
WHEN 'PC'.
ENDCASE.
itab_zycit036_aux2-vldif = v_vlreal - itab_zycit036_aux2-vlmov.
itab_zycit036_aux2-waers_dif = wa_zycbt007-waersb.
MODIFY itab_zycit036_aux2.
ENDIF.
ENDIF.
ELSE.
IF itab_zycit036_aux2-origem NE 'EST'.
CLEAR: v_vlreal.
v_vlreal = itab_zycit036_aux2-vlreal.
CASE itab_zycit036_aux2-origem.
WHEN 'DI' OR 'NF'.
PERFORM retorna_decimais USING itab_zycit036_aux2-waers_real
CHANGING v_vlreal.
IF itab_zycit036_aux2-codigo EQ 'FRETEI'.
v_vlreal = v_vlreal * /pws/zycit085-ukursfre.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursfre.
* << Fim da inclusão
ELSEIF itab_zycit036_aux2-codigo EQ 'SEGURO'.
v_vlreal = v_vlreal * /pws/zycit085-ukursseg.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursseg.
* << Fim da inclusão
ELSE.
PERFORM converter_moeda USING
v_vlreal
itab_zycit036_aux2-waers_real
wa_zycbt007-waersb
CHANGING v_vlreal.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
PERFORM converter_moeda USING
v_arre2
itab_zycit036_aux2-waers_real
wa_zycbt007-waersb
CHANGING v_arred.
* << Fim da inclusão
ENDIF.
WHEN 'FAT'.
READ TABLE it_zycit006_aux2 WITH KEY
nrseq = itab_zycit036_aux2-nrseqori.
IF sy-subrc EQ 0 AND it_zycit006_aux2-frpagto EQ 'P'.
v_vlreal = v_vlreal * /pws/zycit085-ukursfre .
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * /pws/zycit085-ukursfre.
* << Fim da inclusão
ELSE.
READ TABLE it_bkpf WITH KEY
bukrs = it_zycit006_aux2-bukrs
belnr = it_zycit006_aux2-belnr_p
gjahr = it_zycit006_aux2-dt_belnrp(04).
v_vlreal = v_vlreal * it_bkpf-kursf.
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
v_arred = v_arre2 * it_bkpf-kursf.
* << Fim da inclusão
ENDIF.
WHEN 'PC'.
ENDCASE.
itab_zycit036_aux2-vldif = v_vlreal - itab_zycit036_aux2-vlmov.
v_vlreal = abs( itab_zycit036_aux2-vldif ).
* >> Início da exclusão: FORM MOVE_PLAN_MOV_AUX
IF v_vlreal EQ '0.01'.
* << Fim da exclusão
* >> Início da inclusão: FORM MOVE_PLAN_MOV_AUX
IF v_vlreal <= v_arred.
* << Fim da inclusão
CLEAR itab_zycit036_aux2-vldif.
ENDIF.
itab_zycit036_aux2-waers_dif = wa_zycbt007-waersb.
MODIFY itab_zycit036_aux2.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
FORM trata_origem
TABLES
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010I01
...
ELSEIF v_campo EQ '/PWS/ZYCIE036A-CODIGO'.
READ TABLE itab_zycit036a WITH KEY codigo = v_valor.
CLEAR: itab_zycit036. FREE: itab_zycit036.
IF itab_zycit036a-codigo EQ 'FRETEI'.
LOOP AT itab_zycit036_aux2 WHERE vlreal NE ''
AND codigo EQ 'FRETEI'.
v_treal = v_treal + itab_zycit036_aux2-vlreal.
MOVE-CORRESPONDING itab_zycit036_aux2 TO itab_zycit036.
APPEND itab_zycit036.
ENDLOOP.
* >> Início da inclusão: MODULE USER_COMMAND_0100
IF itab_zycit036[] IS INITIAL.
LOOP AT itab_zycit036_aux2 WHERE codigo EQ 'FRETEI'
AND origem EQ 'PED'.
v_treal = v_treal + itab_zycit036_aux2-vlreal.
MOVE-CORRESPONDING itab_zycit036_aux2 TO itab_zycit036.
APPEND itab_zycit036.
ENDLOOP.
ENDIF.
* << Fim da inclusão
ELSE.
SELECT * FROM /pws/zycit036 INTO itab_zycit036
WHERE nrseq = itab_zycit036a-nrseq
AND codigo = itab_zycit036a-codigo.
CLEAR: itab_zycit140.
READ TABLE itab_zycit140 WITH KEY
codigo = itab_zycit036-codigo
origem = itab_zycit036-origem.
IF sy-subrc EQ 0.
IF itab_zycit140-custo EQ 'X'.
...