Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 02/10/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:16:48
Descrição da Nota: AJUSTE PARA TRATAR A QUANTIDADE EXCEDIDA DE ACORDO COM A TOLERANCIA
Sintoma
O embarque não permite utilizar a tolerancia da quantidade informada no pedido.
Solução
Acrescentar a quantidade referente a tolerancia ao saldo no momento de verificar se estourou o saldo
do pedido. O sistema tem que deixar usar, e fica com o saldo negativo.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04882 Data: 02/10/2007 Hora: 14:47:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04882
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00015
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04363 - 00001 - 7.0 - 00002 - DECLARAÇÃO DE IMPORTAÇÃO - RECOF
04866 - 00002 - 7.0 - 00003 - PERMITIR NACIONALIZAÇÃO DE DI 01, DE ACORDO COM FUNDAMENTAÇÃO LEG
----------------------------------------------------------------------------------------------------
AJUSTE PARA TRATAR A QUANTIDADE EXCEDIDA DE ACORDO COM A TOLERANCIA
----------------------------------------------------------------------------------------------------
Palavras Chave:
QUANTIDADE - TOLERANCIA - PEDIDO - EMBARQUE
/PWS/SAPMZYCI001
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
AND nrseq NE /pws/zycie001-nrseq
AND nrseqda NE ' '.
ELSE.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq.
ENDIF.
* >> Início da exclusão: FORM CARREGA_SALDO
ELSE.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq.
* << Fim da exclusão
IF NOT itab_zycit003_util[] IS INITIAL.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_util
WHERE nrseq EQ itab_zycit003_util-nrseq.
LOOP AT itab_zycit001_saldo WHERE regime EQ '16' .
DELETE itab_zycit003_util
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP .
ENDIF .
ENDIF.
ENDIF.
LOOP AT itab_zycit013.
* >> Início da exclusão: FORM CARREGA_SALDO
CLEAR: itab_pedido, itab_zycit003_util.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
CLEAR: itab_pedido, itab_zycit003_util, v_qtdemb.
* << Fim da inclusão
READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln
* >> Início da exclusão: FORM CARREGA_SALDO
AND ebelp EQ itab_zycit013-ebelp
and nrseq ne /pws/zycie001-nrseq.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
AND ebelp EQ itab_zycit013-ebelp.
* << Fim da inclusão
v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.
ENDLOOP.
ENDIF.
v_slqtde = itab_pedido-menge - v_qtdemb.
IF v_slqtde NE itab_zycit013-slqtde.
IF /pws/zycie001-regime NE '16'.
itab_zycit013-slqtde = v_slqtde.
UPDATE /pws/zycit013 SET slqtde = itab_zycit013-slqtde
menge = itab_pedido-menge
WHERE ebeln = itab_zycit013-ebeln
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
DELETE itab_zycit263 INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge .
MESSAGE w061 WITH text-004 itab_zycit003-ebelp
text-005 itab_zycit003-ebeln.
v_mexit = 'X'.
EXIT.
ELSE.
* << Fim da exclusão
LOOP AT itab_zycit003.
v_indice = sy-tabix.
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM atualiza_itens.
PERFORM qtd_est.
ELSE.
ENDIF.
PERFORM atualiza_serv.
MODIFY itab_zycit003 INDEX v_indice.
ENDLOOP.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
ENDIF.
* << Fim da exclusão
ENDMODULE.
...
...
MODULE consiste_iten INPUT.
* >> Início da inclusão: MODULE CONSISTE_ITEN
DATA: v_qtd_exc TYPE /pws/zycie003-menge.
* << Fim da inclusão
READ TABLE itab_itens_aux WITH KEY ebeln = /pws/zycie003-ebeln
ebelp = /pws/zycie003-ebelp.
* >> Início da exclusão: MODULE CONSISTE_ITEN
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_ITEN
v_qtd_exc = itab_zycit003-uebto *
itab_zycit003-menge / 100.
v_qtd_exc = v_qtd_exc + itab_zycit003-menge.
IF /pws/zycie003-qtd_iten > v_qtd_exc.
* << Fim da inclusão
MESSAGE w061 WITH text-004 itab_zycit003-ebelp
text-005 itab_zycit003-ebeln.
/pws/zycie003-qtd_iten = itab_zycit003-qtd_iten.
ENDIF.
ENDMODULE.
...