CE PLUS - Nota 003379

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Rotina de Pagamento

Data/Hora da Publicação: 03/04/2007 00:00:00

Data/Hora Última Alteração: 10/03/2010 14:40:43

Descrição da Nota: ASSOCIAÇÃO DE ORDENS DE PAGAMENTO - DES. ADIC. REMESSA

Sintoma

 

O desenvolvimento relativo a associação de ordens de pagamento a remessas não havia sido

desenvolvido por completo.

 

Solução

 

Finalização do desenvolvimento relativo a associação de orndes de pagamento a remessas de

recebimento.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 03379 Data: 03/04/2007 Hora: 07:34:01

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

 

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

Nota Número              : 03379

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00027

Agrupamento              : 00156

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

ASSOCIAÇÃO DE ORDENS DE PAGAMENTO - DES. ADIC. REMESSA

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

Palavras Chave:

ASSOCIAÇÃO ORDENS PAGAMENTO VALORES RETIDOS EXTERIRO DA REMESSA

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCB035                        0001

FUNC /PWS/ZYCAA025

FUNC /PWS/ZYCAA026

PARA /PWS/ZYCBP377

RELE F6DK944181 20070329 074346 PWSCB

REPS /PWS/LZYCBGF3UXX

REPS /PWS/MZYCA109F01

REPS /PWS/MZYCA109I01

REPS /PWS/MZYCA109TOP

REPS /PWS/MZYCA110F01

REPS /PWS/MZYCB035F01

REPS /PWS/MZYCB035F02

REPS /PWS/MZYCB035F03

REPS /PWS/MZYCB035I01

REPS /PWS/MZYCB035T02

REPS /PWS/MZYCB035TOP

REPS /PWS/ZYGLR040

REPT /PWS/SAPMZYCA109

REPT /PWS/SAPMZYCB035

SHLD /PWS/ZYCAA025

SHLD /PWS/ZYCAA026

TABD /PWS/ZYCBE124

TABD /PWS/ZYCBT124

TABD /PWS/ZYCBT230

VIED /PWS/ZYCAV004

VIED /PWS/ZYCAV005

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB035                        0001

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCAA025

 

FUNCTION /pws/zycaa025.

  TYPE-POOLS:

    shlp.

  TYPES:

    BEGIN OF t_s_remessa,

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

      nrseq   TYPE /pws/zycav004-nrseq,

      dtpagto TYPE /pws/zycav004-dtpagto,

* << Fim da exclusão

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

      nrseq        TYPE /pws/zycav004-nrseq,

      dtpagto      TYPE /pws/zycav004-dtpagto,

      waers        TYPE /pws/zycav004-waers,

      sld_associar TYPE /pws/zycav004-sld_associar,

* << Fim da inclusão

    END OF t_s_remessa,

    t_t_remessa TYPE STANDARD TABLE OF t_s_remessa

      WITH NON-UNIQUE KEY nrseq.

  DATA:

    itab_remessa TYPE t_t_remessa,

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

    v_dtpagto    TYPE /pws/zycav004-dtpagto,

* << Fim da exclusão

    v_fieldname  TYPE dfies-lfieldname.

  FIELD-SYMBOLS:

    <fs_shlp>       LIKE LINE OF shlp_tab,

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

    <fs_fielddescr> LIKE LINE OF shlp_tab-fielddescr.

* << Fim da exclusão

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

    <fs_fielddescr> LIKE LINE OF shlp_tab-fielddescr,

    <fs_remessa>    LIKE LINE OF itab_remessa.

* << Fim da inclusão

  IF callcontrol-step = 'DISP'.

    READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.

    CHECK <fs_shlp> IS ASSIGNED.

    LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.

      CHECK <fs_fielddescr>-fieldname = 'NRSEQ' OR

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

            <fs_fielddescr>-fieldname = 'DTPAGTO'.

* << Fim da exclusão

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

            <fs_fielddescr>-fieldname = 'DTPAGTO' OR

            <fs_fielddescr>-fieldname = 'SLD_ASSOCIAR'.

* << Fim da inclusão

      v_fieldname = <fs_fielddescr>-fieldname.

      CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

           EXPORTING

                parameter         = <fs_fielddescr>-fieldname

                fieldname         = v_fieldname

           TABLES

                shlp_tab          = shlp_tab

                record_tab        = record_tab

                results_tab       = itab_remessa

           CHANGING

                shlp              = shlp

                callcontrol       = callcontrol

           EXCEPTIONS

                parameter_unknown = 1

                OTHERS            = 2.

      IF sy-subrc <> 0.

        EXIT.

      ENDIF.

    ENDLOOP.

    UNASSIGN: <fs_shlp>, <fs_fielddescr>.

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

    LOOP AT itab_remessa

      TRANSPORTING NO FIELDS

      WHERE dtpagto = v_dtpagto.

* << Fim da exclusão

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

    LOOP AT itab_remessa ASSIGNING <fs_remessa>.

      CHECK <fs_remessa>-sld_associar <= 0 OR

        NOT <fs_remessa>-dtpagto IS INITIAL.

* << Fim da inclusão

      DELETE record_tab INDEX sy-tabix.

      DELETE itab_remessa.

    ENDLOOP.

  ENDIF.

ENDFUNCTION.

 

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

Modificações efetuadas em FUNC /PWS/ZYCAA026

 

FUNCTION /pws/zycaa026.

*"----------------------------------------------------------------------

*"*"Interface local:

*"       TABLES

*"              SHLP_TAB TYPE  SHLP_DESCR_TAB_T

*"              RECORD_TAB STRUCTURE  SEAHLPRES

*"       CHANGING

*"             VALUE(SHLP) TYPE  SHLP_DESCR_T

*"             VALUE(CALLCONTROL) LIKE  DDSHF4CTRL

*"  STRUCTURE  DDSHF4CTRL

*"----------------------------------------------------------------------

 

  TYPE-POOLS:

    shlp.

 

  TYPES:

    BEGIN OF t_s_remessa,

      nrseq TYPE /pws/zycav004-nrseq,

    END OF t_s_remessa,

    t_t_remessa TYPE STANDARD TABLE OF t_s_remessa

      WITH NON-UNIQUE KEY nrseq.

 

  DATA:

    itab_remessa TYPE t_t_remessa,

    wa_remessa   LIKE LINE OF itab_remessa,

    v_fieldname  TYPE dfies-lfieldname.

 

  FIELD-SYMBOLS:

    <fs_shlp>       LIKE LINE OF shlp_tab,

    <fs_fielddescr> LIKE LINE OF shlp_tab-fielddescr,

    <fs_remessa>    LIKE LINE OF itab_remessa.

 

  IF callcontrol-step = 'DISP'.

* Busca na tabela shlp_tab os dados relativos aos campos.

    READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.

    CHECK <fs_shlp> IS ASSIGNED.

* Transfere os dados da record_tab para os respectivos campos da

* tabela interna.

    LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.

      CHECK <fs_fielddescr>-fieldname = 'NRSEQ'.

      v_fieldname = <fs_fielddescr>-fieldname.

      CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'

           EXPORTING

                parameter         = <fs_fielddescr>-fieldname

                fieldname         = v_fieldname

           TABLES

                shlp_tab          = shlp_tab

                record_tab        = record_tab

                results_tab       = itab_remessa

           CHANGING

                shlp              = shlp

                callcontrol       = callcontrol

           EXCEPTIONS

                parameter_unknown = 1

                OTHERS            = 2.

      IF sy-subrc <> 0.

        EXIT.

      ENDIF.

    ENDLOOP.

    UNASSIGN: <fs_shlp>, <fs_fielddescr>.

* Elimina da record_tab as entradas duplicadas.

    LOOP AT itab_remessa ASSIGNING <fs_remessa>.

      IF <fs_remessa> = wa_remessa.

        DELETE record_tab INDEX sy-tabix.

        DELETE itab_remessa.

      ELSE.

        wa_remessa = <fs_remessa>.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFUNCTION.

 

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

Modificações efetuadas em PARA /PWS/ZYCBP377

 

* Criação do parameter /PWS/ZYCBP377 através da SE80 (Texto breve: GL - Parameter remessa)

 

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

Modificações efetuadas em REPS /PWS/LZYCBGF3UXX

 

...

INCLUDE /PWS/LZYCBGF3U54.

INCLUDE /PWS/LZYCBGF3U53.

INCLUDE /PWS/LZYCBGF3U56.

INCLUDE /PWS/LZYCBGF3U55.

INCLUDE /PWS/LZYCBGF3U57.

INCLUDE /PWS/LZYCBGF3U58.

INCLUDE /PWS/LZYCBGF3U59.

INCLUDE /PWS/LZYCBGF3U60.

INCLUDE /PWS/LZYCBGF3U61.

INCLUDE /PWS/LZYCBGF3U62.

* >> Início da inclusão:

INCLUDE /PWS/LZYCBGF3U63.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA109F01

 

FORM administrar_processo.

  DATA: e_subrc       LIKE sy-subrc,

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

        e_exec_okcode.

* << Fim da exclusão

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

        e_exec_okcode,

        v_associado(1) TYPE c.

* << Fim da inclusão

  CLEAR: r_okcode, e_exec_okcode, v_syrepid.

  CALL METHOD cl_gui_cfw=>dispatch.

  IF NOT r_okcode IS INITIAL.

    ok_code = r_okcode.

  ENDIF.

  CLEAR itab_zyglt100.

  IF itab_zyglt100[] IS INITIAL.

    v_syrepid = sy-repid.

    CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

         EXPORTING

...

 

...

        IF sy-binpt IS INITIAL.

          LEAVE TO TRANSACTION '/PWS/ZYCB109_C'.

        ENDIF.

      ENDIF.

    WHEN 'OUTRO'.

      PERFORM verifica_alteracoes.

      IF v_answer <> 'A'.

        PERFORM chama_documento.

      ENDIF.

    WHEN 'MODI'.

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

      PERFORM verifica_associacao CHANGING v_associado.

      IF NOT v_associado IS INITIAL.

        MESSAGE e015 WITH 'Esta remessa já está associada -'(179)

          'permitida somente a exibição.'(180).

      ENDIF.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD '/PWS/ZYCB109_A'.

      IF sy-subrc EQ 0.

        PERFORM checa_boleto.

      ELSE.

        MESSAGE e280.

      ENDIF.

    WHEN 'ENTE'.

      PERFORM trata_impostos.

      PERFORM trata_contabilizacao.

      PERFORM calcula_vlmi.

...

 

...

    WHEN 'CARTA'.

      AUTHORITY-CHECK OBJECT 'S_TCODE'

          ID 'TCD'  FIELD '/PWS/ZYCBR103'.

      IF sy-subrc EQ 0.

        EXPORT v_nrseq TO MEMORY ID '0100'.

        CALL TRANSACTION '/PWS/ZYCBR103'.

      ELSE.

        MESSAGE e261(sf) WITH '/PWS/ZYCBR103'.

      ENDIF.

    WHEN 'BOL' .

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

      PERFORM verifica_associacao CHANGING v_associado.

      IF NOT v_associado IS INITIAL.

        MESSAGE e015 WITH 'Esta remessa já está associada -'(179)

          'não é permitida a geração de boleto.'(181).

      ENDIF.

* << Fim da inclusão

      PERFORM chama_boleto.

    WHEN 'DESP' .

      PERFORM call_zycb105_l.

    WHEN 'MODO'.

      PERFORM modo_batch_input.

    WHEN 'DELE'.

      IF NOT ts_rem-activetab = 'FC_CONT'.

        ts_rem-activetab = 'FC_CONT'.

      ENDIF.

      READ TABLE itab_zycbt141 WITH KEY mark = 'X'.

...

 

...

FORM salva_itens.

  IF erro_bi_principal IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

                                AND tpimp = 'PRINCIPAL'.

    LOOP AT itab_zycbt141 WHERE tpimp = 'PRINCIPAL'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_irrf IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%IRRF'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'IRRF%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(4) = 'IRRF'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_cide IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%CIDE'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'CIDE%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(4) = 'CIDE'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_pis IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%PIS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'PIS%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(3) = 'PIS'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_cofins IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%COFINS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'COFINS%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(6) = 'COFINS'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_iss IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%ISS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'ISS%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(3) = 'ISS'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

  IF erro_bi_iof IS INITIAL.

    DELETE FROM /pws/zycbt141 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%IOF'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'IOF%'.

* << Fim da inclusão

    LOOP AT itab_zycbt141 WHERE tpimp(3) = 'IOF'.

      INSERT INTO /pws/zycbt141 VALUES itab_zycbt141.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM popup_message2 USING p_text1

                          p_text2

                          p_text3.

  CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

       EXPORTING

...

 

...

            fields       = itab_campos.

ENDFORM.

FORM carrega_par_impostos.

  SELECT * FROM /pws/zycat024 INTO TABLE itab_zycat024

           WHERE bukrs = /pws/zycbe124-bukrs.

ENDFORM.

FORM salva_dados_imposto.

  PERFORM atualiza_tab_aux.

  IF erro_bi_irrf IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%IRRF'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'IRRF%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(4) = 'IRRF'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

  IF erro_bi_cide IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%CIDE'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'CIDE%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(4) = 'CIDE'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

  IF erro_bi_pis IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%PIS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'PIS%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(3) = 'PIS'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

  IF erro_bi_cofins IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%COFINS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'COFINS%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(6) = 'COFINS'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

  IF erro_bi_iss IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%ISS'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'ISS%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(3) = 'ISS'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

  IF erro_bi_iof IS INITIAL.

    DELETE FROM /pws/zycat025 WHERE nrseq = /pws/zycbe124-nrseq

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

                                AND tpimp LIKE '%IOF'.

* << Fim da exclusão

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

                                AND tpimp LIKE 'IOF%'.

* << Fim da inclusão

    LOOP AT itab_zycat025 WHERE tpimp(3) = 'IOF'.

      INSERT INTO /pws/zycat025 VALUES itab_zycat025.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM elimina_item_imp.

  LOOP AT itab_zycat025 WHERE mark = 'X'.

    DELETE itab_zycat025.

    DELETE itab_zycbt141_i WHERE tpimp = itab_zycat025-tpimp.

    IF     itab_zycat025-tpimp(4) = 'CIDE'.

...

 

...

  ELSEIF p_tpimp(3) = 'PIS'.

    erro_bi_pis = 'X'.

  ELSEIF p_tpimp(6) = 'COFINS'.

    erro_bi_cofins = 'X'.

  ELSEIF p_tpimp(3) = 'ISS'.

    erro_bi_iss = 'X'.

  ELSEIF p_tpimp(3) = 'IOF'.

    erro_bi_iof = 'X'.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM verifica_associacao CHANGING p_associado TYPE c.

  CONSTANTS:

    c_tpoper  TYPE /pws/zycbe124-tpoper  VALUE 'R',

    c_frpagto TYPE /pws/zycbe124-frpagto VALUE 'C'.

  STATICS

    v_nrseq TYPE /pws/zycbt229-nrseq_remessa.

  CHECK /pws/zycbe124-tpoper = c_tpoper AND

    /pws/zycbe124-frpagto = c_frpagto.

  IF v_nrseq IS INITIAL.

    SELECT SINGLE nrseq_remessa

      FROM /pws/zycbt229

      INTO v_nrseq

      WHERE nrseq_remessa = /pws/zycbe124-nrseq.

  ENDIF.

  IF v_nrseq IS INITIAL.

    CLEAR p_associado.

  ELSE.

    p_associado = 'X'.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA109I01

 

...

      ENDIF.

      IF sy-tcode = '/PWS/ZYCB109_A'.

        SELECT SINGLE nrboleto  FROM /pws/zycbt064 INTO v_nrboleto

                           WHERE nrchave = v_nrseq

                            AND mdcorresp = 'CP'.

        IF sy-subrc NE 0.

          SELECT SINGLE nrseq FROM /pws/zycbt031 INTO v_nrboleto

                            WHERE nrcorresp = v_nrseq

                              AND mdcorresp = 'CP'.

        ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0200

        SELECT SINGLE vlme sld_associar

          FROM /pws/zycbt124

          INTO (v_vlme_assoc, v_sld_associar)

          WHERE

            nrseq   = v_nrseq AND

            tpoper  = 'R'     AND

            frpagto = 'C'.

        IF v_nrboleto <> space

          OR v_vlme_assoc <> v_sld_associar.

          s = 1.

* << Fim da inclusão

        IF v_nrboleto <> space.

* >> Início da exclusão: MODULE USER_COMMAND_0200

          s = 1.

* << Fim da exclusão

          MESSAGE i258.

* >> Início da inclusão: MODULE USER_COMMAND_0200

          ELSE.

            MESSAGE i015 WITH 'Esta remessa já está associada -'(179)

              'permitida somente a exibição.'(180).

          ENDIF.

* << Fim da inclusão

          EXPORT s TO MEMORY ID 'E124'.

          v_boleto = 'X'.

          EXPORT v_boleto TO MEMORY ID 'E001'.

          IF sy-binpt IS INITIAL.

            LEAVE TO TRANSACTION '/PWS/ZYCB109_E' AND SKIP FIRST SCREEN.

          ELSE.

            v_status_s = 0.

          ENDIF.

        ENDIF.

      ENDIF.

...

 

...

    ENDIF.

    IF /pws/zycbe124-codpagto IS INITIAL OR

    /pws/zycbe124-tpoper IS INITIAL.

      MESSAGE i015 WITH text-008.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE consiste_vlme INPUT.

  IF /pws/zycbt125-tprem = '2' AND NOT rbkp-rmwwr IS INITIAL.

    /pws/zycbe124-vlme = rbkp-rmwwr.

* >> Início da inclusão: MODULE CONSISTE_VLME

  ENDIF.

  IF /pws/zycbe124-tpoper = 'R' AND /pws/zycbe124-frpagto = 'C'.

    /pws/zycbe124-sld_associar = /pws/zycbe124-vlme.

* << Fim da inclusão

  ENDIF.

  IF v_status_s NE 0.

    IF /pws/zycbe124-vlme IS INITIAL.

      MESSAGE i015 WITH text-007.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE consiste_dtvencto INPUT.

  IF v_status_s NE 0.

    IF /pws/zycbe124-dtvencto IS INITIAL.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA109TOP

 

...

  v_control_is(10)       TYPE n,

  v_control_pi(10)       TYPE n,

  v_control_co(10)       TYPE n,

  v_indice TYPE i.

DATA: v_nome_campo(35) TYPE c,

      v_comp(35)       TYPE c,

      v_cod_grupo      LIKE /pws/zyglt320-cod_grupo,

      cont             TYPE i VALUE 0,

      v_tela           LIKE sy-ucomm,

      wa_zycbe141_aux  LIKE /pws/zycbe141,

* >> Início da exclusão:

      v_dtlanc(10)     TYPE c.

* << Fim da exclusão

* >> Início da inclusão:

      v_dtlanc(10)     TYPE c,

      v_vlme_assoc     TYPE /pws/zycbt124-vlme,

      v_sld_associar   TYPE /pws/zycbt124-sld_associar.

* << Fim da inclusão

DATA: e_subrc       LIKE sy-subrc.

 

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

Modificações efetuadas em REPS /PWS/MZYCA110F01

 

...

  IF itab_zycbe033-c_gsber IS INITIAL.

    itab_zycbe033-c_gsber = wa_zycbt118-gsber.

  ENDIF.

  PERFORM verifica_pais_filial USING /pws/zycbe031-bukrs

                                     wa_zycbt118-j_1bbranch.

  itab_zycbe033-brnch = wa_zycbt118-j_1bbranch.

  itab_zycbe033-c_kostl = wa_zycbt118-kostl.

  itab_zycbe033-c_prctr = wa_zycbt118-prctr.

  itab_zycbe033-c_fipos = wa_zycbt118-fipos.

  itab_zycbe033-c_fictr = wa_zycbt118-fictr.

* >> Início da inclusão: FORM FILL_DATE_F-63OUF-02_CD

  CLEAR:   itab_zyglt100.

  REFRESH: itab_zyglt100.

  IF itab_zyglt100[] IS INITIAL.

    v_syrepid = sy-repid.

    CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

         EXPORTING

              i_codmod                = 'E'

              i_func                  = v_syrepid

         TABLES

              itab_zyglt100           = itab_zyglt100

         EXCEPTIONS

              i_codmod_nao_encontrado = 1

              i_func_nao_encontrado   = 2

              i_zexit_nao_encontrado  = 3

              OTHERS                  = 4.

  ENDIF.

  READ TABLE itab_zyglt100 WITH KEY zexit  = 'CMP005' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario)

              IN PROGRAM (itab_zyglt100-programa)

              CHANGING   e_subrc.

      IF e_subrc NE 0.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  APPEND itab_zycbe033.

  CLEAR t021r.

  SELECT SINGLE * FROM t021r INTO t021r

                  WHERE event = 'SU-AG'

                    AND feldn = 'AWKEY'.

  CLEAR itab_zycbt036.

  REFRESH itab_zycbt036.

  IF wa_zycbt118-frpagto EQ 'C'.

    itab_zycbt036-tcode  = 'F-51'.

    itab_zycbt036-tabela = '/PWS/ZYCBT031'.

