Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 03/04/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:23:54
Descrição da Nota: NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO
Sintoma
o custo efetivo está com valor duplicado.
Porque tem dados de origem Nota Fiscal com nrseqori zerado na tabela zycit036.
Solução
fazer tratamento para ajustar valores de custo efetivo.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03391 Data: 03/04/2007 Hora: 14:49:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03391
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00160
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02595 - 00001 - 6.0 - 00025 - AO CRIAR NF NÃO ATUALIZA TABELAS DO CE E DUPLICA VALORES DE IMPOS
----------------------------------------------------------------------------------------------------
NRSEQORI DUPLICADO GERA VALORES DUPLICADOS NO CUSTO
----------------------------------------------------------------------------------------------------
Palavras Chave:
NRSEQORI - NF - VALORES DUPLICADOS NO CUSTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/LZYCIGF2F01
REPS /PWS/ZYCIR006
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2F01
...
OTHERS = 3.
p_t_zycet005-mandt = p_t_dados-mandt.
p_t_zycet005-tcode = p_tcode.
p_t_zycet005-tabela = p_t_dados-tabela.
p_t_zycet005-cpochv = p_t_dados-cpochv.
p_t_zycet005-tpmsg = 'E'.
p_t_zycet005-nrmsg = p_nrmsg.
APPEND p_t_zycet005.
ENDLOOP.
ELSE.
* >> Início da inclusão: FORM CALL_TRANSACTION_J1B1
if not sy-msgv1 is initial.
* << Fim da inclusão
ADD 1 TO p_nrmsg.
CALL FUNCTION 'MESSAGE_PREPARE'
EXPORTING
language = sy-langu
msg_id = p_msgid
msg_no = p_msgno
msg_var1 = sy-msgv1
msg_var2 = sy-msgv2
msg_var3 = sy-msgv3
msg_var4 = sy-msgv4
...
...
p_t_zycet005-nrmsg = p_nrmsg.
p_t_zycet005-belnr = sy-msgv1.
SHIFT p_t_zycet005-belnr RIGHT DELETING TRAILING space.
TRANSLATE p_t_zycet005-belnr USING ' 0'.
APPEND p_t_zycet005.
v_belnr = p_t_dados-belnr.
p_t_dados-belnr = p_t_zycet005-belnr.
MODIFY p_t_dados TRANSPORTING belnr WHERE belnr = v_belnr.
itab_zycet006-belnr = p_t_zycet005-belnr.
MODIFY itab_zycet006 TRANSPORTING belnr WHERE belnr = v_belnr.
* >> Início da inclusão: FORM CALL_TRANSACTION_J1B1
else.
loop at p_itab_msg.
add 1 to p_nrmsg.
call function 'MESSAGE_PREPARE'
exporting
language = sy-langu
msg_id = p_itab_msg-msgid
msg_no = p_itab_msg-msgnr
msg_var1 = p_itab_msg-msgv1
msg_var2 = p_itab_msg-msgv2
msg_var3 = p_itab_msg-msgv3
msg_var4 = p_itab_msg-msgv4
importing
msg_text = p_t_zycet005-msg
exceptions
function_not_completed = 1
message_not_found = 2
others = 3.
p_t_zycet005-mandt = p_t_dados-mandt.
p_t_zycet005-tcode = p_tcode.
p_t_zycet005-tabela = p_t_dados-tabela.
p_t_zycet005-cpochv = p_t_dados-cpochv.
p_t_zycet005-tpmsg = 'E'.
p_t_zycet005-nrmsg = p_nrmsg.
append p_t_zycet005.
endloop.
endif.
* << Fim da inclusão
ENDIF.
REFRESH: p_itab_bdc.
ENDFORM.
FORM bdc_campo USING value(par1)
value(par2).
CLEAR itab_bdc.
itab_bdc-fnam = par1.
itab_bdc-fval = par2.
APPEND itab_bdc.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
FORM selecionar_dados.
SELECT SINGLE * FROM /pws/zycbt007.
SELECT SINGLE * FROM /pws/zycit001
INTO /pws/zycie001
WHERE nrseq = pa_nrseq.
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003
WHERE nrseq = pa_nrseq .
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycie001-inco1.
* >> Início da inclusão: FORM SELECIONAR_DADOS
perform verifica_recebimento.
* << Fim da inclusão
SELECT * FROM /pws/zycit036
INTO TABLE itab_zycit036
WHERE nrseq = pa_nrseq.
ENDFORM.
FORM custeando_planejado.
DATA: v_flag,
v_ebelp LIKE konv-kposn.
LOOP AT itab_zycit036.
IF itab_zycit036-origem = 'PED'.
MOVE itab_zycit036 TO itab_zycit036_plan.
...
...
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = itab_zycit036-vlreal -
itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = itab_zycit036-vlreal -
itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
* >> Início da exclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_OUTROS_CUSTOS_DA
NOT itab_zycit036-waers IS INITIAL
or ( itab_zycit036-origem eq 'NF' and
itab_zycit036-nrseqori eq '0000000000' ) .
* << Fim da inclusão
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
...
...
* Inicio inclusão de perform
* >> Início da inclusão:
form verifica_recebimento.
data: v_receb.
data:
itab_zycit041 like /pws/zycit041 occurs 0 with header line,
itab_zycit043 like /pws/zycit043 occurs 0 with header line.
select * from /pws/zycit042 into table itab_zycit042
where nrseq = pa_nrseq.
if sy-subrc eq 0 and /pws/zycie001-dtencer is initial.
select * from /pws/zycit041 into table itab_zycit041
for all entries in itab_zycit042
where nrseq = itab_zycit042-nrseqnf and
cancel = space.
if sy-subrc eq 0 .
loop at itab_zycit041 where belnr_mr1m ne space
or belnr_f_51 ne space .
endloop.
if sy-subrc = 0 .
v_receb = 'X'.
else.
select * from /pws/zycit043 into table itab_zycit043
for all entries in itab_zycit042
where nrseq = itab_zycit042-nrseqnf and
cancel = space.
if sy-subrc = 0.
loop at itab_zycit043 where belnr_mr1m ne space
or belnr_f_51 ne space.
endloop.
if sy-subrc eq 0.
v_receb = 'X'.
endif.
endif.
endif.
endif.
if v_receb = 'X'.
select * from /pws/zycit036
into table itab_zycit036_aux
where nrseq eq pa_nrseq
and origem eq 'NF'
and nrseqori eq '0000000000'.
if sy-subrc eq '0'.
loop at itab_zycit036_aux.
clear itab_zycit036_aux-vlreal.
modify itab_zycit036_aux.
endloop.
modify /pws/zycit036 from table itab_zycit036_aux.
commit work.
endif.
else.
delete from /pws/zycit036 where nrseq eq pa_nrseq
and origem eq 'NF'
and nrseqori eq '0000000000'.
commit work.
endif.
elseif /pws/zycie001-dtencer is initial.
delete from /pws/zycit036 where nrseq eq pa_nrseq
and origem eq 'NF'
and nrseqori eq '0000000000'.
commit work.
endif.
endform.
* << Fim da inclusão