CE PLUS - Nota 010429

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 26/07/2010 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:55:30

Descrição da Nota: VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)

Sintoma

Ao contabilizar uma vinculação na F-30 o sistema esta efetuando o Rateio do Centro de Lucro

incorreto e perde o ok_code.

 

 

Solução

Mapear corretamente o campo "tipo de conta" para o BI encontrar a tela correta e poder finalizar.

Ajustar rateio centro de lucro na ida e estorno. Ajustar pontos de exit que não tem verificação se o

mesmo esta ativo. Criar pontos de exit que não estão no produto.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÃO DE FATURAS EXPORTAÇÃO, CONTABILIZAÇÃO CONTAS IGUAIS

DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR CONTRATO

MAPEAMENTO SOCIEDADE PARCEIRA NAS CONTABILIZAÇÕES

VALORES MANTIDOS NO EXTERIOR COM VINCULAÇÃO E LIQUIDAÇÃO AUTOMÁTICA.

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 10429 Data: 26/07/2010 Hora: 11:40:36

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 10429

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00004

Agrupamento              : 00032

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

05825  - 00001 - 7.0    - 00004  - VALORES MANTIDOS NO EXTERIOR COM VINCULAÇÃO E LIQUIDAÇÃO AUTOMÁTI

08536  - 00002 - 7.0    - 00009  - DA-VINCULAÇÃO/LIQUIDAÇÃO-OTIMIZAÇÃO-BUSCA TAXAS/TIPO DOCTO. POR C

09688  - 00003 - 8.0    - 00002  - VINCULAÇÃO DE FATURAS EXPORTAÇÃO, CONTABILIZAÇÃO CONTAS IGUAIS

10188  - 00004 - 8.0    - 00003  - MAPEAMENTO SOCIEDADE PARCEIRA NAS CONTABILIZAÇÕES

----------------------------------------------------------------------------------------------------

VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)

----------------------------------------------------------------------------------------------------

Palavras Chave:

VINCULAÇÃO - RATEIO CENTRO DE LUCRO INCORRETO E ERRO F-30(PERDE OK_CODE)

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

FUNC /PWS/ZYCB_TRANSACAO_F_30_PR

REPS /PWS/MZYCB009F01

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009F08

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_PR

 

...

    v_last(1),

    v_linhas(3)          TYPE n,

    v_zuonr              LIKE /pws/zycbe033-d_zuonr,

    v_cont(2)            TYPE n,

    v_subrc              LIKE sy-subrc,

    v_xpos_wrbtr(15),

    v_pos_wrbtr          TYPE i,

    v_vl_min(16)         VALUE '0,01',

    v_vl_max(16)         VALUE '9.999.999.999,99',

    v_xpos_belnr(2) TYPE n,

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR

    v_agkoa              like /pws/zycbe033-agkoa,

* << Fim da inclusão

    v_selecao(2) TYPE n .

  DATA: itab_t041t LIKE t041t OCCURS 0 WITH HEADER LINE.

  TABLES:

          /pws/zycbt089.

  SELECT SINGLE selps FROM t021r

    INTO  v_xpos1

    WHERE event = 'SL-AG'

      AND feldn = 'BELNR'.

  ADD 1 TO v_xpos1.

  SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

...

 

...

      CONCATENATE 'RF05A-XPOS1(' v_xpos_belnr ')' INTO v_xpos.

      IF t_dados-d_newko1 IS INITIAL.

        PERFORM bdc_field USING:

                'RF05A-AGKON' t_dados-d_newko,

                'RF05A-AGKOA' wa_tbsl-koart,

                v_xpos        'X'.

        IF NOT t_dados-umskz IS INITIAL.

          PERFORM bdc_field USING:

                'RF05A-AGUMS' t_dados-umskz.

        ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR

        v_agkoa = wa_tbsl-koart.

* << Fim da inclusão

      ELSE.

        PERFORM bdc_field USING:

                'RF05A-AGKON' t_dados-d_newko1,

                'RF05A-AGKOA' 'S',

                v_xpos        'X'.

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR

        v_agkoa = wa_tbsl-koart.

* << Fim da inclusão

      ENDIF.

      PERFORM bdc_field USING: 'BDC_OKCODE'  '=PA'.

...

 

...

                               'BDC_OKCODE' '=PI'.

    ENDIF.

    PERFORM bdc_screen USING 'SAPDF05X'   '3100'.

    IF t_dados-flag_nc EQ 'X'.

      PERFORM bdc_field USING: 'BDC_OKCODE' '=BU'.

    ELSE.

      PERFORM bdc_field USING: 'BDC_OKCODE' '=BS'.

      perform verifica_empresas using t_dados-bukrs

                                      'UMBUCHNG'

                                      t_dados-d_newko

* >> Início da exclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR

                                      t_dados-agkoa.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCB_TRANSACAO_F_30_PR

                                      v_agkoa.

* << Fim da inclusão

    ENDIF.

    MOVE t_dados-brnch TO c_brnch.

    PERFORM bdc_screen USING 'SAPMF05A' '0700'.

    PERFORM bdc_field USING:

            'BDC_CURSOR' 'RF05A-NEWBS',

            'BDC_OKCODE' '=PI'.

    PERFORM bdc_screen USING 'SAPMF05A' '0610'.

    PERFORM bdc_field USING:

            'BDC_CURSOR'  '*BSEG-BUZEI',

            '*BSEG-BUZEI' v_linhas,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F01

 

...

endform.

form fill_date1_f02 tables itab_vinc like itab_zycbt005[].

  data:

    v_cpochv   like /pws/zycbe033-cpochv,

    v_vlslf    like /pws/zycbt017-vlslf,

    v_ace      type n,

    v_num_ov   type n,

    v_num_vinc type n.

  data: begin of itab_ace_aux occurs 2.

  data: belnr type belnr_d,

