CE PLUS - Nota 012684

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 22/11/2012 00:00:00

Data/Hora Última Alteração: 04/04/2013 13:32:24

Descrição da Nota: VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)

Sintoma

O valor da mercadoria em USD está incorreto no detalhe do item.

A despesa "Ajuste" apesar de parametrizada não está sendo somada a base dos impostos.

O programa exibe mensagem informando ausencia de taxa de conversão mesmo possuindo a taxa de

conversão e estando preenchida na ANA.

 

 

Solução

Atualizado calculo do valor em USD para exibição no detalhe do item, corrido tratamento da despesa

"Ajuste" e ajustado programa para não chamar a rotina de conversão de moedas sem informar uma moeda.

 

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 12684 Data: 22/11/2012 Hora: 15:05:25

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 12684

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00002

Agrupamento              : 00138

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

12607  - 00001 - 9.0    - 00002  - AJUSTE NO CALCULO DAS BASES DOS IMPOSTOS

----------------------------------------------------------------------------------------------------

VALOR DA MERCADORIA INCORRETO NO DETALHE DO ITEM (ANA)

----------------------------------------------------------------------------------------------------

Palavras Chave:

ANA - VALOR - MERCADORIA - DETALHE - ITEM - AJUSTE - BASE - IMPOSTO

/PWS/SAPMZYCI059 -

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI059I01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059F01

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI059I01

 

...

      ENDIF.

      IF itab_zycit404_aux-codigo EQ 'FOB'.

        IF NOT v_usd IS INITIAL.

          v_valtot = v_valtot + itab_it-vlfob .

        ENDIF.

      ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC' OR

             itab_zycit404_aux-codigo EQ 'FRETEI'.

        v_valtot = v_valtot + itab_it-vlfre.

      ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.

        v_valtot = v_valtot + itab_it-vlseg.

* >> Início da exclusão: MODULE REAPURA_IMP

      ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.

* << Fim da exclusão

* >> Início da inclusão: MODULE REAPURA_IMP

      ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'

            AND t001-land1 NE wa_zycit477-land.

* << Fim da inclusão

        IF itab_zycit404_aux-somatoria NE 'X'.

          ADD 1 TO v_ate.

          CONTINUE.

        ENDIF.

        v_valtot = v_valtot + itab_it-ajuste.

      ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

             NOT itab_zycit049-vldp IS INITIAL AND

             itab_zycit404_aux-nivelde eq space AND

             NOT itab_zycit019-codigo = 'SISC'.

        IF itab_zycit404_aux-somatoria NE 'X'.

          ADD 1 TO v_ate.

          CONTINUE.

        ENDIF.

        READ TABLE itab_zycit036 WITH KEY

                          ebeln  = /pws/zycie100a-ebeln

                          ebelp  = /pws/zycie100a-ebelp

                          codigo = itab_zycit404_aux-codigo.

* >> Início da inclusão: MODULE REAPURA_IMP

        IF sy-subrc NE 0 OR itab_zycit036-vlreal IS INITIAL.

          v_ate = v_ate +  1.

          CONTINUE.

        ENDIF.

* << Fim da inclusão

        PERFORM trata_decimais USING itab_zycit036-waers_real

                            CHANGING itab_zycit036-vlreal.

        IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.

          IF v_mudou NE 'X'.

            v_mudou = 'X'.

            v_alt = 'X'.

          ENDIF.

          PERFORM taxa_converte USING  itab_zycit036-waers_real

                                         /pws/zycie085-dttax

                                CHANGING s_tax.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

FORM valor_cfr USING p_tipo.

  CLEAR: v_tcfr.

  IF NOT v_usd IS INITIAL.

* >> Início da exclusão: FORM VALOR_CFR

    s_fbvr_s_d = /pws/zycie085-vlfob.

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_CFR

    s_fbvr_s_d = /pws/zycie085-vlfob *

                 /pws/zycie085-ukursfob / v_usd.

* << Fim da inclusão

  ENDIF.

  IF s_inco1_ci EQ 'CIF'.

    IF NOT v_usd IS INITIAL.

* >> Início da exclusão: FORM VALOR_CFR

      v_tcfr =  /pws/zycie085-vlfob +

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_CFR

      v_tcfr =  s_fbvr_s_d +

* << Fim da inclusão

        ( v_bltofat * /pws/zycie085-ukursfre / v_usd ) +

        ( v_sgtofat * /pws/zycie085-ukursseg / v_usd ) .

    ENDIF.

    v_cfr = t_vmle .

    v_cfr = t_vmle .

  ELSEIF s_inco1_ci EQ 'C&F'.

    IF NOT v_usd IS INITIAL.

* >> Início da exclusão: FORM VALOR_CFR

      v_tcfr =  /pws/zycie085-vlfob +

* << Fim da exclusão

* >> Início da inclusão: FORM VALOR_CFR

      v_tcfr =  s_fbvr_s_d +

