CE PLUS - Nota 003906

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: LI

Data/Hora da Publicação: 13/06/2007 00:00:00

Data/Hora Última Alteração: 03/09/2012 17:03:40

Descrição da Nota: CÁLCULO INCORRETO DO VALOR FOB DA MERCADORIA NO LOCAL DE EMBARQUE

Sintoma

Os campos "valor total" e "val total local embarque" da LI estão com os valores trocados.

 

 

Solução

ajustar composição de valores

 

Versões Tratadas

7.0

Informações Complementares

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

Nota Número 03906 Data: 13/06/2007 Hora: 11:56:04

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

 

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

Nota Número              : 03906

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00001

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

Referência às notas relacionadas:

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

 

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

CÁLCULO INCORRETO DO VALOR FOB DA MERCADORIA NO LOCAL DE EMBARQUE

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

Palavras Chave:

LI - VALOR FOB - MERCADORIA NO LOCAL DE EMBARQUE

INCOTERM

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

Objetos da nota:

REPS /PWS/MZYCI020F01

REPS /PWS/MZYCI020I01

 

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

Modificações efetuadas em REPS /PWS/MZYCI020F01

 

...

      ENDLOOP.

    ENDIF.

  ENDIF.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie078-bukrs.

  SELECT SINGLE * FROM /pws/zycit031

    WHERE inco1 = /pws/zycie078-inco1

      AND land1 EQ t001-land1.

  wa_zycit078-inco1 = /pws/zycie078-inco1.

  SELECT * FROM /pws/zycit030

        INTO TABLE itab_zycit030

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

        WHERE codigo = /pws/zycit031-inco1_ci

* << Fim da exclusão

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

        WHERE codigo = 'FOB'

* << Fim da inclusão

        AND land1 = t001-land1

        AND bukrs = /pws/zycie078-bukrs.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI020'

                              'PLI002'.

  CLEAR: itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'PLI002'.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

...

 

...

          ELSE.

          it_zycit079-qtdest = it_zycit079-qtd_iten * it_zycit079-fator.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

    CONCATENATE /pws/zycie079-steuc1(4) /pws/zycie079-steuc1+5(2)

    /pws/zycie079-steuc1+8(2) INTO /pws/zycie079-ncm.

    MODIFY it_zycit079.

  ENDLOOP.

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

  CLEAR /pws/zycie078-vlmerc.

* << Fim da exclusão

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

  CLEAR /pws/zycie078-vltot.

* << Fim da inclusão

  PERFORM verifica_vltotal_local_emb.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI020'

                              'PLI003'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'PLI003' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

...

 

...

          v_vlmerc  = v_vlmerc + itab_zycit030_aux-valor .

        ELSE.

          v_vlmerc  = v_vlmerc - itab_zycit030_aux-valor.

        ENDIF.

        AT END OF codigo.

          it_zycit079_a-netpr = v_vlmerc.

        ENDAT.

      ENDLOOP.

      FREE itab_zycit030_aux.

    ENDIF.

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

    /pws/zycie078-vlmerc = /pws/zycie078-vlmerc +

* << Fim da exclusão

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

    /pws/zycie078-vltot = /pws/zycie078-vltot +

* << Fim da inclusão

                      it_zycit079_a-netpr * it_zycit079_a-qtd_iten.

  ENDLOOP.

ENDFORM.

...

 

...

  LOOP AT it_zycit079.

    v_tabix = sy-tabix.

    IF /pws/zycie078-drawback EQ '1'.

      READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079-ebeln

                                         ebelp = it_zycit079-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE it_zycit245 WITH KEY nrseqd  = /pws/zycie078-nrseqd.

        IF sy-subrc EQ 0.

          IF  /pws/zycie078-tipodb = 'G'.

            it_zycit245-sdocomp_t = it_zycit245-netpr_t -

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

                                               /pws/zycie078-vltot.

* << Fim da exclusão

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

                                               /pws/zycie078-vlmerc.

* << Fim da inclusão

            IF v_salvo_drawback IS INITIAL.

              it_zycit245-vinculado = it_zycit245-vinculado +

                                                /pws/zycie078-qtdest.

              it_zycit245-vlvinc = it_zycit245-vlvinc +

                                               v_vlfobli.

            ENDIF.

            MODIFY it_zycit245 TRANSPORTING sdocomp_t vinculado vlvinc

                             WHERE nrseqd = /pws/zycie078-nrseqd.

            MOVE it_zycit079[] TO it_zycit079_aux4[].

          ELSE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI020I01

 

...

MODULE calc_total INPUT.

  DATA: v_netpr LIKE /pws/zycie001-netpr.

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

  CLEAR /pws/zycie078-vltot.

* << Fim da exclusão

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

  CLEAR /pws/zycie078-vlmerc.

* << Fim da inclusão

  IF NOT it_zycit079[] IS INITIAL.

    LOOP AT it_zycit079.

      CLEAR v_netpr.

      PERFORM trata_decimais USING    it_zycit079-waers

                             CHANGING it_zycit079-netpr.

      v_netpr = it_zycit079-qtd_iten * it_zycit079-netpr.

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

      /pws/zycie078-vltot = v_netpr + /pws/zycie078-vltot.

* << Fim da exclusão

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

      /pws/zycie078-vlmerc = v_netpr + /pws/zycie078-vlmerc.

* << Fim da inclusão

      IF NOT it_zycit079-waers IS INITIAL.

        /pws/zycie078-waers = it_zycit079-waers.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDMODULE.

...

 

...

              WHERE nrseqd EQ /pws/zycie078-nrseqd.

          READ TABLE it_zycit079 INDEX 1.

          READ TABLE it_zycit003_aux2 WITH KEY

                                            ebeln = it_zycit079-ebeln

                                            ebelp = it_zycit079-ebelp.

          READ TABLE it_zycit245 WITH KEY codcomp =

                                              it_zycit003_aux2-matnr.

          MOVE:

            it_zycit245-nritem+2     TO it_zycit079-item_drawback,

            it_zycit079-qtd_iten   TO it_zycit079-qtd_drawback,

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

            /pws/zycie078-vlmerc   TO it_zycit079-vl_prod_drawback.

* << Fim da exclusão

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

            /pws/zycie078-vltot   TO it_zycit079-vl_prod_drawback.

* << Fim da inclusão

          MODIFY it_zycit079 INDEX 1.

        ENDIF.

      ENDLOOP.

      IF NOT /pws/zycie078-tipodb IS INITIAL.

        IF /pws/zycie078-modalidade EQ 'I'.

          /pws/zycie078-drawback = '3'.

        ELSE.

          IF /pws/zycie078-tipodb = 'G'.

            /pws/zycie078-drawback = '1'.

          ELSE.

...