CE PLUS - Nota 003560

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Outros

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

Data/Hora Última Alteração: 04/02/2010 20:15:12

Descrição da Nota: FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL

Sintoma

 

Criar uma função para determinação do período contábil e exercício fiscal.

 

Solução

 

Criação da função /pws/zyce_checa_periodo_fiscal que poderá ser utilizada em programas que verificam

o período contábil e o exercício fiscal.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 03560 Data: 26/04/2007 Hora: 16:14:52

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

 

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

Nota Número              : 03560

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00163

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL

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

Palavras Chave:

FUNÇÃO, PERÍODO, CONTÁBIL, FISCAL, EXERCÍCIO

 

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

Objetos da nota:

FUNC /PWS/ZYCE_CHECA_PERIODO_FISCAL

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_CHECA_PERIODO_FISCAL

 

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCE_CHECA_PERIODO_FISCAL

 

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCEGF6

TEXTO BREVE: DETERMINA PERÍODO CONTÁBIL E EXERCÍCIO FISCAL

 

 

TIPO DE EXECUÇÃO:

(X) - MÓDULO DE FUNÇÃO NORMAL

(_) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

IMPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

V_BUKRS       TYPE   T001-BUKRS                                     Empresa

V_DATE        TYPE   SY-DATUM                                       Data e hora, data (data de

                                                                    aplicação de servidor) atual

V_KOART       TYPE   T001B-MKOAR                                    Tipo de conta ou entrada

                                                                    genérica

 

 

EXPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA   TRANSF.  TEXTO BREVE

V_YEAR        TYPE   T009B-BDATJ                GL - Data Fechamento do Contrato

V_MONAT       TYPE   T001B-FRPE1                Primeiro período contábil permitido (intervalo 1)

V_STGRD       TYPE   T001-PERIV                 Valor de retorno, valor de retorno após instruções

                                                ABAP

 

 

MODIFIC.:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

 

TABELAS:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

 

EXCEÇÕES:

 

 

EXCEÇÃO                    TEXTO BREVE

VARIANTE_DE_EXERCICIO      Variante de exercício não encontrada

DATA_NAO_ENCONTRADA        Data Não Encontrada

EMPRESA_NAO_ENCONTRADA     Empresa Não Encontrada

PERIOD_IN_NOT_VALID        Periodo Inválido

PERIOD_NOT_ASSIGNED        Período não Aceito

VERSION_UNDEFINED          Versão Indefinida

 

TEXTO FONTE PARA MÓDULO DE FUNÇÃO:

 

* >> Início da inclusão: FUNCTION /PWS/ZYCE_CHECA_PERIODO_FISCAL

 

FUNCTION /pws/zyce_checa_periodo_fiscal.

*"----------------------------------------------------------------------

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(V_BUKRS) TYPE  T001-BUKRS

*"     REFERENCE(V_DATE) TYPE  SY-DATUM

*"     REFERENCE(V_KOART) TYPE  T001B-MKOAR

*"  EXPORTING

*"     VALUE(V_YEAR) TYPE  T009B-BDATJ

*"     VALUE(V_MONAT) TYPE  T001B-FRPE1

*"     VALUE(V_STGRD) TYPE  T001-PERIV

*"  EXCEPTIONS

*"      VARIANTE_DE_EXERCICIO

*"      DATA_NAO_ENCONTRADA

*"      EMPRESA_NAO_ENCONTRADA

*"      PERIOD_IN_NOT_VALID

*"      PERIOD_NOT_ASSIGNED

*"      VERSION_UNDEFINED

*"----------------------------------------------------------------------

 

*  Tabelas transparentes:

  TABLES : t001.

 

*  Variáveis:

  DATA: v_burks TYPE t001-bukrs,      "EMPRESA

        v_periv TYPE t001-periv.      "VERSÃO

 

*-----------------------------------------------------------------------

 

  SELECT SINGLE periv FROM t001

               INTO v_periv

               WHERE bukrs EQ v_bukrs.

 

  IF v_bukrs IS INITIAL.

    RAISE empresa_nao_encontrada.

    EXIT.

  ELSEIF v_date IS INITIAL.

    RAISE data_nao_encontrada.

    EXIT.

  ELSEIF v_periv IS INITIAL.

    RAISE variante_de_exercicio.

    EXIT.

  ENDIF.

 

 

  CALL FUNCTION 'DETERMINE_PERIOD'

       EXPORTING

            date                = v_date

            version             = v_periv

       IMPORTING

            year                = v_year

            period              = v_monat

       EXCEPTIONS

            period_in_not_valid = 1

            period_not_assigned = 2

            version_undefined   = 3

            OTHERS              = 4.

 

  IF sy-subrc <> 0.

 

    IF sy-subrc = 1.

      RAISE period_in_not_valid.

      EXIT.

    ELSEIF sy-subrc = 2.

      RAISE period_not_assigned.

      EXIT.

    ELSEIF sy-subrc = 3.

      RAISE version_undefined.

      EXIT.

    ENDIF.

 

* Retornou com sucesso da função determine_period

  ELSE.

 

    CALL FUNCTION 'FI_PERIOD_CHECK'

         EXPORTING

              i_bukrs          = v_bukrs

              i_gjahr          = v_year

              i_koart          = v_koart

              i_monat          = v_monat

         EXCEPTIONS

              error_period     = 1

              error_period_acc = 2

              OTHERS           = 3.

 

* Verifica se retornou com erro da função

    IF sy-subrc <> 0.

* Retorno: período fechado

      v_stgrd = '02'.

    ELSE.

* Retornou com sucesso da função fi_period_check

* Retorno: período aberto

      v_stgrd = '01'.

    ENDIF.

 

  ENDIF.

 

ENDFUNCTION.

* << Fim da inclusão