CE PLUS - Nota 001986

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Despesas

Data/Hora da Publicação: 25/08/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 13:40:17

Descrição da Nota: ERRO NO CUSTO EFETIVO E FATURA DO TIPO P

Sintoma

No custo efetivo e no embarque estava com erro no valor planejado do FOB.

Fatura do tipo P estava contabilizando mesmo sem ter DI, e a taxa tbm estava incorreta quando havia

mais de uma moeda.

 

 

Solução

Atualização no embarque e no custo efetivo para que o sistema primeiro transforme a moeda

estrangeira em nacional e depois transforme na moeda do embarque.Na fatura realizado atualização

para selecionar corretamente o item da DI e buscar a tx da DI para conversão de faturas tipo P.

 

 

 

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01986 Data: 25/08/2006 Hora: 16:46:14

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

 

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

Nota Número              : 01986

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00128

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

ERRO NO CUSTO EFETIVO E FATURA DO TIPO P

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

Palavras Chave:

VALOR PLANEJADO EMBARQUE E CUSTO - CONTABILIZAÇÃO FATURA TIPO P

 

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

Objetos da nota:

REPS /PWS/MZYCI001F01

REPS /PWS/MZYCI001F02

REPS /PWS/MZYCI001I01

REPS /PWS/MZYCI003F01

REPS /PWS/ZYCIR035

REPS /PWS/ZYCIR006

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F01

...

    ENDIF.

  ENDIF.

  LOOP AT itab_zycit003.

    v_tabix = sy-tabix.

    IF v_waers_diferente = 'X'.

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

      PERFORM busca_taxa_dia USING itab_zycit003-waers

                             CHANGING v_taxa .

* << Fim da exclusão

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

            PERFORM busca_taxa_dia USING    itab_zycit003-waers

                                            itab_zycit003-netpr

                                   CHANGING v_taxa

                                            v_netpr.

* << Fim da inclusão

    ELSE.

      v_taxa = 1.

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

      v_netpr = itab_zycit003-netpr.

* << Fim da inclusão

    ENDIF.

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

    v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *

               v_taxa ).

* << Fim da exclusão

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

    v_netpr = v_netpr * itab_zycit003-qtd_iten.

* << Fim da inclusão

    PERFORM tratar_decimais USING   itab_zycit003-waers

                           CHANGING v_netpr.

    /pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.

    IF /pws/zycie001-netpr < 0.

      CLEAR /pws/zycie001-netpr.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F02

...

    tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).

ENDFORM.

FORM busca_taxa_dia USING    p_waers_real

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

                    CHANGING p_taxa .

* << Fim da exclusão

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

                             p_valor

                    CHANGING p_taxa

                             p_vlconv.

  DATA: v_montante TYPE bsak-wrbtr,

        v_kurst    TYPE /pws/zycit000-kurst.

  v_montante = p_valor.

  SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.

  IF /pws/zycit000-kurst IS INITIAL.

    v_kurst = 'M'.

  ELSE.

    v_kurst = /pws/zycit000-kurst.

  ENDIF.

* << Fim da inclusão

  SELECT SINGLE * FROM /pws/zycbt007 WHERE bukrs EQ /pws/zycie001-bukrs.

  IF sy-subrc NE 0.

    MESSAGE w120.

  ENDIF.

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

  IF p_waers_real NE /pws/zycie001-waers.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

       EXPORTING

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

            i_montante                 = 1

* << Fim da exclusão

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

              i_montante                 = v_montante

* << Fim da inclusão

            i_demoeda                  = p_waers_real

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

            i_paramoeda                = /pws/zycbt007-waersa

            i_ctmoeda                  = 'M'

* << Fim da exclusão

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

              i_paramoeda                = /pws/zycbt007-waersb

              i_ctmoeda                  = v_kurst

              i_dtbase                   = sy-datlo

         IMPORTING

              e_montante                 = v_montante

              e_txc                      = p_taxa

         EXCEPTIONS

              i_demoeda_nao_encontrado   = 1

              i_paramoeda_nao_encontrado = 2

              i_ctmoeda_nao_encontrado   = 3

              i_dtbase_nao_encontrada    = 4

              taxa_nao_encontrada        = 5

              fator_nao_encontrado       = 6

              i_montante_nao_encontrado  = 7

              OTHERS                     = 8.

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

             i_montante                 = v_montante

              i_demoeda                  = /pws/zycbt007-waersb

              i_paramoeda                = /pws/zycie001-waers

              i_ctmoeda                  = v_kurst

* << Fim da inclusão

            i_dtbase                   = sy-datlo

       IMPORTING

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

              e_montante                 = v_montante

* << Fim da inclusão

            e_txc                      = p_taxa

       EXCEPTIONS

            i_demoeda_nao_encontrado   = 1

            i_paramoeda_nao_encontrado = 2

            i_ctmoeda_nao_encontrado   = 3

            i_dtbase_nao_encontrada    = 4

            taxa_nao_encontrada        = 5

            fator_nao_encontrado       = 6

            i_montante_nao_encontrado  = 7

            OTHERS                     = 8.

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

  ENDIF.

  p_vlconv = v_montante.

* << Fim da inclusão

ENDFORM.

