PW.TP - Nota 002186

Módulo: GERAL

Funcionalidade: Processar Cálculo Mensal

Data/Hora da Publicação: 02/10/2006 00:00:00

Data/Hora Última Alteração: 11/02/2011 10:30:59

Descrição da Nota: CÁLCULO DO MÉTODO PRL ACUMULADO

Sintoma

O calculo de preço de transferencia para a formação do custo original não está acumulando a

quantidade.

 

 

 

Solução

Calcular custo original e final considerando a quantidade acumulada até o mês informado.

 

Versões Tratadas

Não Usar - 2.00.0000


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE DO CUSTO FINAL POR CENTRO

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 02186 Data: 02/10/2006 Hora: 16:10:47

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 02186

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.TP             : 2.0

Pacote                   : 00023

Agrupamento              : 00001

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

02152  - 02152 - 2.0    - 00023  - AJUSTE DO CUSTO FINAL POR CENTRO

----------------------------------------------------------------------------------------------------

CÁLCULO DO MÉTODO PRL ACUMULADO

----------------------------------------------------------------------------------------------------

Palavras Chave:

CÁLCULO DO MÉTODO PRL ACUMULADO

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

DOMD /PWS/ZYTPD047

DOMD /PWS/ZYTPD400

REPS /PWS/ZYTPR011

REPS /PWS/ZYTPR011_TOP

REPS /PWS/ZYTPR037

REPS /PWS/ZYTPR042

REPS /PWS/ZYTPR043

REPT /PWS/ZYTPR011

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DOMD /PWS/ZYTPD047

 

------------------------------------------------------------------------

Domínio modificado: /PWS/ZYTPD047

-Valores individuais

Incluído valor fixo "3"

Texto incluído, idioma: PT (9 caracteres):

"Acumulada"

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DOMD /PWS/ZYTPD400

 

------------------------------------------------------------------------

Domínio modificado: /PWS/ZYTPD400

-Valores individuais

Incluído valor fixo "8"

Texto incluído, idioma: PT (43 caracteres):

"Preço Parâmetro - /PWS/ZYTPT904 - Acumulada"

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYTPR011

 

...

        AND ano        IN s_ano

        AND mes        IN s_mes

        AND unid_negoc IN s_unneg

        AND matnr_o    IN s_matnro

        AND matnr_f    IN s_matnrf

* >> Início da exclusão:

        AND processo   IN s_proc.

* << Fim da exclusão

* >> Início da inclusão:

        AND processo   IN s_proc

        AND tp_lista   IN s_lista.

* << Fim da inclusão

  IF NOT t_zytpt904[] IS INITIAL.

    SELECT bukrs_g

           ano

           sysid

           tipo

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYTPR011_TOP

 

...

          s_ano    FOR /pws/zytpt904-ano,

          s_mes    FOR /pws/zytpt904-mes,

          s_unneg  FOR /pws/zytpt904-unid_negoc,

          s_matnro FOR /pws/zytpt904-matnr_o,

          s_matnrf FOR /pws/zytpt904-matnr_f,

* >> Início da exclusão:

          s_proc   FOR /pws/zytpt904-processo.

* << Fim da exclusão

* >> Início da inclusão:

          s_proc   FOR /pws/zytpt904-processo,

          s_lista  FOR /pws/zytpt904-tp_lista.

* << Fim da inclusão

SELECTION-SCREEN END OF BLOCK bl1.

INCLUDE /PWS/Z_REL_ALV_TP.

DATA: t_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,

      s_layout     TYPE slis_layout_alv,

      v_print      TYPE slis_print_alv,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYTPR037

 

...

          ano        TYPE /pws/zytpt902-ano,

          mes        TYPE /pws/zytpt902-mes,

          menge      TYPE /pws/zytpt902-menge,

          preco_prtc TYPE /pws/zytpt902-preco_prtc,

      END OF t_902_vinc,

