CE PLUS - Nota 008164

Módulo: CÂMBIO EXPORTAÇÃO

Funcionalidade: Vinculação

Data/Hora da Publicação: 11/03/2009 00:00:00

Data/Hora Última Alteração: 18/02/2011 17:58:03

Descrição da Nota: DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURITIZAÇÃO

Sintoma

Desenvolvimento adicional: Campo "Data de crédito no exterior" na vinculação para os contratos de

Pré Pagamento e Securitização

 

 

Solução

Desenvolvimento adicional: Campo "Data de crédito no exterior" na vinculação para os contratos de

Pré Pagamento e Securitização

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

VINCULAÇÃO - ESTORNO DE VINCULAÇÃO COM DATA POSTERIOR A ATUAL.

LIQUIDAÇÃO DE ACC COM PRÉ PAGTO - PROBLEMA C/NUMERO DE PARCELA

DESENVOLVIMENTO ADICIONAL - FLEXIBILIZAR CONTA BANCO NA DEVOLUÇÃO.

LIQUIDAÇÃO - MENSAGEM FALTA DATA DE PRORROGAÇÃO INCORRETA

VINCULAÇÃO- DEVOLUÇÃO - PASTA DEVOLUÇÃO - ABRIR CAMPO BANCO

VINCULAÇÃO - VERIFICAÇÃO DOCUMENTOS COMPENSADOS - DOCTO. CONTRATO

LIQUIDAÇÃO - DESMEMBRAMENTO LIQUIDAÇÃO EM ANDAMENTO PARCIAL-ZFBDT/ZTERM

LIQUIDAÇÃO COM ARBITRAGEM - RECALCULA VALOR VINCULADO INCORRETAMENTE

VINCULAÇÃO - VERIFICAÇÃO DE DOCUMENTOS COMPENSADOS

CODE INSPECTOR(ROTINA MENSAL)

CAPTAÇÃO HISTÓRICO CONT.SLD A PAGAR E DOC LIQ ATUALIZAM C/STATUS C T006

ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE

PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

ROTINA MENSAL EXPORTAÇÃO - ANO FISCAL NAS CONTABILIZAÇÕES

COMPLEMENTO DO BOLETO - CONTABILIZAÇÃO-PERIODO/ANO FISCAL

DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFORMANCE

FLEXIBILIZAR AS CONTAS DE BANCO NO PROGRAMA DE CAPTAÇÃO

VINCULAÇÃO - VERIFICAÇÃO DE DOCUMENTO COMPENSADO - PT ST -DATA INCORRETA

COMPLEMENTO DO BOLETO EM PAGAMENTO ANTECIPADO -PERIODO FECHADO INCORRETO

Informações Complementares

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

Nota Número 08164 Data: 11/03/2009 Hora: 15:43:44

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

 

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

Nota Número              : 08164

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00088

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

Referência às notas relacionadas:

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

 

04930  - 00001 - 7.0    - 00003  - CODE INSPECTOR(ROTINA MENSAL)

04936  - 00002 - 7.0    - 00003  - VINCULAÇÃO - ESTORNO DE VINCULAÇÃO COM DATA POSTERIOR A ATUAL.

05049  - 00003 - 7.0    - 00003  - VINCULAÇÃO - VERIFICAÇÃO DE DOCUMENTOS COMPENSADOS

06267  - 00004 - 7.0    - 00005  - CAPTAÇÃO HISTÓRICO CONT.SLD A PAGAR E DOC LIQ ATUALIZAM C/STATUS

07111  - 00005 - 7.0    - 00006  - ROTINA MENSAL EXPORTAÇÃO - ACERTOS SEPARAÇÃO ACC/ACE

07204  - 00006 - 7.0    - 00006  - VINCULAÇÃO - VERIFICAÇÃO DOCUMENTOS COMPENSADOS - DOCTO. CONTRATO

07549  - 00007 - 7.0    - 00007  - PROBLEMA NO PROGRAMA DE CAPTAÇÃO ( /PWS/ZYCB001 )

07760  - 00008 - 7.0    - 00007  - DA-LIQUIDAÇÃO E VINCULAÇÃO LIQ. AUTOMÁT - NORMAL/ARBITRAGEM/PERFO

07765  - 00009 - 7.0    - 00007  - COMPLEMENTO DO BOLETO EM PAGAMENTO ANTECIPADO -PERIODO FECHADO IN

07775  - 00010 - 7.0    - 00007  - LIQUIDAÇÃO COM ARBITRAGEM - RECALCULA VALOR VINCULADO INCORRETAME

07790  - 00011 - 7.0    - 00008  - COMPLEMENTO DO BOLETO - CONTABILIZAÇÃO-PERIODO/ANO FISCAL

07797  - 00012 - 7.0    - 00008  - ROTINA MENSAL EXPORTAÇÃO - ANO FISCAL NAS CONTABILIZAÇÕES

07801  - 00013 - 7.0    - 00008  - LIQUIDAÇÃO - MENSAGEM FALTA DATA DE PRORROGAÇÃO INCORRETA

07821  - 00014 - 7.0    - 00008  - LIQUIDAÇÃO - DESMEMBRAMENTO LIQUIDAÇÃO EM ANDAMENTO PARCIAL-ZFBDT

07829  - 00015 - 7.0    - 00008  - VINCULAÇÃO - VERIFICAÇÃO DE DOCUMENTO COMPENSADO - PT ST -DATA IN

07834  - 00016 - 7.0    - 00008  - FLEXIBILIZAR AS CONTAS DE BANCO NO PROGRAMA DE CAPTAÇÃO

07892  - 00017 - 7.0    - 00008  - DESENVOLVIMENTO ADICIONAL - FLEXIBILIZAR CONTA BANCO NA DEVOLUÇÃO

07940  - 00018 - 7.0    - 00008  - VINCULAÇÃO- DEVOLUÇÃO - PASTA DEVOLUÇÃO - ABRIR CAMPO BANCO

08096  - 00019 - 7.0    - 00008  - LIQUIDAÇÃO DE ACC COM PRÉ PAGTO - PROBLEMA C/NUMERO DE PARCELA

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

DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURITIZAÇÃO

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

Palavras Chave:

DATA CREDITO EXTERIOR VINCULAÇÃO LIQUIDAÇÃO ROTINA MENSAL

PRÉ-PAGAMENTO SECURITIZAÇÃO CAPTAÇÃO

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

Objetos da nota:

DTEL /PWS/ZYCBL485

DYNP /PWS/SAPMZYCB004                        0100

DYNP /PWS/SAPMZYCB009                        0100

FUNC /PWS/ZYCB_TRANSACAO_F_30_P

FUNC /PWS/ZYCB_TRANSACAO_F_30_W

REPS /PWS/LZYCBGF2F01

REPS /PWS/LZYGLGF2F01

REPS /PWS/MZYCB001F01

REPS /PWS/MZYCB001F04

REPS /PWS/MZYCB001O01

REPS /PWS/MZYCB001TOP

REPS /PWS/MZYCB004F01

REPS /PWS/MZYCB004F02

REPS /PWS/MZYCB004F03

REPS /PWS/MZYCB004I01

REPS /PWS/MZYCB004O01

REPS /PWS/MZYCB004TOP

REPS /PWS/MZYCB004X01

REPS /PWS/MZYCB009F02

REPS /PWS/MZYCB009F03

REPS /PWS/MZYCB009F04

REPS /PWS/MZYCB009F05

REPS /PWS/MZYCB009F10

REPS /PWS/MZYCB009I01

REPS /PWS/MZYCB009O01

REPS /PWS/MZYCB009TOP

REPS /PWS/ZYCBI003

REPS /PWS/ZYCBR003

TABD /PWS/ZYCBE005

TABD /PWS/ZYCBT005

 

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

Modificações efetuadas em DTEL /PWS/ZYCBL485

 

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

Elemento de dados incluído: /PWS/ZYCBL485

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (11 caracteres), idioma: PT

"Deduz Juros"

Categoria de dados: Entrada direta de categoria

Categoria de dados: CHAR

Comprimento: 1

Decimais: 1

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (10 caracteres), idioma: PT

"Ded. Juros"

Comprimento máximo do denominador médio: 15

Denominador médio incluído (11 caracteres), idioma: PT

"Deduz Juros"

Comprimento máximo do denominador longo: 20

Denominador longo incluído (11 caracteres), idioma: PT

"Deduz Juros"

Comprimento máximo do título: 11

Título incluído (11 caracteres), idioma: PT

"Deduz Juros"

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB004                        0100

 

 

Solicitar arquivo para upload desta tela com a equipe de desenvolvimento - produto

pw.CE - câmbio - 11 5504 0170

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCB009                        0100

 

 

Solicitar arquivo para upload desta tela com a equipe de desenvolvimento - produto

pw.CE - câmbio - 11 5504 0170

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_P

 

...

    v_campo_tela         TYPE c,

    v_zbd1t(3),

    v_umskz              LIKE /pws/zycbe033-umskz,

    v_newbs              LIKE /pws/zycbe033-newbs,

    v_ulsk1              TYPE t042-ulsk1,

    v_umsks              TYPE t074u-umsks,

    v_tela               LIKE sy-dynnr,

    v_newum              LIKE rf05a-newum,

    v_programa(40)       TYPE c VALUE 'SAPMF05A',

    v_zfbdt_tela(1)      TYPE c.

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

  DATA:  v_n_budat       TYPE /pws/zycbt006-dtpagto.

* << Fim da inclusão

  TABLES: tcurx,

          /pws/zycbt089,

          t042,

          rf05a.

  DATA: itab_t041t       LIKE t041t OCCURS 0 WITH HEADER LINE.

  DATA: t_telas TYPE rpy_dyfatc OCCURS 0 WITH HEADER LINE.

  WRITE:

    c_vl_min TO v_vl_min,

    c_vl_max TO v_vl_max.

  SELECT SINGLE selps FROM t021r

...

 

...

      PERFORM check_periodo USING    '+'

                                     v_monat

                                     v_bukrs

                                     v_gjahr

                            CHANGING v_budat

                                     v_ok.

      MOVE v_budat+6(4) TO v_gjahr.

      MOVE v_budat+3(2) TO v_monat.

    ENDWHILE.

    MOVE v_monat+1(2) TO v_periodo.

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

    import v_n_budat from memory id 'N_BUDAT'.

    if not v_n_budat is initial and

       v_n_budat ne t_dados-budat.

      t_dados-budat = v_n_budat.

      modify t_dados index 1.

    endif.

* << Fim da inclusão

    PERFORM bdc_screen USING 'SAPMF05A' '0122'.

    PERFORM bdc_field USING:

            'BKPF-BLDAT'     v_bldat,

            'BKPF-BLART'     t_dados-blart,

            'BKPF-BUKRS'     t_dados-bukrs,

            'BKPF-BUDAT'     v_budat,

            'BKPF-WAERS'     t_dados-waers,

            'BKPF-KURSF'     v_kursf,

            'BKPF-BKTXT'     t_dados-bktxt,

          'RF05A-AUGTX'    t_dados-augtx,

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_W

 

...

          tabela LIKE /pws/zycbe033-tabela,

          cpochv LIKE /pws/zycbe033-cpochv,

          tcode  LIKE /pws/zycbe033-tcode,

          agkoa  LIKE /pws/zycbe033-agkoa,

          agkon  LIKE /pws/zycbe033-agkon,

          agums  LIKE /pws/zycbe033-agums,

          shkzg  LIKE /pws/zycbe033-shkzg,

        END OF itab_parts.

  DATA: itab_t041t LIKE t041t OCCURS 0 WITH HEADER LINE.

  DATA: wa_zycbt089 LIKE /pws/zycbt089.

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

  data:  v_n_budat       type /pws/zycbt006-dtpagto.

* << Fim da inclusão

  WRITE:

    c_vl_min TO v_vl_min,

    c_vl_max TO v_vl_max.

  SELECT SINGLE selps FROM t021r

    INTO  v_xpos1

    WHERE event = 'SL-AG'

      AND feldn = 'BELNR'.

  ADD 1 TO v_xpos1.

  SHIFT v_xpos1 LEFT DELETING LEADING  '0'.

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

...

 

...

    WHILE v_ok EQ 'N'.

    PERFORM check_periodo USING    '+'

                                   t_dados-bukrs

                          CHANGING v_budat

                                   v_ok

                                   v_monat

                                   v_gjahr.

      MOVE v_budat+6(4) TO v_gjahr.

      MOVE v_budat+3(2) TO v_monat.

    ENDWHILE.

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

    import v_n_budat from memory id 'N_BUDAT'.

    if not v_n_budat is initial and

       v_n_budat ne t_dados-budat.

      t_dados-budat = v_n_budat.

      modify t_dados index 1.

    endif.

* << Fim da inclusão

    MOVE v_monat+1(2) TO v_periodo.

    WRITE t_dados-budat TO v_dtdocto.

    IF v_budat NE v_dtdocto.

      SELECT SINGLE datfm FROM usr01 INTO usr01-datfm

                    WHERE bname = sy-uname.

      IF usr01-datfm = 1 OR sy-subrc NE 0.

        CONCATENATE v_budat+6(4) v_budat+3(2) v_budat(2)

                    INTO v_dtlanc.

      ELSE.

        CONCATENATE v_budat+6(4) v_budat(2) v_budat+3(2)

...

 

 

 

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

Modificações efetuadas em REPS /PWS/LZYCBGF2F01

 

