Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 29/03/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:23:38
Descrição da Nota: ERRO NO CUSTO EFETIVO, VALOR DA FATURA
Sintoma
Adicionado parametro de entrada i_nrre, quando for passado um numero de RE o campo SISCOMEX da
tabela /pws/zycit248 referente aquela RE recebera "X" para indicar que foi feita a transmissão com
sucesso.
Solução
Adicionado parametro de entrada i_nrre, quando for passado um numero de RE o campo SISCOMEX da
tabela /pws/zycit248 referente aquela RE recebera "X" para indicar que foi feita a transmissão com
sucesso.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03346 Data: 29/03/2007 Hora: 09:27:30
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03346
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
03089 - 00001 - 6.0 - 00026 - SISTEMA ESTÁ SE PERDENDO E SELECIONANDO FATURAS ELIMINADAS NO EMB
----------------------------------------------------------------------------------------------------
ERRO NO CUSTO EFETIVO, VALOR DA FATURA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CUSTO EFETIVO - ENCERRAMENTO CONTÁBIL - VALOR REALIZADO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPT /PWS/ZYCIR988
REPT /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/MZYCI016F01
...
INTO TABLE itab_zycit036
FOR ALL ENTRIES IN itab_zycit100
WHERE nrseq = itab_zycit100-nrseq
AND ebeln = itab_zycit100-ebeln
AND ebelp = itab_zycit100-ebelp
AND origem = 'FAT'
AND ( codigo = 'FOB' OR
codigo = 'CIF' OR
codigo = 'C&F' ).
ENDIF.
* >> Início da inclusão: FORM MONTAR_CUSTO_DI
IF itab_zycit036[] IS INITIAL.
PERFORM atualiza_custos.
ENDIF.
* << Fim da inclusão
MOVE itab_zycit036[] TO itab_zycit036_di[].
MOVE itab_zycit036[] TO itab_zycit036_atual[].
IF v_libera = 'X' AND v_modalidade = '99'.
IF NOT itab_zycit100[] IS INITIAL.
SELECT * FROM /pws/zycit036
INTO TABLE itab_zycit036
FOR ALL ENTRIES IN itab_zycit100
WHERE nrseq = itab_zycit100-nrseq
AND ebeln = itab_zycit100-ebeln
AND ebelp = itab_zycit100-ebelp
...
...
* novo perform
* >> Início da inclusão:
FORM atualiza_custos .
DATA: BEGIN OF itab_zycit006 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA: END OF itab_zycit006.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263
INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND eliminado NE 'X'.
IF NOT itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat
AND eliminado NE 'X'.
ENDIF.
ENDIF.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit001
INTO /pws/zycie001
WHERE nrseq EQ itab_zycit003-nrseq.
LOOP AT itab_zycit263.
READ TABLE itab_zycit003 WITH KEY
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.
IF NOT itab_zycit006-belnr_p IS INITIAL.
itab_zycit036-mandt = sy-mandt .
itab_zycit036-nrseq = itab_zycit003-nrseq.
itab_zycit036-ebeln = itab_zycit003-ebeln.
itab_zycit036-ebelp = itab_zycit003-ebelp.
itab_zycit036-werks = itab_zycit003-werks.
itab_zycit036-nrseqori = itab_zycit006-nrseq.
itab_zycit036-embarca = /pws/zycie001-embarca.
itab_zycit036-codigo = /pws/zycit031-inco1_ci.
itab_zycit036-netpr =
itab_zycit003-netpr * itab_zycit003-qtd_iten.
itab_zycit036-waers = itab_zycit003-waers.
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 =
( itab_zycit003-vlreal * itab_zycit263-qtd_iten ) +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
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.
APPEND itab_zycit036.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCIR988
* O seguinte relatório foi criado
*&---------------------------------------------------------------------*
*& Report /PWS/ZYCIR988
*& *
*&---------------------------------------------------------------------*
REPORT /pws/zycir988 MESSAGE-ID /pws/zycim.
TABLES : /pws/zycie001,
/pws/zycit031,
/pws/zycie006,
t001.
DATA itab_zycit036 LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE.
DATA itab_zycit003 LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
DATA itab_zycit042 LIKE /pws/zycit042 OCCURS 0 WITH HEADER LINE.
DATA itab_zycit263 LIKE /pws/zycie263 OCCURS 0 WITH HEADER LINE.
DATA: okcode LIKE sy-ucomm.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
PARAMETER: p_nrseq TYPE /pws/zycit003-nrseq OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl1.
INITIALIZATION.
START-OF-SELECTION.
PERFORM seleciona_dados.
PERFORM ajusta_custo.
*&---------------------------------------------------------------------*
*& Form seleciona_dados
*&---------------------------------------------------------------------*
FORM seleciona_dados.
SELECT SINGLE * FROM /pws/zycit001
INTO /pws/zycie001
WHERE nrseq EQ p_nrseq.
IF sy-subrc EQ 0 .
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie001-bukrs.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycie001-inco1
AND land1 EQ t001-land1.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
WHERE nrseq EQ /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit263
INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit263 INDEX 1 .
SELECT SINGLE * FROM /pws/zycit006
INTO /pws/zycie006
WHERE nrseq_pgfat EQ itab_zycit263-nrseq_pgfat.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " seleciona_dados
*&---------------------------------------------------------------------*
*& Form ajusta_custo
*&---------------------------------------------------------------------*
FORM ajusta_custo .
IF /pws/zycie006-tpfatura = '01'.
LOOP AT itab_zycit003.
SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
( codigo = 'FOB' OR
codigo = 'C&F' OR
codigo = 'CIF' )
AND ( origem = 'FAT' OR
origem = 'NF' ).
IF sy-subrc = 0.
LOOP AT itab_zycit036.
IF itab_zycit036-origem = 'NF'.
SELECT * FROM /pws/zycit042 INTO TABLE itab_zycit042
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
READ TABLE itab_zycit042
WITH KEY ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
itab_zycit036-vlreal = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten )
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
itab_zycit036-origem = 'NF'.
itab_zycit036-waers_real = itab_zycit003-waers_real.
itab_zycit036-nrseqori = itab_zycit042-docnum.
INSERT /pws/zycit036 FROM itab_zycit036.
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036.
ENDIF.
ELSEIF itab_zycit036-origem = 'FAT'.
READ TABLE itab_zycit003
WITH KEY ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
itab_zycit036-vlreal = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten )
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
itab_zycit036-origem = 'FAT'.
itab_zycit036-waers_real = itab_zycit003-waers_real.
itab_zycit036-nrseqori = /pws/zycie006-nrseq.
INSERT /pws/zycit036 FROM itab_zycit036.
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
( codigo = 'FOB' OR
codigo = 'C&F' OR
codigo = 'CIF' )
AND origem = 'PED' .
IF sy-subrc EQ 0 AND /pws/zycie006-belnr_p NE space.
"Trata fatura
LOOP AT itab_zycit036.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
nrseq_pgfat = /pws/zycie006-nrseq_pgfat.
IF sy-subrc EQ 0.
itab_zycit036-vlreal = ( itab_zycit003-vlreal *
itab_zycit263-qtd_iten ) +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
itab_zycit036-origem = 'FAT'.
itab_zycit036-waers_real = itab_zycit003-waers_real.
itab_zycit036-nrseqori = /pws/zycie006-nrseq.
itab_zycit036-codmod = 'D'.
itab_zycit036-status = 'M'.
itab_zycit036-vlreal_emb = /pws/zycie006-vltotal.
itab_zycit036-waers_emb = /pws/zycie006-waers.
CLEAR : itab_zycit036-vldif.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
INSERT /pws/zycit036 FROM itab_zycit036.
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036.
ENDIF.
ENDIF.
"Trata NF
SELECT * FROM /pws/zycit042 INTO TABLE itab_zycit042
WHERE nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
READ TABLE itab_zycit003
WITH KEY ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
READ TABLE itab_zycit042
WITH KEY ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
itab_zycit036-vlreal = ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat.
itab_zycit036-origem = 'NF'.
itab_zycit036-waers_real = itab_zycit003-waers_real.
itab_zycit036-nrseqori = itab_zycit042-docnum.
itab_zycit036-codmod = 'D'.
itab_zycit036-status = 'M'.
itab_zycit036-vlreal_emb = /pws/zycie006-vltotal.
itab_zycit036-waers_emb = /pws/zycie006-waers.
CLEAR : itab_zycit036-vldif.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
INSERT /pws/zycit036 FROM itab_zycit036.
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDLOOP.
IF sy-subrc = 0.
MESSAGE i015 WITH text-002.
ENDIF.
ENDIF.
ENDFORM.
* O seguinte elemento de texto foi criado:
------------------------------------------------------------------------
Idioma: PT
Símbolo: 001
Texto: (30 caracteres)
"Critério de Seleção:"
Comprimento máximo: 30
Incluído símbolo de texto:
Idioma: PT
Símbolo: 002
Texto: (30 caracteres)
"Dados atualizados com sucesso!"
Comprimento máximo: 30
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRANS /PWS/ZYCIR988
*Criar transação para relatório