Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 23/09/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:38:46
Descrição da Nota: AJUSTES PARA TRATAMENTO DE LOTE.
Sintoma
Ajustes para tratamento de lote.
Solução
Ajustes para tratamento de lote.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09074 Data: 23/09/2009 Hora: 11:11:00
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09074
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07017 - 00001 - 7.0 - 00006 - AJUSTES ATO CONCESSÓRIO SUSP. PARA RECEBER COMPRAS NO MERCADO INT
09017 - 00002 - 8.0 - 00001 - PREENCHIMENTO DO LOTE NA TABELA /PWS/ZYCIT279
----------------------------------------------------------------------------------------------------
AJUSTES PARA TRATAMENTO DE LOTE.
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRATAMENTO - LOTE - ATO - CONCESSÓRIO
/PWS/SAPMZYCI040
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
REPS /PWS/MZYCI040O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
FORM check_field_0204.
LOOP AT tc_realizi-cols INTO wa_cols2.
* >> Início da exclusão: FORM CHECK_FIELD_0204
IF /pws/zycit321-lote EQ space.
IF wa_cols2-screen-group2 EQ 'LOT'.
wa_cols2-invisible = 1.
MODIFY tc_realizi-cols FROM wa_cols2.
ENDIF.
ELSE.
IF wa_cols2-screen-group2 EQ 'LOT'.
wa_cols2-invisible = 0.
MODIFY tc_realizi-cols FROM wa_cols2.
ENDIF.
ENDIF.
* << Fim da exclusão
IF wa_cols2-screen-group1 NE 'NEX'.
wa_cols2-screen-input = v_status2.
MODIFY tc_realizi-cols FROM wa_cols2.
ENDIF.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE246-QTD_COMPV'
AND v_tcode2_aux EQ 'X'.
IF /pws/zycie244-status EQ 'E'.
wa_cols2-screen-input = 0.
ELSE.
wa_cols2-screen-input = 0.
...
...
WHERE nrseqd EQ /pws/zycie244-nrseqd.
CLEAR: itab_zycit285. REFRESH: itab_zycit285.
SELECT * FROM /pws/zycit285 INTO TABLE itab_zycit285
WHERE nrseqd EQ /pws/zycie244-nrseqd.
SELECT * FROM /pws/zycit248 INTO TABLE itab_zycit248_final
WHERE nrseqd EQ /pws/zycie244-nrseqd.
SORT itab_zycit245 BY nritem codcomp ASCENDING.
SORT itab_zycit246_final BY nritem codcomp ASCENDING.
SORT itab_zycit247 BY nritem codmat ASCENDING.
SORT itab_zycit248_final BY nritem codmat ASCENDING.
* >> Início da exclusão: FORM TRATA_BUTTON_ENTE2
IF /pws/zycit321-lote NE space.
* << Fim da exclusão
IF NOT itab_zycit248_final[] IS INITIAL.
SELECT vbeln posnr charg FROM lips INTO TABLE itab_lote_e
FOR ALL ENTRIES IN itab_zycit248_final
WHERE vbeln EQ itab_zycit248_final-vbeln_vl
AND posnr EQ itab_zycit248_final-posnl.
LOOP AT itab_zycit248_final.
READ TABLE itab_lote_e WITH KEY
vbeln = itab_zycit248_final-vbeln_vl
posnr = itab_zycit248_final-posnl.
itab_zycit248_final-lote = itab_lote_e-charg.
MODIFY itab_zycit248_final.
ENDLOOP.
* >> Início da exclusão: FORM TRATA_BUTTON_ENTE2
ENDIF.
* << Fim da exclusão
ENDIF.
SELECT * FROM /pws/zycit243 INTO TABLE itab_centros2
WHERE nrseqd EQ /pws/zycie244-nrseqd.
SELECT * FROM /pws/zycit277 INTO TABLE itab_vencto2
WHERE nrseqd EQ /pws/zycie244-nrseqd.
SORT itab_centros2 BY werks ASCENDING.
SORT itab_vencto2 BY vencto ASCENDING.
PERFORM busca_dados_composicao.
pressed_tab_2a = 'FS_CABEC2'.
dynpronr2a = '0201'.
...
...
FORM atualiza_itab_zycit246_final.
* >> Início da exclusão: FORM ATUALIZA_ITAB_ZYCIT246_FINAL
IF /pws/zycit321-lote IS INITIAL.
READ TABLE itab_zycit246_final WITH KEY nritem = itab_zycit246-nritem
codcomp = itab_zycit246-codcomp
ebeln = itab_zycit246-ebeln
ebelp = itab_zycit246-ebelp
nrseq = itab_zycit246-nrseq.
IF sy-subrc EQ 0.
itab_zycit246_final = itab_zycit246.
itab_zycit246_final-qtd_nacion = itab_zycit246-qtd_nacion .
itab_zycit246_final-i_indice = itab_zycit246-i_indice .
itab_zycit246_final-i_waerscifme = itab_zycit246-i_waerscifme.
itab_zycit246_final-i_vlcif_me = itab_zycit246-i_vlcif_me .
itab_zycit246_final-i_txmoeda = itab_zycit246-i_txmoeda .
itab_zycit246_final-i_waerscifmi = itab_zycit246-i_waerscifmi.
itab_zycit246_final-i_vlcif_mi = itab_zycit246-i_vlcif_mi .
itab_zycit246_final-i_vlcifn_mi = itab_zycit246-i_vlcifn_mi .
itab_zycit246_final-i_txii = itab_zycit246-i_txii .
itab_zycit246_final-i_vlii = itab_zycit246-i_vlii .
itab_zycit246_final-i_txipi = itab_zycit246-i_txipi .
itab_zycit246_final-i_vlipi = itab_zycit246-i_vlipi .
itab_zycit246_final-i_txicms = itab_zycit246-i_txicms .
itab_zycit246_final-i_vlicms = itab_zycit246-i_vlicms .
itab_zycit246_final-i_txselic = itab_zycit246-i_txselic .
itab_zycit246_final-i_multaicms = itab_zycit246-i_multaicms .
itab_zycit246_final-i_tottrib = itab_zycit246-i_tottrib .
itab_zycit246_final-i_multaii = itab_zycit246-i_multaii .
itab_zycit246_final-i_multaipi = itab_zycit246-i_multaipi .
itab_zycit246_final-i_jurosii = itab_zycit246-i_jurosii .
itab_zycit246_final-i_jurosipi = itab_zycit246-i_jurosipi .
itab_zycit246_final-i_totmult = itab_zycit246-i_totmult .
itab_zycit246_final-i_jurosmor = itab_zycit246-i_jurosmor .
itab_zycit246_final-i_totmultic = itab_zycit246-i_totmultic .
MODIFY itab_zycit246_final TRANSPORTING nritem codcomp ebeln ebelp
nrseq qtd_nacion i_indice
i_waerscifme i_vlcif_me
i_txmoeda i_waerscifmi
i_vlcif_mi i_vlcifn_mi
multaipi jurosipi
multaii jurosii
multaicms jurosicms
multapis jurospis
multacof juroscof
vmultapis vjurospis
vmultacof vjuroscof
vlpis pis vlcifn_me
vlcof cofins
vafrmm afrmm
multaafrmm jurosafrmm
vmultaafrmm vjurosafrmm
i_txii i_vlii i_txipi
i_vlipi i_txicms i_vlicms
i_multaicms i_txselic
i_tottrib i_multaii
i_multaipi i_jurosii
i_jurosipi i_totmult
i_jurosmor i_totmultic
WHERE nritem = itab_zycit246-nritem
AND codcomp = itab_zycit246-codcomp
AND ebeln = itab_zycit246-ebeln
AND ebelp = itab_zycit246-ebelp
AND nrseq = itab_zycit246-nrseq.
ENDIF.
ELSE.
* << Fim da exclusão
PERFORM trata_nacion_lote.
* >> Início da exclusão: FORM ATUALIZA_ITAB_ZYCIT246_FINAL
ENDIF.
* << Fim da exclusão
ENDFORM.
...
...
FORM monta_inf_exp.
* >> Início da exclusão: FORM MONTA_INF_EXP
IF /pws/zycit321-lote EQ space.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_INF_EXP
REFRESH: itab_zycit468,
itab_zycit246_inf.
SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468
WHERE nrseqexp = itab_zycit248-nrseq
AND vbeln_va = itab_zycit248-vbeln_va
AND aupos = itab_zycit248-aupos
AND vbeln_vl = itab_zycit248-vbeln_vl
AND posnl = itab_zycit248-posnl.
IF sy-subrc NE 0.
* << Fim da inclusão
REFRESH: itab_zycit282,
itab_zycit246_inf.
SELECT * FROM /pws/zycit282 INTO TABLE itab_zycit282
WHERE nrseqexp = itab_zycit248-nrseq
AND vbeln_va = itab_zycit248-vbeln_va
AND aupos = itab_zycit248-aupos
AND vbeln_vl = itab_zycit248-vbeln_vl
AND posnl = itab_zycit248-posnl.
SORT itab_zycit282 BY nrseqimp ebeln ebelp docnum buzei.
LOOP AT itab_zycit282.
...
...
itab_zycit246_inf = itab_zycit246_final.
itab_zycit246_inf-matnr = itab_zycit282-matnr_imp.
itab_zycit246_inf-ntgew =
( itab_zycit246_inf-ntgew / itab_zycit246_inf-qtd_ncm ) *
itab_zycit282-qtd_mimp.
itab_zycit246_inf-qtd_ncm = itab_zycit282-qtd_mimp.
APPEND itab_zycit246_inf.
ENDIF.
ENDLOOP.
ELSE.
* >> Início da exclusão: FORM MONTA_INF_EXP
REFRESH: itab_zycit468,
itab_zycit246_inf.
SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468
WHERE nrseqexp = itab_zycit248-nrseq
AND vbeln_va = itab_zycit248-vbeln_va
AND aupos = itab_zycit248-aupos
AND vbeln_vl = itab_zycit248-vbeln_vl
AND posnl = itab_zycit248-posnl.
* << Fim da exclusão
LOOP AT itab_zycit468.
READ TABLE itab_zycit246_final WITH KEY
nrseq = itab_zycit468-nrseqimp
ebeln = itab_zycit468-ebeln
ebelp = itab_zycit468-ebelp
lote = itab_zycit468-lote_i
docnum = itab_zycit468-docnumimp.
IF sy-subrc EQ 0.
itab_zycit246_inf = itab_zycit246_final.
itab_zycit246_inf-ntgew =
...
...
AND ebeln = itab_zycit246-ebeln
AND ebelp = itab_zycit246-ebelp.
SELECT * FROM /pws/zycit468 INTO TABLE itab_zycit468"#EC CI_NOFIRST
WHERE nrseqimp = itab_zycit246-nrseq
AND docnumimp = itab_zycit246-docnum
AND ebeln = itab_zycit246-ebeln
AND ebelp = itab_zycit246-ebelp
AND lote_i = itab_zycit246-lote.
ENDIF.
LOOP AT itab_zycit282.
* >> Início da exclusão: FORM MONTA_INF_IMP
IF /pws/zycit321-lote NE space.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_INF_IMP
IF NOT itab_zycit246-lote IS INITIAL.
* << Fim da inclusão
READ TABLE itab_zycit468 WITH KEY
nrseqexp = itab_zycit282-nrseqexp
vbeln_va = itab_zycit282-vbeln_va
aupos = itab_zycit282-aupos
vbeln_vl = itab_zycit282-vbeln_vl
posnl = itab_zycit282-posnl
nrseqimp = itab_zycit246-nrseq
ebeln = itab_zycit246-ebeln
ebelp = itab_zycit246-ebelp
lote_i = itab_zycit246-lote.
...
...
READ TABLE itab_zycit248_final WITH KEY
nrseq = itab_zycit282-nrseqexp
vbeln_va = itab_zycit282-vbeln_va
aupos = itab_zycit282-aupos
vbeln_vl = itab_zycit282-vbeln_vl
posnl = itab_zycit282-posnl.
IF sy-subrc EQ 0.
itab_zycit248_inf-nrseq = itab_zycit248_final-nrseq.
itab_zycit248_inf-nrre = itab_zycit248_final-nrre.
itab_zycit248_inf-matnr = itab_zycit248_final-matnr.
* >> Início da exclusão: FORM MONTA_INF_IMP
IF /pws/zycit321-lote NE space.
* << Fim da exclusão
itab_zycit248_inf-lote = itab_zycit248_final-lote.
* >> Início da exclusão: FORM MONTA_INF_IMP
ENDIF.
* << Fim da exclusão
itab_zycit248_inf-dtemb = itab_zycit248_final-dtemb.
itab_zycit248_inf-nrseqre = itab_zycit248_final-nrseqre.
itab_zycit248_inf-vrkme = itab_zycit248_final-vrkme.
itab_zycit248_inf-ntgew = itab_zycit248_final-ntgew.
itab_zycit248_inf-um_ncm = itab_zycit248_final-um_ncm.
itab_zycit248_inf-qtd_ncm = itab_zycit248_final-qtd_ncm.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
MODULE user_command_0245 INPUT.
CASE ok_code2.
WHEN 'ENTE'.
* >> Início da exclusão: MODULE USER_COMMAND_0245
IF /pws/zycit321-lote = ' '.
PERFORM add_lancamento.
ELSE.
* << Fim da exclusão
PERFORM add_lancamento_lote.
* >> Início da exclusão: MODULE USER_COMMAND_0245
ENDIF.
* << Fim da exclusão
ENDCASE.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040O01
...
ENDLOOP.
LOOP AT tc_realize-cols INTO wa_cols2.
IF NOT /pws/zycie244-importacao IS INITIAL AND
wa_cols2-screen-group4 EQ 'CAM'.
wa_cols2-invisible = 1.
MODIFY tc_realize-cols FROM wa_cols2.
ELSEIF wa_cols2-screen-group4 EQ 'CAM'.
wa_cols2-invisible = 0.
MODIFY tc_realize-cols FROM wa_cols2.
ENDIF.
* >> Início da exclusão: MODULE SET_SCREEN2
IF /pws/zycit321-lote IS INITIAL.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.
wa_cols2-invisible = 1.
MODIFY tc_realize-cols FROM wa_cols2.
ENDIF.
ELSE.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.
wa_cols2-invisible = 0.
MODIFY tc_realize-cols FROM wa_cols2.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDLOOP.
DESCRIBE TABLE itab_zycit248 LINES v_ilinhas2.
tc_realize-lines = v_ilinhas2.
WHEN '0208'.
LOOP AT tc_centros2-cols INTO wa_cols2.
IF wa_cols2-screen-group1 NE 'NEX'.
IF NOT /pws/zycie244-nrforecast IS INITIAL.
wa_cols2-screen-input = 0.
ELSE.
wa_cols2-screen-input = v_status2.
...
...
MODULE status_0241 OUTPUT.
SET PF-STATUS 'ST0241'.
SET TITLEBAR 'TL0241'.
CLEAR ok_code.
DESCRIBE TABLE itab_zycit246_inf LINES v_ilinhas2.
tc_inf_exp-lines = v_ilinhas2.
LOOP AT tc_inf_exp-cols INTO wa_cols2.
* >> Início da exclusão: MODULE STATUS_0241
IF /pws/zycit321-lote EQ space.
IF wa_cols2-screen-group2 EQ 'LOT'.
wa_cols2-invisible = '1'.
MODIFY tc_inf_exp-cols FROM wa_cols2.
ENDIF.
ELSE.
IF wa_cols2-screen-group2 EQ 'LOT'.
wa_cols2-invisible = '0'.
MODIFY tc_inf_exp-cols FROM wa_cols2.
ENDIF.
ENDIF.
* << Fim da exclusão
CASE wa_cols2-screen-group1.
WHEN 'NF'.
IF /pws/zycie244-tipo EQ 'F'.
wa_cols2-invisible = '0'.
ELSE.
wa_cols2-invisible = '1'.
ENDIF.
MODIFY tc_inf_exp-cols FROM wa_cols2.
WHEN 'IMP'.
IF /pws/zycie244-tipo EQ 'F'.
...
...
MODULE status_0242 OUTPUT.
SET PF-STATUS 'ST0241'.
SET TITLEBAR 'TL0242'.
CLEAR ok_code.
DESCRIBE TABLE itab_zycit248_inf LINES v_ilinhas2.
LOOP AT tc_inf_imp-cols INTO wa_cols2.
* >> Início da exclusão: MODULE STATUS_0242
IF /pws/zycit321-lote EQ space.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.
wa_cols2-invisible = 1.
MODIFY tc_inf_imp-cols FROM wa_cols2.
ENDIF.
ELSE.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE248-LOTE'.
wa_cols2-invisible = 0.
MODIFY tc_inf_imp-cols FROM wa_cols2.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDLOOP.
tc_inf_imp-lines = v_ilinhas2.
ENDMODULE.
...
...
MODULE trata_lote OUTPUT.
LOOP AT SCREEN.
CASE screen-name.
WHEN '/PWS/ZYCIE470-LOTE'.
* >> Início da exclusão: MODULE TRATA_LOTE
IF /pws/zycit321-lote = ' '.
screen-invisible = 1.
screen-active = 0.
MODIFY SCREEN.
ELSE.
screen-invisible = 0.
MODIFY SCREEN.
ENDIF.
* << Fim da exclusão
ENDCASE.
ENDLOOP.
ENDMODULE.
...