CE PLUS - Nota 005292

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Registro de Exportação (RE)

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

Data/Hora Última Alteração: 22/02/2011 10:05:14

Descrição da Nota: SUBSTITUIÇÃO DE FUNÇÃO PARA CÁLCULO DE MONTANTE

Sintoma

Substituição da função para cálculo de montante nas rotinas de agrupamento de RE.

 

 

Solução

Substituição da função para cálculo de montante nas rotinas de agrupamento de RE.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CORREÇÃO CONVERSÃO DE MONTANTE NO AGRUPAMENTO DE OV

Informações Complementares

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

Nota Número 05292 Data: 22/11/2007 Hora: 17:51:49

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

 

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

Nota Número              : 05292

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00022

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

Referência às notas relacionadas:

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

 

05105  - 00001 - 7.0    - 00003  - CORREÇÃO CONVERSÃO DE MONTANTE NO AGRUPAMENTO DE OV

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

SUBSTITUIÇÃO DE FUNÇÃO PARA CÁLCULO DE MONTANTE

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

Palavras Chave:

MONTANTE, CONVERSÃO, FUNÇÃO, TAXA

 

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

Objetos da nota:

FUNC /PWS/ZYCE_AGRUPA_OV_RE

FUNC /PWS/ZYCE_AGRUPA_PERMISO

FUNC /PWS/ZYCE_AGRUPA_RE_ITEM

REPS /PWS/LZYCEGF6F01

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_OV_RE

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_PERMISO

 

FUNCTION /pws/zyce_agrupa_permiso.

  DATA: v_index       LIKE sy-tabix,

        v_codnrseq    TYPE i,

        v_vrkme       LIKE /pws/zycet118-vrkme,

        v_ncm         LIKE /pws/zycet118-ncm,

        v_ownpr       LIKE mbew-ownpr,

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

        v_taxa        LIKE /pws/zycee033-kurrf.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

        v_taxa        LIKE /pws/zycee033-kurrf,

        v_montante    LIKE /pws/zycet002-vlme.

* << Fim da inclusão

  DATA : BEGIN OF itab_zycet301_aux1 OCCURS 10.

          INCLUDE STRUCTURE /pws/zycet301.

  DATA :  ownpr      LIKE mbew-ownpr,

          preco      LIKE /pws/zycet118-netpr,

          charg      LIKE lips-charg,

          preuni     LIKE /pws/zycet118-netpr,

          index      LIKE sy-tabix,

          preunifob  LIKE /pws/zycet118-netpr.

  DATA : END OF itab_zycet301_aux1.

  DATA : BEGIN OF itab_codigo OCCURS 0,

...

 

...

          vbeln_va LIKE vbap-vbeln,

          posnr    LIKE vbap-posnr,

          netpr    LIKE vbap-netpr,

         END OF itab_vbap,

         BEGIN OF itab_docfat OCCURS 10,

          vbeln_vf LIKE /pws/zycet118-vbeln_vf,

         END OF itab_docfat,

         BEGIN OF itab_vbrk OCCURS 10,

          vbeln_vf LIKE vbrk-vbeln,

          fkdat    LIKE vbrk-fkdat,

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

          bukrs    like vbrk-bukrs,

* << Fim da inclusão

         END OF itab_vbrk.

  READ TABLE itab_zycet300 WITH KEY codint = '000001'

                                    mark   = 'X'.

  IF sy-subrc = 0.

    MOVE: itab_zycet300-codint TO itab_codigo-codigo.

  ENDIF.

  APPEND itab_codigo.

  SELECT  matnr bwkey ownpr

   FROM mbew

   INTO TABLE itab_mbew

...

 

...

  LOOP AT itab_zycet301_aux1.

    IF NOT itab_zycet301_aux1-vbeln_vf IS INITIAL.

      MOVE itab_zycet301_aux1-vbeln_vf TO

           itab_docfat-vbeln_vf.

      APPEND itab_docfat.

    ENDIF.

  ENDLOOP.

  DELETE ADJACENT DUPLICATES FROM itab_docfat

                              COMPARING vbeln_vf.

  IF NOT itab_docfat[] IS INITIAL.

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

    SELECT vbeln fkdat

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

    SELECT vbeln fkdat bukrs