* >> Início da inclusão:

        w_904_acum   TYPE /pws/zytpt904,

        t_904_aux    TYPE TABLE OF /pws/zytpt904 WITH HEADER LINE,

        v_preco_acum TYPE /pws/zytpt902-preco_prtc,

        BEGIN OF t_902_acum OCCURS 0,

          versao     TYPE /pws/zytpt902-versao,

          processo   TYPE /pws/zytpt902-processo,

          matnr      TYPE /pws/zytpt902-matnr,

          bwkey      TYPE /pws/zytpt902-bwkey,

          bwtar      TYPE /pws/zytpt902-bwtar,

          menge      TYPE /pws/zytpt902-menge,

          preco_prtc TYPE /pws/zytpt902-preco_prtc,

        END OF t_902_acum,

        BEGIN OF t_904_acum OCCURS 0,

          versao   TYPE /pws/zytpt904-versao,

          matnr_o  TYPE /pws/zytpt904-matnr_o,

          matnr_f  TYPE /pws/zytpt904-matnr_f,

          processo TYPE /pws/zytpt904-processo,

          menge_o  TYPE /pws/zytpt904-menge_o,

          custo_o  TYPE /pws/zytpt904-custo_o,

          menge_f  TYPE /pws/zytpt904-menge_f,

          custo_f  TYPE /pws/zytpt904-custo_f,

          vlr_mtdf TYPE /pws/zytpt904-vlr_mtdf,

        END OF t_904_acum,

* << Fim da inclusão

      v_etq_mov   TYPE /pws/zytpl045,

      v_etq_sld   TYPE /pws/zytpl045,

      v_campo     TYPE char25,

      v_dt_ini    TYPE sy-datum,

      v_dt_fim    TYPE sy-datum,

...

 

...

  ASSIGN t_904-vlr_mtdf TO <vlr_mtd>.

  READ TABLE t_001 WITH KEY cod_metodo = '3'.

  CHECK sy-subrc EQ 0.

  CLEAR t_calc. REFRESH t_calc.

  DESCRIBE TABLE t_904 LINES v_tot.

* >> Início da inclusão: FORM CALC_904_PRL

  t_904_aux[] = t_904[].

  SORT t_904_aux BY versao matnr_o matnr_f processo.

  DELETE ADJACENT DUPLICATES FROM t_904_aux

  COMPARING versao matnr_o matnr_f processo.

  IF NOT t_904_aux[] IS INITIAL.

    SELECT versao matnr_o matnr_f processo

           menge_o custo_o menge_f custo_f vlr_mtdf

    FROM /pws/zytpt904

    INTO TABLE t_904_acum

    FOR ALL ENTRIES IN t_904_aux

    WHERE bukrs_g = /pws/zytpt021-bukrs_g

      AND versao = t_904_aux-versao

      AND matnr_o = t_904_aux-matnr_o

      AND matnr_f = t_904_aux-matnr_f

      AND processo = t_904_aux-processo

      AND ano = p_ano

      AND mes < p_mes

      AND tp_lista = '2'.

    SORT t_904_aux BY matnr_f.

    DELETE ADJACENT DUPLICATES FROM t_904_aux COMPARING matnr_f.

    SELECT versao processo matnr bwkey bwtar

           menge preco_prtc

      FROM /pws/zytpt902

      INTO TABLE t_902_acum

      FOR ALL ENTRIES IN t_904_aux

      WHERE bukrs_g = /pws/zytpt021-bukrs_g

        AND ( processo LIKE '2%'

           OR processo LIKE '4%'

           OR processo LIKE '9%' )

        AND matnr = t_904_aux-matnr_f

        AND ano = p_ano

        AND mes < p_mes.

  ENDIF.

  REFRESH t_904_aux. CLEAR t_904_aux.

* << Fim da inclusão

  LOOP AT t_904.

    CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 9.

      PERFORM exibir_progresso USING sy-tabix v_tot text-095.

      CLEAR t_calc.

      LOOP AT t_902 WHERE matnr = t_904-matnr_f.

...

 

...

        v_campo = t_035-campo.

        <vlr_mtd> = t_calc-preco_prtc - v_margem.

        <vlr_mtd> =  <vlr_mtd> * t_904-custo_o / v_custo.

      ENDIF.

      MODIFY t_904 TRANSPORTING (t_035-campo).

