CE PLUS - Nota 007169

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Captação

Data/Hora da Publicação: 20/08/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:07:37

Descrição da Nota: TRAZER OS AJUSTES DO CHAMADO 392344 PARA O PRODUTO

Sintoma

Cenário: Na vinculação de uma fatura com 2 registros de desconto de recebíveis, o sistema está

compensando somente um dos registros do desconto na vinculação com captação ACE.

 

 

 

Solução

Trazer os ajustes  para o produto

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DA LIQUIDAÇÃO - COMPENSAÇÃO AUTOMÁTICA CONTA CORRENTE ME

EXIT VINCULAÇÃO / LIQUIDAÇÃO - ALTERAÇÃO DOCUMENTOS CONTÁBEIS

NA VINCULAÇÃO NÃO RESPEITA O FLAG E A INFORMAÇÃO DO TEXTO INFORMATIVO

CB - 442639 - CODE INSPECTOR

LIQUIDAÇÃO - TAXAS CONTÁBEIS DE ACORDO COM /PWS/ZYGL007

SELECIONAR RECURSO PARA LIQUIDAÇÃO DE FATURAS

DESCONTO DE RECEBÍVEIS - EXIT DES002

Informações Complementares

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

Nota Número 07169 Data: 20/08/2008 Hora: 11:39:28

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

 

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

Nota Número              : 07169

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00061

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

Referência às notas relacionadas:

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

 

01499  - 00007 - 6.0    - 00023  - EXIT VINCULAÇÃO / LIQUIDAÇÃO - ALTERAÇÃO DOCUMENTOS CONTÁBEIS

02216  - 00006 - 6.0    - 00025  - NA VINCULAÇÃO NÃO RESPEITA O FLAG E A INFORMAÇÃO DO TEXTO INFORMA

03287  - 00005 - 6.0    - 00026  - DESCONTO DE RECEBÍVEIS - EXIT DES002

04862  - 00004 - 7.0    - 00003  - DA LIQUIDAÇÃO - COMPENSAÇÃO AUTOMÁTICA CONTA CORRENTE ME

05486  - 00003 - 7.0    - 00003  - SELECIONAR RECURSO PARA LIQUIDAÇÃO DE FATURAS

06017  - 00002 - 7.0    - 00004  - CB - 442639 - CODE INSPECTOR

06914  - 00001 - 7.0    - 00006  - LIQUIDAÇÃO - TAXAS CONTÁBEIS DE ACORDO COM /PWS/ZYGL007

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

TRAZER OS AJUSTES DO CHAMADO 392344 PARA O PRODUTO

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

Palavras Chave:

TRAZER OS AJUSTES DO CHAMADO 392344 PARA O PRODUTO

SADIA -> PRODUTO

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

Objetos da nota:

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB009F09

REPS /PWS/MZYCB009TOP

REPS /PWS/MZYCB033F01

REPS /PWS/MZYCB033TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

              EXIT.

            ENDIF.

          ELSEIF sy-subrc NE 0 AND /pws/zyglt009-comp_aut_cc IS INITIAL.

            PERFORM atualiza_saldo_ordem.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

    PERFORM clear_date_batch.

    CLEAR: v_belnr.

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

    IF /pws/zycbe001-desc_receb IS INITIAL.

* << Fim da inclusão

    LOOP AT itab_ace.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = 'ZYCBT006'.

      CONCATENATE itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

             INTO itab_zycbt036-cpochv.

      itab_zycbt036-dtdocto = itab_ace-budat.

      itab_zycbt036-belnr   = itab_ace-belnr.

      APPEND itab_zycbt036.

    ENDLOOP.

    LOOP AT itab_zycbt069 WHERE nrseqc   = itab_zycbt006-nrseqc

...

 

...

      PERFORM verifica_data2 USING /pws/zycbt089-tx_cl_ace_liq

                                   itab_zycbt006-dtpagto.

    ENDIF.

    IF NOT v_databl IS INITIAL.

      PERFORM define_cambio USING v_databl

                                  itab_zycbt006-waers

                                  wa_zycbt007-waersb

                                  itab_zycbe033-kursf.

    ENDIF.

    v_kursf = itab_zycbe033-kursf.

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

    IF /pws/zycbe001-desc_receb IS INITIAL.

* << Fim da exclusão

      PERFORM clearing USING v_saknr_ace

                             ' '

                             itab_zycbt006-dtpagto

                             v_kursf

                             'S'

                             v_belnr

                             v_dtlanc

                             text-189

                    CHANGING v_belnr.

    ELSE.

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

      PERFORM clearing USING v_saknr_ace

* << Fim da exclusão

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

  LOOP at itab_zycbt219.

    PERFORM clear_date_batch.

    CLEAR: v_belnr.

    LOOP AT itab_ace where belnr eq itab_zycbt219-belnr_cli.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = 'ZYCBT006'.

      CONCATENATE itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

             INTO itab_zycbt036-cpochv.

      itab_zycbt036-dtdocto = itab_ace-budat.

      itab_zycbt036-belnr   = itab_ace-belnr.

      APPEND itab_zycbt036.

    ENDLOOP.

    LOOP AT itab_zycbt069 WHERE nrseqc   = itab_zycbt006-nrseqc

                            AND nrinvoic = itab_zycbt006-nrinvoic

                            AND dtvincul = itab_zycbt006-dtvincul

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf.

      itab_zycbt036-tcode   = 'F-30'.

      itab_zycbt036-tabela  = 'ZYCBT006'.

      CONCATENATE itab_zycbt006-nrinvoic itab_zycbt006-nrparcf

             INTO itab_zycbt036-cpochv.

      itab_zycbt036-dtdocto = itab_zycbt005_ant-dtbelnr.

      itab_zycbt036-belnr   = itab_zycbt069-belnr.

      COLLECT itab_zycbt036.

      IF v_belnr IS INITIAL.

        v_belnr = itab_zycbt069-belnr_vinc.

      ENDIF.

    ENDLOOP.

    CLEAR itab_zycbt030-vbeln.

    PERFORM verifica_data2 USING /pws/zycbt089-tx_cl_ace_liq

                                 itab_zycbt006-dtpagto.

    IF NOT v_databl IS INITIAL.

      PERFORM define_cambio USING v_databl

                                  itab_zycbt006-waers

                                  wa_zycbt007-waersb

                                  itab_zycbe033-kursf.

    ENDIF.

    v_kursf = itab_zycbe033-kursf.

        PERFORM clearing USING itab_zycbt219-kunnr

* << Fim da inclusão

                             itab_zycbt219-umskz

                             itab_zycbt006-dtpagto

                             v_kursf

                             'D'

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

                             v_belnr

                             v_dtlanc

* << Fim da exclusão

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

                               itab_zycbt219-belnr_cli

                               itab_zycbt219-dt_cli

* << Fim da inclusão

                             text-189

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

                    CHANGING v_belnr.

* << Fim da exclusão

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

                      CHANGING itab_zycbt219-belnr_cli.

      itab_zycbt219-saldo_liq = itab_ace-WRBTR.

      MODIFY itab_zycbt219.

endloop.