* << Fim da inclusão

     FROM vbrk

     INTO TABLE  itab_vbrk

     FOR ALL ENTRIES IN itab_docfat

      WHERE vbeln EQ itab_docfat-vbeln_vf.

  ENDIF.

  LOOP AT itab_zycet301_aux1.

    v_index = sy-tabix.

  READ TABLE itab_vbap WITH KEY vbeln_va  = itab_zycet301_aux1-vbeln_va

                                       posnr = itab_zycet301_aux1-aupos.

    IF sy-subrc = 0.

      MOVE : itab_vbap-netpr TO itab_zycet301_aux1-preco.

      itab_zycet301_aux1-preunifob = itab_zycet301_aux1-vlfob /

                               itab_zycet301_aux1-fkimg.

      READ TABLE itab_vbrk WITH KEY vbeln_vf =

                                     itab_zycet301_aux1-vbeln_vf.

      IF sy-subrc = 0.

        IF itab_zycet301_aux1-waers NE 'USD'.

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

          CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'

               EXPORTING

                    i_montante          = 1

                    i_demoeda           = itab_zycet301_aux1-waers

                    i_paramoeda         = 'USD'

                    i_ctmoeda           = 'G'

                    i_dtbase            = itab_vbrk-fkdat

               IMPORTING

                    e_txc               = v_taxa

               EXCEPTIONS

                    taxa_nao_encontrada = 5.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_PERMISO

      PERFORM busca_moeda_americana

             USING

                  itab_vbrk-bukrs

             CHANGING

                  v_waersa.

      PERFORM busca_taxa_cambio_valor_dse

            USING

                  itab_vbrk-bukrs

            CHANGING

                 v_kurst_dse.

          PERFORM busca_taxa USING '1'

                                   itab_zycet118_aux1-waers

                                   v_waersa

                                   v_kurst_dse

                                   v_vbrk-fkdat

                          CHANGING v_montante

                                   v_taxa.

* << Fim da inclusão

          IF sy-subrc = 0.

            itab_zycet301_aux1-preuni =  itab_zycet301_aux1-preuni

                                          * v_taxa.

          ENDIF.

        ENDIF.

      ENDIF.

      MODIFY itab_zycet301_aux1 INDEX v_index.

    ENDIF.

  ENDLOOP.

  READ TABLE itab_codigo INDEX 1.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_AGRUPA_RE_ITEM

 

FUNCTION /pws/zyce_agrupa_re_item.

  DATA: v_index       LIKE sy-tabix,

        v_int(1)      TYPE c,

        v_charg       LIKE lips-charg,

        v_taxa        LIKE /pws/zycee033-kurrf,

        v_codnrseq    TYPE i,

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

        v_anexos      TYPE i.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

        v_anexos      TYPE i,

        v_montante    LIKE /pws/zycet002-vlme.

* << Fim da inclusão

  DATA: BEGIN OF itab_zycet118 OCCURS 10.

          INCLUDE STRUCTURE /pws/zycet118.

  DATA:  ownpr       LIKE mbew-ownpr,

          preco      LIKE /pws/zycet118-netpr,

          charg      LIKE lips-charg,

          preuni     LIKE /pws/zycet118-netpr,

          index      LIKE sy-tabix,

          preunifob  LIKE /pws/zycet118-netpr.

  DATA: END OF itab_zycet118.

  DATA: BEGIN OF itab_lips OCCURS 10.

          INCLUDE STRUCTURE lips.

  DATA: END OF itab_lips.

  DATA: BEGIN OF itab_vbap OCCURS 10,

          vbeln_va LIKE vbap-vbeln,

          posnr    LIKE vbap-posnr,

          netpr    LIKE vbap-netpr,

        END OF itab_vbap.

  DATA: BEGIN OF itab_vbrk OCCURS 10,

          vbeln_vf LIKE vbrk-vbeln,

          fkdat    LIKE vbrk-fkdat,

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

          bukrs    like vbrk-bukrs,

* << Fim da inclusão

        END OF itab_vbrk.

  DATA : BEGIN OF itab_seq OCCURS 10,

          codnrseq LIKE /pws/zycet118-codnrseq,

         END OF itab_seq.

  MOVE-CORRESPONDING itab_zycee118_i TO itab_zycet118.

  APPEND itab_zycet118.

  SELECT SINGLE  ownpr

  FROM mbew

  INTO itab_zycet118-ownpr

   WHERE matnr EQ itab_zycet118-matnr

     AND bwkey EQ werks.

  SELECT vbeln posnr netpr

  FROM vbap

  INTO TABLE itab_vbap

   WHERE vbeln EQ itab_zycet118-vbeln_va

   AND   posnr EQ itab_zycet118-aupos.

  READ TABLE itab_zycet118 WITH KEY vbeln_vf = space

                                    posnr    = space.

  IF sy-subrc = 4.

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

    SELECT vbeln fkdat FROM vbrk INTO TABLE itab_vbrk

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

    SELECT vbeln fkdat  bukrs FROM vbrk INTO TABLE itab_vbrk

