CE PLUS - Nota 002033

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

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

SISTEMA ACUSA ERRO DE MOTIVO AO ESTORNAR FB08 EM VÁRIAS FUNCIONALIDADES.

OCORRE DUMP AO ALTERAR CONDIÇÃO DE PAGAMENTO DE FATURAS DE MERCADORIA

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.