...

 

...

  itab_zycbe033-wrbtr  = itab_dados_tc-vlme.

  itab_zycbe033-dmbtr  = itab_dados_tc-vlmi.

  CLEAR itab_zycbt036.

  REFRESH itab_zycbt036.

  LOOP AT itab_zycbt124_aux.

    itab_zycbt036-tcode   = 'F-30'.

    itab_zycbt036-tabela  = '/PWS/ZYCBT031'.

    itab_zycbt036-cpochv  = /pws/zycbe031-nrseq.

    IF itab_zycbt124_aux-buzei > 0.

      itab_zycbt036-belnr   = itab_zycbt124_aux-belnr_f51.

* >> Início da inclusão: FORM FILL_DATE_F-30_CP

    ELSEIF NOT itab_zycbt124_aux-belnr_assoc IS INITIAL.

      itab_zycbt036-belnr = itab_zycbt124_aux-belnr_assoc.

* << Fim da inclusão

    ELSE.

      itab_zycbt036-belnr   = itab_zycbt124_aux-belnr.

    ENDIF.

    SELECT SINGLE budat awkey FROM bkpf

                        INTO (itab_zycbt036-dtdocto,itab_zycbt036-awkey)

                        WHERE belnr EQ itab_zycbt036-belnr

                          AND bukrs EQ /pws/zycbe031-bukrs

                          AND gjahr EQ itab_zycbt124_aux-dtdocto(4).

    APPEND itab_zycbt036.

    PERFORM verify_null_field USING itab_zycbt036-belnr

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F01

 

...

ENDFORM.

FORM valores_iniciais.

  CASE sy-dynnr.

    WHEN '0001'.

      PERFORM valores_iniciais_0001.

    WHEN '0102'.

      PERFORM valores_iniciais_0102.

  ENDCASE.

ENDFORM.

FORM valores_iniciais_0001.

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

  DATA

    v_remessa LIKE c_flag_remessa.

  GET PARAMETER ID c_id_remessa FIELD v_remessa.

  IF v_remessa = c_flag_remessa.

    CLEAR btn_embarque.

    btn_remessa = 'X'.

    SET PARAMETER ID c_id_remessa FIELD space.

  ENDIF.

* << Fim da inclusão

  wa_controle-modo_bi = 'N'.

  CASE sy-tcode.

    WHEN c_transacao_a OR c_transacao_c.

      wa_controle-edicao = 'X'.

    WHEN c_transacao_e.

      CLEAR wa_controle-edicao.

  ENDCASE.

ENDFORM.

FORM valores_iniciais_0102.

  DATA

...

 

...

    c_id_nrparcf(13)   TYPE c VALUE '/PWS/ZYCBP375',

    c_id_gsberf(3)     TYPE c VALUE 'GSB',

    c_id_nrseq(13)     TYPE c VALUE '/PWS/ZYCBP001',

    c_objeto_bukrs(10) TYPE c VALUE 'F_BKPF_BUK',

    c_bukrs(5)         TYPE c VALUE 'BUKRS',

    c_tcode(7)         TYPE c VALUE 'S_TCODE',

    c_tcd(3)           TYPE c VALUE 'TCD'.

  DATA:

    wa_fatura     TYPE t_s_fatura,

    v_nrseq       TYPE /pws/zycbt229-nrseq_remessa,

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

    v_dtassoc     TYPE d,

* << Fim da inclusão

    v_bloqueio(2) TYPE c VALUE c_criacao.

  FIELD-SYMBOLS:

    <fs_kna1>     LIKE LINE OF itab_kna1,

    <fs_t001>     LIKE LINE OF itab_t001,

    <fs_zycbt209> LIKE LINE OF itab_zycbt209,

    <fs_zycbt227> LIKE LINE OF itab_zycbt227,

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

    <fs_zycbt229> LIKE LINE OF itab_zycbt229,

* << Fim da inclusão

    <fs_bukrs>    TYPE t_s_t001-bukrs,

...

 

...

      ENDIF.

      LEAVE TO TRANSACTION c_transacao_c AND SKIP FIRST SCREEN.

    WHEN 'ENTE'.

      ok_code = 'DUMMY'.

      IF btn_embarque = 'X'.

        CLEAR v_nrseq.

        wa_controle-processo = c_flag_embarque.

        wa_fatura-nrinvoic = /pws/zycbe227a-nrinvoic.

        wa_fatura-nrparcf  = /pws/zycbe227a-nrparcf.

        wa_fatura-gsberf   = /pws/zycbe227a-gsberf.

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

        v_dtassoc          = /pws/zycbe227a-dtassoc.

* << Fim da inclusão

      ELSE.

        CLEAR wa_fatura.

        wa_controle-processo = c_flag_remessa.

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

        v_nrseq = /pws/zycbe229a-nrseq.

* << Fim da exclusão

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

        v_nrseq   = /pws/zycbe229a-nrseq.

        v_dtassoc = /pws/zycbe227a-dtassoc.

        CLEAR /pws/zycbe227a.

* << Fim da inclusão

      ENDIF.

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

      FREE itab_zycbt228a.

* << Fim da inclusão

      PERFORM seleciona_dados

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

        USING wa_fatura v_nrseq /pws/zycbe227a-dtassoc.

* << Fim da exclusão

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

        USING wa_fatura v_nrseq v_dtassoc.

* << Fim da inclusão

      IF NOT wa_zycbt017 IS INITIAL.

        ASSIGN wa_zycbt017-bukrs TO <fs_bukrs>.

      ELSEIF NOT wa_zycbt124 IS INITIAL.

        ASSIGN wa_zycbt124-bukrs TO <fs_bukrs>.

      ENDIF.

      IF <fs_bukrs> IS ASSIGNED.

        CASE sy-tcode.

          WHEN c_transacao_c.

            v_bloqueio = c_criacao.

          WHEN c_transacao_a.

...

 

...

          /pws/zycbe227a-dtassoc = wa_zycbt017-dtbl.

        ENDIF.

        LOOP AT itab_zycbt209

          ASSIGNING <fs_zycbt209> WHERE saldo > 0.

          /pws/zycbe227a-vlsltrans = /pws/zycbe227a-vlsltrans +

            <fs_zycbt209>-saldo.

        ENDLOOP.

        ASSIGN: /pws/zycbe227a-kunag TO <fs_kunnr>,

          /pws/zycbe227a-butxt TO <fs_butxt>,

          /pws/zycbe227a-name1 TO <fs_name1>.

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

      ELSE.

        /pws/zycbe229a-nrseq        = wa_zycbt124-nrseq.

        /pws/zycbe229a-nrfech       = wa_zycbt124-nrfech.

        /pws/zycbe229a-gsber        = wa_zycbt124-gsber.

        /pws/zycbe229a-bukrs        = wa_zycbt124-bukrs.

        /pws/zycbe229a-recrem       = wa_zycbt124-recrem.

        /pws/zycbe229a-j_1bbranch   = wa_zycbt124-j_1bbranch.

        /pws/zycbe229a-waers        = wa_zycbt124-waers.

        /pws/zycbe229a-sld_associar = wa_zycbt124-sld_associar.

        READ TABLE itab_zycbt229 INDEX 1 ASSIGNING <fs_zycbt229>.

        IF <fs_zycbt229> IS ASSIGNED.

          /pws/zycbe229a-dtassoc = <fs_zycbt229>-dtassoc.

* << Fim da inclusão

      ELSE.

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

        /pws/zycbe229a-nrseq      = wa_zycbt124-nrseq.

        /pws/zycbe229a-nrfech     = wa_zycbt124-nrfech.

        /pws/zycbe229a-gsber      = wa_zycbt124-gsber.

        /pws/zycbe229a-bukrs      = wa_zycbt124-bukrs.

        /pws/zycbe229a-recrem     = wa_zycbt124-recrem.

        /pws/zycbe229a-j_1bbranch = wa_zycbt124-j_1bbranch.

        /pws/zycbe229a-waers      = wa_zycbt124-waers.

        /pws/zycbe229a-dtassoc    = wa_zycbt124-dtincl.

* << Fim da exclusão

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

          /pws/zycbe229a-dtassoc = wa_zycbt124-dtincl.

        ENDIF.

* << Fim da inclusão

        ASSIGN: /pws/zycbe229a-recrem TO <fs_kunnr>,

          /pws/zycbe229a-butxt TO <fs_butxt>,

          /pws/zycbe229a-name1 TO <fs_name1>.

      ENDIF.

      IF <fs_bukrs> IS ASSIGNED.

        READ TABLE itab_t001

          WITH TABLE KEY bukrs = <fs_bukrs>

          ASSIGNING <fs_t001>.

        IF <fs_t001> IS ASSIGNED.

          <fs_butxt> = <fs_t001>-butxt.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F02

 

...

      FROM /pws/zycbt227

      INTO TABLE p_itab_dtassoc

      WHERE

        nrinvoic = p_wa_fatura-nrinvoic AND

        nrparcf  = p_wa_fatura-nrparcf  AND

        gsberf   = p_wa_fatura-gsberf.

  ELSE.

    SELECT DISTINCT dtassoc

      FROM /pws/zycbt229

      INTO TABLE p_itab_dtassoc

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

      WHERE nrseq = p_nrseq.

* << Fim da exclusão

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

      WHERE nrseq_remessa = p_nrseq.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM seleciona_dados

  USING

    value(p_wa_fatura) TYPE t_s_fatura

    value(p_nrseq)     TYPE /pws/zycbt229-nrseq_remessa

    value(p_dtassoc)   TYPE /pws/zycbt227-dtassoc.

  CHECK NOT ( p_wa_fatura IS INITIAL AND p_nrseq IS INITIAL ).

  IF NOT p_wa_fatura IS INITIAL.

    PERFORM seleciona_dados_fatura

...

 

...

    FROM /pws/zycbt030

    INTO wa_zycbt030

    WHERE

      nrinvoic = p_wa_fatura-nrinvoic AND

      nrparcf  = p_wa_fatura-nrparcf  AND

      gsberf   = p_wa_fatura-gsberf.

ENDFORM.

FORM seleciona_dados_remessa

  USING value(p_nrseq) TYPE /pws/zycbt229-nrseq_remessa.

  CHECK NOT p_nrseq IS INITIAL.

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

  SELECT SINGLE nrseq nrfech bukrs gsber j_1bbranch recrem dtincl waers

* << Fim da exclusão

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

  SELECT SINGLE nrseq nrfech bukrs gsber j_1bbranch werks recrem dtincl

    dtvencto waers vlme txtinf dtpagto kursf ftaxa dtdocto belnr

    sld_associar dtassoc belnr_assoc

* << Fim da inclusão

    FROM /pws/zycbt124

    INTO wa_zycbt124

    WHERE nrseq = p_nrseq.

ENDFORM.

FORM seleciona_dados_liq_andamento

  USING value(p_wa_fatura) TYPE t_s_fatura.

  CHECK NOT p_wa_fatura IS INITIAL.

  SELECT bukrs nrinvoic belnr nrparcf gsberf dtincl waers saldo belnr2

    dtbelnr koart hkont umskz

    FROM /pws/zycbt209

...

 

...

    value(p_objeto)

    value(p_campo_obj)

    value(p_campo)

    value(p_acao).

  AUTHORITY-CHECK

    OBJECT p_objeto ID p_campo_obj DUMMY ID 'ACTVT' FIELD  p_acao.

  IF sy-subrc NE 0.

    AUTHORITY-CHECK

      OBJECT p_objeto ID p_campo_obj FIELD p_campo ID 'ACTVT'

      FIELD p_acao.

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

    IF sy-subrc <> 0.

      EXIT.

* << Fim da inclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM bloqueia_associacao

  USING

    value(p_wa_fatura) TYPE t_s_fatura

    value(p_nrseq)     TYPE /pws/zycbt229-nrseq_remessa.

  DATA

...

 

...

      WHERE

        nrinvoic = p_wa_fatura-nrinvoic AND

        nrparcf  = p_wa_fatura-nrparcf  AND

        gsberf   = p_wa_fatura-gsberf   AND

        dtassoc  = p_dtassoc.

  ELSE.

    SELECT SINGLE dtassoc

      FROM /pws/zycbt229

      INTO v_dtassoc

      WHERE

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

        nrseq   = p_nrseq AND

        dtassoc = p_dtassoc.

* << Fim da exclusão

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

        nrseq_remessa = p_nrseq AND

        dtassoc       = p_dtassoc.

* << Fim da inclusão

  ENDIF.

  IF sy-subrc <> 0.

    p_nao_existe = 'X'.

  ENDIF.

ENDFORM.

FORM verifica_remessa

  USING value(p_nrseq) TYPE /pws/zycbt229-nrseq_remessa

  CHANGING p_nao_existe TYPE c.

  DATA

    v_nrseq TYPE /pws/zycbt124-nrseq.

...

 

...

  ENDIF.

ENDFORM.

FORM salva_dados.

  DATA

    v_excecao(1) TYPE c.

  PERFORM verifica_dados CHANGING v_excecao.

  IF v_excecao IS INITIAL.

    PERFORM efetua_contabilizacoes.

    PERFORM atualiza_tabelas.

    IF NOT itab_mensagem IS INITIAL.

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

      EXPORT itab_mensagem TO MEMORY ID c_mensagem.

      SUBMIT (c_rel_contabil) AND RETURN.

      FREE MEMORY ID c_mensagem.

      IF wa_controle-processo = c_flag_remessa.

        SET PARAMETER ID c_id_remessa FIELD c_flag_remessa.

      ENDIF.

* << Fim da inclusão

      LEAVE TO TRANSACTION c_transacao_e AND SKIP FIRST SCREEN.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_tabelas.

  PERFORM atualiza_dados_fatura_remessa.

  PERFORM atualiza_dados_ordem_pagto.

  PERFORM atualiza_dados_associacao.

ENDFORM.

FORM atualiza_dados_fatura_remessa.

...

 

...

      SET

        vlsltrans = wa_zycbt030-vlsltrans

        belnr6    = wa_zycbt030-belnr6

        budat     = wa_zycbt030-budat

      WHERE

        nrinvoic = /pws/zycbe227a-nrinvoic AND

        nrparcf  = /pws/zycbe227a-nrparcf  AND

        gsberf   = /pws/zycbe227a-gsberf.

    PERFORM atualiza_dados_liq_and.

  ELSE.

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

    UPDATE /pws/zycbt124

      SET

        dtpagto      = wa_zycbt124-dtpagto

        sld_associar = wa_zycbt124-sld_associar

        belnr_assoc  = wa_zycbt124-belnr_assoc

        dtassoc      = wa_zycbt124-dtassoc

      WHERE nrseq = /pws/zycbe229a-nrseq.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM atualiza_dados_ordem_pagto.

  DATA

    itab_zycbt226_at TYPE SORTED TABLE OF /pws/zycbt226

      WITH UNIQUE KEY nrseq.

  FIELD-SYMBOLS:

    <fs_zycbt226>    LIKE LINE OF itab_zycbt226,

    <fs_zycbt226_at> LIKE LINE OF itab_zycbt226_at.

  CHECK NOT itab_zycbt226 IS INITIAL.

...

 

...

  ENDLOOP.

  UPDATE /pws/zycbt226 FROM TABLE itab_zycbt226_at.

ENDFORM.

FORM atualiza_dados_associacao.

  DATA:

    itab_zycbt227_i LIKE itab_zycbt227,

    itab_zycbt227_a LIKE itab_zycbt227,

    itab_zycbt227_e LIKE itab_zycbt227,

    itab_zycbt228_i LIKE itab_zycbt228,

    itab_zycbt228_a LIKE itab_zycbt228,

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

    itab_zycbt228_e LIKE itab_zycbt228.

* << Fim da exclusão

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

    itab_zycbt228_e LIKE itab_zycbt228,

    itab_zycbt229_i LIKE itab_zycbt229,

    itab_zycbt229_a LIKE itab_zycbt229,

    itab_zycbt229_e LIKE itab_zycbt229,

    itab_zycbt230_i LIKE itab_zycbt230,

    itab_zycbt230_a LIKE itab_zycbt230,

    itab_zycbt230_e LIKE itab_zycbt230.

* << Fim da inclusão

  FIELD-SYMBOLS:

    <fs_zycbt228a> LIKE LINE OF itab_zycbt228a.

  LOOP AT itab_zycbt228a ASSIGNING <fs_zycbt228a>.

    PERFORM atualiza_assoc_embarque

      USING  <fs_zycbt228a>

      CHANGING

        itab_zycbt227_i

        itab_zycbt227_a

        itab_zycbt227_e

        itab_zycbt228_i

        itab_zycbt228_a

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

        itab_zycbt228_e.

* << Fim da exclusão

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

        itab_zycbt228_e

        itab_zycbt229_i

        itab_zycbt229_a

        itab_zycbt229_e

        itab_zycbt230_i

        itab_zycbt230_a

        itab_zycbt230_e.

* << Fim da inclusão

  ENDLOOP.

  IF NOT itab_zycbt227_e IS INITIAL.

    DELETE /pws/zycbt227 FROM TABLE itab_zycbt227_e.

    DELETE /pws/zycbt228 FROM TABLE itab_zycbt228_e.

  ENDIF.

  IF NOT itab_zycbt227_a IS INITIAL.

    UPDATE /pws/zycbt227 FROM TABLE itab_zycbt227_a.

    UPDATE /pws/zycbt228 FROM TABLE itab_zycbt228_a.

  ENDIF.

  IF NOT itab_zycbt227_i IS INITIAL.

    INSERT /pws/zycbt227 FROM TABLE itab_zycbt227_i.

    INSERT /pws/zycbt228 FROM TABLE itab_zycbt228_i.

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

  ENDIF.

  IF NOT itab_zycbt229_e IS INITIAL.

    DELETE /pws/zycbt229 FROM TABLE itab_zycbt229_e.

    DELETE /pws/zycbt230 FROM TABLE itab_zycbt230_e.

  ENDIF.

  IF NOT itab_zycbt229_a IS INITIAL.

    UPDATE /pws/zycbt229 FROM TABLE itab_zycbt229_a.

    UPDATE /pws/zycbt230 FROM TABLE itab_zycbt230_a.

* << Fim da inclusão

  ENDIF.

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

  IF NOT itab_zycbt229_i IS INITIAL.

    INSERT /pws/zycbt229 FROM TABLE itab_zycbt229_i.

    INSERT /pws/zycbt230 FROM TABLE itab_zycbt230_i.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM verifica_ordem

  USING value(p_wa_zycbt226) LIKE LINE OF itab_zycbt226

...

 

...

  ENDIF.

  IF <fs_kunnr> <> p_wa_zycbt226-kunag.

    p_excecao = 'X'.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb                  = c_grupo_mensagem

              msgty                  = 'E'

              msgv1                  =

                'O cliente da ordem de pagamento'(m31)

              msgv2                  = p_wa_zycbt226-nrseq

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

              msgv3                  = 'deve ser o memsmo'(m32)

* << Fim da exclusão

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

              msgv3                  = 'deve ser o mesmo'(m32)

* << Fim da inclusão

              msgv4                  = <fs_mensagem>

              txtnr                  = 061

         EXCEPTIONS

              message_type_not_valid = 1

              not_active             = 2

              OTHERS                 = 3.

    IF sy-subrc <> 0.

      EXIT.

    ENDIF.

  ENDIF.

...

 

...

  APPEND wa_zycbt228a TO itab_zycbt228a.

ENDFORM.

FORM transfere_associacao_itab.

  CONSTANTS

    c_tp_docto_assoc TYPE t_s_zycbt228-tp_docto VALUE 'A'.

  DATA

    wa_zycbt228a LIKE LINE OF itab_zycbt228a.

  FIELD-SYMBOLS:

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_zycbt227> LIKE LINE OF itab_zycbt227,

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228.

* << Fim da exclusão

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

    <fs_zycbt229> LIKE LINE OF itab_zycbt229,

    <fs_zycbt230> LIKE LINE OF itab_zycbt230.

* << Fim da inclusão

  CHECK NOT ( itab_zycbt227 IS INITIAL AND itab_zycbt229 IS INITIAL ).

  LOOP AT itab_zycbt227 ASSIGNING <fs_zycbt227>.

    wa_zycbt228a-nrseq         = <fs_zycbt227>-nrseq.

    wa_zycbt228a-waers         = <fs_zycbt227>-waers.

    wa_zycbt228a-vlr_associado = <fs_zycbt227>-vlr_associado.

    READ TABLE itab_zycbt226

      WITH TABLE KEY nrseq = <fs_zycbt227>-nrseq

      ASSIGNING <fs_zycbt226>.

    IF <fs_zycbt226> IS ASSIGNED.

      wa_zycbt228a-dtincl       = <fs_zycbt226>-dtincl.

...

 