* << Fim da inclusão

    ENDIF.

    IF sy-subrc NE 0.

      v_subrc = 4.

      EXIT.

    ENDIF.

    LOOP AT itab_zycbt069 WHERE nrseqc   = itab_zycbt006-nrseqc

                            AND nrinvoic = itab_zycbt006-nrinvoic

                            AND dtvincul = itab_zycbt006-dtvincul

                            AND gsberf   = itab_zycbt006-gsberf

                            AND nrparcf  = itab_zycbt006-nrparcf.

...

 

...

                       dtvincul = itab_zycbt006-dtvincul AND

                       gsberf   = itab_zycbt006-gsberf   AND

                       nrparcf  = itab_zycbt006-nrparcf.

    ENDLOOP.

    itab_zycbt005_ant-belnr   = v_belnr.

    itab_zycbt005_ant-dtbelnr = itab_zycbt006-dtpagto.

    itab_zycbt005_ant-slpagar = itab_zycbt005_ant-slpagar -

                                itab_zycbt006-v_vldif.

    MODIFY itab_zycbt005_ant TRANSPORTING belnr dtbelnr slpagar

                             WHERE nrinvoic = itab_zycbt006-nrinvoic

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

                               AND gsberf   = itab_zycbt006-gsberf

                               AND nrparcf  = itab_zycbt006-nrparcf.

    IF NOT /pws/zycbe001-desc_receb IS INITIAL.

      LOOP AT itab_zycbt220 WHERE nrinvoic = itab_zycbt006-nrinvoic AND

                                  gsberf   = itab_zycbt006-gsberf   AND

                                  nrparcf  = itab_zycbt006-nrparcf  AND

                                  nrseqc   = itab_zycbt006-nrseqc   AND

                                  dtvincul = itab_zycbt006-dtvincul.

        READ TABLE itab_zycbt219

              WITH KEY bukrs    = itab_zycbt006-bukrs

                       nrinvoic = itab_zycbt006-nrinvoic

                       belnr    = itab_zycbt220-belnr

                       gsberf   = itab_zycbt006-gsberf

                       nrparcf  = itab_zycbt006-nrparcf.

        itab_zycbt219-belnr_cli   = v_belnr.

        itab_zycbt219-dtbelnr     = itab_zycbt006-dtpagto.

        itab_zycbt219-saldo_liq   = itab_zycbt219-saldo_liq -

                                    itab_zycbt006-v_vldif.

        MODIFY itab_zycbt219

          TRANSPORTING belnr_cli dtbelnr saldo_liq

          WHERE bukrs    = itab_zycbt006-bukrs

            AND nrinvoic = itab_zycbt006-nrinvoic

            AND belnr    = itab_zycbt220-belnr

* << Fim da exclusão

            AND gsberf   = itab_zycbt006-gsberf

            AND nrparcf  = itab_zycbt006-nrparcf.

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

      ENDLOOP.

    ENDIF.

* << Fim da exclusão

    MODIFY /pws/zycbt219 FROM TABLE itab_zycbt219.

    COMMIT WORK.

    IF itab_zycbt006-v_status EQ 'A'.

      itab_zycbt006-v_status = 'I'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F09

 

...

      IF itab_zycbt219-saldo LT v_sldesc.

        IF itab_zycbt219-belnr2 IS INITIAL.

          itab_zycbt219-belnr_d = itab_zycbt219-belnr.

        ELSE.

          itab_zycbt219-belnr_d = itab_zycbt219-belnr2.

        ENDIF.

        itab_zycbt219-budat_d = itab_zycbt219-dtbelnr.

        itab_zycbt219-baixa   = 'X'.

        itab_zycbt219-vlbaixa = itab_zycbt219-saldo.

        v_sldesc = v_sldesc - itab_zycbt219-saldo.

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

        PERFORM desmembra_desc_receb.

* << Fim da inclusão

        MODIFY itab_zycbt219.

      ELSE.

        itab_zycbt219-baixa   = 'X'.

        itab_zycbt219-vlbaixa = v_sldesc.

        PERFORM desmembra_desc_receb.

        IF sy-subrc EQ 0.

          CLEAR v_sldesc.

          MODIFY itab_zycbt219.

        ELSE.

          v_subrc = 4.

...

 

...

  itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

  itab_zycbt036-residuo = itab_zycbe033-wrbtr.

  itab_zycbt036-zuonr   = itab_zycbe033-d_zuonr.

  APPEND itab_zycbt036.

  itab_doctos-tcode   = itab_zycbe033-tcode.

  itab_doctos-tabela  = itab_zycbe033-tabela.

  itab_doctos-cpochv  = itab_zycbe033-cpochv.

  itab_doctos-belnr   = itab_zycbe033-belnr.

  itab_doctos-dtdocto = itab_zycbe033-dtdocto.

  APPEND itab_doctos.

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

  if itab_zycbe033-belnr is initial.

* << Fim da inclusão

  itab_zycbe033-belnr   = itab_zycbt219-belnr.

  itab_zycbe033-dtdocto = itab_zycbt219-dtcredext.

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

   endif.

* << Fim da inclusão

  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.

...

 

...

      itab_erro-msg   = itab_zycbt034-descricao.

      APPEND itab_erro.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM est_desc_recebiveis TABLES   itab_vinc STRUCTURE itab_zycbt005.

  DATA:

    v_cpochv LIKE /pws/zycbe033-cpochv,

    v_vlslf  LIKE /pws/zycbt017-vlslf.

  DATA: v_dtliquid LIKE /pws/zycbt006-dtpagto,

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

        v_desm_ok,

* << Fim da inclusão

        v_dtemb    LIKE /pws/zycet001-dtemb.

  IF NOT itab_vinc[] IS INITIAL.

    SELECT * FROM /pws/zycbt219 INTO TABLE itab_zycbt219

      FOR ALL ENTRIES IN itab_vinc

      WHERE bukrs    = itab_vinc-bukrs

        AND nrinvoic = itab_vinc-nrinvoic

        AND gsberf   = itab_vinc-gsberf

        AND nrparcf  = itab_vinc-nrparcf.

  ENDIF.

  PERFORM clear_date_batch.

...

 

...

    IF itab_vinc-status NE 'C'.

      itab_vinc-flag = 'I'.

      MODIFY itab_vinc.

    ENDIF.

  ENDLOOP.

  PERFORM get_parameters_001.

  LOOP AT itab_vinc

    WHERE flag = 'A' OR

        ( flag = 'E' AND status EQ 'C' ).

    v_pos_itab = sy-tabix.

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

  LOOP AT itab_zycbt219

      WHERE bukrs    = itab_vinc-bukrs

        AND nrinvoic = itab_vinc-nrinvoic

        AND gsberf   = itab_vinc-gsberf

        AND nrparcf  = itab_vinc-nrparcf.

* << Fim da inclusão

    IF NOT itab_vinc-statrans IS INITIAL.

      CONTINUE.

    ENDIF.

    CLEAR v_ind_invert.

    v_prazo = /pws/zycbe001-przcontr.

    CONCATENATE /pws/zycbe001-tpcontr v_prazo

                INTO v_codaux1 SEPARATED BY space.

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = /pws/zycbe001-bukrs

...

 

