CE PLUS - Nota 003687

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

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

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.

...