...

        nrseq    = <fs_zycbt227>-nrseq

        nrinvoic = <fs_zycbt227>-nrinvoic

        nrparcf  = <fs_zycbt227>-nrparcf

        gsberf   = <fs_zycbt227>-gsberf

        tp_docto = c_tp_docto_assoc

      ASSIGNING <fs_zycbt228>.

    IF <fs_zycbt228> IS ASSIGNED.

      wa_zycbt228a-gjahr = <fs_zycbt228>-gjahr.

      wa_zycbt228a-belnr = <fs_zycbt228>-belnr.

      UNASSIGN <fs_zycbt228>.

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

    ENDIF.

    APPEND wa_zycbt228a TO itab_zycbt228a.

  ENDLOOP.

  LOOP AT itab_zycbt229 ASSIGNING <fs_zycbt229>.

    wa_zycbt228a-nrseq         = <fs_zycbt229>-nrseq.

    wa_zycbt228a-waers         = <fs_zycbt229>-waers.

    wa_zycbt228a-vlr_associado = <fs_zycbt229>-vlr_associado.

    READ TABLE itab_zycbt226

      WITH TABLE KEY nrseq = <fs_zycbt229>-nrseq

      ASSIGNING <fs_zycbt226>.

    IF <fs_zycbt226> IS ASSIGNED.

      wa_zycbt228a-dtincl       = <fs_zycbt226>-dtincl.

      wa_zycbt228a-j_1bbranch   = <fs_zycbt226>-j_1bbranch.

      wa_zycbt228a-sld_associar = <fs_zycbt226>-sld_associar.

      UNASSIGN <fs_zycbt226>.

    ENDIF.

    READ TABLE itab_zycbt230

      WITH KEY

        nrseq         = <fs_zycbt229>-nrseq

        nrseq_remessa = <fs_zycbt229>-nrseq_remessa

        tp_docto = c_tp_docto_assoc

      ASSIGNING <fs_zycbt230>.

    IF <fs_zycbt230> IS ASSIGNED.

      wa_zycbt228a-gjahr = <fs_zycbt230>-gjahr.

      wa_zycbt228a-belnr = <fs_zycbt230>-belnr.

      UNASSIGN <fs_zycbt230>.

* << Fim da inclusão

    ENDIF.

    APPEND wa_zycbt228a TO itab_zycbt228a.

  ENDLOOP.

ENDFORM.

FORM atualiza_assoc_embarque

  USING value(p_wa_zycbt228a) LIKE LINE OF itab_zycbt228a

  CHANGING

    p_itab_zycbt227_i LIKE itab_zycbt227

    p_itab_zycbt227_a LIKE itab_zycbt227

    p_itab_zycbt227_e LIKE itab_zycbt227

    p_itab_zycbt228_i LIKE itab_zycbt228

    p_itab_zycbt228_a LIKE itab_zycbt228

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

    p_itab_zycbt228_e LIKE itab_zycbt228.

* << Fim da exclusão

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

    p_itab_zycbt228_e LIKE itab_zycbt228

    p_itab_zycbt229_i LIKE itab_zycbt229

    p_itab_zycbt229_a LIKE itab_zycbt229

    p_itab_zycbt229_e LIKE itab_zycbt229

    p_itab_zycbt230_i LIKE itab_zycbt230

    p_itab_zycbt230_a LIKE itab_zycbt230

    p_itab_zycbt230_e LIKE itab_zycbt230.

* << Fim da inclusão

  DATA:

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

    wa_zycbt227 LIKE LINE OF itab_zycbt227.

* << Fim da exclusão

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

    wa_zycbt227 LIKE LINE OF itab_zycbt227,

    wa_zycbt229 LIKE LINE OF itab_zycbt229.

* << Fim da inclusão

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

  FIELD-SYMBOLS

    <fs_zycbt228> LIKE LINE OF itab_zycbt228.

* << Fim da exclusão

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

  FIELD-SYMBOLS:

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

    <fs_zycbt230> LIKE LINE OF itab_zycbt230.

* << Fim da inclusão

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

  wa_zycbt227-mandt         = sy-mandt.

  wa_zycbt227-nrseq         = p_wa_zycbt228a-nrseq.

  wa_zycbt227-nrinvoic      = /pws/zycbe227a-nrinvoic.

  wa_zycbt227-gsberf        = /pws/zycbe227a-gsberf.

  wa_zycbt227-dtassoc       = /pws/zycbe227a-dtassoc.

  wa_zycbt227-nrparcf       = /pws/zycbe227a-nrparcf.

  wa_zycbt227-nremb         = /pws/zycbe227a-nremb.

  wa_zycbt227-dtlancto      = /pws/zycbe227a-budat.

  wa_zycbt227-waers         = /pws/zycbe227a-waers.

  wa_zycbt227-vlr_associado = p_wa_zycbt228a-vlr_associado.

  CASE p_wa_zycbt228a-oper.

    WHEN c_alterado.

      INSERT wa_zycbt227 INTO TABLE p_itab_zycbt227_a.

    WHEN c_eliminado.

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

        CHECK NOT p_wa_zycbt228a-belnr IS INITIAL.

* << Fim da inclusão

      INSERT wa_zycbt227 INTO TABLE p_itab_zycbt227_e.

    WHEN c_novo.

      INSERT wa_zycbt227 INTO TABLE p_itab_zycbt227_i.

  ENDCASE.

  LOOP AT itab_zycbt228

    ASSIGNING <fs_zycbt228>

    WHERE nrseq = p_wa_zycbt228a-nrseq.

    CASE p_wa_zycbt228a-oper.

      WHEN c_alterado.

        INSERT <fs_zycbt228> INTO TABLE p_itab_zycbt228_a.

      WHEN c_eliminado.

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

          CHECK NOT p_wa_zycbt228a-belnr IS INITIAL.

* << Fim da inclusão

        INSERT <fs_zycbt228> INTO TABLE p_itab_zycbt228_e.

      WHEN c_novo.

        INSERT <fs_zycbt228> INTO TABLE p_itab_zycbt228_i.

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

      ENDCASE.

    ENDLOOP.

  ELSE.

    wa_zycbt229-mandt         = sy-mandt.

    wa_zycbt229-nrseq         = p_wa_zycbt228a-nrseq.

    wa_zycbt229-nrseq_remessa = /pws/zycbe229a-nrseq.

    wa_zycbt229-dtassoc       = /pws/zycbe229a-dtassoc.

    wa_zycbt229-waers         = /pws/zycbe229a-waers.

    wa_zycbt229-vlr_associado = p_wa_zycbt228a-vlr_associado.

    CASE p_wa_zycbt228a-oper.

      WHEN c_alterado.

        INSERT wa_zycbt229 INTO TABLE p_itab_zycbt229_a.

      WHEN c_eliminado.

        CHECK NOT p_wa_zycbt228a-belnr IS INITIAL.

        INSERT wa_zycbt229 INTO TABLE p_itab_zycbt229_e.

      WHEN c_novo.

        INSERT wa_zycbt229 INTO TABLE p_itab_zycbt229_i.

* << Fim da inclusão

    ENDCASE.

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

    LOOP AT itab_zycbt230 ASSIGNING <fs_zycbt230>

      WHERE nrseq = p_wa_zycbt228a-nrseq.

      CASE p_wa_zycbt228a-oper.

        WHEN c_alterado.

          INSERT <fs_zycbt230> INTO TABLE p_itab_zycbt230_a.

        WHEN c_eliminado.

          CHECK NOT p_wa_zycbt228a-belnr IS INITIAL.

          INSERT <fs_zycbt230> INTO TABLE p_itab_zycbt230_e.

        WHEN c_novo.

          INSERT <fs_zycbt230> INTO TABLE p_itab_zycbt230_i.

      ENDCASE.

* << Fim da inclusão

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM atualiza_dados_liq_and.

  DATA

    itab_zycbt209_at TYPE SORTED TABLE OF /pws/zycbt209

      WITH UNIQUE KEY nrinvoic nrparcf gsberf dtincl.

  FIELD-SYMBOLS:

...

 

...

  CHANGING p_excecao TYPE c.

  DATA:

    v_periodo            TYPE frper,

    v_ano                TYPE gjahr,

    v_periodo_fechado(1) TYPE c,

    v_mensagens          TYPE sy-tabix.

  FIELD-SYMBOLS:

    <fs_bukrs> TYPE bukrs,

    <fs_data>  TYPE d,

    <fs_budat> TYPE d.

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

  IF /pws/zycbe227a IS INITIAL.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

    ASSIGN: /pws/zycbe227a-bukrs TO <fs_bukrs>,

      /pws/zycbe227a-dtassoc TO <fs_data>,

      /pws/zycbe227a-budat   TO <fs_budat>.

  ELSE.

* << Fim da inclusão

    ASSIGN: /pws/zycbe229a-bukrs TO <fs_bukrs>,

      /pws/zycbe229a-dtassoc TO <fs_data>,

      /pws/zycbe229a-budat   TO <fs_budat>.

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

  ELSE.

    ASSIGN: /pws/zycbe227a-bukrs TO <fs_bukrs>,

      /pws/zycbe227a-dtassoc TO <fs_data>,

      /pws/zycbe227a-budat   TO <fs_budat>.

* << Fim da exclusão

  ENDIF.

  CHECK <fs_bukrs> IS ASSIGNED AND <fs_data> IS ASSIGNED AND

    <fs_budat> IS ASSIGNED.

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

  PERFORM verifica_existencia_ordens.

  PERFORM verifica_excecoes CHANGING v_mensagens.

  IF v_mensagens > 0.

    p_excecao = 'X'.

    EXIT.

  ENDIF.

* << Fim da inclusão

  PERFORM verifica_existencia_associacao.

  PERFORM verifica_excecoes CHANGING v_mensagens.

  IF v_mensagens > 0.

    p_excecao = 'X'.

    EXIT.

  ENDIF.

  PERFORM bloqueia_contas.

  PERFORM verifica_excecoes CHANGING v_mensagens.

  IF v_mensagens > 0.

    p_excecao = 'X'.

...

 

...

      <fs_bukrs>

      v_periodo

      v_ano

    CHANGING v_periodo_fechado.

  IF v_periodo_fechado IS INITIAL.

    <fs_budat> = <fs_data>.

  ELSE.

    <fs_budat> = sy-datum.

    wa_controle-periodo_fechado = 'X'.

  ENDIF.

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

  PERFORM verifica_documentos.

  PERFORM verifica_excecoes CHANGING v_mensagens.

  IF v_mensagens > 0.

    p_excecao = 'X'.

    EXIT.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM determina_periodo_contabil

  USING

    value(p_bukrs) TYPE t001-bukrs

    value(p_data)  TYPE d

  CHANGING

    p_periodo TYPE frper

    p_ano     TYPE gjahr.

  FIELD-SYMBOLS

    <fs_t001> LIKE LINE OF itab_t001.

...

 

...

          wa_zycbt017-kunag

          itab_zycbe224.

      IF sy-subrc <> 0.

        wa_zycbe224-bukrs = wa_zycbt017-bukrs.

        wa_zycbe224-koart = c_conta_cliente.

        wa_zycbe224-saknr = wa_zycbt017-kunag.

        APPEND wa_zycbe224 TO itab_zycbe224.

      ENDIF.

    ENDIF.

  ELSE.

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

    PERFORM verifica_conta_itab_zycbe224

      USING

        wa_zycbt124-bukrs

        'D'

        wa_zycbt124-recrem

        itab_zycbe224.

    IF sy-subrc <> 0.

      wa_zycbe224-bukrs = wa_zycbt124-bukrs.

      wa_zycbe224-koart = c_conta_cliente.

      wa_zycbe224-saknr = wa_zycbt124-recrem.

      APPEND wa_zycbe224 TO itab_zycbe224.

    ENDIF.

* << Fim da inclusão

  ENDIF.

  wa_zycbe224-koart = c_conta_cliente.

  LOOP AT itab_zycbt228a ASSIGNING <fs_zycbt228a>.

    READ TABLE itab_zycbt226

      WITH TABLE KEY nrseq = <fs_zycbt228a>-nrseq

      ASSIGNING <fs_zycbt226>.

    IF sy-subrc = 0.

      PERFORM verifica_conta_itab_zycbe224

        USING

          <fs_zycbt226>-bukrs

...

 

...

    wa_documento-bukrs = p_bukrs.

    wa_documento-belnr = p_belnr.

    wa_documento-gjahr = v_gjahr.

    wa_documento-shkzg = p_shkzg.

    INSERT wa_documento INTO TABLE p_itab_documento.

  ENDIF.

ENDFORM.

FORM verifica_documentos.

  DATA

    itab_documento TYPE t_t_documento.

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

  CHECK sy-tcode = c_transacao_c.

* << Fim da inclusão

  IF /pws/zycbe227a IS INITIAL.

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

    PERFORM documento_remessa CHANGING itab_documento.

* << Fim da inclusão

  ELSE.

    PERFORM verifica_fatura CHANGING itab_documento.

  ENDIF.

  PERFORM documento_ordem_pagto CHANGING itab_documento.

  PERFORM verifica_documentos_sap USING itab_documento.

ENDFORM.

FORM verifica_fatura

  CHANGING p_itab_documento TYPE t_t_documento.

  DATA

    v_saldo TYPE /pws/zycbt227-vlr_associado.

  v_saldo = /pws/zycbe227a-vlsltrans.

  PERFORM documento_liq_and CHANGING v_saldo p_itab_documento.

  IF v_saldo > 0.

    PERFORM documento_fatura CHANGING p_itab_documento.

  ENDIF.

ENDFORM.

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

FORM documento_remessa CHANGING p_itab_documento TYPE t_t_documento.

  FIELD-SYMBOLS:

    <fs_belnr>   LIKE wa_zycbt124-belnr,

    <fs_dtdocto> TYPE d.

  IF wa_zycbt124-belnr_assoc IS INITIAL.

    ASSIGN: wa_zycbt124-belnr TO <fs_belnr>,

      wa_zycbt124-dtdocto TO <fs_dtdocto>.

  ELSE.

    ASSIGN: wa_zycbt124-belnr_assoc TO <fs_belnr>,

      wa_zycbt124-dtassoc TO <fs_dtdocto>.

  ENDIF.

  PERFORM adiciona_documentos

    USING

      /pws/zycbe229a-bukrs

      <fs_belnr>

      <fs_dtdocto>

      'S'

    CHANGING p_itab_documento.

ENDFORM.

* << Fim da inclusão

FORM documento_liq_and

  CHANGING

    p_saldo          TYPE t_s_zycbt209-saldo

    p_itab_documento TYPE t_t_documento.

  DATA

    v_saldo TYPE t_s_zycbt209-saldo.

  FIELD-SYMBOLS:

    <fs_zycbt209> LIKE LINE OF itab_zycbt209,

    <fs_belnr>    TYPE t_s_zycbt209-belnr.

  v_saldo = p_saldo.

...

 

...

    value(p_codmod)  TYPE /pws/zycbt011-codmod

    value(p_codeven) TYPE /pws/zyglt321-codeven

    value(p_nrseq)   TYPE t_s_zycbt228a-nrseq

  CHANGING p_itab_zycbe224 TYPE t_t_zycbe224.

  DATA

    wa_zycbe224 LIKE LINE OF p_itab_zycbe224.

  FIELD-SYMBOLS:

    <fs_zycbt011> LIKE LINE OF itab_zycbt011,

    <fs_zycbt209> LIKE LINE OF itab_zycbt209,

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228.

* << Fim da exclusão

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

    <fs_zycbt230> LIKE LINE OF itab_zycbt230.

* << Fim da inclusão

  wa_zycbe224-mandt = sy-mandt.

  wa_zycbe224-modo  = c_modo_bloqueio.

  LOOP AT itab_zycbt228

    ASSIGNING <fs_zycbt228>

    WHERE nrseq = p_nrseq.

    CASE <fs_zycbt228>-tp_docto.

      WHEN c_tp_desm_cliente.

        wa_zycbe224-bukrs = wa_zycbt017-bukrs.

        wa_zycbe224-saknr = wa_zycbt017-kunag.

        wa_zycbe224-koart = 'D'.

...

 

...

          READ TABLE itab_zycbt011

            WITH TABLE KEY

              codeven = p_codeven

              codmod  = p_codmod

              bukrs   = <fs_zycbt228>-bukrs

            ASSIGNING <fs_zycbt011>.

        ENDIF.

        CHECK <fs_zycbt011> IS ASSIGNED.

        READ TABLE itab_zycbt226

          WITH TABLE KEY nrseq = <fs_zycbt228>-nrseq

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

          ASSIGNING <fs_zycbt226>.

        IF sy-subrc = 0.

          wa_zycbe224-bukrs = <fs_zycbt226>-bukrs.

          wa_zycbe224-saknr = <fs_zycbt226>-kunag.

          wa_zycbe224-koart = <fs_zycbt011>-koart.

        ENDIF.

    ENDCASE.

    PERFORM verifica_conta_itab_zycbe224

      USING

        wa_zycbe224-bukrs

        wa_zycbe224-koart

        wa_zycbe224-saknr

        p_itab_zycbe224.

    IF sy-subrc <> 0.

      APPEND wa_zycbe224 TO p_itab_zycbe224.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycbt230

    ASSIGNING <fs_zycbt230>

    WHERE nrseq = p_nrseq.

    CASE <fs_zycbt230>-tp_docto.

      WHEN c_tp_desm_cliente.

        wa_zycbe224-bukrs = wa_zycbt124-bukrs.

        wa_zycbe224-saknr = wa_zycbt124-recrem.

        wa_zycbe224-koart = 'D'.

      WHEN c_tp_desm_ordem.

        IF NOT <fs_zycbt011> IS ASSIGNED.

          READ TABLE itab_zycbt011

            WITH TABLE KEY

              codeven = p_codeven

              codmod  = p_codmod

              bukrs   = <fs_zycbt230>-bukrs

            ASSIGNING <fs_zycbt011>.

        ENDIF.

        CHECK <fs_zycbt011> IS ASSIGNED.

        READ TABLE itab_zycbt226

          WITH TABLE KEY nrseq = <fs_zycbt230>-nrseq

* << Fim da inclusão

          ASSIGNING <fs_zycbt226>.

        IF sy-subrc = 0.

          wa_zycbe224-bukrs = <fs_zycbt226>-bukrs.

          wa_zycbe224-saknr = <fs_zycbt226>-kunag.

          wa_zycbe224-koart = <fs_zycbt011>-koart.

        ENDIF.

    ENDCASE.

    PERFORM verifica_conta_itab_zycbe224

      USING

        wa_zycbe224-bukrs

...

 

...

    v_registros = v_registros_at.

  ENDIF.

  READ TABLE p_itab_zycbe224

    WITH KEY

      bukrs = p_bukrs

      koart = p_koart

      saknr = p_saknr

    TRANSPORTING NO FIELDS

    BINARY SEARCH.

ENDFORM.

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

FORM verifica_existencia_ordens.

  IF itab_zycbt228a IS INITIAL.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb                  = c_grupo_mensagem

              msgty                  = 'E'

              msgv1                  =

                'Não existem ordens de pagamento associadas.'(m49)

              txtnr                  = 015

         EXCEPTIONS

              message_type_not_valid = 1

              not_active             = 2

              OTHERS                 = 3.

    IF sy-subrc <> 0.

      EXIT.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

FORM verifica_existencia_associacao.

  TYPES:

    BEGIN OF t_s_zycbt227,

      nrinvoic TYPE /pws/zycbt227-nrinvoic,

      nrparcf  TYPE /pws/zycbt227-nrparcf,

      gsberf   TYPE /pws/zycbt227-gsberf,

      nrseq    TYPE /pws/zycbt227-nrseq,

      dtassoc  TYPE /pws/zycbt227-dtassoc,

    END OF t_s_zycbt227,

    t_t_zycbt227 TYPE SORTED TABLE OF t_s_zycbt227

      WITH UNIQUE KEY nrinvoic nrparcf gsberf nrseq dtassoc,

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

    BEGIN OF t_s_zycbt229,

      nrseq         TYPE /pws/zycbt229-nrseq,

      nrseq_remessa TYPE /pws/zycbt229-nrseq_remessa,

      dtassoc       TYPE /pws/zycbt229-dtassoc,

    END OF t_s_zycbt229,

    t_t_zycbt229 TYPE SORTED TABLE OF t_s_zycbt229

      WITH UNIQUE KEY nrseq nrseq_remessa,

* << Fim da inclusão

    t_t_nrseq TYPE SORTED TABLE OF t_s_zycbt227-nrseq

      WITH UNIQUE DEFAULT KEY.

  DATA:

    itab_zycbt227   TYPE t_t_zycbt227,

    wa_zycbt227     LIKE LINE OF itab_zycbt227,

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

    itab_zycbt229   TYPE t_t_zycbt229,

    wa_zycbt229     LIKE LINE OF itab_zycbt229,

* << Fim da inclusão

    itab_nrseq      TYPE t_t_nrseq,

    v_mensagem(400) TYPE c.

  FIELD-SYMBOLS:

    <fs_zycbt228a> LIKE LINE OF itab_zycbt228a,

    <fs_nrseq>     LIKE LINE OF itab_nrseq.

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

  CHECK NOT ( /pws/zycbe227a IS INITIAL AND /pws/zycbe228a IS INITIAL ).

* << Fim da exclusão

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

  CHECK NOT ( /pws/zycbe227a IS INITIAL AND /pws/zycbe229a IS INITIAL ).

