Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 01/09/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:26:14
Descrição da Nota: ESTORNO DE UMA FATURA, SE O MÊS DE LANÇAMENTO ORIGINAL ESTIVER FECHADO
Sintoma
Quando do estorno de uma fatura, se o mês de lançamento original estiver fechado, o sistema permite
a exclusão da fatura no pw.CE mas não gera lançamento contábil correspondente. Assim, ficamos com
valores em duplicidade e temos retrabalho de conciliação nos encerramentos mensais.
Solução
Criada a função para verificar o periodo corretamente
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02033 Data: 01/09/2006 Hora: 15:34:13
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02033
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00129
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01142 - 00001 - 6.0 - 00023 - OCORRE DUMP AO ALTERAR CONDIÇÃO DE PAGAMENTO DE FATURAS DE MERCAD
02158 - 00002 - 6.0 - 00025 - SISTEMA ACUSA ERRO DE MOTIVO AO ESTORNAR FB08 EM VÁRIAS FUNCIONAL
----------------------------------------------------------------------------------------------------
ESTORNO DE UMA FATURA, SE O MÊS DE LANÇAMENTO ORIGINAL ESTIVER FECHADO
----------------------------------------------------------------------------------------------------
Palavras Chave:
FATRUA - ESTORNO - PERIODO ENCERRADO - VALORES EM DUPLICIDADE
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_TRANSACAO_FB08
FUNC /PWS/ZYGL_MOTIVO_ESTORNO
REPS /PWS/LZYGLGFUXX
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_FB08
...
v_data_est(10) type c,
v_ano like T001B-FRYE1,
v_monat like T001B-FRPE1,
v_msgno like t100-msgnr.
loop at t_dados.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ t_dados-bukrs.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = t_dados-bukrs
v_date = t_dados-budat
IMPORTING
V_YEAR = v_date.
IF sy-subrc <> 0.
ENDIF.
check t_dados-tcode = 'FB08'.
v_ano = sy-datum+0(4).
v_monat = sy-datum+4(2).
...
...
EXCEPTIONS
error_period = 1
error_period_acc = 2
OTHERS = 3.
IF sy-subrc = 0.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
t_dados-stgrd = '01'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
t_dados-stgrd = /pws/zycbt007-percorr.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
t_dados-stgrd = '02'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
t_dados-stgrd = /pws/zycbt007-perencer .
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_FB08
select single * from /pws/zycbt007
where bukrs eq t_dados-bukrs.
if t_dados-stgrd = '01'.
if not /pws/zycbt007-percorr is initial.
t_dados-stgrd = /pws/zycbt007-percorr.
write t_dados-budat to v_data_est.
endif.
elseif t_dados-stgrd = '02'.
if not /pws/zycbt007-perencer is initial.
t_dados-stgrd = /pws/zycbt007-perencer.
endif.
endif.
* << Fim da exclusão
perform bdc_screen using 'SAPMF05A' '0105'.
if not v_data_est is initial.
perform bdc_field using:
'BSIS-BUDAT' v_data_est.
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYGLGFUXX
INCLUDE /PWS/LZYGLGFU01.
INCLUDE /PWS/LZYGLGFU02.
INCLUDE /PWS/LZYGLGFU03.
INCLUDE /PWS/LZYGLGFU04.
* >> Início da inclusão:
INCLUDE /PWS/LZYGLGFU05.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
FORM reverse_document_fb08.
DATA: v_monat LIKE bsis-monat,
* >> Início da exclusão: FORM REVERSE_DOCUMENT_FB08
v_belnr_ant LIKE /pws/zycie006-belnr_p. .
* << Fim da exclusão
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
v_belnr_ant LIKE /pws/zycie006-belnr_p,
v_subrc TYPE sy-subrc.
* << Fim da inclusão
CLEAR v_erro.
IF v_parcela = 'X'.
itab_zycbe033-tabela = '/PWS/ZYCIT132'.
itab_zycbe033-cpochv = itab_zycit132-nrseq.
itab_zycbe033-belnr = itab_zycit132-belnr_p.
IF NOT itab_zycit132-dt_belnrp IS INITIAL.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
v_data = /pws/zycie006-dtlanc
v_bukrs = /pws/zycie006-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc.
IF v_subrc = 0.
* << Fim da inclusão
itab_zycbe033-budat = itab_zycit132-dt_belnrp.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
ENDIF.
ELSE.
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
v_data = /pws/zycie006-dtlanc
v_bukrs = /pws/zycie006-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc.
IF v_subrc = 0.
itab_zycbe033-budat = /pws/zycie006-dtlanc.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
* << Fim da inclusão
ELSE.
itab_zycbe033-budat = sy-datum.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
ENDIF.
* << Fim da inclusão
v_belnr_ant = itab_zycit132-belnr_p.
ELSE.
itab_zycbe033-tabela = '/PWS/ZYCIT006'.
itab_zycbe033-cpochv = /pws/zycie006-nrseq.
itab_zycbe033-belnr = /pws/zycie006-belnr_p.
IF NOT itab_zycit132-dt_belnrp IS INITIAL.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
v_data = itab_zycit132-dt_belnrp
v_bukrs = /pws/zycie006-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc.
IF v_subrc = 0.
* << Fim da inclusão
itab_zycbe033-budat = itab_zycit132-dt_belnrp.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
else.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
endif.
ELSE.
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
v_data = /pws/zycie006-dtlanc
v_bukrs = /pws/zycie006-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc.
IF v_subrc = 0.
itab_zycbe033-budat = /pws/zycie006-dtlanc.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
* << Fim da inclusão
ELSE.
itab_zycbe033-budat = sy-datum.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
ENDIF.
* << Fim da inclusão
ENDIF.
v_belnr_ant = /pws/zycie006-belnr_p.
ENDIF.
itab_zycbe033-tcode = 'FB08'.
itab_zycbe033-bukrs = /pws/zycie006-bukrs.
itab_zycbe033-gjahs = itab_zycbe033-budat+0(4).
v_monat = itab_zycbe033-budat+4(2).
* >> Início da exclusão: FORM REVERSE_DOCUMENT_FB08
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
* << Fim da exclusão
APPEND itab_zycbe033.
...
----------------------------------------------------------------------------------------------------
CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYGL_MOTIVO_ESTORNO
CARACTERÍSTICAS
CLASSIFICAÇÃO:
GRUPO DE FUNÇÕES: /PWS/ZYGLGF
TEXTO BREVE: GL -Verifica período antes de atribuir motivo de estorno
TIPO DE EXECUÇÃO:
(X) - MÓDULO DE FUNÇÃO NORMAL
(X) - INÍCIO IMEDIATO
*IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
V_DATA TYPE BUDAT X Data de lançamento no
documento
V_BUKRS TYPE BUKRS X Empresa
V_KOART TYPE T001B-MKOAR X Tp conta ou entrada genérica
*EXPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA TRANSF. TEXTO BREVE
V_SUBRC TYPE SY-SUBRC X Valor retorno, valor de retorno após instruções ABAP
V_GJAHR TYPE /PWS/ZYCBE033-GJAHR Exercício
*TEXTO FONTE
FUNCTION /PWS/ZYGL_MOTIVO_ESTORNO.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" VALUE(V_DATA) TYPE BUDAT
*" VALUE(V_BUKRS) TYPE BUKRS
*" VALUE(V_KOART) TYPE T001B-MKOAR
*" EXPORTING
*" VALUE(V_SUBRC) TYPE SY-SUBRC
*" VALUE(V_GJAHR) TYPE /PWS/ZYCBE033-GJAHR
*"----------------------------------------------------------------------
* Chamado Data Descrição
* 326087 31/08/06 Seleção do motivo do estorno considerando
* período
*"----------------------------------------------------------------------
data :
v_monat type T001B-FRPE1, "Período
v_ano type bkpf-gjahr . "Ano
* v_gjahr = v_data+0(4). "Ano
v_monat = v_data+4(2). "período
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = v_bukrs
v_date = v_data
IMPORTING
V_YEAR = v_ano .
IF sy-subrc eq 0.
v_gjahr = v_ano.
else.
v_gjahr = v_data+0(4).
ENDIF.
CALL FUNCTION 'FI_PERIOD_CHECK'
EXPORTING
I_BUKRS = v_bukrs
i_gjahr = v_gjahr
i_koart = v_koart
i_monat = v_monat
EXCEPTIONS
ERROR_PERIOD = 1
ERROR_PERIOD_ACC = 2
OTHERS = 3
.
v_subrc = sy-subrc .
ENDFUNCTION.