CE PLUS - Nota 003976

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CUSTO EFETIVO ERRO NA DIF. FRETEI QND VEM DA PRESTAÇÃO

DIFERENÇA DE UM CENTAVO NO CUSTO CAUSADO PELA CONVERSÃO DE MOEDA

ESTÁ RATEANDO O VALOR DO ICMS INCORRETAMENTE NA PRESTAÇÃO DE CONTAS.

NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA DI

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'.

...