Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 22/08/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:41:54
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - SALDO DISPONIBILIDADE - VLSLF NEGATIVO
Sintoma
Ao criar valores mantidos no exterior de uma fatura que já foi vinculada, mas não liquidada, esta
deixando saldo a mais para disponibilidade, gerando valor negativo no campo /pws/zycbt017-vlslf e
ocorrendo dump.
Solução
Ler os registros da vinculação(/pws/zycbt005) e que não passaram por liquidação(/pws/zycbt006), para
que seja subtraído do saldo a disponibilizar no valores mantidos exterior, desta forma permite
apenas o valor correto, evitando valor negativo na tabela de fatura.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07188 Data: 22/08/2008 Hora: 14:56:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07188
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00061
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
06218 - 00001 - 7.0 - 00005 - VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR - SALDO DISPONIBILIDADE - VLSLF NEGATIVO
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR - SALVA VLR MAIOR DISPONIBILIDADE VLSLF NEG
CONSIDERAR VINCULAÇÃO LIQUIDAÇÃO VLSLF NEGATIVO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB034F01
REPS /PWS/MZYCB034I01
REPS /PWS/MZYCB034TOP
REPT /PWS/SAPMZYCB034
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
p_destino TYPE /pws/zycbt238-destino
CHANGING p_itab_destino TYPE t_t_disponibilidade.
DATA:
v_codaux1 TYPE /pws/zygle316-codaux1,
v_codaux2 TYPE /pws/zygle316-codaux2,
v_codaux3 TYPE /pws/zygle316-codaux3,
v_existe TYPE char1,
wa_destino LIKE LINE OF p_itab_destino.
FIELD-SYMBOLS:
<fs_origem> LIKE LINE OF p_itab_origem.
* >> Início da inclusão: FORM MOVER_DADOS
IF NOT p_itab_origem[] IS INITIAL.
SELECT * FROM /pws/zycbt005 INTO TABLE itab_zycbt005
FOR ALL ENTRIES IN p_itab_origem
WHERE nrinvoic = p_itab_origem-nrinvoic
AND nrparcf = p_itab_origem-nrparcf
AND gsberf = p_itab_origem-gsberf.
SELECT * FROM /pws/zycbt006 INTO TABLE itab_zycbt006
FOR ALL ENTRIES IN p_itab_origem
WHERE nrinvoic = p_itab_origem-nrinvoic
AND nrparcf = p_itab_origem-nrparcf
AND gsberf = p_itab_origem-gsberf.
ENDIF.
* << Fim da inclusão
LOOP AT p_itab_origem ASSIGNING <fs_origem> WHERE mark EQ 'X'.
CHECK <fs_origem>-status EQ c_contabilizado.
LOOP AT p_itab_destino INTO wa_destino
WHERE nrseq = <fs_origem>-nrseq.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_destino-nrseq
destino = wa_destino-destino
dtdisp = wa_destino-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034I01
...
PERFORM atualiza_tc_devolucao
USING itab_devolucao
tc_devolucao.
ENDCASE.
ENDMODULE.
MODULE guarda_ts_atual INPUT.
wa_controle-ts_atual = ts_principal-activetab.
ENDMODULE.
MODULE verifica_campos INPUT.
DATA:
* >> Início da exclusão: MODULE VERIFICA_CAMPOS
wa_disp LIKE LINE OF itab_disp_30,
v_sldext TYPE /pws/zycbe226-sld_exterior.
* << Fim da exclusão
* >> Início da inclusão: MODULE VERIFICA_CAMPOS
wa_disp LIKE LINE OF itab_disp_30,
v_sldext TYPE /pws/zycbe226-sld_exterior,
v_valor_vinculado TYPE /pws/zycbe005-vlme_p,
v_saldoreal_disp TYPE /pws/zycbe226-sld_exterior,
v_saldoreal_disp2(20) TYPE c.
* << Fim da inclusão
CLEAR:
wa_contrato,
v_sldext.
CASE sy-dynnr.
WHEN '0120'.
LOOP AT itab_disp_00 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
...
...
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
v_sldext = v_sldext + /pws/zycbe238-vldisp.
* >> Início da inclusão: MODULE VERIFICA_CAMPOS
IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR
v_sldext GT /pws/zycbe226-sld_exterior.
MESSAGE e061
WITH 'Valor maior que o saldo. Favor corrigir.'(033).
ELSE.
CLEAR:v_valor_vinculado, v_saldoreal_disp.
READ TABLE itab_zycbt006 WITH KEY
nrinvoic = /pws/zycbe226-nrinvoic
nrparcf = /pws/zycbe226-nrparcf
gsberf = /pws/zycbe226-gsberf.
IF sy-subrc NE 0.
LOOP AT itab_zycbt005 WHERE nrinvoic = /pws/zycbe226-nrinvoic
AND nrparcf = /pws/zycbe226-nrparcf
AND gsberf = /pws/zycbe226-gsberf.
v_valor_vinculado = v_valor_vinculado +
itab_zycbt005-vlme_p.
ENDLOOP.
v_saldoreal_disp = /pws/zycbe226-sld_exterior -
v_valor_vinculado.
IF /pws/zycbe238-vldisp GT v_saldoreal_disp OR
v_sldext GT v_saldoreal_disp.
WRITE v_saldoreal_disp TO v_saldoreal_disp2
CURRENCY /pws/zycbe226-waers.
condense v_saldoreal_disp2.
MESSAGE e061 WITH text-045 v_saldoreal_disp2
text-046 text-047.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE verifica_data_disp INPUT.
DATA:
v_destino TYPE /pws/zycbe238-destino.
CASE sy-dynnr.
WHEN '0120'.
v_destino = c_30.
WHEN '0131'.
v_destino = c_70.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034TOP
...
itab_disp_70 TYPE t_t_disponibilidade,
itab_contrato TYPE t_t_contrato,
itab_zycbt227 TYPE t_t_zycbt227,
itab_rendimentos TYPE t_t_rendimentos,
itab_disp_00 TYPE t_t_disponibilidade,
itab_disp_ant TYPE t_t_disponibilidade,
itab_contrato_ant TYPE t_t_contrato,
itab_doctos TYPE t_t_doctos,
itab_rendimentos_ant TYPE t_t_rendimentos,
itab_contabilizacoes TYPE t_t_contabilizacoes.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycbt005 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt005.
DATA: END OF itab_zycbt005.
DATA: BEGIN OF itab_zycbt006 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt006.
DATA: END OF itab_zycbt006.
* << Fim da inclusão
DATA: wa_zycbt007 TYPE t_s_zycbt007,
wa_zyglt009 TYPE t_s_zyglt009,
wa_zycbt089 TYPE t_s_zycbt089,
wa_controle TYPE t_controle,
wa_fat TYPE t_s_zycbt017,
wa_zycbt030 TYPE t_s_zycbt030.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB034
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 045
Texto: (40 caracteres)
"Valor excede saldo para disponibilidade:"
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 046
Texto: (45 caracteres)
". Fatura já está vinculada e ainda não possui"
Comprimento máximo: 45
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 047
Texto: (22 caracteres)
"liquidação. Verificar."
Comprimento máximo: 22