...

      READ TABLE itab_zyglt316 INDEX 1.

      itab_zycbe033-c_newko = itab_zyglt316-konts.

      itab_zycbe033-d_newko = itab_zyglt316-konts.

    ENDIF.

    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

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

                itab_vinc-nrparcf

* << Fim da exclusão

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

                itab_vinc-nrparcf  itab_zycbt219-belnr

* << Fim da inclusão

                INTO v_cpochv.

    itab_zycbe033-cpochv = v_cpochv.

    PERFORM data_estorno USING     itab_vinc-dtvincul

                                   /pws/zycbe001-bukrs

                                   itab_vinc-dtvincul

                                   itab_vinc-dtvincul

                          CHANGING itab_zycbe033-budat.

    IF wa_zycbt007-fdtdoc   = 'D'.

      itab_zycbe033-bldat   = sy-datum.

    ELSE.

...

 

...

                                  wa_zycbt007-waersb

                                  itab_zycbe033-kursf.

    ENDIF.

    PERFORM verify_null_field USING wa_zycbt011-blart

                                    'BLART'

                                    text-006.

    itab_zycbe033-blart     = wa_zycbt011-blart.

    PERFORM verify_null_field USING itab_vinc-vlvinc

                                    'VLVINC'

                                    text-007.

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

    itab_zycbe033-wrbtr     = abs( itab_vinc-vldif ).

* << Fim da exclusão

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

    itab_zycbe033-wrbtr     = abs( itab_zycbt219-saldo_liq ).

* << Fim da inclusão

    CALL CUSTOMER-FUNCTION '001'

       IMPORTING

       v_subrc = v_retexit.

    IF v_retexit = 'X'.

      itab_zycbe033-d_gsber   = /pws/zycbe001-gsber.

      itab_zycbe033-c_gsber   = /pws/zycbe001-gsber.

    ELSE.

      IF v_ind_invert IS INITIAL.

        itab_zycbe033-d_gsber   = /pws/zycbe001-gsber.

        itab_zycbe033-c_gsber   = itab_vinc-gsberf.

...

 

...

    ELSE.

      PERFORM local_negocio.

      PERFORM verifica_pais_filial USING /pws/zycbe005-bukrs

                                         wa_t001w-j_1bbranch.

      itab_zycbe033-brnch = wa_t001w-j_1bbranch.

    ENDIF.

    CALL CUSTOMER-FUNCTION '003'

      TABLES

        t_dados = itab_zycbe033.

    APPEND itab_zycbe033.

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

  ENDLOOP.

  clear v_desm_ok.

* << Fim da inclusão

    CHECK sy-subrc EQ 0.

    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

           TABLES

                t_dados         = itab_zycbe033

                t_campo         = itab_zycbt034

                t_zycbt032      = itab_zycbt032

           EXCEPTIONS

                campo_em_branco = 1

                OTHERS          = 2.

      IF sy-subrc = 0.

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

        LOOP AT itab_zycbt219

          WHERE bukrs    = itab_vinc-bukrs

            AND nrinvoic = itab_vinc-nrinvoic

            AND gsberf   = itab_vinc-gsberf

            AND nrparcf  = itab_vinc-nrparcf.

* << Fim da inclusão

        CLEAR v_cpochv.

        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

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

                    itab_vinc-nrparcf

* << Fim da exclusão

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

                    itab_vinc-nrparcf  itab_zycbt219-belnr

* << Fim da inclusão

                    INTO v_cpochv.

        READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-02'

                                          tabela = '/PWS/ZYCBT005'

                                          cpochv = v_cpochv

                                          tpmsg  = 'S'.

        IF sy-subrc EQ 0.

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

          itab_vinc-belnr_f02  = itab_zycbt032-belnr.

* << Fim da exclusão

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

          v_desm_ok = '1'.

          itab_zycbt219-belnr2 = itab_zycbt032-belnr.

          modify itab_zycbt219.

          itab_docto_219-belnr = itab_zycbt032-belnr.

          append itab_docto_219.

* << Fim da inclusão

          itab_vinc-statrans   = itab_zycbt032-tcode.

          MODIFY itab_vinc.

          READ TABLE itab_zycbe033 WITH KEY cpochv = v_cpochv.

          itab_contabil-nrinvoic = itab_vinc-nrinvoic.

          itab_contabil-nrparcf  = itab_vinc-nrparcf.

          itab_contabil-gsberf   = itab_vinc-gsberf.

          itab_contabil-docto    = itab_zycbt032-belnr.

          itab_contabil-msg      = text-308.

          itab_contabil-dtdocto  = itab_vinc-dtbelnr.

          itab_contabil-bukrs    = itab_vinc-bukrs.

          APPEND itab_contabil.

          PERFORM clearing_desc_receb TABLES itab_vinc.

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

          PERFORM clearing_ace_receb  TABLES itab_vinc.

* << Fim da exclusão

          DELETE FROM /pws/zycbt220

            WHERE bukrs    = itab_vinc-bukrs    AND

                  nrinvoic = itab_vinc-nrinvoic AND

                  nrseqc   = itab_vinc-nrseqc   AND

                  dtvincul = itab_vinc-dtvincul AND

                  gsberf   = itab_vinc-gsberf   AND

                  nrparcf  = itab_vinc-nrparcf  .

          v_status_s = '0'.

        ELSE.

          LOOP AT itab_zycbt032 WHERE tcode  = 'F-02'

...

 

...

              MODIFY itab_zycbt017 TRANSPORTING vlslf

                                  WHERE nrinvoic = itab_vinc-nrinvoic

                                     AND nrparcf  = itab_vinc-nrparcf

                                      AND gsberf   = itab_vinc-gsberf.

              CLEAR itab_vinc-vldif.

              CLEAR itab_vinc-flag.

              MODIFY itab_vinc.

            ENDIF.

          ENDIF.

        ENDIF.

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

        ENDLOOP.

* << Fim da inclusão

      ELSE.

        LOOP AT itab_zycbt034.

          MESSAGE i016 WITH itab_zycbt034-descricao.

        ENDLOOP.

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

      ENDIF.

* << Fim da inclusão

      ENDIF.

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

    IF v_desm_ok eq '1'.

      PERFORM clearing_ace_receb  TABLES itab_vinc.

* << Fim da inclusão

    ENDIF.

    PERFORM limpa_itabs_contabil.

  ENDLOOP.

  PERFORM grava_contabilizacao.

  PERFORM executa_exit USING 'VNC016'.

  IF NOT itab_contabil[] IS INITIAL.

    EXPORT itab_contabil TO MEMORY ID '040'.

    EXPORT text-059 TO MEMORY ID '050'.

    SUBMIT /pws/zycbr040 AND RETURN.

    REFRESH itab_contabil.

    v_status_s = '0'.

  ENDIF.

ENDFORM.

FORM clearing_desc_receb TABLES itab_vinc LIKE itab_zycbt005[].

  DATA:

    v_cpochv        LIKE /pws/zycbe033-cpochv,

    v_kursf         LIKE /pws/zycbe033-kursf,

    v_grava(1),

    v_desc_receb,

    v_desc_receb_aux.

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

  PERFORM limpa_itabs_contabil.

* << Fim da exclusão

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

  CLEAR:   itab_zycbe033, itab_zycbt036.

  REFRESH: itab_zycbe033, itab_zycbt036.

