CE PLUS - Nota 001302

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 10/05/2006 00:00:00

Data/Hora Última Alteração: 21/02/2011 16:55:01

Descrição da Nota: ESTORNO DO CÂMBIO QUANDO DATA DO EMBARQUE É MAIOR DO QUE DATA DO DIA

Sintoma

O programa não realiza estorno do câmbio corretamente quando a data do embarque é maior do que a

data atual e, para períodos fiscais diferentes do normal e encerrados, o motivo de estorno estava

sendo levado indevidamente.

 

 

Solução

Os programas de agrupamentos foram ajustados para buscar a data do documento a partir da tabela

/PWS/ZYCBT030 e verificar o período fiscal.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01302 Data: 10/05/2006 Hora: 09:42:44

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

 

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

Nota Número              : 01302

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00023

Agrupamento              : 00113

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

ESTORNO DO CÂMBIO QUANDO DATA DO EMBARQUE É MAIOR DO QUE DATA DO DIA

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

Palavras Chave:

ESTORNO CÂMBIO DATA EMBARQUE

 

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

Objetos da nota:

REPS /PWS/ZYCER089

REPS /PWS/ZYCER306

 

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

Modificações efetuadas em REPS /PWS/ZYCER089

 

* >> Início da inclusão: REPORT /PWS/ZYCER089

REPORT /pws/zycer089 MESSAGE-ID /pws/zycem.

* << Fim da inclusão

 

* >> Início da exclusão: REPORT /PWS/ZYCER089

REPORT /pws/zycer089a MESSAGE-ID /pws/zycem.

* << Fim da exclusão

 

TABLES: /pws/zycet002,

        /pws/zycet037,

        /pws/zycit054,

        /pws/zycet047,

        /pws/zycet048.

 

...

 

      itab_zycee005 LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,

      itab_zycet004 LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,

      itab_zycbt013 LIKE /pws/zycbt013 OCCURS 10 WITH HEADER LINE.

 

DATA: wa_zycbt011 LIKE /pws/zycbt011,

      wa_zycet008 LIKE /pws/zycet008.

 

* >> Início da inclusão: REPORT /PWS/ZYCER089

TYPES: BEGIN OF ty_per_fiscal,

       mes TYPE t001b-frpe1,

       ano TYPE t001b-frye1,

      END OF ty_per_fiscal.

* << Fim da inclusão

 

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

SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq

                        NO INTERVALS

                        NO-EXTENSION.

 

...

 

FORM fill_date_fb08.

 

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

  DATA: v_monat LIKE t001b-frpe1.

* << Fim da exclusão

 

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

  DATA: wa_per_fiscal TYPE ty_per_fiscal.

* << Fim da inclusão

 

  CLEAR: itab_zycbt033,

         itab_zycbt032,

         itab_zycee005.

 

  REFRESH: itab_zycbt033,

           itab_zycbt032,

 

...

 

    itab_zycbt033-budat = wa_zycet001-dtemb.

 

  ELSE.

    itab_zycbt033-budat = sy-datum.

 

  ENDIF.

 

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

  v_monat = itab_zycbt033-budat+4(2).

* << Fim da exclusão

 

  itab_zycee005-mandt  = sy-mandt.

  itab_zycee005-tcode  = 'FB08'.

  itab_zycee005-tabela = '/PWS/ZYCBT030'.

  itab_zycee005-cpochv = wa_zycet001-nrseq.

  itab_zycee005-belnr  = itab_zycbt030-belnr.

  itab_zycee005-bukrs  = wa_zycet001-bukrs.

 

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

  SELECT SINGLE budat

      FROM bkpf

      INTO itab_zycee005-budat

      WHERE bukrs = wa_zycet001-bukrs

        AND belnr = itab_zycbt030-belnr

        AND gjahr = itab_zycbt030_aux-budat.

* << Fim da exclusão

 

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

  IF sy-subrc IS INITIAL.

    itab_zycee005-budat = itab_zycee005-bldat = itab_zycbt030_aux-dtbelnr.

  ENDIF.

* << Fim da inclusão

 

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

  v_monat = itab_zycee005-budat+4(2).

* << Fim da exclusão

 

  itab_zycee005-gjahs = itab_zycee005-budat(4).

 

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

  PERFORM checa_periodo_fiscal CHANGING wa_per_fiscal.

* << Fim da inclusão

 

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = itab_zycee005-bukrs

 

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

            i_gjahr          = itab_zycee005-budat+0(4)

* << Fim da exclusão

 

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

            i_gjahr          = wa_per_fiscal-ano

* << Fim da inclusão

 

            i_koart          = '+'

 

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

            i_monat          = v_monat

* << FIm da exclusão

 

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

            i_monat          = wa_per_fiscal-mes

* << Fim da inclusão

 

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

 

...

 

* >> FORM CHECA_PERIODO_FISCAL foi incluído em programa /PWS/ZYCER089

 

FORM checa_periodo_fiscal CHANGING p_fiscal TYPE ty_per_fiscal.

  DATA: v_periv TYPE t001-periv.

  SELECT SINGLE periv

   FROM t001

   INTO v_periv

   WHERE bukrs EQ wa_zycet001-bukrs.

  CHECK sy-subrc EQ 0.

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = itab_zycbt030_aux-budat

            version             = v_periv

       IMPORTING

            period              = p_fiscal-mes

            year                = p_fiscal-ano

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

