Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Contrato
Data/Hora da Publicação: 01/10/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 16:58:13
Descrição da Nota: LIQUIDAÇÃO DE ACC COM PRÉ - EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001
Sintoma
Liquidação de ACC com Pré - ao excluir o contrato vinculado na Liquidação de ACC com Pré pagamento
e incluir novamente o saldo está incorreto.
Solução
Atualizar os dados na tabela de contrato mesmo se apagar o registro antes de excluir.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09121 Data: 01/10/2009 Hora: 08:58:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09121
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02946 - 00001 - 6.0 - 00026 - PARÂMETRO /PWS/ZYGL007 CFM SIM - DUMP VERSÃO 4.7 OU SUPERIOR
----------------------------------------------------------------------------------------------------
LIQUIDAÇÃO DE ACC COM PRÉ - EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001
----------------------------------------------------------------------------------------------------
Palavras Chave:
LIQUIDAÇÃO DE ACC COM PRÉ - EXCLUSAO DO ITEM NAO ATUALIZA A TABELA 001
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB014F01
/PWS/MZYCB014TOP
/PWS/MZYCB014I01
REPT /PWS/SAPMZYCB014
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014F01
...
elseif sy-tcode = '/PWS/ZYCB014_A'. " Alteração de Vinculação
loop at itab_zycbt061.
read table itab_aux2_zycbt061 with key
nrseq = itab_zycbt061-nrseq
nrseq_c = itab_zycbt061-nrseq_c.
* >> Início da inclusão: form grava_tabelas
if sy-subrc = 0.
* << Fim da inclusão
* ALTERANDO /PWS/ZYCBT001 QUANDO O 'VLALT' DIMINUIR
if itab_aux2_zycbt061-vlalt > itab_zycbt061-vlalt.
v_saldo =
itab_aux2_zycbt061-vlalt - itab_zycbt061-vlalt.
select single *
from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
/pws/zycbt001-slvinc = /pws/zycbt001-slvinc + v_saldo.
/pws/zycbt001-slpagar = /pws/zycbt001-slpagar + v_saldo.
/pws/zycbt001-f_slvinc = ' '.
...
...
* ALTERANDO /PWS/ZYCBT001 QUANDO O 'VLALT' AUMENTAR
elseif itab_aux2_zycbt061-vlalt < itab_zycbt061-vlalt.
v_saldo =
itab_zycbt061-vlalt - itab_aux2_zycbt061-vlalt.
select single *
from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
/pws/zycbt001-slvinc = /pws/zycbt001-slvinc - v_saldo.
/pws/zycbt001-slpagar = /pws/zycbt001-slpagar - v_saldo.
if /pws/zycbt001-slvinc = 0.
/pws/zycbt001-f_slvinc = 'X'.
endif.
* CFM - Log de Tabelas - Luciana - 04/06/2004
if /pws/zycbt007-cfm = 'X'.
select *
from /pws/zycbt001
into wa_zycbt001_log
where nrseqc = itab_zycbt061-nrseq_c.
endselect.
endif.
* CFM - Log de Tabelas - Luciana - 04/06/2004
modify /pws/zycbt001.
* CFM - Log de Tabelas - Luciana - 04/06/2004
if /pws/zycbt007-cfm = 'X'.
perform monta_log_cfm using wa_zycbt001_log
'/PWS/ZYCBT001'
changing wa_log.
if wa_zycbt001_log is initial.
perform grava_log using '/PWS/ZYCBT001'
wa_log
'C'.
else.
perform grava_log using '/PWS/ZYCBT001'
wa_log
'A'.
endif.
endif.
* CFM - Log de Tabelas - Luciana - 04/06/2004
endif.
* >> Início da inclusão: form grava_tabelas
else.
select single *
from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
/pws/zycbt001-slvinc = /pws/zycbt001-slvinc - itab_zycbt061-vlalt.
/pws/zycbt001-slpagar = /pws/zycbt001-slpagar - itab_zycbt061-vlalt.
if /pws/zycbt001-slvinc = 0.
/pws/zycbt001-f_slvinc = 'X'.
endif.
modify /pws/zycbt001.
commit work.
endif.
* << Fim da inclusão
endloop.
endif.
...
...
endselect.
perform monta_log_cfm using wa_zycbt061_log
'/PWS/ZYCBT061'
changing wa_log.
if not wa_zycbt061_log is initial.
perform grava_log using '/PWS/ZYCBT061'
wa_log
'E'.
endif.
endif.
* >> Início da exclusão: FORM ELIMINA_PROCESSO
delete from /pws/zycbt061
where nrseq = /pws/zycbe060-nrseq.
* << Fim da exclusão
if /pws/zycbt007-cfm = 'X'.
select *
from /pws/zycbt062
into wa_zycbt062_log
where nrseq = /pws/zycbe060-nrseq.
endselect.
perform monta_log_cfm using wa_zycbt062_log
'/PWS/ZYCBT062'
changing wa_log.
if not wa_zycbt062_log is initial.
...
...
perform monta_log_cfm using wa_zycbt004_log
'/PWS/ZYCBT004'
changing wa_log.
perform grava_log using '/PWS/ZYCBT004'
wa_log
'E'.
endif.
endif.
delete from /pws/zycbt004
where nrseqc = /pws/zycbe060-nrseq.
* >> Início da inclusão: FORM ELIMINA_PROCESSO
if itab_zycbt061[] is initial.
select *
from /pws/zycbt061
into table itab_zycbt061
where nrseq = /pws/zycbe060-nrseq.
endif.
* << Fim da inclusão
loop at itab_zycbt061.
* >> Início da exclusao: FORM ELIMINA_PROCESSO
if not v_excl = 'X'.
* << Fim da exclusao
select single * from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
/pws/zycbt001-slvinc = /pws/zycbt001-slvinc +
itab_zycbt061-vlalt.
/pws/zycbt001-slpagar = /pws/zycbt001-slpagar +
itab_zycbt061-vlalt.
modify /pws/zycbt001.
* >> Início da inclusão: FORM ELIMINA_PROCESSO
commit work.
* << Fim da inclusão
* >> Início da exclusao: FORM ELIMINA_PROCESSO
endif.
* << Fim da exclusao
if itab_zycbt061-tpcontr_c(1) ca 'PS'.
select *
from /pws/zycbt002 into table itab_zycbt002
where nrseqc = itab_zycbt061-nrseq_c and
tpparc = 'P'.
select *
from /pws/zycbt067 into table itab_zycbt067
for all entries in itab_zycbt002
where nrseq_c = itab_zycbt002-nrseqc.
loop at itab_zycbt002.
check not itab_zycbt067[] is initial.
read table itab_zycbt067 with key
nrseq_c = itab_zycbt002-nrseqc.
v_vlme = itab_zycbt002-vlme - itab_zycbt067-vlme.
if v_vlme eq 0.
itab_zycbt002-slvinc =
itab_zycbt002-slvinc + itab_zycbt067-vlme.
else.
itab_zycbt002-slvinc =
itab_zycbt002-slvinc + v_vlme.
endif.
delete itab_zycbt067 index sy-tabix.
delete from /pws/zycbt067 where nrseq_c = itab_zycbt002-nrseqc
and nrparc = itab_zycbt002-nrparc.
update /pws/zycbt002 set slvinc = itab_zycbt002-slvinc
where nrseqc = itab_zycbt002-nrseqc
and nrparc = itab_zycbt002-nrparc.
commit work.
endloop.
v_ok = 'X'.
endif.
endloop.
loop at itab_zycbt061.
delete itab_zycbt061 index sy-tabix.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014TOP
...
data: mark, "#EC *
v_lin type i, "#EC *
v_nrseq like /pws/zycbe060-nrseq,
v_campo(20) type c, "#EC *
v_valor(8) type c, "#EC *
v_status_s value 1, "Informa status tela exib./inib
v_tot like /pws/zycbt060-vlme,"#EC * "Total do pré pagamento
wa_cols type cxtab_column, "Controla exibição dos campos
v_flag(3) type c, "Verif. se reg. será gravado
v_tp_pagt_dp(1) type c, " Aux. Dp. Captação
v_resp, "Reposta do Poupup
v_incl, "#EC * "Informa qdo modo editável
v_sair(3) type c value 'NO', "SAIR DO MODULE
v_nrcontr like /pws/zycbt060-nrcontr,
v_continua , "#EC *
v_empresa like /pws/zycbt060-bukrs,
* >> Início da inclusão
v_excl type c,
* << Fim da inclusão
v_transacao like shkontext-tcode,
v_incluido(3) type c value 'NO',
v_salvar(3) type c value 'NO', "#EC *
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB014I01
...
when 'EXCL'.
loop at itab_zycbt061
where mark = 'X'.
* Só permite excluir se juros não estiver pago
perform verifica_juros_pago using itab_zycbt061-nrseq
itab_zycbt061-nrseq_c.
if sy-subrc ne 0.
* >> Início da inclusão: module user_command_0100 input.
select single * from /pws/zycbt001
where nrseqc = itab_zycbt061-nrseq_c.
describe table itab_zycbt061 lines v_lin.
if v_lin ne '1' .
/pws/zycbt001-slvinc = /pws/zycbt001-slvinc +
itab_zycbt061-vlalt.
/pws/zycbt001-slpagar = /pws/zycbt001-slpagar +
itab_zycbt061-vlalt.
modify /pws/zycbt001.
v_excl = 'X'.
* << Fim da inclusão
delete itab_zycbt061 index sy-tabix.
* >> Início da inclusão: module user_command_0100 input.
else.
message i061 with text-466 .
endif.
* << Fim da inclusão
else.
message i061 with text-030 itab_zycbt061-nrseq_c text-049.
endif.
endloop.
perform calculos_itab_zycbt061.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB014
Modificado símbolo de texto:
Idioma: PT
Símbolo: 466
Texto: (32 caracteres)
"Excluir o registro pela lixeira."
Comprimento máximo: 32