CE PLUS - Nota 006056

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 28/02/2008 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:20:49

Descrição da Nota: ATUALIZAÇÃO DO PROGRAMA PARA TRATATIVA DE GRUPOS COM DIFERENTES NCM'S

Sintoma

O programa não permite a gravação do mesmo grupo com NCM's diferentes.

 

 

Solução

Atualização do programa de gerenciamento de itens genéricos para tratativa de processos com grupos

com diferentes NCM's.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

MARCAÇÃO DAS LINHAS DA PASTA ITENS GÉNERICOS.

PERMITE O REPETIR O INSUMO NO MESMO GRUPO COM RANGER DE DATA DIFERENTE

Informações Complementares

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

Nota Número 06056 Data: 28/02/2008 Hora: 13:11:23

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

 

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

Nota Número              : 06056

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00037

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

Referência às notas relacionadas:

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

 

03613  - 00001 - 7.0    - 00001  - PERMITE O REPETIR O INSUMO NO MESMO GRUPO COM RANGER DE DATA DIFE

05511  - 00002 - 7.0    - 00004  - MARCAÇÃO DAS LINHAS DA PASTA ITENS GÉNERICOS.

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

ATUALIZAÇÃO DO PROGRAMA PARA TRATATIVA DE GRUPOS COM DIFERENTES NCM'S

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

Palavras Chave:

ITENS GENÉRICOS GRUPOS NCM DIFERENTES DRAWBACK INSUMOS ALTERNATIVOS

 

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

Objetos da nota:

CUAD /PWS/ZYCIR342

DYNP /PWS/ZYCIR342                           0100

DYNP /PWS/ZYCIR342                           0101

REPS /PWS/ZYCIR342F01

REPS /PWS/ZYCIR342I01

REPS /PWS/ZYCIR342O01

REPS /PWS/ZYCIR342TOP

TABD /PWS/ZYCIE433

TABD /PWS/ZYCIT433

 

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

Modificações efetuadas em CUAD /PWS/ZYCIR342

 

*Funções com textos estáticos

 

Código de função     Categoria Res. Nome campo p/texto GUI dinâmico

EXIT                 E

EXIT                 E

EXIT                 E              ICON_CANCEL

 

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

Modificações efetuadas em DYNP /PWS/ZYCIR342                           0100

 

PROCESS BEFORE OUTPUT.

 

  MODULE status_0100.

  CALL SUBSCREEN ss01 INCLUDING '/PWS/ZYCIR342' v_tela.

 

PROCESS AFTER INPUT.

  CALL SUBSCREEN ss01.

 

  MODULE user_command_0100.

* >> Início da inclusão: Tela 0100

  MODULE user_command_0100_exit AT EXIT-COMMAND.

* << Fim da inclusão

 

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

Modificações efetuadas em DYNP /PWS/ZYCIR342                           0101

 

   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

 

   BOX1

      Quadr      1        1      94      94       1     CHAR

 

+  TC_GRUPO

      Tabel      2        3      90      90      25

      Seleção linha=Simples, Seleção coluna=Simples

      TabEntr., Com título, Configurável, Coluna marc., RedimVertic., RedimHoriz., LSep.horiz.,

LnhSep.vert.

 - /PWS/ZYCIE433-GRUPO

      Texto      1        1      17      10       1     CHAR      X    F

      Título de coluna TC

 - /PWS/ZYCIE433-NRITEM

      Texto      1        2       4       4       1     CHAR      X    F

      Título de coluna TC

 - /PWS/ZYCIE433-DESC_G

      Texto      1        3      23      40       1     CHAR      X    F

      Título de coluna TC

 - /PWS/ZYCIE433-J_1BNBM

      Texto      1        4       3      16       1     CHAR      X    F

      Título de coluna TC

 - /PWS/ZYCIE433-MEINS

      Texto      1        5       3       6       1     CHAR      X    F

      Título de coluna TC

 - V_MARK

      Check      1        0       1       1       1     CHAR               Ent Off

      Coluna marc.TC

 - /PWS/ZYCIE433-GRUPO

      I/O        1        1       4      10       1     CHAR   X           Ent Off

      Entr.obrig., Elem.TC

