CE PLUS - Nota 003346

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Custo Efetivo

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

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

Descrição da Nota: ERRO NO CUSTO EFETIVO, VALOR DA FATURA

Sintoma

Adicionado parametro de entrada i_nrre, quando for passado um numero de RE o campo SISCOMEX da

tabela /pws/zycit248 referente aquela RE recebera "X" para indicar que foi feita a transmissão com

sucesso.

 

 

Solução

Adicionado parametro de entrada i_nrre, quando for passado um numero de RE o campo SISCOMEX da

tabela /pws/zycit248 referente aquela RE recebera "X" para indicar que foi feita a transmissão com

sucesso.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMBARQUE

Informações Complementares

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

Nota Número 03346 Data: 29/03/2007 Hora: 09:27:30

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

 

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

Nota Número              : 03346

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

 

03089  - 00001 - 6.0    - 00026  - SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMB

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

ERRO NO CUSTO EFETIVO, VALOR DA FATURA

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

Palavras Chave:

CUSTO EFETIVO - ENCERRAMENTO CONTÁBIL - VALOR REALIZADO

 

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

Objetos da nota:

REPT /PWS/ZYCIR988

REPT /PWS/MZYCI016F01

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

Modificações efetuadas em REPT /PWS/MZYCI016F01

 

...

      INTO TABLE itab_zycit036

      FOR ALL ENTRIES IN itab_zycit100

      WHERE nrseq = itab_zycit100-nrseq

        AND ebeln = itab_zycit100-ebeln

        AND ebelp = itab_zycit100-ebelp

        AND origem = 'FAT'

        AND ( codigo = 'FOB' OR

              codigo = 'CIF' OR

              codigo = 'C&F' ).

  ENDIF.

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

  IF itab_zycit036[] IS INITIAL.

    PERFORM atualiza_custos.

  ENDIF.

* << Fim da inclusão

  MOVE itab_zycit036[] TO itab_zycit036_di[].

  MOVE itab_zycit036[] TO itab_zycit036_atual[].

  IF v_libera = 'X' AND v_modalidade = '99'.

    IF NOT itab_zycit100[] IS INITIAL.

      SELECT * FROM /pws/zycit036

        INTO TABLE itab_zycit036

        FOR ALL ENTRIES IN itab_zycit100

        WHERE nrseq = itab_zycit100-nrseq

          AND ebeln = itab_zycit100-ebeln

          AND ebelp = itab_zycit100-ebelp

...

 

...

* novo perform

 

* >> Início da inclusão:

FORM atualiza_custos .

  DATA: BEGIN OF itab_zycit006 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit006.

  DATA: END OF itab_zycit006.

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit263

      INTO TABLE itab_zycit263

    FOR ALL ENTRIES IN itab_zycit003

    WHERE nrseq EQ itab_zycit003-nrseq

    AND   ebeln EQ itab_zycit003-ebeln

    AND   ebelp EQ itab_zycit003-ebelp

    AND   eliminado NE 'X'.

    IF NOT itab_zycit263[] IS INITIAL.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

      FOR ALL ENTRIES IN itab_zycit263

      WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat

      AND   eliminado NE 'X'.

    ENDIF.

  ENDIF.

  READ TABLE itab_zycit003 INDEX 1.

  SELECT SINGLE * FROM /pws/zycit001

    INTO /pws/zycie001

    WHERE nrseq EQ itab_zycit003-nrseq.

  LOOP AT itab_zycit263.

    READ TABLE itab_zycit003 WITH KEY

             nrseq = itab_zycit263-nrseq

             ebeln = itab_zycit263-ebeln

             ebelp = itab_zycit263-ebelp.

    IF sy-subrc EQ 0.

      LOOP AT itab_zycit006

          WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        IF NOT itab_zycit006-belnr_p IS INITIAL.

          itab_zycit036-mandt      = sy-mandt  .

          itab_zycit036-nrseq      = itab_zycit003-nrseq.

          itab_zycit036-ebeln      = itab_zycit003-ebeln.

          itab_zycit036-ebelp      = itab_zycit003-ebelp.

          itab_zycit036-werks      = itab_zycit003-werks.

          itab_zycit036-nrseqori   = itab_zycit006-nrseq.

          itab_zycit036-embarca    = /pws/zycie001-embarca.

          itab_zycit036-codigo     = /pws/zycit031-inco1_ci.

          itab_zycit036-netpr      =

          itab_zycit003-netpr * itab_zycit003-qtd_iten.

          itab_zycit036-waers      = itab_zycit003-waers.

          itab_zycit036-waers_real = itab_zycit006-waers.

          itab_zycit036-usernamec  = sy-uname.

          itab_zycit036-dtuserc    = sy-datum.

          itab_zycit036-hruserc    = sy-uzeit.

          PERFORM trata_decimais USING    itab_zycit036-waers

                                   CHANGING itab_zycit036-vlreal.

          itab_zycit036-vlreal =

        ( itab_zycit003-vlreal    * itab_zycit263-qtd_iten ) +

          itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.

          itab_zycit036-bukrs      = itab_zycit006-bukrs.

          itab_zycit036-codmod     = 'D'.

          itab_zycit036-status     = 'M'.

          itab_zycit036-vlreal_emb = itab_zycit006-vltotal.

          itab_zycit036-waers_emb  = itab_zycit006-waers.

          itab_zycit036-origem     = 'FAT'.

          itab_zycit036-waers_dif  = /pws/zycie001-waers.

          MODIFY /pws/zycit036 FROM itab_zycit036.

          APPEND itab_zycit036.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

 

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

