Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 23/11/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 14:34:38
Descrição da Nota: AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALTERNATIV
Sintoma
Foram realizado ajustes no parametro de insumo alternativo, o que torna necessario o ajuste da
composição para realizar o tratamento correto deste parametro.
Solução
Foram realizado ajustes no parametro de insumo alternativo, o que torna necessario o ajuste da
composição para realizar o tratamento correto deste parametro.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02498 Data: 23/11/2006 Hora: 10:20:13
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02498
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00140
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01691 - 00001 - 6.0 - 00024 - AJUSTES REFERENTES A RASTREIO DE LOTE EFETUADO NOS PROGRAMAS DE D
02190 - 00002 - 6.0 - 00025 - TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNA
02251 - 00003 - 6.0 - 00025 - COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTA
----------------------------------------------------------------------------------------------------
AJUSTADA COMPOSIÇÃO PARA TRATAR AJUSTE REALIZADOS NOS INSUMOS ALTERNATIV
----------------------------------------------------------------------------------------------------
Palavras Chave:
INSUMO - ALTERNATIVO - COMPOSIÇÃO - ISENÇÃO
/PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
REPS /PWS/MZYCI064O01
REPS /PWS/MZYCI064TOP2
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
ENDLOOP.
ENDLOOP.
ENDIF.
ELSE.
SELECT a~nrseqre a~nrre a~dtincl a~agrupado a~codenq1
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
b~matnr b~vbeln_va b~vbeln_vf b~posnr b~vbeln_vl b~posnl
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
b~matnr b~vbeln_va c~vbeln_vf c~posnr b~vbeln_vl b~posnl
* << Fim da inclusão
b~gewei b~ntgew b~brgew b~waers
b~vfob b~vlagente b~netpr b~seqagrupado b~codnrseq
d~nrseqexp c~werks c~steuc c~vkorg_auft c~vtweg_auft
INTO TABLE itab_re_final
FROM ( /pws/zycet116 AS a INNER JOIN /pws/zycet118 AS b
...
...
ENDLOOP.
CALL SCREEN 0600 STARTING AT 5 5.
ENDIF.
PERFORM equip_exp.
PERFORM comerc_exp.
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
LOOP AT itab_det_exp_final WHERE j_1bnbm EQ space.
SELECT SINGLE a~steuc INTO itab_det_exp_final-j_1bnbm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ itab_det_exp_final-matnr
AND a~steuc NE space
AND b~land1 EQ t001-land1.
MODIFY itab_det_exp_final TRANSPORTING j_1bnbm
WHERE matnr EQ itab_det_exp_final-matnr.
ENDLOOP.
* << Fim da inclusão
PERFORM carrega_resumo_exportacao3.
ENDIF.
IF itab_det_exp_final[] IS INITIAL.
MESSAGE s015 WITH text-267 text-268.
ENDIF.
...
...
IF wa_cols3-screen-group1 NE 'NEX'.
wa_cols3-screen-input = v_status3.
MODIFY tc_det_imp3-cols FROM wa_cols3.
ENDIF.
IF /pws/zycit321-it_ge NE 'X'.
* >> Início da exclusão: FORM CHECK_FIELDS_SCREEN_0308
IF wa_cols3-screen-group4 NE 'GR'.
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0308
IF wa_cols3-screen-group4 EQ 'GR'.
* << Fim da inclusão
wa_cols3-invisible = '1'.
MODIFY tc_det_imp3-cols FROM wa_cols3.
ENDIF.
ENDIF.
ENDLOOP.
...
...
FORM carrega_resumo_importacao3.
DATA: v_moeda TYPE c.
DATA: BEGIN OF itab_det_imp_aux OCCURS 0.
DATA: nrdi TYPE /pws/zycit085-nrseqdi,
codcomp TYPE /pws/zycit245-codcomp,
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
ebeln TYPE /pws/zycit003-ebeln,
ebelp TYPE /pws/zycit003-ebelp,
lote TYPE /pws/zycit260-Lote,
* << Fim da inclusão
grupo TYPE /pws/zycit433-grupo.
DATA: END OF itab_det_imp_aux.
CLEAR itab_res_imp. REFRESH itab_res_imp.
CLEAR itab_det_imp_aux. REFRESH itab_det_imp_aux.
REFRESH itab_det_imp.
itab_det_imp[] = itab_det_imp_final[].
LOOP AT itab_det_imp_final.
CLEAR itab_res_imp.
IF /pws/zycit321-it_ge NE 'X'.
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
READ TABLE itab_det_imp_aux WITH KEY
nrdi = itab_det_imp_final-nrdi
codcomp = itab_det_imp_final-codcomp.
* << Fim da exclusão
CLEAR: v_moeda.
LOOP AT itab_det_imp WHERE codcomp EQ itab_det_imp_final-codcomp
AND waers NE itab_det_imp_final-waers.
v_moeda = 'X'.
EXIT.
ENDLOOP.
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
ELSE.
* << Fim da exclusão
READ TABLE itab_det_imp_aux WITH KEY
nrdi = itab_det_imp_final-nrdi
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
grupo = itab_det_imp_final-grupo.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
ebeln = itab_det_imp_final-ebeln
ebelp = itab_det_imp_final-ebelp
lote = itab_det_imp_final-lote
codcomp = itab_det_imp_final-codcomp.
ELSE.
* << Fim da inclusão
CLEAR: v_moeda.
LOOP AT itab_det_imp WHERE grupo EQ itab_det_imp_final-grupo
AND waers NE itab_det_imp_final-waers.
v_moeda = 'X'.
EXIT.
ENDLOOP.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
READ TABLE itab_det_imp_aux WITH KEY
nrdi = itab_det_imp_final-nrdi
ebeln = itab_det_imp_final-ebeln
ebelp = itab_det_imp_final-ebelp
lote = itab_det_imp_final-lote
grupo = itab_det_imp_final-grupo.
* << Fim da inclusão
ENDIF.
IF sy-subrc NE 0.
MOVE: itab_det_imp_final-qtd_di TO itab_res_imp-qtd_di,
itab_det_imp_final-codcomp TO itab_det_imp_aux-codcomp.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_aux-ebeln = itab_det_imp_final-ebeln.
itab_det_imp_aux-ebelp = itab_det_imp_final-ebelp.
itab_det_imp_aux-lote = itab_det_imp_final-lote.
* << Fim da inclusão
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR itab_det_imp_aux-codcomp.
itab_det_imp_aux-grupo = itab_det_imp_final-grupo.
ENDIF.
itab_det_imp_aux-nrdi = itab_det_imp_final-nrdi.
...
...
FORM seleciona_di3_l.
IF itab_di_final[] IS INITIAL.
EXIT.
ENDIF.
DATA: v_found(1) TYPE c,
* >> Início da exclusão: FORM SELECIONA_DI3_L
v_vlreali LIKE /pws/zycit100-vlfob,
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3_L
v_vlreali LIKE /pws/zycit003-qtd_iten,
v_qtde LIKE /pws/zycit003-qtd_iten,
* << Fim da inclusão
v_fator_conv LIKE /pws/zycit100-vlfob.
DATA: BEGIN OF itab_insumo_di OCCURS 0.
DATA: matnr LIKE mara-matnr.
DATA: END OF itab_insumo_di.
DATA: itab_zycit003_t2 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE,
...
...
DELETE itab_di_final WHERE ebeln EQ space.
IF itab_di_final[] IS INITIAL.
EXIT.
ENDIF.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
* >> Início da inclusão: FORM SELECIONA_DI3_L
FOR ALL ENTRIES IN itab_di_final
WHERE ebeln EQ itab_di_final-ebeln
AND ebelp EQ itab_di_final-ebelp.
SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223
* << Fim da inclusão
FOR ALL ENTRIES IN itab_di_final
WHERE ebeln EQ itab_di_final-ebeln
AND ebelp EQ itab_di_final-ebelp.
* >> Início da inclusão: FORM SELECIONA_DI3_L
SELECT * FROM /pws/zycit260 INTO TABLE itab_zycit260
FOR ALL ENTRIES IN itab_di_final
WHERE nrseqemb = itab_di_final-nrseqemb
AND ebeln = itab_di_final-ebeln
AND ebelp = itab_di_final-ebelp
AND lote = itab_di_final-lote.
* << Fim da inclusão
IF NOT itab_zycit003[] IS INITIAL.
itab_zycit003_t2[] = itab_zycit003[].
DELETE itab_zycit003_t2 WHERE nrseqd EQ space.
SORT itab_zycit003_t2 BY nrseqd.
DELETE ADJACENT DUPLICATES FROM itab_zycit003_t2 COMPARING nrseqd.
...
...
CONTINUE.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI3_L
IF /pws/zycit321-lote EQ '1'.
READ TABLE itab_zycit223 WITH KEY nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp
lote = itab_di_final-lote.
ELSE.
READ TABLE itab_zycit223 WITH KEY nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp
lote_forn = itab_di_final-lote.
ENDIF.
v_qtde = itab_zycit003-qtd_iten.
itab_zycit003-qtd_iten = itab_zycit223-qtde.
* << Fim da inclusão
v_vlreali = itab_zycit003-qtd_iten.
READ TABLE itab_mess_un WITH KEY meins =
itab_zycit003-meins
matnr = itab_zycit003-matnr.
IF sy-subrc EQ 0.
...
...
CHANGING itab_di_final-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlseg.
* >> Início da inclusão: FORM SELECIONA_DI3_L
PERFORM converte_um_base USING itab_zycit003-matnr
CHANGING itab_zycit003-meins
itab_di_final-qtd_di.
itab_di_final-vlfrete =
( itab_di_final-vlfrete * ( itab_zycit223-qtde / v_qtde ) )
/ itab_zycit003-qtd_iten.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3_L
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3_L
itab_di_final-vlseg =
( itab_di_final-vlseg * ( itab_zycit223-qtde / v_qtde ) )
/ itab_zycit003-qtd_iten.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3_L
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3_L
CLEAR itab_di_final_aux.
READ TABLE itab_di_final_aux WITH KEY
nrdi = itab_zycit085-nrseqdi
nrseqemb = itab_zycit100-nrseq
ebeln = itab_di_final-ebeln
ebelp = itab_di_final-ebelp
lote = itab_di_final-lote.
IF sy-subrc NE 0.
LOOP AT itab_zycit260
WHERE nrseqemb = itab_di_final-nrseqemb
AND ebeln = itab_di_final-ebeln
AND ebelp = itab_di_final-ebelp
AND lote = itab_di_final-lote.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.
ENDLOOP.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_di_final-qtd_vinc.
ELSE.
itab_di_final-sdo_qtd = itab_di_final_aux-sdo_qtd -
itab_di_final-qtd_vinc.
ENDIF.
* << Fim da inclusão
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
IF itab_di_final-sdo_qtd <= 0.
...
...
EXIT.
ENDIF.
ENDLOOP.
MODIFY itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
* >> Início da exclusão: FORM SELECIONA_DI3_L
LOOP AT itab_di_final.
IF
( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ
itab_comp_vinc_final-codcomp AND
itab_di_final-nrdi EQ wa_itab_di_final-nrdi AND
itab_di_final-ebeln EQ wa_itab_di_final-ebeln AND
itab_di_final-ebelp EQ wa_itab_di_final-ebelp AND
itab_di_final-nrseqemb EQ wa_itab_di_final-nrseqemb ).
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3_L
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
codcomp EQ itab_comp_vinc_final-codcomp AND
nrdi EQ wa_itab_di_final-nrdi AND
ebeln EQ wa_itab_di_final-ebeln AND
ebelp EQ wa_itab_di_final-ebelp AND
lote EQ wa_itab_di_final-lote AND
nrseqemb EQ wa_itab_di_final-nrseqemb AND
nrseqemb NE space.
itab_di_final-sdo_qtd = wa_itab_di_final-sdo_qtd .
* << Fim da inclusão
MODIFY itab_di_final.
* >> Início da exclusão: FORM SELECIONA_DI3_L
ENDIF.
* << Fim da exclusão
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064O01
...
ENDMODULE.
MODULE preenche_estrutura_0228 OUTPUT.
/pws/zycie371 = itab_zycit371_aux.
ENDMODULE.
MODULE sumariza_di3 OUTPUT.
* >> Início da exclusão: MODULE SUMARIZA_DI3
DATA: itab_det_imp_temp LIKE itab_det_imp OCCURS 0 WITH HEADER LINE.
* << Fim da exclusão
* >> Início da inclusão: MODULE SUMARIZA_DI3
DATA: itab_det_imp_temp LIKE itab_det_imp OCCURS 0 WITH HEADER LINE,
itab_det_imp_temp2 LIKE itab_det_imp OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: qtd_di LIKE /pws/zycie260-qtd_di.
* >> Início da exclusão: MODULE SUMARIZA_DI3
CLEAR itab_det_imp_temp.
REFRESH itab_det_imp_temp.
* << Fim da exclusão
* >> Início da inclusão: MODULE SUMARIZA_DI3
CLEAR: itab_det_imp_temp, itab_det_imp_temp2.
REFRESH: itab_det_imp_temp, itab_det_imp_temp2.
* << Fim da inclusão
LOOP AT itab_det_imp.
CLEAR itab_det_imp_temp .
READ TABLE itab_det_imp_temp WITH KEY ebeln = itab_det_imp-ebeln
ebelp = itab_det_imp-ebelp
nrdi = itab_det_imp-nrdi .
IF sy-subrc NE 0 .
itab_det_imp_temp = itab_det_imp.
APPEND itab_det_imp_temp.
CONTINUE.
* >> Início da inclusão: MODULE SUMARIZA_DI3
ELSEIF itab_det_imp-lote NE itab_det_imp_temp-lote.
READ TABLE itab_det_imp_temp2 WITH KEY ebeln = itab_det_imp-ebeln
ebelp = itab_det_imp-ebelp
lote = itab_det_imp-lote
nrdi = itab_det_imp-nrdi .
IF sy-subrc NE 0.
itab_det_imp_temp2 = itab_det_imp.
APPEND itab_det_imp_temp2.
itab_det_imp_temp-sdo_qtd = itab_det_imp_temp-sdo_qtd +
itab_det_imp-sdo_qtd.
itab_det_imp_temp-qtd_ncm = itab_det_imp_temp-qtd_ncm +
itab_det_imp-qtd_ncm.
itab_det_imp_temp-qtd_di = itab_det_imp_temp-qtd_di +
itab_det_imp-qtd_di.
ENDIF.
* << Fim da inclusão
ENDIF.
itab_det_imp_temp-brgew = itab_det_imp_temp-brgew +
itab_det_imp-brgew.
itab_det_imp_temp-ntgew = itab_det_imp_temp-ntgew +
itab_det_imp-ntgew.
...
...
itab_det_imp-vlpis.
itab_det_imp_temp-i_vlicms = itab_det_imp_temp-i_vlicms +
itab_det_imp-i_vlicms.
MODIFY itab_det_imp_temp TRANSPORTING brgew ntgew qtd_vinc vlfob_t
vlfrete_t vlfob i_vlii i_vlipi vlafrmm
* >> Início da exclusão: MODULE SUMARIZA_DI3
vlpis vlcofins i_vlicms
* << Fim da exclusão
* >> Início da inclusão: MODULE SUMARIZA_DI3
vlpis vlcofins i_vlicms qtd_di qtd_ncm sdo_qtd
* << Fim da inclusão
WHERE ebeln = itab_det_imp-ebeln
AND ebelp = itab_det_imp-ebelp
AND nrdi = itab_det_imp-nrdi .
ENDLOOP.
REFRESH itab_det_imp.
* >> Início da inclusão: MODULE SUMARIZA_DI3
SORT itab_det_imp_temp BY nrdi ebeln ebelp.
* << Fim da inclusão
itab_det_imp[] = itab_det_imp_temp[].
ENDMODULE.
MODULE trata_tl0315 OUTPUT.
/pws/zycie434 = itab_zycit434.
mark = itab_zycit434-mark.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064TOP2
...
INCLUDE STRUCTURE /pws/zycit435.
DATA: END OF itab_zycit435.
DATA: BEGIN OF itab_vbap OCCURS 0.
INCLUDE STRUCTURE vbap.
DATA: END OF itab_vbap.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit223 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit223 .
DATA: END OF itab_zycit223 .
* << Fim da inclusão
DATA : BEGIN OF itab_lista OCCURS 0 .
DATA : matexp LIKE mara-matnr ,
matimp LIKE mara-matnr ,
usagem LIKE /pws/zycit245-qtd_iten .
DATA : END OF itab_lista .
...