Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Captação
Data/Hora da Publicação: 06/11/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 16:35:44
Descrição da Nota: CAPTAÇÃO - DP COM ORDEM DE VENDA MAIS DE 1 ITEM
Sintoma
Captação - DP com Ordem de Venda mais de 1 item - o programa não segue por causa de uma mensagem
incorreta.
Solução
Tratar o programa para verificar a ordem de venda com mais de 1 item.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09338 Data: 06/11/2009 Hora: 18:05:38
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09338
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
03011 - 00001 - 6.0 - 00026 - CAPTAÇÃO - CAMPO IRRELEVANTE PARA CONTABILIZAÇÃO NRCONTR
03292 - 00002 - 6.0 - 00026 - CAPTAÇÃO - DP - PONTO DE EXIT F-29 E CONSITÊNCIA ORDEM
03856 - 00003 - 7.0 - 00001 - CAPTAÇÃO - EXIT CPT015 - COMISSÃO
04030 - 00004 - 7.0 - 00002 - CAPTAÇÃO - DP - ITENS ORDEM PAGAMENTO - VALOR ZERO
09100 - 00005 - 8.0 - 00001 - CAPTAÇÃO - DP DOWN PAYMENT - ORDEM DE VENDA
----------------------------------------------------------------------------------------------------
CAPTAÇÃO - DP COM ORDEM DE VENDA MAIS DE 1 ITEM
----------------------------------------------------------------------------------------------------
Palavras Chave:
CAPTAÇÃO - DP COM ORDEM DE VENDA MAIS DE 1 ITEM
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB001F01
REPS /PWS/MZYCB001X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F01
...
kunnr like vbpa-kunnr,
end of itab_vbpa.
data: v_soma like vbap-netwr,
v_valor like vbap-netwr,
v_sub like vbap-netwr,
v_idx like sy-tabix,
v_itens type i.
data: v_msg1(30),
v_msg2(25).
data: v_loop(3) type n,
* >> Início da inclusão: FORM VERIFICA_ORDEM
v_valortotal like /pws/zycbt221-vlr_item,
v_totrateio like /pws/zycbt221-vlr_rateio,
* << Fim da inclusão
v_valoritem like /pws/zycbt221-vlr_item.
clear: itab_vbap.
refresh: itab_vbap.
clear: v_soma, v_itens, v_sub, v_pagador, v_tipo, v_moeda.
if wa_zycbt221[] is initial.
loop at itab_zycbt221.
move-corresponding itab_zycbt221 to wa_zycbt221.
append wa_zycbt221.
endloop.
endif.
...
...
loop at itab_vbap.
if itab_vbap-waerk ne /pws/zycbe001-waers.
v_moeda = 1.
v_ordem = itab_vbap-vbeln.
delete wa_zycbt221 where ordem = /pws/zycbe221-ordem.
endif.
endloop.
endif.
select * from /pws/zycbt221
into table itab_zycbt221_aux
* >> Início da exclusão: FORM VERIFICA_ORDEM
for all entries in wa_zycbt221
* << Fim da exclusão
where nrseqc ne /pws/zycbe001-nrseqc and
ordem = wa_zycbt221-ordem and
item = wa_zycbt221-item. "#EC CI_NOFIRST
* >> Início da inclusão: FORM VERIFICA_ORDEM
if not itab_zycbt221[] is initial.
* << Fim da inclusão
if sy-tcode ne c_transacao_e .
if v_pass is initial.
v_valoritem = wa_zycbt221-vlr_item.
loop at itab_zycbt221_aux where ordem = wa_zycbt221-ordem and
...
...
v_pass = 'X'.
if v_valoritem > '0'.
modify wa_zycbt221 index 1.
endif.
if not v_msg1 is initial .
message i061 with text-505 wa_zycbt221-ordem
text-506 v_msg1 .
endif.
endif.
clear v_valoritem.
* >> Início da exclusão: FORM VERIFICA_ORDEM
v_valoritem = /pws/zycbe001-vlme + itab_zycbt221_aux-vlr_rateio.
if v_valoritem > wa_zycbt221-vlr_item.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ORDEM
clear v_valortotal.
clear v_totrateio.
loop at itab_zycbt221 where ordem = wa_zycbt221-ordem.
v_valortotal = v_valortotal + itab_zycbt221-vlr_item.
endloop.
select * from /pws/zycbt221
into table itab_zycbt221_aux2
where nrseqc ne /pws/zycbe001-nrseqc and
ordem = wa_zycbt221-ordem .
if sy-subrc ne 0.
v_valoritem = /pws/zycbe001-vlme .
else.
loop at itab_zycbt221_aux2.
v_totrateio = v_totrateio + itab_zycbt221_aux2-vlr_rateio.
endloop.
v_valoritem = /pws/zycbe001-vlme + v_totrateio.
endif.
if v_valoritem > v_valortotal.
if v_erro_2 is initial.
* << Fim da inclusão
message i061 with text-505 wa_zycbt221-ordem
text-507 .
v_erro_ov = 'X'.
v_erro_2 = 'X'.
delete wa_zycbt221 where ordem = /pws/zycbe221-ordem.
* >> Início da inclusão: FORM VERIFICA_ORDEM
endif.
endif.
* << Fim da inclusão
endif.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001X01
...
data: begin of itab_zycbt221 occurs 0.
include structure /pws/zycbt221.
data: mark type c,
end of itab_zycbt221.
data: begin of wa_zycbt221 occurs 0.
include structure itab_zycbt221.
data: end of wa_zycbt221.
data: wa_zycbt221_aux like wa_zycbt221 occurs 0 with header line.
data: itab_zycbt221_aux like wa_zycbt221 occurs 0 with header line.
data: itab_zycbt221_ant like wa_zycbt221 occurs 0 with header line.
* >> Início da inclusão:
data: itab_zycbt221_aux2 like wa_zycbt221 occurs 0 with header line.
* << Fim da inclusão
data: begin of itab_zycbt034 occurs 10.
include structure /pws/zycbt034.
data: end of itab_zycbt034.
types begin of t_comissao.
include structure /pws/zycbt002.
types: mark type c,
end of t_comissao,
begin of t_zycbt031_comissao,
nrseq type /pws/zycbt031-nrseq,
dtboleto type /pws/zycbt031-dtboleto,
...