CE PLUS - Nota 001174

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Encerramento de Custo

Data/Hora da Publicação: 07/04/2006 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:29:13

Descrição da Nota: VALOR LEVADO PARA O ENCERRAMENTO DE CUSTOS ESTA MAIOR DO QUE DEVERIA

Sintoma

O Valor que foi levado para o Encerramento de Custos esta maior do que deveria.  Problema de Casas

decimais

 

 

Solução

Ajuste para o tratamento de casas decimais.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

REGULARIZAÇÃO DAS DESPESAS.

DESPESAS DE FRETE E SEGURO SENDO TRATADOS DIFERENTES NO CUSTO

AS DESPESAS DE FRETE E SEGURO INTERNACIONAIS SENDO PARAMETRIZADAS DA MES

Informações Complementares

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

Nota Número 01174 Data: 07/04/2006 Hora: 16:46:15

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

 

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

Nota Número              : 01174

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00108

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

Referência às notas relacionadas:

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

 

01052  - 00001 - 6.0    - 00022  - REGULARIZAÇÃO DAS DESPESAS.

01100  - 00002 - 6.0    - 00023  - DESPESAS DE FRETE E SEGURO SENDO TRATADOS DIFERENTES NO CUSTO

01150  - 00003 - 6.0    - 00023  - AS DESPESAS DE FRETE E SEGURO INTERNACIONAIS SENDO PARAMETRIZADAS

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

VALOR LEVADO PARA O ENCERRAMENTO DE CUSTOS ESTA MAIOR DO QUE DEVERIA

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

Palavras Chave:

ENCERRAMENTO DE CUSTOS

 

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

Objetos da nota:

REPS /PWS/MZYCI010F03

REPS /PWS/MZYCI010O01

REPS /PWS/ZYCIR007

 

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

Modificações efetuadas em REPS /PWS/MZYCI010F03

 

...

      LOOP AT itab_zycit029.

        v_pos = tc_itens-top_line + v_linha - 1.

        CLEAR itab_zycit003_custo.

        READ TABLE itab_zycit003_custo INDEX v_pos.

        CLEAR itab_zycit036a.

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

     DATA: it_zycit036_aux LIKE itab_zycit036 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

        READ TABLE itab_zycit036a WITH KEY

                         ebelp  = itab_zycit003_custo-ebelp

                         ebeln  = itab_zycit003_custo-ebeln

                         codigo = itab_zycit029-codigo.

        CLEAR itab_zycit036.

...

 

...

          itab_zycit036-embarca = /pws/zycie001-embarca.

          itab_zycit036-codigo  = itab_zycit029-codigo.

          APPEND itab_zycit036.

        ENDIF.

      ENDLOOP.

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

 MOVE itab_zycit036a[] TO it_zycit036_aux[].

      LOOP AT it_zycit036_aux.

        READ TABLE itab_zycit036 WITH KEY

                         ebelp  = it_zycit036_aux-ebelp

                         ebeln  = it_zycit036_aux-ebeln

                         codigo = it_zycit036_aux-codigo.

        IF sy-subrc EQ 0.

          IF NOT it_zycit036_aux-netpr IS INITIAL AND

            itab_zycit036-netpr NE it_zycit036_aux-netpr.

            itab_zycit036-netpr =

                  itab_zycit036-netpr + it_zycit036_aux-netpr.

          ENDIF.

          IF NOT it_zycit036_aux-vlmov IS INITIAL AND

            itab_zycit036-vlmov NE it_zycit036_aux-vlmov.

            itab_zycit036-vlmov =

                  itab_zycit036-vlmov + it_zycit036_aux-vlmov.

          ENDIF.

          IF NOT it_zycit036_aux-vlreal IS INITIAL AND

            itab_zycit036-vlreal NE it_zycit036_aux-vlreal.

            itab_zycit036-vlreal =

                  itab_zycit036-vlreal + it_zycit036_aux-vlreal.

          ENDIF.

          IF NOT it_zycit036_aux-vldif IS INITIAL AND

            itab_zycit036-vldif NE it_zycit036_aux-vldif.

            itab_zycit036-vldif =

                  itab_zycit036-vldif + it_zycit036_aux-vldif.

          ENDIF.

         modify itab_zycit036 index sy-tabix.

ENDIF.

ENDLOOP.