* >> Início da inclusão: TC_GRUPO

 - /PWS/ZYCIE433-NRITEM

      I/O        1        2       4       4       1     NUMC   X               Off S.Sd

      Elem.TC

* << Fim da inclusão

 - /PWS/ZYCIE433-DESC_G

      I/O        1        3      40      40       1     CHAR   X           Ent Off

      Entr.obrig., Elem.TC

 - /PWS/ZYCIE433-J_1BNBM

      I/O        1        4      16      16       1     CHAR   X           Ent Off

      Entr.obrig., Chave externa, Botão EntrsPoss.stand., Elem.TC

 - /PWS/ZYCIE433-MEINS

      I/O        1        5       3       6       1     UNIT   X           Ent Off

      Entr.obrig., Chave externa, Botão EntrsPoss.stand., Elem.TC

      Saída de conversão=CUNIT

 

      OK

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342F01

 

FORM move_insumos.

  itab_insumo[] = itab_zycit433_s[].

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

  DELETE itab_insumo WHERE grupo NE itab_grupo-grupo.

* << Fim da exclusão

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

  DELETE itab_insumo WHERE grupo NE itab_grupo-grupo

                     OR  ( grupo EQ itab_grupo-grupo AND

                          nritem NE itab_grupo-nritem ).

* << Fim da inclusão

  SORT itab_insumo BY matnr dtde.

  MOVE: itab_grupo-grupo   TO /pws/zycie433-grupo  ,

        itab_grupo-desc_g  TO /pws/zycie433-desc_g ,

        itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,

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

        itab_grupo-meins   TO /pws/zycie433-meins  .

* << Fim da exclusão

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

        itab_grupo-meins   TO /pws/zycie433-meins  ,

        itab_grupo-nritem  to /pws/zycie433-nritem .

* << Fim da inclusão

ENDFORM.

FORM deleta_insumo.

  DATA: v_matnr_d    TYPE mara-matnr.

  CLEAR: v_matnr_d.

  SELECT SINGLE matnr "#EC CI_NOFIELD

    FROM /pws/zycit279

    INTO v_matnr_d

    WHERE matnr EQ itab_insumo-matnr.

  SELECT SINGLE codcomp "#EC CI_NOFIRST

    FROM /pws/zycit260

    INTO v_matnr_d

    WHERE codcomp EQ itab_insumo-matnr.

  IF NOT v_matnr_d IS INITIAL.

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

    MESSAGE  i015 WITH text-005.

* << Fim da exclusão

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

    MESSAGE  i039 WITH text-005.

* << Fim da inclusão

    EXIT.

  ENDIF.

  IF v_resposta EQ '1'.

    LOOP AT itab_zycit433_s WHERE grupo EQ itab_insumo-grupo

                              AND matnr EQ itab_insumo-matnr.

      itab_zycit433_d = itab_zycit433_s.

      APPEND itab_zycit433_d.

      DELETE itab_zycit433_s.

    ENDLOOP.

    SORT itab_zycit433_d BY grupo matnr.

...

 

...

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

      IF v_modifica EQ 'X'.

        CHECK itab_insumo-item  NE itab_zycit433_s-item OR

              itab_insumo-grupo NE itab_zycit433_s-grupo.

      ENDIF.

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

    IF v_exist EQ 'X'.

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

      MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da exclusão

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

      MESSAGE i013 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da inclusão

      EXIT.

    ENDIF.

  ENDIF.

  IF v_modifica NE 'X'.

    SELECT SINGLE a~steuc b~meins

           INTO (/pws/zycie433-j_1bnbm, /pws/zycie433-meins)

           FROM ( marc AS a INNER JOIN mara AS b ON

                  a~matnr EQ b~matnr )

           WHERE a~matnr EQ /pws/zycie433-matnr

             AND a~steuc NE space.

    IF  itab_grupo-j_1bnbm NE /pws/zycie433-j_1bnbm.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-012

                INTO v_mensagem SEPARATED BY space.

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

      MESSAGE i015 WITH v_mensagem itab_insumo-j_1bnbm text-014.

