CE PLUS - Nota 003391

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Custo Efetivo

Data/Hora da Publicação: 03/04/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:23:54

Descrição da Nota: NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO

Sintoma

o custo efetivo está com valor duplicado.

Porque tem dados de origem Nota Fiscal com nrseqori zerado na tabela zycit036.

 

 

Solução

fazer tratamento para ajustar valores de custo efetivo.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AO CRIAR NF NÃO ATUALIZA TABELAS DO CE E DUPLICA VALORES DE IMPOSTOS

Informações Complementares

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

Nota Número 03391 Data: 03/04/2007 Hora: 14:49:16

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

 

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

Nota Número              : 03391

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00160

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

Referência às notas relacionadas:

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

 

02595  - 00001 - 6.0    - 00025  - AO CRIAR NF NÃO ATUALIZA TABELAS DO CE E DUPLICA VALORES DE IMPOS

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

NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO

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

Palavras Chave:

NRSEQORI - NF - VALORES DUPLICADOS NO CUSTO

 

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

Objetos da nota:

REPS /PWS/LZYCIGF2F01

REPS /PWS/ZYCIR006

 

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

Modificações efetuadas em REPS /PWS/LZYCIGF2F01

 

...

                OTHERS                 = 3.

      p_t_zycet005-mandt  = p_t_dados-mandt.

      p_t_zycet005-tcode  = p_tcode.

      p_t_zycet005-tabela = p_t_dados-tabela.

      p_t_zycet005-cpochv = p_t_dados-cpochv.

      p_t_zycet005-tpmsg  = 'E'.

      p_t_zycet005-nrmsg  = p_nrmsg.

      APPEND p_t_zycet005.

    ENDLOOP.

  ELSE.

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

    if not sy-msgv1 is initial.

* << Fim da inclusão

    ADD 1 TO p_nrmsg.

    CALL FUNCTION 'MESSAGE_PREPARE'

         EXPORTING

              language               = sy-langu

              msg_id                 = p_msgid

              msg_no                 = p_msgno

              msg_var1               = sy-msgv1

              msg_var2               = sy-msgv2

              msg_var3               = sy-msgv3

              msg_var4               = sy-msgv4

...

 

...

    p_t_zycet005-nrmsg  = p_nrmsg.

    p_t_zycet005-belnr  = sy-msgv1.

    SHIFT p_t_zycet005-belnr RIGHT DELETING TRAILING space.

    TRANSLATE p_t_zycet005-belnr USING ' 0'.

    APPEND p_t_zycet005.

    v_belnr = p_t_dados-belnr.

    p_t_dados-belnr = p_t_zycet005-belnr.

    MODIFY p_t_dados TRANSPORTING belnr WHERE belnr = v_belnr.

    itab_zycet006-belnr = p_t_zycet005-belnr.

    MODIFY itab_zycet006 TRANSPORTING belnr WHERE belnr = v_belnr.

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

    else.

      loop at p_itab_msg.

        add 1 to p_nrmsg.

        call function 'MESSAGE_PREPARE'

             exporting

                  language               = sy-langu

                  msg_id                 = p_itab_msg-msgid

                  msg_no                 = p_itab_msg-msgnr

                  msg_var1               = p_itab_msg-msgv1

                  msg_var2               = p_itab_msg-msgv2

                  msg_var3               = p_itab_msg-msgv3

                  msg_var4               = p_itab_msg-msgv4

             importing

                  msg_text               = p_t_zycet005-msg

             exceptions

                  function_not_completed = 1

                  message_not_found      = 2

                  others                 = 3.

        p_t_zycet005-mandt  = p_t_dados-mandt.

        p_t_zycet005-tcode  = p_tcode.

        p_t_zycet005-tabela = p_t_dados-tabela.

        p_t_zycet005-cpochv = p_t_dados-cpochv.

        p_t_zycet005-tpmsg  = 'E'.

        p_t_zycet005-nrmsg  = p_nrmsg.

        append p_t_zycet005.

      endloop.

    endif.

* << Fim da inclusão

  ENDIF.

  REFRESH: p_itab_bdc.

ENDFORM.

FORM bdc_campo USING    value(par1)

                        value(par2).

  CLEAR itab_bdc.

  itab_bdc-fnam = par1.

  itab_bdc-fval = par2.

  APPEND itab_bdc.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR006

 

...

FORM selecionar_dados.

  SELECT SINGLE * FROM /pws/zycbt007.

  SELECT SINGLE * FROM /pws/zycit001

    INTO /pws/zycie001

    WHERE nrseq = pa_nrseq.

  SELECT * FROM /pws/zycit003

    INTO TABLE itab_zycit003

    WHERE nrseq = pa_nrseq .

  SELECT SINGLE * FROM /pws/zycit031

    WHERE inco1 = /pws/zycie001-inco1.

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

  perform verifica_recebimento.

* << Fim da inclusão

  SELECT * FROM /pws/zycit036

    INTO TABLE itab_zycit036

    WHERE nrseq = pa_nrseq.

ENDFORM.