Modificações efetuadas em REPT /PWS/ZYCIR988

 

* O seguinte relatório foi criado

 

*&---------------------------------------------------------------------*

*& Report  /PWS/ZYCIR988

*&                                                                     *

*&---------------------------------------------------------------------*

 

REPORT  /pws/zycir988    MESSAGE-ID /pws/zycim.

 

 

 

TABLES : /pws/zycie001,

         /pws/zycit031,

         /pws/zycie006,

         t001.

 

 

 

DATA itab_zycit036 LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE.

DATA itab_zycit003 LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.

DATA itab_zycit042 LIKE /pws/zycit042 OCCURS 0 WITH HEADER LINE.

DATA itab_zycit263 LIKE /pws/zycie263 OCCURS 0 WITH HEADER LINE.

 

 

DATA: okcode LIKE sy-ucomm.

 

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.

 

PARAMETER: p_nrseq TYPE /pws/zycit003-nrseq OBLIGATORY.

 

SELECTION-SCREEN END OF BLOCK bl1.

 

INITIALIZATION.

 

 

START-OF-SELECTION.

 

  PERFORM seleciona_dados.

  PERFORM ajusta_custo.

 

*&---------------------------------------------------------------------*

*&      Form  seleciona_dados

*&---------------------------------------------------------------------*

FORM seleciona_dados.

 

  SELECT SINGLE * FROM /pws/zycit001

    INTO /pws/zycie001

    WHERE nrseq EQ p_nrseq.

 

  IF sy-subrc EQ 0 .

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

 

    SELECT SINGLE * FROM /pws/zycit031

      WHERE inco1 = /pws/zycie001-inco1

        AND land1 EQ t001-land1.

 

 

 

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

     WHERE nrseq EQ /pws/zycie001-nrseq.

 

    IF sy-subrc EQ 0.

      SELECT * FROM /pws/zycit263

      INTO TABLE itab_zycit263

      FOR ALL ENTRIES IN itab_zycit003

      WHERE nrseq EQ itab_zycit003-nrseq

      AND   ebeln EQ itab_zycit003-ebeln

      AND   ebelp EQ itab_zycit003-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit263 INDEX 1 .

        SELECT SINGLE * FROM /pws/zycit006

         INTO /pws/zycie006

         WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.

      ENDIF.

    ENDIF.

 

  ENDIF.

ENDFORM.                    " seleciona_dados

 

 

 

*&---------------------------------------------------------------------*

*&      Form ajusta_custo

*&---------------------------------------------------------------------*