* >> Início da inclusão: FORM CALC_904_PRL

    ENDCATCH.

    IF sy-subrc EQ 9.

      t_log-num = 9.

      CONCATENATE text-038 t_904-matnr_o text-039 t_904-matnr_f

                  text-036 t_904-processo text-090 'T_904'

                  text-037 v_campo

             INTO t_log-mensagem SEPARATED BY space.

      APPEND t_log.

    ENDIF.

  ENDLOOP.

  CLEAR v_preco_acum.

  LOOP AT t_904 WHERE tp_lista = '2'.

    CLEAR: w_904_acum, v_custo, v_preco_acum.

    w_904_acum-bukrs_g = t_904-bukrs_g.

    w_904_acum-versao = t_904-versao.

    w_904_acum-matnr_o = t_904-matnr_o.

    w_904_acum-matnr_f = t_904-matnr_f.

    w_904_acum-processo = t_904-processo.

    w_904_acum-ano = t_904-ano.

    w_904_acum-mes = t_904-mes.

    w_904_acum-tp_lista = '3'.

    w_904_acum-meins_o = t_904-meins_o.

    w_904_acum-meins_f = t_904-meins_f.

    w_904_acum-unid_negoc = t_904-unid_negoc.

    w_904_acum-custo_f = t_904-custo_f.

    w_904_acum-vlr_mtdf = t_904-vlr_mtdf.

    w_904_acum-menge_o = t_904-menge_o.

    w_904_acum-menge_f = t_904-menge_f.

    CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 9.

      LOOP AT t_902_acum WHERE matnr = w_904_acum-matnr_f.

        IF t_904-processo(1) <> '9'.

          CHECK t_902_acum-processo = w_904_acum-processo.

        ELSEIF t_904-processo = '99'.

          CHECK t_902_acum-processo(2) = '99'.

        ELSEIF t_904-processo = '9'.

          CHECK t_902_acum-processo(1) = '9' AND

                t_902_acum-processo(2) <> '99'.

        ENDIF.

        v_campo = 'PRECO_PRCT'.

        ADD t_902_acum-preco_prtc TO v_preco_acum.

      ENDLOOP.

      LOOP AT t_904_acum

        WHERE versao   = w_904_acum-versao  AND

              matnr_o  = w_904_acum-matnr_o AND

              matnr_f  = w_904_acum-matnr_f AND

              processo = w_904_acum-processo.

        v_campo = 'VLR_MTDF'.

        ADD t_904_acum-vlr_mtdf TO w_904_acum-vlr_mtdf.

        v_campo = 'MENGE_O'.

        ADD t_904_acum-menge_o TO w_904_acum-menge_o.

        v_campo = 'MENGE_F'.

        ADD t_904_acum-menge_f TO w_904_acum-menge_f.

        v_campo = 'CUSTO_F'.

        ADD t_904_acum-custo_f TO w_904_acum-custo_f.

      ENDLOOP.

      v_campo = 'PRECO_PRCT'.

      CLEAR t_calc.

      READ TABLE t_calc

      WITH KEY matnr_f = t_904-matnr_f

               matnr_o = t_904-matnr_o

               processo = t_904-processo.

      ADD t_calc-preco_prtc TO v_preco_acum.

      CLEAR t_901.

      READ TABLE t_901

       WITH KEY tipo = 1

                matnr = t_904-matnr_o BINARY SEARCH.

      CLEAR t_906.

      READ TABLE t_906

       WITH KEY matnr = t_904-matnr_o

                bwkey = t_901-werks BINARY SEARCH.

      v_campo = 'CUSTO_O'.

      w_904_acum-custo_o = t_906-prc_m_aq_v * w_904_acum-menge_o.

      IF w_904_acum-custo_f IS INITIAL.

        t_904-participa = 0.

      ELSE.

        v_campo = 'PARTICIPA'.

        w_904_acum-participa = w_904_acum-custo_o / w_904_acum-custo_f.

      ENDIF.

      IF w_904_acum-custo_f <> 0 AND

         w_904_acum-custo_o <> 0.

        CLEAR: v_base, v_margem.

        v_campo  = 'V_BASE'.

        v_base   = ( w_904_acum-custo_o / w_904_acum-custo_f )

                   * v_preco_acum.

        v_campo  = 'V_MARGEM'.

        v_margem = v_base * '0.6'.

        CLEAR t_035.

        READ TABLE t_035

            WITH KEY cod_metodo = '03'

                     esquemcalc = '01'

                     tipo_campo = '1'.

        ASSIGN COMPONENT t_035-campo

         OF STRUCTURE w_904_acum TO <vlr_mtd>.

        IF sy-subrc EQ 0.

          v_campo = t_035-campo.

          <vlr_mtd> = v_base - v_margem.

        ENDIF.

        CLEAR: v_base, v_margem.

        v_campo = 'V_BASE'.

        v_base = v_preco_acum -

                 w_904_acum-custo_f + w_904_acum-custo_o.

        v_campo = 'V_MARGEM'.

        v_margem = v_base * '0.6'.

        CLEAR t_035.

        READ TABLE t_035

            WITH KEY cod_metodo = '03'

                     esquemcalc = '02'

                     tipo_campo = '1'.

        ASSIGN COMPONENT t_035-campo

         OF STRUCTURE w_904_acum TO <vlr_mtd>.

        IF sy-subrc EQ 0.

          v_campo = t_035-campo.

          <vlr_mtd> = v_preco_acum - v_margem.

        ENDIF.

      ELSE.

        IF w_904_acum-custo_o IS INITIAL.

          CLEAR w_904_acum-menge_o.

        ENDIF.

      ENDIF.

      IF NOT w_904_acum-custo_o IS INITIAL.

        CLEAR: v_base, v_margem .

        v_campo = 'V_BASE'.

        v_base = v_preco_acum - w_904_acum-custo_f.

        LOOP AT t_calc

             WHERE matnr_f = w_904_acum-matnr_f

               AND matnr_o <> w_904_acum-matnr_o

               AND processo = w_904_acum-processo.

          v_custo = v_custo + t_calc-custo_o.

        ENDLOOP.

        LOOP AT t_904_acum

         WHERE versao = w_904_acum-versao     AND

               matnr_o  <> w_904_acum-matnr_o AND

               matnr_f  = w_904_acum-matnr_f  AND

               processo = w_904_acum-processo.

          v_custo = v_custo + t_904_acum-custo_o.

        ENDLOOP.

        IF v_custo NE 0.

          v_base =  v_base + v_custo.

          v_campo = 'V_MARGEM'.

          v_margem = v_base * '0.6'.

          CLEAR t_035.

          READ TABLE t_035

              WITH KEY cod_metodo = '03'

                       esquemcalc = '03'

                       tipo_campo = '1'.

          ASSIGN COMPONENT t_035-campo

           OF STRUCTURE w_904_acum TO <vlr_mtd>.

          IF sy-subrc EQ 0.

            v_campo = t_035-campo.

            <vlr_mtd> = v_preco_acum - v_margem.

            <vlr_mtd> =  <vlr_mtd> * w_904_acum-custo_o / v_custo.

          ENDIF.

        ENDIF.

      ENDIF.

      APPEND w_904_acum TO t_904_aux.

