Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 23/07/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:32:58
Descrição da Nota: PERMITIR TRANSFERENCIA DE ITENS APENAS SE POSSUIR SALDO TOTAL.
Sintoma
Ajustado programa de ato concessório para realizar a transferencia de saldo sem quebrar as adições
da DI e não permitir transferencia parcial.
Solução
Ajustado programa de ato concessório para realizar a transferencia de saldo sem quebrar as adições
da DI e não permitir transferencia parcial.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08721 Data: 23/07/2009 Hora: 14:24:42
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08721
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00106
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05376 - 00001 - 7.0 - 00003 - TRANFERÊNCIA DE SALDOS NO ATO CONCESSÓRIO
05438 - 00002 - 7.0 - 00003 - DATA DO ATO CONCESSÓRIO ISENÇÃO
05609 - 00003 - 7.0 - 00004 - AJUSTE NA TRANSFERENCIA DE SALDOS.
07165 - 00004 - 7.0 - 00006 - CORREÇÃO NA TRANSFERENCIA DE SALDO DO ATO CONCESSÓRIO
----------------------------------------------------------------------------------------------------
PERMITIR TRANSFERENCIA DE ITENS APENAS SE POSSUIR SALDO TOTAL.
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRANSFERENCIA - ADIÇÃO - DI - ATO - CONCESSÓRIO - SALDO
/PS/SAPMZYCI040
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI040 0237
DYNP /PWS/SAPMZYCI040 0239
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040F03
REPS /PWS/MZYCI040I01
REPS /PWS/MZYCI040O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI040 0237
MODIFICAR TEXTO "/PWS/ZYCIE245-BRGEW" em tbl.contr./tabstr.
Comprimento Visível 22
Texto Qtde. Tot. Transferida
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI040 0239
EXCLUIR CAMPO TEXTO "/PWS/ZYCIE245-QTD_TRANSF"
EXCLUIR TEXTO "/PWS/ZYCIE245-QTD_TRANSF"
EXCLUIR CAMPO TEXTO "/PWS/ZYCIE245-TRANSF"
EXCLUIR TEXTO "/PWS/ZYCIE245-TRANSF"
INCLUIR CAMPO TEXTO "/PWS/ZYCIE279-MENGE" em tbl.contr./tabstr.
Altura 17
Comprimento Visível 27
Linha 1
Coluna 13
Formato QUAN
Campo referência /PWS/ZYCIE279-MEINS
Grupo 1 NEX
Linhas mínimas 23
Colunas mínimas 12
Texto __.___.___.___,____________
INCLUIR TEXTO "/PWS/ZYCIE279-MENGE" em tbl.contr./tabstr.
Altura 17
Comprimento Visível 14
Linha 1
Coluna 13
Formato CHAR
Texto Quantidade NCM
MODIFICAR CAMPO TEXTO "/PWS/ZYCIE279-NRSEQD_D" em tbl.contr./tabstr.
Coluna 14
MODIFICAR TEXTO "/PWS/ZYCIE279-NRSEQD_D" em tbl.contr./tabstr.
Coluna 14
EXCLUIR CAMPO TEXTO "/PWS/ZYCIE279-QTD_TRANSF" em tbl.contr./tabstr.
EXCLUIR TEXTO "/PWS/ZYCIE279-QTD_TRANSF" em tbl.contr./tabstr.
EXCLUIR CAMPO TEXTO "/PWS/ZYCIE279-SLQTDE" em tbl.contr./tabstr.
EXCLUIR TEXTO "/PWS/ZYCIE279-SLQTDE" em tbl.contr./tabstr.
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0239
PROCESS BEFORE OUTPUT.
MODULE status_0239.
LOOP AT itab_zycit279_ap_aux WITH CONTROL tc_transf
CURSOR tc_transf-current_line.
MODULE preenche_estrutura_0239.
ENDLOOP.
PROCESS AFTER INPUT.
* >> Início da exclusão:
CHAIN.
FIELD: /pws/zycie245-transf
MODULE modifica_transf2 ON CHAIN-REQUEST.
ENDCHAIN.
* << Fim da exclusão
LOOP AT itab_zycit279_ap_aux.
CHAIN.
FIELD: v_mark2
MODULE modifica_transf ON CHAIN-REQUEST.
ENDCHAIN.
CHAIN.
FIELD: /pws/zycie279-nrseqd_d
MODULE modifica_ato_dest ON CHAIN-REQUEST.
* >> Início da exclusão:
ENDCHAIN.
CHAIN.
FIELD: /pws/zycie279-qtd_transf
MODULE modifica_transf3 ON CHAIN-REQUEST.
* << Fim da exclusão
ENDCHAIN.
ENDLOOP.
MODULE modifica_transf_tot.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
CLEAR itab_resumo_ap.
itab_resumo_ap-matnr = itab_zycit279_ap-matnr .
itab_resumo_ap-meins = itab_zycit279_ap-meins .
itab_resumo_ap-qtd_di = itab_zycit279_ap-menge .
itab_resumo_ap-qtd_nac = itab_zycit279_ap-slqtde .
itab_resumo_ap-qtd_per = itab_zycit279_ap-qtd_perda .
itab_resumo_ap-qtd_perd_e = itab_zycit279_ap-qtd_perda_e .
itab_resumo_ap-qtd_tra = itab_zycit279_ap-qtd_transf.
* >> Início da inclusão: FORM PREENCHE_RESUMO_APONT
IF itab_zycit279_ap-transf IS INITIAL.
* << Fim da inclusão
itab_resumo_ap-qtd_apr = itab_resumo_ap-qtd_di -
itab_resumo_ap-qtd_nac.
* >> Início da exclusão: FORM PREENCHE_RESUMO_APONT
itab_resumo_ap-qtd_nac = itab_resumo_ap-qtd_nac -
itab_resumo_ap-qtd_tra.
* << Fim da exclusão
* >> Início da inclusão: FORM PREENCHE_RESUMO_APONT
ELSE.
CLEAR: itab_resumo_ap-qtd_apr.
ENDIF.
* << Fim da inclusão
IF itab_resumo_ap-matnr EQ wa_resumo_ap-matnr .
itab_resumo_ap-mark = 'X'.
ENDIF.
COLLECT itab_resumo_ap.
ENDLOOP.
LOOP AT itab_resumo_ap.
SELECT SINGLE maktx FROM makt INTO itab_resumo_ap-maktx
WHERE matnr EQ itab_resumo_ap-matnr.
MODIFY itab_resumo_ap.
ENDLOOP.
...
...
AND ebelp EQ itab_zycit279_ap-ebelp.
itab_zycit279_ap-qtd_perda = itab_zycit279_ap-qtd_perda +
itab_zycit282_ap-qtd_perda.
itab_zycit279_ap-qtd_perda_e = itab_zycit279_ap-qtd_perda_e +
itab_zycit282_ap-qtd_perda_e.
ENDLOOP.
itab_zycit279_ap-perda = ( itab_zycit279_ap-qtd_perda /
itab_zycit279_ap-menge ) * 100.
MODIFY itab_zycit279_ap.
ENDLOOP.
* >> Início da exclusão: FORM CARREGA_TABELA279
IF /pws/zycie244-dtdi IS INITIAL.
* << Fim da exclusão
DELETE itab_data_di WHERE data EQ space.
IF NOT itab_data_di[] IS INITIAL.
SORT itab_data_di BY data.
READ TABLE itab_data_di INDEX 1.
* >> Início da inclusão: FORM CARREGA_TABELA279
IF /pws/zycie244-dtdi IS INITIAL OR
/pws/zycie244-dtdi > itab_data_di-data.
* << Fim da inclusão
/pws/zycie244-dtdi = itab_data_di-data.
* >> Início da exclusão: FORM CARREGA_TABELA279
IF /pws/zycie244-vcto_fn IS INITIAL.
/pws/zycie244-vcto_fn = /pws/zycie244-dtdi + 731.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_TABELA279
/pws/zycie244-vcto_fn = /pws/zycie244-dtdi.
add 2 to /pws/zycie244-vcto_fn(4).
* << Fim da inclusão
UPDATE /pws/zycit244 SET dtdi = /pws/zycie244-dtdi
vcto_fn = /pws/zycie244-vcto_fn
WHERE nrseqd EQ /pws/zycie244-nrseqd.
* >> Início da exclusão: FORM CARREGA_TABELA279
ENDIF.
* << Fim da exclusão
ENDIF.
ENDIF.
ENDFORM.
...
...
FORM monta_transf.
* >> Início da inclusão: FORM MONTA_TRANSF
DATA: BEGIN OF itab_adicao OCCURS 0,
adicao TYPE /pws/zycit279-adicao ,
nrseqdi TYPE /pws/zycit279-nrseqdi,
END OF itab_adicao.
LOOP AT itab_zycit279_ap.
IF ( itab_zycit279_ap-menge NE itab_zycit279_ap-slqtde OR
itab_zycit279_ap-esgotado EQ 'X' ) AND
itab_zycit279_ap-transf IS INITIAL.
itab_adicao-adicao = itab_zycit279_ap-adicao.
itab_adicao-nrseqdi = itab_zycit279_ap-nrseqdi.
COLLECT itab_adicao.
ENDIF.
ENDLOOP.
* << Fim da inclusão
REFRESH itab_zycit279_ap_aux.
CLEAR itab_zycit279_ap.
MODIFY itab_zycit279_ap TRANSPORTING mark
WHERE mark EQ 'X'.
IF /pws/zycie244-tipo NE 'G'.
IF pressed_tab_2a EQ 'FS_MERC2'.
LOOP AT itab_zycit246_final
WHERE matnr = itab_resumo_ap-matnr
AND nrseqdi EQ space.
EXIT.
...
...
nritem = itab_zycit246_final-nritem.
/pws/zycie245 = itab_zycit245.
/pws/zycie245-meins = itab_zycit245-um_ncm.
READ TABLE itab_zycit279_ap
WITH KEY matnr = itab_resumo_ap-matnr.
/pws/zycie245-transf = itab_zycit279_ap-transf.
/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
* >> Início da exclusão: FORM MONTA_TRANSF
WHERE matnr EQ itab_resumo_ap-matnr
AND esgotado EQ space.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_TRANSF
WHERE matnr EQ itab_resumo_ap-matnr.
READ TABLE itab_adicao WITH KEY
adicao = itab_zycit279_ap-adicao
nrseqdi = itab_zycit279_ap-nrseqdi.
IF sy-subrc EQ 0 .
CONTINUE.
ENDIF.
* << Fim da inclusão
IF itab_zycit279_ap-nrseqdi NE space.
IF pressed_tab_2a EQ 'FS_MERC2'.
CONTINUE.
ENDIF.
ELSEIF /pws/zycie244-tipo NE 'F' AND
/pws/zycie244-modalidade EQ 'S'.
IF pressed_tab_2a NE 'FS_MERC2'.
CONTINUE.
ENDIF.
ENDIF.
...
...
ELSE.
READ TABLE itab_zycit245 INDEX 1.
/pws/zycie245 = itab_zycit245.
/pws/zycie245-um_ncm = itab_resumo_ap-meins.
READ TABLE itab_zycit279_ap
WITH KEY matnr = itab_resumo_ap-matnr.
/pws/zycie245-transf = itab_zycit279_ap-transf.
/pws/zycie245-qtd_transf = itab_resumo_ap-qtd_di *
( /pws/zycie245-transf / 100 ).
v_saldo_transf = /pws/zycie245-qtd_transf.
* >> Início da exclusão: FORM MONTA_TRANSF
LOOP AT itab_zycit279_ap WHERE matnr EQ itab_resumo_ap-matnr
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_TRANSF
LOOP AT itab_zycit279_ap WHERE matnr EQ itab_resumo_ap-matnr
* << Fim da inclusão
AND esgotado EQ space.
* >> Início da inclusão: FORM MONTA_TRANSF
READ TABLE itab_adicao WITH KEY
adicao = itab_zycit279_ap-adicao
nrseqdi = itab_zycit279_ap-nrseqdi.
IF sy-subrc EQ 0 .
CONTINUE.
ENDIF.
* << Fim da inclusão
IF itab_zycit279_ap-nrseqdi NE space.
...
...
FORM salva_apont.
DATA: itab_zycit245_ap_s LIKE /pws/zycit245 OCCURS 0 WITH HEADER LINE,
itab_zycit245_e LIKE /pws/zycit245 OCCURS 0 WITH HEADER LINE,
itab_zycit245_s LIKE /pws/zycit245 OCCURS 0 WITH HEADER LINE,
itab_zycit279_e LIKE /pws/zycit279 OCCURS 0 WITH HEADER LINE.
IF NOT itab_zycit279_ap[] IS INITIAL.
* >> Início da inclusão: FORM SALVA_APONT
SORT itab_zycit245_ap_s BY nrseqd nritem.
REFRESH itab_zycit279_ap_s.
itab_zycit279_e[] = itab_zycit279_ap[].
DELETE itab_zycit279_e WHERE nrseqd_d EQ space
OR transf NE space.
SORT itab_zycit279_e BY nrseqd_d.
DELETE ADJACENT DUPLICATES FROM itab_zycit279_e
COMPARING nrseqd_d.
* << Fim da inclusão
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_ap_s
* >> Início da exclusão: FORM SALVA_APONT
FOR ALL ENTRIES IN itab_zycit279_ap
WHERE nrseqd EQ itab_zycit279_ap-nrseqd_d.
SELECT * FROM /pws/zycit279 INTO TABLE itab_zycit279_e
WHERE nrseqd EQ /pws/zycie244-nrseqd. "#EC CI_NOFIRST
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_e
* << Fim da exclusão
FOR ALL ENTRIES IN itab_zycit279_e
WHERE nrseqd EQ itab_zycit279_e-nrseqd_d.
* >> Início da exclusão: FORM SALVA_APONT
SORT itab_zycit245_ap_s BY nrseqd nritem.
LOOP AT itab_zycit279_ap.
CLEAR: itab_zycit279_e.
READ TABLE itab_zycit279_e WITH KEY
nrseq = itab_zycit279_ap-nrseq
ebeln = itab_zycit279_ap-ebeln
lote = itab_zycit279_ap-lote
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_zycit246_save WITH KEY
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.
IF itab_zycit279_ap-nrseqdi IS INITIAL.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND nritem > '90000'.
EXIT.
ENDLOOP.
ELSE.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND nritem < '90000'.
EXIT.
ENDLOOP.
ENDIF.
IF itab_zycit245_e-tipo NE 'G'.
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
CLEAR itab_zycit433.
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. "#EC CI_NOFIRST
itab_zycit433-matnr = itab_zycit279_e-matnr.
APPEND itab_zycit433.
LOOP AT itab_zycit433.
IF itab_zycit279_ap-nrseqdi IS INITIAL.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND codcomp = itab_zycit433-matnr
AND nritem > '90000'.
EXIT.
ENDLOOP.
ELSE.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND codcomp = itab_zycit433-matnr
AND nritem < '90000'.
EXIT.
ENDLOOP.
ENDIF.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
ENDLOOP.
ELSE.
IF itab_zycit279_ap-nrseqdi IS INITIAL.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND j_1bnbm = itab_zycit279_e-j_1bnbm
AND nritem > '90000'.
EXIT.
ENDLOOP.
ELSE.
LOOP AT itab_zycit245_e
WHERE nrseqd = itab_zycit279_e-nrseqd_d
AND j_1bnbm = itab_zycit279_e-j_1bnbm
AND nritem < '90000'.
EXIT.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
READ TABLE itab_zycit245_s WITH KEY
nrseqd = itab_zycit245_e-nrseqd
nritem = itab_zycit245_e-nritem.
IF sy-subrc NE 0.
itab_zycit245_s = itab_zycit245_e.
ENDIF.
IF itab_zycit246_save-i_txmoeda IS INITIAL.
itab_zycit246_save-i_txmoeda = 1.
ENDIF.
v_vl_transf = ( itab_zycit279_e-qtd_transf *
itab_zycit279_e-valor ) / itab_zycit246_save-i_txmoeda.
itab_zycit245_s-vlvinc = itab_zycit245_s-vlvinc
- v_vl_transf.
itab_zycit245_s-vinculado =
itab_zycit245_s-vinculado -
itab_zycit279_e-qtd_transf.
MODIFY itab_zycit245_s TRANSPORTING vinculado vlvinc
WHERE nrseqd = itab_zycit245_s-nrseqd
AND nritem = itab_zycit245_s-nritem.
IF sy-subrc NE 0 .
APPEND itab_zycit245_s.
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_APONT
LOOP AT itab_zycit279_ap WHERE nrseqd_d NE space
AND transf EQ space.
itab_zycit279_ap-transf = 100.
* << Fim da inclusão
IF itab_zycit279_ap-nrseqdi IS INITIAL.
LOOP AT itab_zycit245_ap_s
WHERE nrseqd = itab_zycit279_ap-nrseqd_d
AND nritem > '90000'.
EXIT.
ENDLOOP.
ELSE.
LOOP AT itab_zycit245_ap_s
WHERE nrseqd = itab_zycit279_ap-nrseqd_d
AND nritem < '90000'.
...
...
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
READ TABLE itab_zycit245_s WITH KEY
nrseqd = itab_zycit245_ap_s-nrseqd
nritem = itab_zycit245_ap_s-nritem.
IF sy-subrc NE 0.
itab_zycit245_s = itab_zycit245_ap_s.
ENDIF.
* >> Início da exclusão: FORM SALVA_APONT
IF itab_zycit246_save-i_txmoeda IS INITIAL.
itab_zycit246_save-i_txmoeda = 1.
ENDIF.
v_vl_transf = ( itab_zycit279_ap-qtd_transf *
itab_zycit279_ap-valor ) / itab_zycit246_save-i_txmoeda.
itab_zycit245_s-vlvinc = itab_zycit245_s-vlvinc
+ v_vl_transf.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVA_APONT
ADD itab_zycit279_ap-vltot TO itab_zycit245_s-vlvinc.
* << Fim da inclusão
itab_zycit245_s-vinculado =
itab_zycit245_s-vinculado +
itab_zycit279_ap-qtd_transf.
MODIFY itab_zycit245_s TRANSPORTING vinculado vlvinc
WHERE nrseqd = itab_zycit245_s-nrseqd
AND nritem = itab_zycit245_s-nritem.
IF sy-subrc NE 0 .
APPEND itab_zycit245_s.
ENDIF.
* >> Início da inclusão: FORM SALVA_APONT
itab_zycit279_ap_s = itab_zycit279_ap.
itab_zycit279_ap_s-menge =
itab_zycit279_ap_s-slqtde = itab_zycit279_ap-qtd_transf .
itab_zycit279_ap_s-nrseqd = itab_zycit279_ap-nrseqd_d .
CLEAR:
itab_zycit279_ap_s-nrseqd_d, itab_zycit279_ap_s-perda,
itab_zycit279_ap_s-qtd_perda, itab_zycit279_ap_s-qtd_transf,
itab_zycit279_ap_s-transf, itab_zycit279_ap_s-vlpis,
itab_zycit279_ap_s-multapis, itab_zycit279_ap_s-vmultapis,
itab_zycit279_ap_s-jurospis, itab_zycit279_ap_s-vjurospis,
itab_zycit279_ap_s-vlcof, itab_zycit279_ap_s-multacof,
itab_zycit279_ap_s-vmultacof, itab_zycit279_ap_s-juroscof,
itab_zycit279_ap_s-vjuroscof, itab_zycit279_ap_s-vafrmm,
itab_zycit279_ap_s-multaafrmm, itab_zycit279_ap_s-vmultaafrmm,
itab_zycit279_ap_s-jurosafrmm, itab_zycit279_ap_s-vjurosafrmm,
itab_zycit279_ap_s-multaii, itab_zycit279_ap_s-multaipi,
itab_zycit279_ap_s-multaicms, itab_zycit279_ap_s-jurosii,
itab_zycit279_ap_s-jurosipi, itab_zycit279_ap_s-jurosicms.
APPEND itab_zycit279_ap_s.
CLEAR: itab_zycit279_ap-slqtde.
itab_zycit279_ap-esgotado = 'X'.
MODIFY itab_zycit279_ap.
itab_zycit246_final-qtd_compv = itab_zycit279_ap-menge.
modify itab_zycit246_final transporting qtd_compv
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
ENDLOOP.
MODIFY /pws/zycit279 FROM TABLE itab_zycit279_ap.
IF NOT itab_zycit245_s[] IS INITIAL.
MODIFY /pws/zycit245 FROM TABLE itab_zycit245_s.
ENDIF.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F03
...
default_button = '1'
display_cancel_button = 'X'
IMPORTING
answer = v_confirm
EXCEPTIONS
text_not_found = 1
OTHERS = 2.
IF v_confirm EQ '2' OR v_confirm EQ 'A'.
EXIT.
ENDIF.
* >> Início da exclusão: FORM TRATA_BUTTON_ENCER2
CLEAR v_status_tf.
PERFORM transf_saldo USING v_status_tf.
IF v_status_tf NE 'S'.
EXIT.
ENDIF.
* << Fim da exclusão
IF NOT /pws/zycit321-siscotrans IS INITIAL AND
/pws/zycie244-modalidade EQ 'S'.
it_zycit285-nrseqd = /pws/zycie244-nrseqd.
it_zycit285-tp_doc = 'BAC'.
it_zycit285-identify = /pws/zycie244-identify.
it_zycit285-werks = /pws/zycie244-werks.
it_zycit285-bukrs = /pws/zycie244-bukrs.
it_zycit285-dtenvf = sy-datum.
it_zycit285-uname = sy-uname.
it_zycit285-stasis = 'A'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
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.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
IF v_mark2 IS INITIAL.
v_saldo_transf = v_saldo_transf + itab_zycit279_ap_aux-qtd_transf.
CLEAR: /pws/zycie279-qtd_transf, /pws/zycie279-nrseqd_d.
ELSE.
IF NOT /pws/zycie245-transf IS INITIAL.
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.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
itab_zycit279_ap_aux-mark = v_mark2.
IF v_mark2 NE 'X'.
CLEAR: itab_zycit279_ap_aux-nrseqd_d.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
ENDIF.
itab_zycit279_ap = itab_zycit279_ap_aux =
/pws/zycie279.
itab_zycit279_ap_aux-mark = itab_zycit279_ap_aux-mark = v_mark2.
MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf
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.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
MODIFY itab_zycit279_ap_aux TRANSPORTING mark nrseqd_d
WHERE nrseq EQ wa_transf-nrseq
AND nrseqdi EQ wa_transf-nrseqdi
AND adicao EQ wa_transf-adicao.
LOOP AT itab_zycit279_ap WHERE nrseq EQ wa_transf-nrseq
AND nrseqdi EQ wa_transf-nrseqdi
AND adicao EQ wa_transf-adicao.
IF v_mark2 NE 'X'.
itab_zycit246-qtd_nacion = itab_zycit246_final-qtd_nacion =
itab_zycit279_ap-slqtde.
CLEAR: itab_zycit279_ap_aux-qtd_transf,
itab_zycit279_ap-qtd_transf.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: MODULE MODIFICA_TRANSF
CLEAR: itab_zycit246-qtd_nacion,
itab_zycit246_final-qtd_nacion,
itab_zycit279_ap-qtd_transf,
itab_zycit279_ap-nrseqd_d.
itab_zycit279_ap_aux-qtd_transf =
* << Fim da inclusão
itab_zycit279_ap-qtd_transf = itab_zycit279_ap-slqtde.
ENDIF.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
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.
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.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_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
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.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
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
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
MODIFY itab_zycit279_ap_aux TRANSPORTING qtd_transf
* << Fim da inclusão
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.
* >> Início da exclusão: MODULE MODIFICA_TRANSF
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_TRANSF
MODIFY itab_zycit279_ap.
* << Fim da inclusão
ENDLOOP.
v_altera_ap = 'S'.
ENDMODULE.
...
...
MODULE modifica_ato_dest INPUT.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
DATA: wa_zycit279 TYPE /pws/zycie279,
v_nvinc TYPE c.
* << Fim da inclusão
...
...
IF wa_zycit244_tf-tipo EQ 'G'.
IF pressed_tab_2a = 'FS_MERC2'.
SELECT SINGLE * FROM /pws/zycit245 INTO wa_zycit245_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d
AND nritem > 90000. "#EC PORTABLE
ELSE.
SELECT SINGLE * FROM /pws/zycit245 INTO wa_zycit245_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d
AND nritem < 90000. "#EC PORTABLE
ENDIF.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
wa_zycit279 = itab_zycit279_ap_aux.
v_saldo_vl = wa_zycit245_tf-netpr_t - wa_zycit245_tf-vlvinc.
LOOP AT itab_zycit279_ap INTO itab_zycit279_ap_aux
WHERE nrseq EQ wa_zycit279-nrseq
AND nrseqdi EQ wa_zycit279-nrseqdi
AND adicao EQ wa_zycit279-adicao.
* << Fim da inclusão
READ TABLE itab_zycit246_final WITH KEY
nrseq = itab_zycit279_ap_aux-nrseq
docnum = itab_zycit279_ap_aux-docnum
ebeln = itab_zycit279_ap_aux-ebeln
ebelp = itab_zycit279_ap_aux-ebelp.
READ TABLE itab_zycit279_ap WITH KEY
nrseq = itab_zycit279_ap_aux-nrseq
docnum = itab_zycit279_ap_aux-docnum
ebeln = itab_zycit279_ap_aux-ebeln
ebelp = itab_zycit279_ap_aux-ebelp.
IF itab_zycit246_final-i_txmoeda IS INITIAL.
itab_zycit246_final-i_txmoeda = 1.
ENDIF.
* >> Início da exclusão: MODULE MODIFICA_ATO_DEST
v_saldo_vl = wa_zycit245_tf-netpr_t - wa_zycit245_tf-vlvinc.
* << Fim da exclusão
v_vl_transf =
( /pws/zycie279-qtd_transf * itab_zycit279_ap-valor ) /
itab_zycit246_final-i_txmoeda.
IF v_saldo_vl < v_vl_transf.
MESSAGE i015 WITH text-268 /pws/zycie279-nrseqd_d text-268.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
v_nvinc = 'X'.
* << Fim da inclusão
EXIT.
ELSE.
MESSAGE s015 WITH text-288.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
ENDIF.
SUBTRACT v_vl_transf FROM v_saldo_vl.
ENDLOOP.
IF v_nvinc EQ 'X'.
EXIT.
* << Fim da inclusão
ENDIF.
ELSE.
REFRESH itab_zycit245_tf.
IF pressed_tab_2a = 'FS_MERC2'.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d
AND nritem > 90000. "#EC PORTABLE
ELSE.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d
AND nritem < 90000. "#EC PORTABLE
ENDIF.
CLEAR: itab_zycit245_tf, wa_zycit245_tf.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
wa_zycit279 = itab_zycit279_ap_aux.
LOOP AT itab_zycit279_ap_aux
WHERE nrseq EQ wa_zycit279-nrseq
AND nrseqdi EQ wa_zycit279-nrseqdi
AND adicao EQ wa_zycit279-adicao.
* << Fim da inclusão
IF /pws/zycit321-c_comum IS INITIAL.
REFRESH itab_zycit433.
CLEAR itab_zycit433.
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
* >> Início da exclusão: MODULE MODIFICA_ATO_DEST
WHERE grupo EQ itab_zycit433-grupo. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
WHERE grupo EQ itab_zycit433-grupo. "#EC CI_NOFIRST
* << Fim da inclusão
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.
IF sy-subrc EQ 0.
wa_zycit245_tf = itab_zycit245_tf.
EXIT.
ENDIF.
ENDLOOP.
...
...
READ TABLE itab_zycit245_tf WITH KEY
j_1bnbm = itab_zycit279_ap_aux-j_1bnbm.
IF sy-subrc EQ 0.
wa_zycit245_tf = itab_zycit245_tf.
ENDIF.
ENDIF.
IF NOT wa_zycit245_tf IS INITIAL.
v_qtd_tf = wa_zycit245_tf-qtd_ncm - wa_zycit245_tf-vinculado.
IF v_qtd_tf < itab_zycit279_ap_aux-qtd_transf.
MESSAGE i015 WITH text-268 /pws/zycie279-nrseqd_d text-269.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
v_nvinc = 'X'.
* << Fim da inclusão
EXIT.
ELSE.
MESSAGE s015 WITH text-288.
ENDIF.
ELSE.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
v_nvinc = 'X'.
* << Fim da inclusão
MESSAGE i015 WITH text-258 itab_zycit279_ap_aux-matnr
text-270 /pws/zycie279-nrseqd_d.
EXIT.
ENDIF.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
itab_zycit245_tf-vinculado = wa_zycit245_tf-vinculado +
itab_zycit279_ap_aux-qtd_transf.
MODIFY itab_zycit245_tf TRANSPORTING vinculado
WHERE nritem EQ wa_zycit245_tf-nritem.
ENDLOOP.
IF v_nvinc EQ 'X'.
CLEAR: v_nvinc.
EXIT.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
ENDIF.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit244 INTO wa_zycit244_tf
WHERE nrseqd EQ /pws/zycie279-nrseqd_d.
IF wa_zycit244_tf-tipo NE 'C'
AND wa_zycit244_tf-tipo NE 'G'.
MESSAGE i015 WITH text-272.
ELSEIF wa_zycit244_tf-status NE 'D'.
MESSAGE i015 WITH text-271.
ELSE.
MESSAGE i015 WITH text-274 .
ENDIF.
EXIT.
ENDIF.
ENDIF.
itab_zycit279_ap-nrseqd_d =
itab_zycit279_ap_aux-nrseqd_d = /pws/zycie279-nrseqd_d.
* >> Início da exclusão: MODULE MODIFICA_ATO_DEST
MODIFY itab_zycit279_ap_aux INDEX tc_transf-current_line.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
MODIFY itab_zycit279_ap_aux TRANSPORTING nrseqd_d
WHERE nrseq EQ itab_zycit279_ap_aux-nrseq
AND nrseqdi EQ itab_zycit279_ap_aux-nrseqdi
AND adicao EQ itab_zycit279_ap_aux-adicao.
* << Fim da inclusão
MODIFY itab_zycit279_ap TRANSPORTING nrseqd_d
WHERE nrseq EQ itab_zycit279_ap_aux-nrseq
* >> Início da exclusão: MODULE MODIFICA_ATO_DEST
AND docnum EQ itab_zycit279_ap_aux-docnum
AND ebeln EQ itab_zycit279_ap_aux-ebeln
AND ebelp EQ itab_zycit279_ap_aux-ebelp
AND qtd_transf > 0.
* << Fim da exclusão
* >> Início da inclusão: MODULE MODIFICA_ATO_DEST
AND nrseqdi EQ itab_zycit279_ap_aux-nrseqdi
AND adicao EQ itab_zycit279_ap_aux-adicao..
* << Fim da inclusão
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040O01
...
MODULE preenche_estrutura_0239 OUTPUT.
/pws/zycie279 = itab_zycit279_ap_aux.
v_mark2 = itab_zycit279_ap_aux-mark.
IF v_mark2 EQ 'X'.
LOOP AT SCREEN.
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0239
IF itab_zycit279_ap_aux-transf IS INITIAL.
* << Fim da inclusão
CASE screen-name.
WHEN '/PWS/ZYCIE279-NRSEQD_D'.
screen-input = v_status2.
MODIFY SCREEN.
WHEN '/PWS/ZYCIE279-QTD_TRANSF'.
IF /pws/zycie245-transf IS INITIAL
AND /pws/zycie279-nrseqd_d IS INITIAL.
screen-input = v_status2.
ELSE.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDCASE.
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0239
ELSE.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
* << Fim da inclusão
IF v_tcode2 EQ '/PWS/ZYCI040_E'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
...