* >> Início da inclusão: FORM FILL_DATE1_F02

        umskz type bsad-umskz,

* << Fim da inclusão

        budat type datum,

        wrbtr type wrbtr,

        prctr type prctr.

  data: end of itab_ace_aux.

  perform clear_date_batch.

  loop at itab_vinc

    where flag = 'A'.

    if itab_vinc-status ne 'C'.

      itab_vinc-flag = 'I'.

      modify itab_vinc.

...

 

...

           importing

                v_year                 = v_year

           exceptions

                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.

* >> Início da exclusão: FORM FILL_DATE1_F02

      select belnr budat wrbtr prctr

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F02

      select belnr

             umskz

             budat wrbtr prctr

* << Fim da inclusão

             from bsad

             into table itab_ace_aux

             where bukrs =  itab_vinc-bukrs       and

                   kunnr =  itab_zycbe033-c_newko and

                   augdt =  itab_vinc-dtvincul    and

                   augbl =  itab_vinc-belnr       and

* >> Início da exclusão: FORM FILL_DATE1_F02

                   gjahr =  v_year and

                   belnr <> itab_vinc-belnr       and

                   umskz <> space.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F02

                   gjahr =  v_year.

      if sy-subrc = 0.

        delete itab_ace_aux where not ( belnr ne itab_vinc-belnr and

                                        umskz ne space ).

      endif.

      if sy-subrc ne 0 or itab_ace_aux[] is initial.

        select belnr umskz budat wrbtr prctr

               from bsad

               into table itab_ace_aux

               where bukrs =  itab_vinc-bukrs       and

                     kunnr =  itab_zycbe033-c_newko and

                     augdt =  itab_vinc-dtvincul    and

                     augbl =  itab_vinc-belnr_vinc  and

                     gjahr =  v_year.

      endif.

      if sy-subrc = 0.

        delete itab_ace_aux where not ( belnr ne itab_vinc-belnr_vinc

                                    and umskz ne space ).

* << Fim da inclusão

    endif.

* >> Início da inclusão: FORM FILL_DATE1_F02

    endif.

* << Fim da inclusão

    itab_zycbe033-tcode  = 'F-02'.

    itab_zycbe033-tabela = '/PWS/ZYCBT005'.

    concatenate itab_vinc-nrseqc   itab_vinc-tpdesp

                itab_vinc-nrparc   itab_vinc-dtincl

                itab_vinc-nrinvoic itab_vinc-gsberf

                itab_vinc-dtvincul itab_vinc-dtvencto

...

 

...

        endloop.

        if sy-subrc ne 0.

          itab_zycbt036-residuo = wa_zycbt221-vlr_rateio.

          append itab_zycbt036.

          itab_zycbe033-wrbtr = itab_zycbe033-wrbtr +

                                itab_zycbt036-residuo.

        endif.

      endloop.

    endif.

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM FILL_DATE1_F02

    perform busca_exit.

    read table itab_zyglt100 with key zexit = 'VNC023'.

    if sy-subrc eq 0

       and not itab_zyglt100-zexit_ativa is initial.

      perform (itab_zyglt100-formulario)

              in program (itab_zyglt100-programa).

    endif.

* << Fim da inclusão

    append itab_zycbe033.

  endloop.

  if /pws/zycbe001-tpcontr(1)  = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F02

     wa_zycbt089-rateio_cl   = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F02

     wa_zycbt089-rateio_cl   = 'X'

     and not itab_zycbt221[] is initial.

* << Fim da inclusão

    move itab_zycbt036[] to itab_zycbt036_dp[].

  endif.

* >> Início da exclusão: FORM FILL_DATE1_F02

  check sy-subrc eq 0.

* << Fim da exclusão

  v_tpcontabil = 'E_VIN'.

  perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

  loop at itab_zycbt034.

    message i016 with itab_zycbt034-descricao.

  endloop.

  if /pws/zycbe001-tpcontr(1)  = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F02

       wa_zycbt089-rateio_cl   = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F02

       wa_zycbt089-rateio_cl   = 'X'

       and not itab_zycbt221[] is initial.

* << Fim da inclusão

    describe table itab_zycbt221 lines v_num_ov.

    describe table itab_vinc     lines v_num_vinc.

    v_ace = v_num_ov / v_num_vinc.

  endif.

  if itab_zycbt034 is initial.

    if /pws/zycbe001-tpcontr(1) = 'D' and

         wa_zycbt089-f_cont_vinc = 'A' and

* >> Início da exclusão: FORM FILL_DATE1_F02

          wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F02

       ( wa_zycbt089-rateio_cl  = ''  or

         itab_zycbt221[] is initial ).

* << Fim da inclusão

      call function '/PWS/ZYCB_TRANSACAO_F_02H'

           exporting

                v_modo          = v_modo_bi

           tables

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

           exceptions

                campo_em_branco = 1

                others          = 2.

...

 

...

    v_conta         like /pws/zycbe033-c_newko,

    v_cpochv        like /pws/zycbe033-cpochv,

    v_vlslf         like /pws/zycbt017-vlslf,

    v_ult_dtvincul  like /pws/zycbt005-dtvincul,

    v_txcamb        like /pws/zycbt005-txcamb,

    v_grava(1),

    v_codeven_aux   like v_codeven,

    v_saknr         type /pws/zycbe033-c_newko.

  data: begin of itab_ace_aux occurs 2.

  data: belnr type belnr_d,

* >> Início da inclusão: FORM FILL_DATE1_F30

        umskz type bsad-umskz,

* << Fim da inclusão

        budat type datum,

        wrbtr type wrbtr,

        prctr type prctr.

  data: end of itab_ace_aux.

  perform limpa_itabs_contabil.

  perform get_parameters_001.

  loop at itab_vinc.

    if itab_vinc-status eq 'I'

    or itab_vinc-status eq ' '.

      v_grava = 'N'.