* << Fim da inclusão

      CLEAR v_index3.

      LOOP AT itab_zycit036.

        v_index3 = sy-tabix.

        IF itab_zycit036-netpr IS INITIAL AND

           itab_zycit036-vlreal IS INITIAL AND

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI010O01

 

...

      /pws/zycie003-vldif  to v_vldif_tl.

v_netprt    = v_netprt    / 100000.

v_vlreal_tl = v_vlreal_tl / 100000.

v_vlmov_tl  = v_vlmov_tl  / 100000.

v_vldif_tl  = v_vldif_tl  / 100000.

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

  IF /pws/zycie003-waers_real NE /pws/zycie001-waers_real.

* << Fim da inclusão

perform trata_decimais using /pws/zycie003-waers_real

                    changing v_vlreal_tl.

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

  ENDIF.

  IF /pws/zycie003-waers_mov NE /pws/zycie001-waers_mov.

* << Fim da inclusão

perform trata_decimais using /pws/zycie003-waers_mov

                    changing v_vlmov_tl.

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

  ENDIF.

  IF /pws/zycie003-waers_dif NE /pws/zycie001-waers_dif.

* << Fim da inclusão

perform trata_decimais using /pws/zycie003-waers_dif

                    changing v_vldif_tl.

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

  ENDIF.

* << Fim da inclusão

describe table itab_zycit003_custo lines v_lin.

tc_itens-lines = v_lin.

endmodule.

module status_0003 output.

clear: itab_botoes. refresh: itab_botoes.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR007

 

...

        INCLUDE STRUCTURE /pws/zycie031.

DATA: END OF itab_zycie031_aux.

DATA: BEGIN OF itab_botoes OCCURS 0.

DATA: bname(20) TYPE c.

DATA: END OF itab_botoes.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit001 OCCURS 0.

DATA:  nrseq      LIKE /pws/zycie001-nrseq     ,

       waers_real LIKE /pws/zycie001-waers_real,

       waers_mov  LIKE /pws/zycie001-waers_mov ,

       waers_dif  LIKE /pws/zycie001-waers_dif.

DATA: END OF itab_zycit001.

DATA: BEGIN OF itab_zycit003 OCCURS 0.

DATA:  nrseq LIKE /pws/zycie003-nrseq,

       ebeln LIKE /pws/zycie003-ebeln,

       ebelp LIKE /pws/zycie003-ebelp.

DATA: END OF itab_zycit003.

data:  wa_tcurx like tcurx.

* << Fim da inclusão

DATA:

  e_okcode     LIKE sy-ucomm  ,

  v_unit       LIKE ekpo-meins,

* >> Início da exclusão:

  v_tcode      LIKE sy-tcode  .

* << Fim da exclusão

* >> Início da inclusão:

  v_tcode      LIKE sy-tcode,

  v_wrbtr                   like /pws/zycie003-vlreal.

* << Fim da inclusão

START-OF-SELECTION.

  IMPORT v_tcode            FROM MEMORY ID 'V_TCODE'.

  IF v_tcode eq '/PWS/ZYCI001_E'.

    MOVE 'CONTAB' TO itab_botoes-bname.

    APPEND itab_botoes.

...

 

...

           172 '|', text-016,

           183 '|'.

  ULINE AT /(183).

  IF NOT itab_zycie031_aux[] IS INITIAL.

    LOOP AT itab_zycie031_aux.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycie031_aux-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031_aux-ebeln

                                        ebelp = itab_zycie031_aux-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycie031_aux-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycie031_aux-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      WRITE:  /00 '|', itab_zycie031_aux-ebeln,

               14 '|', itab_zycie031_aux-ebelp,

               24 '|', itab_zycie031_aux-matnr,

               36 '|', itab_zycie031_aux-menge  UNIT v_unit,

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

               53 '|', itab_zycie031_aux-wrbtr CURRENCY

   /pws/zycbt007-waersb,

* << Fim da exclusão

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

               53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               72 '|',

               91 '|',

               97 '|',

              110 '|',

              123 '|',

...

 

...

    ULINE AT /(183).

  ENDIF.

  IF NOT itab_zycbt035_aux[] IS INITIAL.

    SORT itab_zycbt035_aux BY ebeln ebelp matuse d_newko.

    LOOP AT itab_zycbt035_aux.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycbt035_aux-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035_aux-ebeln

                                        ebelp = itab_zycbt035_aux-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycbt035_aux-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycbt035_aux-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      IF itab_zycbt035_aux-bschl EQ '40'.

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

        itab_zycbt035_aux-wrbtr = itab_zycbt035_aux-wrbtr * -1.

