Módulo: PROCESSO IMPORTAÇÃO
Funcionalidade: Análise Oficial DIPJ
Data/Hora da Publicação: 22/02/2007 00:00:00
Data/Hora Última Alteração: 23/06/2010 14:33:09
Descrição da Nota: RELATÓRIO DIPJ
Sintoma
Novo tratamento para o campo Margem de Divergência.
Solução
Novo tratamento para o campo Margem de Divergência e o cálculo do valor da Margem.
Não Usar - 2.00.0000
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03130 Data: 22/02/2007 Hora: 13:47:45
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03130
Categoria : Melhoria
Prioridade : Média
Versão PW.TP : 2.0
Pacote : 00024
Agrupamento : 00007
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
RELATÓRIO DIPJ
----------------------------------------------------------------------------------------------------
Palavras Chave:
RELATÓRIO DIPJ - MARGEM DE DIVERGÊNCIA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYTPR042
REPT /PWS/ZYTPR042
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYTPR042
...
qtd_ajus LIKE /pws/zytpt902-menge,
preco_ajus LIKE /pws/zytpt902-preco_prtc,
qtd_ajusfut LIKE /pws/zytpt902-menge,
total_op LIKE /pws/zytpt902-preco_prtc,
qtd_op LIKE /pws/zytpt902-menge,
valor_mi LIKE /pws/zytpt902-preco_prtc,
qtd_mi LIKE /pws/zytpt902-menge,
preco_mi LIKE /pws/zytpt902-preco_prtc,
margem_div(16) TYPE p DECIMALS 14,
safe_90(16) TYPE p DECIMALS 14,
* >> Início da inclusão:
valor_marg LIKE /pws/zytpt902-preco_prtc,
* << Fim da inclusão
economia LIKE /pws/zytpe011-valor_ajus,
END OF w_metodo,
BEGIN OF t_calculo OCCURS 0,
seq TYPE i,
matnr LIKE /pws/zytpt901-matnr,
grupo LIKE /pws/zytpt901-grupo,
unid_negoc LIKE /pws/zytpt901-unid_negoc,
descr(40) TYPE c,
ncm LIKE marc-steuc,
un_med LIKE /pws/zytpt901-un_medida,
...
...
valor_param LIKE /pws/zytpt902-preco_prtc,
qtd_param LIKE /pws/zytpt902-menge,
preco_param LIKE /pws/zytpt902-preco_prtc,
preco_ajus LIKE /pws/zytpt902-preco_prtc,
qtd_ajusfut LIKE /pws/zytpt902-menge,
valor_mi LIKE /pws/zytpt902-preco_prtc,
qtd_mi LIKE /pws/zytpt902-menge,
preco_mi LIKE /pws/zytpt902-preco_prtc,
safe_90(16) TYPE p DECIMALS 14,
margem_div(16) TYPE p DECIMALS 14,
* >> Início da inclusão:
valor_marg LIKE /pws/zytpt902-preco_prtc,
* << Fim da inclusão
metodo1 LIKE w_metodo,
metodo2 LIKE w_metodo,
metodo3 LIKE w_metodo,
metodo4 LIKE w_metodo,
metodo5 LIKE w_metodo,
metodo6 LIKE w_metodo,
metodo7 LIKE w_metodo,
metodo8 LIKE w_metodo,
metodo9 LIKE w_metodo,
metodo10 LIKE w_metodo,
...
...
p_oper STRUCTURE t_operacao
p_059 STRUCTURE /pws/zytpt059
USING p_001 LIKE /pws/zytpt001
p_901 LIKE /pws/zytpt901
CHANGING p_calc LIKE t_calculo.
DATA: t_007_aux TYPE TABLE OF /pws/zytpt007 WITH HEADER LINE,
t_906_aux TYPE TABLE OF /pws/zytpt906 WITH HEADER LINE,
t_904_aux TYPE TABLE OF /pws/zytpt904 WITH HEADER LINE,
v_ok(1) TYPE c,
v_aj_906 TYPE i,
* >> Início da exclusão: FORM CALCULAR_METODO
v_fator_safe(1) TYPE c.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
v_fator_safe(1) TYPE c,
v_margem TYPE /pws/zytpt000-per_ger_mn.
IF p_901-tipo = 2.
v_margem = /pws/zytpt000-per_ger_mn.
ELSE.
v_margem = /pws/zytpt000-per_ger_mm.
ENDIF.
* << Fim da inclusão
FIELD-SYMBOLS: <valor> TYPE ANY.
LOOP AT t_007 WHERE cod_metodo = p_001-cod_metodo.
t_007_aux = t_007.
APPEND t_007_aux.
ENDLOOP.
IF p_901-trib_o_es = '1' OR p_901-trib_o_es = '2'.
DELETE t_007_aux WHERE processo = '801'.
ENDIF.
CLEAR: p_calc, p_oper[],
t_detalhe, w_902_key, w_904_key, w_002_key.
...
...
IF v_fator_safe = fator_safe90
AND NOT /pws/zytpt056-fator IS INITIAL .
p_calc-safe_90 = ( p_calc-preco_prtc * /pws/zytpt056-fator )
/ p_calc-preco_mi.
ELSE.
p_calc-safe_90 = p_calc-preco_prtc / p_calc-preco_mi.
ENDIF.
p_calc-safe_90 = p_calc-safe_90 * 100.
ENDIF.
IF p_901-tipo = 2.
* >> Início da exclusão: FORM CALCULAR_METODO
IF NOT p_calc-preco_prtc IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
IF NOT p_calc-preco_param IS INITIAL.
* << Fim da inclusão
CLEAR p_calc-margem_div.
p_calc-margem_div =
* >> Início da exclusão: FORM CALCULAR_METODO
( ( p_calc-preco_param / p_calc-preco_prtc ) - 1 ) * 100.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
( ( p_calc-preco_prtc / p_calc-preco_param ) - 1 ) * 100.
* << Fim da inclusão
ENDIF.
CHECK p_calc-safe_90 < safe_90.
CHECK p_calc-preco_param > p_calc-preco_prtc.
PERFORM verificar_margem
USING p_001-cod_metodo
p_901-grupo
p_901-matnr
* >> Início da exclusão: FORM CALCULAR_METODO
CHANGING /pws/zytpt000-per_ger_mm.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
CHANGING v_margem.
p_calc-valor_marg = p_calc-preco_param -
( p_calc-preco_param * ( v_margem / 100 ) ).
IF NOT p_calc-preco_prtc IS INITIAL.
CLEAR p_calc-margem_div.
p_calc-margem_div =
( ( p_calc-preco_prtc / p_calc-preco_param ) - 1 ) * 100.
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM CALCULAR_METODO
IF p_calc-margem_div > /pws/zytpt000-per_ger_mm.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
IF p_calc-valor_marg > p_calc-preco_prtc.
* << Fim da inclusão
p_calc-preco_ajus = p_calc-preco_param - p_calc-preco_prtc.
p_calc-valor_ajus = p_calc-preco_ajus * p_calc-qtd_ajus.
ENDIF.
ELSE.
IF NOT p_calc-preco_param IS INITIAL.
p_calc-margem_div =
( ( p_calc-preco_prtc / p_calc-preco_param ) - 1 ) * 100.
ENDIF.
IF p_calc-preco_param < p_calc-preco_prtc.
PERFORM verificar_margem
USING p_001-cod_metodo
p_901-grupo
p_901-matnr
* >> Início da exclusão: FORM CALCULAR_METODO
CHANGING /pws/zytpt000-per_ger_mn.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
CHANGING v_margem.
* << Fim da inclusão
* >> Início da exclusão: FORM CALCULAR_METODO
IF p_calc-margem_div > /pws/zytpt000-per_ger_mn.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULAR_METODO
p_calc-valor_marg = p_calc-preco_param +
( p_calc-preco_param * ( v_margem / 100 ) ).
IF p_calc-valor_marg > p_calc-preco_prtc.
* << Fim da inclusão
p_calc-preco_ajus = p_calc-preco_prtc - p_calc-preco_param.
p_calc-valor_ajus = p_calc-preco_ajus * p_calc-qtd_ajus.
ENDIF.
ENDIF.
t_906_aux[] = p_906[].
LOOP AT t_906_aux WHERE mes = '00'.
ADD: t_906_aux-etq_ini_v TO p_calc-qtd_ajusfut,
t_906_aux-etq_ini_v_e TO p_calc-qtd_ajusfut.
ENDLOOP.
ADD p_calc-qtd_prtc TO p_calc-qtd_ajusfut.
...
...
ENDIF.
ENDFORM.
FORM verificar_margem USING p_cod_metodo
p_grupo
p_matnr
CHANGING p_margem.
LOOP AT t_014
WHERE cod_metodo = p_cod_metodo
AND ( grupo = p_grupo OR grupo = space )
AND ( material = p_matnr OR material = space ).
* >> Início da inclusão: FORM VERIFICAR_MARGEM
IF p_exp = 'X'.
* << Fim da inclusão
p_margem = t_014-percent_mn.
* >> Início da inclusão: FORM VERIFICAR_MARGEM
ELSEIF p_imp = 'X'.
p_margem = t_014-percent_mx.
ENDIF.
* << Fim da inclusão
EXIT.
ENDLOOP.
IF p_margem < 0.
p_margem = p_margem * -1.
...
...
WHEN 'PRECO_MI'.
PERFORM atribuir_texto USING p_fieldcat text-032.
IF p_imp = 'X'.
p_fieldcat-no_out = 'X'.
ENDIF.
p_fieldcat-outputlen = 15.
WHEN 'MARGEM_DIV'.
PERFORM atribuir_texto USING p_fieldcat text-033.
p_fieldcat-decimals_out = '3'.
p_fieldcat-outputlen = 20.
* >> Início da inclusão: FORM TRATAR_FIELDCAT
p_fieldcat-decimals_out = '2'.
* << Fim da inclusão
WHEN 'SAFE_90'.
PERFORM atribuir_texto USING p_fieldcat text-034.
p_fieldcat-decimals_out = '3'.
IF p_imp = 'X'.
p_fieldcat-no_out = 'X'.
ENDIF.
p_fieldcat-outputlen = 20.
WHEN 'PARID'.
PERFORM atribuir_texto USING p_fieldcat text-048.
WHEN 'LANDX'.
...
...
WHEN 'TP_VINC'.
PERFORM atribuir_texto USING p_fieldcat text-052.
p_fieldcat-no_out = 'X'.
WHEN 'TXT_VINC'.
PERFORM atribuir_texto USING p_fieldcat text-053.
WHEN 'COD_METODO'.
PERFORM atribuir_texto USING p_fieldcat text-064.
p_fieldcat-no_out = 'X'.
WHEN 'SEQ'.
PERFORM atribuir_texto USING p_fieldcat text-066.
* >> Início da inclusão: FORM TRATAR_FIELDCAT
WHEN 'VALOR_MARG'.
PERFORM atribuir_texto USING p_fieldcat text-112.
* << Fim da inclusão
WHEN OTHERS.
PERFORM atribuir_texto USING p_fieldcat p_fieldcat-fieldname.
p_fieldcat-no_out = 'X'.
ENDCASE.
MODIFY p_fieldcat.
ENDLOOP.
ENDFORM.
FORM montar_cabec_parc USING p_matnr
p_grupo.
DATA: ls_line TYPE slis_listheader.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYTPR042
Não foram efetuadas modificações.