* << Fim da inclusão

    ENDCATCH.

    IF sy-subrc EQ 9.

      t_log-num = 9.

      CONCATENATE text-038 t_904-matnr_o text-039 t_904-matnr_f

                  text-036 t_904-processo text-090 'T_904'

                  text-037 v_campo

             INTO t_log-mensagem SEPARATED BY space.

      APPEND t_log.

    ENDIF.

  ENDLOOP.

* >> Início da inclusão: FORM CALC_904_PRL

  APPEND LINES OF t_904_aux TO t_904.

* << Fim da inclusão

  CLEAR t_025.

  READ TABLE t_025 WITH KEY zexit = 'CHANGE_904'.

  IF sy-subrc EQ 0.

    PERFORM (t_025-form) IN PROGRAM (t_025-programa)

       TABLES s_matnr

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYTPR042

 

...

      v_agru(1)     TYPE c,

      v_ind(20)     TYPE c.

CONSTANTS:

           tp_revenda(1)   TYPE c VALUE '1',

           tp_consumo(1)   TYPE c VALUE '2',

* >> Início da inclusão:

           tp_acumulada(1) TYPE c VALUE '3',

* << Fim da inclusão

           fator_prtc(1)   TYPE c VALUE '1',

           fator_safe90(1) TYPE c VALUE '2',

           safe_90(3)      TYPE p DECIMALS 2 VALUE '0.90'.

RANGES: r_matnr FOR /pws/zytpt901-matnr,

        r_campo FOR /pws/zytpt001-cmp_matn_c.

...

 

...

FORM selecao_dados.

  DATA: t_901_aux TYPE TABLE OF /pws/zytpt901 WITH HEADER LINE.

  RANGES: r_grupo FOR /pws/zytpt020-grupo,

          r_proc_902 FOR /pws/zytpt902-processo,

          r_proc_904 FOR /pws/zytpt904-processo,