FORM ajusta_custo .

 

 

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

 

 

 

    LOOP AT itab_zycit003.

 

      SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036

        WHERE nrseq = itab_zycit003-nrseq AND

              ebeln = itab_zycit003-ebeln AND

              ebelp = itab_zycit003-ebelp AND

              ( codigo = 'FOB' OR

                codigo = 'C&F' OR

                codigo = 'CIF' )

                AND ( origem = 'FAT' OR

                      origem = 'NF' ).

      IF sy-subrc = 0.

 

        LOOP AT itab_zycit036.

          IF itab_zycit036-origem = 'NF'.

            SELECT * FROM /pws/zycit042 INTO TABLE itab_zycit042

            WHERE nrseq = itab_zycit003-nrseq AND

                  ebeln = itab_zycit003-ebeln AND

                  ebelp = itab_zycit003-ebelp.

 

              READ TABLE itab_zycit042

                          WITH KEY ebeln = itab_zycit036-ebeln

                                   ebelp = itab_zycit036-ebelp.

              itab_zycit036-vlreal = ( itab_zycit003-vlreal *

      itab_zycit003-qtd_iten )

      +         itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.

              itab_zycit036-origem = 'NF'.

              itab_zycit036-waers_real = itab_zycit003-waers_real.

              itab_zycit036-nrseqori = itab_zycit042-docnum.

              INSERT /pws/zycit036 FROM itab_zycit036.

              IF sy-subrc NE 0.

                MODIFY /pws/zycit036 FROM itab_zycit036.

              ENDIF.

 

          ELSEIF itab_zycit036-origem = 'FAT'.

            READ TABLE itab_zycit003

                               WITH KEY ebeln = itab_zycit036-ebeln

                                        ebelp = itab_zycit036-ebelp.

            IF sy-subrc = 0.

              itab_zycit036-vlreal = ( itab_zycit003-vlreal *

      itab_zycit003-qtd_iten )

      +         itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.

              itab_zycit036-origem = 'FAT'.

              itab_zycit036-waers_real = itab_zycit003-waers_real.

              itab_zycit036-nrseqori = /pws/zycie006-nrseq.

              INSERT /pws/zycit036 FROM itab_zycit036.

              IF sy-subrc NE 0.

                MODIFY /pws/zycit036 FROM itab_zycit036.

              ENDIF.

            ENDIF.

          ENDIF.

        ENDLOOP.

      ELSE.

        SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036

           WHERE nrseq = itab_zycit003-nrseq AND

                 ebeln = itab_zycit003-ebeln AND

                 ebelp = itab_zycit003-ebelp AND

                 ( codigo = 'FOB' OR

                   codigo = 'C&F' OR

                   codigo = 'CIF' )

                   AND origem = 'PED' .

 

        IF sy-subrc EQ 0 AND /pws/zycie006-belnr_p NE space.

          "Trata fatura

          LOOP AT itab_zycit036.

 

              READ TABLE itab_zycit263 WITH KEY

                   nrseq = itab_zycit036-nrseq

                   ebeln = itab_zycit036-ebeln

                   ebelp = itab_zycit036-ebelp

                   nrseq_pgfat = /pws/zycie006-nrseq_pgfat.

              IF sy-subrc EQ 0.

                itab_zycit036-vlreal = ( itab_zycit003-vlreal *

                  itab_zycit263-qtd_iten )   +

                itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.

                itab_zycit036-origem = 'FAT'.

                itab_zycit036-waers_real = itab_zycit003-waers_real.

                itab_zycit036-nrseqori = /pws/zycie006-nrseq.

                itab_zycit036-codmod     = 'D'.

                itab_zycit036-status     = 'M'.

                itab_zycit036-vlreal_emb = /pws/zycie006-vltotal.

                itab_zycit036-waers_emb  = /pws/zycie006-waers.

 

                CLEAR : itab_zycit036-vldif.

 

                itab_zycit036-usernamec  = sy-uname.

                itab_zycit036-dtuserc    = sy-datum.

                itab_zycit036-hruserc    = sy-uzeit.

 

                INSERT /pws/zycit036 FROM itab_zycit036.

                IF sy-subrc NE 0.

                  MODIFY /pws/zycit036 FROM itab_zycit036.

                ENDIF.

              ENDIF.

 

 

 

            "Trata NF

            SELECT * FROM /pws/zycit042 INTO TABLE itab_zycit042

            WHERE nrseq = itab_zycit003-nrseq AND

                  ebeln = itab_zycit003-ebeln AND

                  ebelp = itab_zycit003-ebelp.

 

            READ TABLE itab_zycit003

                             WITH KEY ebeln = itab_zycit036-ebeln

                                      ebelp = itab_zycit036-ebelp.

            IF sy-subrc = 0.

              READ TABLE itab_zycit042

                          WITH KEY ebeln = itab_zycit036-ebeln

                                   ebelp = itab_zycit036-ebelp.

              itab_zycit036-vlreal =   ( itab_zycit003-vlreal *

                itab_zycit003-qtd_iten ) +

              itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.

              itab_zycit036-origem = 'NF'.

              itab_zycit036-waers_real = itab_zycit003-waers_real.

              itab_zycit036-nrseqori = itab_zycit042-docnum.

 

              itab_zycit036-codmod     = 'D'.

              itab_zycit036-status     = 'M'.

              itab_zycit036-vlreal_emb = /pws/zycie006-vltotal.

              itab_zycit036-waers_emb  = /pws/zycie006-waers.

              CLEAR : itab_zycit036-vldif.

              itab_zycit036-usernamec  = sy-uname.

              itab_zycit036-dtuserc    = sy-datum.

              itab_zycit036-hruserc    = sy-uzeit.

 

              INSERT /pws/zycit036 FROM itab_zycit036.

              IF sy-subrc NE 0.

                MODIFY /pws/zycit036 FROM itab_zycit036.

              ENDIF.

            ENDIF.

 

          ENDLOOP.

 

        ENDIF.

 

      ENDIF.

    ENDLOOP.

    IF sy-subrc = 0.

      MESSAGE i015 WITH text-002.

    ENDIF.

  ENDIF.

 

 

ENDFORM.

 

 

* O seguinte elemento de texto foi criado:

 

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

Idioma: PT

 

Símbolo: 001

 

Texto: (30 caracteres)

"Critério de Seleção:"

 

Comprimento máximo: 30

 

 

 

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 002

 

Texto: (30 caracteres)

"Dados atualizados com sucesso!"

 

Comprimento máximo: 30

 

 

 

 

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

Modificações efetuadas em TRANS /PWS/ZYCIR988

 

*Criar transação para relatório