...

 

...

        read table itab_zyglt316 index 1.

        read table itab_zyglt316 index 1.

        itab_zycbe033-d_newko = itab_zyglt316-konth.

        itab_zycbe033-agkon   = itab_zyglt316-konth.

        itab_zycbe033-newbs   = '50'.

      endif.

      itab_zycbe033-agums   = ''.

    endif.

    perform busca_exit.

    read table itab_zyglt100 with key zexit = 'VNC019'.

* >> Início da exclusão: FORM FILL_DATE1_F30

    if sy-subrc eq 0.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

    if sy-subrc eq 0

       and not itab_zyglt100-zexit_ativa is initial.

* << Fim da inclusão

      perform (itab_zyglt100-formulario)

              in program (itab_zyglt100-programa).

    endif.

    append itab_zycbe033.

    clear itab_zycbt036.

    itab_zycbt036-tcode  = 'F-30'.

    itab_zycbt036-tabela = '/PWS/ZYCBT005'.

    itab_zycbt036-cpochv = v_cpochv.

    itab_zycbt036-belnr  = itab_vinc-belnr.

    clear v_year.

...

 

...

              period_not_assigned    = 5

              version_undefined      = 6

              others                 = 7.

    select single * from bkpf

       where bukrs = itab_vinc-bukrs

         and belnr = itab_vinc-belnr_f02

         and gjahr = v_year.

    itab_zycbt036-dtdocto = bkpf-budat.

    append itab_zycbt036.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30

      not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

      not wa_zycbt089-rateio_cl is initial

      and not itab_zycbt221[] is initial.

* << Fim da inclusão

      move itab_zycbt036[] to itab_doctos[].

      clear itab_zycbt036.

      refresh itab_zycbt036.

      loop at itab_zycbt221.

        itab_zycbt036-tcode   = 'F-30'.

        itab_zycbt036-tabela  = 'ZYCBT005'.

        itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

        itab_zycbt036-residuo = itab_zycbt221-saldo_ov..

        itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

        loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.

...

 

...

      v_saknr = itab_zycbe033-agkon.

      perform unlock_razao

        using

          v_saknr

          itab_zycbe033-bukrs.

    endif.

  v_tpcontabil = 'E_D_ACE'.

  perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30

      not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

      not wa_zycbt089-rateio_cl is initial

      and not itab_zycbt221[] is initial.

* << Fim da inclusão

      call function '/PWS/ZYCB_TRANSACAO_F_30_PR'

           exporting

                v_modo          = v_modo_bi

                v_vinc_tot      = 'X'

           tables

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

                t_zycbt036      = itab_zycbt036

                t_doctos        = itab_doctos

...

 

...

      itab_zycbe033-agkoa = 'D'.

      itab_zycbe033-agkon = /pws/zycbe001-kunnr.

      itab_zycbe033-agums = wa_zycbt011-agums.

      itab_zycbe033-umskz = wa_zycbt011-agums.

      itab_zycbe033-d_newko = itab_zycbe033-agkon.

      itab_zycbe033-newbs   = '19'.

    endif.

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

    perform busca_exit.

    read table itab_zyglt100 with key zexit = 'VNC020'.

* >> Início da exclusão: FORM FILL_DATE1_F30

    if sy-subrc eq 0.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

    if sy-subrc eq 0

       and not itab_zyglt100-zexit_ativa is initial.

* << Fim da inclusão

      perform (itab_zyglt100-formulario)

              in program (itab_zyglt100-programa).

    endif.

    append itab_zycbe033.

  endif.

  loop at itab_vinc

    where flag = 'A' or flag = 'E'

          or flag eq 'S'.

    if itab_vinc-status eq 'I'.

      exit.

...

 

...

           importing

                v_year                 = v_year

           exceptions

                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.

* >> Início da exclusão: FORM FILL_DATE1_F30

      select belnr budat wrbtr prctr

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

      select belnr

             umskz

             budat wrbtr prctr

* << Fim da inclusão

             from bsad

             into table itab_ace_aux

             where bukrs =  itab_vinc-bukrs       and

                   kunnr =  itab_zycbe033-c_newko and

                   augdt =  itab_vinc-dtvincul    and

                   augbl =  itab_vinc-belnr       and

* >> Início da exclusão: FORM FILL_DATE1_F30

                   gjahr =  v_year and

                   belnr <> itab_vinc-belnr       and

                   umskz <> space.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

                   gjahr =  v_year.

      if sy-subrc = 0.

        delete itab_ace_aux where not ( belnr ne itab_vinc-belnr and

                                        umskz ne space ).

      endif.

      if sy-subrc ne 0 or itab_ace_aux[] is initial.

        select belnr umskz budat wrbtr prctr

               from bsad

               into table itab_ace_aux

               where bukrs =  itab_vinc-bukrs       and

                     kunnr =  itab_zycbe033-c_newko and

                     augdt =  itab_vinc-dtvincul    and

                     augbl =  itab_vinc-belnr_vinc  and

                     gjahr =  v_year.

      endif.

      if sy-subrc = 0.

        delete itab_ace_aux where not ( belnr ne itab_vinc-belnr_vinc

                                    and umskz ne space ).

* << Fim da inclusão

    endif.

* >> Início da inclusão: FORM FILL_DATE1_F30

    endif.

* << Fim da inclusão

  endloop.

  check sy-subrc eq 0.

  if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30

    not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

    not wa_zycbt089-rateio_cl is initial

    and not itab_zycbt221[] is initial.

* << Fim da inclusão

    move itab_zycbt036[] to itab_doctos[].

    clear itab_zycbt036.

    refresh itab_zycbt036.

  endif.

  loop at  itab_zycbt221.

    clear itab_zycbt036.

    itab_zycbt036-tcode   = 'F-30'.

    itab_zycbt036-tabela  = '/PWS/ZYCBT005'.

    itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

    itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