...

           IMPORTING

                period              = p_monat

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

    ENDIF.

  ENDWHILE.

  p_novadata = v_novadata.

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

  export v_budat to memory id 'N_BUDAT'.

* << Fim da inclusão

ENDFORM.

FORM entrar_nova_data CHANGING

                            value(p_resposta)

                            value(p_novadata).              "#EC *

  DATA: v_data_ TYPE d.

  WHILE v_data_ IS INITIAL OR

        v_data_ EQ '00000000'.

    IF sy-index > 1.

      MESSAGE i061(/pws/zycbm) WITH text-051.

    ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/LZYGLGF2F01

 

...

           IMPORTING

                period              = p_monat

           EXCEPTIONS

                period_in_not_valid = 1

                period_not_assigned = 2

                version_undefined   = 3

                OTHERS              = 4.

  ENDIF.

 ENDWHILE.

  p_novadata = v_novadata.

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

  export v_budat to memory id 'N_BUDAT'.

* << Fim da inclusão

ENDFORM.

FORM entrar_nova_data CHANGING value(p_resposta)

                               value(p_novadata).

  DATA: v_data_ TYPE d.

  WHILE v_data_ IS INITIAL OR

        v_data_ EQ '00000000'.

    CALL FUNCTION 'TR_POPUP_INPUT_DATE'

         EXPORTING

              iv_title               = text-012

              iv_description1        = text-010

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F01

 

...

  ENDIF.

ENDFORM.

FORM juros.

  DATA : v_nrdias LIKE /pws/zycbt010-nrdias.

  DATA: saldo_inicial LIKE /pws/zycbe001-slpagar.

  DATA: ultimo LIKE /pws/zycbt006-dtpagto.

  CLEAR itab_zycbt010.

  READ TABLE itab_zycbt010 WITH KEY tptxjur = itab_zycbt002-tptxjur.

  v_nrdias = itab_zycbt010-nrdias.

  CLEAR : v_diasj, v_juros.

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

  saldo_inicial = /pws/zycbe001-slpagar.

* << Fim da exclusão

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

  saldo_inicial = /pws/zycbe001-slvinc.

  CLEAR itab_zycbt005l.

  REFRESH itab_zycbt005l.

* << Fim da inclusão

  IF v_line_aux NE v_tabix.

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

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      SELECT *

             FROM /pws/zycbt005

             INTO TABLE itab_zycbt005l

             WHERE nrseqc  = /pws/zycbe001-nrseqc   AND

                  dtpagext >= itab_zycbt002-dtinicio AND

                  dtpagext < itab_zycbt002-dtfinal

             ORDER BY dtpagext DESCENDING.

    ENDIF.

* << Fim da inclusão

    SELECT *

           FROM /pws/zycbt006

           INTO TABLE itab_zycbt006l

           WHERE nrseqc  = /pws/zycbe001-nrseqc   AND

                dtpagto >= itab_zycbt002-dtinicio AND

                dtpagto < itab_zycbt002-dtfinal

           ORDER BY dtpagto DESCENDING.

  ELSE.

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

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      SELECT *

             FROM /pws/zycbt005

             INTO TABLE itab_zycbt005l

             WHERE nrseqc  = /pws/zycbe001-nrseqc   AND

                 dtpagext >= itab_zycbt002-dtinicio AND

                 dtpagext <= itab_zycbt002-dtfinal

             ORDER BY dtpagext DESCENDING.

    ENDIF.

* << Fim da inclusão

    SELECT *

           FROM /pws/zycbt006

           INTO TABLE itab_zycbt006l

           WHERE nrseqc  = /pws/zycbe001-nrseqc   AND

               dtpagto >= itab_zycbt002-dtinicio AND

               dtpagto <= itab_zycbt002-dtfinal

           ORDER BY dtpagto DESCENDING.

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

  ENDIF.

  READ TABLE itab_zycbt005l WITH KEY deduz_juros = 'X'.

  IF sy-subrc = 0.

    ultimo = itab_zycbt002-dtfinal.

    LOOP AT itab_zycbt005l.

      IF itab_zycbt005l-deduz_juros = 'X'.

        v_diasj = ultimo - itab_zycbt005l-dtpagext.

        v_juros = v_juros + (

                  saldo_inicial * itab_zycbt002-txjtotal / 100

                  * v_diasj / v_nrdias ).

        ultimo = itab_zycbt005l-dtpagext.

      ENDIF.

      saldo_inicial = saldo_inicial +

                     ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

    ENDLOOP.

    LOOP AT itab_zycbt005l WHERE dtpagext <= itab_zycbt002-dtinicio.

      saldo_inicial = saldo_inicial -

                     ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

    ENDLOOP.

    v_diasj = ultimo - itab_zycbt002-dtinicio.

    v_juros = v_juros + (

              saldo_inicial * itab_zycbt002-txjtotal / 100

              * v_diasj / v_nrdias ).

  ELSE.

    CLEAR itab_zycbt005l.

    REFRESH itab_zycbt005l.

    saldo_inicial = /pws/zycbe001-slpagar.

    SELECT *

           FROM /pws/zycbt005

           INTO TABLE itab_zycbt005l

           WHERE nrseqc   = /pws/zycbe001-nrseqc   AND

                 dtpagext <= itab_zycbt002-dtinicio.

    IF sy-subrc EQ 0.

      LOOP AT itab_zycbt005l.

        saldo_inicial = saldo_inicial -

                    ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

      ENDLOOP.

      v_diasj = v_dtjuros - itab_zycbt002-dtinicio.

      v_juros = saldo_inicial * itab_zycbt002-txjtotal / 100

                * v_diasj / v_nrdias.

    ELSE.

* << Fim da inclusão

  READ TABLE itab_zycbt006l WITH KEY deduz_juros = 'X'.

  IF sy-subrc = 0.

...

 

...

                 AND gsberf = itab_zycbt006l-gsberf

                 AND dtvincul = itab_zycbt006l-dtvincul

                 AND dtvencto = itab_zycbt006l-dtvencto.

        saldo_inicial = saldo_inicial +

                        ( itab_zycbt006l-vlme * /pws/zycbt005-parid ).

      ENDLOOP.

    ENDIF.

    v_diasj = v_dtjuros - itab_zycbt002-dtinicio.

    v_juros = saldo_inicial * itab_zycbt002-txjtotal / 100

              * v_diasj / v_nrdias.

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

      ENDIF.

* << Fim da inclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  CLEAR itab_zycbt002-vlme.

  itab_zycbt002-vlme = v_juros.

  itab_zycbt002-calc = 'X'.

  MODIFY itab_zycbt002.

  CLEAR /pws/zycbe001-vltotjur.

  LOOP AT itab_zycbt002.

...

 

...

  DATA : v_liquid      LIKE /pws/zycbt006-vlme,

         v_dtcalc      LIKE /pws/zycbt006-dtpagext,

         v_dias        LIKE /pws/zycbt002-nrdias,

         v_nrdias      LIKE /pws/zycbt010-nrdias,

         v_slpagar     LIKE /pws/zycbt006-vlme,

         v_slpgant     LIKE /pws/zycbt006-vlme,

         v_vlme        LIKE /pws/zycbt002-vlme,

         v_vlmetot     LIKE /pws/zycbt002-vlme,

         v_vlfinal     LIKE /pws/zycbt006-vlme,

         v_prim        LIKE /pws/zycbt006-dtpagext,

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

         v_nrparcj_aux LIKE /pws/zycbt002-nrparc.

* << Fim da exclusão

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

         v_nrparcj_aux LIKE /pws/zycbt002-nrparc,

         v_vinc        TYPE c,

         v_valor_vinc  TYPE /pws/zycbt006-vlme.