* << Fim da exclusão

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

      MESSAGE i013 WITH v_mensagem itab_insumo-j_1bnbm text-014.

* << Fim da inclusão

      EXIT.

    ENDIF.

    IF  itab_grupo-meins NE /pws/zycie433-meins.

      SELECT SINGLE * FROM /pws/zyglt217

      WHERE arbgb EQ '/PWS/ZYCIM'

      AND   msgnr EQ '138'.

      IF sy-subrc EQ 0 AND NOT /pws/zyglt217-msgtp IS INITIAL.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-013

                INTO v_mensagem SEPARATED BY space.

        MESSAGE ID '/PWS/ZYCIM' TYPE /pws/zyglt217-msgtp NUMBER '013'

                       WITH v_mensagem /pws/zycie433-meins text-014.

      ENDIF.

    ENDIF.

    SELECT SINGLE maktx FROM makt

         INTO /pws/zycie433-maktx

         WHERE matnr EQ /pws/zycie433-matnr.

    IF /pws/zycie433-dtde > /pws/zycie433-dtate.

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

      MESSAGE i015 WITH text-015.

* << Fim da exclusão

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

      MESSAGE i039 WITH text-015.

* << Fim da inclusão

      EXIT.

    ENDIF.

    CLEAR: itab_insumo.

    SORT itab_insumo DESCENDING BY item.

    READ TABLE itab_insumo WITH KEY matnr = /pws/zycie433-matnr.

    ADD 1 TO itab_insumo-item.

    MOVE:

        itab_grupo-grupo        TO /pws/zycie433-grupo ,

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

        itab_grupo-nritem       TO /pws/zycie433-nritem,

* << Fim da inclusão

        itab_grupo-j_1bnbm      TO /pws/zycie433-j_1bnbm,

        itab_grupo-meins        TO /pws/zycie433-meins,

        itab_grupo-desc_g       TO /pws/zycie433-desc_g,

        itab_insumo-item        TO /pws/zycie433-item.

    APPEND /pws/zycie433 TO itab_insumo.

    APPEND /pws/zycie433 TO itab_zycit433_s.

  ELSE.

    itab_zycit433_s = /pws/zycie433.

    MODIFY itab_zycit433_s TRANSPORTING dtde dtate

                              WHERE item  EQ itab_insumo-item

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342I01

 

MODULE preenche_grupos INPUT.

  IF /pws/zycie433-grupo IS INITIAL.

    EXIT.

  ENDIF.

  READ TABLE itab_grupo INDEX tc_grupo-current_line.

  IF sy-subrc NE 0 .

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

    SORT itab_grupo BY grupo nritem DESCENDING.

* << Fim da inclusão

    READ TABLE itab_grupo WITH KEY

                        grupo = /pws/zycie433-grupo.

    IF sy-subrc EQ 0.

* >> Início da exclusão: MODULE PREENCHE_GRUPOS

      MESSAGE i015  WITH text-006.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

      READ TABLE itab_grupo WITH KEY

                          grupo   = /pws/zycie433-grupo

                          j_1bnbm = /pws/zycie433-j_1bnbm.

      IF sy-subrc EQ 0.

        MESSAGE i039  WITH text-006.

* << Fim da inclusão

      EXIT.

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

      ELSE.

        itab_grupo-grupo   = /pws/zycie433-grupo  .

        itab_grupo-desc_g  = /pws/zycie433-desc_g .

        itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

        itab_grupo-meins   = /pws/zycie433-meins  .

        ADD 1 TO itab_grupo-nritem.