...

 

...

            v_saknr

            itab_zycbe033-bukrs.

      else.

        perform unlock_razao

          using

            v_saknr

            itab_zycbe033-bukrs.

      endif.

    endif.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30

       not wa_zycbt089-rateio_cl is initial .

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30

       not wa_zycbt089-rateio_cl is initial

       and not itab_zycbt221[] is initial.

* << Fim da inclusão

      call function '/PWS/ZYCB_TRANSACAO_F_30_PR'

           exporting

                v_modo          = v_modo_bi

           tables

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

                t_zycbt036      = itab_zycbt036

                t_doctos        = itab_doctos

           exceptions

...

 

...

    itab_zycbe033-c_fipos   = /pws/zycbe005-fipos.

    if not /pws/zycbe005-j_1bbranch is initial.

      perform verifica_pais_filial using /pws/zycbe005-bukrs

                                         /pws/zycbe005-j_1bbranch.

      itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

    else.

      perform local_negocio.

      perform verifica_pais_filial using /pws/zycbe005-bukrs

                                         wa_t001w-j_1bbranch.

      itab_zycbe033-brnch = wa_t001w-j_1bbranch.

* >> Início da inclusão: FORM FILL_DATE1_F02_PRE

    endif.

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

    perform busca_exit.

    read table itab_zyglt100 with key zexit = 'VNC024'.

    if sy-subrc eq 0

       and not itab_zyglt100-zexit_ativa is initial.

      perform (itab_zyglt100-formulario)

              in program (itab_zyglt100-programa).

* << Fim da inclusão

    endif.

    v_vldif = abs( itab_vinc-vldif ).

    if itab_vinc-vldif lt 0.

      perform busca_valor1 using v_cpochv

                                 itab_vinc-dtvincul

                                 itab_vinc-dtvencto.

    elseif itab_vinc-vldif ge 0.

      perform busca_valor2 using v_cpochv

                                 itab_vinc-dtvincul

                                 itab_vinc-dtvencto.

    endif.

* >> Início da exclusão: FORM FILL_DATE1_F02_PRE

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

* << Fim da exclusão

    v_tpcontabil = 'E_VIN'.

    perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

    loop at itab_zycbt034.

      message i016 with itab_zycbt034-descricao.

    endloop.

    if itab_zycbt034 is initial.

      call function '/PWS/ZYCB_TRANSACAO_F_02'

           exporting

                v_modo          = v_modo_bi

...

 

...

  endif.

  itab_zycbe033-d_kostl   = /pws/zycbe005-kostl.

  itab_zycbe033-d_prctr   = /pws/zycbe005-prctr.

  itab_zycbe033-d_fipos   = /pws/zycbe005-fipos.

  itab_zycbe033-c_kostl   = /pws/zycbe005-kostl.

  itab_zycbe033-c_prctr   = /pws/zycbe005-prctr.

  itab_zycbe033-c_fipos   = /pws/zycbe005-fipos.

  itab_zycbe033-agkoa       = 'S'.

  itab_zycbe033-newbs = '40'.

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM FILL_DATE1_F30_PRE

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC026'.

  if sy-subrc eq 0

     and not itab_zyglt100-zexit_ativa is initial.

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

* << Fim da inclusão

  append itab_zycbe033.

  clear itab_zycbt036.

  itab_zycbt036-tcode  = 'F-30'.

  itab_zycbt036-tabela = '/PWS/ZYCBT005'.

  itab_zycbt036-cpochv = v_cpochv.

  itab_zycbt036-belnr  = itab_zycbt002p_aux-belnr_f02.

  clear v_year.

  call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       exporting

            v_bukrs                = /pws/zycbe001-bukrs

...

 

...

                                       /pws/zycbe005-j_1bbranch.

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

  else.

    perform local_negocio.

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       wa_t001w-j_1bbranch.

    itab_zycbe033-brnch = wa_t001w-j_1bbranch.

  endif.

  itab_zycbe033-newbs = '50'.

    itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM FILL_DATE1_F30_ACE

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC025'.

  if sy-subrc eq 0

     and not itab_zyglt100-zexit_ativa is initial.

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

* << Fim da inclusão

  append itab_zycbe033.

  loop at itab_zycbt069 where nrinvoic = wa_zycbt005-nrinvoic

                          and nrparcf  = wa_zycbt005-nrparcf.

    clear itab_zycbt036.

    itab_zycbt036-tcode  = 'F-30'.

    itab_zycbt036-tabela = '/PWS/ZYCBT005'.

    itab_zycbt036-cpochv = v_cpochv.

    itab_zycbt036-belnr  = itab_zycbt069-belnr.

    clear v_year.

    call function '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

                                  using  v_flag_mod.

    endif.

  elseif /pws/zycbe001-tpcontr(1) = 'D'.

    perform seleciona_zycbt030_c.

    if wa_zycbt089-est_variacao is initial.

      perform fill_date1_f30_dp tables itab_zycbt005_ant.

      if v_erro_estorno is initial.

        perform grava_liquidacao.

      endif.

    else.

* >> Início da exclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F'

                          and wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F' and

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        perform exclui_dp using v_periodo_aberto.

        if v_periodo_aberto = 'X'.

          perform estorno_periodo_fechado tables itab_zycbt005_ant.

        else.

          perform estorno_periodo_aberto  tables itab_zycbt005_ant.

        endif.

        if v_erro_estorno is initial.

          perform grava_liquidacao.

          loop at itab_zycbt005_ant.

            delete from /pws/zycbt084

...

 