* << Fim da inclusão

  PERFORM get_parameters_001.

  IF itab_vinc-status EQ 'I'.

    v_grava = 'N'.

    EXIT.

  ENDIF.

  CHECK itab_vinc-statrans EQ 'F-02'.

  CLEAR v_ind_invert.

  IF itab_vinc-vldif GT 0.

    v_ind_invert = 'X'.

  ENDIF.

...

 

...

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                  'SAKNR'

                                  text-010.

  ENDIF.

  itab_zycbe033-tcode  = 'F-30'.

  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

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

              itab_vinc-nrparcf

* << Fim da exclusão

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

              itab_vinc-nrparcf  itab_zycbt219-belnr

* << Fim da inclusão

              INTO v_cpochv.

  itab_zycbe033-cpochv = v_cpochv.

  PERFORM data_estorno USING     itab_vinc-dtvincul

                                 /pws/zycbe001-bukrs

                                 itab_vinc-dtvincul

                                 itab_vinc-dtvincul

                        CHANGING itab_zycbe033-budat.

  IF wa_zycbt007-fdtdoc   = 'D'.

    itab_zycbe033-bldat   = sy-datum.

  ELSE.

...

 

...

    PERFORM define_cambio USING v_data_taxa

                                /pws/zycbe001-waers

                                wa_zycbt007-waersb

                                v_kursf.

  ENDIF.

  itab_zycbe033-kursf  =  v_kursf.

  PERFORM verify_null_field USING wa_zycbt011-blart

                                  'BLART'

                                  text-006.

  itab_zycbe033-blart     = wa_zycbt011-blart.

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

  PERFORM verify_null_field USING itab_vinc-vldif

* << Fim da exclusão

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

  PERFORM verify_null_field USING itab_zycbt219-saldo_liq

* << Fim da inclusão

                                  'VLDIF'

                                  text-007.

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

  itab_zycbe033-wrbtr     = abs( itab_vinc-vldif ).

* << Fim da exclusão

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

  itab_zycbe033-wrbtr     = abs( itab_zycbt219-saldo_liq ).

* << Fim da inclusão

  CALL CUSTOMER-FUNCTION '001'

     IMPORTING

...

 

...

    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.

  APPEND itab_zycbe033.

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

  LOOP AT itab_zycbt219 WHERE nrinvoic = itab_vinc-nrinvoic AND

                              gsberf   = itab_vinc-gsberf   AND

                              nrparcf  = itab_vinc-nrparcf.

* << Fim da exclusão

    CLEAR itab_zycbt036.

    itab_zycbt036-tcode  = 'F-30'.

    itab_zycbt036-tabela = '/PWS/ZYCBT005'.

    itab_zycbt036-cpochv = v_cpochv.

    itab_zycbt036-belnr  = itab_zycbt219-belnr2.

    CLEAR v_year.

    CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

         EXPORTING

              v_bukrs                = itab_vinc-bukrs

              v_date                 = itab_zycbt219-dtbelnr

...

 

...

    SELECT SINGLE * FROM bkpf

       WHERE bukrs = itab_vinc-bukrs

         AND belnr = itab_zycbt219-belnr2

         AND gjahr = v_year.

    itab_zycbt036-dtdocto = bkpf-budat.

    APPEND itab_zycbt036.

    IF NOT itab_zycbt219-belnr2 IS INITIAL.

      itab_zycbt219-vlbaixa = itab_zycbe033-wrbtr.

      MODIFY itab_zycbt219.

    ENDIF.

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

  ENDLOOP.

* << Fim da exclusão

  CLEAR itab_zycbt036.

  itab_zycbt036-tcode  = 'F-30'.

  itab_zycbt036-tabela = '/PWS/ZYCBT005'.

  itab_zycbt036-cpochv = v_cpochv.

  itab_zycbt036-belnr  = itab_vinc-belnr_f02.

  CLEAR v_year.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs                = itab_vinc-bukrs

            v_date                 = itab_zycbe033-budat

...

 

...

            period_in_not_valid    = 4

            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.

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

  LOOP AT itab_zycbt219 WHERE nrinvoic = itab_vinc-nrinvoic

                        AND   gsberf   = itab_vinc-gsberf

                        AND   nrparcf  = itab_vinc-nrparcf.

    IF itab_zycbt219-belnr2 NE '0000000000' AND

       itab_zycbt219-belnr2 NE '          '.

      EXIT.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

  IF NOT itab_zycbt219-saldo IS INITIAL.

    v_desc_receb = 'X'.

  ELSE.

    v_desc_receb_aux = 'X'.

  ENDIF.

  IF itab_zycbt034[] IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30'

         EXPORTING

              v_modo          = v_modo_bi

              v_desc_rec      = v_desc_receb

...

 

...

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-30'

                                        tabela = '/PWS/ZYCBT005'

                                        cpochv = v_cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        CLEAR v_desc_receb.

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

        LOOP AT itab_zycbt219 WHERE nrinvoic = itab_vinc-nrinvoic AND

                                    gsberf   = itab_vinc-gsberf   AND

                                    nrparcf  = itab_vinc-nrparcf  AND

                                    NOT vlbaixa IS initial.

* << Fim da exclusão

          itab_zycbt219-belnr2  = itab_zycbt032-belnr.

          itab_zycbt219-saldo   = itab_zycbt219-saldo +

                                  itab_zycbe033-wrbtr.

          itab_zycbt219-saldo_liq = itab_zycbt219-saldo -

                                  itab_zycbe033-wrbtr.

          itab_zycbt219-dtbelnr = itab_zycbe033-budat.

          MODIFY itab_zycbt219.

          UPDATE /pws/zycbt219 SET belnr2  = itab_zycbt219-belnr2

                                   dtbelnr = itab_zycbt219-dtbelnr

                                   saldo   = itab_zycbt219-saldo

...

 

...

                       dtincl   = itab_zycbt219-dtincl   AND

                       gsberf   = itab_zycbt219-gsberf   AND

                       nrparcf  = itab_zycbt219-nrparcf .

          DELETE FROM /pws/zycbt220

              WHERE bukrs    = itab_zycbt219-bukrs AND

                    nrinvoic = itab_zycbt219-nrinvoic AND

                    belnr    = itab_zycbt219-belnr    AND

                    gsberf   = itab_zycbt219-gsberf   AND

                    nrparcf  = itab_zycbt219-nrparcf  AND

                    nrseqc   = itab_vinc-nrseqc       AND

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

                    dtvincul = itab_vinc-dtvincul

                    .

        ENDLOOP.

* << Fim da exclusão

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

                    dtvincul = itab_vinc-dtvincul.

* << Fim da inclusão

        COMMIT WORK.

        itab_contabil-nrinvoic = itab_vinc-nrinvoic.

        itab_contabil-nrparcf  = itab_vinc-nrparcf.

        itab_contabil-gsberf   = itab_vinc-gsberf.

        itab_contabil-docto    = itab_zycbt032-belnr.

        itab_contabil-msg      = text-345.

        itab_contabil-dtdocto  = itab_zycbe033-budat.

        itab_contabil-bukrs    = itab_vinc-bukrs.

        APPEND itab_contabil.

      ELSE.

...

 