* << Fim da inclusão

    ENDIF.

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

    ENDIF.

* << Fim da inclusão

    itab_grupo-grupo   = /pws/zycie433-grupo  .

    itab_grupo-desc_g  = /pws/zycie433-desc_g .

    itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

    itab_grupo-meins   = /pws/zycie433-meins  .

    APPEND itab_grupo.

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

  ELSE.

    SORT itab_grupo BY grupo nritem DESCENDING.

    READ TABLE itab_grupo WITH KEY

                        grupo = /pws/zycie433-grupo.

    IF sy-subrc EQ 0.

      READ TABLE itab_grupo WITH KEY

                          grupo   = /pws/zycie433-grupo

                          j_1bnbm = /pws/zycie433-j_1bnbm.

      IF sy-subrc EQ 0.

        MESSAGE i039  WITH text-006.

        EXIT.

* << Fim da inclusão

  ELSE.

    itab_grupo-grupo   = /pws/zycie433-grupo  .

    itab_grupo-desc_g  = /pws/zycie433-desc_g .

    itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

    itab_grupo-meins   = /pws/zycie433-meins  .

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

        ADD 1 TO itab_grupo-nritem.

* << Fim da inclusão

    MODIFY itab_grupo INDEX tc_grupo-current_line.

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

      ENDIF.

    ELSE.

      itab_grupo-grupo   = /pws/zycie433-grupo  .

      itab_grupo-desc_g  = /pws/zycie433-desc_g .

      itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

      itab_grupo-meins   = /pws/zycie433-meins  .

* << Fim da inclusão

  ENDIF.

* >> Início da inclusão: MODULE PREENCHE_GRUPOS

  ENDIF.

* << Fim da inclusão

ENDMODULE.

MODULE user_command_0101 INPUT.

  IF sy-dynnr EQ '0101'.

    CASE v_okcode.

      WHEN 'CRESC'.

        CLEAR: v_sort, v_sort2.

...

 

...

  ENDIF.

ENDMODULE.

MODULE   user_command_0100 INPUT.

  CASE v_okcode.

    WHEN 'FS_GR'.

      v_tela = '0101'.

      v_pasta = v_okcode.

    WHEN 'FS_IS'.

      READ TABLE itab_grupo WITH KEY mark = 'X'.

      IF sy-subrc NE 0.

* >> Início da exclusão: MODULE USER_COMMAND_0100

        MESSAGE s015 WITH text-007.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0100

        MESSAGE s039 WITH text-007.

* << Fim da inclusão

        EXIT.

      ENDIF.

      v_tela = '0102'.

      v_pasta = v_okcode.

      PERFORM move_insumos.

    WHEN 'DELE'.

      CASE v_tela.

        WHEN '0101'.

          READ TABLE itab_grupo WITH KEY mark = 'X'.

          IF sy-subrc EQ 0.

            PERFORM pergunta USING text-001

                                   text-022

                          CHANGING v_resposta.

            IF v_resposta EQ '1'.

              READ TABLE itab_zycit433_s WITH KEY

* >> Início da exclusão: MODULE USER_COMMAND_0100

                        grupo = itab_grupo-grupo.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0100

                        grupo  = itab_grupo-grupo

                        nritem = itab_grupo-nritem.

* << Fim da inclusão

              IF sy-subrc EQ 0.

* >> Início da exclusão: MODULE USER_COMMAND_0100

                MESSAGE i015 WITH text-008.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0100

                MESSAGE i039 WITH text-008.

* << Fim da inclusão

                EXIT.

              ENDIF.

              DELETE itab_grupo WHERE mark = 'X'.

...

 

...

        PERFORM grava.

      ENDIF.

      IF v_resposta NE 'A'.

        LEAVE PROGRAM.

      ENDIF.

  ENDCASE.

