Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 01/03/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:07:05
Descrição da Nota: TRATAMENTO DE CASAS DECIMAIS E PREENCHIMENTO DA DESCRIÇÃO DOS ITENS
Sintoma
O programa de ato concessório não está gravando nas tabelas do ato a descrição dos itens e para não
está permitindo alterar a moeda dos itens de importação para um moeda com numero de casas decimais
diferente da original.
Solução
Corrigido o prrenchimento das tabelas e adicionado campo de moeda na tela para intermediar a troca
de moedas.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03172 Data: 01/03/2007 Hora: 10:44:51
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03172
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00155
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02678 - 00001 - 6.0 - 00025 - AJUSTADO MONTAGEM DO REALIZADO DE IMPORTAÇÃO DO ATO CONCESSÓRIO I
02682 - 00002 - 6.0 - 00026 - PREENCHIMENTO DA DESCRIÇÃO DO ITEM DE IMPORTAÇÃO.
----------------------------------------------------------------------------------------------------
TRATAMENTO DE CASAS DECIMAIS E PREENCHIMENTO DA DESCRIÇÃO DOS ITENS
----------------------------------------------------------------------------------------------------
Palavras Chave:
MOEDA - CASAS - DECIMAIS - DESCRIÇÃO - ITENS - ATO - CONCESSÓRIO
/PWS/SAPMZYCI040
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI040 0203
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
REPS /PWS/MZYCI040O01
REPS /PWS/MZYCI040TOP2
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI040 0203
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
*Campos adicionado:
- V_WAERS
I/O 1 13 5 5 1 CHAR Ent Off
Elem.TC
*<<<<<<<Alterações código fonte >>>>>>>
...
/pws/zycie245-meins ,
/pws/zycie245-ntgew ,
* >> Início da inclusão:
v_waers ,
* << Fim da inclusão
* >> Início da exclusão:
/pws/zycie245-waers ,
* << Fim da exclusão
/pws/zycie245-netpr ,
/pws/zycie245-netpr_t ,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
ELSE.
wa_cols2-screen-input = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
CASE wa_cols2-screen-name .
WHEN '/PWS/ZYCIE245-J_1BNBM'.
IF /pws/zycit321-it_ge EQ 'X'.
wa_cols2-screen-input = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDIF.
* >> Início da exclusão: FORM CHECK_FIELD_0203
WHEN '/PWS/ZYCIE245-WAERS'.
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0203
WHEN 'V_WAERS'.
* << Fim da inclusão
wa_cols2-screen-input = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
WHEN '/PWS/ZYCIE245-NETPR_T'.
wa_cols2-screen-input = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ENDCASE.
IF wa_cols2-screen-group2 EQ 'GR'.
IF /pws/zycit321-it_ge NE 'X'.
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
ELSE.
wa_cols2-invisible = 0.
MODIFY tc_cimp2-cols FROM wa_cols2.
* >> Início da inclusão: FORM CHECK_FIELD_0203
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM CHECK_FIELD_0203
IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-WAERS'.
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
* << Fim da inclusão
ENDIF.
ENDLOOP.
...
...
WHEN '/PWS/ZYCIE245-CODCOMP'.
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.
* >> Início da inclusão: FORM CHECK_FIELD_0203
WHEN '/PWS/ZYCIE245-WAERS'.
wa_cols2-invisible = 1.
MODIFY tc_cimp2-cols FROM wa_cols2.
* << Fim da inclusão
WHEN '/PWS/ZYCIE245-MEINS'.
IF /pws/zycie244-tipo EQ 'G'.
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-QTD_ITEN'.
IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR
...
...
MOVE v_variacao_plan TO v_variacao_real2.
CONCATENATE v_variacao_real2 '%' INTO v_variacao_real2.
ENDFORM.
FORM apura_totais_0203.
DATA: v_conv_t LIKE /pws/zycit245-qtd_iten.
CLEAR: /pws/zycie244-t_compfob, /pws/zycie244-t_compqtd,
/pws/zycie244-s_compfob, /pws/zycie244-s_compqtd.
LOOP AT itab_zycit245.
v_tabix2 = sy-tabix.
IF itab_zycit245-maktx IS INITIAL.
* >> Início da inclusão: FORM APURA_TOTAIS_0203
IF /pws/zycie244-tipo NE 'G' AND /pws/zycie244-tipo NE 'F'.
SELECT SINGLE maktx FROM makt INTO /pws/zycie245-maktx
WHERE matnr = itab_zycit245-codcomp
AND spras = sy-langu.
ELSE.
* << Fim da inclusão
SELECT SINGLE text1 FROM t604n INTO itab_zycit245-maktx
WHERE spras = sy-langu
AND land1 = 'BR'
AND steuc = itab_zycit245-j_1bnbm.
* >> Início da inclusão: FORM APURA_TOTAIS_0203
ENDIF.
* << Fim da inclusão
MODIFY itab_zycit245.
ENDIF.
/pws/zycie244-t_compfob = /pws/zycie244-t_compfob +
...
...
ENDLOOP.
ENDIF.
IF /pws/zycie244-tipo EQ 'G'.
CLEAR: /pws/zycie244-s_realqtd.
ENDIF.
ENDFORM.
FORM apura_totais_0206.
CLEAR: /pws/zycie244-t_matfob, /pws/zycie244-t_matqtd,
/pws/zycie244-s_matfob, /pws/zycie244-s_matqtd.
LOOP AT itab_zycit247.
* >> Início da inclusão: FORM APURA_TOTAIS_0206
IF itab_zycit247-maktx IS INITIAL.
IF /pws/zycie244-tipo NE 'G' AND /pws/zycie244-tipo NE 'F' AND
/pws/zycit321-c_comum NE 'X'.
SELECT SINGLE maktx FROM makt INTO itab_zycit247-maktx
WHERE matnr = itab_zycit247-codmat
AND spras = sy-langu.
IF NOT itab_zycit247-mat_int IS INITIAL.
SELECT SINGLE descr FROM /pws/zycit368
INTO itab_zycit247-maktx
WHERE nrseq EQ itab_zycit247-mat_int
AND kunnr EQ /pws/zycie244-kunnr.
ENDIF.
IF NOT itab_zycit247-agrup IS INITIAL.
SELECT SINGLE descr
FROM /pws/zycit419
INTO itab_zycit247-maktx
WHERE agrup EQ itab_zycit247-agrup.
ENDIF.
ELSE.
IF NOT itab_zycit247-j_1bnbm IS INITIAL.
SELECT SINGLE text1 FROM t604n INTO itab_zycit247-maktx
WHERE spras = sy-langu
AND land1 = 'BR'
AND steuc = itab_zycit247-j_1bnbm.
ENDIF.
ENDIF.
MODIFY itab_zycit247.
ENDIF.
* << Fim da inclusão
/pws/zycie244-t_matfob = /pws/zycie244-t_matfob +
itab_zycit247-netpr_t .
/pws/zycie244-t_matqtd = /pws/zycie244-t_matqtd +
itab_zycit247-qtd_iten.
/pws/zycie244-s_matfob = /pws/zycie244-s_matfob +
itab_zycit247-netpr_t .
/pws/zycie244-s_matqtd = /pws/zycie244-s_matqtd +
itab_zycit247-qtd_iten.
/pws/zycie244-waersmat = itab_zycit247-waers.
/pws/zycie244-meinsmat = itab_zycit247-meins.
...
...
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.
* >> Início da inclusão: FORM FILL_ITAB_ZYCIT245_NG2
IF /pws/zycie244-modalidade EQ 'I'.
itab_zycit245-netpr =
( /pws/zycie245-netpr_t / itab_zycit245-qtd_tot ).
itab_zycit245-netpr_t = /pws/zycie245-netpr_t.
ELSE.
* << Fim da inclusão
itab_zycit245-netpr_t =
( itab_zycit245-netpr * itab_zycit245-qtd_tot ).
* >> Início da inclusão: FORM FILL_ITAB_ZYCIT245_NG2
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit245-pctseg IS INITIAL.
itab_zycit245-vl_seg_t =
( ( ( itab_zycit245-netpr + itab_zycit245-vl_frete )
* itab_zycit245-pctseg ) / 100 ) * itab_zycit245-qtd_tot.
ELSE.
...
...
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.
* >> Início da inclusão: FORM FILL_ITAB_ZYCIT245_NG2
IF /pws/zycie244-modalidade EQ 'I'.
itab_zycit245-netpr =
( /pws/zycie245-netpr_t / itab_zycit245-qtd_tot ).
itab_zycit245-netpr_t = /pws/zycie245-netpr_t.
ELSE.
* << Fim da inclusão
itab_zycit245-netpr_t =
( itab_zycit245-netpr * itab_zycit245-qtd_tot ).
* >> Início da inclusão: FORM FILL_ITAB_ZYCIT245_NG2
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit245-pctseg IS INITIAL.
itab_zycit245-vl_seg_t =
( ( ( itab_zycit245-netpr + itab_zycit245-vl_frete )
* itab_zycit245-pctseg ) / 100 ) * itab_zycit245-qtd_tot.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
itab_zycit246-qtd_iten = /pws/zycie246-qtd_iten.
itab_zycit246-vltot = /pws/zycie246-vltot .
itab_zycit246-gewei = /pws/zycie246-gewei .
itab_zycit246-ntgew = /pws/zycie246-ntgew .
itab_zycit246-matnr = /pws/zycie246-matnr .
itab_zycit246-itmnum = /pws/zycie246-itmnum .
itab_zycit246-vlfrete = /pws/zycie246-vlfrete .
itab_zycit246-vlseg = /pws/zycie246-vlseg .
ENDMODULE.
MODULE insert_line_comprov_ci INPUT.
* >> Início da inclusão: MODULE INSERT_LINE_COMPROV_CI
/pws/zycie245-waers = v_waers.
CLEAR: v_waers.
* << Fim da inclusão
IF /pws/zycie244-tipo EQ 'G'.
PERFORM fill_itab_zycit245_tg2.
ELSEIF /pws/zycie244-tipo EQ 'F' OR
/pws/zycit321-c_comum EQ 'X' or
/pws/zycit321-it_ge eq 'X'.
PERFORM fill_itab_zycit245_tf2.
ELSE.
PERFORM fill_itab_zycit245_ng2.
ENDIF.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040O01
...
/pws/zycie245-waers = itab_zycit245-waers .
/pws/zycie245-netpr = itab_zycit245-netpr .
/pws/zycie245-netpr_t = itab_zycit245-netpr_t .
/pws/zycie245-vl_frete_t = itab_zycit245-vl_frete_t.
/pws/zycie245-pctseg = itab_zycit245-pctseg .
/pws/zycie245-vl_seg_t = itab_zycit245-vl_seg_t .
/pws/zycie245-j_1bnbm = itab_zycit245-j_1bnbm .
markci = itab_zycit245-markci .
/pws/zycie245-grupo = itab_zycit245-grupo .
/pws/zycie245-desc_g = itab_zycit245-desc_g .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0203
v_waers = /pws/zycie245-waers .
* << Fim da inclusão
ENDMODULE.
MODULE trata_screen_0203 OUTPUT.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE245-CODCOMP'.
READ TABLE itab_zycit245 INDEX tc_cimp2-current_line.
IF sy-subrc EQ 0 AND NOT /pws/zycie245-codcomp IS INITIAL.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
...
...
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
IF /pws/zycie244-tipo NE 'G' AND /pws/zycie244-tipo NE 'F'.
SELECT maktx UP TO 1 ROWS FROM makt INTO v_descrit_0203
WHERE matnr = /pws/zycie245-codcomp
AND spras = sy-langu.
ENDSELECT.
* >> Início da inclusão: MODULE TRATA_SCREEN_0203
IF /pws/zycie245-maktx IS INITIAL AND
NOT v_descrit_0203 IS INITIAL.
READ TABLE itab_zycit245 INDEX tc_cimp2-current_line.
IF sy-subrc EQ 0.
itab_zycit245-maktx = v_descrit_0203.
MODIFY itab_zycit245 INDEX tc_cimp2-current_line.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE TRATA_SCREEN_0203
ENDIF.
* << Fim da inclusão
v_pbt_0203 = /pws/zycie245-brgew * /pws/zycie245-qtd_tot.
v_plt_0203 = /pws/zycie245-ntgew * /pws/zycie245-qtd_tot.
ENDMODULE.
MODULE set_page_comprov2 OUTPUT.
ts_comprov2-activetab = pressed_tab_4a.
ENDMODULE.
...
...
AND steuc = /pws/zycie247-j_1bnbm.
ENDSELECT.
ENDIF.
ENDIF.
IF NOT /pws/zycie247-agrup IS INITIAL.
SELECT SINGLE descr
FROM /pws/zycit419
INTO v_descr_0206
WHERE agrup EQ /pws/zycie247-agrup.
ENDIF.
* >> Início da inclusão: MODULE TRATA_SCREEN_0206
IF /pws/zycit247-maktx IS INITIAL AND
NOT v_descr_0206 IS INITIAL.
READ TABLE itab_zycit247 INDEX tc_mexp2-current_line.
IF sy-subrc EQ 0.
itab_zycit247-maktx = v_descr_0206.
MODIFY itab_zycit247 INDEX tc_mexp2-current_line.
ENDIF.
ENDIF.
* << Fim da inclusão
v_pbt_0206 = /pws/zycie247-brgew * /pws/zycie247-qtd_iten.
v_plt_0206 = /pws/zycie247-ntgew * /pws/zycie247-qtd_iten.
ENDMODULE.
MODULE apura_totais_0203 OUTPUT.
PERFORM apura_totais_0203.
SORT itab_zycit245 BY nritem ASCENDING.
ENDMODULE.
MODULE apura_totais_0206 OUTPUT.
PERFORM apura_totais_0206.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040TOP2
...
v_rfrete_text(22) ,
v_rseg_text(22) ,
v_txtnetpr(20) ,
v_tsiscomex(4) type c ,
v_ver_alt type c .
DATA: v_meins LIKE mara-meins,
v_gewei LIKE mara-gewei,
v_brgew LIKE mara-brgew,
v_ntgew LIKE mara-ntgew,
v_netpr_t LIKE mbew-stprs,
* >> Início da inclusão:
v_waers LIKE t001-waers,
* << Fim da inclusão
v_waers_t LIKE t001-waers,
v_matkl LIKE mara-matkl,
v_steuc LIKE marc-steuc,
v_stlan_t LIKE mast-stlan,
v_stlnr_t LIKE mast-stlnr,
v_stlal_t LIKE mast-stlal,
vl_dif2 LIKE /pws/zycit246-qtd_nacion,
v_vl_transf LIKE /pws/zycit245-netpr_t.
DATA: wa_zycit003 LIKE /pws/zycit003 ,
wa_zycit001 LIKE /pws/zycit001 ,
...