* >> Início da exclusão: FORM SELECAO_DADOS

          r_met_002  FOR /pws/zytpt002-cod_metodo.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECAO_DADOS

          r_met_002  FOR /pws/zytpt002-cod_metodo,

          r_lista    FOR /pws/zytpt904-tp_lista.

* << Fim da inclusão

  CLEAR r_matnr[].

  IF NOT s_matnr[] IS INITIAL AND p_nosimi = 'X'.

    r_matnr[] = s_matnr[].

  ENDIF.

  SELECT * FROM /pws/zytpt901

...

 

...

    INTO TABLE t_020

    WHERE bukrs_g = p_bukrsg

      AND grupo  IN r_grupo.

    SORT t_020 BY grupo.

  ENDIF.

* >> Início da inclusão: FORM SELECAO_DADOS

  r_lista-sign =

* << Fim da inclusão

  r_proc_904-sign =

  r_met_002-sign =

  r_proc_902-sign = 'I'.

* >> Início da inclusão: FORM SELECAO_DADOS

  r_lista-option =

* << Fim da inclusão

  r_proc_904-option =

  r_met_002-option =

  r_proc_902-option = 'EQ'.

  LOOP AT t_007.

    CASE t_007-tipo.

...

 

...

      WHEN '5'.

        r_proc_902-low = t_007-processo.

        COLLECT r_proc_902.

        r_proc_904-low = t_007-processo.

        COLLECT r_proc_904.

* >> Início da inclusão: FORM SELECAO_DADOS

        r_lista-low = tp_revenda.

        COLLECT r_lista.

* << Fim da inclusão

      WHEN '6'.

        r_proc_904-low = t_007-processo.

        COLLECT r_proc_904.

* >> Início da inclusão: FORM SELECAO_DADOS

        r_lista-low = tp_consumo.

        COLLECT r_lista.

* << Fim da inclusão

      WHEN '7'.

        r_met_002-low = t_007-cod_metodo.

        COLLECT r_met_002.

* >> Início da inclusão: FORM SELECAO_DADOS

      WHEN '8'.

        r_lista-low = tp_acumulada.

        COLLECT r_lista.

        r_proc_904-low = t_007-processo.

        COLLECT r_proc_904.

* << Fim da inclusão

    ENDCASE.

  ENDLOOP.

  IF NOT r_proc_902[] IS INITIAL.

    SORT r_proc_902 BY low.

    SELECT * FROM /pws/zytpt902

...

 

...

      INTO TABLE t_904

      WHERE bukrs_g EQ p_bukrsg

        AND versao  EQ space

        AND processo IN r_proc_904

        AND ano     EQ p_ano

* >> Início da exclusão: FORM SELECAO_DADOS

        AND mes     LE p_mes.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECAO_DADOS

        AND mes     LE p_mes

        AND tp_lista IN r_lista.

* << Fim da inclusão

    ENDIF.

    SELECT * FROM /pws/zytpt906

    INTO TABLE t_906

    WHERE sysid   EQ sy-sysid

      AND bukrs_g EQ p_bukrsg

...

 

...

                     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,

* >> Início da inclusão: FORM CALCULAR_METODO

        t_904_aux TYPE TABLE OF /pws/zytpt904 WITH HEADER LINE,

        v_ok(1)  TYPE c,

* << Fim da inclusão

        v_aj_906 TYPE i,

        v_fator_safe(1) TYPE c.

  FIELD-SYMBOLS: <valor> TYPE ANY.

  LOOP AT t_007 WHERE cod_metodo = p_001-cod_metodo.

    t_007_aux = t_007.

...

 

...

      ENDLOOP.

    ENDLOOP.

    LOOP AT p_904 WHERE matnr_o IN p_matnr.

      LOOP AT t_007_aux

       WHERE processo = p_904-processo

* >> Início da exclusão: FORM CALCULAR_METODO

             AND ( tipo = '5' OR tipo = '6' ) .

* << Fim da exclusão

* >> Início da inclusão: FORM CALCULAR_METODO

             AND ( tipo = '5' OR

                   tipo = '6' ).

* << Fim da inclusão

        CASE t_007_aux-tipo.

          WHEN '5'.

            IF p_904-tp_lista = tp_revenda.

              LOOP AT p_902

                WHERE matnr    = p_904-matnr_f AND

...

 

