Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 21/02/2011 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:40:35
Descrição da Nota: SUJEIRA NOS CAMPOS DOS DADOS DO FABRICANTE
Sintoma
Ao incluir uma fatura e colocar dados nos detalhes dos itens da fatura, em seguida estorná-la e re-
incluí-la no mesmo embarque, o sistema considera os mesmos dados que haviam sido digitados no
detalhe dos itens da 1° fatura (mesmo que o usuário não entre na tela de detalhe na segunda
inclusão).
Solução
Atualizado programa para salvar os dados do Fabricante nos itens de fatura somente quando o usuário
selecionar o botão salvar.
8.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10976 Data: 21/02/2011 Hora: 09:10:30
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10976
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00006
Agrupamento : 00059
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
----------------------------------------------------------------------------------------------------
SUJEIRA NOS CAMPOS DOS DADOS DO FABRICANTE
----------------------------------------------------------------------------------------------------
Palavras Chave:
FATURA DE MERCADORIA - SUJEIRA NOS CAMPOS FABRICANTE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
DELETE FROM /pws/zyglt209
WHERE nrseq = /pws/zycie006-nrseq_pgfat
AND mdcorresp = 'IP'.
IF /pws/zycie006-tpfatura = '05'.
PERFORM salva_zycit130.
ENDIF.
IF ( /pws/zycie006-tpfatura = '01'
OR /pws/zycie006-tpfatura = '11' ).
CLEAR: itab_zycit003-paisfab,
itab_zycit003-porigem,
* >> Início da exclusão: FORM ELIMINAR_FATURA
itab_zycit003-mfrpn.
* << Fim da exclusão
* >> Início da inclusão: FORM ELIMINAR_FATURA
itab_zycit003-mfrpn,
itab_zycit003-descfab,
itab_zycit003-fabric,
itab_zycit003-lifnrfabr,
itab_zycit003-flagfabr.
* << Fim da inclusão
MODIFY itab_zycit003 TRANSPORTING paisfab porigem mfrpn
* >> Início da inclusão: FORM ELIMINAR_FATURA
descfab fabric lifnrfabr flagfabr
* << Fim da inclusão
WHERE nrseq_pgfat IS initial.
CLEAR: itab_zycit003-nrseq_pgfat, itab_zycit003-vlreal,
itab_zycit003-fabric.
MODIFY itab_zycit003 TRANSPORTING vlreal nrseq_pgfat
WHERE nrseq_pgfat = /pws/zycie006-nrseq_pgfat.
MODIFY /pws/zycit003 FROM TABLE itab_zycit003.
...
...
DELETE FROM /pws/zycit129 WHERE nrseq = /pws/zycie006-nrseq.
DELETE FROM /pws/zyglt209 WHERE
nrseq = /pws/zycie006-nrseq_pgfat AND mdcorresp = 'IP'.
IF /pws/zycie006-tpfatura = '05'.
PERFORM salva_zycit130.
ENDIF.
IF ( /pws/zycie006-tpfatura = '01'
OR /pws/zycie006-tpfatura = '11' ).
CLEAR: itab_zycit003-paisfab,
itab_zycit003-porigem,
* >> Início da exclusão: FORM ELIMINAR_FATURA
itab_zycit003-mfrpn.
* << Fim da exclusão
* >> Início da inclusão: FORM ELIMINAR_FATURA
itab_zycit003-mfrpn,
itab_zycit003-descfab,
itab_zycit003-fabric,
itab_zycit003-lifnrfabr,
itab_zycit003-flagfabr.
* << Fim da inclusão
MODIFY itab_zycit003 TRANSPORTING paisfab porigem mfrpn
* >> Início da inclusão: FORM ELIMINAR_FATURA
descfab fabric lifnrfabr flagfabr
* << Fim da inclusão
WHERE nrseq_pgfat IS initial.
CLEAR: itab_zycit003-nrseq_pgfat, itab_zycit003-vlreal.
MODIFY itab_zycit003 TRANSPORTING vlreal nrseq_pgfat
WHERE nrseq_pgfat =
/pws/zycie006-nrseq_pgfat.
MODIFY /pws/zycit003 FROM TABLE itab_zycit003.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
v_fabr_ant = '1'.
CLEAR lfa1.
SELECT SINGLE * FROM lfa1
WHERE lifnr EQ /pws/zycie006-lifnr.
/pws/zycie006-lifnrfabr = /pws/zycie006-lifnr.
/pws/zycie006-flagfabr = 'S'.
/pws/zycie006-descfab = lfa1-name1.
/pws/zycie006-paisfab = lfa1-land1.
LOOP AT itab_zycit003.
itab_zycit003-fabric = '1'.
* >> Início da exclusão: FORM TRATA_FABRICANTE
MOVE: /pws/zycie006-descfab TO itab_zycit003-descfab,
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_FABRICANTE
MOVE: /pws/zycie006-descfab TO itab_zycit003-descfab,
* << Fim da inclusão
/pws/zycie006-lifnrfabr TO itab_zycit003-lifnrfabr,
* >> Início da exclusão: FORM TRATA_FABRICANTE
/pws/zycie006-flagfabr TO itab_zycit003-flagfabr.
MOVE /pws/zycie006-paisfab TO itab_zycit003-paisfab.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_FABRICANTE
/pws/zycie006-flagfabr TO itab_zycit003-flagfabr.
MOVE /pws/zycie006-paisfab TO itab_zycit003-paisfab.
* << Fim da inclusão
MODIFY: itab_zycit003.
* >> Início da exclusão: FORM TRATA_FABRICANTE
UPDATE /pws/zycit003
SET descfab = itab_zycit003-descfab
lifnrfabr = itab_zycit003-lifnrfabr
flagfabr = itab_zycit003-flagfabr
paisfab = itab_zycit003-paisfab
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
ENDLOOP.
v_flag = 'X'.
ELSEIF /pws/zycie006-fabricante = '2'.
ELSEIF /pws/zycie006-fabricante = '3'.
v_flag = 'X'.
CLEAR: /pws/zycie006-descfab,
/pws/zycie006-paisfab ,
/pws/zycie006-lifnrfabr,
/pws/zycie006-flagfabr.
LOOP AT itab_zycit003.
itab_zycit003-fabric = '3'.
CLEAR: itab_zycit003-descfab,
itab_zycit003-lifnrfabr, itab_zycit003-flagfabr.
* >> Início da exclusão: FORM TRATA_FABRICANTE
MOVE: '3' TO itab_zycit003-fabric.
* << Fim da exclusão
MODIFY: itab_zycit003.
* >> Início da exclusão: FORM TRATA_FABRICANTE
UPDATE /pws/zycit003
SET descfab = itab_zycit003-descfab
lifnrfabr = itab_zycit003-lifnrfabr
flagfabr = itab_zycit003-flagfabr
paisfab = itab_zycit003-paisfab
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da exclusão
ENDLOOP.
ENDIF.
SELECT SINGLE * FROM lfa1
WHERE lifnr EQ /pws/zycie006-lifnr.
LOOP AT itab_zycit003.
itab_zycit003-paquis = lfa1-land1.
IF NOT itab_zycit003-lifnrfabr IS INITIAL.
SELECT SINGLE land1 FROM lfa1
INTO itab_zycit003-porigem
WHERE lifnr EQ itab_zycit003-lifnrfabr.
...