CE PLUS - Nota 001033

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina Mensal

Data/Hora da Publicação: 16/03/2006 00:00:00

Data/Hora Última Alteração: 18/02/2011 15:04:19

Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO - ESTORNO MENSAL - DATA LANÇAMENTO ESTORNO

Sintoma

Quando esta parametrizado para ser último dia útil do mês e a rotina mensal é em fechamento

intermediário, não joga o dia correto para estorno. Quando esta parametrizado para ser o primeiro

dia útil do mês, ele não verifica se o dia é feriado, apenas final de semana.

 

 

Solução

Se for fechamento intermediário, jogar o último dia do mês. Verificar se o dia útil selecionado é

feriado.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01033 Data: 16/03/2006 Hora: 11:25:03

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

 

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

Nota Número              : 01033

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00022

Agrupamento              : 00105

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

ROTINA MENSAL EXPORTAÇÃO - ESTORNO MENSAL - DATA LANÇAMENTO ESTORNO

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

Palavras Chave:

ROTINA MENSAL EXPORTAÇÃO ESTORNO MENSAL

DATA LANÇAMENTO ESTORNO DIA UTIL FECHAMENTO INTERMEDIARIO

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

Objetos da nota:

REPS /PWS/ZYCBR003

 

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

Modificações efetuadas em REPS /PWS/ZYCBR003

 

 

 

 

Contexto: FORM mapeia_transacao.

 

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCBT154'.

  CONCATENATE itab_zycbt154-codmodul itab_zycbt154-tpcontr

              itab_zycbt154-bco      itab_zycbt154-dtcont

              itab_zycbt154-bukrs    itab_zycbt154-gsber

              itab_zycbt154-waers    itab_zycbt154-d_newko

              itab_zycbt154-c_newko  INTO itab_zycbe033-cpochv.

 

  itab_zycbe033-belnr = itab_zycbt154-belnr_pr.

  itab_zycbe033-bukrs = itab_zycbt154-bukrs.

  itab_zycbe033-gjahs = itab_zycbt154-dtcont(4).

 

* Verifica o parâmetro da tabela /PWS/ZYCBT007, para a data do estorno

* Se estiver parametrizada na tabela /PWS/ZYCBT007-DATAESTORNO = 'UDM',

* a data a ser utilizada para o estorno é o que foi digitada.

  v_data = s_dtentr.

 

  IF wa_zycbt007-dataestorno EQ 'PDM'.     "1º dia do mês seguinte

    CONCATENATE v_data(6) '01' INTO v_data.

 

  ELSEIF wa_zycbt007-dataestorno EQ 'PDU'. "1º dia útil mês seguinte

    CONCATENATE v_data(6) '01' INTO v_data.

    PERFORM converte_data.

 

* <<Inicio Inclusão>>

  ELSEIF wa_zycbt007-dataestorno EQ 'UDM'. "Último dia mês seguinte

    IF s_rbinte = 'X'.

      CALL FUNCTION 'LAST_DAY_OF_MONTHS'

           EXPORTING

                day_in            = v_data

           IMPORTING

                last_day_of_month = v_data

           EXCEPTIONS

                day_in_no_date    = 1

                OTHERS            = 2.

    ENDIF.

* <<Fim Inclusão>>

 

  ELSEIF wa_zycbt007-dataestorno EQ 'UDU'. "Último dia útil mês seguinte

* <<Inicio Inclusão>>

    IF s_rbinte = 'X'.

      CALL FUNCTION 'LAST_DAY_OF_MONTHS'

           EXPORTING

                day_in            = v_data

           IMPORTING

                last_day_of_month = v_data

           EXCEPTIONS

                day_in_no_date    = 1

                OTHERS            = 2.

    ENDIF.

* <<Fim Inclusão>>

    PERFORM converte_data.

  ENDIF.

 

* Data para estorno do documento contábil.

  itab_zycbe033-budat = v_data.

  itab_zycbe033-bldat = s_dtentr.

 

* Faz a verificação do período em aberto.

  PERFORM determina_periodo USING itab_zycbe033-budat

                                  itab_zycbe033-bukrs

                         CHANGING v_monat.

 

  PERFORM determina_ano USING itab_zycbe033-budat

                              itab_zycbe033-bukrs

                     CHANGING v_ano.

 

 

...

 

 

endform.

 

 

 

 

Contexto: FORM converte_data.

 

  CLEAR:  itab_period, v_confirm, v_txt_f.

  REFRESH itab_period.

 

  CALL FUNCTION 'DAY_ATTRIBUTES_GET'

       EXPORTING

            factory_calendar           = wa_zycbt007-hcalidbr

            holiday_calendar           = wa_zycbt007-hcalidbr

            date_from                  = v_data

            date_to                    = v_data

            language                   = text-102

       TABLES

            day_attributes             = itab_period

       EXCEPTIONS

            factory_calendar_not_found = 1

            holiday_calendar_not_found = 2

            date_has_invalid_format    = 3

            date_inconsistency         = 4

            OTHERS                     = 5.

 

  READ TABLE itab_period WITH KEY weekday = 6.

 

  IF sy-subrc EQ 0.

    PERFORM verifica_dia.

  ELSE.

    READ TABLE itab_period WITH KEY weekday = 7.

    IF sy-subrc EQ 0.

      PERFORM verifica_dia.

* <<Inicio Inclusão>>

    ELSE.

      LOOP AT itab_period WHERE NOT txt_short IS initial

                             OR NOT txt_long  IS initial.

        PERFORM verifica_dia.

      ENDLOOP.

* <<Fim Inclusão>>

    ENDIF.

  ENDIF.

 

ENDFORM.                    " converte_data