Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: SML - Sistema de Pagto. Moeda Inter
Data/Hora da Publicação: 03/06/2011 00:00:00
Data/Hora Última Alteração: 03/06/2011 14:58:32
Descrição da Nota: SML - ESTORNO DE VÁRIAS FATURAS E RAZÃO ESPECIAL DE PAGAMENTO ANTECIPADO
Sintoma
O programa estava utilizando o Razão Especial incorreto e não estava atualizando o saldo
a liquidar corretamente na tabela /PWS/ZYCBT030
Solução
O programa foi ajustado para buscar o evento corretamente no lançamento do estorno
e para calcular corretamente o Saldo a Liquidar da tabela /PWS/ZYCBT030
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11203 Data: 03/06/2011 Hora: 13:28:13
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11203
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00073
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05482 - 00001 - 7.0 - 00003 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO
07931 - 00002 - 7.0 - 00008 - DA - SISTEMA DE PAGAMENTOS EM MOEDA LOCAL E ASSOCIAÇÃO(SML)
----------------------------------------------------------------------------------------------------
SML - ESTORNO DE VÁRIAS FATURAS E RAZÃO ESPECIAL DE PAGAMENTO ANTECIPADO
----------------------------------------------------------------------------------------------------
Palavras Chave:
SISTEMA DE PAGAMENTOS EM MOEDA LOCAL - ESTORNO DE VÁRIAS FATURAS
TABELA ZYCBT030 - CODIGO DE RAZÃO ESPECIAL DE PAGAMENTO ANTECIPADO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB034F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
wa_zycbt036-cpochv = wa_zycbe033-cpochv.
wa_zycbt036-tabela = '/PWS/ZYCBT226'.
IF NOT <fs_op>-belnr_assoc IS INITIAL.
wa_zycbt036-belnr = <fs_op>-belnr_assoc.
wa_zycbt036-dtdocto = <fs_op>-dt_assoc.
ELSE.
wa_zycbt036-belnr = <fs_op>-belnr_op.
wa_zycbt036-dtdocto = <fs_op>-dtlancto.
ENDIF.
APPEND wa_zycbt036 TO itab_zycbt036.
* >> Início da exclusão: FORM ESTORNO
READ TABLE itab_zycbt011 INTO wa_zycbt011
WITH KEY
codeven = '001DP'
codmod = c_modulo
bukrs = <fs_op>-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycbt011 INTO wa_zycbt011
WITH TABLE KEY
codeven = '001DP'
codmod = c_modulo
bukrs = space.
ENDIF.
* << Fim da exclusão
wa_zycbe033-d_newko = <fs_op>-kunag.
wa_zycbe033-koart = 'D'.
wa_zycbe033-agums = wa_zycbt011-agums.
ELSEIF p_processo = 'OM'.
wa_zycbt036-tcode = 'F-30'.
wa_zycbt036-cpochv = wa_zycbe033-cpochv.
wa_zycbt036-tabela = '/PWS/ZYCBT226'.
IF NOT <fs_op>-belnr_op2 IS INITIAL.
wa_zycbt036-belnr = <fs_op>-belnr_op2.
wa_zycbt036-dtdocto = <fs_op>-dtlancto2.
...
...
ENDCASE.
ENDFORM.
FORM apaga_registros.
DATA v_nrseq_op TYPE /pws/zycbt226-nrseq.
CHECK <fs_op>-belnr_op IS INITIAL AND
<fs_op>-belnr_desm_cli IS INITIAL AND
<fs_op>-belnr_desmliqand IS INITIAL AND
<fs_op>-belnr_compens IS INITIAL.
v_nrseq_op = <fs_op>-nrseq.
MODIFY /pws/zycbt209 FROM TABLE itab_zycbt209.
* >> Início da inclusão: FORM APAGA_REGISTROS
PERFORM atualiza_saldos_sml USING 'X'.
* << Fim da inclusão
MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.
* >> Início da exclusão: FORM APAGA_REGISTROS
PERFORM atualiza_saldos_sml USING 'X'.
* << Fim da exclusão
DELETE itab_zycbt226 WHERE nrseq = v_nrseq_op.
DELETE FROM /pws/zycbt226 WHERE nrseq = v_nrseq_op.
DELETE itab_zycbt225 WHERE nrseq = v_nrseq_op.
DELETE FROM /pws/zycbt225 WHERE nrseq = v_nrseq_op.
ENDFORM.
FORM f02_reversa
...
...
ENDFORM.
FORM atualiza_saldos_sml USING p_estorno.
CHECK sy-tcode+13(3) = 'SML'.
IF p_estorno IS INITIAL.
READ TABLE itab_zycbt030 WITH KEY nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf
INTO wa_zycbt030.
IF sy-subrc EQ '0'.
wa_zycbt030-vlslliq = wa_zycbt030-vlslliq - <fs_op>-vlr_exterior.
* >> Início da inclusão: FORM ATUALIZA_SALDOS_SML
MODIFY itab_zycbt030 FROM wa_zycbt030
TRANSPORTING vlslliq
WHERE nrinvoic EQ wa_zycbt030-nrinvoic
AND gsberf EQ wa_zycbt030-gsberf
AND nrparcf EQ wa_zycbt030-nrparcf.
* << Fim da inclusão
UPDATE /pws/zycbt030
SET vlslliq = wa_zycbt030-vlslliq
WHERE nrinvoic = wa_zycbt030-nrinvoic
AND nrparcf = wa_zycbt030-nrparcf
AND gsberf = wa_zycbt030-gsberf.
ENDIF.
READ TABLE itab_zycbt017 WITH KEY nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf
INTO wa_zycbt017.
...
...
AND gsberf = wa_zycbt209-gsberf.
ENDLOOP.
ELSE.
READ TABLE itab_zycbt030 WITH KEY nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf
INTO wa_zycbt030.
IF sy-subrc EQ '0'.
wa_zycbt030-vlslliq = wa_zycbt030-vlslliq +
<fs_op>-vlr_exterior.
* >> Início da inclusão: FORM ATUALIZA_SALDOS_SML
MODIFY itab_zycbt030 FROM wa_zycbt030
TRANSPORTING vlslliq
WHERE nrinvoic EQ wa_zycbt030-nrinvoic
AND gsberf EQ wa_zycbt030-gsberf
AND nrparcf EQ wa_zycbt030-nrparcf.
* << Fim da inclusão
UPDATE /pws/zycbt030
SET vlslliq = wa_zycbt030-vlslliq
WHERE nrinvoic = wa_zycbt030-nrinvoic
AND nrparcf = wa_zycbt030-nrparcf
AND gsberf = wa_zycbt030-gsberf.
ENDIF.
READ TABLE itab_zycbt017 WITH KEY nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf
INTO wa_zycbt017.
...