Módulo: CÂMBIO IMPORTAÇÃO
Funcionalidade: Rotina de Pagamento
Data/Hora da Publicação: 13/09/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 09:51:08
Descrição da Nota: COMPLEMENTO DO BOLETO
Sintoma
Criei uma fatura de importação no câmbio, fiz o complemento do boleto e a saída de pagamento, depois
fiz a associação da fatura com uma fatura de carga, quando tentei pagar o residual da fatura de
carga o programa exibe a mensagem de que existe boleto para a fatura quando entro em modificar
fatura para poder fazer o pagamento parcial.
Se entro em processar boleto o programa tb não exibe o residual para pagamento.
Solução
Ajustes no complemento do boleto. Rotina de pagamento processar boleto
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04712 Data: 13/09/2007 Hora: 16:07:29
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04712
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00012
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01689 - 00001 - 6.0 - 00024 - ATUALIZAÇÃO FATURA DE IMPORTAÇÃO MATCHCODE.
----------------------------------------------------------------------------------------------------
COMPLEMENTO DO BOLETO
----------------------------------------------------------------------------------------------------
Palavras Chave:
PROCESSAR BOLETO, COMPLEMENTO DO BOLETO, SAÍDA DE PAGAMENTO, ASSOCIAÇÃO
DE FATURA, ESTORNO DE FATURA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB110F01
REPS /PWS/MZYCM110F01
REPS /PWS/MZYGL110F01
REPS /PWS/ZYCBR102
REPS /PWS/MZYCB106F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB110F01
...
ENDIF.
UPDATE /pws/zycbt145 SET
belnr_saida = /pws/zycbe145-belnr_saida
WHERE nrseq = /pws/zycbe031-nrseq.
ENDIF.
LOOP AT itab_zycbt031_tc.
CLEAR v_slpgfat.
READ TABLE itab_zycbt119 WITH KEY
nrseq = itab_zycbt031_tc-nrcorresp.
IF sy-subrc = 0.
* >> Início da exclusão: FORM EXECUTA_F53
v_slpgfat =
itab_zycbt119-slpgfat - itab_zycbt031_tc-v_vlme.
* << Fim da exclusão
* >> Início da inclusão: FORM EXECUTA_F53
v_slpgfat = 0.
* << Fim da inclusão
UPDATE /pws/zycbt119 SET belnr2 = itab_zycbt032-belnr
statusp = 'C'
dtpagto = sy-datum
slpgfat = v_slpgfat
WHERE nrseq = itab_zycbt031_tc-nrcorresp.
UPDATE /pws/zycbt108 SET belnr_lq = itab_zycbt032-belnr
slfat = v_slpgfat
WHERE nrseq_pgfat = itab_zycbt031_tc-nrcorresp.
ENDIF.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCM110F01
...
itab_zycbe033-waers = wa_zycbt007-waersb.
ENDIF.
itab_zycbe033-waersb = wa_zycbt007-waersb.
IF /pws/zycbe031-contabreal IS INITIAL.
itab_zycbe033-kursf = /pws/zycbe031-kursf.
ENDIF.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-012.
itab_zycbe033-blart = wa_zycbt011-blart.
* >> Início da exclusão: FORM FILL_DATE_F-63_IP
PERFORM verify_null_field USING wa_zycbt119-slpgfat
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F-63_IP
IF /pws/zycbe031-contabreal IS INITIAL.
PERFORM verify_null_field USING /pws/zycbe031-vlme
* << Fim da inclusão
'VLME'
text-013.
* >> Início da exclusão: FORM FILL_DATE_F-63_IP
IF /pws/zycbe031-contabreal IS INITIAL.
* << Fim da exclusão
itab_zycbe033-wrbtr = /pws/zycbe031-vlme.
ELSE.
* >> Início da inclusão: FORM FILL_DATE_F-63_IP
PERFORM verify_null_field USING /pws/zycbe031-vlmi
'VLME'
text-013.
* << Fim da inclusão
itab_zycbe033-wrbtr = /pws/zycbe031-vlmi.
ENDIF.
PERFORM verify_null_field USING /pws/zycbe031-vlmi
'VLMI'
text-068.
IF /pws/zycbe031-contabreal IS INITIAL.
itab_zycbe033-dmbtr = /pws/zycbe031-vlmi.
ELSE.
itab_zycbe033-dmbtr = 0.
ENDIF.
...
...
itab_zycmt005-dtpagto = /pws/zycbe031-dtcredpr.
MODIFY itab_zycmt005 INDEX sy-tabix.
UPDATE /pws/zycmt005 SET belnr_pag = itab_zycbt032-belnr
dtpagto = /pws/zycbe031-dtcredpr
WHERE nrseq = itab_zycbt064-nrchave
AND nrparc = itab_zycbt064-nrparc.
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat EQ itab_zycbt064-nrchave.
* >> Início da inclusão: FORM FILL_DATE_F-63_IP
wa_zycbt108-slfat = 0.
* << Fim da inclusão
* >> Início da exclusão: FORM FILL_DATE_F-63_IP
wa_zycbt108-slfat = wa_zycbt108-slfat - itab_zycmt005-valor.
* << Fim da exclusão
MODIFY /pws/zycbt108 FROM wa_zycbt108.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
wa_zycbt119-statusp = 'P'.
* >> Início da exclusão: FORM FILL_DATE_F-63_IP
wa_zycbt119-slpgfat = wa_zycbt119-slpgfat -
itab_zycmt005-valor.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE_F-63_IP
wa_zycbt119-slpgfat = 0.
* << Fim da inclusão
MODIFY /pws/zycbt119 FROM wa_zycbt119.
ENDLOOP.
ELSE.
LOOP AT itab_zycbt064.
CLEAR: wa_zycbt119, wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
...
...
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat EQ itab_zycbt064-nrchave.
MODIFY /pws/zycbt108 FROM wa_zycbt108.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
wa_zycbt119-statusp = 'P'.
* >> Início da exclusão: FORM REG_FECH_IP
wa_zycbt119-slpgfat = wa_zycbt119-slpgfat -
itab_zycmt005-valor.
* << Fim da exclusão
* >> Início da inclusão: FORM REG_FECH_IP
wa_zycbt119-slpgfat = 0.
* << Fim da inclusão
MODIFY /pws/zycbt119 FROM wa_zycbt119.
ENDLOOP.
ELSE.
LOOP AT itab_zycbt064.
CLEAR: wa_zycbt119, wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYGL110F01
...
ELSE.
/pws/zycbe031-status = 'E'.
PERFORM atualiza_fatura.
ENDIF.
EXIT.
ENDIF.
PERFORM verif_aprov.
CLEAR erro_bi.
IF /pws/zycbe031-statusp IS INITIAL OR /pws/zycbe031-statusp = 'I' .
/pws/zycbe031-status = 'E'.
* >> Início da inclusão: FORM MARCA_EXCLUSAO
IF /pws/zycbe031-mdcorresp = 'IP'.
PERFORM atualiza_itab_119_108.
ENDIF.
* << Fim da inclusão
ELSEIF /pws/zycbe031-statusp EQ 'P' AND v_est_aprov EQ 'N'.
IF /pws/zycbe031-mdcorresp = 'IP'.
IF /pws/zycbe031-nrparc NE ' ' AND
/pws/zycbe031-nrparc NE '000'.
CLEAR /pws/zycbt031-nrparc.
SELECT SINGLE nrparc FROM /pws/zycbt031
INTO /pws/zycbt031-nrparc
WHERE nrseq NE /pws/zycbe031-nrseq
AND nrcorresp EQ /pws/zycbe031-nrcorresp
AND nrparc > /pws/zycbe031-nrparc
...
...
wa_zycbt118-statusp = 'I'.
CLEAR: wa_zycbt118-belnr_p,
wa_zycbt118-dtpagto.
MODIFY /pws/zycbt118 FROM wa_zycbt118.
WHEN 'CD'.
wa_zycbt118-statusp = 'I'.
CLEAR: wa_zycbt118-belnr_p,
wa_zycbt118-dtpagto.
MODIFY /pws/zycbt118 FROM wa_zycbt118.
WHEN 'IP'.
* >> Início da inclusão: FORM EXCLUI_BOLETO
PERFORM atualiza_itab_119_108.
* << Fim da inclusão
* >> Início da exclusão: FORM EXCLUI_BOLETO
CLEAR itab_zycbt064.
REFRESH itab_zycbt064.
SELECT *
FROM /pws/zycbt064
INTO TABLE itab_zycbt064
WHERE nrboleto EQ /pws/zycbe031-nrseq AND
dtboleto EQ /pws/zycbe031-dtboleto.
IF /pws/zycbe031-nrparc NE ' ' AND
/pws/zycbe031-nrparc NE '000'.
LOOP AT itab_zycbt064.
READ TABLE itab_zycmt005 WITH KEY
nrseq = itab_zycbt064-nrchave
nrparc = itab_zycbt064-nrparc.
CLEAR: itab_zycmt005-belnr_pag,
itab_zycmt005-belnr_resid,
itab_zycmt005-dtpagto.
MODIFY itab_zycmt005 INDEX sy-tabix.
UPDATE /pws/zycmt005 SET belnr_pag = space
belnr_resid = space
dtpagto = space
WHERE nrseq EQ itab_zycbt064-nrchave
AND nrparc EQ itab_zycbt064-nrparc.
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat EQ itab_zycbt064-nrchave.
wa_zycbt108-slfat = wa_zycbt108-slfat + itab_zycmt005-valor.
MODIFY /pws/zycbt108 FROM wa_zycbt108.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
wa_zycbt119-slpgfat = wa_zycbt119-slpgfat +
itab_zycmt005-valor.
MODIFY /pws/zycbt119 FROM wa_zycbt119.
ENDLOOP.
ELSE.
LOOP AT itab_zycbt064.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat = wa_zycbt119-nrseq.
wa_zycbt119-statusp = 'I'.
CLEAR: wa_zycbt119-belnr_p,
wa_zycbt119-belnr51,
wa_zycbt119-dtpagto.
CLEAR /pws/zycit006.
SELECT SINGLE * FROM /pws/zycit006 INTO /pws/zycit006
WHERE nrseq = wa_zycbt119-nrpagto
AND nrseq_pgfat = wa_zycbt119-nrseq.
IF sy-subrc EQ 0 OR NOT wa_zycbt108-belnr_co IS INITIAL.
wa_zycbt119-slpgfat =
wa_zycbt119-slpgfat + itab_zycbt064-vlme.
wa_zycbt108-slfat =
wa_zycbt108-slfat + itab_zycbt064-vlme.
ENDIF.
MODIFY /pws/zycbt119 FROM wa_zycbt119.
MODIFY /pws/zycbt108 FROM wa_zycbt108.
ENDLOOP.
ENDIF.
* << Fim da exclusão
WHEN 'ED'.
wa_despesa-status = 'I'.
CLEAR wa_despesa-dtpagto.
IF NOT wa_despesa-frpagto = 'C' OR
( wa_despesa-tpcontr(1) CA 'PS' AND
wa_despesa-tpdesp EQ 'J' ).
CLEAR wa_despesa-belnr.
ENDIF.
FREE: itab_zycbt064_aux, itab_zycbt004_aux.
SELECT nrchave nrinvoic nrparc dtliquid tpjuros
...
...
ENDIF.
APPEND 'endform. ' TO t_prog.
GENERATE SUBROUTINE POOL t_prog NAME w_prog.
IF sy-subrc = 0.
PERFORM log IN PROGRAM (w_prog) USING p_dados
p_tabela
CHANGING p_wa_log
IF FOUND.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM atualiza_itab_119_108.
CLEAR itab_zycbt064.
REFRESH itab_zycbt064.
SELECT *
FROM /pws/zycbt064
INTO TABLE itab_zycbt064
WHERE nrboleto EQ /pws/zycbe031-nrseq AND
dtboleto EQ /pws/zycbe031-dtboleto.
IF /pws/zycbe031-nrparc NE ' ' AND
/pws/zycbe031-nrparc NE '000'.
LOOP AT itab_zycbt064.
READ TABLE itab_zycmt005 WITH KEY
nrseq = itab_zycbt064-nrchave
nrparc = itab_zycbt064-nrparc.
CLEAR: itab_zycmt005-belnr_pag,
itab_zycmt005-belnr_resid,
itab_zycmt005-dtpagto.
MODIFY itab_zycmt005 INDEX sy-tabix.
UPDATE /pws/zycmt005 SET belnr_pag = space
belnr_resid = space
dtpagto = space
WHERE nrseq EQ itab_zycbt064-nrchave
AND nrparc EQ itab_zycbt064-nrparc.
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat EQ itab_zycbt064-nrchave.
wa_zycbt108-slfat = wa_zycbt108-slfat + itab_zycmt005-valor.
MODIFY /pws/zycbt108 FROM wa_zycbt108.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
wa_zycbt119-slpgfat = wa_zycbt119-slpgfat +
itab_zycmt005-valor.
MODIFY /pws/zycbt119 FROM wa_zycbt119.
ENDLOOP.
ELSE.
LOOP AT itab_zycbt064.
CLEAR wa_zycbt119.
SELECT SINGLE * FROM /pws/zycbt119
INTO wa_zycbt119
WHERE nrseq EQ itab_zycbt064-nrchave.
CLEAR wa_zycbt108.
SELECT SINGLE * FROM /pws/zycbt108
INTO wa_zycbt108
WHERE nrseq_pgfat = wa_zycbt119-nrseq.
wa_zycbt119-statusp = 'I'.
CLEAR: wa_zycbt119-belnr_p,
wa_zycbt119-belnr51,
wa_zycbt119-dtpagto.
CLEAR /pws/zycit006.
SELECT SINGLE * FROM /pws/zycit006 INTO /pws/zycit006
WHERE nrseq = wa_zycbt119-nrpagto
AND nrseq_pgfat = wa_zycbt119-nrseq.
IF sy-subrc EQ 0 OR NOT wa_zycbt108-belnr_co IS INITIAL.
wa_zycbt119-slpgfat =
wa_zycbt119-slpgfat + itab_zycbt064-vlme.
wa_zycbt108-slfat =
wa_zycbt108-slfat + itab_zycbt064-vlme.
ENDIF.
MODIFY /pws/zycbt119 FROM wa_zycbt119.
MODIFY /pws/zycbt108 FROM wa_zycbt108.
ENDLOOP.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR102
...
tline,
indx,
/pws/zycbt048,
/pws/zycmt013,
/pws/zycme013,
/pws/zygle500,
/pws/zyglt340,
/pws/zyglt343,
j_1bbranch,
adrc,
* >> Início da exclusão:
t001w.
* << Fim da exclusão
* >> Início da inclusão:
t001w,
/pws/zycbt108.
* << Fim da inclusão
DATA:
BEGIN OF itab_boleto_aux OCCURS 100,
flag TYPE c,
mod(15) TYPE c,
nrchave(10) TYPE c,
docto(10) TYPE c,
tab(30) TYPE c,
tpparc LIKE /pws/zycbt113-tpparc,
nrparc LIKE /pws/zycbt113-nrparc,
tipo(30) TYPE c,
...
...
itab_zycbt064-mdcorresp TO /pws/zycbt064-mdcorresp,
itab_zycbt064-tpparc TO /pws/zycbt064-tpparc,
itab_zycbt064-nrparc TO /pws/zycbt064-nrparc,
itab_zycbt064-dtincl TO /pws/zycbt064-dtincl,
itab_zycbt064-tpdesp TO /pws/zycbt064-tpdesp,
itab_zycbt064-nrseq TO /pws/zycbt064-nrseq,
itab_zycbt064-tpjuros TO /pws/zycbt064-tpjuros,
itab_zycbt064-gsberf TO /pws/zycbt064-gsberf,
itab_zycbt064-prctr TO /pws/zycbt064-prctr.
INSERT INTO /pws/zycbt064 VALUES /pws/zycbt064.
* >> Início da inclusão: FORM GRAVA_ZYCBT064
IF itab_zycbt064-mdcorresp EQ 'IP'.
CLEAR /pws/zycit006.
SELECT SINGLE * FROM /pws/zycit006 INTO /pws/zycit006
WHERE nrseq = itab_zycbt064-nrinvoic
AND nrseq_pgfat = itab_zycbt064-nrchave.
IF sy-subrc EQ 0.
UPDATE /PWS/ZYCBT119 SET slpgfat = 0
WHERE nrseq = itab_zycbt064-nrchave.
UPDATE /PWS/ZYCBT108 SET slfat = 0
WHERE nrseq_pgfat = itab_zycbt064-nrchave.
ELSE.
SELECT SINGLE *
FROM /PWS/ZYCBT108 INTO /PWS/ZYCBT108
WHERE nrseq_pgfat = itab_zycbt064-nrchave.
IF ( sy-subrc = 0 AND
NOT /PWS/ZYCBT108-belnr_co IS INITIAL ).
UPDATE /PWS/ZYCBT119 SET slpgfat = 0
WHERE nrseq = itab_zycbt064-nrchave.
UPDATE /PWS/ZYCBT108 SET slfat = 0
WHERE nrseq_pgfat = itab_zycbt064-nrchave.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDLOOP.
CLEAR itab_zycbt064.
REFRESH itab_zycbt064.
ELSEIF sy-ucomm = 'PROC'.
MOVE: v_count TO /pws/zycbt064-nrboleto,
sy-datum TO /pws/zycbt064-dtboleto,
itab_selreg_aux-nrchave TO /pws/zycbt064-nrchave,
itab_selreg_aux-nrinvoic TO /pws/zycbt064-nrinvoic,
itab_selreg_aux-nrparcf TO /pws/zycbt064-nrparcf,
itab_selreg_aux-tipo TO /pws/zycbt064-tipo,
...
...
itab_selreg_aux-fmd TO /pws/zycbt064-mdcorresp,
itab_selreg_aux-tpparc TO /pws/zycbt064-tpparc,
itab_selreg_aux-nrparc TO /pws/zycbt064-nrparc,
itab_selreg_aux-dtincl TO /pws/zycbt064-dtincl,
itab_selreg_aux-tpdesp TO /pws/zycbt064-tpdesp,
itab_zycbt064-nrseq TO /pws/zycbt064-nrseq,
itab_selreg_aux-gsberf TO /pws/zycbt064-gsberf,
itab_selreg_aux-prctr TO /pws/zycbt064-prctr,
itab_selreg_aux-tpjuros TO /pws/zycbt064-tpjuros.
INSERT /pws/zycbt064.
* >> Início da inclusão: FORM GRAVA_ZYCBT064
IF itab_selreg_aux-fmd EQ 'IP'.
CLEAR /pws/zycit006.
SELECT SINGLE * FROM /pws/zycit006 INTO /pws/zycit006
WHERE nrseq = itab_selreg_aux-nrinvoic
AND nrseq_pgfat = itab_selreg_aux-nrchave.
IF sy-subrc EQ 0.
UPDATE /PWS/ZYCBT119 SET slpgfat = 0
WHERE nrseq = itab_selreg_aux-nrchave.
UPDATE /PWS/ZYCBT108 SET slfat = 0
WHERE nrseq_pgfat = itab_selreg_aux-nrchave.
ELSE.
SELECT SINGLE *
FROM /PWS/ZYCBT108 INTO /PWS/ZYCBT108
WHERE nrseq_pgfat = itab_selreg_aux-nrchave.
IF ( sy-subrc = 0 AND
NOT /PWS/ZYCBT108-belnr_co IS INITIAL ).
UPDATE /PWS/ZYCBT119 SET slpgfat = 0
WHERE nrseq = itab_selreg_aux-nrchave.
UPDATE /PWS/ZYCBT108 SET slfat = 0
WHERE nrseq_pgfat = itab_selreg_aux-nrchave.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM seleciona_fornecedor.
IF NOT itab_selreg[] IS INITIAL.
SELECT lifnr name1
FROM lfa1
INTO TABLE itab_lfa1
FOR ALL ENTRIES IN itab_selreg
WHERE lifnr = itab_selreg-lifnr.
SELECT lifnr name1
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB106F01
...
SELECT SINGLE nrboleto FROM /pws/zycbt064 INTO v_nrboleto
WHERE mdcorresp = 'IP'
AND nrchave = /pws/zycbe119-nrseq.
IF sy-subrc NE 0.
SELECT SINGLE nrseq FROM /pws/zycbt031 INTO v_nrboleto
WHERE mdcorresp = 'IP'
AND nrcorresp = /pws/zycbe119-nrseq.
ENDIF.
* >> Início da exclusão: FORM CHECA_BOLETO
IF sy-subrc NE 0.
SELECT SINGLE nrseq FROM /pws/zycbt131 INTO v_nrboleto
WHERE mdcorresp = 'IP'
AND nrseq_pgfat = /pws/zycbe119-nrseq.
ENDIF.
* << Fim da exclusão
IF sy-dynnr = '0001'.
IF sy-subrc = 0.
MESSAGE i061 WITH text-048 text-049.
sy-tcode = '/PWS/ZYCB106_E'.
v_status_s = 0.
ENDIF.
ENDIF.
ENDFORM.
...