Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Recebimento
Data/Hora da Publicação: 25/08/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 13:39:25
Descrição da Nota: AJUSTE PARA TRATAR NOTAS FISCAIS DE REMESSA NO RECEBIMENTO VINC. AO DB
Sintoma
O prorgrama não estava tratando corretamente o recebimento de notas fiscais de remessa vinculados ao
drawback.
Solução
Foi criado uma tratativa para recebimento de notas fiscais de remessa e faturas estornadas
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01981 Data: 25/08/2006 Hora: 10:32:00
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01981
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00128
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01679 - 00001 - 6.0 - 00024 - AJUSTE NO TRATAMENTO DE LOTE NO RECEBIMENTO
01795 - 00002 - 6.0 - 00024 - AJUSTE PARA PREENCHER OS CAMPOS COB_CAMB E WERKS NA TABELA /PWS/Z
----------------------------------------------------------------------------------------------------
AJUSTE PARA TRATAR NOTAS FISCAIS DE REMESSA NO RECEBIMENTO VINC. AO DB
----------------------------------------------------------------------------------------------------
Palavras Chave:
NOTAS FISCAIS DE REMESSA, RECEBIMENTO, /PWS/SAPMZYCI017, DRAWBACK
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI017F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI017F02
...
CHANGING itab_zycit003-meins
itab_zycit003-qtd_iten.
READ TABLE itab_zycit279 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
IF sy-subrc = 0 AND /pws/zycit321-lote EQ space.
* << Fim da inclusão
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
IF sy-subrc = 0 AND /pws/zycit321 EQ space.
* << Fim da exclusão
itab_zycit279-slqtde =
itab_zycit279-slqtde + itab_itens_nf-qtd_item.
IF itab_zycit279-slqtde > 0.
itab_zycit279-esgotado = space.
ENDIF.
...
...
FROM ( /pws/zycit006 AS a INNER JOIN /pws/zycit263 AS b
ON a~nrseq_pgfat EQ b~nrseq_pgfat )
INTO v_cob_camb
WHERE b~nrseq = itab_zycit003-nrseq
AND b~ebeln = itab_zycit003-ebeln
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
AND b~ebelp = itab_zycit003-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
AND b~ebelp = itab_zycit003-ebelp
AND b~eliminado eq space.
* << Fim da inclusão
IF v_cob_camb NE 'A'.
itab_zycit279-cob_camb = 'X'.
ENDIF.
itab_zycit279-nrseq = itab_zycit003-nrseq.
itab_zycit279-ebeln = itab_zycit003-ebeln.
...
...
READ TABLE itab_zycit279 WITH KEY nrseq = itab_zycit279-nrseq
ebeln = itab_zycit279-ebeln
ebelp = itab_zycit279-ebelp
lote = wa_zycit279-lote.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
PERFORM carrega_umncm_real USING itab_zycit003-matnr
CHANGING itab_itens_nf-meins
itab_zycit223-qtde.
* << Fim da inclusão
itab_zycit279-slqtde =
* >> Início da exclusão: FORM ADICIONA_SALDO_ATO
itab_zycit279-slqtde + itab_itens_nf-qtd_item.
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_SALDO_ATO
itab_zycit279-slqtde + itab_zycit223-qtde.
* << Fim da inclusão
IF itab_zycit279-slqtde > 0.
itab_zycit279-esgotado = space.
ENDIF.
MODIFY itab_zycit279 TRANSPORTING slqtde esgotado
WHERE nrseq = itab_zycit279-nrseq
...
...
ENDFORM.
FORM estorna_saldo_ato.
DATA: v_variacfobd LIKE /pws/zycit376-vlfob.
DATA: itab_zycit376d LIKE /pws/zycit376 OCCURS 0 WITH HEADER LINE.
DATA: itab_zycit245d LIKE /pws/zycit245 OCCURS 0 WITH HEADER LINE.
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
DATA: v_tabix1 type i.
CLEAR itab_zycit223. FREE itab_zycit223.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit321.
IF itab_zycit223[] IS INITIAL.
SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223
WHERE nrseq EQ /pws/zycie001-nrseq.
ENDIF.
...
...
ebelp = itab_itens_nf-ebelp.
READ TABLE itab_zycit279 WITH KEY nrseq = itab_itens_nf-nrseq
ebeln = itab_itens_nf-ebeln
ebelp = itab_itens_nf-ebelp.
IF sy-subrc = 0.
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
v_tabix1 = sy-tabix.
* << Fim da inclusão
READ TABLE itab_zycit376d WITH KEY ebeln = itab_itens_nf-ebeln
ebelp = itab_itens_nf-ebelp.
READ TABLE itab_zycit245d WITH KEY nrseqd = itab_zycit376d-nrseqd
nritem = itab_zycit376d-nritem.
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
READ TABLE itab_zycit003 WITH KEY nrseq = itab_itens_nf-nrseq
ebeln = itab_itens_nf-ebeln
ebelp = itab_itens_nf-ebelp.
* << Fim da inclusão
CLEAR: v_variacfobd.
v_variacfobd = itab_zycit279-menge *
( ( itab_zycit376d-vlfob / itab_zycit376d-qtd_apro ) -
( itab_zycit279-vltot / itab_zycit279-menge ) ).
itab_zycit245d-vlvinc = itab_zycit245d-vlvinc + v_variacfobd.
UPDATE /pws/zycit245 SET vlvinc = itab_zycit245d-vlvinc
WHERE nrseqd EQ itab_zycit245d-nrseqd
AND nritem EQ itab_zycit245d-nritem.
IF /pws/zycit321-lote EQ space.
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
PERFORM carrega_umncm_real USING itab_zycit003-matnr
* << Fim da inclusão
* >> Início da exclusão: FORM ESTORNA_SALDO_ATO
PERFORM carrega_umncm_real USING itab_itens_nf-matnr
* << Fim da exclusão
CHANGING itab_itens_nf-meins
itab_itens_nf-qtd_item.
itab_zycit279-slqtde =
itab_zycit279-slqtde - itab_itens_nf-qtd_item.
IF itab_zycit279-slqtde < 0.
...
...
AND ebeln = itab_itens_nf-ebeln
AND ebelp = itab_itens_nf-ebelp.
CLEAR itab_zycit279.
CONTINUE.
ENDIF.
* >> Início da exclusão: FORM ESTORNA_SALDO_ATO
MODIFY itab_zycit279 INDEX sy-tabix.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
MODIFY itab_zycit279 INDEX v_tabix1.
* << Fim da inclusão
ELSE.
LOOP AT itab_zycit223 WHERE
nrseqnf EQ itab_itens_nf-nrseqnf
AND nrseq EQ itab_itens_nf-nrseq
AND nfglobal EQ itab_itens_nf-nfglobal
AND nfremessa EQ itab_itens_nf-nfremessa
AND ebeln EQ itab_itens_nf-ebeln
AND ebelp EQ itab_itens_nf-ebelp .
* >> Início da exclusão: FORM ESTORNA_SALDO_ATO
PERFORM carrega_umncm_real USING itab_itens_nf-matnr
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_SALDO_ATO
PERFORM carrega_umncm_real USING itab_zycit003-matnr
* << Fim da inclusão
CHANGING itab_itens_nf-meins
itab_zycit223-qtde.
IF /pws/zycit321-lote EQ '1'.
READ TABLE itab_zycit279 WITH KEY nrseq = itab_itens_nf-nrseq
ebeln = itab_itens_nf-ebeln
...