ENDFORM.                    " checa_periodo_fiscal

 

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

Modificações efetuadas em REPS /PWS/ZYCER306

 

* >> Início da inclusão: REPORT /PWS/ZYCER306

REPORT /pws/zycer306 MESSAGE-ID /pws/zycem.

* << Fim da inclusão

 

* >> Início da exclusão: REPORT /PWS/ZYCER306

REPORT zycrr057_01 MESSAGE-ID /pws/zycem.

* << Fim da exclusão

 

TABLES: /pws/zycet001,

        /pws/zycet002,

        /pws/zycbt011,

        /pws/zycet008,

        /pws/zycbt030,

 

...

 

      itab_zycee005  LIKE /pws/zycee005 OCCURS 10 WITH HEADER LINE,

      itab_zycet004  LIKE /pws/zycet004 OCCURS 10 WITH HEADER LINE,

      itab_zycbt013  LIKE /pws/zycbt013  OCCURS 10 WITH HEADER LINE,

      wa_zycbt011    LIKE /pws/zycbt011,

      wa_zycet008    LIKE /pws/zycet008.

 

* >> Início da inclusão: REPORT /PWS/ZYCER306

TYPES: BEGIN OF ty_per_fiscal,

       mes TYPE t001b-frpe1,

       ano TYPE t001b-frye1,

      END OF ty_per_fiscal.

* << Fim da inclusão

 

START-OF-SELECTION.

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

  SELECT-OPTIONS: p_nrseq FOR /pws/zycet002-nrseq NO INTERVALS

   NO-EXTENSION.

  PARAMETERS:     p_flag(1) TYPE c.

 

...

 

FORM fill_date_fb08.

 

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

  DATA: v_monat LIKE t001b-frpe1.

* << Fim da exclusão

 

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

  DATA: wa_per_fiscal TYPE ty_per_fiscal.

* << Fim da inclusão

 

  CLEAR: itab_zycbt033, itab_zycbt032.

  REFRESH: itab_zycbt033, itab_zycbt032.

  CLEAR: itab_zycee005.

  REFRESH: itab_zycee005.

  itab_zycbt033-mandt  = sy-mandt.

  itab_zycbt033-tcode  = 'FB08'.

  itab_zycbt033-cpochv = wa_zycet001-nrseq.

  itab_zycbt033-belnr  = itab_zycbt030-beln

  itab_zycbt033-bukrs  = wa_zycet001-bukrs.

  itab_zycbt033-budat  = wa_zycet001-dtemb.

 

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

  v_monat = itab_zycbt033-budat+4(2).

* << Fim da exclusão

 

  itab_zycee005-mandt  = sy-mandt.

  itab_zycee005-tcode  = 'FB08'.

  itab_zycee005-tabela = '/PWS/ZYCBT030'.

  itab_zycee005-cpochv = wa_zycet001-nrseq.

  itab_zycee005-belnr  = itab_zycbt030-belnr.

  itab_zycee005-bukrs  = wa_zycet001-bukrs.

  READ TABLE itab_zycbt030_aux

    WITH KEY belnr = itab_zycbt030-belnr.

 

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

  SELECT SINGLE budat FROM bkpf INTO itab_zycee005-budat

    WHERE bukrs = wa_zycet001-bukrs   AND

          belnr = itab_zycbt030-belnr AND

          gjahr = itab_zycbt030_aux-budat.

* << Fim da exclusão

 

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

  IF sy-subrc IS INITIAL.

    itab_zycee005-budat = itab_zycbt030_aux-dtbelnr.

  ENDIF.

* << Fim da inclusão

 

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

  v_monat = itab_zycee005-budat+4(2).

* << Fim da exclusão

 

  itab_zycee005-bldat = itab_zycee005-budat.

  itab_zycee005-gjahs = itab_zycee005-budat(4).

 

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

  PERFORM checa_periodo_fiscal CHANGING wa_per_fiscal.

* << Fim da inclusão

 

  CALL FUNCTION 'FI_PERIOD_CHECK'

       EXPORTING

            i_bukrs          = itab_zycee005-bukrs

 

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

            i_gjahr          = itab_zycee005-budat+0(4)

* << Fim da exclusão

 

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

            i_gjahr          = wa_per_fiscal-ano

* << Fim da inclusão

 

            i_koart          = '+'

 

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

            i_monat          = v_monat

* << Fim da exclusão

 

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

            i_monat          = wa_per_fiscal-mes

* << Fim da inclusão

 

       EXCEPTIONS

            error_period     = 1

            error_period_acc = 2

            OTHERS           = 3.

  IF sy-subrc = 0.

 

...

 

* >> FORM CHECA_PERIODO_FISCAL foi incluído em programa /PWS/ZYCER089

 

FORM checa_periodo_fiscal CHANGING p_fiscal TYPE ty_per_fiscal.

  DATA: v_periv TYPE t001-periv.

  SELECT SINGLE periv

   FROM t001

   INTO v_periv

   WHERE bukrs EQ wa_zycet001-bukrs.

  CHECK sy-subrc EQ 0.

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = itab_zycbt030_aux-budat

            version             = v_periv

       IMPORTING

            period              = p_fiscal-mes

            year                = p_fiscal-ano

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

ENDFORM.                    " checa_periodo_fiscal