Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 04/12/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:18:06
Descrição da Nota: TRANFERÊNCIA DE SALDOS NO ATO CONCESSÓRIO
Sintoma
O programa não está realizando corretamente as transferências de Saldos.
Solução
Atualizada a rotina de transferência de saldos.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05376 Data: 04/12/2007 Hora: 13:05:09
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05376
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00027
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04572 - 00001 - 7.0 - 00002 - TRATAMENTO DOS INSUMOS ALTERNATIVOS NA TRANSFERENCIA DE SALDO
05015 - 00002 - 7.0 - 00003 - TRANSFERÊNCIA POR QUANTIDADE E PORCENTAGEM NO ATO CONCESSÓRIO
----------------------------------------------------------------------------------------------------
TRANFERÊNCIA DE SALDOS NO ATO CONCESSÓRIO
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRANSFERENCIA ATO CONCESSÓRIO DRAWBACK
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
MESSAGE i015 WITH text-278 itab_zycit244_ap-nrseqd text-279.
p_status_tf = 'E'.
EXIT.
ENDIF.
IF itab_zycit244_ap-tipo EQ 'G'.
READ TABLE itab_zycit245 WITH KEY nrseqd = itab_zycit244_ap-nrseqd.
ELSE.
CLEAR: v_encer_a.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
* >> Início da inclusão: FORM TRANSF_SALDO
CLEAR itab_zycit433.
* << Fim da inclusão
SELECT SINGLE grupo FROM /pws/zycit433
INTO itab_zycit433-grupo
WHERE matnr EQ itab_zycit279_ap-matnr.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ itab_zycit433-grupo.
itab_zycit433-matnr = itab_zycit279_ap-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
READ TABLE itab_zycit245_ap WITH KEY
nrseqd = itab_zycit279_ap-nrseqd_d
...
...
ebelp = itab_zycit279_ap-ebelp.
IF itab_zycit279_ap-nrseqd_d IS INITIAL AND
itab_zycit279_e-nrseqd_d IS INITIAL.
CONTINUE.
ENDIF.
READ TABLE itab_zycit245_ap_s WITH KEY
nrseqd = itab_zycit279_ap-nrseqd_d.
IF itab_zycit245_ap_s-tipo NE 'G'.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
* >> Início da inclusão: FORM SALVA_APONT
CLEAR itab_zycit433.
* << Fim da inclusão
SELECT SINGLE grupo FROM /pws/zycit433
INTO itab_zycit433-grupo
WHERE matnr EQ itab_zycit279_ap-matnr.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ itab_zycit433-grupo.
itab_zycit433-matnr = itab_zycit279_ap-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
READ TABLE itab_zycit245_ap_s WITH KEY
nrseqd = itab_zycit279_ap-nrseqd_d
...
...
nrseq = itab_zycit279_ap-nrseq
ebeln = itab_zycit279_ap-ebeln
lote = itab_zycit279_ap-lote
ebelp = itab_zycit279_ap-ebelp.
IF NOT itab_zycit279_e-nrseqd_d IS INITIAL.
READ TABLE itab_zycit245_e WITH KEY
nrseqd = itab_zycit279_e-nrseqd_d.
IF itab_zycit245_e-tipo NE 'G'.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
* >> Início da inclusão: FORM SALVA_APONT
CLEAR itab_zycit433.
* << Fim da inclusão
SELECT SINGLE grupo FROM /pws/zycit433
INTO itab_zycit433-grupo
WHERE matnr EQ itab_zycit279_e-matnr.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ itab_zycit433-grupo.
itab_zycit433-matnr = itab_zycit279_e-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
READ TABLE itab_zycit245_e WITH KEY
nrseqd = itab_zycit279_e-nrseqd_d
...
...
AND nritem = itab_zycit245_s-nritem.
IF sy-subrc NE 0 .
APPEND itab_zycit245_s.
ENDIF.
ENDIF.
READ TABLE itab_zycit245_ap_s WITH KEY
nrseqd = itab_zycit279_ap-nrseqd_d.
IF itab_zycit245_e-tipo NE 'G'.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
* >> Início da inclusão: FORM SALVA_APONT
CLEAR itab_zycit433.
* << Fim da inclusão
SELECT SINGLE grupo FROM /pws/zycit433
INTO itab_zycit433-grupo
WHERE matnr EQ itab_zycit279_ap-matnr.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ itab_zycit433-grupo.
itab_zycit433-matnr = itab_zycit279_ap-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
READ TABLE itab_zycit245_ap_s WITH KEY
nrseqd = itab_zycit279_ap-nrseqd_d
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
ELSE.
MESSAGE s015 WITH text-288.
ENDIF.
ELSE.
REFRESH itab_zycit245_tf.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d.
CLEAR: itab_zycit245_tf, wa_zycit245_tf.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
CLEAR itab_zycit433.
* << Fim da inclusão
SELECT SINGLE grupo FROM /pws/zycit433
INTO itab_zycit433-grupo
WHERE matnr EQ itab_zycit279_ap_aux-matnr.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ itab_zycit433-grupo.
itab_zycit433-matnr = itab_zycit279_ap_aux-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
READ TABLE itab_zycit245_tf WITH KEY
codcomp = itab_zycit433-matnr.
...
...
NOT itab_centros2[] IS INITIAL.
READ TABLE itab_centros2 INDEX 1.
/pws/zycie244-werks = itab_centros2-werks.
ENDIF.
DELETE itab_zycit250 WHERE codagrup = /pws/zycie244-codagrup.
DELETE itab_centros2 WHERE werks = /pws/zycie244-werks.
ENDMODULE.
MODULE preenche_it_res_427 INPUT.
ENDMODULE.
MODULE modifica_transf3 INPUT.
* >> Início da inclusão: MODULE MODIFICA_TRANSF3
READ TABLE itab_zycit279_ap_aux INDEX tc_transf-current_line.
* << Fim da inclusão
IF /pws/zycie279-qtd_transf > /pws/zycie279-slqtde.
MESSAGE e015 WITH text-268 text-269.
ENDIF.
v_saldo_transf =
/pws/zycie245-qtd_transf = /pws/zycie279-qtd_transf.
CLEAR /pws/zycie245-transf.
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.
* >> Início da exclusão: MODULE MODIFICA_TRANSF3
CLEAR: itab_zycit279_ap, itab_zycit279_ap_aux.
* << Fim da exclusão
itab_zycit279_ap_aux-transf = itab_zycit279_ap-transf =
/pws/zycie245-transf.
itab_zycit279_ap_aux-qtd_transf = itab_zycit279_ap-qtd_transf =
/pws/zycie279-qtd_transf.
* >> Início da inclusão: MODULE MODIFICA_TRANSF3
MODIFY itab_zycit279_ap_aux INDEX tc_transf-current_line
TRANSPORTING qtd_transf transf nrseqd_d.
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.
CLEAR: itab_zycit279_ap-qtd_transf.
ENDIF.
ELSE.
CLEAR: itab_zycit279_ap-qtd_transf, itab_zycit279_ap-nrseqd_d.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: MODULE MODIFICA_TRANSF3
MODIFY itab_zycit279_ap INDEX tc_transf-current_line
TRANSPORTING qtd_transf transf nrseqd_d.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF3
MODIFY itab_zycit279_ap.
READ TABLE itab_zycit246 WITH KEY nrseq = itab_zycit279_ap-nrseq
ebeln = itab_zycit279_ap-ebeln
ebelp = itab_zycit279_ap-ebelp
lote = itab_zycit279_ap-lote.
IF sy-subrc EQ 0.
itab_zycit246-qtd_nacion = itab_zycit246-qtd_ncm -
itab_zycit246-qtd_compv - itab_zycit279_ap-qtd_transf.
MODIFY itab_zycit246 TRANSPORTING qtd_nacion
WHERE nrseq EQ itab_zycit279_ap-nrseq
AND ebeln EQ itab_zycit279_ap-ebeln
AND ebelp EQ itab_zycit279_ap-ebelp
AND lote EQ itab_zycit279_ap-lote.
ENDIF.
READ TABLE itab_zycit246_final WITH KEY
nrseq = itab_zycit279_ap-nrseq
ebeln = itab_zycit279_ap-ebeln
ebelp = itab_zycit279_ap-ebelp
lote = itab_zycit279_ap-lote.
IF sy-subrc EQ 0.
itab_zycit246_final-qtd_nacion = itab_zycit246_final-qtd_ncm -
itab_zycit246_final-qtd_compv - itab_zycit279_ap-qtd_transf.
MODIFY itab_zycit246_final TRANSPORTING qtd_nacion
WHERE nrseq EQ itab_zycit279_ap-nrseq
AND ebeln EQ itab_zycit279_ap-ebeln
AND ebelp EQ itab_zycit279_ap-ebelp
AND lote EQ itab_zycit279_ap-lote.
* << Fim da inclusão
* >> Início da exclusão: MODULE MODIFICA_TRANSF3
MODIFY itab_zycit279_ap_aux INDEX tc_transf-current_line
TRANSPORTING qtd_transf transf nrseqd_d.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF3
ENDIF.
ENDLOOP.
* << Fim da inclusão
ENDMODULE.
MODULE user_command_0248 INPUT.
CASE ok_code.
WHEN 'ENTER'.
IF v_nratoc NE /pws/zycie244-nratoc.
MESSAGE s015 WITH text-323.
CLEAR: v_nratoc.
ENDIF.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
...