ENDMODULE.

MODULE marca_l101 INPUT.

  READ TABLE itab_grupo INDEX tc_grupo-current_line.

  IF sy-subrc EQ 0 .

* >> Início da inclusão: MODULE MARCA_L101

    IF v_mark EQ 'X'.

* << Fim da inclusão

    CLEAR: itab_grupo-mark.

    MODIFY itab_grupo TRANSPORTING mark WHERE mark NE space.

* >> Início da inclusão: MODULE MARCA_L101

    ENDIF.

* << Fim da inclusão

    itab_grupo-mark = v_mark.

    MODIFY itab_grupo INDEX tc_grupo-current_line.

  ENDIF.

ENDMODULE.

MODULE preenche_insumo INPUT.

  DATA: v_mensagem(50) TYPE c,

        v_exist        TYPE c.

  IF /pws/zycie433-matnr IS INITIAL.

    EXIT.

  ENDIF.

  CLEAR: itab_insumo.

  READ TABLE itab_insumo INDEX tc_insumo-current_line.

  IF sy-subrc NE 0 .

    READ TABLE itab_insumo WITH KEY matnr = /pws/zycie433-matnr.

    IF sy-subrc EQ 0.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH text-016.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i039 WITH text-016.

* << Fim da inclusão

      EXIT.

    ENDIF.

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-matnr

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  >= /pws/zycie433-dtde

                       AND    dtde  <= /pws/zycie433-dtate )

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

...

 

...

                    WHERE matnr EQ /pws/zycie433-grupo

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

    IF v_exist EQ 'X'.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i013 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da inclusão

      EXIT.

    ENDIF.

    SELECT SINGLE a~steuc b~meins

           INTO (itab_insumo-j_1bnbm, itab_insumo-meins)

           FROM ( marc AS a INNER JOIN mara AS b ON

                  a~matnr EQ b~matnr )

           WHERE a~matnr EQ /pws/zycie433-matnr

             AND a~steuc NE space.

    IF  itab_grupo-j_1bnbm NE itab_insumo-j_1bnbm.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-012

                INTO v_mensagem SEPARATED BY space.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH v_mensagem itab_insumo-j_1bnbm text-014.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i013 WITH v_mensagem itab_insumo-j_1bnbm text-014.

* << Fim da inclusão

      EXIT.

    ENDIF.

    IF  itab_grupo-meins NE itab_insumo-meins.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-013

                INTO v_mensagem SEPARATED BY space.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH v_mensagem itab_insumo-meins text-014.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i013 WITH v_mensagem itab_insumo-meins text-014.

* << Fim da inclusão

      EXIT.

    ENDIF.

    SELECT SINGLE maktx FROM makt

         INTO itab_insumo-maktx

         WHERE matnr EQ /pws/zycie433-matnr.

    IF /pws/zycie433-dtde > /pws/zycie433-dtate.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH text-015.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i039 WITH text-015.

* << Fim da inclusão

      EXIT.

    ENDIF.

    MOVE:

        itab_grupo-grupo        TO itab_insumo-grupo ,

        itab_grupo-j_1bnbm      TO itab_insumo-j_1bnbm,

        itab_grupo-meins        TO itab_insumo-meins,

        itab_grupo-desc_g       TO itab_insumo-desc_g,

* >> Início da inclusão: MODULE PREENCHE_INSUMO

        itab_grupo-nritem       TO itab_insumo-nritem,

* << Fim da inclusão

        /pws/zycie433-matnr     TO itab_insumo-matnr,

        /pws/zycie433-dtde      TO itab_insumo-dtde,

        /pws/zycie433-dtate     TO itab_insumo-dtate.

    APPEND itab_insumo.

    itab_zycit433_s = itab_insumo.

    APPEND itab_zycit433_s.

  ELSE.

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-matnr

...

 