* << Fim da exclusão

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

        v_wrbtr = v_wrbtr * -1.

* << Fim da inclusão

      ENDIF.

      WRITE:  /00 '|', itab_zycbt035_aux-ebeln,

               14 '|', itab_zycbt035_aux-ebelp,

               24 '|', itab_zycbt035_aux-matnr,

               36 '|', itab_zycbt035_aux-menge  UNIT v_unit,

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

               53 '|', itab_zycbt035_aux-wrbtr  CURRENCY

  /pws/zycbt007-waersb,

* << Fim da exclusão

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

               53 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               72 '|', itab_zycbt035_aux-newko,

               91 '|', itab_zycbt035_aux-matuse,

               97 '|', itab_zycbt035_aux-d_gsber,

              110 '|', itab_zycbt035_aux-d_kostl,

              123 '|', itab_zycbt035_aux-d_prctr,

...

 

...

             14 '|', text-011,

             33 '|', text-012,

             51 '|'.

    ULINE AT /(51).

    LOOP AT itab_zycie031.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycie031-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycie031-ebeln

                                        ebelp = itab_zycie031-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycie031-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycie031-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      WRITE:  /00 '|', itab_zycie031-matnr,

               14 '|', itab_zycie031-menge UNIT v_unit,

              33 '|', itab_zycie031-wrbtr CURRENCY /pws/zycbt007-waersb,

               51 '|'.

    ENDLOOP.

...

 

...

             98 '|', text-010,

            115 '|', text-016,

            126 '|'.

    ULINE AT /(126).

    LOOP AT itab_zycbt035.

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

      CLEAR: itab_zycit001, itab_zycit003, v_wrbtr.

      v_wrbtr = itab_zycbt035-wrbtr.

      v_wrbtr = v_wrbtr / 1000.

      READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycbt035-ebeln

                                        ebelp = itab_zycbt035-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        IF sy-subrc EQ 0.

          IF itab_zycbt035-waers NE itab_zycit001-WAERS_dif.

            PERFORM trata_decimais USING itab_zycbt035-waers

                                CHANGING v_wrbtr.

          ENDIF.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      IF itab_zycbt035-bschl EQ '50'.

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

        itab_zycbt035-wrbtr = itab_zycbt035-wrbtr * -1.

* << Fim da exclusão

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

        v_wrbtr = v_wrbtr * -1.

* << Fim da inclusão

      ENDIF.

      WRITE:  /00 '|', itab_zycbt035-d_newko,

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

              17 '|', itab_zycbt035-wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da exclusão

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

               17 '|', v_wrbtr CURRENCY /pws/zycbt007-waersb,

* << Fim da inclusão

               36 '|', itab_zycbt035-matuse,

               41 '|', itab_zycbt035-d_gsber,

               53 '|', itab_zycbt035-d_kostl,

               66 '|', itab_zycbt035-d_prctr,

               79 '|', itab_zycbt035-d_fictr,

...

 

...

                                d_fipos = itab_zycbt035_aux-d_fipos.

    itab_zycbt035_aux-d_newko = itab_zycbt035-d_newko.

    itab_zycbt035_aux-newko = itab_zycbt035-newko.

    MODIFY itab_zycbt035_aux INDEX v_index.

  ENDLOOP.

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

  IF NOT itab_zycie031_aux[] IS INITIAL.

    SELECT nrseq ebeln ebelp

     FROM /pws/zycit003

     INTO TABLE itab_zycit003

     FOR ALL ENTRIES IN itab_zycie031_aux

     WHERE ebeln EQ itab_zycie031_aux-ebeln

       AND ebelp EQ itab_zycie031_aux-ebelp.

    IF sy-subrc EQ 0.

      SELECT nrseq waers_real waers_mov waers_dif

        FROM /pws/zycit001

        INTO TABLE itab_zycit001

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq EQ itab_zycit003-nrseq.

    ENDIF.

  ENDIF.

* << Fim da inclusão

ENDFORM.

* >> Início da inclusão:

FORM trata_decimais USING    p_moeda

                    CHANGING p_valor.

  SELECT SINGLE * FROM tcurx INTO wa_tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    wa_tcurx-currdec = 2.

  ENDIF.

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

ENDFORM.

* << Fim da inclusão