Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 30/03/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:07:25
Descrição da Nota: CONTROLE DE SALDO NOS APONTAMENTOS DO ATO.
Sintoma
O programa não está conciderando as quantidade transferidas no calculo das quantidade a nacionalizar
e para ato concessório genérico só termite a utilização de uma unica porcentagem para transferencia.
Solução
Ajustar calculo da quantidade a nacionalizar para conciderar as quantidades transferidas e passa a
salvar a porcentagem de transferencia na tabela /pws/zycit279 de acordo com o material.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03360 Data: 30/03/2007 Hora: 11:29:39
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03360
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00001
Agrupamento : 00158
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02810 - 00001 - 6.0 - 00026 - AJUSTES NA EXIBIÇÃO DA UNIDADE NCM NA PASTA DE TRANSF. PARA ATO G
----------------------------------------------------------------------------------------------------
CONTROLE DE SALDO NOS APONTAMENTOS DO ATO.
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONTROLE - SALDO - APONTAMENTOS - IMPORTAÇÃO - ATO - CONCESSÓRIO
/PWS/SAPMZYCI040
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
LOOP AT itab_zycit246_final WHERE matnr EQ itab_resumo_ap-matnr.
READ TABLE itab_zycit470_s WITH KEY
ebeln = itab_zycit246_final-ebeln
ebelp = itab_zycit246_final-ebelp
nrseq = itab_zycit246_final-nrseq
lote = itab_zycit246_final-lote.
IF sy-subrc NE 0.
CHECK itab_zycit246_final-qtd_ncm >
itab_zycit246_final-qtd_compv.
ENDIF.
* >> Início da inclusão: FORM TRATA_TAB_NACION
READ TABLE itab_zycit279_ap WITH KEY
ebeln = itab_zycit246_final-ebeln
ebelp = itab_zycit246_final-ebelp
nrseq = itab_zycit246_final-nrseq
lote = itab_zycit246_final-lote.
* << Fim da inclusão
itab_zycit246_final-qtd_nacion = itab_zycit246_final-qtd_ncm -
* >> Início da exclusão: FORM TRATA_TAB_NACION
itab_zycit246_final-qtd_compv .
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_TAB_NACION
itab_zycit279_ap-qtd_transf - itab_zycit246_final-qtd_compv .
* << Fim da inclusão
READ TABLE itab_zycit246 WITH KEY ebeln = itab_zycit246_final-ebeln
ebelp = itab_zycit246_final-ebelp
nrseq = itab_zycit246_final-nrseq.
...
...
CLEAR itab_zycit279_ap.
MODIFY itab_zycit279_ap TRANSPORTING mark
WHERE mark EQ 'X'.
IF /pws/zycie244-tipo NE 'G'.
READ TABLE itab_zycit246_final WITH KEY
matnr = itab_resumo_ap-matnr.
READ TABLE itab_zycit245 WITH KEY
nritem = itab_zycit246_final-nritem.
/pws/zycie245 = itab_zycit245.
/pws/zycie245-meins = itab_zycit245-um_ncm.
* >> Início da inclusão: FORM MONTA_TRANSF
READ TABLE itab_zycit279_ap
WITH KEY matnr = itab_resumo_ap-matnr.
/pws/zycie245-transf = itab_zycit279_ap-transf.
* << Fim da inclusão
/pws/zycie245-qtd_transf = itab_resumo_ap-qtd_di *
( /pws/zycie245-transf / 100 ).
v_saldo_transf = /pws/zycie245-qtd_transf.
LOOP AT itab_zycit279_ap
WHERE matnr EQ itab_resumo_ap-matnr
AND esgotado EQ space.
itab_zycit279_ap_aux = itab_zycit279_ap.
IF NOT itab_zycit279_ap_aux-qtd_transf IS INITIAL.
v_saldo_transf = v_saldo_transf -
itab_zycit279_ap_aux-qtd_transf.
...
...
CLEAR itab_zycit279_ap_aux-lote.
COLLECT itab_zycit279_ap_aux.
ENDLOOP.
itab_zycit279_ap_aux-mark = 'X'.
MODIFY itab_zycit279_ap_aux TRANSPORTING mark
WHERE qtd_transf > 0.
ELSE.
READ TABLE itab_zycit245 INDEX 1.
/pws/zycie245 = itab_zycit245.
/pws/zycie245-um_ncm = itab_resumo_ap-meins.
* >> Início da inclusão: FORM MONTA_TRANSF
READ TABLE itab_zycit279_ap
WITH KEY matnr = itab_resumo_ap-matnr.
/pws/zycie245-transf = itab_zycit279_ap-transf.
* << Fim da inclusão
/pws/zycie245-qtd_transf = itab_resumo_ap-qtd_di *
( /pws/zycie245-transf / 100 ).
v_saldo_transf = /pws/zycie245-qtd_transf.
LOOP AT itab_zycit279_ap WHERE matnr EQ itab_resumo_ap-matnr
AND esgotado EQ space.
itab_zycit279_ap_aux = itab_zycit279_ap.
IF NOT itab_zycit279_ap_aux-qtd_transf IS INITIAL.
v_saldo_transf = v_saldo_transf -
itab_zycit279_ap_aux-qtd_transf.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
/pws/zycie279-qtd_perda = /pws/zycie279-qtd_perda - v_perda.
itab_resumo_ap-perda = /pws/zycie279-perda.
MODIFY itab_resumo_ap INDEX tc_perda-current_line.
ENDMODULE.
MODULE modifica_transf INPUT.
DATA wa_transf LIKE /pws/zycie279.
READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.
wa_transf = itab_zycit279_ap_aux.
IF v_mark2 IS INITIAL.
v_saldo_transf = v_saldo_transf + /pws/zycie279-qtd_transf.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-transf,
/pws/zycie279-nrseqd_d.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-nrseqd_d.
* << Fim da inclusão
ELSE.
IF v_saldo_transf > 0 .
IF /pws/zycie279-slqtde > v_saldo_transf.
/pws/zycie279-qtd_transf = v_saldo_transf.
ELSE.
/pws/zycie279-qtd_transf = /pws/zycie279-slqtde.
ENDIF.
v_saldo_transf = v_saldo_transf - /pws/zycie279-qtd_transf.
ELSE.
CLEAR v_mark2.
MESSAGE i015 WITH text-267.
ENDIF.
ENDIF.
itab_zycit279_ap = itab_zycit279_ap_aux =
/pws/zycie279.
itab_zycit279_ap_aux-mark = itab_zycit279_ap_aux-mark = v_mark2.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf transf
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf
* << Fim da inclusão
nrseqd_d mark
WHERE nrseq EQ wa_transf-nrseq
AND ebeln EQ wa_transf-ebeln
AND ebelp EQ wa_transf-ebelp.
LOOP AT itab_zycit279_ap
WHERE nrseq EQ wa_transf-nrseq
AND ebeln EQ wa_transf-ebeln
AND ebelp EQ wa_transf-ebelp.
IF itab_zycit279_ap_aux-mark EQ 'X'.
IF itab_zycit279_ap_aux-qtd_transf > 0.
IF itab_zycit279_ap-slqtde > itab_zycit279_ap_aux-qtd_transf.
itab_zycit279_ap-qtd_transf = itab_zycit279_ap_aux-qtd_transf.
ELSE.
itab_zycit279_ap-qtd_transf = itab_zycit279_ap-slqtde.
ENDIF.
itab_zycit279_ap_aux-qtd_transf = itab_zycit279_ap_aux-qtd_transf
- itab_zycit279_ap-qtd_transf.
itab_zycit279_ap-transf = itab_zycit279_ap_aux-transf.
itab_zycit279_ap-nrseqd_d = itab_zycit279_ap_aux-nrseqd_d.
ELSE.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-transf.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
CLEAR: itab_zycit279_ap-qtd_transf.
* << Fim da inclusão
ENDIF.
ELSE.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-transf,
itab_zycit279_ap-nrseqd_d.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-nrseqd_d.
* << Fim da inclusão
ENDIF.
...
...
v_saldo_transf =
/pws/zycie245-qtd_transf = /pws/zycie245-qtd_ncm *
( /pws/zycie245-transf / 100 ).
CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-transf,
/pws/zycie279-nrseqd_d.
itab_zycit245-qtd_transf = /pws/zycie245-qtd_transf.
itab_zycit245-transf = /pws/zycie245-transf.
MODIFY itab_zycit245 TRANSPORTING qtd_transf transf
WHERE nritem EQ /pws/zycie245-nritem.
CLEAR: itab_zycit279_ap, itab_zycit279_ap_aux.
* >> Início da inclusão: MODULE MODIFICA_TRANSF2
itab_zycit279_ap_aux-transf = itab_zycit279_ap-transf =
/pws/zycie245-transf.
* << Fim da inclusão
MODIFY itab_zycit279_ap TRANSPORTING mark qtd_transf transf nrseqd_d
* >> Início da exclusão: MODULE MODIFICA_TRANSF2
WHERE mark EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF2
WHERE matnr EQ /pws/zycie245-codcomp.
* << Fim da inclusão
MODIFY itab_zycit279_ap_aux TRANSPORTING mark qtd_transf
transf nrseqd_d
* >> Início da exclusão: MODULE MODIFICA_TRANSF2
WHERE mark EQ 'X'.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF2
WHERE matnr EQ /pws/zycie245-codcomp.
* << Fim da inclusão
ENDMODULE.
MODULE modifica_ato_dest INPUT.
DATA: wa_zycit244_tf TYPE /pws/zycit244,
itab_zycit245_tf TYPE /pws/zycit245 OCCURS 0 WITH HEADER LINE,
wa_zycit245_tf TYPE /pws/zycit245,
v_qtd_tf TYPE /pws/zycit279-qtd_transf,
v_saldo_vl TYPE /pws/zycit245-netpr_t.
READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.
IF NOT /pws/zycie279-nrseqd_d IS INITIAL.
SELECT SINGLE * FROM /pws/zycit244 INTO wa_zycit244_tf
...