* << Fim da inclusão

        ( v_bltofat * /pws/zycie085-ukursfre / v_usd ).

    ENDIF.

    v_cfr = t_vmle .

  ELSE.

    v_tcfr = s_fbvr_s_d   .

    v_cfr = t_ivmle .

  ENDIF.

ENDFORM.

...

 

...

            IF itab_zycit404_aux-codigo EQ 'FOB'.

              IF NOT v_usd IS INITIAL.

                v_valtot = v_valtot +

                                                 itab_it-vlfob .

              ENDIF.

            ELSEIF itab_zycit404_aux-codigo EQ 'FRETEC' OR

                   itab_zycit404_aux-codigo EQ 'FRETEI'.

              v_valtot = v_valtot + itab_it-vlfre.

            ELSEIF itab_zycit404_aux-codigo EQ 'SEGURO'.

              v_valtot = v_valtot + itab_it-vlseg.

* >> Início da exclusão: FORM CARREGA_TRIBUTOS

            ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'.

* << Fim da exclusão

* >> Início da inclusão: FORM CARREGA_TRIBUTOS

            ELSEIF itab_zycit404_aux-codigo EQ 'AJUSTE'

               AND t001-land1 NE wa_zycit477-land.

* << Fim da inclusão

              IF itab_zycit404_aux-somatoria NE 'X'.

                CONTINUE.

              ENDIF.

              v_valtot = v_valtot + itab_it-ajuste.

            ELSEIF itab_zycit404_aux-codigo EQ itab_zycit019-codigo AND

                   NOT itab_zycit049-vldp IS INITIAL AND

                   itab_zycit404_aux-nivelde eq space AND

                   NOT itab_zycit019-codigo = 'SISC'.

              IF itab_zycit404_aux-somatoria NE 'X'.

                CONTINUE.

              ENDIF.

              READ TABLE itab_zycit036 WITH KEY

                                ebeln  = itab_it-ebeln

                                ebelp  = itab_it-ebelp

                                codigo = itab_zycit404_aux-codigo.

* >> Início da inclusão: FORM CARREGA_TRIBUTOS

              IF sy-subrc NE 0 OR itab_zycit036-vlreal IS INITIAL.

                v_ate = v_ate +  1.

                CONTINUE.

              ENDIF.

* << Fim da inclusão

              PERFORM trata_decimais USING itab_zycit036-waers_real

                                  CHANGING itab_zycit036-vlreal.

              IF itab_zycit036-waers_real NE /pws/zycbt007-waersa.

                IF v_mudou NE 'X'.

                  v_mudou = 'X'.

                  v_alt = 'X'.

                ENDIF.

                PERFORM taxa_converte USING  itab_zycit036-waers_real

                                               /pws/zycie085-dttax

                                      CHANGING s_tax.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

    APPEND t_zycit049 .

    CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

         EXPORTING

              nrseq         = itab_it-nrseq

              /pws/zycie085 = /pws/zycie085

         TABLES

              t_zycit049    = t_zycit049

              t_itens       = t_itens.

    t_ivseg = itab_it-vlseg = t_itens-vldp.

  ENDIF.

* >> Início da exclusão: FORM LOAD_ITAX

  t_ivmle = itab_it-vlfob.

* << Fim da exclusão

* >> Início da inclusão: FORM LOAD_ITAX

  IF NOT v_usd IS INITIAL.

    t_ivmle = itab_it-vlfob  * itab_it-dttaxbem / v_usd.

  ENDIF.

* << Fim da inclusão

  CASE s_inco1_ci.

    WHEN 'FOB'.

      t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.

    WHEN 'C&F'.

      IF p_tipo EQ 'A'.

        t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre.

        t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.

        t_ivadu = t_ivmle + wa_it-vlseg + t_ivdesp.

      ELSE.

        t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.

...

 

...

      IF itab_it-vlfre > itab_it-vlfob.

        v_msg = 'S'.

      ENDIF.

    ENDLOOP.

    READ TABLE itab_it WITH KEY mark = 'X'.

    v_ip = sy-tabix.

    IF v_msg = 'S'.

      MESSAGE i015 WITH text-219.

    ENDIF.

  ENDIF.

* >> Início da inclusão: FORM CALL_ITEM

  v_visualiza = 'N'.

  PERFORM visualiza_rateio.

* << Fim da inclusão

  LOOP AT itab_zycit403.

    CHECK itab_zycit403-ebeln = itab_it-ebeln AND

          itab_zycit403-ebelp = itab_it-ebelp.

    CLEAR itab_zycit404.

    READ TABLE itab_zycit404 WITH KEY

                          codigo = itab_zycit403-codigo.

    CHECK itab_zycit404-exibir EQ 'X'.

    MOVE itab_zycit403 TO itab_zycit403_i.

    APPEND itab_zycit403_i.

  ENDLOOP.

...