...

            period_in_not_valid    = 4

            period_not_assigned    = 5

            version_undefined      = 6

            OTHERS                 = 7.

  SELECT SINGLE * FROM bkpf

     WHERE bukrs = itab_vinc-bukrs

       AND belnr = /pws/zycbe001-belnr2

       AND gjahr = v_year.

  itab_zycbt036-dtdocto = bkpf-budat.

  APPEND itab_zycbt036.

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

  loop at itab_docto_219.

* << Fim da inclusão

  CLEAR itab_zycbt036.

  itab_zycbt036-tcode  = 'F-30'.

  itab_zycbt036-tabela = '/PWS/ZYCBT005'.

  itab_zycbt036-cpochv = v_cpochv.

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

  itab_zycbt036-belnr  = itab_vinc-belnr_f02.

* << Fim da exclusão

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

    itab_zycbt036-belnr  = itab_docto_219-belnr.

* << Fim da inclusão

  CLEAR v_year.

  CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

       EXPORTING

            v_bukrs                = itab_vinc-bukrs

            v_date                 = itab_zycbe033-budat

       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.

  SELECT SINGLE * FROM bkpf

     WHERE bukrs = itab_vinc-bukrs

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

       AND belnr = itab_vinc-belnr_f02

* << Fim da exclusão

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

       AND belnr = itab_docto_219-belnr

* << Fim da inclusão

       AND gjahr = v_year.

  itab_zycbt036-dtdocto = bkpf-budat.

  APPEND itab_zycbt036.

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

  endloop.

  refresh itab_docto_219.

* << Fim da inclusão

  IF itab_zycbt034[] IS INITIAL.

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30'

         EXPORTING

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

      gsberf   LIKE /pws/zycbt017-gsberf,

      budat    LIKE /pws/zycbt030-budat.

DATA: END OF itab_belnr.

DATA: itab_thead LIKE thead OCCURS 50 WITH HEADER LINE,

      itab_tline LIKE tline OCCURS 50 WITH HEADER LINE.

DATA: itab_zycbt035  LIKE /pws/zycbe035 OCCURS 10 WITH HEADER LINE.

DATA: BEGIN OF itab_t320 OCCURS 0,

          campo(35) TYPE c,

          flag,

        END OF itab_t320.

* >> Início da inclusão:

DATA: BEGIN OF itab_docto_219 ocCurs 0,

        belnr type /pws/zycbt219-belnr,

      END OF itab_docto_219.

* << Fim da inclusão

DATA: BEGIN OF itab_nome_campo OCCURS 0,

         nome_campo_tela(35) TYPE c,

         modif,

       END OF itab_nome_campo.

DATA:  BEGIN OF itab_zycbt051_aux3 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycbt051.

DATA:   mark(1),

       END OF itab_zycbt051_aux3.

DATA: BEGIN OF itab_zycbt221 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt221.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB033F01

 

...

  SET TITLEBAR '0100' WITH v_descricao.

ENDFORM.

FORM modify_line.

  DATA: BEGIN OF itab_zycbt219_aux OCCURS 0.

          INCLUDE STRUCTURE /pws/zycbt219.

  DATA: vlsltrans   LIKE /pws/zycbt030-vlsltrans,

        oper(1)     TYPE c,

        mark(1),

        END OF itab_zycbt219_aux.

  CHECK NOT /pws/zycbe219-nrinvoic IS INITIAL.

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

  IF /pws/zycbe219-belnr2 EQ /pws/zycbe219-belnr.

    CLEAR /pws/zycbe219-belnr2.

* << Fim da exclusão

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

  IF NOT itab_zycbt219-belnr2 IS INITIAL.

    /pws/zycbe219-belnr2 = itab_zycbt219-belnr2.

* << Fim da inclusão

  ENDIF.

  MOVE-CORRESPONDING /pws/zycbe219 TO itab_zycbt219.

  IF itab_zycbt219-belnr IS INITIAL AND

     itab_zycbt219-oper  IS INITIAL.

    MOVE v_vlsltrans TO itab_zycbt219-vlsltrans.

  ENDIF.

  MODIFY itab_zycbt219 INDEX tc_desrec-current_line.

  IF sy-subrc NE 0.

    MOVE itab_zycbt219[] TO itab_zycbt219_aux[].

    LOOP AT itab_zycbt219_aux

...

 

...

  ENDIF.

  v_agrupada = 'X'.

  LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt219-nrinvoic AND

                              gsberf   = itab_zycbt219-gsberf   AND

                              nrparcf  = itab_zycbt219-nrparcf.

    IF sy-tabix GT 1.

      v_agrupada = space.

      EXIT.

    ENDIF.

  ENDLOOP.

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

  perform executa_F02_inversa.

* << Fim da inclusão

  IF v_agrupada EQ 'X'.

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

    PERFORM estorna_agrupamento.

* << Fim da exclusão

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

    PERFORM estorna_agrupamento using space.

* << Fim da inclusão

  ELSE.

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

    PERFORM estorna_sem_agrupamento.

* << Fim da exclusão

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

    PERFORM estorna_sem_agrupamento using space.

* << Fim da inclusão

  ENDIF.

ENDFORM.

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

FORM estorna_agrupamento.

* << Fim da exclusão

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

FORM estorna_agrupamento using p_flag.

* << Fim da inclusão

  DATA: BEGIN OF itab_contas OCCURS 0.

          INCLUDE STRUCTURE /pws/zyglt316.

  DATA: END OF itab_contas.

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

  DATA: BEGIN OF itab_partidas OCCURS 0.

          INCLUDE STRUCTURE /pws/zycbe033.

  DATA: END OF itab_partidas.

  DATA: v_belnr_temp type /pws/zycbt219-belnr.

* << Fim da inclusão

  DATA: v_subrc     LIKE sy-subrc,                          "#EC *

        v_dtliquid  LIKE sy-datum,

        v_dtemb     LIKE sy-datum,

        v_kurrf_bl  LIKE /pws/zycet001-kurrf_bl,

        v_cpochv    LIKE /pws/zycbe033-cpochv,

        v_desm      LIKE /pws/zycbt089-tx_desm_cli,

        v_vlsltrans LIKE /pws/zycbt030-vlsltrans.

  CLEAR itab_zyglt321.

  REFRESH itab_zyglt321.

  SELECT * FROM /pws/zyglt321

...

 

...

            ktosl           = 'CPT'

            codaux1         = 'DR'

       TABLES

            account         = itab_contas

       EXCEPTIONS

            key_not_found   = 0

            rules_not_found = 0

            OTHERS          = 0.

  READ TABLE itab_contas INDEX 1.

  itab_zycbe033-d_newko = itab_contas-konts.

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

  IF itab_zycbt030-flag <> 'X'.

    itab_zycbe033-newbs = '50'.

* << Fim da exclusão

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

  if p_flag is initial.

    itab_partidas-agkon   = itab_zycbt030-kunag.

    itab_partidas-agkoa   = 'D'.

    itab_partidas-agums   = /pws/zycbt011-agums.

    itab_partidas-bukrs   = itab_zycbt219-bukrs.

* << Fim da inclusão

  ELSE.

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

    itab_zycbe033-newbs = '12'.