* << Fim da inclusão

  IF wa_controle-processo = c_flag_embarque.

    wa_zycbt227-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_zycbt227-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_zycbt227-gsberf   = /pws/zycbe227a-gsberf.

    wa_zycbt227-dtassoc  = /pws/zycbe227a-dtassoc.

    CONCATENATE 'já está associada a fatura'(m47) wa_zycbt227-nrinvoic

      wa_zycbt227-nrparcf wa_zycbt227-gsberf

      INTO v_mensagem SEPARATED BY space.

  ELSE.

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

    wa_zycbt229-nrseq_remessa = /pws/zycbe229a-nrseq.

    wa_zycbt229-dtassoc       = /pws/zycbe229a-dtassoc.

    CONCATENATE 'já está associada a remessa'(m50)

      wa_zycbt229-nrseq_remessa INTO v_mensagem SEPARATED BY space.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycbt228a ASSIGNING <fs_zycbt228a> WHERE oper = c_novo.

    IF wa_controle-processo = c_flag_embarque.

      wa_zycbt227-nrseq = <fs_zycbt228a>-nrseq.

      INSERT wa_zycbt227 INTO TABLE itab_zycbt227.

    ELSE.

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

      wa_zycbt229-nrseq = <fs_zycbt228a>-nrseq.

      INSERT wa_zycbt229 INTO TABLE itab_zycbt229.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  IF NOT itab_zycbt227 IS INITIAL.

    SELECT nrseq

      FROM /pws/zycbt227

      INTO TABLE itab_nrseq

      FOR ALL ENTRIES IN itab_zycbt227

      WHERE

        nrinvoic = itab_zycbt227-nrinvoic AND

        nrparcf  = itab_zycbt227-nrparcf  AND

        gsberf   = itab_zycbt227-gsberf   AND

        nrseq    = itab_zycbt227-nrseq    AND

        dtassoc  = itab_zycbt227-dtassoc.

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

  ELSE.

* << Fim da exclusão

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

  ELSEIF NOT itab_zycbt229 IS INITIAL.

    SELECT nrseq

      FROM /pws/zycbt229

      INTO TABLE itab_nrseq

      FOR ALL ENTRIES IN itab_zycbt229

      WHERE

        nrseq         = itab_zycbt229-nrseq AND

        nrseq_remessa = itab_zycbt229-nrseq_remessa AND

        dtassoc       = itab_zycbt229-dtassoc.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_nrseq ASSIGNING <fs_nrseq>.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb                  = c_grupo_mensagem

              msgty                  = 'E'

              msgv1                  = 'A ordem de pagamento'(m46)

              msgv2                  = <fs_nrseq>

              msgv3                  = v_mensagem

              msgv4                  = 'nesta data.'(m18)

...

 

...

    wa_bdc-fnam = 'S_NRSEQ-LOW'.

    GET PARAMETER ID <fs_parameter>-param_id FIELD wa_bdc-fval.

    APPEND wa_bdc TO itab_bdc.

  ENDIF.

  CLEAR wa_bdc.

  wa_bdc-fnam = 'BDC_OKCODE'.

  wa_bdc-fval = '=CRET'.

  APPEND wa_bdc TO itab_bdc.

  CALL TRANSACTION '/PWS/ZYCB034_E' USING itab_bdc MODE c_modo_bi.

ENDFORM.

* >> Início da inclusão:

FORM verifica_alteracoes.

  CONSTANTS

    c_sim(1) TYPE c VALUE '1'.

  DATA

    v_resposta(1) TYPE c.

  READ TABLE itab_zycbt228a

    WITH KEY oper = c_novo TRANSPORTING NO FIELDS.

  IF sy-subrc <> 0.

    READ TABLE itab_zycbt228a

      WITH KEY oper = c_eliminado TRANSPORTING NO FIELDS.

    IF sy-subrc <> 0.

      READ TABLE itab_zycbt228a

        WITH KEY oper = c_alterado TRANSPORTING NO FIELDS.

    ENDIF.

  ENDIF.

  CHECK sy-subrc = 0.

  CALL FUNCTION 'POPUP_TO_CONFIRM'

       EXPORTING

            text_question         =

              'Deseja salvar as alterações efetuadas?'(m48)

            text_button_1         = 'Sim'(o01)

            text_button_2         = 'Não'(o02)

            default_button        = '2'

            display_cancel_button = ' '

       IMPORTING

            answer                = v_resposta

       EXCEPTIONS

            text_not_found        = 1

            OTHERS                = 2.

  IF sy-subrc <> 0.

    EXIT.

  ENDIF.

  IF v_resposta = c_sim.

    PERFORM salva_dados.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB035F03

 

...

    c_dtemb      TYPE /pws/zycbt089-tx_desm_liq_and VALUE 'DTEMB',

    c_txfat      TYPE /pws/zycbt089-tx_desm_liq_and VALUE 'TXFAT',

    c_viatrans   TYPE /pws/zycbt089-tx_desm_liq_and VALUE 'VIATRANS',

    c_dtcredext  TYPE /pws/zycbt089-tx_desm_liq_and VALUE 'DTCREDEXT',

    c_dtaverb    TYPE /pws/zycet048-dtvrc           VALUE 'DTAVERB',

    c_dtcruze    TYPE /pws/zycet048-dtvrc           VALUE 'DTCRUZE'.

  DATA

    v_dttaxa TYPE d.

  FIELD-SYMBOLS:

    <fs_zycbt007> LIKE LINE OF itab_zycbt007,

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

    <fs_zycbt009> LIKE LINE OF itab_zycbt009,

* << Fim da inclusão

    <fs_zycbt089> LIKE LINE OF itab_zycbt089,

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_zycet001> LIKE LINE OF itab_zycet001,

    <fs_zycet048> LIKE LINE OF itab_zycet048,

    <fs_zycit054> LIKE LINE OF itab_zycit054,

    <fs_waers>    TYPE /pws/zycbt227-waers.

  CHECK NOT p_dtlanc IS INITIAL.

  IF NOT /pws/zycbe227a-waers IS INITIAL.

    ASSIGN /pws/zycbe227a-waers TO <fs_waers>.

  ELSE.

...

 

...

                  ENDCASE.

                ENDIF.

              ENDIF.

            ENDIF.

            IF v_dttaxa = <fs_zycet001>-dtvencto.

              p_kursf = <fs_zycet001>-kurrf_bl.

              CLEAR v_dttaxa.

            ENDIF.

          ENDIF.

      ENDCASE.

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

    WHEN c_codeven_remessa.

      IF wa_zycbt124-kursf IS INITIAL.

        READ TABLE itab_zycbt009

          WITH TABLE KEY codpadr = wa_zycbt124-ftaxa

          ASSIGNING <fs_zycbt009>.

        CHECK <fs_zycbt009> IS ASSIGNED.

        CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

          EXPORTING

            i_montante                      = wa_zycbt124-sld_associar

            i_demoeda                          = wa_zycbt124-waers

            i_paramoeda                        = <fs_zycbt007>-waersb

            i_ctmoeda                          = <fs_zycbt009>-kurst

            i_dtbase                           = wa_zycbt124-dtdocto

         IMPORTING

           e_txc                              = p_kursf

         EXCEPTIONS

           i_demoeda_nao_encontrado           = 1

           i_paramoeda_nao_encontrado         = 2

           i_ctmoeda_nao_encontrado           = 3

           i_dtbase_nao_encontrada            = 4

           taxa_nao_encontrada                = 5

           fator_nao_encontrado               = 6

           i_montante_nao_encontrado          = 7

           tabela_categ_nao_configurada       = 8

           OTHERS                             = 9.

        IF sy-subrc <> 0.

          EXIT.

        ENDIF.

      ELSE.

        p_kursf = wa_zycbt124-kursf.

      ENDIF.

* << Fim da inclusão

    WHEN c_codeven_ordem.

      CHECK NOT p_nrseq IS INITIAL.

      READ TABLE itab_zycbt226

        WITH TABLE KEY nrseq = p_nrseq

        ASSIGNING <fs_zycbt226>.

      IF <fs_zycbt226> IS ASSIGNED.

        v_dttaxa = <fs_zycbt226>-dtlancto.

      ENDIF.

  ENDCASE.

  IF NOT v_dttaxa IS INITIAL.

...

 

...

              tabela_categ_nao_configurada = 8

              OTHERS                       = 9.

    IF sy-subrc <> 0.

      EXIT.

    ENDIF.

  ENDIF.

ENDFORM.

FORM preenche_campos_contab_exc

  USING

    value(p_bukrs)    TYPE /pws/zycbt011-bukrs

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

    value(p_codmod)   TYPE /pws/zycbt011-codmod

* << Fim da inclusão

    value(p_ktosl)    TYPE /pws/zyglt321-ktosl

    value(p_codeven)  TYPE /pws/zyglt321-codeven

    value(p_zycbt209) LIKE LINE OF itab_zycbt209

    value(p_nrseq)    TYPE t_s_zycbt228a-nrseq

  CHANGING

    p_wa_zycbe033 LIKE LINE OF itab_zycbe033.

  CONSTANTS:

    c_sgtxt TYPE /pws/zyglt321-cpor3 VALUE 'SGTXT',

    c_xblnr TYPE /pws/zyglt321-cpor3 VALUE 'XBLNR',

    c_zterm TYPE /pws/zyglt321-cpor3 VALUE 'ZTERM',

...

 

...

    c_nrinvoic TYPE /pws/zyglt321-cpocb VALUE 'NRINVOIC',

    c_nremb    TYPE /pws/zyglt321-cpocb VALUE 'NREMB',

    c_dtbl     TYPE /pws/zyglt321-cpocb VALUE 'DTBL',

    c_dtinvoic TYPE /pws/zyglt321-cpocb VALUE 'DTINVOIC',

    c_dtassoc  TYPE /pws/zyglt321-cpocb VALUE 'DTASSOC',

    c_nrseq    TYPE /pws/zyglt321-cpocb VALUE 'NRSEQ',

    c_ref      TYPE /pws/zyglt321-cpocb VALUE 'REF_OP',

    c_obs      TYPE /pws/zyglt321-cpocb VALUE 'OBS',

    c_dtincl   TYPE /pws/zyglt321-cpocb VALUE 'DTINCL',

    c_dtlancto TYPE /pws/zyglt321-cpocb VALUE 'DTLANCTO',

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

    c_dtlimite TYPE /pws/zyglt321-cpocb VALUE 'DTLIMITE'.

* << Fim da exclusão

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

    c_dtlimite TYPE /pws/zyglt321-cpocb VALUE 'DTLIMITE',

    c_dtdocto  TYPE /pws/zyglt321-cpocb VALUE 'DTDOCTO',

    c_dtvencto TYPE /pws/zyglt321-cpocb VALUE 'DTVENCTO',

    c_nrrem    TYPE /pws/zyglt321-cpocb VALUE 'NRREM',

    c_nrfech   TYPE /pws/zyglt321-cpocb VALUE 'NRFECH',

    c_txtinf   TYPE /pws/zyglt321-cpocb VALUE 'TXTINF'.

* << Fim da inclusão

  DATA

    v_hora(8) TYPE c.

  FIELD-SYMBOLS:

    <fs_zycbt011> LIKE LINE OF itab_zycbt011,

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_zyglt321> LIKE LINE OF itab_zyglt321.

  CHECK NOT ( p_zycbt209 IS INITIAL AND wa_zycbt017 IS INITIAL AND

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

    p_nrseq IS INITIAL ).

* << Fim da exclusão

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

    wa_zycbt124 IS INITIAL AND p_nrseq IS INITIAL ).

* << Fim da inclusão

  READ TABLE itab_zycbt011

    WITH TABLE KEY

      codeven = p_codeven

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

      codmod  = c_codmod

* << Fim da exclusão

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

      codmod  = p_codmod

* << Fim da inclusão

      bukrs   = p_bukrs

    ASSIGNING <fs_zycbt011>.

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

  CHECK NOT ( wa_zycbt017 IS INITIAL AND p_nrseq IS INITIAL ).

* << Fim da exclusão

  IF NOT p_nrseq IS INITIAL.

    READ TABLE itab_zycbt226

      WITH TABLE KEY nrseq = p_nrseq

      ASSIGNING <fs_zycbt226>.

    CHECK <fs_zycbt226> IS ASSIGNED.

  ENDIF.

  LOOP AT itab_zyglt321 ASSIGNING <fs_zyglt321>

    WHERE

      ktosl   = p_ktosl AND

      codeven = p_codeven.

...

 

...

      WHEN c_sgtxt.

        CASE <fs_zyglt321>-cpocb.

          WHEN c_nrinvoic.

            p_wa_zycbe033-c_sgtxt = wa_zycbt017-nrinvoic.

            p_wa_zycbe033-d_sgtxt = wa_zycbt017-nrinvoic.

            p_wa_zycbe033-augtx   = wa_zycbt017-nrinvoic.

          WHEN c_nremb.

            p_wa_zycbe033-c_sgtxt = wa_zycbt017-nremb.

            p_wa_zycbe033-d_sgtxt = wa_zycbt017-nremb.

            p_wa_zycbe033-augtx   = wa_zycbt017-nremb.

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

          WHEN c_nrfech.

            p_wa_zycbe033-c_sgtxt = wa_zycbt124-nrfech.

            p_wa_zycbe033-d_sgtxt = wa_zycbt124-nrfech.

            p_wa_zycbe033-augtx   = wa_zycbt124-nrfech.

* << Fim da inclusão

          WHEN c_nrseq.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-c_sgtxt = <fs_zycbt226>-nrseq.

              p_wa_zycbe033-d_sgtxt = <fs_zycbt226>-nrseq.

              p_wa_zycbe033-augtx   = <fs_zycbt226>-nrseq.

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

            ENDIF.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-c_sgtxt = wa_zycbt124-nrseq.

              p_wa_zycbe033-d_sgtxt = wa_zycbt124-nrseq.

              p_wa_zycbe033-augtx   = wa_zycbt124-nrseq.

* << Fim da inclusão

            ENDIF.

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

          WHEN c_txtinf.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-c_sgtxt = wa_zycbt124-txtinf.

              p_wa_zycbe033-d_sgtxt = wa_zycbt124-txtinf.

              p_wa_zycbe033-augtx   = wa_zycbt124-txtinf.

            ENDIF.

* << Fim da inclusão

          WHEN c_ref.

...

 

...

        ENDCASE.

      WHEN c_xblnr.

        CASE <fs_zyglt321>-cpocb.

          WHEN c_nrinvoic.

            p_wa_zycbe033-xblnr = wa_zycbt017-nrinvoic.

          WHEN c_nremb.

            p_wa_zycbe033-xblnr = wa_zycbt017-nremb.

          WHEN c_nrseq.

            IF <fs_zycbt226> IS ASSIGNED.

              v_hora = sy-uzeit.

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

              CONCATENATE <fs_zycbt226>-nrseq v_hora(2) ':'

                v_hora+2(2) ':' v_hora+4(2) INTO p_wa_zycbe033-xblnr.

* << Fim da exclusão

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

              CONCATENATE <fs_zycbt226>-nrseq v_hora+2(2) ':'

                v_hora+4(2) INTO p_wa_zycbe033-xblnr.

* << Fim da inclusão

            ENDIF.

          WHEN c_ref.

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

            IF <fs_zycbt226> IS ASSIGNED.

              v_hora = sy-uzeit.

              CONCATENATE <fs_zycbt226>-ref_op v_hora+2(2) ':'

                v_hora+4(2) INTO p_wa_zycbe033-xblnr.

            ENDIF.

          WHEN c_obs.

* << Fim da inclusão

            IF <fs_zycbt226> IS ASSIGNED.

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

              v_hora = sy-uzeit.

              CONCATENATE <fs_zycbt226>-obs v_hora+2(2) ':'

                v_hora+4(2) INTO p_wa_zycbe033-xblnr.

            ENDIF.

          WHEN c_nrrem.

            IF p_codeven = c_codeven_associa_rem.

              v_hora = sy-uzeit.

              CONCATENATE wa_zycbt124-nrseq v_hora+2(2) ':'

                v_hora+4(2) INTO p_wa_zycbe033-xblnr.

            ENDIF.

          WHEN c_nrfech.

            IF p_codeven = c_codeven_associa_rem.

* << Fim da inclusão

              v_hora = sy-uzeit.

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

              CONCATENATE <fs_zycbt226>-ref_op v_hora(2) ':'

                v_hora+2(2) ':' v_hora+4(2) INTO p_wa_zycbe033-xblnr.

* << Fim da exclusão

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

              CONCATENATE wa_zycbt124-nrfech v_hora+2(2) ':'

                v_hora+4(2) INTO p_wa_zycbe033-xblnr.

* << Fim da inclusão

            ENDIF.

        ENDCASE.

      WHEN c_zterm.

        p_wa_zycbe033-zterm = wa_zycbt017-zterm.

      WHEN c_zfbdt.

        CASE <fs_zyglt321>-cpocb.

          WHEN c_dtbl.

            p_wa_zycbe033-zfbdt = wa_zycbt017-dtbl.

          WHEN c_dtinvoic.

            p_wa_zycbe033-zfbdt = wa_zycbt017-dtinvoic.

          WHEN c_dtassoc.

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

          WHEN c_dtdocto.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-zfbdt = wa_zycbt124-dtdocto.

            ENDIF.

          WHEN c_dtvencto.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-zfbdt = wa_zycbt124-dtdocto.

            ENDIF.

* << Fim da inclusão

          WHEN c_dtincl.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-zfbdt = <fs_zycbt226>-dtincl.

            ENDIF.

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

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-zfbdt = wa_zycbt124-dtincl.

            ENDIF.

* << Fim da inclusão

          WHEN c_dtlancto.

...

 

...

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-zfbdt = <fs_zycbt226>-dtlimite.

            ENDIF.

        ENDCASE.

      WHEN c_zuonr.

        CASE <fs_zyglt321>-cpocb.

          WHEN c_nrinvoic.

            p_wa_zycbe033-d_zuonr = wa_zycbt017-nrinvoic.

          WHEN c_nremb.

            p_wa_zycbe033-d_zuonr = wa_zycbt017-nremb.

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

          WHEN c_nrfech.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-d_zuonr = wa_zycbt124-nrfech.

            ENDIF.

          WHEN c_txtinf.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-d_zuonr = wa_zycbt124-txtinf.

            ENDIF.

* << Fim da inclusão

          WHEN c_nrseq.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-d_zuonr = <fs_zycbt226>-nrseq.

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

            ENDIF.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-d_zuonr = wa_zycbt124-nrseq.

* << Fim da inclusão

            ENDIF.

          WHEN c_ref.

...

 

...

            p_wa_zycbe033-c_valut = wa_zycbt017-dtbl.

            p_wa_zycbe033-d_valut = wa_zycbt017-dtbl.

          WHEN c_dtinvoic.

            p_wa_zycbe033-c_valut = wa_zycbt017-dtinvoic.

            p_wa_zycbe033-d_valut = wa_zycbt017-dtinvoic.

          WHEN c_dtassoc.

          WHEN c_dtincl.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-c_valut = <fs_zycbt226>-dtincl.

              p_wa_zycbe033-d_valut = <fs_zycbt226>-dtincl.

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

            ENDIF.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-c_valut = wa_zycbt124-dtincl.

              p_wa_zycbe033-d_valut = wa_zycbt124-dtincl.

* << Fim da inclusão

            ENDIF.

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

          WHEN c_dtdocto.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-c_valut = wa_zycbt124-dtdocto.

              p_wa_zycbe033-d_valut = wa_zycbt124-dtdocto.

            ENDIF.

          WHEN c_dtvencto.

            IF p_codeven = c_codeven_remessa.

              p_wa_zycbe033-c_valut = wa_zycbt124-dtvencto.

              p_wa_zycbe033-d_valut = wa_zycbt124-dtvencto.

            ENDIF.

* << Fim da inclusão

          WHEN c_dtlancto.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-c_valut = <fs_zycbt226>-dtlancto.

              p_wa_zycbe033-d_valut = <fs_zycbt226>-dtlancto.

            ENDIF.

          WHEN c_dtlimite.

            IF <fs_zycbt226> IS ASSIGNED.

              p_wa_zycbe033-c_valut = <fs_zycbt226>-dtlimite.

              p_wa_zycbe033-d_valut = <fs_zycbt226>-dtlimite.

            ENDIF.

...

 

...

    v_nrinvoic  TYPE /pws/zycet001-nrseq.

  FIELD-SYMBOLS:

    <fs_zycbt007> LIKE LINE OF itab_zycbt007,

    <fs_zycbt011> LIKE LINE OF itab_zycbt011,

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_bukrs>    TYPE bukrs,

    <fs_werks>    TYPE werks_d,

    <fs_waers>    TYPE waers,

    <fs_koart>    TYPE t_s_zycbe224-koart.

  CHECK NOT ( p_wa_zycbt209 IS INITIAL AND wa_zycbt017 IS INITIAL AND

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

    p_nrseq IS INITIAL ).

* << Fim da exclusão

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

    p_nrseq IS INITIAL AND wa_zycbt124 IS INITIAL ).