* << Fim da inclusão

     FOR ALL ENTRIES IN itab_zycet118

     WHERE vbeln = itab_zycet118-vbeln_vf.

  ENDIF.

  LOOP AT itab_zycet118.

    v_index = sy-tabix.

    READ TABLE itab_vbap WITH KEY vbeln_va  = itab_zycet118-vbeln_va

                                      posnr = itab_zycet118-aupos.

    IF sy-subrc = 0.

      MOVE : itab_vbap-netpr TO itab_zycet118-preco.

      itab_zycet118-preunifob = itab_zycet118-vfob /

                               itab_zycet118-fkimg.

      itab_zycet118-preuni = itab_zycet118-netpr /

                                  itab_zycet118-fkimg.

      READ TABLE itab_vbrk WITH KEY vbeln_vf = itab_zycet118-vbeln_vf.

      IF sy-subrc = 0.

        IF itab_zycet118-waers NE 'USD'.

* >> Início da exclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

          CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'

               EXPORTING

                    i_montante          = 1

                    i_demoeda           = itab_zycet118-waers

                    i_paramoeda         = 'USD'

                    i_ctmoeda           = 'G'

                    i_dtbase            = itab_vbrk-fkdat

               IMPORTING

                    e_txc               = v_taxa

               EXCEPTIONS

                    taxa_nao_encontrada = 5.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCE_AGRUPA_RE_ITEM

      PERFORM busca_moeda_americana

             USING

                  itab_vbrk-bukrs

             CHANGING

                  v_waersa.

      PERFORM busca_taxa_cambio_valor_dse

            USING

                  itab_vbrk-bukrs

            CHANGING

                 v_kurst_dse.

           PERFORM busca_taxa USING '1'

                                   itab_zycet118_aux1-waers

                                   v_waersa

                                   v_kurst_dse

                                   v_vbrk-fkdat

                          CHANGING v_montante

                                   v_taxa.

* << Fim da inclusão

          IF sy-subrc = 0.

            itab_zycet118-preuni = itab_zycet118-preuni *

                                    v_taxa.

          ENDIF.

        ENDIF.

      ENDIF.

      MODIFY itab_zycet118 INDEX v_index.

    ENDIF.

  ENDLOOP.

    SORT itab_zycet092 BY codnrseq.

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYCEGF6F01

 

...

FORM busca_taxa USING p_montante

                      p_demoeda

                      p_paramoeda

                      p_ctmoeda

                      p_dtbase

             CHANGING p_montante2

                      p_taxa.

  DATA: v_montante  LIKE /pws/zycet002-vlme,

        v_montante2 LIKE /pws/zycet002-vlme.

  MOVE p_montante TO v_montante.

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

  CALL FUNCTION '/PWS/ZYCE_MONTANTE_CONVERTE'

* << Fim da exclusão

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

CALL FUNCTION '/PWS/ZYGL_MONTANTE_CONVERTE'

* << Fim da inclusão

       EXPORTING

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

            i_montante          = v_montante

            i_demoeda           = p_demoeda

            i_paramoeda         = p_paramoeda

            i_ctmoeda           = p_ctmoeda

            i_dtbase            = p_dtbase

* << Fim da exclusão

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

    i_montante                         = v_montante

    i_demoeda                          = p_demoeda

    i_paramoeda                        = p_paramoeda

    i_ctmoeda                          = p_ctmoeda

    i_dtbase                           = p_dtbase

* << Fim da inclusão

       IMPORTING

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

            e_montante          = v_montante2

            e_txc               = p_taxa

* << Fim da exclusão

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

    e_montante                         = v_montante2

    E_TXC                              = p_taxa

* << Fim da inclusão

       EXCEPTIONS

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

            taxa_nao_encontrada = 5.

* << Fim da exclusão

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

    TAXA_NAO_ENCONTRADA                = 5 .

* << Fim da inclusão

  IF sy-subrc EQ 0.

    MOVE v_montante2 TO p_montante2.

  ENDIF.

ENDFORM.

FORM preenche_092 USING    it_zycet118 LIKE itab_zycet118_aux

                  CHANGING it_zycet092 LIKE itab_auxiliar.

  MOVE: it_zycet118-nrseqre  TO it_zycet092-nrseqre,

        it_zycet118-ncm      TO it_zycet092-ncm,

        it_zycet118-naladi   TO it_zycet092-naladi,

        it_zycet118-vrkme    TO it_zycet092-vrkme,

...