* << Fim da exclusão

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

    itab_partidas-agkon   = itab_contas-konts.

    itab_partidas-agkoa   = 'S'.

    clear itab_partidas-agums.

    itab_partidas-bukrs   = itab_zycbt219-bukrs.

* << Fim da inclusão

  ENDIF.

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

  itab_zycbe033-zumsk = /pws/zycbt011-agums.

  itab_zycbe033-augtx   = /pws/zycbt011-txtdesc.

  itab_zycbe033-d_sgtxt = /pws/zycbt011-txtdesc.

  itab_zycbe033-c_sgtxt = itab_zycbt030-nrinvoic.

  itab_zycbe033-d_zuonr = itab_zycbt030-vbeln.

  itab_zycbe033-agkon   = itab_zycbt030-kunag.

  itab_zycbe033-agkoa   = 'D'.

* << Fim da exclusão

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

  itab_zycbe033-flag_nc = 'X'.

* << Fim da inclusão

  CLEAR itab_zycbe033-c_zuonr.

  APPEND itab_zycbe033.

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

  itab_zycbt036-tabela  = itab_zycbe033-tabela.

  itab_zycbt036-tcode   = itab_zycbe033-tcode.

  itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

  IF itab_zycbt219-belnr_cli IS INITIAL.

    itab_zycbt036-belnr = itab_zycbt219-belnr.

    itab_zycbt036-dtdocto = itab_zycbt219-dtbelnr.

  ELSE.

    itab_zycbt036-belnr = itab_zycbt219-belnr_cli.

    itab_zycbt036-dtdocto = itab_zycbt219-dt_cli.

* << Fim da exclusão

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

  itab_partidas-v_sinal = '+'.

  itab_partidas-shkzg   = 'H'.

  itab_partidas-tcode  = itab_zycbe033-tcode.

  itab_partidas-tabela = itab_zycbe033-tabela.

  itab_partidas-cpochv  = v_cpochv.

  itab_partidas-belnr   = v_belnr_inv.

  itab_partidas-dtdocto = sy-datum.

  APPEND itab_partidas.

  itab_partidas-belnr   = itab_zycbt219-belnr.

  itab_partidas-dtdocto = itab_zycbt219-dtincl.

  APPEND itab_partidas.

  itab_partidas-belnr   = itab_zycbt219-belnr2.

  itab_partidas-dtdocto = itab_zycbt219-dtbelnr.

  APPEND itab_partidas.

  IF NOT itab_zycbt219-belnr_cli is initial.

    itab_partidas-belnr   = itab_zycbt219-belnr_cli.

    itab_partidas-dtdocto = itab_zycbt219-dt_cli.

    append itab_partidas.

* << Fim da inclusão

  ENDIF.

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

  APPEND itab_zycbt036.

* << Fim da exclusão

  LOOP AT itab_zycbt034.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb = '/PWS/ZYCBM'

              msgty = 'I'

              msgv1 = itab_zycbt034-descricao

              txtnr = '061'

              zeile = v_zeile.

    v_zeile = v_zeile + 1.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

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

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_V'

* << Fim da exclusão

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

    CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_W'

* << Fim da inclusão

         EXPORTING

              v_modo          = v_modo_bi

         TABLES

              t_dados         = itab_zycbe033

              t_campo         = itab_zycbt034

              t_zycbt032      = itab_zycbt032

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

              t_zycbt036      = itab_zycbt036

* << Fim da exclusão

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

              t_partidas      = itab_partidas

* << Fim da inclusão

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-30'

                                        tabela = '/PWS/ZYCBT219'

                                        cpochv = itab_zycbe033-cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

...

 

...

                  msgv1 = itab_zycbt032-msgv1

                  msgv2 = itab_zycbt032-msgv2

                  msgv3 = itab_zycbt032-msgv3

                  msgv4 = itab_zycbt032-msgv4

                  txtnr = itab_zycbt032-nrmsg

                  zeile = v_zeile.

        v_zeile   = v_zeile + 1.

        itab_zycbt030-vlsltrans = itab_zycbt030-vlsltrans +

                                  itab_zycbt219-vlme.

        IF sy-subrc EQ 0.

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

          v_belnr_temp = itab_zycbt032-belnr.

          IF p_flag is initial.

            perFORM estorna_agrupamento using v_belnr_temp.

          ENDIF.

* << Fim da inclusão

          UPDATE /pws/zycbt030 SET vlsltrans = itab_zycbt030-vlsltrans

                             WHERE nrinvoic = itab_zycbt030-nrinvoic AND

                                   nrparcf  = itab_zycbt030-nrparcf  AND

                                   vbeln    = itab_zycbt030-vbeln    AND

                                   gsberf   = itab_zycbt030-gsberf.

          DELETE FROM /pws/zycbt219

                 WHERE bukrs    = itab_zycbt219-bukrs    AND

                       nrinvoic = itab_zycbt219-nrinvoic AND

                       gsberf   = itab_zycbt219-gsberf   AND

                       nrparcf  = itab_zycbt219-nrparcf  AND

...

 

...

                  txtnr = '061'

                  zeile = v_zeile.

        v_zeile = v_zeile + 1.

      ENDLOOP.

      v_subrc = 4.

    ENDIF.

  ELSE.

    v_subrc = 4.

  ENDIF.

ENDFORM.

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

FORM estorna_sem_agrupamento.

* << Fim da exclusão

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

FORM estorna_sem_agrupamento using p_flag.

* << Fim da inclusão

  DATA: v_subrc    LIKE sy-subrc,

        v_wrbtr    LIKE bsid-wrbtr,                         "#EC *

        v_dtliquid LIKE sy-datum,

        v_dtemb    LIKE sy-datum,

        v_kurrf_bl LIKE /pws/zycet001-kurrf_bl,

        v_cpochv   LIKE /pws/zycbe033-cpochv,

        v_desm     LIKE /pws/zycbt089-tx_desm_cli,

        v_belnr    LIKE bkpf-belnr,                         "#EC *

        v_dtbelnr  LIKE sy-datum,                           "#EC *

        v_vlsltrans LIKE /pws/zycbt030-vlsltrans,

...

 

...

    ENDIF.

  ENDLOOP.

  itab_zycbe033-augtx   = /pws/zycbt011-txtdesc.

  itab_zycbe033-d_sgtxt = /pws/zycbt011-txtdesc.

  itab_zycbe033-c_sgtxt = itab_zycbt030-nrinvoic.

  itab_zycbe033-zumsk   = itab_zycbt219-umskz.

  itab_zycbe033-agkon   = itab_zycbt219-hkont.

  itab_zycbe033-agkoa   = itab_zycbt219-koart.

  CLEAR itab_zycbe033-c_zuonr.

  APPEND itab_zycbe033.

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

  IF p_flag is initial.

* << Fim da inclusão

  itab_zycbt036-tabela  = itab_zycbe033-tabela.

  itab_zycbt036-tcode   = itab_zycbe033-tcode.

  itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

  IF itab_zycbt219-belnr_cli IS INITIAL.

    itab_zycbt036-belnr = itab_zycbt219-belnr.

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

    itab_zycbt036-dtdocto = itab_zycbt219-dtbelnr.

* << Fim da exclusão

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

    itab_zycbt036-dtdocto = itab_zycbt219-dtincl.