FORM custeando_planejado.

  DATA: v_flag,

        v_ebelp LIKE konv-kposn.

  LOOP AT itab_zycit036.

    IF itab_zycit036-origem = 'PED'.

      MOVE itab_zycit036 TO itab_zycit036_plan.

...

 

...

                ENDIF.

              ENDIF.

            ENDIF.

          ENDIF.

          IF itab_zycit036-origem NE 'EST'.

            itab_zycit036-vldif = itab_zycit036-vlreal -

                                  itab_zycit036-vlmov.

            itab_zycit036-waers_dif = /pws/zycbt007-waersb.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0   AND

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

          NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

          NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

          IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                           /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

            PERFORM trata_decimais USING    itab_zycit036-waers

                                   CHANGING itab_zycit036-vlmov.

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

          ENDIF.

          itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

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

            NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

            NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

            IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

            itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

                    ENDIF.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

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

          NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

          NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

            IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

            itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

                ENDIF.

              ENDIF.

            ENDIF.

          ENDIF.

          IF itab_zycit036-origem NE 'EST'.

            itab_zycit036-vldif = itab_zycit036-vlreal -

                                  itab_zycit036-vlmov.

            itab_zycit036-waers_dif = /pws/zycbt007-waersb.

          ENDIF.

        ELSEIF itab_zycit036-netpr GT 0   AND

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

          NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

          NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

          IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                           /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

            PERFORM trata_decimais USING    itab_zycit036-waers

                                   CHANGING itab_zycit036-vlmov.

            itab_zycit036-waers_mov = /pws/zycbt007-waersb.

          ENDIF.

          itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

                    itab_zycit036-waers_mov = /pws/zycbt007-waersb.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

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

            NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

            NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

            IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

            itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

                    ENDIF.

                  ENDIF.

                ENDIF.

              ENDIF.

            ENDIF.

            IF itab_zycit036-origem NE 'EST'.

              itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.

              itab_zycit036-waers_dif = /pws/zycbt007-waersb.

            ENDIF.

          ELSEIF itab_zycit036-netpr GT 0   AND

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

          NOT itab_zycit036-waers IS INITIAL.

* << Fim da exclusão

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

          NOT itab_zycit036-waers IS INITIAL

            or ( itab_zycit036-origem eq   'NF' and

                 itab_zycit036-nrseqori eq '0000000000' ) .

* << Fim da inclusão

            IF v_itemcongela NE 'X'.

           PERFORM converter_moeda USING itab_zycit036-netpr

                                         itab_zycit036-waers

                                            /pws/zycbt007-waersb

                                           CHANGING itab_zycit036-vlmov.

              PERFORM trata_decimais USING    itab_zycit036-waers

                                     CHANGING itab_zycit036-vlmov.

              itab_zycit036-waers_mov = /pws/zycbt007-waersb.

            ENDIF.

            itab_zycit036-vldif     = 0 - itab_zycit036-vlmov.

...

 

...

* Inicio inclusão de perform

* >> Início da inclusão:

form verifica_recebimento.

  data: v_receb.

  data:

      itab_zycit041 like /pws/zycit041 occurs 0 with header line,

      itab_zycit043 like /pws/zycit043 occurs 0 with header line.

  select * from /pws/zycit042 into table itab_zycit042

    where nrseq = pa_nrseq.

  if sy-subrc eq  0 and /pws/zycie001-dtencer is initial.

    select * from /pws/zycit041 into table itab_zycit041

      for all entries in itab_zycit042

      where nrseq  = itab_zycit042-nrseqnf and

            cancel = space.

    if sy-subrc eq 0 .

      loop at itab_zycit041 where belnr_mr1m ne space

                            or belnr_f_51    ne space .

      endloop.

      if sy-subrc = 0 .

        v_receb = 'X'.

      else.

        select * from /pws/zycit043 into table itab_zycit043

          for all entries in itab_zycit042

          where nrseq  = itab_zycit042-nrseqnf and

                cancel = space.

        if sy-subrc = 0.

          loop at itab_zycit043 where belnr_mr1m ne space

                             or belnr_f_51       ne space.

          endloop.

          if sy-subrc eq 0.

            v_receb = 'X'.

          endif.

        endif.

      endif.

    endif.

    if v_receb = 'X'.

      select * from /pws/zycit036

         into table itab_zycit036_aux

         where nrseq eq pa_nrseq

         and origem eq 'NF'

         and nrseqori eq '0000000000'.

      if sy-subrc eq '0'.

        loop at itab_zycit036_aux.

          clear itab_zycit036_aux-vlreal.

          modify itab_zycit036_aux.

        endloop.

        modify /pws/zycit036 from table itab_zycit036_aux.

        commit work.

      endif.

    else.

      delete from /pws/zycit036 where nrseq eq pa_nrseq

                                and origem eq 'NF'

                                and nrseqori eq '0000000000'.

      commit work.

    endif.

  elseif /pws/zycie001-dtencer is initial.

    delete from /pws/zycit036 where nrseq eq pa_nrseq

                              and origem eq 'NF'

                              and nrseqori eq '0000000000'.

    commit work.

  endif.

endform.

* << Fim da inclusão