...

                   and nrparc    = itab_zycbt005_ant-nrparc

                   and dtincl    = itab_zycbt005_ant-dtincl

                   and nrinvoic  = itab_zycbt005_ant-nrinvoic

                   and nrparcf   = itab_zycbt005_ant-nrparcf

                   and gsberf    = itab_zycbt005_ant-gsberf

                   and dtvincul  = itab_zycbt005_ant-dtvincul

                   and dtvencto  = itab_zycbt005_ant-dtvencto

                   and dtpagto   = /pws/zycbe006-dtpagto.

          endloop.

        endif.

* >> Início da exclusão: FORM CONTABILIZACAO

      elseif wa_zycbt089-f_cont_vinc = 'A'

                              and wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

      elseif wa_zycbt089-f_cont_vinc = 'A' and

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        perform fill_date1_f02 tables itab_zycbt005_ant.

        perform fill_date1_f30 tables itab_zycbt005_ant.

      elseif wa_zycbt089-f_cont_vinc = 'F'

                              and wa_zycbt089-rateio_cl = 'X'.

        perform rotina_rateio.

        perform exclui_dp using v_periodo_aberto.

        if v_periodo_aberto = 'X'.

          perform estorno_periodo_fechado tables itab_zycbt005_ant.

        else.

          perform estorno_periodo_aberto  tables itab_zycbt005_ant.

...

 

...

        perform fill_date1_f30_desm using v_flag_mod.

      endif.

    endif.

  elseif /pws/zycbe001-tpcontr(1) = 'D'.

    perform seleciona_zycbt030_b.

    perform seleciona_zycbt045.

    if wa_zycbt089-est_variacao is initial.

      perform fill_date1_f30_dp tables itab_zycbt005.

      perform grava_liquidacao.

    else.

* >> Início da exclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F' and wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F' and

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        if v_periodo_aberto = 'X'.

          perform estorno_periodo_fechado tables itab_zycbt005.

        else.

          perform estorno_periodo_aberto  tables itab_zycbt005.

        endif.

        call function '/PWS/ZYCB_ENQUEUE_CONTAS'

             exporting

                  i_bloqueia    = ' '

             tables

                  itab_zycbt224 = itab_zycbe224

...

 

...

        if v_periodo_aberto = 'X'.

          perform estorno_periodo_fechado tables itab_zycbt005.

        else.

          perform estorno_periodo_aberto  tables itab_zycbt005.

        endif.

        perform grava_liquidacao.

        move text-039 to v_flag_mod.

        perform seleciona_paga_documento2 using v_flag_mod.

        perform grava_liquidacao.

      elseif wa_zycbt089-f_cont_vinc = 'A' and

* >> Início da exclusão: FORM CONTABILIZACAO

                              wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        perform fill_date1_f02 tables itab_zycbt005.

        perform fill_date1_f30 tables itab_zycbt005.

        move text-039 to v_flag_mod.

        read table itab_zycbt005 with key status = 'A'.

        if sy-subrc eq 0.

          perform fill_date1_f30_desm using v_flag_mod .

        endif.

      elseif wa_zycbt089-f_cont_vinc = 'A' and

                            wa_zycbt089-rateio_cl = 'X'.

        perform rotina_rateio.

...

 

...

      sort itab_zycbt002p ascending by nrparc.

      perform desmembramento_pre using v_flag_mod.

    endif.

  endif.

  if /pws/zycbe001-tpcontr(1) = 'D'.

    if wa_zycbt089-est_variacao is initial.

      perform seleciona_zycbt030_b.

      perform seleciona_zycbt045.

      perform fill_date1_f30_b.

    else.

* >> Início da exclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F' and wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

      if wa_zycbt089-f_cont_vinc = 'F' and

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        move text-038 to v_flag_mod.

        perform seleciona_paga_documento using v_flag_mod.

        perform grava_liquidacao.

        modify /pws/zycbt231 from table itab_zycbt231.

      elseif wa_zycbt089-f_cont_vinc = 'F'

              and wa_zycbt089-rateio_cl = 'X'.

        move text-038 to v_flag_mod.

        perform seleciona_paga_documento2 using v_flag_mod.

        perform grava_liquidacao.

* >> Início da exclusão: FORM CONTABILIZACAO

      elseif wa_zycbt089-f_cont_vinc = 'A'

              and wa_zycbt089-rateio_cl = ''.

* << Fim da exclusão

* >> Início da inclusão: FORM CONTABILIZACAO

      elseif wa_zycbt089-f_cont_vinc = 'A' and

         ( wa_zycbt089-rateio_cl = '' or itab_zycbt221[] is initial ).

* << Fim da inclusão

        if not wa_zycbt089-est_variacao is initial.

          move text-038 to v_flag_mod.

          read table itab_zycbt005 with key flag   = 'I'.

          if sy-subrc eq 0.

            perform fill_date1_f30_desm using v_flag_mod .

          endif.

        endif.

      elseif wa_zycbt089-f_cont_vinc = 'A'

               and wa_zycbt089-rateio_cl = 'X'.

        if not /pws/zycbt089-bx_cli_vinc is initial and

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCB009F08

 

...

    endif.

  endif.

  perform limpa_itabs_contabil.

endform.

form fill_date1_f30_desm using    p_flag.

  data: v_soma like /pws/zycbt005-vlvinc,

        v_soma2  like /pws/zycbt005-vlvinc.

  data: v_cpochv like /pws/zycbe033-cpochv,

        v_kursf  like /pws/zycbe033-kursf ,

        v_vinc_total,

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

        v_linha,

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

        v_linha(3)     TYPE n,

        v_linha_036(3) TYPE n,

        v_index_036(3) TYPE n,

