Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Comissão de Agente
Data/Hora da Publicação: 16/05/2007 00:00:00
Data/Hora Última Alteração: 21/02/2011 17:57:56
Descrição da Nota: VERIFICAÇÃO DE EXERCÍCIO FISCAL NA COMISSÃO DE AGENTE
Sintoma
Antes de executar os lançamentos contábeis, é necessário identificar o exercício fiscal e verificar
se o mesmo encontra-se aberto.
Solução
Substituição das chamadas da função standard 'FI_PERIOD_CHECK' pela função
/PWS/ZYCE_CHECA_PERIODO_FISCAL' que agrupa as verificações do exercício fiscal.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03687 Data: 16/05/2007 Hora: 13:58:06
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03687
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00166
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03560 - 00001 - 7.0 - 00001 - FUNÇÃO PARA DETERMINAÇÃO DE PERÍODO CONTÁBIL E EXERCÍCIO FISCAL
----------------------------------------------------------------------------------------------------
VERIFICAÇÃO DE EXERCÍCIO FISCAL NA COMISSÃO DE AGENTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
FUNÇÃO, COMISSÃO DE AGENTE, VERIFICAÇÃO, ANO, MÊS, PERÍODO,
CONTÁBIL, EXERCÍCIO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCE017F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE017F01
...
ENDLOOP.
ENDIF.
ENDFORM.
FORM atualiza_parvw.
SELECT SINGLE txtdesc FROM /pws/zycbt037
INTO (/pws/zycbt037-txtdesc)
WHERE parvw = /pws/zycee001-parvw.
v_s_parvw = /pws/zycbt037-txtdesc.
ENDFORM.
FORM fill_date_f02.
* >> Início da exclusão: FORM FILL_DATE_F02
DATA: v_datavalor LIKE sy-datlo,
v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F02
DATA: v_datavalor LIKE sy-datlo,
v_retorno(2) TYPE c.
* << Fim da inclusão
PERFORM get_parameters_f02.
itab_zycee005-mandt = sy-mandt.
itab_zycee005-tcode = 'F-02'.
itab_zycee005-tabela = '/PWS/ZYCET010'.
itab_zycee005-cpochv = /pws/zycee001-nrseq.
READ TABLE itab_zycet001 WITH KEY nrseq = /pws/zycee001-nrseq.
PERFORM determina_bkpf_bldat USING itab_zycee005-bldat.
PERFORM determina_bkpf_budat USING itab_zycee005-budat.
PERFORM verify_null_field1 USING itab_zycet001-bukrs
'BUKRS'
text-092.
itab_zycee005-bukrs = itab_zycet001-bukrs.
* >> Início da exclusão: FORM FILL_DATE_F02
CALL FUNCTION 'FI_PERIOD_CHECK'
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F02
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM FILL_DATE_F02
i_bukrs = itab_zycee005-bukrs
i_gjahr = itab_zycee005-budat+0(4)
i_koart = '+'
i_monat = v_monat
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F02
V_BUKRS = itab_zycee005-bukrs
V_DATE = itab_zycee005-budat
V_KOART = '+'
IMPORTING
V_STGRD = v_retorno
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_F02
error_period = 1
error_period_acc = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F02
VARIANTE_DE_EXERCICIO = 1
DATA_NAO_ENCONTRADA = 2
EMPRESA_NAO_ENCONTRADA = 3
PERIOD_IN_NOT_VALID = 4
PERIOD_NOT_ASSIGNED = 5
VERSION_UNDEFINED = 6
OTHERS = 7.
* << Fim da inclusão
IF sy-subrc = 0.
* >> Início da inclusão: FORM FILL_DATE_F02
IF v_retorno = '01'.
* << Fim da inclusão
itab_zycee005-stgrd = '01'.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
* >> Início da inclusão: FORM FILL_DATE_F02
ENDIF.
* << Fim da inclusão
ENDIF.
MOVE: itab_zycee005-budat TO itab_zycet010-dtlanc,
itab_zycee005-budat TO itab_zycet010-dtvencto.
PERFORM determina_bseg_valut USING itab_zycee005-d_valut.
PERFORM determina_bseg_valut USING itab_zycee005-c_valut.
PERFORM verify_null_field1 USING v_waers
'WAERS'
text-015.
itab_zycee005-waers = v_waers.
itab_zycee005-c_gsber = wa_zycet037-gsber.
...
...
DELETE FROM /pws/zycet010
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
DELETE itab_zycet010 INDEX v_ind.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM fill_date_fb08_del.
* >> Início da exclusão: FORM FILL_DATE_FB08_DEL
DATA: v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
DATA: v_retorno(2) TYPE c.
* << Fim da inclusão
v_contabilizado = 'N'.
CLEAR itab_zycet010_ant.
MOVE itab_zycet010 TO itab_zycet010_ant.
itab_zycee005-tcode = 'FB08'.
itab_zycee005-tabela = '/PWS/ZYCET010'.
CONCATENATE /pws/zycee001-nrseq
itab_zycet010-lifnr
INTO itab_zycee005-cpochv.
itab_zycee005-belnr = itab_zycet010-belnr.
itab_zycee005-gjahs = itab_zycet010-dtlanc+0(04).
READ TABLE itab_zycet001 WITH KEY nrseq = itab_zycet010-nrseq.
itab_zycee005-budat = itab_zycet010-dtlanc.
itab_zycee005-bukrs = itab_zycet001-bukrs.
* >> Início da exclusão: FORM FILL_DATE_FB08_DEL
v_monat = itab_zycee005-budat+4(2).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
itab_zycee005-bldat = itab_zycee005-budat.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATE_FB08_DEL
itab_zycee005-bldat = itab_zycee005-budat.
CALL FUNCTION 'FI_PERIOD_CHECK'
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM FILL_DATE_FB08_DEL
i_bukrs = itab_zycee005-bukrs
i_gjahr = itab_zycee005-budat+0(4)
i_koart = '+'
i_monat = v_monat
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
V_BUKRS = itab_zycee005-bukrs
V_DATE = itab_zycee005-budat
V_KOART = '+'
IMPORTING
V_STGRD = v_retorno
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM FILL_DATE_FB08_DEL
error_period = 1
error_period_acc = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
VARIANTE_DE_EXERCICIO = 1
DATA_NAO_ENCONTRADA = 2
EMPRESA_NAO_ENCONTRADA = 3
PERIOD_IN_NOT_VALID = 4
PERIOD_NOT_ASSIGNED = 5
VERSION_UNDEFINED = 6
OTHERS = 7.
* << Fim da inclusão
IF sy-subrc = 0.
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
IF v_retorno = '01'.
* << Fim da inclusão
itab_zycee005-stgrd = '01'.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
* >> Início da inclusão: FORM FILL_DATE_FB08_DEL
ENDIF.
* << Fim da inclusão
ENDIF.
CALL CUSTOMER-FUNCTION '018'
TABLES
t_dados = itab_zycee005.
APPEND itab_zycee005.
IF NOT itab_zycet010-belnr_ir IS INITIAL.
itab_zycee005-belnr = itab_zycet010-belnr_ir.
APPEND itab_zycee005.
ENDIF.
IF v_modo IS INITIAL.
...
...
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
DELETE FROM /pws/zycet013 WHERE nrseq = itab_zycet013-nrseq
AND lifnr = itab_zycet013-lifnr
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
ENDIF.
ENDLOOP.
ENDFORM.
FORM executa_fb08.
* >> Início da exclusão: FORM EXECUTA_FB08
DATA: v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
DATA: v_retorno(2) TYPE c.
* << Fim da inclusão
CLEAR: it013_aux.
REFRESH: it013_aux.
LOOP AT itab_zycet013.
MOVE-CORRESPONDING itab_zycet013 TO it013_aux.
COLLECT it013_aux.
ENDLOOP.
SORT it013_aux BY belnr DESCENDING.
LOOP AT it013_aux.
v_index = sy-tabix.
CLEAR: itab_zycet005, itab_zycee005.
...
...
IF sy-subrc = 0.
itab_zycee005-bldat = itab_zycet013-dtlanc.
itab_zycee005-budat = itab_zycet013-dtlanc.
itab_zycee005-gjahs = itab_zycet013-dtlanc(4).
ENDIF.
READ TABLE itab_zycet010 WITH KEY lifnr = it013_aux-lifnr.
READ TABLE itab_zycet001 WITH KEY nrseq = it013_aux-nrseq.
IF sy-subrc = 0.
itab_zycee005-bukrs = itab_zycet001-bukrs.
ENDIF.
* >> Início da exclusão: FORM EXECUTA_FB08
v_monat = itab_zycee005-budat+4(2).
CALL FUNCTION 'FI_PERIOD_CHECK'
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM EXECUTA_FB08
i_bukrs = itab_zycee005-bukrs
i_gjahr = itab_zycee005-budat+0(4)
i_koart = '+'
i_monat = v_monat
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
V_BUKRS = itab_zycee005-bukrs
V_DATE = itab_zycee005-budat
V_KOART = '+'
IMPORTING
V_STGRD = v_retorno
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM EXECUTA_FB08
error_period = 1
error_period_acc = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_FB08
VARIANTE_DE_EXERCICIO = 1
DATA_NAO_ENCONTRADA = 2
EMPRESA_NAO_ENCONTRADA = 3
PERIOD_IN_NOT_VALID = 4
PERIOD_NOT_ASSIGNED = 5
VERSION_UNDEFINED = 6
OTHERS = 7.
* << Fim da inclusão
IF sy-subrc = 0.
* >> Início da inclusão: FORM EXECUTA_FB08
IF v_retorno = '01'.
* << Fim da inclusão
itab_zycee005-stgrd = '01'.
ELSE.
itab_zycee005-stgrd = '02'.
itab_zycee005-budat = sy-datlo.
* >> Início da inclusão: FORM EXECUTA_FB08
ENDIF.
* << Fim da inclusão
ENDIF.
CALL CUSTOMER-FUNCTION '012'
TABLES
t_dados = itab_zycee005.
APPEND itab_zycee005.
IF NOT it013_aux-belnr_ir IS INITIAL.
itab_zycee005-belnr = it013_aux-belnr_ir.
READ TABLE itab_zycet013 WITH KEY lifnr = it013_aux-lifnr
gsber = it013_aux-gsber
belnr = it013_aux-belnr_ir.
...
...
PERFORM estorna_documento.
ENDIF.
ELSE.
LOOP AT t_zycbt032.
MESSAGE i001 WITH t_zycbt032-msg.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM.
FORM dados_cabecalho_f02.
* >> Início da exclusão: FORM DADOS_CABECALHO_F02
DATA: v_monat LIKE t001b-frpe1.
* << Fim da exclusão
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
DATA: v_retorno(2) TYPE c.
* << Fim da inclusão
t_dados-mandt = sy-mandt.
t_dados-tcode = text-115.
t_dados-tabela = text-116.
t_dados-cpochv = /pws/zycee001-nrseq.
CLEAR itab_zycbt011.
v_codeven = '004'.
READ TABLE itab_zycbt011 WITH KEY codmod = 'X'
codeven = v_codeven.
t_dados-blart = itab_zycbt011-blart.
t_dados-bktxt = itab_zycbt011-txtdesc.
...
...
PERFORM seleciona_conta_sem_valor.
ELSE.
PERFORM seleciona_conta_vkoa_sem_valor.
ENDIF.
PERFORM determina_bkpf_bldat USING t_dados-bldat.
PERFORM determina_bkpf_budat USING t_dados-budat.
PERFORM verify_null_field1 USING itab_zycet001-bukrs
'BUKRS'
text-092.
t_dados-bukrs = itab_zycet001-bukrs.
* >> Início da exclusão: FORM DADOS_CABECALHO_F02
v_monat = t_dados-budat+4(2).
CALL FUNCTION 'FI_PERIOD_CHECK'
* << Fim da exclusão
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
CALL FUNCTION '/PWS/ZYCE_CHECA_PERIODO_FISCAL'
* << Fim da inclusão
EXPORTING
* >> Início da exclusão: FORM DADOS_CABECALHO_F02
i_bukrs = t_dados-bukrs
i_gjahr = t_dados-budat+0(4)
i_koart = '+'
i_monat = v_monat
* << Fim da exclusão
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
V_BUKRS = t_dados-bukrs
V_DATE = t_dados-budat
V_KOART = '+'
IMPORTING
V_STGRD = v_retorno
* << Fim da inclusão
EXCEPTIONS
* >> Início da exclusão: FORM DADOS_CABECALHO_F02
error_period = 1
error_period_acc = 2
OTHERS = 3.
* << Fim da exclusão
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
VARIANTE_DE_EXERCICIO = 1
DATA_NAO_ENCONTRADA = 2
EMPRESA_NAO_ENCONTRADA = 3
PERIOD_IN_NOT_VALID = 4
PERIOD_NOT_ASSIGNED = 5
VERSION_UNDEFINED = 6
OTHERS = 7.
* << Fim da inclusão
IF sy-subrc = 0.
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
IF v_retorno = '01'.
* << Fim da inclusão
t_dados-stgrd = '01'.
ELSE.
t_dados-stgrd = '02'.
t_dados-budat = sy-datlo.
* >> Início da inclusão: FORM DADOS_CABECALHO_F02
ENDIF.
* << Fim da inclusão
ENDIF.
PERFORM determina_bseg_valut USING itab_zycee005-d_valut.
PERFORM determina_bseg_valut USING itab_zycee005-c_valut.
t_dados-waers = it013_aux-waers.
PERFORM verify_null_field1 USING it013_aux-waers
'WAERS'
text-015.
IF NOT v_vlcomis IS INITIAL.
t_dados-wrbtr = it013_aux-vlme.
ELSE.
...