Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal Remessa
Data/Hora da Publicação: 03/06/2008 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:17:11
Descrição da Nota: AO CRIAR REMESSA DE UM DOS ITENS DO EMBARQUE, APAGA O CUSTO DO OUTRO
Sintoma
Ao criar remessa de um dos dois itens do embarque, o Pw.CE, o sistema está apagando do custo o outro
item
Solução
Verificar todos os itens do embarque ao fazer nf remessa.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06675 Data: 03/06/2008 Hora: 14:53:20
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06675
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00050
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03654 - 00001 - 7.0 - 00001 - AO GERAR A NOTA FISCAL OS VALORES DO CUSTO FICAM INCORRETOS.
05091 - 00002 - 7.0 - 00003 - AJUSTES PARA CRIAR A LINHA DE FATURA PARCELADA NO CUSTO
----------------------------------------------------------------------------------------------------
AO CRIAR REMESSA DE UM DOS ITENS DO EMBARQUE, APAGA O CUSTO DO OUTRO
----------------------------------------------------------------------------------------------------
Palavras Chave:
NF REMESSA - ITENS DO EMBARQUE - CUSTO EFETIVO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
FORM atualiza_custos .
DATA: BEGIN OF itab_zycit006 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA: END OF itab_zycit006.
DATA: BEGIN OF itab_zycit036_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit036.
DATA: END OF itab_zycit036_aux.
DATA itab_zycit132 LIKE /pws/zycie132 OCCURS 0 WITH HEADER LINE.
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
DATA: itab_zycit003_aux2 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
READ TABLE itab_zycit003 INDEX 1.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit001
INTO /pws/zycie001
WHERE nrseq EQ itab_zycit003-nrseq.
IF /pws/zycit031 IS INITIAL.
IF t001 IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycie001-inco1
AND land1 EQ t001-land1. "#EC CI_NOFIRST
ENDIF.
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003_aux2
WHERE nrseq EQ itab_zycit003-nrseq.
IF sy-subrc EQ 0.
* << Fim da inclusão
SELECT * FROM /pws/zycit263
INTO TABLE itab_zycit263
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp .
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
FOR ALL ENTRIES IN itab_zycit003_aux2
WHERE nrseq EQ itab_zycit003_aux2-nrseq
AND ebeln EQ itab_zycit003_aux2-ebeln
AND ebelp EQ itab_zycit003_aux2-ebelp .
* << Fim da inclusão
IF NOT itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat . "#EC CI_NOFIELD
IF sy-subrc EQ
0.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat . "#EC CI_NOFIELD
IF sy-subrc EQ 0.
* << Fim da inclusão
SELECT * FROM /pws/zycit132 INTO TABLE itab_zycit132
FOR ALL ENTRIES IN itab_zycit006
WHERE nrseq = itab_zycit006-nrseq
AND nrfat = itab_zycit006-nrfat
AND eliminado NE 'X'.
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit001
INTO /pws/zycie001
WHERE nrseq EQ itab_zycit003-nrseq.
* << Fim da exclusão
SELECT * FROM /pws/zycit036
INTO TABLE itab_zycit036_aux
WHERE nrseq EQ /pws/zycie001-nrseq
AND codigo EQ /pws/zycit031-inco1_ci
AND origem EQ 'FAT' .
IF sy-subrc EQ 0.
LOOP AT itab_zycit036_aux.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036_aux-nrseqori.
IF sy-subrc NE 0.
...
...
DELETE itab_zycit036
WHERE nrseq = itab_zycit036_aux-nrseq
AND ebeln = itab_zycit036_aux-ebeln
AND ebelp = itab_zycit036_aux-ebelp
AND nrseqori = itab_zycit006-nrseq.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit263 WHERE eliminado NE 'X'.
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
READ TABLE itab_zycit003 WITH KEY
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
READ TABLE itab_zycit003_aux2 WITH KEY
* << Fim da inclusão
nrseq = itab_zycit263-nrseq
ebeln = itab_zycit263-ebeln
ebelp = itab_zycit263-ebelp.
IF sy-subrc EQ 0.
LOOP AT itab_zycit006
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat
AND eliminado NE 'X'.
READ TABLE itab_zycit036_aux WITH KEY
nrseq = /pws/zycie001-nrseq
codigo = /pws/zycit031-inco1_ci
origem = 'FAT'
nrseqori = itab_zycit006-nrseq.
IF sy-subrc NE 0.
READ TABLE itab_zycit132 WITH KEY
nrseq = itab_zycit006-nrseq.
IF NOT itab_zycit006-belnr_p IS INITIAL OR
itab_zycit006-frpagto EQ 'A' OR
NOT itab_zycit132-belnr_p IS INITIAL.
itab_zycit036-mandt = sy-mandt .
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
itab_zycit036-nrseq = itab_zycit003-nrseq.
itab_zycit036-ebeln = itab_zycit003-ebeln.
itab_zycit036-ebelp = itab_zycit003-ebelp.
itab_zycit036-werks = itab_zycit003-werks.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
itab_zycit036-nrseq = itab_zycit003_aux2-nrseq.
itab_zycit036-ebeln = itab_zycit003_aux2-ebeln.
itab_zycit036-ebelp = itab_zycit003_aux2-ebelp.
itab_zycit036-werks = itab_zycit003_aux2-werks.
* << Fim da inclusão
itab_zycit036-nrseqori = itab_zycit006-nrseq.
itab_zycit036-embarca = /pws/zycie001-embarca.
itab_zycit036-codigo = /pws/zycit031-inco1_ci.
itab_zycit036-netpr =
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
itab_zycit003-netpr * itab_zycit003-qtd_iten.
itab_zycit036-waers = itab_zycit003-waers.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
itab_zycit003_aux2-netpr * itab_zycit003_aux2-qtd_iten.
itab_zycit036-waers = itab_zycit003_aux2-waers.
* << Fim da inclusão
itab_zycit036-waers_real = itab_zycit006-waers.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlreal.
itab_zycit036-vlreal =
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
( itab_zycit003-vlreal * itab_zycit263-qtd_iten ) +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
( itab_zycit003_aux2-vlreal * itab_zycit263-qtd_iten ) +
itab_zycit003_aux2-vlfre_fat + itab_zycit003_aux2-vlseg_fat.
* << Fim da inclusão
itab_zycit036-bukrs = itab_zycit006-bukrs.
itab_zycit036-codmod = 'D'.
itab_zycit036-status = 'M'.
itab_zycit036-vlreal_emb = itab_zycit006-vltotal.
itab_zycit036-waers_emb = itab_zycit006-waers.
itab_zycit036-origem = 'FAT'.
itab_zycit036-waers_dif = /pws/zycie001-waers.
MODIFY /pws/zycit036 FROM itab_zycit036.
READ TABLE itab_zycit036 TRANSPORTING NO FIELDS WITH KEY
* >> Início da exclusão: FORM ATUALIZA_CUSTOS
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
nrseq = itab_zycit003_aux2-nrseq
ebeln = itab_zycit003_aux2-ebeln
ebelp = itab_zycit003_aux2-ebelp
* << Fim da inclusão
nrseqori = itab_zycit006-nrseq
origem = 'FAT'
codigo = /pws/zycit031-inco1_ci.
IF sy-subrc EQ 0.
MODIFY itab_zycit036 INDEX sy-tabix.
ELSE.
APPEND itab_zycit036.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM ATUALIZA_CUSTOS
ENDIF.
* << Fim da inclusão
ENDFORM.
...