* << Fim da inclusão

        v_contas(1) type c.

  clear v_dtdocto.

  clear v_f30_vinc.

  perform get_parameters_001.

  perform clear_date_batch.

  if /pws/zycbe001-dtvincul is initial

     or ( /pws/zycbe001-belnr = /pws/zycbe001-belnr2 and

          not /pws/zycbe001-belnr2 is initial ).

    case /pws/zycbe001-fdtlanc.

      when 'D'.

...

 

...

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

  else.

    perform local_negocio.

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       wa_t001w-j_1bbranch.

    itab_zycbe033-brnch = wa_t001w-j_1bbranch.

  endif.

  itab_zycbe033-vbund = /pws/zycbe001-vbund.

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC018'.

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

  if sy-subrc eq 0.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

  IF sy-subrc EQ 0

     AND NOT itab_zyglt100-zexit_ativa IS INITIAL.

* << Fim da inclusão

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

  append itab_zycbe033.

  if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

     not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

     NOT wa_zycbt089-rateio_cl IS INITIAL

     and not itab_zycbt221[] is initial.

* << Fim da inclusão

    perform rotina_rateio.

  endif.

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

  CLEAR: v_index_036, v_linha.

* << Fim da inclusão

  loop at itab_zycbt005 where flag = p_flag.

    clear v_index.

    itab_zycbt036-tcode  = text-041.

    itab_zycbt036-tabela = text-002.

    concatenate /pws/zycbe005-nrseqc   /pws/zycbe005-tpdesp

                /pws/zycbe005-nrparc   /pws/zycbe005-dtincl

                /pws/zycbe005-nrinvoic /pws/zycbe005-gsber

                /pws/zycbe005-nrparcf

                /pws/zycbe005-dtvincul /pws/zycbe005-dtvencto

                into v_cpochv.

    itab_zycbt036-cpochv = v_cpochv.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

       not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

       NOT wa_zycbt089-rateio_cl IS INITIAL

       AND NOT itab_zycbt221[] IS INITIAL.

      DESCRIBE TABLE itab_zycbt036 LINES v_linha_036.

      IF v_index_036 IS INITIAL.

        v_index_036 = 1.

      ELSE.

        v_index_036 = v_linha_036 + 1.

      ENDIF.

* << Fim da inclusão

      loop at itab_zycbt221.

        v_index = v_index + 2.

        itab_zycbt036-residuo =

                itab_zycbt221-saldo_ov / v_total_contrato *

                         itab_zycbt005-vlvinc.

        itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

        concatenate

          itab_zycbt005-gsberf itab_zycbt005-nrparcf

          itab_zycbt005-nrinvoic

          into itab_zycbt036-zuonr

...

 

...

          append itab_zycbt036.

        endif.

        v_soma = v_soma + itab_zycbt036-residuo.

        itab_zycbt036-residuo =

          itab_zycbt221-saldo_ov - itab_zycbt036-residuo.

        itab_zycbt036-zuonr = itab_zycbt005-nrinvoic.

        if itab_zycbt036-residuo gt 0.

          modify itab_zycbt036 index v_index.

          if sy-subrc ne 0.

            append itab_zycbt036.

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

            IF v_linha IS INITIAL.

              v_linha = 2.

            ENDIF.

* << Fim da inclusão

          endif.

        endif.

        itab_zycbt221-saldo_ov = itab_zycbt036-residuo.

        modify itab_zycbt221.

        v_soma2 = v_soma2 + itab_zycbt036-residuo.

      endloop.

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

      clear v_linha.

      describe table itab_zycbt221 lines v_linha.

* << Fim da exclusão

      v_total_contrato = v_total_contrato - itab_zycbt005-vlvinc.

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

      if v_soma ne itab_zycbt005-vlvinc.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

      IF v_soma GT itab_zycbt005-vlvinc.

* << Fim da inclusão

        v_soma = v_soma - itab_zycbt005-vlvinc .

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

        read table itab_zycbt036 index 1.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

        READ TABLE itab_zycbt036 INDEX v_index_036.

* << Fim da inclusão

        itab_zycbt036-residuo = itab_zycbt036-residuo - v_soma.

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

        modify itab_zycbt036 index 1.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

        MODIFY itab_zycbt036 INDEX v_index_036.

      ELSEIF v_soma LT itab_zycbt005-vlvinc.

        v_soma = itab_zycbt005-vlvinc - v_soma.

        READ TABLE itab_zycbt036 INDEX v_index_036.

        itab_zycbt036-residuo = itab_zycbt036-residuo + v_soma.

        MODIFY itab_zycbt036 INDEX v_index_036.

* << Fim da inclusão

      endif.

      if not itab_zycbt221[] is initial.

        if v_soma2 ne v_total_contrato.

          v_soma2 = v_soma2 - v_total_contrato .

          read table itab_zycbt036 index v_linha.

          itab_zycbt036-residuo = itab_zycbt036-residuo - v_soma2.

          modify itab_zycbt036 index v_linha.

          read table itab_zycbt221 index 1.

          itab_zycbt221-saldo_ov = itab_zycbt221-saldo_ov - v_soma2.

          modify itab_zycbt221 index 1.

...

 

...

  perform verifica_contas changing v_contas.

  v_tpcontabil = 'D_CON'.

  perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

  loop at itab_zycbt034.

    message i016 with itab_zycbt034-descricao.

  endloop.

  if itab_zycbt034 is initial.

    if v_vinc_total is initial or v_contas = 'S'.

      if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM FILL_DATE1_F30_DESM

         not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_DESM

         NOT wa_zycbt089-rateio_cl IS INITIAL

         and not itab_zycbt221[] is initial.

* << Fim da inclusão

        call function '/PWS/ZYCB_TRANSACAO_F_30_PR'

             exporting

                  v_modo          = v_modo_bi

                  v_vinc_tot      = v_vinc_total

             tables

                  t_dados         = itab_zycbe033

                  t_campo         = itab_zycbt034

                  t_zycbt032      = itab_zycbt032

                  t_zycbt036      = itab_zycbt036

             exceptions

