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.
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