...

                    WHERE matnr EQ /pws/zycie433-grupo

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

    IF v_exist EQ 'X'.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i013 WITH text-009 /pws/zycie433-matnr text-010.

* << Fim da inclusão

      EXIT.

    ENDIF.

    IF /pws/zycie433-dtde > /pws/zycie433-dtate.

* >> Início da exclusão: MODULE PREENCHE_INSUMO

      MESSAGE i015 WITH text-015.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_INSUMO

      MESSAGE i039 WITH text-015.

* << Fim da inclusão

      EXIT.

...

 

...

            v_sort = wa_cols-screen-name.

          ENDIF.

        ENDLOOP.

        IF NOT v_sort IS INITIAL.

          v_sort2 = v_sort+14.

          SORT itab_insumo DESCENDING BY (v_sort2).

        ENDIF.

    ENDCASE.

  ENDIF.

ENDMODULE.

* >> Início da inclusão:

MODULE user_command_0100_exit INPUT.

  CASE v_okcode.

    WHEN 'EXIT'.

      PERFORM pergunta USING text-001

                             text-017

                    CHANGING v_resposta.

      IF v_resposta EQ '1'.

        PERFORM grava.

      ENDIF.

      IF v_resposta NE 'A'.

        LEAVE PROGRAM.

      ENDIF.

  ENDCASE.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342O01

 

MODULE preenche_grupo OUTPUT.

  MOVE: itab_grupo-grupo   TO /pws/zycie433-grupo  ,

        itab_grupo-desc_g  TO /pws/zycie433-desc_g ,

        itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,

        itab_grupo-meins   TO /pws/zycie433-meins  ,

* >> Início da exclusão: MODULE PREENCHE_GRUPO

        itab_grupo-mark    TO v_mark.

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_GRUPO

        itab_grupo-mark    TO v_mark               ,

        itab_grupo-nritem  to /pws/zycie433-nritem .

* << Fim da inclusão

ENDMODULE.

MODULE tela_101 OUTPUT.

  IF NOT /pws/zycie433-grupo IS INITIAL.

    READ TABLE itab_zycit433_s WITH KEY

* >> Início da exclusão: MODULE TELA_101

                            grupo = /pws/zycie433-grupo.

* << Fim da exclusão

* >> Início da inclusão: MODULE TELA_101

                            grupo  = /pws/zycie433-grupo

                            nritem = /pws/zycie433-nritem.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      LOOP AT SCREEN .

        IF screen-name NE 'V_MARK'.

          screen-input = 0.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE status_0100 OUTPUT.

  SET PF-STATUS 'ST0100'.

  SET TITLEBAR '0100'.

  IF v_ini IS INITIAL.

    v_ini = 'X'.

* >> Início da exclusão: MODULE STATUS_0100

    SORT itab_zycit433 BY grupo matnr.

* << Fim da exclusão

    SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433."#EC CI_NOWHERE

    itab_zycit433_s[] = itab_zycit433[].

    LOOP AT itab_zycit433.

      itab_grupo-grupo = itab_zycit433-grupo  .

      itab_grupo-desc_g  = itab_zycit433-desc_g .

      itab_grupo-j_1bnbm = itab_zycit433-j_1bnbm.

      itab_grupo-meins   = itab_zycit433-meins  .

* >> Início da inclusão: MODULE STATUS_0100

      itab_grupo-nritem  = itab_zycit433-nritem .

* << Fim da inclusão

      COLLECT itab_grupo.

    ENDLOOP.

    DELETE itab_grupo WHERE grupo EQ space.

* >> Início da exclusão: MODULE STATUS_0100

    SORT itab_grupo BY grupo.

* << Fim da exclusão

* >> Início da inclusão: MODULE STATUS_0100

    SORT itab_grupo BY grupo nritem.

* << Fim da inclusão

  ENDIF.

...

 