...

 

...

  itab_zycbe033-c_kostl   = /pws/zycbe005-kostl.

  itab_zycbe033-c_prctr   = /pws/zycbe005-prctr.

  itab_zycbe033-c_fipos   = /pws/zycbe005-fipos.

  if /pws/zycbe001-tpcontr(1) eq 'D'.

    move wa_zycbt011-agums to itab_zycbe033-umskz.

  endif.

  concatenate itab_zycbt005-gsberf itab_zycbt005-nrparcf

    itab_zycbt005-nrinvoic

    into itab_zycbe033-c_zuonr

    separated by space.

* >> Início da exclusão: FORM FILL_DATE1_F30_VINC

  if wa_zycbt089-rateio_cl = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE1_F30_VINC

  IF wa_zycbt089-rateio_cl = 'X'

     and not itab_zycbt221[] is initial.

* << Fim da inclusão

    v_rateio  = 'X'.

  endif.

  if not itab_zycbe033-belnr is initial and

     not itab_zycbe033-dtdocto is initial.

    clear v_zuonr.

    perform determina_ano using itab_zycbe033-dtdocto

                                itab_zycbe033-bukrs

                          changing v_ano.

    if itab_zycbe033-belnr = /pws/zycbe001-belnr or

       itab_zycbe033-belnr = /pws/zycbe001-belnr2.

...

 

...

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       /pws/zycbe005-j_1bbranch.

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

  else.

    perform local_negocio.

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       wa_t001w-j_1bbranch.

    itab_zycbe033-brnch = wa_t001w-j_1bbranch.

  endif.

  itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM FILL_DATE1_F30_VINC

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC027'.

  if sy-subrc eq 0

     and not itab_zyglt100-zexit_ativa is initial.

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

* << Fim da inclusão

  append itab_zycbe033.

  clear v_vinc_total.

  if /pws/zycbe001-slvinc is initial.

    v_vinc_total = 'X'.

  endif.

  v_tpcontabil = 'VIN'.

  perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

  if itab_zycbt034[] is initial.

    call function '/PWS/ZYCB_TRANSACAO_F_30_Q'

...

 

...

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       /pws/zycbe005-j_1bbranch.

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

  else.

    perform local_negocio.

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       wa_t001w-j_1bbranch.

    itab_zycbe033-brnch = wa_t001w-j_1bbranch.

  endif.

  itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM VINCULACAO

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC028'.

  if sy-subrc eq 0

     and not itab_zyglt100-zexit_ativa is initial.

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

* << Fim da inclusão

  append itab_zycbe033.

  if ( itab_zycbt002p-slvinc ge v_vlvinc )

  or ( itab_zycbt002p-slvinc lt v_vlvinc

      and itab_zycbt002p-belnr ne '          ' ).

    v_acertof30 = 'X'.

    itab_acertof30-belnr2_ant   = itab_zycbt002p-belnr2.

  endif.

  v_tpcontabil = 'VIN'.

  perform busca_dados_bi using itab_zycbe033-bukrs

                               v_tpcontabil.

...

 

...

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       /pws/zycbe005-j_1bbranch.

    itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.

  else.

    perform local_negocio.

    perform verifica_pais_filial using /pws/zycbe005-bukrs

                                       wa_t001w-j_1bbranch.

    itab_zycbe033-brnch = wa_t001w-j_1bbranch.

  endif.

  itab_zycbe033-vbund = /pws/zycbe001-vbund.

* >> Início da inclusão: FORM DESMEMBRAMENTO

  perform busca_exit.

  read table itab_zyglt100 with key zexit = 'VNC022'.

  if sy-subrc eq 0

     and not itab_zyglt100-zexit_ativa is initial.

    perform (itab_zyglt100-formulario)

            in program (itab_zyglt100-programa).

  endif.

* << Fim da inclusão

  append itab_zycbe033.

  v_slvinc              = itab_zycbt002p-slvinc.

  loop at itab_zycbt005

    where flag = p_flag and

          vlvinc ne 0.

    if itab_zycbt002p-slvinc le 0 .

      exit.

    endif.

    itab_zycbt036-tcode  = text-041.

    itab_zycbt036-tabela = text-002.

...

 

...

         tables

              account         = itab_zyglt316

         exceptions

              key_not_found   = 1

              rules_not_found = 2

              others          = 3.

    if /pws/zycbe001-tpcontr+0(1) = 'D'.

      v_saknr_ace = itab_vinc-kunnr.

      itab_zycbe033-umskz = wa_zycbt011-agums.

      itab_zycbe033-koart = 'D'.

* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO

      if wa_zycbt089-rateio_cl = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO

      IF wa_zycbt089-rateio_cl = 'X'

         and not itab_zycbt221[] is initial.

* << Fim da inclusão

        itab_zycbe033-newbs  = '19'.

        itab_zycbe033-newbs1 = '01'.

      else.

        itab_zycbe033-newbs = '01'.

      endif.

    else.

      v_saknr_ace = itab_vinc-kunnr.

      itab_zycbe033-newbs = '01'.

      itab_zycbe033-koart = 'S'.

    endif.

...

 

...

        endif.

      endif.

      if itab_zycbe033-newbs1 is initial.

        itab_zycbe033-newbs1  = itab_zycbt035-bschl.

        itab_zycbe033-d_newko = itab_zycbt035-d_newko.

      endif.

      v_kunnr               = itab_zycbe033-c_newko.

      append itab_zycbt035.

    endloop.

    if /pws/zycbe001-tpcontr(1)  = 'D' and

* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO

         wa_zycbt089-rateio_cl   = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO

         wa_zycbt089-rateio_cl   = 'X'

         and not itab_zycbt221[] is initial.