* << Fim da inclusão

  ELSE.

    itab_zycbt036-belnr = itab_zycbt219-belnr_cli.

    itab_zycbt036-dtdocto = itab_zycbt219-dt_cli.

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

  ENDIF.

  APPEND itab_zycbt036.

  ELSE.

    itab_zycbt036-tabela  = itab_zycbe033-tabela.

    itab_zycbt036-tcode   = itab_zycbe033-tcode.

    itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

    itab_zycbt036-belnr   = p_flag.

    itab_zycbt036-dtdocto = sy-datum.

    APPEND itab_zycbt036.

    itab_zycbt036-tabela  = itab_zycbe033-tabela.

    itab_zycbt036-tcode   = itab_zycbe033-tcode.

    itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

    IF itab_zycbt219-belnr2 IS INITIAL.

      itab_zycbt036-belnr = itab_zycbt219-belnr.

      itab_zycbt036-dtdocto = itab_zycbt219-dtincl.

    ELSE.

      itab_zycbt036-belnr = itab_zycbt219-belnr2.

      itab_zycbt036-dtdocto = itab_zycbt219-dtbelnr.

* << Fim da inclusão

  ENDIF.

  APPEND itab_zycbt036.

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

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycbt034.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb = '/PWS/ZYCBM'

              msgty = 'I'

...

 

...

  APPEND tdynpread.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'

       EXPORTING

            dyname     = sy-cprog

            dynumb     = '0001'

       TABLES

            dynpfields = tdynpread

       EXCEPTIONS

             OTHERS    = 0.

ENDFORM.

* >> Início da inclusão:

form executa_F02_inversa.

  DATA: v_cpochv   LIKE /pws/zycbe033-cpochv,

        v_wrbtr    LIKE bsid-wrbtr,

        v_kunnr    TYPE kunnr,

        v_kurrf_bl LIKE /pws/zycet001-kurrf_bl,

        v_dtliquid LIKE sy-datum,

        v_dtemb    LIKE /pws/zycet001-dtemb,

        v_desm     LIKE /pws/zycbt089-tx_desm_cli,

        v_codaux   LIKE /pws/zyglt316-codaux1,

        v_desmemb  TYPE c,

        v_gjahr    LIKE bkpf-gjahr,

        v_erro     TYPE c,

        v_saldo    LIKE /pws/zycbt030-vlsltrans.

  DATA: BEGIN OF itab_contas OCCURS 0.

          INCLUDE STRUCTURE /pws/zyglt316.

  DATA: END OF itab_contas.

  PERFORM verifica_data USING itab_zycbt219-dtcredext

                              itab_zycbt219-bukrs

                              itab_zycbt219-nrinvoic

                              'X'.

  IF sy-subrc NE 0.

    EXIT.

  ENDIF.

  CALL FUNCTION 'MESSAGE_STORE'

    EXPORTING

      arbgb = '/PWS/ZYCBM'

      msgty = 'S'

      msgv1 = text-034

      msgv2 = itab_zycbt219-nrinvoic

      msgv3 = text-035

      txtnr = '061'

      zeile = v_zeile.

  v_zeile = v_zeile + 1.

  v_desmemb = space.

  v_erro    = space.

  itab_zycbt030-v_kwert =

              ( itab_zycbt030-kwert / itab_zycbt030-s_kwert )

                * itab_zycbt219-vlme.

  CHECK sy-subrc EQ 0.

  PERFORM clear_dados_batch.

  itab_zycbe033-tcode  = 'F-02'.

  itab_zycbe033-tabela = '/PWS/ZYCBT219'.

  CONCATENATE itab_zycbt219-nrinvoic

              itab_zycbt219-gsberf

              itab_zycbt219-nrparcf

              itab_zycbt219-dtincl

              INTO v_cpochv.

  CLEAR   itab_zyglt321.

  REFRESH itab_zyglt321.

  SELECT * FROM /pws/zyglt321

           INTO TABLE itab_zyglt321

           WHERE ktosl   = 'FTE'

             AND codeven = '027'.

  itab_zycbe033-cpochv = v_cpochv.

  LOOP AT itab_zyglt321.

    CASE itab_zyglt321-cpor3.

      WHEN 'SGTXT'.

        IF itab_zyglt321-cpocb IS INITIAL AND

           NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_sgtxt = itab_zyglt321-descr.

          itab_zycbe033-augtx   = itab_zyglt321-descr.

        ENDIF.

      WHEN 'XBLNR'.

        IF itab_zyglt321-cpocb = 'NRSEQ' OR

           itab_zyglt321-cpocb = 'NRSEQC'.

          SELECT SINGLE nrseq FROM /pws/zycet001

            INTO itab_zycbe033-xblnr

            WHERE nrseq = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'NRINVOIC'.

          itab_zycbe033-xblnr = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-xblnr = itab_zyglt321-descr.

        ENDIF.

      WHEN 'ZFBDT'.

        IF itab_zyglt321-cpocb = 'DTBL'.

          itab_zycbe033-zfbdt = itab_zycbt030-dtbl.

        ELSEIF itab_zyglt321-cpocb = 'DTINCL'.

          SELECT SINGLE dtincl FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb = 'DTEMB'.

          SELECT SINGLE dtemb FROM /pws/zycet001

                 INTO itab_zycbe033-zfbdt

                 WHERE nrseq = itab_zycbt030-nrinvoic.

        ENDIF.

      WHEN 'VALUT'.

        IF itab_zyglt321-cpocb = 'DTVENCTO'.

        ENDIF.

      WHEN 'ZUONR'.

        IF itab_zyglt321-cpocb = 'NRCONTR'.

          itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.

        ELSEIF itab_zyglt321-cpocb IS INITIAL AND

               NOT itab_zyglt321-descr IS INITIAL.

          itab_zycbe033-d_zuonr = itab_zyglt321-descr.

        ENDIF.

      WHEN 'ZTERM'.

        IF itab_zyglt321-cpocb = 'ZTERM'.

          itab_zycbe033-zterm = itab_zycbt030-zterm.

        ENDIF.

    ENDCASE.

  ENDLOOP.

  PERFORM verify_null_field USING itab_zycbt219-dtcredext

                                  'BUDAT'

                                  text-039.

  itab_zycbe033-budat = itab_zycbt219-dtcredext.

  itab_zycbe033-bldat = itab_zycbt219-dtcredext.

  itab_zycbe033-d_valut = itab_zycbe033-budat.

  itab_zycbe033-bktxt  = /pws/zycbt007-bktxt.

  itab_zycbe033-bukrs  = itab_zycbt219-bukrs.

  itab_zycbe033-waers  = itab_zycbt219-waers.

  PERFORM verify_null_field USING /pws/zycbt011-blart

                                  'BLART'

                                  text-040.

  itab_zycbe033-blart  = /pws/zycbt011-blart.

  itab_zycbe033-d_gsber = itab_zycbt219-gsberf.

  itab_zycbe033-c_gsber = itab_zycbt219-gsberf.

  SELECT SINGLE dtemb kurrf_bl

         FROM /pws/zycet001

         INTO (v_dtemb, v_kurrf_bl)

         WHERE nrseq EQ itab_zycbt219-nrinvoic.

  v_desm = /pws/zycbt089-tx_c_desc_receb.

  PERFORM verifica_data2 USING v_desm

                               itab_zycbt219-dtcredext.

  IF NOT v_databl IS INITIAL.

    PERFORM define_cambio USING v_databl

                                itab_zycbt219-waers

                                /pws/zycbt007-waersb

                                itab_zycbe033-kursf.

  ENDIF.

  itab_zycbe033-wrbtr  = itab_zycbt219-vlme.

  itab_zycbe033-c_newko = itab_zycbt219-kunnr.

  itab_zycbe033-agums   = /pws/zycbt011-agums.

  itab_zycbe033-umskz   = /pws/zycbt011-agums.

  itab_zycbe033-newbs   = '09'.

  itab_zycbe033-newbs1  = '50'.

  PERFORM verify_null_field USING /pws/zycbt011-agums

                                  'AGUMS'

                                  text-041.

  itab_zycbt219-koart = 'D'.

  itab_zycbt219-umskz = /pws/zycbt011-agums.

  itab_zycbt219-hkont = itab_zycbt219-kunnr.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

    EXPORTING

      bukrs           = itab_zycbt219-bukrs

      ktosl           = 'CPT'

      codaux1         = 'DR'

    TABLES

      account         = itab_contas

    EXCEPTIONS

      key_not_found   = 1

      rules_not_found = 2

      OTHERS          = 3.

  READ TABLE itab_contas INDEX 1.

  itab_zycbe033-d_newko = itab_contas-konts.

  itab_zycbt219-hkont   = itab_contas-konts.

  PERFORM verify_null_field USING itab_zycbe033-d_newko

                                  'NEWKO'

                                  text-042.

  itab_zycbe033-augtx   = /pws/zycbt011-txtdesc.

  itab_zycbe033-d_sgtxt = /pws/zycbt011-txtdesc.

  LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt219-nrinvoic AND

                              gsberf   = itab_zycbt219-gsberf   AND

                              nrparcf  = itab_zycbt219-nrparcf.

    itab_zycbt036-tcode   = 'F-02'.

    itab_zycbt036-tabela  = '/PWS/ZYCBT219'.

    itab_zycbt036-cpochv  = itab_zycbe033-cpochv.

    itab_zycbt036-belnr   = itab_zycbt030-belnr_d.

    IF itab_zycbt030-belnr_d EQ itab_zycbt030-belnr   OR

       itab_zycbt030-belnr_d EQ itab_zycbt030-belnr6.

      v_gjahr = itab_zycbt030-budat(4).

      itab_zycbt036-dtdocto = itab_zycbt030-budat.

      CLEAR itab_zycbe033-c_zuonr.

      SELECT SINGLE wrbtr FROM bsid INTO itab_zycbe033-wrbtr

             WHERE belnr  = itab_zycbt030-belnr_d

             AND   gjahr  = v_gjahr

             AND   kunnr  = itab_zycbt219-kunnr

             AND   bukrs  = itab_zycbt219-bukrs.

    ELSE.

      itab_zycbt036-dtdocto = itab_zycbt219-dtcredext.

    ENDIF.

    APPEND itab_zycbt036.

  ENDLOOP.

  itab_zycbe033-brnch = itab_zycbt030-j_1bbranch.

  itab_zycbe033-werks = itab_zycbt030-werks.

  itab_zycbe033-zfbdt = sy-datum.

  IF sy-subrc EQ 0.

    APPEND itab_zycbe033.

  ENDIF.

  LOOP AT itab_zycbt034.

    CALL FUNCTION 'MESSAGE_STORE'

      EXPORTING

        arbgb = '/PWS/ZYCBM'

        msgty = 'I'

        msgv1 = itab_zycbt034-descricao

        txtnr = '061'

        zeile = v_zeile.

    v_zeile = v_zeile + 1.

  ENDLOOP.

  IF itab_zycbt034 IS INITIAL.

    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

        t_zycbt036      = itab_zycbt036

      EXCEPTIONS

        campo_em_branco = 1

        periodo_fechado = 2

        OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = 'F-02'

                                        tabela = '/PWS/ZYCBT219'

                                        cpochv = itab_zycbe033-cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        v_belnr_inv = itab_zycbt032-belnr.

        CALL FUNCTION 'MESSAGE_STORE'

          EXPORTING

            arbgb = itab_zycbt032-msgid

            msgty = itab_zycbt032-tpmsg

            msgv1 = itab_zycbt032-msgv1

            msgv2 = itab_zycbt032-msgv2

            msgv3 = itab_zycbt032-msgv3

            msgv4 = itab_zycbt032-msgv4

            txtnr = itab_zycbt032-nrmsg

            zeile = v_zeile.

        v_zeile = v_zeile + 1.

      ELSE.

        LOOP AT itab_zycbt032 WHERE tcode  = 'F-02'

                                AND tabela = '/PWS/ZYCBT219'

                                AND cpochv = v_cpochv.

          CALL FUNCTION 'MESSAGE_STORE'

            EXPORTING

              arbgb = itab_zycbt032-msgid

              msgty = itab_zycbt032-tpmsg

              msgv1 = itab_zycbt032-msgv1

              msgv2 = itab_zycbt032-msgv2

              msgv3 = itab_zycbt032-msgv3

              msgv4 = itab_zycbt032-msgv4

              txtnr = itab_zycbt032-nrmsg

              zeile = v_zeile.

          v_zeile = v_zeile + 1.

        ENDLOOP.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt034.

        CALL FUNCTION 'MESSAGE_STORE'

          EXPORTING

            arbgb = '/PWS/ZYCBM'

            msgty = 'I'

            msgv1 = itab_zycbt034-descricao

            txtnr = '061'

            zeile = v_zeile.

        v_zeile = v_zeile + 1.

      ENDLOOP.

    ENDIF.

  ENDIF.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB033TOP

 

...

CONTROLS: tc_desrec   TYPE TABLEVIEW USING SCREEN '0100'.

DATA:

      v_oper       LIKE icons-text,

      v_status(1)  TYPE c VALUE '1',

      v_vlsltrans  LIKE /pws/zycbt030-vlsltrans,

      v_line_ini   TYPE i VALUE 1,

      v_databl     LIKE sy-datum,

      v_zeile(5)   TYPE n,

      v_name1      LIKE kna1-name1,

      v_vlavinc    LIKE /pws/zycbt017-vlavinc,

* >> Início da exclusão:

      v_syrepid    LIKE sy-repid.

* << Fim da exclusão

* >> Início da inclusão:

      v_syrepid    LIKE sy-repid,

      v_belnr_inv  type /pws/zycbt219-belnr.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF SCREEN 0001.

SELECT-OPTIONS: s_nrinv FOR /pws/zycbt219-nrinvoic,

                s_bukrs FOR /pws/zycbt219-bukrs,

                s_gsber FOR /pws/zycbt219-gsberf,

                s_werks FOR /pws/zycbt219-werks,

                s_nparc FOR /pws/zycbt219-nrparcf,

                s_kunnr FOR /pws/zycbt219-kunnr,

                s_dtinc FOR /pws/zycbt219-dtincl.

SELECTION-SCREEN END OF SCREEN 0001.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_nrinv-low.

...