...

              MOVE-CORRESPONDING p_002 TO w_002_key.

              APPEND w_002_key TO t_detalhe-t_002.

            ENDIF.

        ENDCASE.

        ADD t_007_aux-ajuste TO v_aj_906.

* >> Início da inclusão: FORM CALCULAR_METODO

      ENDLOOP.

    ENDLOOP.

    LOOP AT t_007_aux

      WHERE tipo = '8'.

      IF v_ok = space.

        t_904_aux[] = p_904[].

        DELETE t_904_aux WHERE tp_lista <> tp_acumulada.

        SORT t_904_aux BY matnr_o matnr_f processo mes DESCENDING.

        DELETE ADJACENT DUPLICATES FROM t_904_aux

          COMPARING matnr_o matnr_f processo.

        v_ok = 'X'.

      ENDIF.

      LOOP AT t_904_aux WHERE matnr_o   IN p_matnr

                      AND processo = t_007_aux-processo.

        ASSIGN COMPONENT t_007_aux-campo

                     OF STRUCTURE t_904_aux TO <valor>.

        IF sy-subrc EQ 0.

          ADD: <valor>           TO p_calc-valor_param,

               t_904_aux-menge_o TO p_calc-qtd_param.

          MOVE-CORRESPONDING t_904_aux TO w_904_key.

          APPEND w_904_key TO t_detalhe-t_904.

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

* >> Início da inclusão: FORM CALCULAR_METODO

    ADD t_007_aux-ajuste TO v_aj_906.

* << Fim da inclusão

    ENDLOOP.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYTPR043

 

...

      WHEN '5'.

        r_proc_902-low = t_007-processo.

        COLLECT r_proc_902.

        r_proc_904-low = t_007-processo.

        COLLECT r_proc_904.

* >> Início da exclusão: FORM SELECIONAR_DADOS

      WHEN '6'.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONAR_DADOS

      WHEN '6'

        OR '8'.

* << Fim da inclusão

        r_proc_904-low = t_007-processo.

        COLLECT r_proc_904.

      WHEN '7'.

        r_met_002-low = t_007-cod_metodo.

        COLLECT r_met_002.

...

 

...

  DELETE t_007

   WHERE tipo <> '1'

     AND tipo <> '2'

     AND tipo <> '5'

     AND tipo <> '6'

* >> Início da exclusão: FORM SELECIONAR_PARAMETROS

     AND tipo <> '7'.

* << Fim da exclusão

* >> Início da inclusão: FORM SELECIONAR_PARAMETROS

     AND tipo <> '7'

     AND tipo <> '8'.

* << Fim da inclusão

  SELECT * FROM /pws/zytpt026

  INTO TABLE t_026

  WHERE sysid = sy-sysid

    AND bukrs_g IN (p_bukrsg, space).

  SELECT * FROM /pws/zytpt012

...

 

...

ENDFORM.

FORM verificar_metodos TABLES p_matnr

                        USING p_001 STRUCTURE /pws/zytpt001

                     CHANGING praticado

                              parametro.

* >> Início da exclusão: FORM VERIFICAR_METODOS

  DATA: valor TYPE /pws/zytpt906-custo.

* << Fim da exclusão

  LOOP AT t_007 WHERE cod_metodo = p_001-cod_metodo

                  AND tipo = '1'.

    LOOP AT t_902 WHERE matnr IN p_matnr

                    AND processo = t_007-processo.

      praticado = 'X'.

...

 

...

                          AND processo = t_007-processo.

            parametro = 'X'.

            EXIT.

          ENDLOOP.

        ENDIF.

* >> Início da exclusão: FORM VERIFICAR_METODOS

      ELSEIF t_007-tipo = '6'.

* << Fim da exclusão

* >> Início da inclusão: FORM VERIFICAR_METODOS

      ELSEIF t_007-tipo = '6'

          OR t_007-tipo = '8'.

* << Fim da inclusão

        LOOP AT t_905 WHERE matnr_o IN p_matnr

                        AND tp_lista = '2'.

          parametro = 'X'.

          EXIT.

        ENDLOOP.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYTPR011

 

------------------------------------------------------------------------

Incluído texto de seleção:

 

Idioma: PT

 

Variável (SELECT-OPTION / PARAMETER): S_LISTA

 

Texto: (29 caracteres)

"Tipo de Lista Técnica"

 

Referência ao Dictionary: SIM