...

  DATA: v_linha TYPE i.

  DESCRIBE TABLE itab_grupo LINES v_linha.

  tc_grupo-lines = v_linha + 20.

ENDMODULE.

MODULE preenche_insumo OUTPUT.

  /pws/zycie433-matnr     = itab_insumo-matnr.

  /pws/zycie433-dtde      = itab_insumo-dtde.

  /pws/zycie433-dtate     = itab_insumo-dtate.

  /pws/zycie433-maktx     = itab_insumo-maktx.

  v_mark                  = itab_insumo-mark.

* >> Início da inclusão: MODULE PREENCHE_INSUMO

  /pws/zycie433-nritem    = itab_insumo-nritem.

* << Fim da inclusão

ENDMODULE.

MODULE status_0102 OUTPUT.

  DATA: v_linha_102 TYPE i.

  DESCRIBE TABLE itab_insumo LINES v_linha_102.

  tc_insumo-lines = v_linha_102 + 20.

ENDMODULE.

MODULE tela_102 OUTPUT.

  IF NOT /pws/zycie433-matnr IS INITIAL.

    LOOP AT SCREEN.

      IF screen-name EQ '/PWS/ZYCIE433-MATNR'.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342TOP

 

...

        INCLUDE STRUCTURE /pws/zycit433.

DATA: END OF itab_zycit433_d.

DATA: BEGIN OF itab_zycit433_s OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: END OF itab_zycit433_s.

DATA: BEGIN OF itab_grupo OCCURS 0.

DATA: grupo   TYPE /pws/zycit433-grupo  ,

      desc_g  TYPE /pws/zycit433-desc_g ,

      j_1bnbm TYPE /pws/zycit433-j_1bnbm,

      meins   TYPE /pws/zycit433-meins  ,

* >> Início da exclusão:

      mark    TYPE c                    .

* << Fim da exclusão

* >> Início da inclusão:

      mark    TYPE c                    ,

      nritem  type /pws/zycit433-nritem .

* << Fim da inclusão

DATA: END OF itab_grupo.

DATA: BEGIN OF itab_insumo OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: mark  TYPE c             .

DATA: END OF itab_insumo.

DATA: v_ini        TYPE c                      ,

      v_mark       TYPE c                      ,

      v_okcode     TYPE sy-ucomm               ,

      v_tela(4)    TYPE c VALUE '0101'         ,

      wa_zycit433  type /pws/zycit433          ,

...

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIE433

 

Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo

 

MANDT      MANDT                   CLNT     3

MATNR      MATNR      MARA         CHAR    18

MATNR_ALT  MATNR      MARA         CHAR    18

GRUPO      CHAR4                   CHAR     4

ITEM       NUMC4                   NUMC     4

* >> Início da inclusão: /PWS/ZYCIE433

NRITEM     NUMC4                   NUMC     4

* << Fim da inclusão

DESC_G     MAKTX                   CHAR    40

J_1BNBM    J_1BNBMCO1 T604F        CHAR    16

MEINS      MEINS      T006         UNIT     3

MAKTX      MAKTX                   CHAR    40

DTDE       DATUM                   DATS     8

DTATE      DATUM                   DATS     8

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT433

 

Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo

 

MANDT          MANDT                   CLNT     3

MATNR          MATNR      MARA         CHAR    18

MATNR_ALT      MATNR      MARA         CHAR    18

GRUPO          CHAR4                   CHAR     4

ITEM           NUMC4                   NUMC     4

* >> Início da inclusão: /PWS/ZYCIT433

NRITEM         NUMC4                   NUMC     4

* << Fim da inclusão

DESC_G         MAKTX                   CHAR    40

J_1BNBM        J_1BNBMCO1 T604F        CHAR    16

MEINS          MEINS      T006         UNIT     3

MAKTX          MAKTX                   CHAR    40

DTDE           DATUM                   DATS     8

DTATE          DATUM                   DATS     8