Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 16/02/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:35:27
Descrição da Nota: ATO CENCESÓRIO INTERMEDIARIO EXPORTADOR COM LISTA POR AGRUPAMENTO
Sintoma
Ajustes no Ato Concessório para tratar lista técnica por agrupamento para intermediario exportador.
Solução
Ajustes no Ato Concessório para tratar lista técnica por agrupamento para intermediario exportador.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08060 Data: 16/02/2009 Hora: 09:48:57
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08060
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00008
Agrupamento : 00086
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03936 - 00001 - 7.0 - 00001 - AJUSTADO CALCULO DO ICMS PROPORCIONAL A QUANTIDADE A SER NACIONAL
04160 - 00002 - 7.0 - 00002 - ATO CONCESSÓRIO MOEDA AMERICANA /PWS/ZYCBT007
04597 - 00003 - 7.0 - 00002 - AJUSTE NA SELEÇÃO DO CODIGO NCM DOS INSUMOS DA LISTA POR AGRUPAME
04609 - 00004 - 7.0 - 00003 - ABRE CAMPO USAGEM(%) PARA PREENCHIMENTO QUANDO ESTE ESTIVER EM BR
04672 - 00005 - 7.0 - 00003 - INCLUSÃO DE ITENS NO ATO CONCESSÓRIO POR MATERIAIS VINCULADO AO F
06382 - 00006 - 7.0 - 00005 - REAPURAÇÃO DOS SALDOS, USAGEM, ITEM
07249 - 00007 - 7.0 - 00006 - AJUSTE NA SELEÇÃO DOS ATOS CONCESSÓRIOS PARA VINCULAÇÃO
----------------------------------------------------------------------------------------------------
ATO CENCESÓRIO INTERMEDIARIO EXPORTADOR COM LISTA POR AGRUPAMENTO
----------------------------------------------------------------------------------------------------
Palavras Chave:
DESENVOLVIMENTO - ATO - CONCESSÓRIO - INTERMEDIARIO - EXPORTADOR - LISTA
/PWS/SAPMZYCI040 - AGRUPAMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
REPS /PWS/MZYCI040O01
REPS /PWS/MZYCI052F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
ELSE.
wa_cols2-invisible = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
ENDIF.
ELSE.
IF /pws/zycie244-modalidade EQ 'S'.
IF /pws/zycie244-nrforecast IS INITIAL.
IF wa_cols2-screen-group1 NE 'NEX'.
wa_cols2-screen-input = v_status2.
* >> Início da exclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
/pws/zycit321-c_comum EQ 'X'.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR'.
wa_cols2-screen-input = 0.
ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR_T'.
wa_cols2-screen-input = 1.
ENDIF.
ELSE.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR'.
wa_cols2-screen-input = 1.
ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR_T'.
...
...
ENDIF.
ENDIF.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-WAERS'.
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
ENDLOOP.
LOOP AT tc_cimp2-cols INTO wa_cols2.
CASE wa_cols2-screen-name.
WHEN '/PWS/ZYCIE245-CODCOMP'.
* >> Início da exclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
( /pws/zycit321-c_comum EQ 'X' AND
/pws/zycie244-modalidade NE 'I' ).
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ELSE.
wa_cols2-invisible = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
WHEN '/PWS/ZYCIE245-WAERS'.
wa_cols2-invisible = 1.
...
...
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
( /pws/zycit321-c_comum EQ 'X' AND
/pws/zycie244-modalidade NE 'I' ).
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ELSE.
wa_cols2-invisible = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
WHEN '/PWS/ZYCIE245-MAKTX'.
* >> Início da exclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0203
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
( /pws/zycit321-c_comum EQ 'X' AND
/pws/zycie244-modalidade NE 'I' ).
wa_cols2-invisible = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
ELSE.
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
WHEN '/PWS/ZYCIE245-QTD_PERDA'.
IF /pws/zycie244-tipo EQ 'G'.
...
...
IF v_tcode2 EQ '/PWS/ZYCI040_E'.
IF wa_cols2-screen-group1 NE 'NEX'.
wa_cols2-screen-input = v_status2.
MODIFY tc_mexp2-cols FROM wa_cols2.
ENDIF.
ELSE.
IF /pws/zycie244-modalidade EQ 'S'.
IF /pws/zycie244-nrforecast IS INITIAL.
IF wa_cols2-screen-group1 NE 'NEX'.
wa_cols2-screen-input = v_status2.
* >> Início da exclusão: FORM CHECK_FIELD_0206
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0206
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
/pws/zycit321-c_comum EQ 'X'.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR'.
wa_cols2-screen-input = 0.
ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR_T'.
wa_cols2-screen-input = 1.
ELSEIF wa_cols2-screen-name EQ 'V_DESCR_0206'.
wa_cols2-screen-input = 1.
ENDIF.
ELSE.
IF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR'.
...
...
wa_cols2-screen-input = 1.
MODIFY tc_mexp2-cols FROM wa_cols2.
ELSEIF wa_cols2-screen-group4 EQ 'CAM' .
wa_cols2-invisible = 0.
IF /pws/zycit321-c_comum EQ 'X'.
wa_cols2-screen-input = 1.
ENDIF.
MODIFY tc_mexp2-cols FROM wa_cols2.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM CHECK_FIELD_0206
SELECT SINGLE *
FROM /pws/zycit321
INTO /pws/zycit321.
IF /pws/zycit321-ltopc EQ 1 AND
( /pws/zycie244-tipo NE 'N' OR
( /pws/zycie244-tipo EQ 'N' AND
/pws/zycie244-modalidade EQ 'I' ) ).
v_agrup = 'X'.
ELSE.
CLEAR v_agrup.
ENDIF.
* << Fim da exclusão
LOOP AT tc_mexp2-cols INTO wa_cols2.
CASE wa_cols2-screen-name.
WHEN '/PWS/ZYCIE247-AGRUP' OR
'/PWS/ZYCIT422-WERKS' OR
'/PWS/ZYCIT422-STLAL'.
IF v_agrup = 'X'.
wa_cols2-invisible = 0.
MODIFY tc_mexp2-cols FROM wa_cols2.
CONTINUE.
ELSE.
...
...
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
IF ( /pws/zycie244-modalidade EQ 'I' ) AND
( screen-name EQ '/PWS/ZYCIE245C-NETPR' ).
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
* >> Início da exclusão: FORM CHECK_FIELD_0204
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F'
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0204
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL )
* << Fim da inclusão
OR ( /pws/zycit321-c_comum EQ 'X' AND
/pws/zycie244-modalidade NE 'I' )
OR ( /pws/zycit321-it_ge EQ 'X' AND
/pws/zycie244-modalidade EQ 'I' ).
IF screen-name EQ 'I_NRITEM'.
screen-invisible = 1.
screen-intensified = 0.
MODIFY SCREEN.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE245C-CODCOMP'.
...
...
FORM check_field_0202.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'FS_NACION'.
IF /pws/zycie244-modalidade EQ 'I' OR
/pws/zycie244-tipo EQ 'F'.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
WHEN 'FS_RESIMP'.
* >> Início da exclusão: FORM CHECK_FIELD_0202
IF /pws/zycie244-modalidade EQ 'I'.
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0202
IF /pws/zycie244-modalidade EQ 'I' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ).
* << Fim da inclusão
screen-invisible = 1.
MODIFY SCREEN.
ELSEIF /pws/zycie244-modalidade NE 'I' AND
( /pws/zycie244-tipo NE 'G' AND
/pws/zycie244-tipo NE 'F'
).
screen-invisible = 1.
IF /pws/zycit321-c_comum EQ 'X' AND
( /pws/zycie244-tipo EQ 'C' OR
/pws/zycie244-tipo EQ 'N' ).
...
...
itab_zycit245-qtd_perda = /pws/zycie245-qtd_perda .
itab_zycit245-perda_e = /pws/zycie245-perda_e .
itab_zycit245-qtd_perda_e = /pws/zycie245-qtd_perda_e .
itab_zycit245-waers = /pws/zycie245-waers .
itab_zycit245-netpr = /pws/zycie245-netpr .
itab_zycit245-vl_frete_t = /pws/zycie245-vl_frete_t.
itab_zycit245-pctseg = /pws/zycie245-pctseg .
itab_zycit245-vl_seg_t = /pws/zycie245-vl_seg_t.
itab_zycit245-j_1bnbm = /pws/zycie245-j_1bnbm .
itab_zycit245-markci = markci .
* >> Início da inclusão: FORM FILL_ITAB_ZYCIT245_NG2
SELECT SINGLE a~steuc INTO itab_zycit245-j_1bnbm
FROM ( marc AS a INNER JOIN t001w AS b ON
a~werks EQ b~werks )
WHERE a~matnr EQ itab_zycit245-codcomp
AND a~steuc NE space
AND b~land1 EQ t001-land1.
* << Fim da inclusão
IF NOT itab_zycit245-qtd_tot IS INITIAL.
itab_zycit245-vl_frete = itab_zycit245-vl_frete_t /
itab_zycit245-qtd_tot.
itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.
itab_zycit245-um_ncm = itab_zycit245-meins .
PERFORM converte_um_ncm USING itab_zycit245-codcomp
CHANGING itab_zycit245-um_ncm
itab_zycit245-werks
itab_zycit245-qtd_ncm.
ENDIF.
...
...
WHERE matnr = itab_zycit245-codcomp.
ENDSELECT.
SELECT kaln1 UP TO 1 ROWS FROM mbew INTO v_kaln1
WHERE matnr = itab_zycit245-codcomp
AND bwkey = itab_zycit245-werks.
ENDSELECT.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM t001a INTO wat001a
WHERE bukrs EQ /pws/zycie244-bukrs.
CLEAR it_ckmlcr. REFRESH it_ckmlcr.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES_AGRUP
IF /pws/zycie244-tipo EQ 'F' AND
NOT v_agrup IS INITIAL.
SELECT * FROM ckmlcr INTO TABLE it_ckmlcr
WHERE kalnr = v_kaln1
AND waers = wa_zycbt007-waersb.
SORT it_ckmlcr BY bdatj poper ASCENDING.
DESCRIBE TABLE it_ckmlcr LINES v_ilinhas.
READ TABLE it_ckmlcr INDEX v_ilinhas.
IF sy-subrc EQ 0.
itab_zycit245-netpr = it_ckmlcr-stprs / it_ckmlcr-peinh.
itab_zycit245-waers = wa_zycbt007-waersb.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT * FROM ckmlcr INTO TABLE it_ckmlcr
WHERE kalnr = v_kaln1
AND waers = wa_zycbt007-waersa.
SORT it_ckmlcr BY bdatj poper ASCENDING.
DESCRIBE TABLE it_ckmlcr LINES v_ilinhas.
READ TABLE it_ckmlcr INDEX v_ilinhas.
IF sy-subrc EQ 0.
itab_zycit245-netpr = it_ckmlcr-stprs / it_ckmlcr-peinh.
itab_zycit245-waers = wa_zycbt007-waersa.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES_AGRUP
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
READ TABLE itab_marc WITH KEY matnr = itab_zycit245-codcomp
werks = itab_zycit245-werks.
IF sy-subrc EQ 0.
MOVE itab_marc-steuc TO itab_zycit245-j_1bnbm.
ELSE.
LOOP AT itab_centros2.
READ TABLE itab_marc WITH KEY matnr = itab_zycit245-codcomp
werks = itab_centros2-werks.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
MODULE insert_line_comprov_ci INPUT.
/pws/zycie245-waers = v_waers.
CLEAR: v_waers.
IF /pws/zycie244-tipo EQ 'G'.
PERFORM fill_itab_zycit245_tg2.
* >> Início da exclusão: MODULE INSERT_LINE_COMPROV_CI
ELSEIF /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: MODULE INSERT_LINE_COMPROV_CI
ELSEIF ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
/pws/zycit321-c_comum EQ 'X' OR
( /pws/zycit321-it_ge EQ 'X' AND
/pws/zycie244-modalidade EQ 'I' ).
PERFORM fill_itab_zycit245_tf2.
ELSE.
PERFORM fill_itab_zycit245_ng2.
ENDIF.
ENDMODULE.
...
...
INTO TABLE itab_matnr
WHERE matnr EQ /pws/zycie247-codmat.
IF sy-dbcnt > 1.
v_centro = 'X'.
ENDIF.
ENDIF.
IF NOT v_centro IS INITIAL
AND /pws/zycie247-werks IS INITIAL.
MESSAGE w015 WITH text-258 /pws/zycie247-codmat text-256 text-257.
ENDIF.
* >> Início da exclusão: MODULE INSERT_LINE_COMPROV_ME
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
* << Fim da exclusão
* >> Início da inclusão: MODULE INSERT_LINE_COMPROV_ME
IF /pws/zycie244-tipo EQ 'G' OR
( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR
* << Fim da inclusão
/pws/zycit321-c_comum EQ 'X'.
IF /pws/zycie244-tipo EQ 'N' AND /pws/zycie244-modalidade EQ 'S'.
PERFORM fill_itab_zycit247_inter.
ELSE.
PERFORM fill_itab_zycit247_tg2.
ENDIF.
ELSE.
IF v_agrup IS INITIAL.
IF /pws/zycie244-tipo EQ 'N' AND /pws/zycie244-modalidade EQ 'S'.
PERFORM fill_itab_zycit247_inter.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040O01
...
MODULE set_screen2 OUTPUT.
* >> Início da inclusão: MODULE SET_SCREEN2
IF /pws/zycit321 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycit321
INTO /pws/zycit321.
ENDIF.
IF /pws/zycit321-ltopc EQ 1 AND
( /pws/zycie244-tipo NE 'N' OR
( /pws/zycie244-tipo EQ 'N' AND
/pws/zycie244-modalidade EQ 'I' ) ).
v_agrup = 'X'.
ELSE.
CLEAR v_agrup.
ENDIF.
* << Fim da inclusão
CASE sy-dynnr.
WHEN '0200'.
PERFORM check_field_0200.
WHEN '0201'.
PERFORM check_field_0201.
WHEN '0202'.
PERFORM check_field_0202.
WHEN '0203'.
PERFORM check_field_0203.
WHEN '0204'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI052F01
...
CLEAR: ekko, j_1bnflin.
REFRESH: itab_zycit245, itab_zycit279_aux, itab_zycit244, itab_vinc.
SELECT SINGLE * FROM ekko
WHERE ebeln EQ itab_zycit330-ebeln.
SELECT SINGLE * FROM j_1bnflin
WHERE docnum EQ itab_zycit330-docnum
AND itmnum EQ itab_zycit330-buzei .
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM VINCULA_ATO
IF /pws/zycit321-ltopc EQ 1.
* << Fim da inclusão
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
* >> Início da exclusão: FORM VINCULA_ATO
WHERE tipo EQ 'F' "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_ATO
WHERE tipo EQ 'F' "#EC CI_NOFIELD
AND codcomp EQ itab_zycit330-codcomp.
ELSE.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
WHERE tipo EQ 'F' "#EC CI_NOFIELD
* << Fim da inclusão
AND j_1bnbm EQ itab_zycit330-ncm.
* >> Início da inclusão: FORM VINCULA_ATO
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit245[] IS INITIAL.
CLEAR: itab_zycit244.
SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244
FOR ALL ENTRIES IN itab_zycit245
WHERE nrseqd EQ itab_zycit245-nrseqd
AND status EQ 'D'
...