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
7.0
Produto:
Nota
Descrição
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