* << Fim da inclusão

      move itab_zycbt036[] to itab_doctos[].

      clear itab_zycbt036.

      refresh itab_zycbt036.

      loop at itab_zycbt221.

        itab_zycbt036-tcode   = 'F-02'.

        itab_zycbt036-tabela  = 'ZYCBT005'.

        itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

        itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

        loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.

          itab_zycbt036-residuo = itab_ace_aux-wrbtr.

...

 

...

                  others                  = 4.

      endif.

      read table itab_zyglt100 with key zexit = 'VNC004' binary search.

      if sy-subrc eq 0 and

         not itab_zyglt100-zexit_ativa is initial.

        perform (itab_zyglt100-formulario)

          in program (itab_zyglt100-programa).

        sy-subrc = v_retorno.

      else.

        if /pws/zycbe001-tpcontr(1)  = 'D' and

* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO

             wa_zycbt089-rateio_cl   = 'X'.

* << Fim da exclusão

* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO

             wa_zycbt089-rateio_cl   = 'X'

             and not itab_zycbt221[] is initial.

* << Fim da inclusão

          call function '/PWS/ZYCB_TRANSACAO_F_02J'

               exporting

                    v_modo          = v_modo_bi

               tables

                    t_dados         = itab_zycbe033

                    t_campo         = itab_zycbt034

                    t_zycbt032      = itab_zycbt032

                    t_zycbt036      = itab_zycbt036

               exceptions

                    campo_em_branco = 1

...

 

...

    endif.

    itab_zycbt036-tcode   = 'F-30'.

    itab_zycbt036-tabela  = 'ZYCBT005'.

    itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

    itab_zycbt036-dtdocto = v_datum.

    itab_zycbt036-belnr   = /pws/zycbe001-belnr2.

    if not itab_zycbt036-belnr is initial.

      append itab_zycbt036.

    endif.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM ESTORNO_PERIODO_FECHADO

      not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM ESTORNO_PERIODO_FECHADO

      NOT wa_zycbt089-rateio_cl IS INITIAL

      and not itab_zycbt221[] is initial.

* << Fim da inclusão

      move itab_zycbt036[] to itab_doctos[].

      clear itab_zycbt036.

      refresh itab_zycbt036.

      loop at itab_zycbt221.

        itab_zycbt036-tcode   = 'F-30'.

        itab_zycbt036-tabela  = 'ZYCBT005'.

        itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

        itab_zycbt036-residuo = itab_zycbt221-saldo_ov..

        itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

        loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.

...

 

...

    if not p_agums is initial.

      itab_zycbe033-newbs = '09'.

    else.

      itab_zycbe033-newbs = '01'.

    endif.

  elseif p_agkoa eq 'K'.

    itab_zycbe033-newbs = '21'.

  endif.

  if /pws/zycbe001-tpcontr(1) = 'D' and

     not wa_zycbt089-rateio_cl is initial and

* >> Início da exclusão: FORM CLEARING

     not p_agums is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM CLEARING

     NOT p_agums IS INITIAL

     and not itab_zycbt221[] is initial.

* << Fim da inclusão

    itab_zycbe033-newbs = '19'.

    itab_zycbe033-agums = p_agums.

  endif.

  itab_zycbe033-belnr   = p_belnr_ref.

  itab_zycbe033-dtdocto = p_budat_ref.

  if /pws/zycbe001-tpcontr(1) ne 'D'.

    itab_zycbe033-d_zuonr = itab_vinc-nrinvoic.

    itab_zycbe033-c_zuonr = itab_vinc-nrinvoic.

  endif.

  if not p_j_1bbranch is initial.

...

 

...

      if p_agkoa eq 'D'.

        perform unlock_cliente

          using p_conta itab_zycbe033-bukrs.

      else.

        perform unlock_razao

          using p_conta itab_zycbe033-bukrs.

      endif.

    endif.

    if /pws/zycbe001-tpcontr(1) = 'D' and

       not wa_zycbt089-rateio_cl is initial and

* >> Início da exclusão: FORM CLEARING

       not p_agums is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM CLEARING

       NOT p_agums IS INITIAL

       and not itab_zycbt221[] is initial.

* << Fim da inclusão

      call function '/PWS/ZYCB_TRANSACAO_F_30_PR'

           exporting

                v_modo          = v_modo_bi

           tables

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

                t_zycbt036      = itab_zycbt036

                t_doctos        = itab_doctos

           exceptions

...

 

...

    itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

    itab_zycbt036-dtdocto = itab_vinc-dtbelnr.

    itab_zycbt036-belnr   = itab_vinc-belnr.

    if not itab_zycbt036-belnr is initial.

      append itab_zycbt036.

    endif.

    if v_belnr is initial.

      v_belnr = itab_vinc-belnr_vinc.

    endif.

    if /pws/zycbe001-tpcontr(1) = 'D' and

* >> Início da exclusão: FORM ESTORNO_PERIODO_ABERTO

      not wa_zycbt089-rateio_cl is initial.

* << Fim da exclusão

* >> Início da inclusão: FORM ESTORNO_PERIODO_ABERTO

      NOT wa_zycbt089-rateio_cl IS INITIAL

      and not itab_zycbt221[] is initial.

* << Fim da inclusão

      move itab_zycbt036[] to itab_doctos[].

      clear itab_zycbt036.

      refresh itab_zycbt036.

      loop at itab_zycbt221.

        itab_zycbt036-tcode   = 'F-30'.

        itab_zycbt036-tabela  = 'ZYCBT005'.

        itab_zycbt036-cpochv  = itab_vinc-nrinvoic.

        itab_zycbt036-residuo = itab_zycbt221-saldo_ov..

        itab_zycbt036-ct_lucro = itab_zycbt221-ct_lucro.

        loop at itab_ace_aux where prctr = itab_zycbt221-ct_lucro.

...