* << Fim da inclusão

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

  IF NOT ( p_wa_zycbt209 IS INITIAL AND wa_zycbt017 IS INITIAL AND

    p_nrseq IS INITIAL ).

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

    ASSIGN: /pws/zycbe227a-bukrs TO <fs_bukrs>,

      /pws/zycbe227a-waers TO <fs_waers>.

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

  ELSE.

    ASSIGN: /pws/zycbe229a-bukrs TO <fs_bukrs>,

      /pws/zycbe229a-waers TO <fs_waers>.

* << Fim da inclusão

  ENDIF.

  READ TABLE itab_zycbt007

    WITH TABLE KEY bukrs = <fs_bukrs>

...

 

...

  wa_zycbe033-bktxt  = <fs_zycbt007>-bktxt.

  wa_zycbe033-bukrs  = <fs_bukrs>.

  wa_zycbe033-waers  = <fs_waers>.

  wa_zycbe033-wrbtr  = p_wrbtr.

  wa_zycbe033-belnr   = p_belnr.

  wa_zycbe033-bldat   = p_bldat.

  wa_zycbe033-budat   = p_budat.

  PERFORM preenche_campos_contab_exc

    USING

      <fs_bukrs>

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

      p_codmod

* << Fim da inclusão

      p_ktosl

      p_codeven

      p_wa_zycbt209

      p_nrseq

    CHANGING wa_zycbe033.

  CASE p_codeven.

    WHEN c_codeven_liq_and.

      ASSIGN wa_zycbt017-werks TO <fs_werks>.

      v_nrinvoic = p_wa_zycbt209-nrinvoic(10).

      wa_zycbe033-augtx   = <fs_zycbt011>-txtdesc.

...

 

...

        wa_zycbe033-newbs = '40'.

      ENDIF.

    WHEN c_codeven_cliente.

      ASSIGN wa_zycbt017-werks TO <fs_werks>.

      v_nrinvoic = wa_zycbt017-nrinvoic(10).

      wa_zycbe033-gsber   = wa_zycbt017-gsberf.

      wa_zycbe033-c_gsber = wa_zycbt017-gsberf.

      wa_zycbe033-d_gsber = wa_zycbt017-gsberf.

      wa_zycbe033-werks   = wa_zycbt017-werks.

      wa_zycbe033-d_newko = wa_zycbt017-kunag.

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

      wa_zycbe033-newbs   = '01'.

    WHEN c_codeven_remessa.

      ASSIGN wa_zycbt124-werks TO <fs_werks>.

      wa_zycbe033-gsber   = wa_zycbt124-gsber.

      wa_zycbe033-c_gsber = wa_zycbt124-gsber.

      wa_zycbe033-d_gsber = wa_zycbt124-gsber.

      wa_zycbe033-werks   = wa_zycbt124-werks.

      wa_zycbe033-d_newko = wa_zycbt124-recrem.

* << Fim da inclusão

      wa_zycbe033-newbs   = '01'.

    WHEN c_codeven_ordem.

      READ TABLE itab_zycbt226

        WITH TABLE KEY nrseq = p_nrseq

        ASSIGNING <fs_zycbt226>.

      IF <fs_zycbt226> IS ASSIGNED.

        ASSIGN <fs_zycbt226>-werks TO <fs_werks>.

        wa_zycbe033-gsber   = <fs_zycbt226>-gsberf.

        wa_zycbe033-c_gsber = <fs_zycbt226>-gsberf.

        wa_zycbe033-d_gsber = <fs_zycbt226>-gsberf.

...

 

...

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA:

    wa_zycbe033 LIKE LINE OF itab_zycbe033,

    v_nrinvoic  TYPE /pws/zycet001-nrseq.

  FIELD-SYMBOLS:

    <fs_zycbt007> LIKE LINE OF itab_zycbt007,

    <fs_zycbt011> LIKE LINE OF itab_zycbt011,

    <fs_bukrs>    TYPE bukrs,

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

    <fs_kunnr>    TYPE kunnr,

* << Fim da inclusão

    <fs_waers>    TYPE waers.

  CHECK NOT p_nrseq IS INITIAL.

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

  IF NOT /pws/zycbe227a IS INITIAL.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

    ASSIGN: /pws/zycbe227a-bukrs TO <fs_bukrs>,

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

      /pws/zycbe227a-waers TO <fs_waers>.

* << Fim da exclusão

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

      /pws/zycbe227a-waers TO <fs_waers>,

      /pws/zycbe227a-kunag TO <fs_kunnr>.

* << Fim da inclusão

    CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

      /pws/zycbe227a-gsberf 'A' INTO wa_zycbe033-d_zuonr.

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

  ELSE.

    ASSIGN: /pws/zycbe229a-bukrs TO <fs_bukrs>,

      /pws/zycbe229a-waers  TO <fs_waers>,

      /pws/zycbe229a-recrem TO <fs_kunnr>.

    CONCATENATE /pws/zycbe229a-nrseq 'A' INTO wa_zycbe033-d_zuonr.

* << Fim da inclusão

  ENDIF.

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

  CHECK <fs_bukrs> IS ASSIGNED.

* << Fim da inclusão

  READ TABLE itab_zycbt007

    WITH TABLE KEY bukrs = <fs_bukrs>

    ASSIGNING <fs_zycbt007>.

  READ TABLE itab_zycbt011

    WITH TABLE KEY

      codeven = p_codeven

      codmod  = p_codmod

      bukrs   = <fs_bukrs>

    ASSIGNING <fs_zycbt011>.

  CHECK <fs_zycbt007> IS ASSIGNED AND <fs_zycbt011> IS ASSIGNED.

...

 

...

        wa_zycbe033-umskz = p_wa_zycbt209-umskz.

        IF p_wa_zycbt209-koart = 'D'.

          IF wa_zycbe033-umskz IS INITIAL.

            wa_zycbe033-newbs = '01'.

          ELSE.

            wa_zycbe033-newbs = '09'.

          ENDIF.

        ELSE.

          wa_zycbe033-newbs = '40'.

        ENDIF.

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

      WHEN c_codeven_remessa.

        wa_zycbe033-newbs = '01'.

* << Fim da inclusão

      WHEN c_codeven_ordem.

        wa_zycbe033-umskz = <fs_zycbt011>-agums.

        wa_zycbe033-newbs = '19'.

    ENDCASE.

  ENDIF.

  wa_zycbe033-cpochv = p_cpochv.

  wa_zycbe033-mandt  = sy-mandt.

  wa_zycbe033-tcode  = c_f30.

  wa_zycbe033-tabela = c_zycbt228.

  wa_zycbe033-blart  = <fs_zycbt011>-blart.

  wa_zycbe033-bktxt  = <fs_zycbt007>-bktxt.

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

  wa_zycbe033-d_newko = wa_zycbt017-kunag.

* << Fim da exclusão

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

  wa_zycbe033-d_newko = <fs_kunnr>.

* << Fim da inclusão

  wa_zycbe033-bukrs  = <fs_bukrs>.

  wa_zycbe033-waers  = <fs_waers>.

  wa_zycbe033-bldat   = p_bldat.

  wa_zycbe033-budat   = p_budat.

  PERFORM preenche_campos_contab_exc

    USING

      <fs_bukrs>

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

      p_codmod

* << Fim da inclusão

      p_ktosl

      p_codeven

      p_wa_zycbt209

      p_nrseq

    CHANGING

      wa_zycbe033.

  PERFORM define_taxa_cambio

    USING

      p_codeven

      <fs_bukrs>

...

 

...

    value(p_belnr)  TYPE /pws/zycbe033-belnr

    value(p_bldat)  TYPE /pws/zycbe033-bldat

    value(p_budat)  TYPE /pws/zycbe033-budat.

  CONSTANTS:

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA

    wa_zycbe033 LIKE LINE OF itab_zycbe033.

  FIELD-SYMBOLS:

    <fs_zycbt007> LIKE LINE OF itab_zycbt007,

    <fs_bukrs>    TYPE bukrs.

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

  IF NOT /pws/zycbe227a IS INITIAL.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

    ASSIGN /pws/zycbe227a-bukrs TO <fs_bukrs>.

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

  ELSE.

    ASSIGN /pws/zycbe229a-bukrs TO <fs_bukrs>.

* << Fim da inclusão

  ENDIF.

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

  CHECK <fs_bukrs> IS ASSIGNED.

* << Fim da inclusão

  READ TABLE itab_zycbt007

...

 

...

    value(p_nrseq)   TYPE t_s_zycbt228a-nrseq.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA

    wa_partidas LIKE LINE OF itab_partidas.

  FIELD-SYMBOLS:

    <fs_zycbt011> LIKE LINE OF itab_zycbt011,

    <fs_zycbt209> LIKE LINE OF itab_zycbt209,

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228.

* << Fim da exclusão

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

    <fs_zycbt230> LIKE LINE OF itab_zycbt230.

* << Fim da inclusão

  wa_partidas-tcode   = c_f30.

  wa_partidas-tabela  = c_zycbt228.

  wa_partidas-cpochv  = p_cpochv.

  LOOP AT itab_zycbt228

    ASSIGNING <fs_zycbt228>

    WHERE nrseq = p_nrseq.

    wa_partidas-bukrs   = <fs_zycbt228>-bukrs.

    wa_partidas-belnr   = <fs_zycbt228>-belnr.

    wa_partidas-dtdocto = <fs_zycbt228>-budat.

    CASE <fs_zycbt228>-tp_docto.

...

 

...

          wa_partidas-v_sinal = '-'.

          wa_partidas-shkzg   = 'H'.

        ENDIF.

      WHEN c_tp_desm_ordem.

        IF NOT <fs_zycbt011> IS ASSIGNED.

          READ TABLE itab_zycbt011

            WITH TABLE KEY

              codeven = p_codeven

              codmod  = p_codmod

              bukrs   = <fs_zycbt228>-bukrs

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

            ASSIGNING <fs_zycbt011>.

        ENDIF.

        CHECK <fs_zycbt011> IS ASSIGNED.

        READ TABLE itab_zycbt226

          WITH TABLE KEY nrseq = p_nrseq

          ASSIGNING <fs_zycbt226>.

        IF sy-subrc = 0.

          wa_partidas-agkon = <fs_zycbt226>-kunag.

          wa_partidas-agkoa = <fs_zycbt011>-koart.

          wa_partidas-agums = <fs_zycbt011>-agums.

          wa_partidas-v_sinal = '-'.

          wa_partidas-shkzg   = 'S'.

        ENDIF.

    ENDCASE.

    APPEND wa_partidas TO itab_partidas.

  ENDLOOP.

  LOOP AT itab_zycbt230

    ASSIGNING <fs_zycbt230>

    WHERE nrseq = p_nrseq.

    wa_partidas-bukrs   = <fs_zycbt230>-bukrs.

    wa_partidas-belnr   = <fs_zycbt230>-belnr.

    wa_partidas-dtdocto = <fs_zycbt230>-budat.

    CASE <fs_zycbt230>-tp_docto.

      WHEN c_tp_desm_cliente.

        CLEAR wa_partidas-agums.

        wa_partidas-agkon = wa_zycbt124-recrem.

        wa_partidas-agkoa = 'D'.

        wa_partidas-v_sinal = '-'.

        wa_partidas-shkzg   = 'H'.

      WHEN c_tp_desm_ordem.

        IF NOT <fs_zycbt011> IS ASSIGNED.

          READ TABLE itab_zycbt011

            WITH TABLE KEY

              codeven = p_codeven

              codmod  = p_codmod

              bukrs   = <fs_zycbt230>-bukrs

* << Fim da inclusão

            ASSIGNING <fs_zycbt011>.

        ENDIF.

        CHECK <fs_zycbt011> IS ASSIGNED.

        READ TABLE itab_zycbt226

          WITH TABLE KEY nrseq = p_nrseq

          ASSIGNING <fs_zycbt226>.

        IF sy-subrc = 0.

          wa_partidas-agkon = <fs_zycbt226>-kunag.

          wa_partidas-agkoa = <fs_zycbt011>-koart.

          wa_partidas-agums = <fs_zycbt011>-agums.

...

 

