PW.TP - Nota 003130

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.

 

Versões Tratadas

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.