* << Fim da inclusão

  CLEAR: itab_zycbt010,

         v_slpagar,

         v_vlme,

         v_vlmetot,

         v_vlfinal,

         v_prim.

  READ TABLE itab_zycbt010 WITH KEY tptxjur = itab_zycbt002-tptxjur.

  v_nrdias = itab_zycbt010-nrdias.

  SELECT SINGLE * FROM /pws/zycbt006

                  WHERE nrseqc EQ /pws/zycbe001-nrseqc.

  CLEAR :  v_liquid, v_dias.

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

  CLEAR v_vinc.

  IF sy-subrc NE 0 AND

     ( /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S' ).

    SELECT SINGLE * FROM /pws/zycbt005

                    WHERE nrseqc   EQ /pws/zycbe001-nrseqc

                      AND dtpagext NE space

                      AND dtpagext NE '00000000'.

  ENDIF.

* << Fim da inclusão

  IF sy-subrc EQ 0.

    IF itab_zycbt002j_aux[] IS INITIAL.

      itab_zycbt002j_aux[] = itab_zycbt002[].

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

    ENDIF.

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      SORT itab_zycbt005 BY dtpagext ASCENDING.

      CLEAR: v_prim, v_vlmetot, v_slpagar, v_valor_vinc, v_vlfinal.

      LOOP AT itab_zycbt005 WHERE dtpagext <= itab_zycbt002-dtfinal

                              AND dtpagext NE space

                              AND dtpagext NE '00000000'.

        v_valor_vinc = v_vlfinal = v_valor_vinc +

                         ( itab_zycbt005-vlme_p * itab_zycbt005-parid ).

      ENDLOOP.

      IF sy-subrc = 0.

        v_dias = itab_zycbt005-dtpagext - itab_zycbt002-dtinicio.

        IF itab_zycbt002-txjtotal > 0 AND v_dias > 0.

          v_vlme = /pws/zycbe001-slpagar * itab_zycbt002-txjtotal

                              / 100 * v_dias / v_nrdias.

        ELSE.

          CLEAR v_vlmetot.

        ENDIF.

        v_vlmetot    = v_vlmetot + v_vlme.

        v_vinc       = 'X'.

        v_dtcalc     = itab_zycbt005-dtpagext.

        v_slpagar    = /pws/zycbe001-slpagar - v_valor_vinc.

      ENDIF.

      LOOP AT itab_zycbt005 WHERE dtpagext <= itab_zycbt002-dtfinal

                              AND dtpagext <> space

                              AND dtpagext <> '00000000'

                              AND dtpagext >  v_dtcalc.

        v_dias = itab_zycbt005-dtpagext - v_dtcalc.

        IF itab_zycbt002-txjtotal > 0 AND

           v_dias > 0.

          v_vlme = v_slpagar *

                              itab_zycbt002-txjtotal

                              / 100 * v_dias / v_nrdias.

          v_valor_vinc = v_vlfinal = itab_zycbt005-vlme_p *

                                     itab_zycbt005-parid.

          v_slpagar    = v_slpagar - v_valor_vinc.

          v_dtcalc     = itab_zycbt005-dtpagext.

          v_vlmetot    = v_vlmetot + v_vlme.

* << Fim da inclusão

    ENDIF.

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

      ENDLOOP.

      v_slpgant        = v_slpagar.

    ENDIF.

    IF v_vinc IS INITIAL.

* << Fim da inclusão

    SORT itab_zycbt006 BY dtpagto ASCENDING.

    CLEAR v_prim.

    LOOP AT itab_zycbt006 WHERE dtpagext <= itab_zycbt002-dtfinal.

...

 

...

           v_dias > 0.

          v_vlme = v_slpgant *

                             itab_zycbt002-txjtotal

                             / 100 * v_dias / v_nrdias.

        ELSE.

          CLEAR v_vlmetot.

        ENDIF.

      ENDIF.

      v_vlmetot = v_vlmetot + v_vlme .

    ENDLOOP.

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

    v_slpgant = v_slpgant - v_vlfinal .

* << Fim da exclusão

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

    ENDIF.

    IF /pws/zycbe001-ffrcalc NE 'C'.

      v_slpgant = v_slpgant + v_vlfinal .

    ENDIF.

* << Fim da inclusão

    v_dias = itab_zycbt002-dtfinal - v_dtcalc .

    v_vlme = v_slpgant *

                      itab_zycbt002-txjtotal

                      / 100 * v_dias / v_nrdias.

    v_vlmetot = v_vlmetot + v_vlme .

    itab_zycbt002-vlme =   v_vlmetot.

  ELSE.

    v_calc = ' '.

    IF itab_zycbt002-nrdiasj IS INITIAL.

      itab_zycbt002-vlme =

...

 

...

    ENDIF.

  ENDIF.

  IF ( /pws/zycbe001-tpcontr(1) EQ 'P' OR

       /pws/zycbe001-tpcontr(1) EQ 'S' ) AND

     /pws/zycbe001-ffrcalc EQ 'C'    AND

     itab_zycbt002-fjur    EQ ' ' .

    IF itab_zycbt002-belnr   NE  ' ' .

      v_calc = 'X'.

    ELSE.

      v_calc = 'X'.

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

      LOOP AT itab_zycbt005 WHERE NOT dtpagext IS initial.

        EXIT.

      ENDLOOP.

      IF sy-subrc NE 0.

* << Fim da inclusão

      v_cambiais = 'X'.

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

      ENDIF.

      IF itab_zycbt002-belnr IS INITIAL AND

         v_nrparc            IS INITIAL.

        CLEAR: v_nrparc.

        v_nrparc = itab_zycbt002-nrparc.

      ENDIF.

      IF itab_zycbt002-nrparc = v_nrparc+2(3).

* << Fim da inclusão

      PERFORM calcj_pre_cambiais.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

  ENDIF.

  IF v_calc EQ ' '

  OR v_calc_todas = 'X'.

    IF itab_zycbt002-dtpagto IS INITIAL.

      IF NOT itab_zycbt002-txjtotal IS INITIAL.

...

 

...

  ENDLOOP.

  itab_zycbt221_ant[] = wa_zycbt221[].

ENDFORM.

FORM period_refresh.

  CALL FUNCTION 'FI_PERIOD_REFRESH'.

ENDFORM.

FORM verifica_pagamento_parc USING p_vlmeamj

                                   p_vlmej.

  DATA: ultimo LIKE /pws/zycbt006-dtpagto.

  CLEAR p_vlmej.

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

  CLEAR itab_zycbt005l.

  REFRESH itab_zycbt005l.

  IF /pws/zycbe001-tpcontr(1) = 'P' OR

     /pws/zycbe001-tpcontr(1) = 'S'.

    SELECT *

          FROM /pws/zycbt005

          INTO TABLE itab_zycbt005l

          WHERE nrseqc  =  /pws/zycbe001-nrseqc   AND

                dtpagext >= itab_zycbt002-dtinicio AND

                dtpagext <= itab_zycbt002-dtfinal

          ORDER BY dtpagext DESCENDING.

    LOOP AT itab_zycbt005l.

      p_vlmeamj = p_vlmeamj - itab_zycbt005l-vlme_p.

    ENDLOOP.

    READ TABLE itab_zycbt005l WITH KEY deduz_juros = 'X'.

    IF sy-subrc = 0.

      ultimo = itab_zycbt002-dtfinal.

      CLEAR itab_zycbt010.

      READ TABLE itab_zycbt010 WITH KEY tptxjur = itab_zycbt002-tptxjur.

      LOOP AT itab_zycbt005l.

        IF itab_zycbt005l-deduz_juros = 'X'.

          v_diasj = ultimo - itab_zycbt005l-dtpagext.

          p_vlmej = p_vlmej + (

                    p_vlmeamj * itab_zycbt002-txjtotal / 100

                    * v_diasj / itab_zycbt010-nrdias ).

          ultimo = itab_zycbt005l-dtpagext.

        ENDIF.

        p_vlmeamj = p_vlmeamj +

                       ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

      ENDLOOP.

      v_diasj = ultimo - itab_zycbt002-dtinicio.

      p_vlmej = p_vlmej + (

                p_vlmeamj * itab_zycbt002-txjtotal / 100

                * v_diasj / itab_zycbt010-nrdias ).

    ELSE.

      CLEAR itab_zycbt005l.

      REFRESH itab_zycbt005l.

      SELECT *

             FROM /pws/zycbt005

             INTO TABLE itab_zycbt005l

             WHERE nrseqc  = /pws/zycbe001-nrseqc   AND

                   dtpagext > itab_zycbt002-dtinicio.

      IF sy-subrc EQ 0.

        LOOP AT itab_zycbt005l.

          p_vlmeamj = p_vlmeamj +

                       ( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).

        ENDLOOP.

      ENDIF.

    ENDIF.

    IF p_vlmeamj > /pws/zycbe001-vlme.

      p_vlmeamj = /pws/zycbe001-vlme.

    ENDIF.

  ENDIF.

  CHECK itab_zycbt005l[] IS INITIAL.

* << Fim da inclusão

  SELECT *

        FROM /pws/zycbt006

        INTO TABLE itab_zycbt006l

        WHERE nrseqc  =  /pws/zycbe001-nrseqc   AND

              dtpagto >= itab_zycbt002-dtinicio AND

              dtpagto <= itab_zycbt002-dtfinal

        ORDER BY dtpagto DESCENDING.

  LOOP AT itab_zycbt006l.

    p_vlmeamj = p_vlmeamj - itab_zycbt006l-vlme.

  ENDLOOP.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001F04

 

...

      IF sy-subrc = 0.

        /pws/zycbe001-fcanc      = 'X'.

        /pws/zycbe001-belnr2     = itab_zycbt032-belnr.

        /pws/zycbe001-belnr_canc = itab_zycbt032-belnr.

        /pws/zycbe001-slvinc     = /pws/zycbe001-slvinc   -

 /pws/zycbe001-vlcanc.

        /pws/zycbe001-slreserv   = /pws/zycbe001-slreserv -

 /pws/zycbe001-vlcanc.

        /pws/zycbe001-slpagar    = /pws/zycbe001-slpagar  -

 /pws/zycbe001-vlcanc.

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

        /pws/zycbe001-dtvincul   = /pws/zycbe001-dtcanc.

* << Fim da inclusão

        PERFORM prov_canc.

        MOVE-CORRESPONDING /pws/zycbe001 TO wa_zycbt001.

        MOVE-CORRESPONDING /pws/zycbe001 TO /pws/zycbt001.

        PERFORM grava_zycbt004.

        itab_zycbt077-belnr = itab_zycbt032-belnr.

        itab_zycbt077-bukrs = itab_zycbe033-bukrs.

        itab_zycbt077-gjahr = itab_zycbe033-budat(4).

        itab_zycbt077-status = 'C'.

        itab_zycbt077-tcode = itab_zycbt032-tcode.

        CONCATENATE '001' /pws/zycbe001-tpcontr INTO

...

 

...

                            slreserv     = /pws/zycbe001-slreserv

                            slpagar      = /pws/zycbe001-slpagar

                            vlcanc       = /pws/zycbe001-vlcanc

                            dtcanc       = /pws/zycbe001-dtcanc

                            mtcanc       = /pws/zycbe001-mtcanc

                            txcanc       = /pws/zycbe001-txcanc

                            vlmicanc     = /pws/zycbe001-vlmicanc

                            vlcancr      = /pws/zycbe001-vlcancr

                            vldifcanc    = /pws/zycbe001-vldifcanc

                            belnr_comp_c = /pws/zycbe001-belnr_comp_c

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

                            dtvincul     = /pws/zycbe001-dtcanc

* << Fim da inclusão

                      WHERE nrseqc       = /pws/zycbe001-nrseqc.

        COMMIT WORK.

        IF wa_zycbt007-cfm = 'X'.

          IF /pws/zycbe001-tpcontr(1) NE 'C' AND

             /pws/zycbe001-tpcontr(1) NE 'E'.

            SELECT SINGLE *

                   FROM /pws/zycbt001

                   INTO wa_zycbt001_log

                   WHERE nrseqc = /pws/zycbe001-nrseqc.

            PERFORM monta_log_cfm USING    wa_zycbt001_log

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001O01

 

...

    PERFORM divisao_emp.

    PERFORM find_nrseqc.

    CLEAR itab_zycbt006.

    REFRESH itab_zycbt006.

    SELECT *      FROM /pws/zycbt006

                  INTO TABLE itab_zycbt006

                  WHERE nrseqc EQ /pws/zycbe001-nrseqc.

  ELSE.

    CONCATENATE v_nrseqc+0(6) '-' v_nrseqc+6(2) INTO v_nrseqcview.

  ENDIF.

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

  IF ( /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S' ) AND

      itab_zycbt005[] IS INITIAL.

    SELECT *      FROM /pws/zycbt005

                  INTO TABLE itab_zycbt005

                  WHERE nrseqc EQ /pws/zycbe001-nrseqc.

  ENDIF.

* << Fim da inclusão

  IMPORT v_vinculacao FROM MEMORY ID 'VINC999'.

  IF v_vinculacao EQ 'X'.

    SELECT SINGLE * FROM /pws/zycbt001

      INTO /pws/zycbe001

      WHERE nrseqc = v_nrseqc.

    MOVE /pws/zycbe001 TO wa_zycbt001.

    CLEAR v_vinculacao.

    FREE MEMORY ID 'VINC999'.

  ENDIF.

  PERFORM find_tptxjur.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB001TOP

 

...

DATA: END OF itab_modo.

DATA: BEGIN OF itab_zycbt077 OCCURS 1.

        INCLUDE STRUCTURE /pws/zycbt077.

DATA: END OF itab_zycbt077.

DATA : BEGIN OF itab_zycbt006 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt006.

DATA : END OF itab_zycbt006.

DATA : BEGIN OF itab_zycbt006l OCCURS 2.

        INCLUDE STRUCTURE /pws/zycbt006.

DATA : END OF itab_zycbt006l.

* >> Início da inclusão:

DATA : BEGIN OF itab_zycbt005l OCCURS 2.

        INCLUDE STRUCTURE /pws/zycbt005.

DATA : END OF itab_zycbt005l.

* << Fim da inclusão

DATA: BEGIN OF itab_zycbt091_lista OCCURS 2.

DATA: nrseql   LIKE /pws/zycbt091-nrseql,

      dtliquid LIKE /pws/zycbt091-dtliquid,

      nrseqdp  LIKE /pws/zycbt091-nrseqdp.

DATA: END OF itab_zycbt091_lista.

DATA: BEGIN OF itab_erro OCCURS 1.

DATA: belnr  LIKE /pws/zycbt005-belnr,

      msg    LIKE /pws/zycbt032-msg.

DATA: END OF itab_erro.

DATA : BEGIN OF itab_zycbt009 OCCURS 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F01

 

...

    v_dtpagto                = itab_zycbt005-dtpagto.

    v_dt_estorno = v_dtpagto.

    v_fipos             = itab_zycbt005-fipos.

    IF v_status_s EQ 1.

      v_dtpagto         = itab_zycbt005-dtpagto.

    ENDIF.

    v_ftxt              = itab_zycbt005-ftxt.

    v_txtinf            = itab_zycbt005-txtinf.

    /pws/zycbe005-werks      = itab_zycbt005-werks.

    /pws/zycbe005-j_1bbranch = itab_zycbt005-j_1bbranch.

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

    v_deduz             = itab_zycbt005-deduz_juros.

* << Fim da exclusão

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

    v_deduz = itab_zycbt005-deduz_juros.

* << Fim da inclusão

    IF NOT itab_zycbt005[] IS INITIAL.

      SELECT nrinvoic nrparcf credext FROM /pws/zycbt017

          INTO TABLE itab_zycbt017_cred

          FOR ALL ENTRIES IN itab_zycbt005

          WHERE nrinvoic = itab_zycbt005-nrinvoic

            AND nrparcf  = itab_zycbt005-nrparcf.

    ENDIF.

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

    select dtpagext from /pws/zycbt005 into /pws/zycbt005-dtpagext

                    up to 1 rows

                    where nrseqc   = v_nrseqc

                      and dtvincul = v_dtvincul.

    endselect.

    if sy-subrc = 0 and ( /pws/zycbt005-dtpagext eq space or

                          /pws/zycbt005-dtpagext eq '00000000' ).

      clear: itab_zycbt005-dtpagext, itab_zycbt005-deduz_juros.

      modify itab_zycbt005 transporting dtpagext deduz_juros

                           where nrseqc = v_nrseqc.

    endif.

* << Fim da inclusão

    IF sy-tcode NE c_transacao_c.

      PERFORM seleciona_ordem_pagamento.

    ENDIF.

    IF sy-tcode EQ c_transacao_c.

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '01'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

                                            /pws/zycbe005-bukrs

...

 

...

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  itab_zycbt005-vljur_acc = itab_zycbt005-vljur_acc *

                            ( 10 ** ( tcurx-currdec - 2 ) ).

  itab_zycbt005-vljur_ace = itab_zycbt005-vljur_ace *

                            ( 10 ** ( tcurx-currdec - 2 ) ).

  itab_zycbt005-status = 'C'.

  MODIFY itab_zycbt005 TRANSPORTING status

                       WHERE nrseqc = /pws/zycbe005-nrseqc.

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

  LOOP AT itab_zycbt006.

    SELECT dtpagext

           UP TO 1 ROWS

           FROM /pws/zycbt005

           INTO /pws/zycbt005-dtpagext

           WHERE nrseqc    = itab_zycbt006-nrseqc

             AND nrparc    = itab_zycbt006-nrparc

             AND dtincl    = itab_zycbt006-dtincl

             AND nrinvoic  = itab_zycbt006-nrinvoic

             AND nrparcf   = itab_zycbt006-nrparcf

             AND gsberf    = itab_zycbt006-gsberf

             AND dtvincul  = itab_zycbt006-dtvincul

             AND dtvencto  = itab_zycbt006-dtvencto.

    ENDSELECT.

    IF sy-subrc               EQ 0 AND

       /pws/zycbt005-dtpagext NE /pws/zycbe006-dtpagext.

      itab_zycbt005-dtpagext = /pws/zycbt005-dtpagext.

      MODIFY itab_zycbt005 TRANSPORTING dtpagext

             WHERE nrseqc  = itab_zycbt006-nrseqc

             AND nrparc    = itab_zycbt006-nrparc

             AND dtincl    = itab_zycbt006-dtincl

             AND nrinvoic  = itab_zycbt006-nrinvoic

             AND nrparcf   = itab_zycbt006-nrparcf

             AND gsberf    = itab_zycbt006-gsberf

             AND dtvincul  = itab_zycbt006-dtvincul

             AND dtvencto  = itab_zycbt006-dtvencto.

    ENDIF.

  ENDLOOP.

* << Fim da inclusão

  MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

  CALL CUSTOMER-FUNCTION '002'

    IMPORTING

        v_subrc = v_subrc.

  LOOP AT itab_zycbt006.

    itab_zycbt006-vljur_acc = itab_zycbt006-vljur_acc *

                              ( 10 ** ( tcurx-currdec - 2 ) ).

    itab_zycbt006-vljur_ace = itab_zycbt006-vljur_ace *

                              ( 10 ** ( tcurx-currdec - 2 ) ).

    itab_zycbt006-vljur     = itab_zycbt006-vljur *

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F02

 

...

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_tabelas_transp2.

  DATA: v_subrc TYPE c.

  DATA: wa_zycbt006_sbu LIKE /pws/zycbt006,

        v_slpagar001 TYPE /pws/zycbt001-slpagar.

  itab_zycbt005-status = 'C'.

  MODIFY itab_zycbt005 TRANSPORTING status

                       WHERE nrseqc = /pws/zycbe005-nrseqc.

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

  loop at itab_zycbt006.

    select dtpagext

           up to 1 rows

           from /pws/zycbt005

           into /pws/zycbt005-dtpagext

           where nrseqc    = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

             and dtincl    = itab_zycbt006-dtincl

             and nrinvoic  = itab_zycbt006-nrinvoic

             and nrparcf   = itab_zycbt006-nrparcf

             and gsberf    = itab_zycbt006-gsberf

             and dtvincul  = itab_zycbt006-dtvincul

             and dtvencto  = itab_zycbt006-dtvencto.

    endselect.

    if sy-subrc               eq 0 and

       /pws/zycbt005-dtpagext ne /pws/zycbe006-dtpagext.

      itab_zycbt005-dtpagext = /pws/zycbt005-dtpagext.

      modify itab_zycbt005 transporting dtpagext

             where nrseqc  = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

             and dtincl    = itab_zycbt006-dtincl

             and nrinvoic  = itab_zycbt006-nrinvoic

             and nrparcf   = itab_zycbt006-nrparcf

             and gsberf    = itab_zycbt006-gsberf

             and dtvincul  = itab_zycbt006-dtvincul

             and dtvencto  = itab_zycbt006-dtvencto.

    endif.

  endloop.

* << Fim da inclusão

  MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

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

  MODIFY /pws/zycbt074 FROM TABLE itab_zycbt074.

* << Fim da inclusão

  MODIFY /pws/zycbt231 FROM TABLE itab_zycbt231.

  CALL CUSTOMER-FUNCTION '002'

    IMPORTING

        v_subrc = v_subrc.

  LOOP AT itab_zycbt006.

    READ TABLE itab_zycbt005 WITH KEY

...

 

...

                  OTHERS          = 3.

      ENDIF.

    ENDIF.

    IF sy-subrc = 0.

      READ TABLE itab_zycbt032 WITH KEY tcode  = v_text

                                        tabela = 'ZYCBT006'

                                        cpochv = itab_zycbe033-cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        itab_zycbt030-belnr_d = itab_zycbt032-belnr.

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

        read table itab_zycbe033 index 1.

        if itab_zycbe033-budat ne itab_zycbt006-dtpagto.

          itab_zycbt074-dtcont = /pws/zycbt074-dtcont =

          itab_zycbe033-budat.

          modify itab_zycbt074.

          itab_zycbt005-dtbelnr = itab_zycbe033-budat.

          modify itab_zycbt005.

          itab_zycbt030-budat   = itab_zycbe033-budat.

        endif.

* << Fim da inclusão

        MODIFY itab_zycbt030.

        itab_contabil-nrinvoic = itab_zycbt030-nrinvoic.

        itab_contabil-vbeln    = itab_zycbt030-vbeln.

        itab_contabil-nrparcf  = itab_zycbt030-nrparcf.

        itab_contabil-gsberf   = itab_zycbt030-gsberf.

        itab_contabil-docto    = itab_zycbt032-belnr.

        itab_contabil-msg      = text-179.

        READ TABLE itab_zycbt074 WITH KEY nrseqc = itab_zycbt006-nrseqc.

        IF sy-subrc EQ 0.

          IF itab_zycbt074-dtcont IS INITIAL OR

...

 

...

      PERFORM enqueue_razao USING itab_zycbe033-bukrs

                                  itab_zycbe033-d_newko

                                  'X'.

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

                                        tabela = 'ZYCBT006'

                                        cpochv = itab_zycbe033-cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        itab_zycbt006-belnr_d = itab_zycbt032-belnr.

        MODIFY itab_zycbt006.

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

        read table itab_zycbe033 index 1.

        if itab_zycbe033-budat ne itab_zycbt006-dtpagto.

          itab_zycbt074-dtcont = /pws/zycbt074-dtcont =

          itab_zycbe033-budat.

          modify itab_zycbt074.

          itab_zycbt005-dtbelnr = itab_zycbe033-budat.

          modify itab_zycbt005.

          itab_zycbt030-budat   = itab_zycbe033-budat.

        endif.

* << Fim da inclusão

        LOOP AT itab_zycbt069 WHERE nrseqc   = itab_zycbt006-nrseqc

                                AND nrinvoic = itab_zycbt006-nrinvoic

                                AND dtvincul = itab_zycbt006-dtvincul

                                AND gsberf   = itab_zycbt006-gsberf

                                AND nrparcf  = itab_zycbt006-nrparcf.

          itab_zycbt069-belnr_d = itab_zycbt032-belnr.

          MODIFY itab_zycbt069.

        ENDLOOP.

        IF itab_zycbt006-tpcontr(1) CA 'CE'

           OR ( /pws/zycbe001-tpcontr(1)  EQ 'D' AND

...

 

...

                                  itab_zycbe033-d_newko

                                  'X'.

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

                                        tabela = 'ZYCBT006'

                                        cpochv = itab_zycbe033-cpochv

                                        tpmsg  = 'S'.

      IF sy-subrc EQ 0.

        itab_zycbt006-belnr  = itab_zycbt032-belnr.

        itab_zycbt006-status = 'C'.

        MODIFY itab_zycbt006.

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

        read table itab_zycbe033 index 1.

        if itab_zycbe033-budat ne itab_zycbt006-dtpagto.

          itab_zycbt074-dtcont = /pws/zycbt074-dtcont =

          itab_zycbe033-budat.

          modify itab_zycbt074.

          itab_zycbt005-dtbelnr = itab_zycbe033-budat.

          modify itab_zycbt005.

          itab_zycbt030-budat   = itab_zycbe033-budat.

        endif.

* << Fim da inclusão

        itab_contabil-nrinvoic = itab_zycbt006-nrinvoic.

        itab_contabil-nrparcf  = itab_zycbt006-nrparcf.

        CLEAR itab_contabil-vbeln.

        itab_contabil-gsberf   = itab_zycbt006-gsberf.

        itab_contabil-docto    = itab_zycbt032-belnr.

        itab_contabil-msg      = text-187.

        CLEAR /pws/zycbt084.

        PERFORM grava_zycbt084 USING itab_zycbt032-belnr.

        READ TABLE itab_zycbt074 WITH KEY nrseqc = itab_zycbt006-nrseqc.

        IF sy-subrc EQ 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004F03

 

...

    PERFORM adiciona_documentos

      USING

        <fs_zycbt219>-bukrs

        <fs_belnr>

        <fs_zycbt219>-dtincl

        'S'.

  ENDLOOP.

ENDFORM.

FORM atualiza_deduz_juros.

  LOOP AT itab_zycbt005.

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

    if ( /pws/zycbe001-tpcontr(1) = 'P' or

         /pws/zycbe001-tpcontr(1) = 'S' ) and

       not itab_zycbt005-deduz_juros is initial.

      continue.

    endif.

* << Fim da inclusão

    itab_zycbt005-deduz_juros = v_deduz.

    MODIFY itab_zycbt005 INDEX sy-tabix.

  ENDLOOP.

  LOOP AT itab_zycbt006.

    itab_zycbt006-deduz_juros = v_deduz.

    MODIFY itab_zycbt006 INDEX sy-tabix.

  ENDLOOP.

ENDFORM.

FORM atualiza_saldo_ordem.

  <fs_zycbt226>-sld_exterior =

...

 

...

                               itab_zycbt006-dtpagto.

  IF NOT v_databl IS INITIAL.

    PERFORM define_cambio USING v_databl

                                itab_zycbt006-waers

                                wa_zycbt007-waersb

                                itab_zycbe033-kursf.

  ENDIF.

  PERFORM verify_null_field

    USING itab_zycbe033-kursf 'KURSF' text-456.

  itab_zycbe033-bktxt  = wa_zycbt007-bktxt.

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

  if not itab_zycbt006-gsberf is initial.

     itab_zycbe033-d_gsber = itab_zycbt006-gsberf.

     itab_zycbe033-c_gsber = itab_zycbt006-gsberf.

  else.

* << Fim da inclusão

  itab_zycbe033-d_gsber = itab_zycbt006-gsber.

  itab_zycbe033-c_gsber = itab_zycbt006-gsber.

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

  endif.

* << Fim da inclusão

  IF NOT itab_zycbt005-j_1bbranch IS INITIAL.

    PERFORM verifica_pais_filial USING itab_zycbt006-bukrs

                                       itab_zycbt005-j_1bbranch.

    itab_zycbe033-brnch = itab_zycbt005-j_1bbranch.

  ELSE.

...

 

...

    IF sy-subrc = 0.

      itab_zycbt005-slpagar = itab_zycbt005-slpagar +

                              itab_zycbt005-vlvinc.

      /pws/zycbe001-slpagar = /pws/zycbe001-slpagar +

                              itab_zycbt005-vlvinc.

      MODIFY itab_zycbt005 TRANSPORTING slpagar

                           WHERE nrinvoic = itab_zycbt006-nrinvoic

                             AND gsberf   = itab_zycbt006-gsberf

                             AND nrparcf  = itab_zycbt006-nrparcf

                             AND dtvincul = itab_zycbt006-dtvincul..

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

    endif.

  endloop.

  loop at itab_zycbt006.

    select dtpagext

           up to 1 rows

           from /pws/zycbt005

           into /pws/zycbt005-dtpagext

           where nrseqc    = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

             and dtincl    = itab_zycbt006-dtincl

             and nrinvoic  = itab_zycbt006-nrinvoic

             and nrparcf   = itab_zycbt006-nrparcf

             and gsberf    = itab_zycbt006-gsberf

             and dtvincul  = itab_zycbt006-dtvincul

             and dtvencto  = itab_zycbt006-dtvencto.

    endselect.

    if sy-subrc               eq 0 and

       /pws/zycbt005-dtpagext ne /pws/zycbe006-dtpagext.

      itab_zycbt005-dtpagext = /pws/zycbt005-dtpagext.

      modify itab_zycbt005 transporting dtpagext

             where nrseqc  = itab_zycbt006-nrseqc

             and nrparc    = itab_zycbt006-nrparc

             and dtincl    = itab_zycbt006-dtincl

             and nrinvoic  = itab_zycbt006-nrinvoic

             and nrparcf   = itab_zycbt006-nrparcf

             and gsberf    = itab_zycbt006-gsberf

             and dtvincul  = itab_zycbt006-dtvincul

             and dtvencto  = itab_zycbt006-dtvencto.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

  MODIFY /pws/zycbt001 FROM /pws/zycbe001.

ENDFORM.

* >> Início da inclusão:

form oculta_deduz_juros.

  if /pws/zycbt005-dtpagext is initial.

    select dtpagext

           up to 1 rows

           from /pws/zycbt005

           into /pws/zycbt005-dtpagext

           where nrseqc = /pws/zycbe001-nrseqc.

    endselect.

    if not /pws/zycbt005-dtpagext is initial.

      vg_flag = 'X'.

    endif.

  endif.

  loop at screen.

    case screen-name.

      when '/PWS/ZYCBE006-DEDUZ_JUROS' or 'V_DEDUZ'.

        if ( /pws/zycbe001-tpcontr(1) = 'P'   or

             /pws/zycbe001-tpcontr(1) = 'S' ) and

             not vg_flag is initial.

          screen-invisible = '1'.

          screen-input     = '0'.

          clear: /pws/zycbe006-deduz_juros, v_deduz.

        elseif vg_flag is initial and

               ( /pws/zycbe001-tpcontr(1) = 'P'   or

                 /pws/zycbe001-tpcontr(1) = 'S' ).

          screen-invisible = '0'.

          screen-input     = v_status_s.

        endif.

      when '/PWS/ZYCBE006-DTPAGEXT' or 'V_DTPAGEXT'.

        if ( /pws/zycbe001-tpcontr(1) = 'P'   or

             /pws/zycbe001-tpcontr(1) = 'S' ) and

             not vg_flag is initial.

          screen-input     = '0'.

        elseif vg_flag is initial.

          screen-input     = v_status_s.

        endif.

    endcase.

    modify screen.

  endloop.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB004I01

 

MODULE user_command_0100 INPUT.

  DATA: e_subrc       LIKE sy-subrc,

        v_bukrs_fat LIKE /pws/zycbt017-bukrs,

        e_exec_okcode.

  CLEAR: r_okcode, e_exec_okcode, v_syrepid.

  LOOP AT itab_zycbt005.

    itab_zycbt005-dtpagto  = v_dtpagto.

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

    IF /pws/zycbe001-tpcontr(1) NE 'P' AND

       /pws/zycbe001-tpcontr(1) NE 'S'.

* << Fim da inclusão

    itab_zycbt005-dtpagext = /pws/zycbe006-dtpagext.

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

    ENDIF.

* << Fim da inclusão

    IF itab_zycbt005-waers   NE /pws/zycbt001-waers.

      itab_zycbt005-v_armda = 'X'.

    ENDIF.

    SELECT SINGLE bukrs FROM /pws/zycbt017 INTO v_bukrs_fat

      WHERE nrinvoic = itab_zycbt005-nrinvoic

        AND nrparcf  = itab_zycbt005-nrparcf

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004O01

 

...

      ENDIF.

      IF wa_cols-screen-name = '/PWS/ZYCBE006-VLJUR_ACE'.

        wa_cols-screen-invisible = '1'.

        wa_cols-invisible = '1'.

        MODIFY tc_faturas-cols FROM wa_cols.

      ENDIF.

    ENDLOOP.

  ENDIF.

  PERFORM seta_data_juros.

  PERFORM busca_descricao.

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

  PERFORM oculta_deduz_juros.

* << Fim da inclusão

ENDMODULE.

MODULE carrega_pagtos OUTPUT.

  REFRESH: itab_zycbt006_aux, itab_zycbt006_aux2.

  CLEAR: itab_zycbt006_aux, itab_zycbt006_aux2.

  SELECT DISTINCT nrseqc nrinvoic nrparcf dtvincul dtpagto

  dtpagext

    FROM /pws/zycbt006

    INTO TABLE itab_zycbt006_aux2

   WHERE nrseqc = v_nrseqc.

  CHECK sy-subrc = 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004TOP

 

...

      v_zterm          LIKE bsid-zterm,

      v_tabix          TYPE sy-tabix,

      v_ordem          TYPE /pws/zycbt226-sld_exterior,

      v_vldesm         TYPE /pws/zycbt226-sld_exterior.

DATA: v_taxa_liqand    TYPE /pws/zycbe033-kursf,

      v_taxa_cliente   TYPE /pws/zycbe033-kursf,

      v_reais_f2       TYPE /pws/zycbt226-sld_exterior,

      v_vlmext         TYPE /pws/zycbt226-sld_exterior,

      v_sld_exterior   TYPE /pws/zycbt226-sld_exterior,

      v_periodo_aberto(1) TYPE c.

* >> Início da inclusão:

  DATA: vg_flag TYPE c.

* << Fim da inclusão

DATA:

  v_tpcontr         LIKE /pws/zycbt016-txtdesc,

  v_bconegoc           LIKE lfa1-name1,

  v_bcofinan           LIKE lfa1-name1.

DATA: wa_log          TYPE char4000,

      wa_zycbt006_log LIKE /pws/zycbt006,

      wa_zycet048     LIKE /pws/zycet048.

DATA: itab_zyglt100

        TYPE STANDARD TABLE OF /pws/zyglt100

        WITH HEADER   LINE,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB004X01

 

...

DATA:   vlme        LIKE /pws/zycbe006-vlme,

        dtpagto     LIKE /pws/zycbe006-dtpagto,

        v_status,

        v_vldif     LIKE /pws/zycbt006-vlme,

        v_vlmeant   LIKE /pws/zycbt006-vlme,

        v_armda,

        v_vljur     LIKE /pws/zycbt006-vljur,

        v_vlcomis   LIKE /pws/zycbt006-vlcomis,

        txjtotal2   LIKE /pws/zycbt006-txjtotal,

        mark(1),

* >> Início da exclusão:

        deduz_juros LIKE /pws/zycbt006-deduz_juros,

        dtpagext    LIKE /pws/zycbt006-dtpagext,

* << Fim da exclusão

        belnr_d     TYPE belnr_d,

        belnr_perf  LIKE /pws/zycbt006-belnr_perf,

        vljur_acc   LIKE  /pws/zycbt006-vljur_acc,

        vljur_ace   LIKE  /pws/zycbt006-vljur_ace,

        v_performance,

       END OF itab_zycbt005.

DATA: itab_zycbt005_ant LIKE itab_zycbt005 OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF itab_zycbt006 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbt006.

DATA: v_status,

...

 

...

DATA:   vlme        LIKE /pws/zycbe006-vlme,

        dtpagto     LIKE /pws/zycbe006-dtpagto,

        v_status,

        v_vldif     LIKE /pws/zycbt006-vlme,

        v_vlmeant   LIKE /pws/zycbt006-vlme,

        v_armda,

        v_vljur     LIKE /pws/zycbt006-vljur,

        v_vlcomis   LIKE /pws/zycbt006-vlcomis,

        txjtotal2   LIKE /pws/zycbt006-txjtotal,

        mark(1),

* >> Início da exclusão:

        deduz_juros LIKE /pws/zycbt006-deduz_juros,

        dtpagext    LIKE /pws/zycbt006-dtpagext,

* << Fim da exclusão

        belnr_d     TYPE belnr_d,

        vljur_acc   LIKE  /pws/zycbt006-vljur_acc,

        vljur_ace   LIKE  /pws/zycbt006-vljur_ace,

       END OF itab_zycbt005_t.

DATA: BEGIN OF itab_erro OCCURS 0,

         vbeln  LIKE /pws/zycbt030-vbeln,

         msg    LIKE /pws/zycbt032-msg,

       END OF itab_erro.

DATA: BEGIN OF itab_partidas OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe033.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F02

 

...

                          itab_zycbt051-nrinvoic itab_zycbt051-gsberf

                          itab_zycbt051-dtvincul itab_zycbt051-dtvencto

                          itab_zycbt051-nrparcf

                          itab_zycbt209-belnr

                          INTO v_cpochv.

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

                                               tabela = '/PWS/ZYCBT005'

                                                cpochv = v_cpochv

                                                tpmsg  = 'S'.

              IF sy-subrc = 0.

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

                CALL CUSTOMER-FUNCTION '040'."#EC *

* << Fim da exclusão

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

                CALL CUSTOMER-FUNCTION '040'.               "#EC *

* << Fim da inclusão

                itab_zycbt051-tpdev     = 'RP'.

                itab_zycbt051-status_rp = 'C'.

                itab_zycbt051-belnr_rp  = itab_zycbt032-belnr.

                MODIFY itab_zycbt051.

                itab_zycbt209-belnr2  = itab_zycbt032-belnr.

                itab_zycbt209-dtbelnr = itab_zycbt051-dtreceb.

                MODIFY itab_zycbt209.

                CLEAR itab_zycbt006_aux.

                READ TABLE itab_zycbt005

                           WITH KEY nrinvoic = itab_zycbt051-nrinvoic

...

 

...

                          itab_zycbt051-nrinvoic itab_zycbt051-gsberf

                          itab_zycbt051-dtvincul itab_zycbt051-dtvencto

                          itab_zycbt051-nrparcf

                          itab_zycbt209-belnr

                          INTO v_cpochv.

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

                                               tabela = '/PWS/ZYCBT005'

                                                cpochv = v_cpochv

                                                tpmsg  = 'S'.

              IF sy-subrc = 0.

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

                CALL CUSTOMER-FUNCTION '040'."#EC *

* << Fim da exclusão

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

                CALL CUSTOMER-FUNCTION '040'.               "#EC *

* << Fim da inclusão

                itab_zycbt051-tpdev     = 'RD'.

                itab_zycbt051-status_rd = 'C'.

                itab_zycbt051-belnr_rd  = itab_zycbt032-belnr.

                MODIFY itab_zycbt051.

                itab_zycbt209-belnr2  = itab_zycbt032-belnr.

                itab_zycbt209-dtbelnr = itab_zycbt051-dtreceb.

                MODIFY itab_zycbt209.

                CLEAR itab_zycbt006_aux.

                READ TABLE itab_zycbt005

                           WITH KEY nrinvoic = itab_zycbt051-nrinvoic

...

 

...

    itab_zycbe033-c_newko = itab_zyglt316-konts.

    PERFORM verify_null_field USING itab_zycbe033-c_newko

                                    'SAKNR'

                                    text-014.

  ENDIF.

  itab_zycbe033-d_kostl = /pws/zycbe050-kostl.

  itab_zycbe033-d_prctr = /pws/zycbe050-prctr.

  itab_zycbe033-d_fipos = /pws/zycbe050-fipos.

  itab_zycbe033-d_fictr = /pws/zycbe050-fictr.

  CLEAR itab_zycbt012.

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

if /pws/zycbe001-conta_contab is initial.

* << Fim da exclusão

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

  IF /pws/zycbe050-conta_contab IS INITIAL.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = /pws/zycbe001-bukrs

            ktosl           = 'FBK'

            codaux1         = /pws/zycbe001-bcocred

       TABLES

            account         = itab_zyglt316

       EXCEPTIONS

            key_not_found   = 1

            rules_not_found = 2

...

 

...

                                    text-014.

  ELSE.

    READ TABLE itab_zyglt316 INDEX 1.

    itab_zycbe033-d_newko = itab_zyglt316-konts.

    PERFORM verify_null_field USING itab_zycbe033-d_newko

                                    'NEWKO'

                                    text-037.

  ENDIF.

 else.

  IF v_vldev_brl LT v_vlcan_brl.

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

    itab_zycbe033-c_newko = /pws/zycbe001-conta_contab.

* << Fim da exclusão

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

      itab_zycbe033-c_newko = /pws/zycbe050-conta_contab.

* << Fim da inclusão

  else.

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

    itab_zycbe033-d_newko = /pws/zycbe001-conta_contab.

* << Fim da exclusão

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

      itab_zycbe033-d_newko = /pws/zycbe050-conta_contab.

* << Fim da inclusão

  endif.

 endif.

ENDFORM.

...

 

...

                              nrinvoic = /pws/zycbe050-nrinvoic AND

                              nrparcf  = /pws/zycbe050-nrparcf AND

                              gsberf   = /pws/zycbe050-gsberf   AND

                              dtvincul = /pws/zycbe050-dtvincul AND

                              dtvencto = /pws/zycbe050-dtvencto.

        DELETE FROM /pws/zycbt051

        WHERE nrinvoic = itab_zycbt051-nrinvoic AND

                  nrparcf  = itab_zycbt051-nrparcf  AND

                  gsberf   = itab_zycbt051-gsberf   AND

                  dtpdd    = itab_zycbt051-dtpdd    AND

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

                  dtapr    = itab_zycbt051-dtapr."#EC CI_NOFIRST

* << Fim da exclusão

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

                  dtapr    = itab_zycbt051-dtapr.       "#EC CI_NOFIRST

* << Fim da inclusão

        DELETE TABLE itab_zycbt051.

        COMMIT WORK.

      ELSE.

        LOOP AT itab_zycbt032.

          MESSAGE i015 WITH itab_zycbt032-msg+0(50)

                            itab_zycbt032-msg+50(50).

        ENDLOOP.

      ENDIF.

    ELSE.

      LOOP AT itab_zycbt032.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F03

 

...

    /pws/zycbe005-dtvincul    = itab_zycbt005-dtvincul.

    /pws/zycbe005-frcont      = itab_zycbt005-frcont.

    /pws/zycbe005-ftxt        = itab_zycbt005-ftxt.

    /pws/zycbe005-txtinf      = itab_zycbt005-txtinf.

    /pws/zycbe005-txtobs      = itab_zycbt005-txtobs.

    /pws/zycbe005-kostl       = itab_zycbt005-kostl.

    /pws/zycbe005-prctr       = itab_zycbt005-prctr.

    /pws/zycbe005-fipos       = itab_zycbt005-fipos.

    /pws/zycbe005-j_1bbranch  = itab_zycbt005-j_1bbranch.

    /pws/zycbe005-werks       = itab_zycbt005-werks.

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

    /pws/zycbe005-deduz_juros = itab_zycbt005-deduz_juros.

    /pws/zycbe005-dtpagext    = itab_zycbt005-dtpagext.

    IF /pws/zycbe001-tpcontr(1) EQ 'S' OR

       /pws/zycbe001-tpcontr(1) EQ 'P'.

      /pws/zycbe006-dtpagext    = itab_zycbt005-dtpagext.

    ENDIF.

* << Fim da inclusão

    LOOP AT itab_zycbt005.

      PERFORM lock_record.

      IF ( /pws/zycbe001-tpcontr+0(1) EQ 'C' ) OR

         ( /pws/zycbe001-tpcontr+0(1) EQ 'E' ).

        EXIT.

      ENDIF.

      IF itab_zycbt005-status NE 'C'.

        v_ind_errocont     = 'X'.

        itab_zycbt005-flag = 'I'.

        MODIFY itab_zycbt005.

...

 

...

          itab_zycbt005-flag = 'I'.

          MODIFY itab_zycbt005 TRANSPORTING flag

              WHERE nrinvoic = itab_zycbt005_ant-nrinvoic AND

                    gsberf   = itab_zycbt005_ant-gsberf   AND

                    nrparcf  = itab_zycbt005_ant-nrparcf.

          v_ind_mudanca = 'X'.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

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

  DELETE /pws/zycbt005 FROM TABLE itab_zycbt005_ant.

* << Fim da inclusão

  IF v_ind_mudanca IS INITIAL.

    LOOP AT itab_zycbt005.

      IF itab_zycbt005-nrparc = '000'.

        itab_zycbt005-nrparc = sy-tabix.

        MODIFY itab_zycbt005 TRANSPORTING nrparc.

      ENDIF.

    ENDLOOP.

    MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

    IF wa_zycbt007-cfm = 'X'.

      LOOP AT itab_zycbt005.

...

 

...

    itab_zycbt005-frcont   = /pws/zycbe005-frcont.

    itab_zycbt005-ftxt     = /pws/zycbe005-ftxt.

    itab_zycbt005-txtinf   = /pws/zycbe005-txtinf.

    itab_zycbt005-txtobs   = /pws/zycbe005-txtobs.

    itab_zycbt005-dtvincul = /pws/zycbe005-dtvincul.

    itab_zycbt005-nrseqc   = /pws/zycbe001-nrseqc.

    itab_zycbt005-nrcontr  = /pws/zycbe001-nrcontr.

    itab_zycbt005-tpcontr  = /pws/zycbe001-tpcontr.

    itab_zycbt005-bconegoc = /pws/zycbe001-bconegoc.

    itab_zycbt005-bcofinan = /pws/zycbe001-bcofinan.

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

    itab_zycbt005-deduz_juros = /pws/zycbe005-deduz_juros.

    itab_zycbt005-dtpagext    = /pws/zycbe006-dtpagext.

* << Fim da inclusão

    READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt005-nrinvoic

                                      nrparcf  = itab_zycbt005-nrparcf

                                      gsberf   = itab_zycbt005-gsberf.

    IF sy-subrc = 0.

      itab_zycbt005-bukrs    = itab_zycbt017-bukrs.

    ELSE.

      itab_zycbt005-bukrs    = /pws/zycbe001-bukrs.

    ENDIF.

    itab_zycbt005-gsber    = /pws/zycbe001-gsber.

    itab_zycbt005-j_1bbranch = /pws/zycbe005-j_1bbranch.

...

 

...

    itab_zycbt005-bukrs    = /pws/zycbe001-bukrs.

  ENDIF.

  itab_zycbt005-gsber    = /pws/zycbe001-gsber.

  itab_zycbt005-j_1bbranch = /pws/zycbe005-j_1bbranch.

  itab_zycbt005-werks      = /pws/zycbe005-werks.

  itab_zycbt005-nrinvoic = /pws/zycbe005-nrinvoic.

  itab_zycbt005-nrparcf  = /pws/zycbe005-nrparcf.

  itab_zycbt005-gsberf   = /pws/zycbe005-gsberf.

  itab_zycbt005-dtvencto = /pws/zycbe005-dtvencto.

  itab_zycbt005-vlvinc   = /pws/zycbe005-vlvinc.

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

  itab_zycbt005-deduz_juros = /pws/zycbe005-deduz_juros.

  itab_zycbt005-dtpagext    = /pws/zycbe006-dtpagext.

* << Fim da inclusão

  itab_zycbt005-waers    = /pws/zycbe005-waers.

  itab_zycbt005-kunnr    = /pws/zycbe005-kunnr.

  itab_zycbt005-carencia = /pws/zycbe005-carencia.

  itab_zycbt005-vlcomis  = /pws/zycbe005-vlcomis.

  itab_zycbt005-slcomi   = /pws/zycbe005-vlcomis.

  itab_zycbt005-dtpror   = /pws/zycbe005-dtpror.

  itab_zycbt005-txjtotal = /pws/zycbe005-txjtotal.

  itab_zycbt005-tptxjur  = /pws/zycbe005-tptxjur.

  itab_zycbt005-dtjur    = /pws/zycbe005-dtjur.

  itab_zycbt005-vljur    = /pws/zycbe005-vljur.

...

 

...

  itab_zycbt005-slcomi   = /pws/zycbe005-vlcomis.

  itab_zycbt005-dtpror   = /pws/zycbe005-dtpror.

  itab_zycbt005-txjtotal = /pws/zycbe005-txjtotal.

  itab_zycbt005-tptxjur  = /pws/zycbe005-tptxjur.

  itab_zycbt005-dtjur    = /pws/zycbe005-dtjur.

  itab_zycbt005-vljur    = /pws/zycbe005-vljur.

  itab_zycbt005-belnr    = /pws/zycbe005-belnr.

  itab_zycbt005-vlme_p   = /pws/zycbe005-vlme_p.

  itab_zycbt005-text1    = t052u-text1.

  itab_zycbt005-dtcredext = /pws/zycbe005-dtcredext.

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

  itab_zycbt005-dtpagext    = /pws/zycbe006-dtpagext.

  itab_zycbt005-deduz_juros = /pws/zycbe005-deduz_juros.

* << Fim da inclusão

ENDFORM.

FORM local_negocio.

  CLEAR wa_t001w.

  SELECT SINGLE * FROM t001w INTO wa_t001w

    WHERE werks = /pws/zycbe005-werks.

ENDFORM.

FORM lock_record_fatura.

  CHECK sy-tcode = c_transacao_a OR sy-tcode = c_transacao_c.

  CHECK NOT itab_zycbt005-nrinvoic IS INITIAL.

  CALL FUNCTION '/PWS/ZYCB_ENQUEUE_ZYCBT017V'

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F04

 

...

        EXIT.

      ENDIF.

      PERFORM documento_contrato.

  ENDCASE.

  PERFORM verifica_documentos_sap

    USING

      itab_documento

    CHANGING

      itab_documento_erro.

  IF NOT itab_documento_erro IS INITIAL.

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

    if itab_zycbt005-status ne 'C'.

* << Fim da inclusão

    LOOP AT itab_documento_erro ASSIGNING <fs_documento>.

      MESSAGE i061 WITH

        text-286 <fs_documento>-belnr text-469 text-470.

    ENDLOOP.

    v_erro_documento = 'X'.

  ENDIF.

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

  endif.

* << Fim da inclusão

ENDFORM.

...

 

...

        WHEN 'O'.

          ASSIGN /pws/zycbe001-dtcontr TO <fs_dtdocto>.

        WHEN OTHERS.

          ASSIGN /pws/zycbe001-dtcred TO <fs_dtdocto>.

      ENDCASE.

      CASE /pws/zycbe001-tpcontr(1).

        WHEN 'P' OR 'S'.

          IF NOT <fs_zycbt002>-dtvincul IS INITIAL.

            UNASSIGN <fs_dtdocto>.

            ASSIGN <fs_zycbt002>-dtvincul TO <fs_dtdocto>.

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

          ENDIF.

* << Fim da exclusão

          IF NOT /pws/zycbe001-dtvincul IS INITIAL

             and /pws/zycbe001-dtvincul > <fs_dtdocto>.

            UNASSIGN <fs_dtdocto>.

            ASSIGN /pws/zycbe001-dtvincul TO <fs_dtdocto>.

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

            endif.

* << Fim da inclusão

          ENDIF.

        WHEN OTHERS.

          IF NOT /pws/zycbe001-dtvincul IS INITIAL.

...

 

...

        USING

          <fs_zycbt017>-bukrs

          <fs_belnr>

          <fs_budat>

          'S'.

    ENDIF.

    READ TABLE itab_zycbt030 WITH KEY nrinvoic = p_fatura-nrinvoic

                                      nrparcf  = p_fatura-nrparcf

                                      gsberf   = p_fatura-gsberf.

    IF itab_zycbt030-vlsltrans > 0.

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

      IF NOT <fs_zycbt030>-budat_t IS INITIAL.

* << Fim da exclusão

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

      if not <fs_zycbt030>-budat_t is initial

         and <fs_zycbt030>-budat_t > <fs_zycbt030>-budat.

* << Fim da inclusão

        ASSIGN <fs_zycbt030>-budat_t TO <fs_budat>.

      ELSE.

        ASSIGN <fs_zycbt030>-budat TO <fs_budat>.

      ENDIF.

      IF <fs_zycbt030>-belnr6 IS INITIAL.

        ASSIGN <fs_zycbt030>-belnr TO <fs_belnr>.

      ELSE.

        ASSIGN <fs_zycbt030>-belnr6 TO <fs_belnr>.

      ENDIF.

      PERFORM adiciona_documentos

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F05

 

...

      ENDIF.

    ELSE.

      IF screen-name EQ '/PWS/ZYCBE006-DTPAGEXT' OR

         screen-name EQ '/PWS/ZYCBE006-DTPAGTO'  OR

         screen-name EQ 'V_DTPAGEXT'             OR

         screen-name EQ 'V_DTPAGTOC'.

        MOVE '0' TO screen-input.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

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

    CHECK v_status_s NE 0.

    IF /pws/zycbe001-tpcontr(1) = 'P' OR

       /pws/zycbe001-tpcontr(1) = 'S'.

      IF screen-name = '/PWS/ZYCBE006-DTPAGEXT' OR

         screen-name = 'V_DTPAGEXT'.

        screen-input    = 1.

        screen-required = 0.

      ELSEIF screen-name = '/PWS/ZYCBE005-DEDUZ_JUROS' OR

             screen-name = 'TXT_DEDUZ_JUROS'.

        IF sy-tcode NE c_transacao_a.

          screen-invisible = 0.

          if /pws/zycbe001-ffrcalc = 'C'.

              screen-input = 0.

          else.

            IF not /pws/zycbe006-dtpagext IS INITIAL.

              screen-input = 1.

            ELSE.

              screen-input = 0.

              CLEAR /pws/zycbe005-deduz_juros.

            ENDIF.

          endif.

        ELSE.

          IF /pws/zycbe001-ffrcalc = 'C'.

            screen-input = 0.

          ENDIF.

        ENDIF.

      ENDIF.

    ELSEIF screen-name = '/PWS/ZYCBE005-DEDUZ_JUROS' OR

           screen-name = '/PWS/ZYCBE005-TXT_DEDUZ_JUROS'.

      screen-invisible = 1.

      screen-input     = 0.

    ENDIF.

    MODIFY SCREEN.

* << Fim da inclusão

  ENDLOOP.

ENDFORM.

FORM adiciona_linha_tc

  USING

    value(p_fieldname)  TYPE dynpread-fieldname

    value(p_fieldvalue)

    value(p_stepl)      TYPE dynpread-stepl

  CHANGING

    p_itab_dynpread     TYPE t_itab_dynpread.

  DATA:

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009F10

 

...

                 v_dtpagto_ant            NE /pws/zycbe006-dtpagto OR

                 v_dtpagext_ant           NE /pws/zycbe006-dtpagext ).

              /pws/zycbe001-slpagar = /pws/zycbe001-slpagar -

                                      itab_zycbt005-vlvinc.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

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

  SELECT SINGLE belnr2 FROM /pws/zycbt001

                INTO /pws/zycbe001-belnr2

* << Fim da exclusão

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

  select single belnr2 dtvincul from /pws/zycbt001

                into (/pws/zycbe001-belnr2,/pws/zycbe001-dtvincul)

* << Fim da inclusão

                WHERE nrseqc = /pws/zycbe001-nrseqc.

  v_belnr_001 = /pws/zycbe001-belnr2.

  IF p_estorno IS INITIAL.

    MODIFY /pws/zycbt001 FROM /pws/zycbe001.

    MODIFY /pws/zycbt005 FROM TABLE itab_zycbt005.

  ELSEIF NOT v_fat_alterada IS INITIAL.

    itab_zycbt005-belnr = /pws/zycbe001-belnr2.

    CLEAR itab_zycbt005-alterado.

    MODIFY itab_zycbt005 TRANSPORTING belnr alterado

                         WHERE NOT alterado IS initial.

...

 

...

  ELSE.

    CLEAR p_conta.

    MESSAGE i015 WITH text-498.

  ENDIF.

endform.

form altera_conta_contabil_0401.

  CHECK NOT /PWS/ZYCBE050-BANCO IS INITIAL.

  SHIFT /PWS/ZYCBE050-BANCO LEFT DELETING LEADING '0'.

    CHECK /PWS/ZYCBE050-CONTA_CONTAB IS INITIAL OR

          ( NOT /PWS/ZYCBE050-CONTA_CONTAB IS INITIAL AND

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

          not v_bco_cab                  is initial and

* << Fim da inclusão

            /PWS/ZYCBE050-BANCO NE v_bco_cab ).

    v_codaux1 = /PWS/ZYCBE050-BANCO.

    SHIFT v_codaux1 LEFT DELETING LEADING '0'.

    IF /pws/zycbt007-cont_disp EQ 'X'.

      PERFORM busca_conta_contabil

          USING 'C'

                itab_zycbt005-bukrs

                'FBK'

                v_codaux1

                v_codaux2

...

 

...

                itab_zycbt005-bukrs

                'FBK'

                v_codaux1

                v_codaux2

                space

          CHANGING

                /PWS/ZYCBE050-CONTA_CONTAB.

    ENDIF.

   v_bco_cab = /PWS/ZYCBE050-BANCO.

endform.

* >> Início da inclusão:

form processa_pre_pagamento.

  data : v_saldo   type /pws/zycbt001-slpagar,

         v_dias_c  type /pws/zycbt010-nrdias,

         v_tpjur   type /pws/zycbt010-nrdias,

         v_vljur   type /pws/zycbe005-vljur,

         v_nrparc  type /pws/zycbt002-nrparc,

         v_dtfinal type /pws/zycbe006-dtpagext.

  check v_status_s ne 0.

  clear : v_saldo, v_dias_c, v_tpjur, v_vljur, itab_zycbt010.

  if itab_zycbt002p_aux[] is initial.

    select * from /pws/zycbt002 into table itab_zycbt002p_aux

             where nrseqc   = /pws/zycbe001-nrseqc

               and tpparc   = 'J'.

  endif.

  clear itab_zycbt002p_aux-vigente.

  modify itab_zycbt002p_aux transporting vigente

                            where nrseqc = /pws/zycbe001-nrseqc.

  loop at itab_zycbt002p_aux where dtinicio <= /pws/zycbe006-dtpagext

                               and dtfinal  >= /pws/zycbe006-dtpagext.

    itab_zycbt002p_aux-vigente = 'X'.

    modify itab_zycbt002p_aux.

  endloop.

  v_saldo = /pws/zycbe001-slpagar.

  loop at itab_zycbt002p_aux where not vigente is initial.

    read table itab_zycbt010 with key tptxjur  =

                                      itab_zycbt002p_aux-tptxjur.

    if sy-subrc = 0.

      v_tpjur = itab_zycbt010-nrdias.

    endif.

    if itab_zycbt002p_aux-dtfinal < /pws/zycbe006-dtpagext.

      v_dtfinal  = itab_zycbt002p_aux-dtfinal.

    else.

      v_dtfinal  = /pws/zycbe006-dtpagext.

    endif.

    if v_saldo > 0 and itab_zycbt002p_aux-txjtotal > 0.

      v_dias_c = v_dtfinal - itab_zycbt002p_aux-dtinicio.

      v_vljur = v_vljur + ( v_saldo * itab_zycbt002p_aux-txjtotal /

                                100 ) / v_tpjur * v_dias_c.

    endif.

  endloop.

  read table itab_zycbt005 index 1.

  if sy-subrc = 0.

    itab_zycbt005-vljur = v_vljur.

    modify itab_zycbt005 index sy-tabix.

  endif.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCB009I01

 

...

                gsberf   = itab_zycbt005-gsberf.

    IF sy-subrc EQ 0.

      CLEAR: v_executa.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE calcula_juros INPUT.

  IF v_status_s EQ 0.

    EXIT.

  ENDIF.

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

  CHECK /pws/zycbe001-tpcontr+0(1) CA 'ACETD'.

* << Fim da exclusão

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

  IF /pws/zycbe001-tpcontr(1) NE 'P' AND

     /pws/zycbe001-tpcontr(1) NE 'S'.

* << Fim da inclusão

  LOOP AT itab_zycbt005.

    CHECK NOT itab_zycbt005-vlvinc IS INITIAL.

    IF itab_zycbt005-fcalcjur IS INITIAL.

      PERFORM processa_juros.

      MODIFY itab_zycbt005 INDEX v_index.

    ENDIF.

  ENDLOOP.

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

  ELSEIF NOT /pws/zycbe006-dtpagext IS INITIAL.

    perform processa_pre_pagamento.

  ENDIF.

* << Fim da inclusão

  IF  ok_code NE space.

    PERFORM prorrogacao_entrega.

  ENDIF.

ENDMODULE.

MODULE user_command_0010 INPUT.

  CASE ok_code.

    WHEN 'CS'.

      GET CURSOR FIELD v_campo VALUE v_valor.

      GET CURSOR LINE v_index.

      CHECK NOT v_index IS INITIAL.

...

 

...

    WHEN 'PB_HELP'.

      v_tela_help = '0051'.

      EXIT.

    WHEN 'CLOSE'.

      v_tela_help = '0052'.

      EXIT.

    WHEN 'SAVE'.

      IF NOT wa_zycbt089-bx_cli_vinc IS INITIAL.

        PERFORM verifica_liq_and.

      ENDIF.

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

      IF /pws/zycbe001-bcocred NE /pws/zycbe050-banco.

        UNPACK /pws/zycbe001-bcocred TO /pws/zycbe001-bcocred.

        UNPACK /pws/zycbe050-banco TO /pws/zycbe050-banco.

* << Fim da inclusão

     If /pws/zycbe001-BCOCRED ne /pws/zycbe050-banco.

         v_erro_bc  = 'X'.

         MESSAGE i015 WITH text-501 text-502.

         exit.

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

        ENDIF.

* << Fim da inclusão

     endif.

      IF wa_zycbt089-est_variacao IS INITIAL.

        PERFORM grava_devolucao.

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCB009TOP

 

...

         msg    LIKE /pws/zycbt032-msg,

       END OF itab_erro.

 DATA: BEGIN OF itab_erro1 OCCURS 0,

         vbeln  LIKE /pws/zycbt030-vbeln,

         msg    LIKE /pws/zycbt032-msg,

       END OF itab_erro1.

 DATA: BEGIN OF itab_zycbt002p_aux OCCURS 10.

         INCLUDE STRUCTURE /pws/zycbt002.

 DATA: vldif LIKE /pws/zycbt002-vlme,

       belnr_f02 LIKE /pws/zycbt002-belnr,

* >> Início da inclusão:

       vigente   type c,

* << Fim da inclusão

   END OF itab_zycbt002p_aux.

 DATA: BEGIN OF itab_belnr OCCURS 1.

 DATA: nrinvoic LIKE /pws/zycbt030-nrinvoic,

       nrparcf  LIKE /pws/zycbt030-nrparcf,

       belnr    LIKE /pws/zycbt030-belnr,

       gsberf   LIKE /pws/zycbt017-gsberf,

       budat    LIKE /pws/zycbt030-budat.

 DATA: END OF itab_belnr.

 DATA: itab_thead LIKE thead OCCURS 50 WITH HEADER LINE,

       itab_tline LIKE tline OCCURS 50 WITH HEADER LINE.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCBI003

 

...

              ADD itab_zycbt154-vlme TO v_vlrjprov.

            ENDIF.

          ENDIF.

        ENDLOOP.

        LOOP AT itab_relat_aux WHERE nrseqc   EQ itab_relat-nrseqc

                                 AND tpcontab EQ itab_relat-tpcontab

                                 AND ftpj     NE itab_relat-ftpj.

          EXIT.

        ENDLOOP.

        IF sy-subrc   NE 0 OR not v_conta_dif_parametro IS INITIAL OR

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

           ( sy-subrc EQ 0 AND itab_relat-ftpj = 'E' ).

* << Fim da exclusão

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

           ( sy-subrc eq 0 and itab_relat_aux-ftpj <>

                               itab_relat-ftpj ).

* << Fim da inclusão

          itab_relat-vlrprov  = v_vlmej2 - v_vlrjprov.

          itab_relat-vlirprov = v_vlmeir2 - v_vlirprov.

          MODIFY itab_relat INDEX v_sytabix

                            TRANSPORTING vlrprov vlirprov.

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

          clear: v_vlmej2, v_vlmeir2.

* << Fim da inclusão

        ENDIF.

      ENDIF.

      IF NOT v_conta_dif_parametro IS INITIAL.

...

 

...

  ENDCASE.

  READ TABLE itab_contas INDEX 1.

  itab_relat-c_newko = itab_contas-konth.

ENDFORM.

FORM processa_periodo_jc USING

                               value(p_dtfim) TYPE d.

  DATA: v_liq,

        v_dtde  LIKE /pws/zycbt002-dtinicio,

        v_dtate LIKE /pws/zycbt002-dtfinal,

        v_saldo LIKE /pws/zycbt001-vlme.

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

  read table itab_zycbt005 with key nrseqc = itab_zycbt001-nrseqc.

  if ( itab_zycbt001-tpcontr(1) eq 'P' or

       itab_zycbt001-tpcontr(1) eq 'S' ) and

     sy-subrc = 0 and not itab_zycbt005-dtpagext is initial.

    perform calcula_juros_vinculacao2 using v_liq

                                            v_dtde

                                            v_dtate

                                            v_saldo

                                            p_dtfim.

    exit.

  endif.

* << Fim da inclusão

  CLEAR itab_zycbt006_aux.

  REFRESH itab_zycbt006_aux.

  LOOP AT itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.

    MOVE itab_zycbt006 TO itab_zycbt006_aux.

    APPEND itab_zycbt006_aux.

  ENDLOOP.

  SORT itab_zycbt006 BY nrseqc dtpagto ASCENDING.

  SORT itab_zycbt006_aux BY dtpagto ASCENDING.

  LOOP AT itab_zycbt002j WHERE nrseqc = itab_zycbt001-nrseqc

                           AND dtinicio < p_dtfim.

...

 

...

      v_imp = 1.

    ENDIF.

  ENDIF.

ENDFORM.

FORM busca_descc.

  SELECT SINGLE txtdesc

  INTO v_descc

  FROM /pws/zycbt016

  WHERE tpcontr = itab_relat-tpcontr.

ENDFORM.

* >> Início da inclusão:

form calcula_juros_vinculacao1 using   p_saldo_final

                                       p_ultimo

                                       p_inicio

                                       p_saldo_aux

                                       p_linha2

                                       p_contr

                                       p_cont

                                       p_linha

                                       p_deduz

                                       p_dtfim.

  sort itab_zycbt005 by nrseqc dtpagext ascending.

  sort itab_zycbt005_aux by dtpagext ascending.

  loop at itab_zycbt002j where nrseqc   = itab_zycbt001-nrseqc and

                               dtinicio < p_dtfim.

    p_linha2 = p_linha2 + 1.

    clear: p_saldo_final, v_juros, p_ultimo.

    if itab_zycbt002j-tptxjur eq 'A'.

      v_base_dias = 360.

    elseif itab_zycbt002j-tptxjur eq 'M'.

      v_base_dias = 30.

    else.

      v_base_dias = 180.

    endif.

    clear p_linha.

    loop at itab_zycbt005 where nrseqc = itab_zycbt002j-nrseqc.

      p_linha = p_linha + 1.

    endloop.

    p_saldo_final = itab_zycbt001-vlme.

    loop at itab_zycbt005 where dtpagext < itab_zycbt002j-dtfinal and

                                dtpagext < s_dtentr               and

                                nrseqc  = itab_zycbt001-nrseqc.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlme_p.

    endloop.

    v_saldo_inicial = itab_zycbt001-vlme.

    loop at itab_zycbt005 where dtpagext <= itab_zycbt002j-dtinicio

                            and nrseqc  =  itab_zycbt001-nrseqc.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlme_p.

    endloop.

    move itab_zycbt005[] to itab_zycbt005_aux[].

    loop at itab_zycbt005 where nrseqc = itab_zycbt001-nrseqc

                            and dtpagext >= itab_zycbt002j-dtinicio

                            and dtpagext < itab_zycbt002j-dtfinal

                            and deduz_juros = 'X'.

    endloop.

    if sy-subrc eq 0.

      p_inicio = itab_zycbt002j-dtinicio.

      loop at itab_zycbt005

        where dtpagext >= itab_zycbt002j-dtinicio

          and dtpagext < itab_zycbt002j-dtfinal

          and dtpagext < s_dtentr

          and nrseqc  = itab_zycbt001-nrseqc.

        if p_ultimo eq itab_zycbt005-dtpagext.

          continue.

        endif.

        if p_inicio eq itab_zycbt005-dtpagext.

          if itab_zycbt005-deduz_juros = 'X'.

            p_deduz = 'X'.

          else.

            p_saldo_aux = p_saldo_aux + itab_zycbt005-vlme_p.

          endif.

          continue.

        endif.

        p_ultimo = itab_zycbt005-dtpagext.

        if itab_zycbt005-deduz_juros = 'X'.

          p_deduz    = 'X'.

          v_per_dias = p_ultimo - p_inicio.

         v_juros  = ( v_saldo_inicial * itab_zycbt002j-txjtotal / 100 )

                                         * ( v_per_dias / v_base_dias ).

          itab_relat-vlme  = v_saldo_inicial.

          itab_relat-dtde  = p_inicio.

          itab_relat-dtate = p_ultimo.

        else.

          clear p_deduz.

          if p_ultimo < s_dtentr.

            v_per_dias = p_ultimo - p_inicio.

          else.

            v_per_dias = s_dtentr - p_inicio.

            p_ultimo   = s_dtentr.

          endif.

         v_juros = ( v_saldo_inicial *  itab_zycbt002j-txjtotal / 100 )

                                        *  ( v_per_dias / v_base_dias ).

          itab_relat-vlme  = v_saldo_inicial.

          itab_relat-dtde  = p_inicio.

          itab_relat-dtate = p_ultimo.

          p_saldo_aux = p_saldo_aux + itab_zycbt005-vlme_p.

        endif.

        p_inicio = itab_zycbt005-dtpagext.

        if p_deduz eq 'X'.

          loop at itab_zycbt005_aux

            where dtpagext eq  itab_zycbt005-dtpagext  and

                  nrseqc   eq itab_zycbt005-nrseqc   and

                ( tpdesp   ne itab_zycbt005-tpdesp   or

                  nrparc   ne itab_zycbt005-nrparc   or

                  dtincl   ne itab_zycbt005-dtincl   or

                  nrinvoic ne itab_zycbt005-nrinvoic or

                  gsberf   ne itab_zycbt005-gsberf   or

                  dtvincul ne itab_zycbt005-dtvincul or

                  dtvencto ne itab_zycbt005-dtvencto ).

           v_saldo_inicial = v_saldo_inicial - itab_zycbt005_aux-vlme_p.

          endloop.

          v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlme_p.

          clear p_saldo_aux.

        endif.

        itab_relat-vlmej = v_juros.

        perform seleciona_taxa.

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

        clear p_cont.

      endloop.

      if sy-subrc eq 0.

        if  itab_zycbt002j-dtfinal < s_dtentr.

          v_per_dias = itab_zycbt002j-dtfinal - p_inicio.

        else.

          v_per_dias = s_dtentr - p_inicio.

        endif.

        v_juros = ( v_saldo_inicial *  itab_zycbt002j-txjtotal / 100 )

                                     *  ( v_per_dias / v_base_dias ).

        itab_relat-vlmej = v_juros.

        itab_relat-vlme  = v_saldo_inicial.

        itab_relat-dtde  = p_inicio.

        if  itab_zycbt002j-dtfinal < s_dtentr.

          itab_relat-dtate = itab_zycbt002j-dtfinal.

        else.

          itab_relat-dtate = s_dtentr.

        endif.

        perform seleciona_taxa.

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

      else.

        describe table itab_zycbt002j_aux lines p_linha.

        if p_linha2 eq p_linha.

          if itab_zycbt002j-dtfinal < p_dtfim.

            v_per_dias = itab_zycbt002j-dtfinal - p_inicio.

           v_juros = ( p_saldo_final *  itab_zycbt002j-txjtotal / 100 )

                                         * ( v_per_dias / v_base_dias )

                                                                       .

            itab_relat-vlmej = v_juros.

            itab_relat-vlme  = p_saldo_final.

            itab_relat-dtde  = p_inicio.

            itab_relat-dtate = itab_zycbt002j-dtfinal.

          else.

            v_per_dias = p_dtfim - p_inicio.

           v_juros = ( p_saldo_final *  itab_zycbt002j-txjtotal / 100 )

                                        *  ( v_per_dias / v_base_dias ).

            itab_relat-vlmej = v_juros.

            itab_relat-vlme  = p_saldo_final.

            itab_relat-dtde  = p_inicio.

            itab_relat-dtate = p_dtfim.

          endif.

        else.

          if itab_zycbt002j-dtfinal < s_dtentr.

            v_per_dias = itab_zycbt002j-dtfinal - p_inicio.

          else.

            v_per_dias = s_dtentr - p_inicio.

          endif.

          v_juros = ( p_saldo_final *  itab_zycbt002j-txjtotal / 100 )

                   * ( v_per_dias / v_base_dias ).

          itab_relat-vlmej = v_juros.

          itab_relat-vlme  = p_saldo_final.

          itab_relat-dtde  = p_inicio.

          if itab_zycbt002j-dtfinal < s_dtentr.

            itab_relat-dtate = itab_zycbt002j-dtfinal.

          else.

            itab_relat-dtate = s_dtentr.

          endif.

        endif.

        perform seleciona_taxa.

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

      endif.

    else.

      if s_dtentr < itab_zycbt002j-dtfinal.

        v_per_dias = s_dtentr - itab_zycbt002j-dtinicio.

        v_juros = ( v_saldo_inicial *  itab_zycbt002j-txjtotal / 100 )

                 * ( v_per_dias / v_base_dias ).

        itab_relat-vlmej = v_juros.

        itab_relat-vlme  = v_saldo_inicial.

        itab_relat-dtde  = itab_zycbt002j-dtinicio.

        itab_relat-dtate = s_dtentr.

        perform seleciona_taxa.

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

      else.

        v_per_dias = itab_zycbt002j-dtfinal - itab_zycbt002j-dtinicio.

        v_juros = ( v_saldo_inicial *  itab_zycbt002j-txjtotal / 100 )

                 * ( v_per_dias / v_base_dias ).

        itab_relat-vlmej = v_juros.

        itab_relat-vlme  = v_saldo_inicial.

        itab_relat-dtde  = itab_zycbt002j-dtinicio.

        itab_relat-dtate = itab_zycbt002j-dtfinal.

        perform seleciona_taxa.

        itab_relat-txc   = v_taxac.

        itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

        perform preenche_itab_relat.

        append itab_relat.

      endif.

    endif.

    clear p_cont.

  endloop.

  p_saldo_final = itab_zycbt001-vlme.

  loop at itab_zycbt005 where dtpagext < s_dtentr

                          and nrseqc = itab_zycbt001-nrseqc.

    if itab_zycbt005-waers ne itab_relat-waers.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlvinc.

    else.

      p_saldo_final = p_saldo_final - itab_zycbt005-vlme_p.

    endif.

  endloop.

  v_saldo_inicial = itab_zycbt001-vlme.

  loop at itab_zycbt005 where dtpagext < itab_relat-dtate and

                              nrseqc  = itab_zycbt001-nrseqc.

    if itab_zycbt005-waers ne itab_relat-waers.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlvinc.

    else.

      v_saldo_inicial = v_saldo_inicial - itab_zycbt005-vlme_p.

    endif.

  endloop.

  if s_dtentr > itab_relat-dtate

    and p_deduz eq 'X'.

    v_per_dias = s_dtentr - itab_relat-dtate.

    v_juros = ( p_saldo_final *  itab_zycbt002j-txjtotal / 100 )

            * ( v_per_dias / v_base_dias ).

    if not v_juros is initial.

      itab_relat-vlmej = v_juros.

      itab_relat-vlme = p_saldo_final.

      itab_relat-dtde = itab_relat-dtate.

      itab_relat-dtate = s_dtentr.

      perform seleciona_taxa.

      itab_relat-txc   = v_taxac.

      itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

      perform preenche_itab_relat.

      append itab_relat.

    endif.

  elseif s_dtentr > itab_relat-dtate.

    v_per_dias = s_dtentr - itab_relat-dtate.

    v_juros = ( p_saldo_final   *  itab_zycbt002j-txjtotal / 100 )

            * ( v_per_dias / v_base_dias ).

    if not v_juros is initial.

      itab_relat-vlmej = v_juros.

      itab_relat-vlme  = p_saldo_final.

      itab_relat-dtde  = itab_relat-dtate.

      itab_relat-dtate = s_dtentr.

      perform seleciona_taxa.

      itab_relat-txc   = v_taxac.

      itab_relat-vlmij = itab_relat-vlmej * itab_relat-txc.

      perform preenche_itab_relat.

      append itab_relat.

    endif.

  endif.

  clear p_contr.

endform.

form calcula_juros_vinculacao2 using    p_liq

                                        p_dtde

                                        p_dtate

                                        p_saldo

                                        p_dtfim.

  clear itab_zycbt005_aux.

  refresh itab_zycbt005_aux.

  loop at itab_zycbt005 where nrseqc = itab_zycbt001-nrseqc.

    move itab_zycbt005 to itab_zycbt005_aux.

    append itab_zycbt005_aux.

  endloop.

  sort itab_zycbt005 by nrseqc dtpagext ascending.

  sort itab_zycbt005_aux by dtpagext ascending.

  p_saldo = itab_zycbt001-slpagar.

  loop at itab_zycbt002j where nrseqc = itab_zycbt001-nrseqc

                           and dtinicio < p_dtfim.

    clear p_liq.

    p_dtde  = itab_zycbt002j-dtinicio.

    p_dtate = itab_zycbt002j-dtfinal.

    loop at itab_zycbt005 where nrseqc   = itab_zycbt001-nrseqc    and

                                dtpagext  > itab_zycbt002j-dtinicio and

                                dtpagext <= itab_zycbt002j-dtfinal.

      p_liq = 'X'.

      itab_relat-dtde  = p_dtde.

      if itab_zycbt005-dtpagext < s_dtentr.

        itab_relat-dtate = itab_zycbt005-dtpagext.

      else.

        itab_relat-dtate = s_dtentr.

      endif.

      itab_relat-vlme  = p_saldo.

      itab_relat-ftpj = 'A'.

      perform preenche_itab_relat.

      p_dtde  = itab_relat-dtate.

      p_dtate = itab_relat-dtate.

      check not itab_relat is initial.

      check itab_relat-dtde =< itab_relat-dtate.

      perform processa_calculo_juros using itab_relat-vlme

                                           itab_zycbt002j-txjtotal

                                           itab_zycbt002j-tptxjur

                                           itab_relat-dtde

                                           itab_relat-dtate

                                           itab_zycbt001-waers

                                           itab_zycbt011-ctmoed

                                           'A'.

      p_saldo = p_saldo - itab_zycbt005-vlme_p.

    endloop.

    if p_dtate < itab_zycbt002j-dtfinal.

      itab_relat-dtde  = p_dtde.

      if itab_zycbt002j-dtfinal < s_dtentr.

        itab_relat-dtate = itab_zycbt002j-dtfinal.

      else.

        itab_relat-dtate = s_dtentr.

      endif.

      check itab_relat-dtde < itab_relat-dtate.

      itab_relat-vlme  = p_saldo.

      itab_relat-ftpj = 'A'.

      perform preenche_itab_relat.

      p_dtde  = itab_relat-dtate.

      p_dtate = itab_relat-dtate.

      check not itab_relat is initial.

      perform processa_calculo_juros using itab_relat-vlme

                                           itab_zycbt002j-txjtotal

                                           itab_zycbt002j-tptxjur

                                           itab_relat-dtde

                                           itab_relat-dtate

                                           itab_zycbt001-waers

                                           itab_zycbt011-ctmoed

                                           'A'.

    endif.

    if p_liq is initial.

      itab_relat-dtde  = p_dtde.

      if itab_zycbt002j-dtfinal < s_dtentr.

        itab_relat-dtate = itab_zycbt002j-dtfinal.

      else.

        itab_relat-dtate = s_dtentr.

      endif.

      itab_relat-vlme  = p_saldo.

      itab_relat-ftpj = 'A'.

      perform preenche_itab_relat.

      p_dtde  = itab_relat-dtate.

      p_dtate = itab_relat-dtate.

      check not itab_relat is initial.

      check itab_relat-dtde =< itab_relat-dtate.

      perform processa_calculo_juros using itab_relat-vlme

                                           itab_zycbt002j-txjtotal

                                           itab_zycbt002j-tptxjur

                                           itab_relat-dtde

                                           itab_relat-dtate

                                           itab_zycbt001-waers

                                           itab_zycbt011-ctmoed

                                           'A'.

    endif.

  endloop.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCBR003

 

...

  itab_zycbt002j     LIKE /pws/zycbt002 OCCURS 20 WITH HEADER LINE,

  itab_zycbt002j_aux LIKE /pws/zycbt002 OCCURS 20 WITH HEADER LINE,

  itab_zycbt002c TYPE STANDARD TABLE OF /pws/zycbt002

    WITH HEADER LINE,

  itab_zycbt074 TYPE STANDARD TABLE OF t_zycbt074 WITH HEADER LINE,

  itab_zycbt003      LIKE /pws/zycbt003 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004      LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004_pr   LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt004_ence LIKE /pws/zycbt004 OCCURS 20 WITH HEADER LINE,

  itab_zycbt005      LIKE /pws/zycbt005 OCCURS 20 WITH HEADER LINE,

* >> Início da inclusão:

  itab_zycbt005_aux  LIKE /pws/zycbt005 OCCURS 20 WITH HEADER LINE,

* << Fim da inclusão

  itab_zycbt005_pos  LIKE /pws/zycbt005 OCCURS 10 WITH HEADER LINE,

  itab_zycbt005_ence LIKE /pws/zycbt005 OCCURS 10 WITH HEADER LINE,

  itab_zycbt006_pos  LIKE /pws/zycbt006 OCCURS 10 WITH HEADER LINE,

  itab_zycbt006      LIKE /pws/zycbt006 OCCURS 20 WITH HEADER LINE,

  itab_zycbt006_aux  LIKE /pws/zycbt006 OCCURS 20 WITH HEADER LINE,

  itab_zycbt006_ence LIKE /pws/zycbt006 OCCURS 20 WITH HEADER LINE,

  itab_pagos         LIKE /pws/zycbt006 OCCURS  0 WITH HEADER LINE,

                                                            "#EC NEEDED

  itab_zycbt017      LIKE /pws/zycbt017 OCCURS 20 WITH HEADER LINE,

  itab_zycbt136      LIKE /pws/zycbt136 OCCURS 20 WITH HEADER LINE,

...

 

...

  v_nrdias = itab_zycbt010-nrdias.

  CLEAR itab_zycbt002j_aux.

  REFRESH itab_zycbt002j_aux.

  LOOP AT itab_zycbt002j WHERE nrseqc   = itab_zycbt001-nrseqc AND

                               dtinicio < p_dtfim.

    MOVE itab_zycbt002j TO itab_zycbt002j_aux.

    APPEND itab_zycbt002j_aux.

  ENDLOOP.

  CHECK sy-subrc EQ 0.

  CLEAR v_linha2.

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

  READ TABLE itab_zycbt005 WITH KEY nrseqc = itab_zycbt001-nrseqc.

  IF ( itab_zycbt001-tpcontr(1) EQ 'P' OR

       itab_zycbt001-tpcontr(1) EQ 'S' ) AND

     sy-subrc = 0 AND NOT itab_zycbt005-dtpagext IS INITIAL.

    PERFORM calcula_juros_vinculacao1 USING v_saldo_final

                                            v_ultimo

                                            v_inicio

                                            v_saldo_aux

                                            v_linha2

                                            v_contr

                                            v_cont

                                            v_linha

                                            v_deduz

                                            p_dtfim.

    EXIT.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycbt002j WHERE nrseqc   = itab_zycbt001-nrseqc AND

                               dtinicio < p_dtfim.

    v_linha2 = v_linha2 + 1.

    CLEAR: v_saldo_final, v_juros, v_ultimo.

    IF itab_zycbt002j-tptxjur EQ 'A'.

      v_base_dias = 360.

    ELSEIF itab_zycbt002j-tptxjur EQ 'M'.

      v_base_dias = 30.

    ELSE.

      v_base_dias = 180.

...

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBE005

 

 

Incluir DTPAGEXT depois do campo DTVENCTO. Seu elemento de dados é /PWS/ZYCBL289.

 

Incluir no final da tabela o campo DEDUZ_JUROS, com elemento de dados /PWS/ZYCBL485

 

 

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

Modificações efetuadas em TABD /PWS/ZYCBT005

 

 

Incluir campo DTPAGEXT depois do campo DTVENCTO. Tornar o campo DTPAGEXT como chave, flegando Chv e

Inic.. Seu elemento de dados é /PWS/ZYCBL289.

 

Incluir no final da tabela o campo DEDUZ_JUROS, com elemento de dados /PWS/ZYCBL485