...

    value(p_gjahr)         TYPE /pws/zycbt228-gjahr

    value(p_tpdocto)       TYPE /pws/zycbt228-tp_docto

    value(p_belnr)         TYPE /pws/zycbt228-belnr

    value(p_bldat)         TYPE /pws/zycbt228-dtassoc

    value(p_budat)         TYPE /pws/zycbt228-budat

    value(p_dtincl)        TYPE /pws/zycbt228-dtincl

    value(p_waers)         TYPE /pws/zycbt228-waers

    value(p_vlr_associado) TYPE /pws/zycbt228-vlr_associado.

  DATA

    wa_zycbt228 LIKE LINE OF itab_zycbt228.

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

  CHECK NOT ( p_nrseq IS INITIAL OR p_gjahr IS INITIAL OR

* << Fim da exclusão

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

  CHECK wa_controle-processo = c_flag_embarque AND

    NOT ( p_nrseq IS INITIAL OR p_gjahr IS INITIAL OR

* << Fim da inclusão

    p_tpdocto IS INITIAL OR p_belnr IS INITIAL OR

    p_bldat IS INITIAL OR p_budat IS INITIAL OR

    p_waers IS INITIAL OR p_vlr_associado IS INITIAL ).

  wa_zycbt228-mandt         = sy-mandt.

  wa_zycbt228-nrseq         = p_nrseq.

  wa_zycbt228-nrinvoic      = /pws/zycbe227a-nrinvoic.

  wa_zycbt228-nrparcf       = /pws/zycbe227a-nrparcf.

  wa_zycbt228-gsberf        = /pws/zycbe227a-gsberf.

  wa_zycbt228-dtincl        = p_dtincl.

  wa_zycbt228-dtassoc       = p_bldat.

  wa_zycbt228-bukrs         = /pws/zycbe227a-bukrs.

  wa_zycbt228-belnr         = p_belnr.

  wa_zycbt228-gjahr         = p_gjahr.

  wa_zycbt228-budat         = p_budat.

  wa_zycbt228-tp_docto      = p_tpdocto.

  wa_zycbt228-waers         = p_waers.

  wa_zycbt228-vlr_associado = p_vlr_associado.

  INSERT wa_zycbt228 INTO TABLE itab_zycbt228.

ENDFORM.

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

FORM insere_itab_zycbt230

  USING

    value(p_nrseq)         TYPE /pws/zycbt230-nrseq

    value(p_gjahr)         TYPE /pws/zycbt230-gjahr

    value(p_tpdocto)       TYPE /pws/zycbt230-tp_docto

    value(p_belnr)         TYPE /pws/zycbt230-belnr

    value(p_bldat)         TYPE /pws/zycbt230-dtassoc

    value(p_budat)         TYPE /pws/zycbt230-budat.

  DATA

    wa_zycbt230 LIKE LINE OF itab_zycbt230.

  CHECK wa_controle-processo = c_flag_remessa AND

    NOT ( p_nrseq IS INITIAL OR p_gjahr IS INITIAL OR

    p_tpdocto IS INITIAL OR p_belnr IS INITIAL OR

    p_bldat IS INITIAL OR p_budat IS INITIAL ).

  wa_zycbt230-mandt         = sy-mandt.

  wa_zycbt230-nrseq         = p_nrseq.

  wa_zycbt230-nrseq_remessa = /pws/zycbe229a-nrseq.

  wa_zycbt230-dtassoc       = p_bldat.

  wa_zycbt230-bukrs         = /pws/zycbe229a-bukrs.

  wa_zycbt230-belnr         = p_belnr.

  wa_zycbt230-gjahr         = p_gjahr.

  wa_zycbt230-budat         = p_budat.

  wa_zycbt230-tp_docto      = p_tpdocto.

  INSERT wa_zycbt230 INTO TABLE itab_zycbt230.

ENDFORM.

* << Fim da inclusão

FORM efetua_contabilizacoes.

  DATA

    v_saldo TYPE /pws/zycbt227-vlr_associado.

  FIELD-SYMBOLS

    <fs_zycbt228a> LIKE LINE OF itab_zycbt228a.

  FREE itab_mensagem.

  LOOP AT itab_zycbt228a

    ASSIGNING <fs_zycbt228a>.

    CASE <fs_zycbt228a>-oper.

      WHEN c_novo.

...

 

...

          USING <fs_zycbt228a>.

        PERFORM efetua_clearing_liq_and

          USING <fs_zycbt228a>.

    ENDCASE.

  ENDLOOP.

ENDFORM.

FORM efetua_desmemb_liq_and

  USING

    value(p_nrseq) TYPE t_s_zycbt228a-nrseq

    value(p_gjahr) TYPE t_s_zycbt228a-gjahr

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

  CHANGING p_saldo TYPE t_s_zycbt227-vlr_associado.

* << Fim da exclusão

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

  CHANGING

    p_saldo  TYPE t_s_zycbt227-vlr_associado.

* << Fim da inclusão

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA:

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_saldo       TYPE t_s_zycbt209-saldo,

    v_zuonr       TYPE /pws/zycbt036-zuonr.

  FIELD-SYMBOLS:

...

 

...

    value(p_saldo) TYPE t_s_zycbt227-vlr_associado.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA:

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_zycbt209   LIKE LINE OF itab_zycbt209,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_zuonr       TYPE /pws/zycbt036-zuonr,

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

    v_data        TYPE d.

* << Fim da exclusão

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

    v_data        TYPE d,

    v_mensagem    TYPE /pws/zycbt032-msg.

* << Fim da inclusão

  FIELD-SYMBOLS:

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

    <fs_belnr> TYPE /pws/zycbe033-belnr,

    <fs_bldat> TYPE d,

    <fs_budat> TYPE d.

* << Fim da exclusão

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

    <fs_belnr>   TYPE /pws/zycbe033-belnr,

    <fs_bldat>   TYPE d,

    <fs_budat>   TYPE d,

    <fs_codmod>  LIKE c_codmod,

* << Fim da inclusão

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

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

    <fs_ktosl>   TYPE /pws/zyglt321-ktosl,

    <fs_codeven> TYPE /pws/zyglt321-codeven.

* << Fim da inclusão

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

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

    /pws/zycbe227a-budat TO <fs_budat>.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

  CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

    /pws/zycbe227a-gsberf INTO v_cpochv.

  CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

    /pws/zycbe227a-gsberf 'A' INTO v_zuonr.

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

    ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

      /pws/zycbe227a-budat TO <fs_budat>,

      c_codmod             TO <fs_codmod>,

      c_ktosl_cliente      TO <fs_ktosl>,

      c_codeven_cliente    TO <fs_codeven>.

* << Fim da inclusão

  IF wa_zycbt030-belnr6 IS INITIAL.

    ASSIGN wa_zycbt030-belnr TO <fs_belnr>.

  ELSE.

    ASSIGN wa_zycbt030-belnr6 TO <fs_belnr>.

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

    ENDIF.

    wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

    wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

    v_mensagem =

      'Desmembramento do cliente (Fatura de Exportação)'(m34).

  ELSE.

    v_cpochv = /pws/zycbe229a-nrseq.

    CONCATENATE /pws/zycbe229a-nrseq 'A' INTO v_zuonr.

    ASSIGN: /pws/zycbe229a-dtassoc TO <fs_bldat>,

      /pws/zycbe229a-budat TO <fs_budat>,

      c_codmod_remessa     TO <fs_codmod>,

      c_ktosl_remessa      TO <fs_ktosl>,

      c_codeven_remessa    TO <fs_codeven>.

    IF wa_zycbt124-belnr_assoc IS INITIAL.

      ASSIGN wa_zycbt124-belnr TO <fs_belnr>.

    ELSE.

      ASSIGN wa_zycbt124-belnr_assoc TO <fs_belnr>.

    ENDIF.

    wa_mensagem-bukrs = /pws/zycbe229a-bukrs.

    wa_mensagem-nrseq_remessa = /pws/zycbe229a-nrseq.

    v_mensagem =

      'Desmembramento do cliente (Remessa de recebimento)'(m51).

* << Fim da inclusão

  ENDIF.

  PERFORM limpa_dados_bi.

  PERFORM preenche_zycbe033_desmemb

    USING

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

      c_codmod

      c_ktosl_cliente

      c_codeven_cliente

* << Fim da exclusão

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

      <fs_codmod>

      <fs_ktosl>

      <fs_codeven>

* << Fim da inclusão

      v_cpochv

      <fs_belnr>

      <fs_bldat>

      <fs_budat>

      p_saldo

      wa_zycbt209

      space

    CHANGING itab_zycbe224.

  PERFORM preenche_zycbe036_desmemb

    USING

      v_cpochv

      p_saldo

      v_zuonr.

  IF itab_zycbt034 IS INITIAL.

    PERFORM executa_f30 USING 'P' 'X' itab_zycbe224.

    FREE itab_zycbe224.

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

    wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

    wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

* << Fim da exclusão

    PERFORM verifica_contabilizacao

      USING

        c_f30

        c_zycbt228

        v_cpochv

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

        'Desmembramento do cliente (Fatura de Exportação)'(m34)

* << Fim da exclusão

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

        v_mensagem

* << Fim da inclusão

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

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

      IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

      wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans - p_saldo.

      wa_zycbt030-belnr6    = wa_mensagem-belnr.

      wa_zycbt030-budat     = wa_mensagem-dtcont.

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

      ELSE.

        wa_zycbt124-dtpagto      = /pws/zycbe229a-dtassoc.

        wa_zycbt124-sld_associar = wa_zycbt124-sld_associar - p_saldo.

        wa_zycbt124-belnr_assoc  = wa_mensagem-belnr.

        wa_zycbt124-dtassoc      = wa_mensagem-dtcont.

      ENDIF.

* << Fim da inclusão

      PERFORM insere_itab_zycbt228

          USING p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

            <fs_bldat> <fs_budat> v_data wa_zycbt030-waers p_saldo.

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

      PERFORM insere_itab_zycbt230

        USING p_nrseq p_gjahr c_tp_desm_cliente wa_mensagem-belnr

          <fs_bldat> <fs_budat>.

* << Fim da inclusão

    ENDIF.

  ENDIF.

...

 

...

  DATA:

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_zycbt209   LIKE LINE OF itab_zycbt209,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_zuonr       TYPE /pws/zycbt036-zuonr,

    v_data        TYPE d.

  FIELD-SYMBOLS:

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_belnr>    TYPE /pws/zycbe033-belnr,

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

    <fs_bukrs>    TYPE /pws/zycbe033-bukrs,

* << Fim da inclusão

    <fs_bldat>    TYPE d,

    <fs_budat>    TYPE d.

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

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

    /pws/zycbe227a-budat TO <fs_budat>.

* << Fim da exclusão

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

      /pws/zycbe227a-budat TO <fs_budat>,

      /pws/zycbe227a-bukrs TO <fs_bukrs>.

  ELSE.

    ASSIGN: /pws/zycbe229a-dtassoc TO <fs_bldat>,

      /pws/zycbe229a-budat TO <fs_budat>,

      /pws/zycbe229a-bukrs TO <fs_bukrs>.

  ENDIF.

* << Fim da inclusão

  v_cpochv = p_wa_zycbt228a-nrseq.

  CONCATENATE p_wa_zycbt228a-nrseq 'A' INTO v_zuonr.

  READ TABLE itab_zycbt226

    WITH TABLE KEY nrseq = p_wa_zycbt228a-nrseq

    ASSIGNING <fs_zycbt226>.

  IF <fs_zycbt226> IS ASSIGNED.

    IF <fs_zycbt226>-belnr_assoc IS INITIAL.

      ASSIGN <fs_zycbt226>-belnr_op TO <fs_belnr>.

    ELSE.

      ASSIGN <fs_zycbt226>-belnr_assoc TO <fs_belnr>.

...

 

...

      p_wa_zycbt228a-nrseq

    CHANGING itab_zycbe224.

  PERFORM preenche_zycbe036_desmemb

    USING

      v_cpochv

      p_wa_zycbt228a-vlr_associado

      v_zuonr.

  IF itab_zycbt034 IS INITIAL.

    PERFORM executa_f30 USING 'P' 'X' itab_zycbe224.

    FREE itab_zycbe224.

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

    wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

* << Fim da exclusão

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

    wa_mensagem-bukrs = <fs_bukrs>.

* << Fim da inclusão

    wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

    PERFORM verifica_contabilizacao

      USING

        c_f30

        c_zycbt228

        v_cpochv

        'Desmembramento do cliente RZE (Ordem de pagamento)'(m35)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      <fs_zycbt226>-sld_associar = <fs_zycbt226>-sld_associar -

        p_wa_zycbt228a-vlr_associado.

      <fs_zycbt226>-belnr_assoc = wa_mensagem-belnr.

      <fs_zycbt226>-dt_assoc    = wa_mensagem-dtcont.

      PERFORM insere_itab_zycbt228

          USING p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr

            c_tp_desm_ordem wa_mensagem-belnr <fs_bldat> <fs_budat>

            v_data <fs_zycbt226>-waers p_wa_zycbt228a-vlr_associado.

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

      PERFORM insere_itab_zycbt230

        USING p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_desm_ordem

          wa_mensagem-belnr <fs_bldat> <fs_budat>.

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDFORM.

FORM efetua_comp_associacao

  USING value(p_wa_zycbt228a) LIKE LINE OF itab_zycbt228a.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA:

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_zycbt209   LIKE LINE OF itab_zycbt209,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_data        TYPE d.

  FIELD-SYMBOLS:

    <fs_bldat>    TYPE d,

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

    <fs_budat>    TYPE d.

* << Fim da exclusão

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

    <fs_budat>    TYPE d,

    <fs_codmod>   LIKE c_codmod,

    <fs_ktosl>    TYPE /pws/zyglt321-ktosl,

    <fs_codeven>  TYPE /pws/zyglt321-codeven.

* << Fim da inclusão

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

    CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

      /pws/zycbe227a-gsberf INTO v_cpochv.

* << Fim da inclusão

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

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

    /pws/zycbe227a-budat TO <fs_budat>.

* << Fim da exclusão

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

      /pws/zycbe227a-budat TO <fs_budat>,

      c_codmod             TO <fs_codmod>,

      c_ktosl_associa      TO <fs_ktosl>,

      c_codeven_associa    TO <fs_codeven>.

    wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq    = p_wa_zycbt228a-nrseq.

    wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

  ELSE.

    v_cpochv = /pws/zycbe229a-nrseq.

    ASSIGN: /pws/zycbe229a-dtassoc TO <fs_bldat>,

      /pws/zycbe229a-budat  TO <fs_budat>,

      c_codmod_remessa      TO <fs_codmod>,

      c_ktosl_remessa       TO <fs_ktosl>,

      c_codeven_associa_rem TO <fs_codeven>.

* << Fim da inclusão

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

  CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

    /pws/zycbe227a-gsberf INTO v_cpochv.

* << Fim da exclusão

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

    wa_mensagem-bukrs         = /pws/zycbe229a-bukrs.

    wa_mensagem-nrseq         = p_wa_zycbt228a-nrseq.

    wa_mensagem-nrseq_remessa = /pws/zycbe229a-nrseq.

  ENDIF.

* << Fim da inclusão

  PERFORM limpa_dados_bi.

  PERFORM preenche_zycbe033_compensacao

    USING

      space

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

      c_codmod

      c_ktosl_associa

      c_codeven_associa

* << Fim da exclusão

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

      <fs_codmod>

      <fs_ktosl>

      <fs_codeven>

* << Fim da inclusão

      v_cpochv

      <fs_bldat>

      <fs_budat>

      p_wa_zycbt228a-nrseq

      wa_zycbt209.

  PERFORM preenche_partidas

    USING

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

      c_codmod

      c_codeven_associa

* << Fim da exclusão

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

      <fs_codmod>

      <fs_codeven>

* << Fim da inclusão

      v_cpochv

      p_wa_zycbt228a-nrseq.

  IF itab_zycbt034 IS INITIAL.

    PERFORM preenche_contas_compensacao CHANGING itab_zycbe224.

    PERFORM executa_f30 USING 'W' 'X' itab_zycbe224.

    FREE itab_zycbe224.

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

    wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

* << Fim da exclusão

    PERFORM verifica_contabilizacao

      USING

        c_f30

        c_zycbt228

        v_cpochv

        'Compensação da Associação'(m36)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      PERFORM insere_itab_zycbt228

          USING p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr

            c_tp_comp_assoc wa_mensagem-belnr <fs_bldat> <fs_budat>

            v_data p_wa_zycbt228a-waers p_wa_zycbt228a-vlr_associado.

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

      PERFORM insere_itab_zycbt230

        USING p_wa_zycbt228a-nrseq p_wa_zycbt228a-gjahr c_tp_comp_assoc

          wa_mensagem-belnr <fs_bldat> <fs_budat>.

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDFORM.

FORM efetua_estorno_associacao

  USING

    value(p_nrseq) TYPE t_s_zycbt228a-nrseq

    value(p_belnr) TYPE t_s_zycbt228a-belnr.

  CONSTANTS:

    c_fbra     TYPE /pws/zycbt032-tcode  VALUE 'FBRA',

    c_fb08     TYPE /pws/zycbt032-tcode  VALUE 'FB08',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228'.

  DATA:

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv.

  FIELD-SYMBOLS:

    <fs_bldat> TYPE d,

    <fs_budat> TYPE d.

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

    READ TABLE itab_zycbt228

      WITH KEY

        nrseq = p_nrseq

        tp_docto = c_tp_comp_assoc

      TRANSPORTING NO FIELDS.

    CHECK sy-subrc = 0.

* << Fim da inclusão

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

    /pws/zycbe227a-budat TO <fs_budat>.

  CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

    /pws/zycbe227a-gsberf INTO v_cpochv.

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

    wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq    = p_nrseq.

    wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

  ELSE.

    READ TABLE itab_zycbt230

      WITH KEY

        nrseq = p_nrseq

        tp_docto = c_tp_comp_assoc

      TRANSPORTING NO FIELDS.

    CHECK sy-subrc = 0.

    ASSIGN: /pws/zycbe229a-dtassoc TO <fs_bldat>,

      /pws/zycbe229a-budat TO <fs_budat>.

    v_cpochv = /pws/zycbe229a-nrseq.

    wa_mensagem-bukrs         = /pws/zycbe229a-bukrs.

    wa_mensagem-nrseq         = p_nrseq.

    wa_mensagem-nrseq_remessa = /pws/zycbe229a-nrseq.

  ENDIF.

* << Fim da inclusão

  PERFORM limpa_dados_bi.

  PERFORM preenche_zycbe033_estorno

    USING

      c_fbra

      v_cpochv

      p_belnr

      <fs_bldat>

      <fs_budat>.

  IF itab_zycbt034 IS INITIAL.

    PERFORM preenche_contas_estorno

      USING c_codmod c_codeven_associa p_nrseq

      CHANGING itab_zycbe224.

    PERFORM executa_fbra_fb08 USING c_fbra itab_zycbe224.

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

    wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq = p_nrseq.

* << Fim da exclusão

    PERFORM verifica_contabilizacao

      USING

        c_fbra

        c_zycbt228

        v_cpochv

        'Compensação da Associação Anulada'(m41)

      CHANGING wa_mensagem.

  ENDIF.

  IF NOT wa_mensagem IS INITIAL.

    FREE wa_mensagem.

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

    IF wa_controle-processo = c_flag_embarque.

      wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

      wa_mensagem-nrseq    = p_nrseq.

      wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

      wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

      wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

    ELSE.

      wa_mensagem-bukrs         = /pws/zycbe229a-bukrs.

      wa_mensagem-nrseq         = p_nrseq.

      wa_mensagem-nrseq_remessa = /pws/zycbe229a-nrseq.

    ENDIF.

* << Fim da inclusão

    PERFORM limpa_dados_bi.

    PERFORM preenche_zycbe033_estorno

      USING

        c_fb08

        v_cpochv

        p_belnr

        <fs_bldat>

        <fs_budat>.

    IF itab_zycbt034 IS INITIAL.

      PERFORM executa_fbra_fb08 USING c_fb08 itab_zycbe224.

      FREE itab_zycbe224.

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

      wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

      wa_mensagem-nrseq = p_nrseq.

* << Fim da exclusão

      PERFORM verifica_contabilizacao

        USING

          c_fb08

          c_zycbt228

          v_cpochv

          'Estorno da Compensação da Associação'(m42)

        CHANGING wa_mensagem.

      IF NOT wa_mensagem IS INITIAL.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM efetua_clearing_ordem_pagto

  USING value(p_wa_zycbt228a) LIKE LINE OF itab_zycbt228a.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228',

    c_koart    TYPE t_s_zycbe224-koart   VALUE 'D'.

  DATA:

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

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_zycbe224   LIKE LINE OF itab_zycbe224,

    wa_zycbt209   LIKE LINE OF itab_zycbt209,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_zuonr       TYPE /pws/zycbt036-zuonr.

* << Fim da exclusão

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

    itab_zycbe224   TYPE t_t_zycbe224,

    wa_zycbe224     LIKE LINE OF itab_zycbe224,

    wa_zycbt209     LIKE LINE OF itab_zycbt209,

    wa_mensagem     LIKE LINE OF itab_mensagem,

    v_cpochv        TYPE /pws/zycbe033-cpochv,

    v_zuonr         TYPE /pws/zycbt036-zuonr,

    v_vlr_associado TYPE t_s_zycbt228-vlr_associado.

* << Fim da inclusão

  FIELD-SYMBOLS:

    <fs_zycbt226> LIKE LINE OF itab_zycbt226,

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

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

    <fs_zycbt230> LIKE LINE OF itab_zycbt230,

* << Fim da inclusão

    <fs_bukrs>    TYPE /pws/zycbe227a-bukrs,

    <fs_bldat>    TYPE d,

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

    <fs_budat>    TYPE d.

* << Fim da exclusão

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

    <fs_budat>    TYPE d,

    <fs_belnr>    TYPE belnr_d,

    <fs_dtdocto>  TYPE d.

* << Fim da inclusão

  CHECK NOT p_wa_zycbt228a IS INITIAL.

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

  CHECK wa_controle-processo = c_flag_embarque.

  READ TABLE itab_zycbt226

    WITH TABLE KEY nrseq = p_wa_zycbt228a-nrseq

    ASSIGNING <fs_zycbt226>.

* << Fim da exclusão

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

  READ TABLE itab_zycbt228

    WITH KEY

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

      nrseq = p_wa_zycbt228a-nrseq

* << Fim da exclusão

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

        nrseq    = p_wa_zycbt228a-nrseq

* << Fim da inclusão

      tp_docto = c_tp_desm_ordem

    ASSIGNING <fs_zycbt228>.

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

  CHECK <fs_zycbt226> IS ASSIGNED AND <fs_zycbt228> IS ASSIGNED.

* << Fim da exclusão

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

    CHECK <fs_zycbt228> IS ASSIGNED.

    v_vlr_associado = <fs_zycbt228>-vlr_associado.

* << Fim da inclusão

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

    /pws/zycbe227a-budat TO <fs_budat>,

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

    /pws/zycbe227a-bukrs TO <fs_bukrs>.

* << Fim da exclusão

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

      /pws/zycbe227a-bukrs TO <fs_bukrs>,

      <fs_zycbt228>-belnr  TO <fs_belnr>,

      <fs_zycbt228>-budat  TO <fs_dtdocto>.

  ELSE.

    READ TABLE itab_zycbt230

      WITH KEY

        nrseq    = p_wa_zycbt228a-nrseq

        tp_docto = c_tp_desm_ordem

      ASSIGNING <fs_zycbt230>.

    CHECK <fs_zycbt230> IS ASSIGNED.

    v_vlr_associado = p_wa_zycbt228a-vlr_associado.

    ASSIGN: /pws/zycbe229a-dtassoc TO <fs_bldat>,

      /pws/zycbe229a-budat TO <fs_budat>,

      /pws/zycbe229a-bukrs TO <fs_bukrs>,

      <fs_zycbt230>-belnr  TO <fs_belnr>,

      <fs_zycbt230>-budat  TO <fs_dtdocto>.

  ENDIF.

  READ TABLE itab_zycbt226

    WITH TABLE KEY nrseq = p_wa_zycbt228a-nrseq

    ASSIGNING <fs_zycbt226>.

  CHECK <fs_zycbt226> IS ASSIGNED.

* << Fim da inclusão

  v_cpochv = p_wa_zycbt228a-nrseq.

  v_zuonr  = p_wa_zycbt228a-nrseq.

  PERFORM limpa_dados_bi.

  PERFORM preenche_zycbe033_compensacao

    USING

      'X'

      c_codmod

      c_ktosl_ordem

      c_codeven_ordem

      v_cpochv

      <fs_bldat>

      <fs_budat>

      p_wa_zycbt228a-nrseq

      wa_zycbt209.

  PERFORM preenche_doctos_clearing

    USING

      v_cpochv

      v_zuonr

      <fs_zycbt226>-belnr_assoc

      <fs_zycbt226>-dt_assoc

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

      <fs_zycbt228>-vlr_associado.

* << Fim da exclusão

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

      v_vlr_associado.

* << Fim da inclusão

  READ TABLE itab_zycbt036

    WITH KEY

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

      belnr   = <fs_zycbt228>-belnr

      dtdocto = <fs_zycbt228>-budat

* << Fim da exclusão

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

      belnr   = <fs_belnr>

      dtdocto = <fs_dtdocto>

* << Fim da inclusão

  TRANSPORTING NO FIELDS.

  IF sy-subrc <> 0.

    PERFORM preenche_doctos_clearing

      USING

        v_cpochv

        v_zuonr

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

        <fs_zycbt228>-belnr

        <fs_zycbt228>-budat

        <fs_zycbt228>-vlr_associado.

* << Fim da exclusão

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

        <fs_belnr>

        <fs_dtdocto>

        v_vlr_associado.

* << Fim da inclusão

  ENDIF.

  IF itab_zycbt034 IS INITIAL.

    wa_zycbe224-mandt = sy-mandt.

    wa_zycbe224-modo  = c_modo_bloqueio.

    wa_zycbe224-bukrs = <fs_bukrs>.

    wa_zycbe224-koart = c_koart.

    wa_zycbe224-saknr = <fs_zycbt226>-kunag.

    APPEND wa_zycbe224 TO itab_zycbe224.

    PERFORM executa_f30 USING 'C' 'X' itab_zycbe224.

    FREE itab_zycbe224.

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

    wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

* << Fim da exclusão

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

    wa_mensagem-bukrs    = <fs_bukrs>.

    wa_mensagem-nrseq    = p_wa_zycbt228a-nrseq.

* << Fim da inclusão

    PERFORM verifica_contabilizacao

      USING

        c_f30

        c_zycbt228

        v_cpochv

        'Clearing do cliente RZE (Ordem de pagamento)'(m44)

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

      <fs_zycbt226>-sld_associar = <fs_zycbt226>-sld_associar +

        p_wa_zycbt228a-vlr_associado.

...

 

...

    ENDIF.

  ENDIF.

ENDFORM.

FORM efetua_clearing_cliente

  USING value(p_wa_zycbt228a) LIKE LINE OF itab_zycbt228a.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

    c_zycbt228 TYPE /pws/zycbt032-tabela VALUE 'ZYCBT228',

    c_koart    TYPE t_s_zycbe224-koart   VALUE 'D'.

  DATA:

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

    itab_zycbe224 TYPE t_t_zycbe224,

    wa_zycbe224   LIKE LINE OF itab_zycbe224,

    wa_zycbt209   LIKE LINE OF itab_zycbt209,

    wa_mensagem   LIKE LINE OF itab_mensagem,

    v_cpochv      TYPE /pws/zycbe033-cpochv,

    v_zuonr       TYPE /pws/zycbt036-zuonr.

* << Fim da exclusão

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

    itab_zycbe224   TYPE t_t_zycbe224,

    wa_zycbe224     LIKE LINE OF itab_zycbe224,

    wa_zycbt209     LIKE LINE OF itab_zycbt209,

    wa_mensagem     LIKE LINE OF itab_mensagem,

    v_cpochv        TYPE /pws/zycbe033-cpochv,

    v_zuonr         TYPE /pws/zycbt036-zuonr,

    v_vlr_associado TYPE t_s_zycbt228a-vlr_associado,

    v_mensagem      TYPE /pws/zycbt032-msg.

* << Fim da inclusão

  FIELD-SYMBOLS:

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

    <fs_zycbt228> LIKE LINE OF itab_zycbt228,

    <fs_bldat>    TYPE d,

    <fs_budat>    TYPE d,

    <fs_bukrs>    TYPE /pws/zycbe227a-bukrs.

* << Fim da exclusão

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

    <fs_zycbt228>      LIKE LINE OF itab_zycbt228,

    <fs_zycbt230>      LIKE LINE OF itab_zycbt230,

    <fs_codmod>        LIKE c_codmod,

    <fs_ktosl>         TYPE /pws/zyglt321-ktosl,

    <fs_codeven>       TYPE /pws/zyglt321-codeven,

    <fs_bldat>         TYPE d,

    <fs_budat>         TYPE d,

    <fs_bukrs>         TYPE /pws/zycbe227a-bukrs,

    <fs_kunnr>         TYPE /pws/zycbe227a-kunag,

    <fs_belnr_orig>    TYPE belnr_d,

    <fs_dtdocto_orig>  TYPE d,

    <fs_belnr_proc>    TYPE belnr_d,

    <fs_dtdocto_proc>  TYPE d.

* << Fim da inclusão

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

  CHECK wa_controle-processo = c_flag_embarque.

* << Fim da exclusão

  CHECK NOT p_wa_zycbt228a IS INITIAL.

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

  IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

  READ TABLE itab_zycbt228

    WITH KEY

      nrinvoic = /pws/zycbe227a-nrinvoic

      nrparcf  = /pws/zycbe227a-nrparcf

      gsberf   = /pws/zycbe227a-gsberf

      nrseq    = p_wa_zycbt228a-nrseq

      tp_docto = c_tp_desm_cliente

    ASSIGNING <fs_zycbt228>.

  CHECK <fs_zycbt228> IS ASSIGNED.

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

  ASSIGN: /pws/zycbe227a-dtassoc TO <fs_bldat>,

    /pws/zycbe227a-budat TO <fs_budat>,

    /pws/zycbe227a-bukrs TO <fs_bukrs>.

* << Fim da exclusão

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

    v_vlr_associado = <fs_zycbt228>-vlr_associado.

    ASSIGN: c_codmod         TO <fs_codmod>,

      c_ktosl_cliente        TO <fs_ktosl>,

      c_codeven_cliente      TO <fs_codeven>,

      /pws/zycbe227a-dtassoc TO <fs_bldat>,

      /pws/zycbe227a-budat   TO <fs_budat>,

      /pws/zycbe227a-bukrs   TO <fs_bukrs>,

      /pws/zycbe227a-kunag   TO <fs_kunnr>,

      wa_zycbt030-belnr6     TO <fs_belnr_orig>,

      wa_zycbt030-budat      TO <fs_dtdocto_orig>,

      <fs_zycbt228>-belnr    TO <fs_belnr_proc>,

      <fs_zycbt228>-budat    TO <fs_dtdocto_proc>.

* << Fim da inclusão

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

  v_cpochv = p_wa_zycbt228a-nrseq.

* << Fim da exclusão

  CONCATENATE /pws/zycbe227a-nrinvoic /pws/zycbe227a-nrparcf

    /pws/zycbe227a-gsberf INTO v_zuonr.

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

    wa_mensagem-bukrs    = /pws/zycbe227a-bukrs.

    wa_mensagem-nrinvoic = /pws/zycbe227a-nrinvoic.

    wa_mensagem-nrparcf  = /pws/zycbe227a-nrparcf.

    wa_mensagem-gsberf   = /pws/zycbe227a-gsberf.

    v_mensagem = 'Clearing do cliente (Fatura de exportação)'(m43).

  ELSE.

    READ TABLE itab_zycbt230

      WITH KEY

        nrseq_remessa = /pws/zycbe229a-nrseq

        nrseq         = p_wa_zycbt228a-nrseq

        tp_docto      = c_tp_desm_cliente

      ASSIGNING <fs_zycbt230>.

    CHECK <fs_zycbt230> IS ASSIGNED.

    v_vlr_associado = p_wa_zycbt228a-vlr_associado.

    ASSIGN: c_codmod_remessa  TO <fs_codmod>,

      c_ktosl_remessa         TO <fs_ktosl>,

      c_codeven_remessa       TO <fs_codeven>,

      /pws/zycbe229a-dtassoc  TO <fs_bldat>,

      /pws/zycbe229a-budat    TO <fs_budat>,

      /pws/zycbe229a-bukrs    TO <fs_bukrs>,

      /pws/zycbe229a-recrem   TO <fs_kunnr>,

      wa_zycbt124-belnr_assoc TO <fs_belnr_orig>,

      wa_zycbt124-dtassoc     TO <fs_dtdocto_orig>,

      <fs_zycbt230>-belnr     TO <fs_belnr_proc>,

      <fs_zycbt230>-budat     TO <fs_dtdocto_proc>.

    v_zuonr = /pws/zycbe229a-nrseq.

    wa_mensagem-bukrs         = /pws/zycbe229a-bukrs.

    wa_mensagem-nrseq_remessa = /pws/zycbe228a-nrseq.

    v_mensagem = 'Clearing do cliente (Remessa de recebimento)'(m52).

  ENDIF.

  v_cpochv = p_wa_zycbt228a-nrseq.

* << Fim da inclusão

  PERFORM limpa_dados_bi.

  PERFORM preenche_zycbe033_compensacao

    USING

      'X'

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

      c_codmod

      c_ktosl_cliente

      c_codeven_cliente

* << Fim da exclusão

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

      <fs_codmod>

      <fs_ktosl>

      <fs_codeven>

* << Fim da inclusão

      v_cpochv

      <fs_bldat>

      <fs_budat>

      p_wa_zycbt228a-nrseq

      wa_zycbt209.

  PERFORM preenche_doctos_clearing

    USING

      v_cpochv

      v_zuonr

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

      wa_zycbt030-belnr6

      wa_zycbt030-budat

      <fs_zycbt228>-vlr_associado.

* << Fim da exclusão

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

      <fs_belnr_orig>

      <fs_dtdocto_orig>

      v_vlr_associado.

* << Fim da inclusão

  READ TABLE itab_zycbt036

    WITH KEY

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

      belnr   = <fs_zycbt228>-belnr

      dtdocto = <fs_zycbt228>-budat

* << Fim da exclusão

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

      belnr   = <fs_belnr_proc>

      dtdocto = <fs_dtdocto_proc>

* << Fim da inclusão

  TRANSPORTING NO FIELDS.

  IF sy-subrc <> 0.

    PERFORM preenche_doctos_clearing

      USING

        v_cpochv

        v_zuonr

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

        <fs_zycbt228>-belnr

        <fs_zycbt228>-budat

        <fs_zycbt228>-vlr_associado.

* << Fim da exclusão

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

        <fs_belnr_proc>

        <fs_dtdocto_proc>

        v_vlr_associado.

* << Fim da inclusão

  ENDIF.

  IF itab_zycbt034 IS INITIAL.

    wa_zycbe224-mandt = sy-mandt.

    wa_zycbe224-modo  = c_modo_bloqueio.

    wa_zycbe224-bukrs = <fs_bukrs>.

    wa_zycbe224-koart = c_koart.

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

    wa_zycbe224-saknr = /pws/zycbe227a-kunag.

* << Fim da exclusão

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

    wa_zycbe224-saknr = <fs_kunnr>.

* << Fim da inclusão

    APPEND wa_zycbe224 TO itab_zycbe224.

    PERFORM executa_f30 USING 'C' 'X' itab_zycbe224.

    FREE itab_zycbe224.

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

    wa_mensagem-bukrs = /pws/zycbe227a-bukrs.

    wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

* << Fim da exclusão

    PERFORM verifica_contabilizacao

      USING

        c_f30

        c_zycbt228

        v_cpochv

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

        'Clearing do cliente (Fatura de exportação)'(m43)

* << Fim da exclusão

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

        v_mensagem

* << Fim da inclusão

      CHANGING wa_mensagem.

    IF NOT wa_mensagem IS INITIAL.

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

      IF wa_controle-processo = c_flag_embarque.

* << Fim da inclusão

      wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans +

        <fs_zycbt228>-vlr_associado.

      wa_zycbt030-belnr6 = wa_mensagem-belnr.

      wa_zycbt030-budat  = wa_mensagem-dtcont.

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

      ELSE.

        wa_zycbt124-sld_associar = wa_zycbt124-sld_associar +

          p_wa_zycbt228a-vlr_associado.

        wa_zycbt124-belnr_assoc = wa_mensagem-belnr.

        wa_zycbt124-dtdocto     = wa_mensagem-dtcont.

        IF wa_zycbt124-sld_associar = wa_zycbt124-vlme.

          CLEAR wa_zycbt124-dtpagto.

        ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM efetua_clearing_liq_and

  USING value(p_wa_zycbt228a) LIKE LINE OF itab_zycbt228a.

  CONSTANTS:

    c_f30      TYPE /pws/zycbt032-tcode  VALUE 'F-30',

...

 

...

    ENDIF.

    IF itab_zycbt034 IS INITIAL.

      wa_zycbe224-mandt = sy-mandt.

      wa_zycbe224-modo  = c_modo_bloqueio.

      wa_zycbe224-bukrs = <fs_zycbt209>-bukrs.

      wa_zycbe224-koart = <fs_zycbt209>-koart.

      wa_zycbe224-saknr = <fs_zycbt209>-hkont.

      APPEND wa_zycbe224 TO itab_zycbe224.

      PERFORM executa_f30 USING 'C' 'X' itab_zycbe224.

      FREE itab_zycbe224.

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

      wa_mensagem-bukrs = <fs_zycbt209>-bukrs.

      wa_mensagem-nrseq = p_wa_zycbt228a-nrseq.

* << Fim da exclusão

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

      wa_mensagem-bukrs    = <fs_zycbt209>-bukrs.

      wa_mensagem-nrinvoic = <fs_zycbt209>-nrinvoic.

      wa_mensagem-nrparcf  = <fs_zycbt209>-nrparcf.

      wa_mensagem-gsberf   = <fs_zycbt209>-gsberf.

* << Fim da inclusão

      PERFORM verifica_contabilizacao

        USING

          c_f30

          c_zycbt228

          v_cpochv

          'Clearing da liquidação em andamento'(m45)

        CHANGING wa_mensagem.

      IF NOT wa_mensagem IS INITIAL.

        <fs_zycbt209>-saldo = <fs_zycbt209>-saldo +

          <fs_zycbt228>-vlr_associado.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035I01

 

MODULE user_command_exit INPUT.

  CASE sy-dynnr.

    WHEN '0001'.

      LEAVE TO SCREEN 0.

    WHEN '0010'.

* >> Início da inclusão: MODULE USER_COMMAND_EXIT

      PERFORM verifica_alteracoes.

* << Fim da inclusão

      CASE ok_code.

        WHEN 'BACK'.

* >> Início da inclusão: MODULE USER_COMMAND_EXIT

          CASE sy-tcode.

            WHEN c_transacao_a OR c_transacao_e.

              LEAVE TO SCREEN 1.

            WHEN OTHERS.

* << Fim da inclusão

          LEAVE TO SCREEN 0.

* >> Início da inclusão: MODULE USER_COMMAND_EXIT

          ENDCASE.

* << Fim da inclusão

        WHEN '%EX' OR 'RW'.

          LEAVE PROGRAM.

      ENDCASE.

  ENDCASE.

ENDMODULE.

MODULE user_command INPUT.

  PERFORM trata_botao_especifico.

  IF ok_code = 'CS'.

    PERFORM drilldown.

  ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035T02

 

...

    nrinvoic  TYPE /pws/zycbt030-nrinvoic,

    nrparcf   TYPE /pws/zycbt030-nrparcf,

    gsberf    TYPE /pws/zycbt030-gsberf,

    belnr     TYPE /pws/zycbt030-belnr,

    waers     TYPE /pws/zycbt030-waers,

    belnr6    TYPE /pws/zycbt030-belnr6,

    budat     TYPE /pws/zycbt030-budat,

    vlsltrans TYPE /pws/zycbt030-vlsltrans,

  END OF t_s_zycbt030,

  BEGIN OF t_s_zycbt124,

* >> Início da exclusão:

    nrseq      TYPE /pws/zycbt124-nrseq,

    nrfech     TYPE /pws/zycbt124-nrfech,

    bukrs      TYPE /pws/zycbt124-bukrs,

    gsber      TYPE /pws/zycbt124-gsber,

    j_1bbranch TYPE /pws/zycbt124-j_1bbranch,

    recrem     TYPE /pws/zycbt124-recrem,

    dtincl     TYPE /pws/zycbt124-dtincl,

    waers      TYPE /pws/zycbt124-waers,

* << Fim da exclusão

* >> Início da inclusão:

    nrseq        TYPE /pws/zycbt124-nrseq,

    nrfech       TYPE /pws/zycbt124-nrfech,

    bukrs        TYPE /pws/zycbt124-bukrs,

    gsber        TYPE /pws/zycbt124-gsber,

    j_1bbranch   TYPE /pws/zycbt124-j_1bbranch,

    werks        TYPE /pws/zycbt124-werks,

    recrem       TYPE /pws/zycbt124-recrem,

    dtincl       TYPE /pws/zycbt124-dtincl,

    dtvencto     TYPE /pws/zycbt124-dtvencto,

    waers        TYPE /pws/zycbt124-waers,

    vlme         TYPE /pws/zycbt124-vlme,

    txtinf       TYPE /pws/zycbt124-txtinf,

    dtpagto      TYPE /pws/zycbt124-dtpagto,

    kursf        TYPE /pws/zycbt124-kursf,

    ftaxa        TYPE /pws/zycbt124-ftaxa,

    dtdocto      TYPE /pws/zycbt124-dtdocto,

    belnr        TYPE /pws/zycbt124-belnr,

    sld_associar TYPE /pws/zycbt124-sld_associar,

    dtassoc      TYPE /pws/zycbt124-dtassoc,

    belnr_assoc  TYPE /pws/zycbt124-belnr_assoc,

* << Fim da inclusão

  END OF t_s_zycbt124,

  BEGIN OF t_s_zycbt209,

    bukrs    TYPE /pws/zycbt209-bukrs,

    nrinvoic TYPE /pws/zycbt209-nrinvoic,

    belnr    TYPE /pws/zycbt209-belnr,

    nrparcf  TYPE /pws/zycbt209-nrparcf,

    gsberf   TYPE /pws/zycbt209-gsberf,

    dtincl   TYPE /pws/zycbt209-dtincl,

    waers    TYPE /pws/zycbt209-waers,

    saldo    TYPE /pws/zycbt209-saldo,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB035TOP

 

PROGRAM  /pws/sapmzycb035 MESSAGE-ID /pws/zycbm.

TYPE-POOLS:

  shlp.

INCLUDE:

  /pws/zygli100,

  /pws/zygli101,

  /pws/mzycb035t01,

  /pws/mzycb035t02.

CONSTANTS:

* >> Início da exclusão:

  c_codmod(1)        TYPE c                      VALUE 'E',

  c_programa         TYPE sy-cprog             VALUE '/PWS/SAPMZYCB035',

  c_embarque         TYPE feld-name              VALUE 'EMBARQUE',

  c_remessa          TYPE feld-name              VALUE 'REMESSA',

  c_flag_embarque(1) TYPE c                      VALUE 'E',

  c_flag_remessa(1)  TYPE c                      VALUE 'R',

  c_transacao_a      TYPE sy-tcode               VALUE '/PWS/ZYCB035_A',

  c_transacao_c      TYPE sy-tcode               VALUE '/PWS/ZYCB035_C',

  c_transacao_e      TYPE sy-tcode               VALUE '/PWS/ZYCB035_E',

  c_alterado(1)      TYPE c                      VALUE 'A',

  c_eliminado(1)     TYPE c                      VALUE 'D',

  c_novo(1)          TYPE c                      VALUE 'N',

  c_grupo_mensagem   TYPE smesg-arbgb            VALUE '/PWS/ZYCBM',

  c_ktosl_liq_and    TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_ktosl_cliente    TYPE /pws/zyglt321-ktosl    VALUE 'FTE',

  c_ktosl_ordem      TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_ktosl_associa    TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_codeven_liq_and  TYPE /pws/zyglt321-codeven  VALUE '023',

  c_codeven_cliente  TYPE /pws/zyglt321-codeven  VALUE '010',

  c_codeven_ordem    TYPE /pws/zyglt321-codeven  VALUE '030',

  c_codeven_associa  TYPE /pws/zyglt321-codeven  VALUE '031',

  c_tp_comp_assoc    TYPE /pws/zycbt228-tp_docto VALUE 'A',

  c_tp_desm_cliente  TYPE /pws/zycbt228-tp_docto VALUE 'C',

  c_tp_desm_liq_and  TYPE /pws/zycbt228-tp_docto VALUE 'L',

  c_tp_desm_ordem    TYPE /pws/zycbt228-tp_docto VALUE 'O',

  c_modo_bloqueio    TYPE enqmode                VALUE 'E'.

* << Fim da exclusão

* >> Início da inclusão:

  c_codmod(1)           TYPE c                      VALUE 'E',

  c_codmod_remessa(1)   TYPE c                      VALUE 'F',

  c_programa            TYPE sy-cprog          VALUE '/PWS/SAPMZYCB035',

  c_embarque            TYPE feld-name              VALUE 'EMBARQUE',

  c_remessa             TYPE feld-name              VALUE 'REMESSA',

  c_flag_embarque(1)    TYPE c                      VALUE 'E',

  c_flag_remessa(1)     TYPE c                      VALUE 'R',

  c_transacao_a         TYPE sy-tcode          VALUE '/PWS/ZYCB035_A',

  c_transacao_c         TYPE sy-tcode          VALUE '/PWS/ZYCB035_C',

  c_transacao_e         TYPE sy-tcode          VALUE '/PWS/ZYCB035_E',

  c_rel_contabil        TYPE sy-cprog          VALUE '/PWS/ZYGLR040',

  c_mensagem(13)        TYPE c                 VALUE 'ITAB_MENSAGEM',

  c_alterado(1)         TYPE c                      VALUE 'A',

  c_eliminado(1)        TYPE c                      VALUE 'D',

  c_novo(1)             TYPE c                      VALUE 'N',

  c_grupo_mensagem      TYPE smesg-arbgb            VALUE '/PWS/ZYCBM',

  c_ktosl_liq_and       TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_ktosl_cliente       TYPE /pws/zyglt321-ktosl    VALUE 'FTE',

  c_ktosl_ordem         TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_ktosl_associa       TYPE /pws/zyglt321-ktosl    VALUE 'TRE',

  c_ktosl_remessa       TYPE /pws/zyglt321-ktosl    VALUE 'RCF',

  c_codeven_liq_and     TYPE /pws/zyglt321-codeven  VALUE '023',

  c_codeven_cliente     TYPE /pws/zyglt321-codeven  VALUE '010',

  c_codeven_ordem       TYPE /pws/zyglt321-codeven  VALUE '030',

  c_codeven_associa     TYPE /pws/zyglt321-codeven  VALUE '031',

  c_codeven_associa_rem TYPE /pws/zyglt321-codeven  VALUE '022',

  c_codeven_remessa     TYPE /pws/zyglt321-codeven  VALUE '003R',

  c_tp_comp_assoc       TYPE /pws/zycbt228-tp_docto VALUE 'A',

  c_tp_desm_cliente     TYPE /pws/zycbt228-tp_docto VALUE 'C',

  c_tp_desm_liq_and     TYPE /pws/zycbt228-tp_docto VALUE 'L',

  c_tp_desm_ordem       TYPE /pws/zycbt228-tp_docto VALUE 'O',

  c_modo_bloqueio       TYPE enqmode                VALUE 'E',

  c_id_remessa(13)      TYPE c                 VALUE '/PWS/ZYCBP377'.

* << Fim da inclusão

TYPES:

  BEGIN OF t_s_controle,

    parametros_carregados(1) TYPE c,

    limpa_parametros(1)      TYPE c,

    constantes_carregadas(1) TYPE c,

    mensagem_carregada(1)    TYPE c,

    nivel_tela(3)            TYPE c,

    nivel_item(3)            TYPE c,

    edicao(1)                TYPE c,

    linhas                   TYPE sy-srows,

...

 

...

  BEGIN OF t_s_drilldown,

    field    LIKE screen-name,

    tcode    TYPE tstc-tcode,

    form     TYPE rseur-tdcompont,

    first(1) TYPE c,

    param    TYPE t_t_parameter,

  END OF t_s_drilldown,

  t_t_drilldown TYPE SORTED TABLE OF t_s_drilldown

    WITH UNIQUE KEY field,

  BEGIN OF t_s_mensagem,

* >> Início da exclusão:

    bukrs    TYPE /pws/zycbt228-bukrs,

    nrseq    TYPE /pws/zycbt229-nrseq,

    nrinvoic TYPE /pws/zycbt227-nrinvoic,

    nrparcf  TYPE /pws/zycbt227-nrparcf,

    gsberf   TYPE /pws/zycbt227-gsberf,

    belnr    TYPE /pws/zycbt228-belnr,

    dtcont   TYPE d,

    tpmsg    TYPE /pws/zycbt032-tpmsg,

    msg      TYPE /pws/zycbt032-msg,

* << Fim da exclusão

* >> Início da inclusão:

    bukrs         TYPE /pws/zycbt228-bukrs,

    nrseq         TYPE /pws/zycbt228-nrseq,

    nrseq_remessa TYPE /pws/zycbt230-nrseq_remessa,

    nrinvoic      TYPE /pws/zycbt228-nrinvoic,

    nrparcf       TYPE /pws/zycbt228-nrparcf,

    gsberf        TYPE /pws/zycbt228-gsberf,

    belnr         TYPE /pws/zycbt228-belnr,

    dtcont        TYPE d,

    tpmsg         TYPE /pws/zycbt032-tpmsg,

    msg           TYPE /pws/zycbt032-msg,

* << Fim da inclusão

  END OF t_s_mensagem,

  t_t_mensagem TYPE STANDARD TABLE OF t_s_mensagem

    WITH NON-UNIQUE DEFAULT KEY,

  t_t_dynpread TYPE STANDARD TABLE OF dynpread

    WITH NON-UNIQUE DEFAULT KEY.

TABLES:

  /pws/zycbe227a,

  /pws/zycbe228a,

  /pws/zycbe229a.

DATA:

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYGLR040

 

* Criação do relatório /PWS/ZYGLR040 na classe /PWS/ZYGL

 

*-----------------------------------------------------------------------

* PROCWORK Software

* Produto  : Pw.CE - /PWS/ZYGLR038

* Módulo   : CB - Câmbio Exportação

* Descrição: Impressão de erros de contabilização do programa

* Help Desk: (0XX11) 5504-0270

*-----------------------------------------------------------------------

* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA

*-----------------------------------------------------------------------

* Chamado      Data         Descrição

*-----------------------------------------------------------------------

* 318807       01/09/2006   Codificação inicial

*-----------------------------------------------------------------------

REPORT /pws/zyglr038 MESSAGE-ID /pws/zycbm.

 

* Declaração de constantes

CONSTANTS:

  c_icon         TYPE lvc_s_fcat-ref_table VALUE 'ICON',

  c_zycbt228     TYPE lvc_s_fcat-ref_table VALUE '/PWS/ZYCBT228',

  c_zycbt230     TYPE lvc_s_fcat-ref_table VALUE '/PWS/ZYCBT230',

  c_zycbt032     TYPE lvc_s_fcat-ref_table VALUE '/PWS/ZYCBT032',

  c_sucesso      TYPE icon-name            VALUE 'ICON_LED_GREEN',

  c_informacao   TYPE icon-name            VALUE 'ICON_LED_YELLOW',

  c_aviso        TYPE icon-name            VALUE 'ICON_LED_YELLOW',

  c_erro         TYPE icon-name            VALUE 'ICON_LED_RED',

  c_tabela(13)   TYPE c                    VALUE 'ITAB_MENSAGEM',

  c_mensagem(11) TYPE c                    VALUE 'I_MENSAGEM-'.

 

* Declaração de tipos

TYPES:

  BEGIN OF t_s_mensagem,

    bukrs         TYPE /pws/zycbt228-bukrs,

    nrseq         TYPE /pws/zycbt228-nrseq,

    nrseq_remessa TYPE /pws/zycbt230-nrseq_remessa,

    nrinvoic      TYPE /pws/zycbt228-nrinvoic,

    nrparcf       TYPE /pws/zycbt228-nrparcf,

    gsberf        TYPE /pws/zycbt228-gsberf,

    belnr         TYPE /pws/zycbt228-belnr,

    dtcont        TYPE d,

    tpmsg         TYPE /pws/zycbt032-tpmsg,

    msg           TYPE /pws/zycbt032-msg,

  END OF t_s_mensagem,

  BEGIN OF t_s_dados,

    icone         TYPE icon-id,

    bukrs         TYPE /pws/zycbt228-bukrs,

    nrseq         TYPE /pws/zycbt228-nrseq,

    nrseq_remessa TYPE /pws/zycbt230-nrseq_remessa,

    nrinvoic      TYPE /pws/zycbt228-nrinvoic,

    nrparcf       TYPE /pws/zycbt228-nrparcf,

    gsberf        TYPE /pws/zycbt228-gsberf,

    belnr         TYPE /pws/zycbt228-belnr,

    dtcont        TYPE d,

    msg           TYPE /pws/zycbt032-msg,

  END OF t_s_dados,

  BEGIN OF t_s_drilldown,

    field     LIKE screen-name,

    tcode     TYPE tstc-tcode,

    tpara     TYPE tpara-paramid,

    bukrs(01) TYPE c,

    gjahr(01) TYPE c,

    first(01) TYPE c,

  END OF t_s_drilldown,

  t_t_mensagem  TYPE TABLE OF t_s_mensagem WITH DEFAULT KEY,

  t_t_dados     TYPE TABLE OF t_s_dados WITH DEFAULT KEY,

  t_t_drilldown TYPE SORTED TABLE OF t_s_drilldown

    WITH UNIQUE KEY field.

 

*---------------------------------------------------------------------*

*       CLASS CL_DRILLDOWN DEFINITION

*---------------------------------------------------------------------*

*       ........                                                      *

*---------------------------------------------------------------------*

CLASS cl_drilldown DEFINITION FINAL.

  PUBLIC SECTION.

    METHODS:

      adiciona_drilldown

        IMPORTING

          value(i_drilldown) TYPE t_s_drilldown,

      executa_drilldown

        IMPORTING

          value(i_field)    TYPE t_s_drilldown-field

          value(i_mensagem) TYPE t_s_mensagem.

  PROTECTED SECTION.

    DATA:

      itab_drilldown TYPE t_t_drilldown.

ENDCLASS.

*----------------------------------------------------------------------*

*       CLASS cl_event_handler DEFINITION

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

CLASS cl_event_handler DEFINITION FINAL.

  PUBLIC SECTION.

    METHODS:

      constructor

        IMPORTING

          value(i_drilldown) TYPE REF TO cl_drilldown,

      handle_hotspot_click

        FOR EVENT hotspot_click OF cl_gui_alv_grid

        IMPORTING

          e_row_id

          e_column_id

          es_row_no.

  PROTECTED SECTION.

    DATA:

      o_drilldown TYPE REF TO cl_drilldown.

ENDCLASS.                    "cl_event_handler DEFINITION

*----------------------------------------------------------------------*

*       CLASS cl_relatorio_alv DEFINITION

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

CLASS cl_relatorio_alv DEFINITION.

  PUBLIC SECTION.

    METHODS:

      constructor

        IMPORTING

          value(i_itab_mensagem) TYPE t_t_mensagem,

      exibe_relatorio.

  PROTECTED SECTION.

    METHODS:

      transfere_dados

        IMPORTING

          value(i_itab_mensagem) TYPE t_t_mensagem,

      monta_layout FINAL,

      monta_catalogo_campos FINAL.

    DATA:

      o_drilldown     TYPE REF TO cl_drilldown,

      o_event_handler TYPE REF TO cl_event_handler,

      o_dock          TYPE REF TO cl_gui_docking_container,

      o_alv_grid      TYPE REF TO cl_gui_alv_grid,

      itab_dados      TYPE t_t_dados,

      itab_fieldcat   TYPE lvc_t_fcat,

      wa_layout       TYPE lvc_s_layo.

ENDCLASS.                    "cl_relatorio_alv DEFINITION

 

* Declaração dos objetos de dados globais

DATA:

  ok_code         TYPE sy-ucomm,

  itab_mensagem   TYPE t_t_mensagem,

  o_relatorio_alv TYPE REF TO cl_relatorio_alv.

 

START-OF-SELECTION.

  REFRESH itab_mensagem.

  IMPORT itab_mensagem

    FROM MEMORY ID c_tabela.

  CALL SCREEN '0500'.

*&---------------------------------------------------------------------*

*&      Module  screen  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE screen OUTPUT.

  SET PF-STATUS 'SCREEN_0500'.

  CREATE OBJECT o_relatorio_alv

      EXPORTING

        i_itab_mensagem = itab_mensagem.

  CALL METHOD o_relatorio_alv->exibe_relatorio.

ENDMODULE.                 " screen  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  user_command  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE user_command INPUT.

  CASE ok_code.

    WHEN 'BACK'.

      LEAVE TO SCREEN 0.

  ENDCASE.

ENDMODULE.                 " user_command  INPUT

*---------------------------------------------------------------------*

*       CLASS CL_DRILLDOWN IMPLEMENTATION

*---------------------------------------------------------------------*

*       ........                                                      *

*---------------------------------------------------------------------*

CLASS cl_drilldown IMPLEMENTATION.

  METHOD adiciona_drilldown.

    INSERT i_drilldown INTO TABLE itab_drilldown.

  ENDMETHOD.

  METHOD executa_drilldown.

    DATA:

      v_field TYPE t_s_drilldown-field,

      v_gjahr TYPE bseg-gjahr.

 

    FIELD-SYMBOLS:

      <fs_drilldown> TYPE t_s_drilldown,

      <fs_tpara>     TYPE ANY.

 

    READ TABLE itab_drilldown

      WITH TABLE KEY field = i_field

      ASSIGNING <fs_drilldown>.

    IF sy-subrc = 0.

      AUTHORITY-CHECK

        OBJECT 'S_TCODE' ID 'TCD' FIELD <fs_drilldown>-tcode.

      IF sy-subrc = 0.

        CONCATENATE c_mensagem i_field INTO v_field.

        ASSIGN (v_field) TO <fs_tpara>.

        CHECK NOT <fs_tpara> IS INITIAL.

        SET PARAMETER ID <fs_drilldown>-tpara FIELD <fs_tpara>.

        IF <fs_drilldown>-bukrs = 'X'.

          SET PARAMETER ID 'BUK' FIELD i_mensagem-bukrs.

        ENDIF.

        IF <fs_drilldown>-gjahr = 'X'.

          CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

               EXPORTING

                    v_bukrs                = i_mensagem-bukrs

                    v_date                 = i_mensagem-dtcont

               IMPORTING

                    v_year                 = v_gjahr

               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.

          IF sy-subrc = 0.

            SET PARAMETER ID 'GJR' FIELD v_gjahr.

          ENDIF.

        ENDIF.

        IF <fs_drilldown>-first = 'X'.

          CALL TRANSACTION <fs_drilldown>-tcode

            AND SKIP FIRST SCREEN.

        ELSE.

          CALL TRANSACTION <fs_drilldown>-tcode.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDMETHOD.

ENDCLASS.

*----------------------------------------------------------------------*

*       CLASS cl_event_handler IMPLEMENTATION

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

CLASS cl_event_handler IMPLEMENTATION.

  METHOD constructor.

    o_drilldown = i_drilldown.

  ENDMETHOD.

  METHOD handle_hotspot_click.

    DATA:

      v_field TYPE t_s_drilldown-field.

    FIELD-SYMBOLS:

      <fs_wa_mensagem> TYPE t_s_mensagem.

 

    READ TABLE itab_mensagem

      INDEX es_row_no-row_id

      ASSIGNING <fs_wa_mensagem>.

    IF <fs_wa_mensagem> IS ASSIGNED.

      v_field = e_column_id-fieldname.

      CALL METHOD o_drilldown->executa_drilldown

         EXPORTING

           i_field    = v_field

           i_mensagem = <fs_wa_mensagem>.

    ENDIF.

  ENDMETHOD.                    "handle_hotspot_click

ENDCLASS.                    "cl_event_handler IMPLEMENTATION

*----------------------------------------------------------------------*

*       CLASS cl_relatorio_alv IMPLEMENTATION

*----------------------------------------------------------------------*

*

*----------------------------------------------------------------------*

CLASS cl_relatorio_alv IMPLEMENTATION.

  METHOD constructor.

    DATA: wa_drilldown TYPE t_s_drilldown.

 

    CALL METHOD: transfere_dados

      EXPORTING

        i_itab_mensagem = i_itab_mensagem,

      monta_layout,

      monta_catalogo_campos.

 

    IF cl_gui_alv_grid=>offline( ) IS INITIAL.

      CREATE OBJECT o_alv_grid

        EXPORTING

          i_parent          = cl_gui_container=>screen0

        EXCEPTIONS

          error_cntl_create = 1

          error_cntl_init   = 2

          error_cntl_link   = 3

          error_dp_create   = 4

          others            = 5.

      IF sy-subrc <> 0.

      ENDIF.

 

      wa_drilldown-field = 'BELNR'.

      wa_drilldown-tcode = 'FB03'.

      wa_drilldown-tpara = 'BLN'.

      wa_drilldown-bukrs = 'X'.

      wa_drilldown-gjahr = 'X'.

      wa_drilldown-first = 'X'.

      CREATE OBJECT o_drilldown.

      CALL METHOD o_drilldown->adiciona_drilldown

        EXPORTING

          i_drilldown = wa_drilldown.

      CREATE OBJECT o_event_handler

        EXPORTING

          i_drilldown = o_drilldown.

      SET HANDLER o_event_handler->handle_hotspot_click

        FOR o_alv_grid.

    ELSE.

      CREATE OBJECT o_alv_grid

        EXPORTING

          i_parent        = o_dock

      EXCEPTIONS

        error_cntl_create = 1

        error_cntl_init   = 2

        error_cntl_link   = 3

        error_dp_create   = 4

        others            = 5.

      IF sy-subrc <> 0.

      ENDIF.

    ENDIF.

  ENDMETHOD.                    "constructor

  METHOD exibe_relatorio.

    CALL METHOD o_alv_grid->set_table_for_first_display

      EXPORTING

        i_buffer_active               = 'X'

        is_layout                     = wa_layout

      CHANGING

        it_outtab                     = itab_dados

        it_fieldcatalog               = itab_fieldcat

      EXCEPTIONS

        invalid_parameter_combination = 1

        program_error                 = 2

        too_many_lines                = 3

        OTHERS                        = 4.

    IF sy-subrc <> 0.

    ENDIF.

  ENDMETHOD.                    "EXIBE_RELATORIO

  METHOD transfere_dados.

    DATA:

      wa_dados TYPE t_s_dados.

    FIELD-SYMBOLS:

      <fs_mensagem> TYPE t_s_mensagem,

      <fs_icone>    TYPE icon-name.

 

    LOOP AT i_itab_mensagem ASSIGNING <fs_mensagem>.

      MOVE-CORRESPONDING <fs_mensagem> TO wa_dados.

      CASE <fs_mensagem>-tpmsg.

        WHEN 'S'.

          ASSIGN c_sucesso TO <fs_icone>.

        WHEN 'I'.

          ASSIGN c_informacao TO <fs_icone>.

        WHEN 'W'.

          ASSIGN c_aviso TO <fs_icone>.

        WHEN 'E'.

          ASSIGN c_erro TO <fs_icone>.

      ENDCASE.

      IF <fs_icone> IS ASSIGNED.

        CALL FUNCTION 'ICON_CHECK'

             EXPORTING

                  icon_name      = <fs_icone>

             IMPORTING

                  icon_id        = wa_dados-icone

             EXCEPTIONS

                  icon_not_found = 1

                  OTHERS         = 2.

        IF sy-subrc <> 0.

        ENDIF.

      ENDIF.

      APPEND wa_dados TO itab_dados.

    ENDLOOP.

  ENDMETHOD.                    "transfere_dados

  METHOD monta_layout.

    wa_layout-grid_title = 'Relatório de Contabilizações'(t01).

    wa_layout-cwidth_opt = 'X'.

    wa_layout-zebra      = 'X'.

    wa_layout-no_hgridln = 'X'.

    wa_layout-no_vgridln = 'X'.

    wa_layout-no_toolbar = 'X'.

    wa_layout-no_rowmark = 'X'.

  ENDMETHOD.                    "monta_layout

  METHOD monta_catalogo_campos.

    DATA:

      wa_fieldcat     TYPE lvc_s_fcat,

      v_nrseq_remessa TYPE t_s_mensagem-nrseq_remessa.

 

    wa_fieldcat-fieldname = 'ICONE'.

    wa_fieldcat-ref_table = c_icon.

    wa_fieldcat-ref_field = 'ID'.

    wa_fieldcat-coltext   = 'Icone'(c01).

    wa_fieldcat-seltext   = 'Icone'(c01).

    wa_fieldcat-just      = 'C'.

    wa_fieldcat-icon      = 'X'.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'BUKRS'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'Empresa'(c02).

    wa_fieldcat-seltext   = 'Empresa'(c02).

    wa_fieldcat-just      = 'C'.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'NRSEQ'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'No. Ordem Pagto.'(c03).

    wa_fieldcat-seltext   = 'No. Ordem Pagto.'(c03).

    wa_fieldcat-just      = 'C'.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'NRSEQ_REMESSA'.

    wa_fieldcat-ref_table = c_zycbt230.

    wa_fieldcat-coltext   = 'No. Remessa'(c11).

    wa_fieldcat-seltext   = 'No. Remessa'(c11).

    wa_fieldcat-just      = 'C'.

    LOOP AT itab_mensagem

      TRANSPORTING NO FIELDS WHERE nrseq_remessa <> v_nrseq_remessa.

      EXIT.

    ENDLOOP.

    IF sy-subrc <> 0.

      wa_fieldcat-no_out = 'X'.

    ENDIF.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'NRINVOIC'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'No. Fatura'(c05).

    wa_fieldcat-seltext   = 'No. Fatura'(c05).

    wa_fieldcat-just      = 'C'.

    READ TABLE itab_fieldcat

      WITH KEY

        fieldname = 'NRSEQ_REMESSA'

        no_out    = space

      TRANSPORTING NO FIELDS.

    IF sy-subrc = 0.

      wa_fieldcat-no_out = 'X'.

    ENDIF.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'NRPARCF'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'No. Parc. Fatura'(c06).

    wa_fieldcat-seltext   = 'No. Parc. Fatura'(c06).

    wa_fieldcat-just      = 'C'.

    READ TABLE itab_fieldcat

      WITH KEY

        fieldname = 'NRSEQ_REMESSA'

        no_out    = space

        TRANSPORTING NO FIELDS.

    IF sy-subrc = 0.

      wa_fieldcat-no_out = 'X'.

    ENDIF.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'GSBERF'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'Divisão'(c07).

    wa_fieldcat-seltext   = 'Divisão'(c07).

    wa_fieldcat-just      = 'C'.

    READ TABLE itab_fieldcat

      WITH KEY

        fieldname = 'NRSEQ_REMESSA'

        no_out    = space

        TRANSPORTING NO FIELDS.

    IF sy-subrc = 0.

      wa_fieldcat-no_out = 'X'.

    ENDIF.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'BELNR'.

    wa_fieldcat-ref_table = c_zycbt228.

    wa_fieldcat-coltext   = 'Documento Contábil'(c08).

    wa_fieldcat-seltext   = 'Documento Contábil'(c08).

    wa_fieldcat-just      = 'C'.

    wa_fieldcat-emphasize = 'C41'.

    wa_fieldcat-hotspot   = 'X'.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'DTDOCTO'.

    wa_fieldcat-inttype   = 'D'.

    wa_fieldcat-outputlen = '10'.

    wa_fieldcat-coltext   = 'Data Contabilização'(c09).

    wa_fieldcat-seltext   = 'Data Contabilização'(c09).

    wa_fieldcat-just      = 'C'.

    wa_fieldcat-no_out    = 'X'.

    APPEND wa_fieldcat TO itab_fieldcat.

 

    CLEAR wa_fieldcat.

    wa_fieldcat-fieldname = 'MSG'.

    wa_fieldcat-ref_table = c_zycbt032.

    wa_fieldcat-coltext   = 'Mensagem'(c10).

    wa_fieldcat-seltext   = 'Mensagem'(c10).

    APPEND wa_fieldcat TO itab_fieldcat.

  ENDMETHOD.                    "monta_catalogo_campos

ENDCLASS.                    "cl_relatorio_alv IMPLEMENTATION

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCA109

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 179

 

Texto: (32 caracteres)

"Esta remessa já está associada -"

 

Comprimento máximo: 32

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 180

 

Texto: (29 caracteres)

"permitida somente a exibição."

 

Comprimento máximo: 29

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 181

 

Texto: (36 caracteres)

"não é permitida a geração de boleto."

 

Comprimento máximo: 36

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCB035

 

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

Modificado símbolo de texto:

 

Idioma: PT

 

Símbolo: M06

 

Texto: (7 caracteres)

"remessa"

 

Comprimento máximo: 12

 

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

Modificado símbolo de texto:

 

Idioma: PT

 

Símbolo: M32

 

Texto: (16 caracteres)

"deve ser o mesmo"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M48

 

Texto: (38 caracteres)

"Deseja salvar as alterações efetuadas?"

 

Comprimento máximo: 38

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M49

 

Texto: (43 caracteres)

"Não existem ordens de pagamento associadas."

 

Comprimento máximo: 43

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M50

 

Texto: (27 caracteres)

"já está associada a remessa"

 

Comprimento máximo: 27

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M51

 

Texto: (50 caracteres)

"Desmembramento do cliente (Remessa de recebimento)"

 

Comprimento máximo: 50

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: M52

 

Texto: (44 caracteres)

"Clearing do cliente (Remessa de recebimento)"

 

Comprimento máximo: 44

 

 

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

Modificações efetuadas em SHLD /PWS/ZYCAA025

 

* Inclusão do campo SLD_ASSOCIAR logo após o campo VLME (PosL = 11, ISel = 11)

 

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

Modificações efetuadas em SHLD /PWS/ZYCAA026

 

* Modificar a exit para ajuda de pesquisa de /PWS/ZYCAA025 para /PWS/ZYCAA026

 

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

Modificações efetuadas em TABD /PWS/ZYCBE124

 

* Inclusão dos campos: (AO FINAL DA ESTRUTURA)

 

Componente      TipoComponente

SLD_ASSOCIAR    /PWS/ZYGLL1347

DTASSOC         /PWS/ZYCBL475

BELNR_ASSOC     BELNR_D

 

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

Modificações efetuadas em TABD /PWS/ZYCBT124

 

* Inclusão dos campos: (AO FINAL DA TABELA)

 

Componente      TipoComponente

SLD_ASSOCIAR    /PWS/ZYGLL1347

DTASSOC         /PWS/ZYCBL475

BELNR_ASSOC     BELNR_D

 

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

Modificações efetuadas em TABD /PWS/ZYCBT230

 

* Inclusão do campo (LOGO APÓS O CAMPO GJAHR)

 

Componente   TipoComponente

BUDAT        BUDAT

 

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

Modificações efetuadas em VIED /PWS/ZYCAV004

 

* Inclusão do campo (LOGO APÓS O CAMPO VLME)

 

Camp.Visão

 

SLD_ASSOCIAR

 

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

Modificações efetuadas em VIED /PWS/ZYCAV005

 

* Inclusão do campo (LOGO APÓS O CAMPO VLME)

 

Camp.Visão

 

SLD_ASSOCIAR