FORM altera_tela.

  IF v_tcode EQ '/PWS/ZYCI001_E'.

    LOOP AT SCREEN.

      IF screen-group1 NE 'GR2'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001I01

...

      ENDIF.

      IF /pws/zycie001-regime NE '14'  AND

         /pws/zycie001-regime NE '16'.

        LOOP AT itab_zycit003.

          IF v_waers_diferente = 'X'.

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

            PERFORM busca_taxa_dia USING itab_zycit003-waers

                                   CHANGING v_taxa .

* << Fim da exclusão

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

            PERFORM busca_taxa_dia USING    itab_zycit003-waers

                                            itab_zycit003-netpr

                                   CHANGING v_taxa

                                            v_netpr.

* << Fim da inclusão

          ELSE.

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

            v_netpr = itab_zycit003-netpr.

* << Fim da inclusão

            v_taxa = 1.

          ENDIF.

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

          CLEAR v_netpr.

          v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *

                     v_taxa ).

* << Fim da exclusão

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

          v_netpr = v_netpr * itab_zycit003-qtd_iten.

* << Fim da inclusão

          PERFORM tratar_decimais USING   itab_zycit003-waers

                                 CHANGING v_netpr.

          /pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.

        ENDLOOP.

      ENDIF.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

...

    CLEAR itab_zycbe033-kursf.

    itab_zycbe033-dmbtr =    /pws/zycie006-vlfre_clp  .

  ELSE.

    IF /pws/zycie006-frpagto = 'P'.

      IF     /pws/zycie006-tpfatura = '01' .

* >> Início da exclusão: FORM FILL_DATE_F-43_F-02

        v_ukurs  = /pws/zycit085-ukursfob.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE_F-43_F-02

        read table itab_zycit003 index 1.

        read table itab_zycit100 with key ebeln = itab_zycit003-ebeln

                                          ebelp = itab_zycit003-ebelp.

        v_ukurs  = itab_zycit100-DTTAXBEM.

* << Fim da inclusão

      ELSEIF /pws/zycie006-tpfatura = '02'.

        v_ukurs  = /pws/zycit085-ukursfre.

      ELSEIF /pws/zycie006-tpfatura = '03'.

        v_ukurs  = /pws/zycit085-ukursseg.

      ENDIF.

...

 

...

...

  ENDIF.

  IF ( /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11' )

          AND /pws/zycit085 IS INITIAL.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT SINGLE * FROM /pws/zycit100

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

           WHERE ebeln EQ itab_zycit100-ebeln

             AND ebelp EQ itab_zycit100-ebelp.

* << Fim da exclusão

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

           WHERE ebeln EQ itab_zycit003-ebeln

             AND ebelp EQ itab_zycit003-ebelp.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      SELECT SINGLE * FROM /pws/zycit085

           WHERE nrseqdi EQ /pws/zycit100-nrseqdi.

      IF sy-subrc EQ 0.

        IF NOT /pws/zycit085-dtreg IS INITIAL AND

...

 

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

Modificações efetuadas em REPS /PWS/ZYCIR035

...

    itab_zycit036_plan-bukrs   = itab_zycit001-bukrs.

    itab_zycit036_plan-werks   = itab_zycit003-werks.

    itab_zycit036_plan-waers   = itab_zycit001-waers.

    IF itab_zycit003-waers NE itab_zycit001-waers AND

       NOT itab_zycit030_aux-valor IS INITIAL.

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

      v_valor = itab_zycit030_aux-valor.

* << Fim da exclusão

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

      v_valor = itab_zycit003-NETPR.

* << Fim da inclusão

      PERFORM converter_moeda(/pws/sapmzyci010) USING

                              v_valor

                              itab_zycit003-waers

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

                              /pws/zycbt007-waersb

                CHANGING v_valor.

      if /pws/zycbt007-waersb ne itab_zycit001-waers.

        PERFORM converter_moeda(/pws/sapmzyci010)

                  USING    v_valor

                           /pws/zycbt007-waersb

* << Fim da inclusão

                              itab_zycit001-waers

                CHANGING v_valor.

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

      endif.

* << Fim da inclusão

      IF v_valor NE 0.

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

        itab_zycit030_aux-valor  = v_valor.

* << Fim da exclusão

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

        itab_zycit030_aux-valor = v_valor * itab_zycit003-qtd_iten.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    itab_zycit036_plan-ebeln   = itab_zycit030_aux-ebeln.

    itab_zycit036_plan-ebelp   = itab_zycit030_aux-ebelp.

    itab_zycit036_plan-codmod  = itab_zycit030_aux-codmod.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR006

 

...

                       AND   gjahr  = v_dtincl+0(4).

          ENDIF.

        ENDIF.

        IF itab_zycit036-vlreal GT 0         AND

          NOT itab_zycit036-waers_real IS INITIAL.

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

          IF itab_zycit036-origem = 'FAT'.

            read table itab_zycit006

                   with key nrseq_pgfat = itab_zycit263-nrseq_pgfat.

            v_valor = itab_zycit006-vltotal.

          else.

* << Fim da inclusão

          v_valor = itab_zycit036-vlreal.

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

          endif.

* << Fim da inclusão

          IF t001-land1 EQ 'CL'.

...