CE PLUS - Nota 002291

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DA

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

Data/Hora Última Alteração: 20/06/2011 12:52:40

Descrição da Nota: AJUSTES FEITOS NA DA PARA TRATAMENTO DE CENTROS DIFERENTES

Sintoma

Ajustes feitos na DA para tratamento de Centros diferentes e controle de lote por pedido e item.

 

 

Solução

Desenvolvimento adicional

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DESEMVOLVIMENTO DA DECLARAÇÃO DE ADMISSÃO (DA)

DA: Nº DO BL

A PASTA DE LOTE DO FORNECEDOR TEM PEDIDO/ITEM NA DA QUANDO FOR REGIME 02

AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.

AJUSTES CONSISTÊNCIAS ITENS NA DA, FECHAMENTO DE PASTAS

INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.

Informações Complementares

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

Nota Número 02291 Data: 20/10/2006 Hora: 21:47:31

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

 

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

Nota Número              : 02291

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00025

Agrupamento              : 00136

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

Referência às notas relacionadas:

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

 

01282  - 00001 - 6.0    - 00023  - DESEMVOLVIMENTO DA DECLARAÇÃO DE ADMISSÃO (DA)

01323  - 00003 - 6.0    - 00023  - DECLARAÇÃO DE ADMISSÃO PARA ENTREPOSTO ADUANEIRO

01350  - 00002 - 6.0    - 00023  - AJUSTES DE CAMPOS E CONSISTÊNCIAS NO EMBARQUE DE NACIONALIZAÇÃO.

01450  - 00004 - 6.0    - 00023  - INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.

01806  - 00005 - 6.0    - 00024  - DA: Nº DO BL

02122  - 00006 - 6.0    - 00024  - AJUSTES CONSISTÊNCIAS ITENS NA DA, FECHAMENTO DE PASTAS

02153  - 00007 - 6.0    - 00025  - A PASTA DE LOTE DO FORNECEDOR TEM PEDIDO/ITEM NA DA QUANDO FOR RE

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

AJUSTES FEITOS NA DA PARA TRATAMENTO DE CENTROS DIFERENTES

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

Palavras Chave:

DA - CENTROS DIFERENTES - PEDIDO E ITEM - ALTERAÇÃO DE CENTROS

EMBARQUE - LOTES

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

Objetos da nota:

CUAD /PWS/SAPMZYCI070

DYNP /PWS/SAPMZYCI070                        0160

DYNP /PWS/SAPMZYCI070                        0220

MERG F6DK937887 20061018 164956 PWSCI

MERG F6DK937887 20061020 214652 PWSCI

MERG F6DK937975 20061018 165003 PWSCI

MERG F6DK938031 20061018 165011 PWSCI

MERG F6DK938031 20061020 214702 PWSCI

MERG F6DK938284 20061018 165018 PWSCI

MERG F6DK938284 20061020 214709 PWSCI

REPS /PWS/MZYCI070F01

REPS /PWS/MZYCI070F03

REPS /PWS/MZYCI070F05

REPS /PWS/MZYCI070I01

REPS /PWS/MZYCI070O01

REPS /PWS/MZYCI070X01

REPT /PWS/SAPMZYCI070

TABD /PWS/ZYCIT467

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCI070

Status               Tipo Code de objeto       Code de objeto            Descrição

 

0151                 D    000014               000014               0001 Botoes

0152                 D    000016               000016               0001 CI - Transferência de Saldo

 

Code de objeto       Code Item Tecla de função                Código de função     Id   Exibição

Texto de ícones

 

000014               0001 01   F8                             EXEC

 

 

 informativo  Botões CI - Transferência de Saldo

 

Code de objeto       Code Item Tecla de função                Código de função     Id   Exibição

Texto de ícones

 

000016               0001 01   F8                             EXEC

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI070                        0160

 

*Diferenças na lista de elementos

   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

 

*de:

+  TC_DESP

      Tabel      1        2     106     106      12

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

      TabEntr., Com título, LSep.horiz., LnhSep.vert.

 

*para:

 

+  TC_DESP

      Tabel      1        2     106     106      12

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

      TabEntr., Com título, LSep.horiz., LnhSep.vert.

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI070                        0150

 

*OS SEGUINTES CAMPOS FORAM INSERIDOS

   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

 

   BTNT0150_06

      Push       1       16      30       2       1     CHAR

                                                    CRIA

      Ícn.=ICON_CREATE

   BTNT0150_07

      Push       1       19      22       2       1     CHAR

                                                    TRAN

      Ícn.=ICON_SYSTEM_UNDO

 - /PWS/ZYCIE443A-WERKS

      Texto      1        5      15       4       1     CHAR      X    2

                               WRK

      Título de coluna TC

 - /PWS/ZYCIE443A-WERKS

      I/O        1        5       4       4       1     CHAR   X               Off

                               WRK

      Botão EntrsPoss.stand., Elem.TC, Col.fixa TC

 

*OS SEGUINTES CAMPOS FORAM MODIFICADOS

 

 

*DE:

 

 

 

+  TC_ITEM

      Tabel      2        1     120     120      17

      Seleção linha=Múltipla, Seleção coluna=Múltipla

      TabEntr., Com título, Coluna marc., LSep.horiz., LnhSep.vert.

 - /PWS/ZYCIE443A-NRSEQ

      Texto      1        1       8      10       1     CHAR      X    F

                               /PWS/ZYCIP001

      Título de coluna TC, Col.fixa TC

 - /PWS/ZYCIE443A-QTD_ITEN

      Texto      1        5      10      14       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 

 - TXT02

      Texto      1        6       7      13       1     CHAR

      Título de coluna TC

 - TXT01

      Texto      1        7      11      12       1     CHAR

      Título de coluna TC

 - /PWS/ZYCIE443A-J_1BNBM

      Texto      1        8       3      11       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 - TXT03

      Texto      1        9      10      17       1     CHAR

      Título de coluna TC

 - /PWS/ZYCIE443A-LIFNR

      Texto      1       10      15      10       1     CHAR      X    F

                               LIF

      Título de coluna TC, Col.fixa TC

 - /PWS/ZYCIE443A-NRSEQ

      I/O        1        1      10      10       1     CHAR   X               Off

                       SPA GPA /PWS/ZYCIP001

      Dest, Elem.TC, Col.fixa TC

 - /PWS/ZYCIE443A-QTD_ITEN

      I/O        1        5      19      14       1     DEC    X               Off S.Sd

      Alinh.à dir., Elem.TC, Col.fixa TC

 - V_QTD_DA

      I/O        1        6      19      13       1     DEC                    Off

      AC

      Alinh.à dir., Elem.TC, Col.fixa TC

 - V_SALDO_DA

      I/O        1        7      19      12       1     DEC                    Off S.Sd

      Alinh.à dir., PossRol, Elem.TC, Col.fixa TC

 - /PWS/ZYCIE443A-J_1BNBM

      I/O        1        8      16      11       1     CHAR   X               Off S.Sd

      PossRol, Elem.TC, Col.fixa TC

 - V_VLREAL

      I/O        1        9      26      17       1     DEC                    Off

      AC

      Alinh.à dir., Elem.TC, Col.fixa TC

 - /PWS/ZYCIE443A-LIFNR

      I/O        1       10      10      10       1     CHAR   X               Off S.Sd

                       SPA GPA LIF

      Botão EntrsPoss.stand., Elem.TC, Col.fixa TC

      Saída de conversão=ALPHA

 

 

*PARA:

 

 

+  TC_ITEM

      Tabel      2        1     117     117      17

      Seleção linha=Múltipla, Seleção coluna=Múltipla

      TabEntr., Com título, Coluna marc., LSep.horiz., LnhSep.vert.

 - /PWS/ZYCIE443A-NRSEQ

      Texto      1        1       8       4       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 - /PWS/ZYCIE443A-QTD_ITEN

      Texto      1        6      10      14       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 - TXT02

      Texto      1        7       7      13       1     CHAR

      Título de coluna TC

 - TXT01

      Texto      1        8      11      12       1     CHAR

      Título de coluna TC

 - /PWS/ZYCIE443A-J_1BNBM

      Texto      1        9       3      11       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 - TXT03

      Texto      1       10      10      17       1     CHAR

      Título de coluna TC

 - /PWS/ZYCIE443A-LIFNR

      Texto      1       11      15      10       1     CHAR      X    F

      Título de coluna TC, Col.fixa TC

 - /PWS/ZYCIE443A-NRSEQ

      I/O        1        1      10       4       1     CHAR   X               Off

                       SPA GPA /PWS/ZYCIP001

      Dest, PossRol, Elem.TC, Col.fixa TC

 - /PWS/ZYCIE443A-EBELN

      I/O        1        2      10      10       1     CHAR   X               Off

                       SPA GPA BES

      Dest, Botão EntrsPoss.stand., Elem.TC, Col.fixa TC

      Saída de conversão=ALPHA

 - V_QTD_DA

      I/O        1        7      19      13       1     DEC                    Off

      AC

      Alinh.à dir., Elem.TC

 - V_SALDO_DA

      I/O        1        8      19      12       1     DEC                    Off S.Sd

      Alinh.à dir., PossRol, Elem.TC

 - /PWS/ZYCIE443A-J_1BNBM

      I/O        1        9      16      11       1     CHAR   X               Off S.Sd

      PossRol, Elem.TC

 - V_VLREAL

      I/O        1       10      26      17       1     DEC                    Off

      AC

      Alinh.à dir., Elem.TC

 - /PWS/ZYCIE443A-LIFNR

      I/O        1       11      10      10       1     CHAR   X               Off S.Sd

                       SPA GPA LIF

      Botão EntrsPoss.stand., Elem.TC

      Saída de conversão=ALPHA

 

      OK

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI070                        0151

 

*download de tela 151

 

*<<Inicio Download

 

****************************************************************

*   THIS FILE IS GENERATED BY THE SCREEN PAINTER.              *

*   NEVER CHANGE IT MANUALLY, PLEASE !                         *

****************************************************************

%_DYNPRO

/PWS/SAPMZYCI070

0151

46C

             40

%_HEADER

/PWS/SAPMZYCI070                        0151 0151     18 77192 35  0  0 27120  0G P

20061021154248

%_DESCRIPTION

Criar Item de Pedido

%_FIELDS

V_CENTRO_

0CHAR 140000003000  3  4   0  0  0     0                             0  0

Centro_do_Item

X

V_CENTRO

CCHAR  48000800000  3 24   0  0  0     0                             0  0

____

TC_LOTE_AUX

75F5C0000000  5  4E101  1  1    14T                            0  0

PED

0CHAR  60000003080  1  1T101  1  1    10                             0  0

Pedido

ITEM

0CHAR  40000003080  1  2T101  1  1     5                             0  0

Item

LOTE

0CHAR  40000003080  1  3T101  1  1    15                             0  0

Lote

SALDO

0CHAR  50000003080  1  4T101  1  1    18                             0  0

Saldo

QTD

0CHAR 100000003080  1  5T101  1  1    18                             0  0

Quantidade

ITAB_LOTE_AUX-EBELN

CCHAR 108100803000  1  1T101  1  1    10                             0  0

__________

ITAB_LOTE_AUX-EBELP

NNUMC  58100803000  1  2T101  1  1     5                             0  0

_____

ITAB_LOTE_AUX-LOTE_FORN

CCHAR 158100803000  1  3T101  1  1    15                             0  0

_______________

ITAB_LOTE_AUX-QTD_LOTE

PDEC  188000803000  1  4T101  1  1    18                             0  0

__________________

ITAB_LOTE_AUX-QTD_LOTE_DIF

PDEC  188000800000  1  5T101  1  1    18                             0  0

__________________

OKCODE

CHAR 208010000000255  1O  0  0  0     0                             0  0

____________________

%_FLOWLOGIC

PROCESS BEFORE OUTPUT.

 MODULE STATUS_0151.

 

 LOOP AT itab_lote_aux with control tc_lote_aux

   CURSOR tc_lote-current_line.

 

 endloop.

 

*

PROCESS AFTER INPUT.

 

 LOOP AT itab_lote_aux.

   module altera_itab_lote_aux.

 endloop.

 

  MODULE USER_COMMAND_0151.

%_PARAMS

 

 

*<<Fim download

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI070                        0152

 

 

*download de tela 152

 

*<<Inicio download

 

****************************************************************

*   THIS FILE IS GENERATED BY THE SCREEN PAINTER.              *

*   NEVER CHANGE IT MANUALLY, PLEASE !                         *

****************************************************************

%_DYNPRO

/PWS/SAPMZYCI070

0152

46C

             40

%_HEADER

/PWS/SAPMZYCI070                        0152 0152     16 75192 35  0  0 27120  0G P

20061021154334

%_DESCRIPTION

Criar Item de Pedido

%_FIELDS

TC_LOTE_AUX2

73F5C0000000  3  4E101  1  1    14T                            0  0

PED

0CHAR  60000003080  1  1T101  1  1    10                             0  0

Pedido

ITEM

0CHAR  40000003080  1  2T101  1  1     5                             0  0

Item

LOTE

0CHAR  40000003080  1  3T101  1  1    15                             0  0

Lote

SALDO

0CHAR  50000003080  1  4T101  1  1    18                             0  0

Saldo

QTD

0CHAR 100000003080  1  5T101  1  1    18                             0  0

Quantidade

ITAB_LOTE_AUX-EBELN

CCHAR 108100803000  1  1T101  1  1    10                             0  0

__________

ITAB_LOTE_AUX-EBELP

NNUMC  58100803000  1  2T101  1  1     5                             0  0

_____

ITAB_LOTE_AUX-LOTE_FORN

CCHAR 158100803000  1  3T101  1  1    15                             0  0

_______________

ITAB_LOTE_AUX-QTD_LOTE

PDEC  188000803000  1  4T101  1  1    18                             0  0

__________________

ITAB_LOTE_AUX-QTD_LOTE_DIF

PDEC  188000800000  1  5T101  1  1    18                             0  0

__________________

OKCODE

CHAR 208010000000255  1O  0  0  0     0                             0  0

____________________

%_FLOWLOGIC

PROCESS BEFORE OUTPUT.

 MODULE STATUS_0152.

 

 LOOP AT itab_lote_aux with control tc_lote_aux2

   CURSOR tc_lote_aux2-current_line.

 

 endloop.

 

*

PROCESS AFTER INPUT.

 

 LOOP AT itab_lote_aux.

   module altera_itab_lote_aux2.

 endloop.

 

  MODULE USER_COMMAND_0152.

 

%_PARAMS

 

 

 

*<<Fim download

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI070                        0220

 

 

*download de tela 220

 

*<<Inicio Download

 

****************************************************************

*   THIS FILE IS GENERATED BY THE SCREEN PAINTER.              *

*   NEVER CHANGE IT MANUALLY, PLEASE !                         *

****************************************************************

%_DYNPRO

/PWS/SAPMZYCI070

0220

46C

             40

%_HEADER

/PWS/SAPMZYCI070                        0220I0220     13115192 35  0  0 27120  0G P

20061020162937

%_DESCRIPTION

CI - Informações de Lotes

%_FIELDS

BTNT220_01

CHAR 210000003000  1  4   0  0  0     2P                            0  0102

@18\QElimina_itens@__

DELP

BTNT220_02

CHAR  40000003000  1  7   0  0  0     2P                            0  0103

@4B@

MARC

BTNT220_03

CHAR  60000003000  1 10   0  0  0     2P                            0  0104

@4D@__

DESM

TC_LOTE

113F9F8000000  2  4E101  1  1    12T                            0  0

/PWS/ZYCIE463-EBELN

0CHAR  63000003080  1  1T101  1  1    10                             0  0

Pedido

/PWS/ZYCIE463-EBELP

0CHAR  43000003080  1  2T101  1  1     6                             0  0

Item

/PWS/ZYCIE463-LOTE_FORN

2CHAR 153000003080  1  3T101  1  1    15                             0  0

Lote_fornecedor

/PWS/ZYCIE463-NUMFATURA

2CHAR 123000003080  1  4T101  1  1    17                             0  0

Nº_da_Fatura

/PWS/ZYCIE463-MATNR

2CHAR 153000003080  1  5T101  1  1    18                             0  0

Material_______

/PWS/ZYCIE463-QTD_LOTE

0CHAR 183000003080  1  6T101  1  1    18                             0  0

Quantidade_do_lote

/PWS/ZYCIE463-DT_FABRICACAO

2CHAR 183000003080  1  7T101  1  1    11                             0  0

Data_da_Fabricação

/PWS/ZYCIE463-DT_VALIDADE

2CHAR 163000003080  1  8T101  1  1    10                             0  0

Data_de_Validade

V_PRAZO

0CHAR 210000003080  1  9T101  1  1     4                             0  0

Prazo_para_vencimento

/PWS/ZYCIE463-QTD_NAC

0CHAR 243000003080  1 10T101  1  1    18                             0  0

Quantidade_Nacionalizada

V_MARK

CHAR  18000800020  1  0T101  1  1     1C                            0  0105

_

/PWS/ZYCIE463-EBELN

CCHAR 10A000807008  1  1T101  1  1    10  BES                 ALPHA 10  0

AC          __________

X

/PWS/ZYCIE463-EBELP

NNUMC  5A000807008  1  2T101  1  1     6  BSP                        5  0

AC          _____

/PWS/ZYCIE463-LOTE_FORN

CCHAR 15A000807000  1  3T101  1  1    15                            15  0

AC          _______________

/PWS/ZYCIE463-NUMFATURA

CCHAR 20A100807000  1  4T101  1  1    17                            20  0

AC          ____________________

/PWS/ZYCIE463-MATNR

CCHAR 18A100807000  1  5T101  1  1    18  MAT                 MATN1 18  0

AC          __________________

X

/PWS/ZYCIE463-QTD_LOTE

PQUAN 18A020907000  1  6T101  1  1    18                            13  3   /PWS/ZYCIT443-MEINS

AC          _.___.___.___,___V

/PWS/ZYCIE463-DT_FABRICACAO

DDATS 10A000807008  1  7T101  1  1    11                             8  0

AC          __________

X

/PWS/ZYCIE463-DT_VALIDADE

DDATS 10A000807008  1  8T101  1  1    10                             8  0

AC          __________

X

V_PRAZO

NNUMC  48020803000  1  9T101  1  1     6                             0  0

____

/PWS/ZYCIE463-QTD_NAC

PQUAN 18B020907000  1 10T101  1  1    18                            13  3   /PWS/ZYCIT443-MEINS

_.___.___.___,___V

 

CHAR 208010080000255  1O  0  0  0     0                             0  0

____________________

%_FLOWLOGIC

 

PROCESS BEFORE OUTPUT.

 

  MODULE: set_screen.

 

  MODULE: define_linhas_lote.

  MODULE SET_STATUS_ITEM.

 

  LOOP AT itab_lote with control tc_lote CURSOR tc_lote-current_line.

 

    MODULE: set_status_lote.

 

 

 

    MODULE: carrega_estrutura_lote.

    module  set_screen_lines.

  ENDLOOP.

 

 

PROCESS AFTER INPUT.

  LOOP AT itab_lote.

 

 

    CHAIN.

      FIELD: /pws/zycie463-ebeln,

             /pws/zycie463-ebelp

        MODULE valida_pedido ON INPUT.

    ENDCHAIN.

 

 

    FIELD /pws/zycie463-numfatura

      MODULE valida_fatura ON INPUT.

 

    CHAIN.

      FIELD /pws/zycie463-matnr

 

 

        MODULE valida_material.

 

 

    ENDCHAIN.

 

 

    FIELD /pws/zycie463-dt_fabricacao

      MODULE valida_data_fabricacao ON INPUT.

 

    FIELD /pws/zycie463-dt_validade

      MODULE valida_data_validade ON INPUT.

 

    field /PWS/ZYCIE463-LOTE_FORN

      module valida_lote  on CHAIN-REQUEST.

 

 

 

    MODULE carrega_tabela_lote.

  ENDLOOP.

 

  MODULE valida_quantidade.

 

 

  MODULE user_command_0220.

 

 

PROCESS ON VALUE-REQUEST.

 

  FIELD /pws/zycie463-ebeln

    MODULE matchcode_pedido.

 

  FIELD /pws/zycie463-ebelp

    MODULE matchcode_item.

 

 

 

%_PARAMS

 

 

*<<Fim download

 

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

Modificações efetuadas em REPS /PWS/MZYCI070F01

 

...

ENDFORM.

FORM save_data.

  DATA v_itseqda   TYPE /pws/zycie455-itseqda.

  DATA v_nrseqlote TYPE /pws/zycie463-nrseqlote.

  DATA vl_erro.

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

  DATA v_matnr TYPE ekpo-matnr.

* << Fim da inclusão

  LOOP AT itab_it WHERE qtd_da IS initial.

    EXIT.

  ENDLOOP.

  IF sy-subrc EQ 0.

    MESSAGE i104 WITH text-492 text-493.

...

 

...

    IF NOT vl_erro IS INITIAL.

      MESSAGE e013 WITH text-455.

    ENDIF.

  ENDIF.

  PERFORM verifica_nrdi.

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

  CLEAR v_erro_lote.

* << Fim da inclusão

  LOOP AT itab_zycit463.

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

    CLEAR v_erro_lote.

* << Fim da exclusão

    CLEAR itab_it.

...

 

...

      MESSAGE i015 WITH text-489

                        itab_zycit463-ebeln

                        itab_zycit463-ebelp

                        text-490.

      v_erro_lote = 'S'.

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

      EXIT.

    ENDIF.

    IF itab_zycit463-lote_forn IS INITIAL.

      v_erro_lote = 'X'.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  IF v_erro_lote = 'S'.

    EXIT.

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

  ELSEIF v_erro_lote = 'X'.

    MESSAGE i015 WITH text-506.

    EXIT.

* << Fim da inclusão

  ENDIF.

  CLEAR: v_qtd_lote.

  LOOP AT itab_it.

    ON CHANGE OF itab_it-ebeln

              OR itab_it-ebelp.

...

 

...

    LOOP AT itab_lote WHERE ebeln EQ itab_it-ebeln

                      AND   ebelp EQ itab_it-ebelp.

      v_qtd_lote = v_qtd_lote + itab_lote-qtd_lote.

    ENDLOOP.

    IF v_qtd_lote GT itab_it-qtd_da.

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

      MESSAGE s039 WITH text-498.

* << Fim da exclusão

      v_erro_lote = 'S'.

    ENDIF.

  ENDLOOP.

  IF v_erro_lote = 'S'.

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

    MESSAGE i039 WITH text-498.

    EXIT.

  ENDIF.

  IF /pws/zycie442-codreg EQ '02'.

    READ TABLE itab_it INDEX 1.

    v_matnr = itab_it-matnr.

    LOOP AT itab_it WHERE matnr NE v_matnr.

    ENDLOOP.

    IF sy-subrc EQ 0.

      MESSAGE i039 WITH text-524.

* << Fim da inclusão

    EXIT.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  IF v_dit = 'N'.

    IF NOT /pws/zycie442-waersfob IS INITIAL.

      PERFORM: taxa_converte

        USING    /pws/zycie442-waersfob

                 /pws/zycie442-dttax

...

 

...

    MODIFY /pws/zycit453 FROM TABLE itab_zycit453.

    DELETE FROM /pws/zycit454 WHERE nrseqda = /pws/zycie442-nrseqda.

    MODIFY /pws/zycit454 FROM TABLE itab_zycit454.

    DELETE FROM /pws/zycit460 WHERE nrseqda = /pws/zycie442-nrseqda.

    MODIFY /pws/zycit460 FROM TABLE itab_zycit460.

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

    LOOP AT itab_zycit463.

      CLEAR /pws/zycit463.

      /pws/zycit463-mandt         = sy-mandt.

      /pws/zycit463-nrseqda       = itab_zycit463-nrseqda.

      /pws/zycit463-nrseqlote     = itab_zycit463-nrseqlote.

      /pws/zycit463-ebeln         = itab_zycit463-ebeln.

      /pws/zycit463-ebelp         = itab_zycit463-ebelp.

      /pws/zycit463-lote_forn     = itab_zycit463-lote_forn.

      /pws/zycit463-numfatura     = itab_zycit463-numfatura.

      /pws/zycit463-matnr         = itab_zycit463-matnr.

      /pws/zycit463-qtd_lote      = itab_zycit463-qtd_lote.

      /pws/zycit463-dt_validade   = itab_zycit463-dt_validade.

      /pws/zycit463-dt_fabricacao = itab_zycit463-dt_fabricacao.

      SELECT SINGLE qtd_nac

             INTO   /pws/zycit463-qtd_nac

             FROM   /pws/zycit463

             WHERE  nrseqda   EQ itab_zycit463-nrseqda

             AND    nrseqlote EQ itab_zycit463-nrseqlote.

      MODIFY /pws/zycit463.

    ENDLOOP.

* << Fim da exclusão

    LOOP AT itab_del.

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

      DELETE FROM /pws/zycit463 WHERE nrseqda EQ itab_del-nrseqda

                                AND   ebeln   EQ itab_del-ebeln

                                AND   ebelp   EQ itab_del-ebelp.

* << Fim da exclusão

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

      DELETE itab_zycit463 WHERE nrseqda = itab_del-nrseqda

                           AND   ebeln   = itab_del-ebeln

                           AND   ebelp   = itab_del-ebelp.

* << Fim da inclusão

    ENDLOOP.

    LOOP AT itab_lote_del.

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

      DELETE FROM /pws/zycit463 WHERE nrseqda EQ itab_lote_del-nrseqda

                                AND   ebeln   EQ itab_lote_del-ebeln

                                AND   ebelp   EQ itab_lote_del-ebelp.

* << Fim da exclusão

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

      DELETE itab_zycit463 WHERE nrseqda = itab_lote_del-nrseqda

                           AND   ebeln   = itab_lote_del-ebeln

                           AND   ebelp   = itab_lote_del-ebelp

                           AND  nrseqlote = itab_lote_del-nrseqlote.

* << Fim da inclusão

    ENDLOOP.

    DELETE FROM /pws/zycit464 WHERE nrseqda = /pws/zycie442-nrseqda.

    MODIFY /pws/zycit464 FROM TABLE itab_zycit464.

    REFRESH: itab_zycit049di2, itab_zycit049di.

    LOOP AT itab_zycit049.

...

 

...

  REFRESH: itab_zycit443.

  IF v_embimp IS INITIAL.

    DELETE FROM /pws/zycit014 WHERE nrseq   = /pws/zycie442-nrseqda.

    MODIFY /pws/zycit014 FROM TABLE itab_zycit014.

  ENDIF.

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

  CLEAR:   itab_zycit463.

  REFRESH: itab_zycit463.

  LOOP AT itab_lote.

    v_tabix = sy-tabix.

    CLEAR itab_zycit463.

    itab_zycit463-mandt         = sy-mandt.

    itab_zycit463-nrseqda       = itab_lote-nrseqda.

    itab_zycit463-nrseqlote     = itab_lote-nrseqlote.

    itab_zycit463-ebeln         = itab_lote-ebeln.

    itab_zycit463-ebelp         = itab_lote-ebelp.

    itab_zycit463-lote_forn     = itab_lote-lote_forn.

    itab_zycit463-numfatura     = itab_lote-numfatura.

    itab_zycit463-matnr         = itab_lote-matnr.

    itab_zycit463-qtd_lote      = itab_lote-qtd_lote.

    itab_zycit463-dt_validade   = itab_lote-dt_validade.

    itab_zycit463-dt_fabricacao = itab_lote-dt_fabricacao.

    IF itab_zycit463-nrseqlote IS INITIAL.

      LOOP AT itab_zycit463 INTO itab_zycit463a

        WHERE NOT nrseqlote IS initial.

        IF v_nrseqlote LT itab_zycit463a-nrseqlote.

          v_nrseqlote = itab_zycit463a-nrseqlote.

        ENDIF.

      ENDLOOP.

      itab_zycit463-nrseqlote = v_nrseqlote + 1.

    ENDIF.

    SELECT SINGLE qtd_nac

           INTO   itab_zycit463-qtd_nac

           FROM   /pws/zycit463

           WHERE  nrseqda   EQ itab_lote-nrseqda

           AND    nrseqlote EQ itab_zycit463-nrseqlote.

    itab_lote-qtd_nac = itab_zycit463-qtd_nac.

    MODIFY itab_lote INDEX v_tabix.

    APPEND itab_zycit463.

  ENDLOOP.

  LOOP AT itab_zycit463.

    DELETE FROM /pws/zycit463 WHERE nrseqda EQ itab_zycit463-nrseqda

                              AND   ebeln   EQ itab_zycit463-ebeln

                              AND   ebelp   EQ itab_zycit463-ebelp.

  ENDLOOP.

* << Fim da exclusão

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

  DELETE FROM /pws/zycit463 WHERE nrseqda = /pws/zycie442-nrseqda.

* << Fim da inclusão

  MODIFY /pws/zycit463 FROM TABLE itab_zycit463.

  LOOP AT itab_it.

    MOVE-CORRESPONDING itab_it TO itab_zycit003.

    APPEND itab_zycit003.

    MOVE-CORRESPONDING itab_it TO itab_zycit455.

...

 

...

      itab_zycit455-itseqda = v_itseqda + 1.

    ENDIF.

    APPEND itab_zycit455.

    MOVE-CORRESPONDING itab_it TO itab_zycit443.

    APPEND itab_zycit443.

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

  ENDLOOP.

  MODIFY /pws/zycit443 FROM TABLE itab_zycit443.

  CLEAR   itab_zycit455a.

  REFRESH itab_zycit455a.

  SELECT *

         INTO  TABLE itab_zycit455a

         FROM  /pws/zycit455

         FOR ALL ENTRIES IN itab_it

         WHERE nrseqda EQ itab_it-nrseqda

         AND   ebeln   EQ itab_it-ebeln

         AND   ebelp   EQ itab_it-ebelp.

  LOOP AT itab_zycit455a.

    IF NOT itab_zycit455a-nrseq IS INITIAL.

      itab_zycit455-nrseq = itab_zycit455a-nrseq.

      MODIFY itab_zycit455 TRANSPORTING nrseq

                         WHERE nrseqda = itab_zycit455a-nrseqda

                           AND ebeln   = itab_zycit455a-ebeln

                           AND ebelp   = itab_zycit455a-ebelp.

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

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

  MODIFY /pws/zycit443 FROM TABLE itab_zycit443.

* << Fim da exclusão

  MODIFY /pws/zycit455 FROM TABLE itab_zycit455.

...

 

...

           itab_zycit453a,

           itab_zycit454a,

           itab_zycit460a,

           itab_zycit463a,

           itab_zycit464a,

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

           itab_zycit200a.

* << Fim da exclusão

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

           itab_zycit200a,

itab_lote_del.

* << Fim da inclusão

  REFRESH: itab_zycit444a,

           itab_zycit445a,

           itab_zycit447a,

           itab_zycit448a,

           itab_zycit443a,

...

 

...

           itab_zycit453a,

           itab_zycit454a,

           itab_zycit460a,

           itab_zycit463a,

           itab_zycit464a,

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

           itab_zycit200a.

* << Fim da exclusão

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

           itab_zycit200a,

           itab_lote_del.

* << Fim da inclusão

  MOVE:    itab_zycit444[] TO itab_zycit444a[],

           itab_zycit445[] TO itab_zycit445a[],

           itab_zycit447[] TO itab_zycit447a[],

           itab_zycit448[] TO itab_zycit448a[],

           itab_zycit443[] TO itab_zycit443a[],

...

 

...

           /pws/zycie442   TO wa_zycit442.

  PERFORM save_especificacao.

  IF /pws/zycie442-codreg  EQ '04'.

    PERFORM reclassificacao_ia.

  ENDIF.

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

  COMMIT WORK.

* << Fim da inclusão

ENDFORM.

FORM verify_changes.

  DATA v_itseqda   TYPE /pws/zycie455-itseqda.

  DATA v_nrseqlote TYPE /pws/zycie463-nrseqlote.

  CLEAR v_changed.

...

 

...

  CLEAR:   itab_zycit455, itab_zycit463.

  REFRESH: itab_zycit455, itab_zycit463.

  DELETE itab_lote WHERE lote_forn IS initial AND

                         numfatura IS initial AND

                         matnr     IS initial.

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

  SORT itab_zycit463a BY nrseqlote DESCENDING.

  READ TABLE itab_zycit463a INDEX 1.

  v_nrseqlote = itab_zycit463a-nrseqlote.

* << Fim da inclusão

  LOOP AT itab_lote.

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

    CLEAR itab_zycit463.

* << Fim da inclusão

    MOVE-CORRESPONDING itab_lote TO itab_zycit463.

    IF itab_zycit463-nrseqlote IS INITIAL.

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

      LOOP AT itab_zycit463 INTO itab_zycit463a

        WHERE NOT nrseqlote IS initial.

        IF v_nrseqlote LT itab_zycit463a-nrseqlote.

          v_nrseqlote = itab_zycit463a-nrseqlote.

        ENDIF.

      ENDLOOP.

* << Fim da exclusão

      itab_zycit463-nrseqlote = v_nrseqlote + 1.

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

      v_nrseqlote = itab_zycit463-nrseqlote.

* << Fim da inclusão

    ENDIF.

...

 

...

  itab_it-ipi_devido   = a_ipidevi.

  itab_it-ipi_recolher = t_ipirec .

ENDFORM.

FORM loading_all.

  DATA: vl_erro TYPE c.

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

  DATA v_nrseqlote TYPE /pws/zycit463-nrseqlote.

  v_tcode = sy-tcode.

* << Fim da inclusão

  REFRESH itab_it.

  CASE /pws/zycie442-codreg.

    WHEN '02'.

      CLEAR v_embimp.

    WHEN '04'.

...

 

...

  SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455

           WHERE nrseqda = /pws/zycie442-nrseqda.

  MOVE: itab_zycit455[] TO itab_zycit455a[].

  SELECT * FROM /pws/zycit463 INTO TABLE itab_zycit463

           WHERE nrseqda = /pws/zycie442-nrseqda.

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

  REFRESH itab_lote.

  LOOP AT itab_zycit463 WHERE nrseqlote IS initial.

  ENDLOOP.

  IF sy-subrc EQ 0.

    SELECT MAX( nrseqlote )

      INTO (v_nrseqlote)

      FROM /pws/zycit463

      WHERE nrseqda LIKE /pws/zycie442-nrseqda .

    LOOP AT itab_zycit463 WHERE nrseqlote IS initial.

      itab_zycit463-nrseqlote = v_nrseqlote + 1.

      MODIFY itab_zycit463.

      v_nrseqlote = itab_zycit463-nrseqlote.

    ENDLOOP.

  ENDIF.

  DELETE FROM /pws/zycit463 WHERE nrseqda = /pws/zycie442-nrseqda.

  MODIFY /pws/zycit463 FROM TABLE itab_zycit463.

* << Fim da inclusão

  MOVE: itab_zycit463[] TO itab_zycit463a[].

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

  REFRESH itab_lote.

* << Fim da exclusão

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

  IF NOT itab_zycit463[] IS INITIAL.

    SELECT * FROM /pws/zycit467 INTO TABLE itab_zycit467

     FOR ALL ENTRIES IN itab_zycit463

     WHERE nrseqda   EQ itab_zycit463-nrseqda

     AND   nrseqlote EQ itab_zycit463-nrseqlote

     AND   ebeln     EQ itab_zycit463-ebeln

     AND   ebelp     EQ itab_zycit463-ebelp.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit463.

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

    CLEAR itab_zycit463-qtd_nac.

    LOOP AT itab_zycit467 WHERE nrseqda = itab_zycit463-nrseqda

                          AND   nrseqlote EQ itab_zycit463-nrseqlote

                          AND   ebeln     EQ itab_zycit463-ebeln

                          AND   ebelp     EQ itab_zycit463-ebelp.

      itab_zycit463-qtd_nac = itab_zycit463-qtd_nac +

           itab_zycit467-qtd_nac.

    ENDLOOP.

* << Fim da inclusão

    MOVE-CORRESPONDING itab_zycit463 TO itab_lote.

    IF itab_lote-mandt IS INITIAL.

      itab_lote-mandt = sy-mandt.

    ENDIF.

    APPEND itab_lote.

...

 

...

      WHERE nrseq EQ itab_zycit443-nrseq

        AND ebeln EQ itab_zycit443-ebeln

        AND ebelp EQ itab_zycit443-ebelp.

    v_calci = 'S'.

    LOOP AT itab_zycit443.

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

      IF NOT v_tcode EQ '/PWS/ZYCI070_E' .

        CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT013'

             EXPORTING

                  mandt          = sy-mandt

                  ebeln          = itab_zycit443-ebeln

                  ebelp          = itab_zycit443-ebelp

             EXCEPTIONS

                  foreign_lock   = 1

                  system_failure = 2.

        CASE sy-subrc.

          WHEN 1.

            MESSAGE w015 WITH text-504 text-168.

            v_tcode  = '/PWS/ZYCI070_E' .

          WHEN 2.

            MESSAGE a015 WITH text-505.

        ENDCASE.

      ENDIF.

* << Fim da inclusão

      MOVE-CORRESPONDING itab_zycit443 TO itab_it.

      IF itab_it-inco1 IS INITIAL AND

        NOT /pws/zycie442-inco1 IS INITIAL.

        itab_it-inco1 = /pws/zycie442-inco1.

      ENDIF.

...

 

...

  MOVE itab_it[] TO itab_ita[].

  PERFORM atualiza_doccmp.

  v_acto       = 'A'.

  v_txtdisplay = space.

  v_txtsave    = 'X'.

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

  IF sy-tcode EQ '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

  IF v_tcode EQ '/PWS/ZYCI070_E'.

* << Fim da inclusão

    v_acto       = 'E'.

    v_txtdisplay = 'X'.

    v_txtsave    = space.

  ENDIF.

  IF v_dit = 'N'.

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

    IF sy-tcode EQ '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

    IF v_tcode EQ '/PWS/ZYCI070_C'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '01'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '01'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_A'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '02'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '02'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_E'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '03'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

    IF NOT vl_erro IS INITIAL.

      MESSAGE e013 WITH text-226.

    ENDIF.

    CALL SCREEN '0050'.

  ELSE.

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

    IF sy-tcode EQ '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

    IF v_tcode EQ '/PWS/ZYCI070_C'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '01'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '01'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_A'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '02'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '02'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_E'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '03'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

  ENDIF.

ENDFORM.

FORM calc_itab USING value(p_recalc) TYPE char1.

  DATA: v_tipodesp  LIKE /pws/zycit019-tipo,

        v_ternacion LIKE /pws/zycie442-ternacion.

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

  IF wa_zycbt007 IS INITIAL.

    SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007

                    WHERE bukrs EQ /pws/zycie442-bukrs.

  ENDIF.

* << Fim da inclusão

  IF NOT ( v_dit = 'S' AND

     ( /pws/zycie442-meiotransp = 'PS' OR

       /pws/zycie093-meiotransp = 'PS' ) ).

    CLEAR: /pws/zycie442-vlii,

           /pws/zycie442-vlipi, /pws/zycie442-vlicms.

...

 

...

    IF v_sub NE 0.

      MOVE-CORRESPONDING itab_zycit003 TO itab_it.

    ENDIF.

    itab_it-meinscom  = itab_zycit003-meins.

    itab_it-basred    = itab_zycit003-basred.

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

    itab_it-qtd_iten  = itab_zycit003-qtd_iten.

* << Fim da exclusão

    itab_it-vlreal    = itab_zycit003-vlreal.

    itab_it-nrseqda   = /pws/zycie442-nrseqda.

    itab_it-waersreal = wa_zycbt007-waersb.

    itab_it-waersbem = itab_zycit003-waers_real.

    IF itab_it-advalii  IS INITIAL.

...

 

...

      itab_it-advalicms = itab_zycit003-advalicms.

    ELSE.

      itab_itb-advalicms = itab_it-advalicms.

    ENDIF.

    IF v_dit = 'N'.

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

      IF NOT itab_zycit003-qtd_itend IS INITIAL.

        itab_it-qtd_iten = itab_zycit003-qtd_itend.

      ENDIF.

* << Fim da exclusão

      IF itab_it-advalii   IS INITIAL.

        itab_it-advalii   = itab_zycit003-aliqii.

      ENDIF.

      IF itab_it-advalipi  IS INITIAL.

        itab_it-advalipi  = itab_zycit003-aliqipi.

...

 

...

        itab_it-agente = itab_zycit001-agente.

      ELSE.

        itab_it-inco1  = /pws/zycie442-inco1.

        itab_it-agente = /pws/zycie442-agente.

      ENDIF.

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

      IF NOT itab_it-qtd_itencacl IS INITIAL.

        IF itab_it-qtd_itencacl > itab_it-qtd_iten.

         itab_it-qtd_iten     = itab_it-qtd_itencacl - itab_it-qtd_iten.

          itab_it-qtd_itencacl = 0.

          itab_it-cacl         = 'X'.

        ENDIF.

      ENDIF.

* << Fim da exclusão

      READ TABLE itab_zycit263 WITH KEY

           nrseq = itab_it-nrseq

           ebeln = itab_it-ebeln

           ebelp = itab_it-ebelp.

      IF sy-subrc EQ 0.

...

 

...

      LOOP AT itab_it.

        itab_it-dttaxbem = /pws/zycie442-ukursfob.

        itab_it-waersbem = /pws/zycie442-waersfob.

        MODIFY itab_it INDEX sy-tabix TRANSPORTING dttaxbem waersbem.

      ENDLOOP.

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

      IF /pws/zycie442-vlseg IS INITIAL AND sy-tcode = '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

      IF /pws/zycie442-vlseg IS INITIAL AND v_tcode = '/PWS/ZYCI070_C'.

* << Fim da inclusão

        /pws/zycie442-vlseg    = v_tsegfat.

        READ TABLE itab_zycit006 WITH KEY tpfatura = '01'.

        IF sy-subrc EQ 0.

          /pws/zycie442-waersseg = itab_zycit006-waers.

        ENDIF.

...

 

...

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit062

         WHERE regio = v_icms_regio.

  ENDIF.

  PERFORM carrega_incoterm.

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

  PERFORM atualiza_qtd_po.

* << Fim da inclusão

  MOVE itab_it[] TO itab_ita[].

  IF /pws/zycie442-ntgew IS INITIAL.

    /pws/zycie442-ntgew = v_tntgew.

  ENDIF.

  IF /pws/zycie442-gewei_l IS INITIAL.

...

 

...

    ENDLOOP.

    SORT itab_it BY nrseq ebeln ebelp.

    PERFORM calc_itab USING p_recalc.

  ENDIF.

  PERFORM propoe_banco.

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

  PERFORM atualiza_qtd_po.

* << Fim da inclusão

ENDFORM.

FORM update_item.

  IF NOT /pws/zycie001-nrseq IS INITIAL.

    CLEAR:   itab_zycit003.

    REFRESH: itab_zycit003.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI070F03

 

...

      itab_it-qtd_da IS INITIAL AND

      v_dit EQ 'N' AND v_embimp EQ 'X'.

      itab_it-qtd_da = itab_it-qtd_iten.

    ENDIF.

    CLEAR: v_tvaln, v_qtd_iten.

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

    IF itab_it-qtd_itend NE '' AND v_dit = 'N'.

      v_qtd_iten = itab_it-qtd_itend.

    ELSE.

      v_qtd_iten = itab_it-qtd_da.

    ENDIF.

* << Fim da exclusão

    v_tntgew = v_tntgew + itab_it-ntgew.

    v_tot_plan = v_tot_plan + ( v_qtd_iten * itab_it-netpr ).

    v_tmle   = v_tmle   + ( ( v_qtd_iten * itab_it-vlreal ) *

                              itab_it-dttaxbem ).

    IF /pws/zycie442-waersfob NE itab_it-waersbem.

...

 

...

    v_txtdisplay = space.

    v_txtsave    = 'X'.

  ENDIF.

ENDFORM.

FORM comm_dele.

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

  SELECT SINGLE *

         INTO  itab_zycit459

         FROM  /pws/zycit459

         WHERE nrseqda EQ /pws/zycie442-nrseqda

         AND   status  EQ 'A'.

  IF sy-subrc IS INITIAL.

    MESSAGE i015 WITH text-212 text-499.

    EXIT.

  ENDIF.

  SELECT SINGLE *

         INTO  itab_zycit465

         FROM  /pws/zycit465

         WHERE nrseq  EQ /pws/zycie442-nrseqda

         AND   status EQ 'A'.

  IF sy-subrc IS INITIAL.

    MESSAGE i015 WITH text-212 text-500.

    EXIT.

  ENDIF.

  IF NOT /pws/zycie442-statusfin IS INITIAL.

    MESSAGE i015 WITH text-212 text-501.

    EXIT.

  ENDIF.

  LOOP AT itab_zycit455 WHERE

                        nrseqda EQ /pws/zycie442-nrseqda AND

                    NOT nrseq   IS initial.

  ENDLOOP.

  IF sy-subrc IS INITIAL.

    MESSAGE i015 WITH text-212 text-502.

    EXIT.

  ENDIF.

* << Fim da inclusão

  IF NOT /pws/zycie442-dtuserc IS INITIAL.

    IF NOT /pws/zycie442-nrdi IS INITIAL.

      MESSAGE i015 WITH text-029.

    ELSE.

      SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041 WHERE

...

 

...

               /pws/zycie442-waersfob

      CHANGING p_val.

  ENDIF.

ENDFORM.

FORM lock_record.

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

  CHECK sy-tcode = '/PWS/ZYCI070_A' AND

* << Fim da exclusão

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

  CHECK v_tcode = '/PWS/ZYCI070_A' AND

* << Fim da inclusão

        NOT /pws/zycie442-nrseqda IS INITIAL.

  CALL FUNCTION '/PWS/ZYCI_ENQUEUE_ZYCIT442'

       EXPORTING

            nrseqda          = /pws/zycie442-nrseqda

       EXCEPTIONS

...

 

...

  CASE sy-subrc.

    WHEN 1.

      MESSAGE w015 WITH text-229 text-230.

      v_status_s = '0'.

      IF v_dit = 'N'.

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

        sy-tcode = '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

        v_tcode = '/PWS/ZYCI070_E'.

* << Fim da inclusão

        v_acto = 'E'.

      ENDIF.

    WHEN 2.

      MESSAGE a015 WITH text-118.

      v_status_s = '0'.

      IF v_dit = 'N'.

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

        sy-tcode = '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

        v_tcode = '/PWS/ZYCI070_E'.

* << Fim da inclusão

        v_acto = 'E'.

      ENDIF.

  ENDCASE.

ENDFORM.

FORM unlock_record.

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

  IF sy-tcode = '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

  IF v_tcode = '/PWS/ZYCI070_A'.

* << Fim da inclusão

    CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT442'

         EXPORTING

              nrseqda = /pws/zycie442-nrseqda.

  ENDIF.

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

  LOOP AT itab_zycit443.

    CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT013'

         EXPORTING

              mandt = sy-mandt

              ebeln = itab_zycit443-ebeln

              ebelp = itab_zycit443-ebelp.

  ENDLOOP.

* << Fim da inclusão

ENDFORM.

FORM find_region.

  DATA:  local_adrn  LIKE j_1bbranch-adrnr.

  SELECT SINGLE adrnr FROM j_1bbranch INTO local_adrn

          WHERE bukrs  = /pws/zycie442-bukrs AND

                branch = /pws/zycie442-j_1bbranch.

  IF sy-subrc EQ 0.

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

    IF sy-tcode EQ '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

    IF v_tcode EQ '/PWS/ZYCI070_C'.

* << Fim da inclusão

      PERFORM load_para.

    ENDIF.

    SELECT SINGLE region FROM adrc INTO v_region WHERE

           addrnumber = local_adrn.

    IF sy-subrc NE 0.

...

 

...

  ENDIF.

ENDFORM.

FORM propoe_banco.

  IF /pws/zycie442-tpdi EQ 'S'.

  ELSEIF /pws/zycie442-tpdi EQ 'N'.

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

    IF sy-tcode = '/PWS/ZYCI070_C' AND /pws/zycie447a-lifnr IS INITIAL.

* << Fim da exclusão

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

    IF v_tcode = '/PWS/ZYCI070_C' AND /pws/zycie447a-lifnr IS INITIAL.

* << Fim da inclusão

      READ TABLE itab_zycit001 INDEX 1.

      IF sy-subrc = 0.

        SELECT SINGLE * FROM /pws/zycit256 INTO /pws/zycit256

           WHERE nrdespadu EQ itab_zycit001-nrdespadu.

        IF sy-subrc = 0.

...

 

...

            s_pgage = /pws/zycit256-bankl+4(11).

          ENDIF.

          s_pgnom         = /pws/zycit256-descdesp.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode = '/PWS/ZYCI070_A' AND sy-ucomm = 'REFR'.

* << Fim da exclusão

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

    ELSEIF v_tcode = '/PWS/ZYCI070_A' AND sy-ucomm = 'REFR'.

* << Fim da inclusão

      READ TABLE itab_zycit001 INDEX 1.

      IF sy-subrc = 0.

        SELECT SINGLE * FROM /pws/zycit256 INTO /pws/zycit256

           WHERE nrdespadu EQ itab_zycit001-nrdespadu.

        IF sy-subrc = 0.

...

 

...

              ',' sy-sysid            ','

               wa_zycet050-logonbsrv  ','

               wa_zycet050-grpname    ','

               wa_zycet050-tplogonb

     INTO v_param.

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

  IF sy-tcode(5) EQ '/PWS/'.

* << Fim da exclusão

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

  IF v_tcode(5) EQ '/PWS/'.

* << Fim da inclusão

    CONCATENATE v_param

                ','                    'NS'

    INTO v_param.

  ENDIF.

  IF v_string_ex IS INITIAL.

...

 

...

  it_zycit270-programa  =  sy-repid.

  it_zycit270-nrseq     =  /pws/zycie443a-nrseqda.

  it_zycit270-embarca   =  v_embarca.

  it_zycit270-compl     =  v_text.

  it_zycit270-nrseqemb  =  /pws/zycie443a-nrseq.

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

  it_zycit270-tcode     =  sy-tcode.

* << Fim da exclusão

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

  it_zycit270-tcode     =  v_tcode.

* << Fim da inclusão

  it_zycit270-dtestorno =  sy-datum.

  APPEND it_zycit270.

ENDFORM.

FORM executa_fbra USING    p_belnr

                           p_budat.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI070F05

 

...

        v_diff = 'X'.

      ENDLOOP.

    ENDIF.

    CLEAR v_test.

    MOVE itab_zycit003[] TO itab_werks[].

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

    CALL FUNCTION 'CHECK_BUKRS_ML_PRODUCTIVE'

         EXPORTING

              i_bukrs          = /pws/zycie442-bukrs

         IMPORTING

              e_all_productive = v_test.

    IF v_test IS INITIAL.

      MOVE: itab_itens-werks TO v_werks.

      LOOP AT itab_itens

        WHERE werks NE v_werks.

      ENDLOOP.

      IF sy-subrc EQ 0.

        MESSAGE e104 WITH text-398 text-399.

      ENDIF.

      IF NOT itab_werks[] IS INITIAL.

        LOOP AT itab_zycit003

          WHERE werks NE v_werks.

        ENDLOOP.

        IF sy-subrc EQ 0.

          MESSAGE e104 WITH text-398 text-399.

        ENDIF.

      ENDIF.

    ENDIF.

* << Fim da exclusão

    IF NOT t001-land1 EQ 'CL' AND NOT t001-land1 EQ 'AR'.

      IF NOT itab_itens[] IS INITIAL.

        SELECT *

          INTO TABLE itab_t001w

          FROM t001w

...

 

...

  ENDIF.

ENDFORM.

FORM set_status_item.

  DATA w_zycit001 TYPE /pws/zycie001.

  CLEAR v_embnac.

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

  LOOP AT itab_zycit455

    WHERE nrseqda EQ itab_it-nrseqda

      AND nrseq   NE ''

      AND ebeln   EQ itab_it-ebeln

      AND ebelp   EQ itab_it-ebelp

      AND adicao  EQ itab_it-adicao.

    SELECT SINGLE *

      INTO  w_zycit001

      FROM  /pws/zycit001

      WHERE nrseq  EQ itab_zycit455-nrseq

        AND regime EQ '14'.

    IF sy-subrc EQ 0.

      v_embnac = 'X'.

      EXIT.

* << Fim da exclusão

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

IF SY-DYNNR EQ '0220'.

   if not itab_zycit463[] is initial.

      select * from /pws/zycit467 into table itab_zycit467_NAC

      for all entries in itab_zycit463

      where NRSEQDA   eq itab_zycit463-nrseqda

      and   NRSEQLOTE eq itab_zycit463-nrseqlote

      and   EBELN     eq itab_zycit463-ebeln

      and   EBELp     eq itab_zycit463-ebelp.

   endif.

* << Fim da inclusão

    ENDIF.

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

  ENDLOOP.

* << Fim da exclusão

ENDFORM.

...

 

...

    IF v_embnac EQ 'X'.

      EXIT.

    ENDIF.

  ENDLOOP.

ENDFORM.

* >> Início da inclusão:

form copiar_item_DA.

data v_cont1(2) type N.

clear v_cont1.

loop at itab_it where mark = 'X'.

v_cont1 = v_cont1 + 1.

endloop.

if sy-subrc ne 0.

  message i015 with text-507.

elseif v_cont1 > 1.

  message i015 with text-508.

else.

  clear itab_lote_aux.

  refresh itab_lote_aux.

  loop at itab_lote

    where ebeln = itab_it-ebeln and

          ebelp = itab_it-ebelp.

    move-corresponding itab_lote to itab_lote_aux.

    itab_lote_aux-qtd_lote = itab_Lote-qtd_lote - itab_lote-qtd_nac.

    clear itab_lote_aux-qtd_lote_dif.

    if itab_lote-qtd_lote > itab_lote-qtd_nac and

      not  itab_lote-lote_forn is initial.

    append itab_lote_aux.

    endif.

  endloop.

  if itab_lote_aux[] is initial.

    message i015 with text-509 text-510.

  else.

    call screen '0151'.

  endif.

endif.

endform.

form call_BAPI.

data:   v_item          LIKE bapimepoitem-po_item,

        v_ebelp_maior   LIKE /pws/zycit003-ebelp.

  PERFORM limpa_bapi.

  CLEAR   itab_ekpo.

  REFRESH itab_ekpo.

  SELECT ebeln

         ebelp

         loekz

         matnr

         werks

         lgort

         menge

         meins

         elikz

         knttp

         txjcd

         INTO  TABLE itab_ekpo2

         FROM  ekpo

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

  CLEAR   itab_eket.

  REFRESH itab_eket.

  SELECT ebeln

         ebelp

         eindt

         INTO  TABLE itab_eket

         FROM  eket

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

  CLEAR   itab_ekkn.

  REFRESH itab_ekkn.

  SELECT ebeln

         ebelp

         kostl

         INTO  TABLE itab_ekkn

         FROM  ekkn

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

    CLEAR itab_ekpo2.

    READ TABLE itab_ekpo2 WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp.

    bapimepoheader-po_number   = itab_it-ebeln.

    bapimepoheaderx-po_number  = 'X'.

    itab_bapimepoitem-po_item  = itab_it-ebelp.

    IF itab_ekpo2-menge IS INITIAL.

      MESSAGE i013 WITH text-514.

      EXIT.

    ENDIF.

    itab_bapimepoitem-quantity = itab_ekpo2-menge -

                                 v_qtd_it.

    APPEND itab_bapimepoitem.

    CLEAR  itab_bapimepoitem.

    itab_bapimepoitemx-po_item  = itab_it-ebelp.

    itab_bapimepoitemx-po_itemx = 'X'.

    itab_bapimepoitemx-quantity = 'X'.

    APPEND itab_bapimepoitemx.

    CLEAR  itab_bapimepoitemx.

    CLEAR v_ebelp_maior.

    SELECT MAX( ebelp )

           INTO  v_ebelp_maior

           FROM  ekpo

           WHERE ebeln EQ itab_it-ebeln.

    v_item = v_ebelp_maior + 10.

    itab_bapimepoitem-po_item     = v_item.

    itab_bapimepoitem-material    = itab_it-matnr.

    itab_bapimepoitem-ematerial   = itab_it-matnr.

    itab_bapimepoitem-plant       = v_centro.

    itab_bapimepoitem-stge_loc    = itab_ekpo2-lgort.

    itab_bapimepoitem-quantity    = v_qtd_it.

    itab_bapimepoitem-po_unit     = itab_ekpo2-meins.

    itab_bapimepoitem-po_unit_iso = itab_ekpo2-meins.

    itab_bapimepoitem-acctasscat  = itab_ekpo2-knttp.

    itab_bapimepoitem-taxjurcode  = itab_ekpo2-txjcd.

    APPEND itab_bapimepoitem.

    CLEAR  itab_bapimepoitem.

    itab_bapimepoitemx-po_item     = v_item.

    itab_bapimepoitemx-po_itemx    = 'X'.

    itab_bapimepoitemx-material    = 'X'.

    itab_bapimepoitemx-ematerial   = 'X'.

    itab_bapimepoitemx-plant       = 'X'.

    itab_bapimepoitemx-quantity    = 'X'.

    itab_bapimepoitemx-stge_loc    = 'X'.

    itab_bapimepoitemx-po_unit     = 'X'.

    itab_bapimepoitemx-po_unit_iso = 'X'.

    itab_bapimepoitemx-acctasscat  = 'X'.

    itab_bapimepoitemx-taxjurcode  = 'X'.

    APPEND itab_bapimepoitemx.

    CLEAR  itab_bapimepoitemx.

    CLEAR itab_eket.

    READ TABLE itab_eket WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp.

    itab_bapimeposchedule-po_item        = v_item.

    itab_bapimeposchedule-sched_line     = 1.

    itab_bapimeposchedule-del_datcat_ext = 'D'.

    WRITE itab_eket-eindt TO itab_bapimeposchedule-delivery_date.

    itab_bapimeposchedule-stat_date      =

    itab_bapimeposchedule-delivery_date.

    APPEND itab_bapimeposchedule.

    CLEAR  itab_bapimeposchedule.

    itab_bapimeposchedulx-po_item        = v_item.

    itab_bapimeposchedulx-po_itemx       = 'X'.

    itab_bapimeposchedulx-sched_linex    = 'X'.

    itab_bapimeposchedulx-del_datcat_ext = 'X'.

    itab_bapimeposchedulx-delivery_date  = 'X'.

    itab_bapimeposchedulx-stat_date      = 'X'.

    APPEND itab_bapimeposchedulx.

    CLEAR  itab_bapimeposchedulx.

    CLEAR itab_ekkn.

    READ TABLE itab_ekkn WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp.

    itab_bapimepoaccount-po_item    = v_item.

    itab_bapimepoaccount-costcenter = itab_ekkn-kostl.

    APPEND itab_bapimepoaccount.

    CLEAR  itab_bapimepoaccount.

    itab_bapimepoaccountx-po_item    = v_item.

    itab_bapimepoaccountx-po_itemx   = 'X'.

    itab_bapimepoaccountx-costcenter = 'X'.

    APPEND itab_bapimepoaccountx.

    CLEAR  itab_bapimepoaccountx.

    CALL FUNCTION 'BAPI_PO_CHANGE'

         EXPORTING

              purchaseorder = bapimepoheader-po_number

              poheader      = bapimepoheader

              poheaderx     = bapimepoheaderx

         TABLES

              return        = itab_bapiret2

              poitem        = itab_bapimepoitem

              poitemx       = itab_bapimepoitemx

              poschedule    = itab_bapimeposchedule

              poschedulex   = itab_bapimeposchedulx

              poaccount     = itab_bapimepoaccount

              poaccountx    = itab_bapimepoaccountx.

    CLEAR itab_bapiret2.

    DELETE ADJACENT DUPLICATES FROM itab_bapiret2

                    COMPARING  type

                               id

                               number.

    READ TABLE itab_bapiret2 WITH KEY

                             type = 'E'.

    IF sy-subrc IS INITIAL.

      LOOP AT itab_bapiret2 WHERE type EQ 'E'.

        IF itab_bapiret2-id     EQ 'ME' AND

           itab_bapiret2-number EQ '006'.

          MESSAGE i015 WITH text-327

                            itab_bapiret2-message_v1

                            text-328

                            itab_bapiret2-message_v3.

        ELSE.

          MESSAGE i013 WITH itab_bapiret2-message+0(50)

                            itab_bapiret2-message+50(50).

        ENDIF.

      ENDLOOP.

    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

           EXPORTING

                wait = 'X'.

      itab_it-QTD_DA = itab_it-QTD_DA - v_qtd_it.

      modify itab_it transporting QTD_DA where mark = 'X'.

      loop at itab_lote.

        read table itab_lote_aux with key

           ebeln = itab_lote-ebeln

           ebelp = itab_lote-ebelp

           nrseqlote = itab_lote-nrseqlote.

        if sy-subrc = 0.

          itab_lote-qtd_lote

            = itab_lote_aux-qtd_lote - itab_lote_aux-qtd_lote_dif +

            itab_lote-qtd_nac.

          modify itab_lote.

          read table itab_zycit463 with key

             ebeln = itab_lote-ebeln

             ebelp = itab_lote-ebelp

             nrseqlote = itab_lote-nrseqlote.

             if sy-subrc = 0.

               v_tabix = sy-tabix.

               itab_zycit463-qtd_lote = itab_lote-qtd_lote.

               modify itab_zycit463 index v_tabix.

             else.

               move itab_lote to itab_zycit463.

               append itab_zycit463.

             endif.

         endif.

      endloop.

      clear itab_it-mark.

      itab_it-ebelp_ori = itab_it-ebelp.

      itab_it-ebelp = v_item.

      itab_it-qtd_da = v_qtd_it.

      itab_it-werks = v_centro.

      append itab_it.

      loop at itab_lote_aux where qtd_lote_dif > 0.

         move itab_lote_aux to itab_lote.

         itab_lote-qtd_lote = itab_lote_aux-qtd_lote_dif.

         clear itab_lote-qtd_nac.

         itab_lote-ebelp = v_item.

         append itab_lote.

         move itab_lote to itab_zycit463.

         append itab_zycit463.

      endloop.

      perform save_data.

      MESSAGE i086 WITH itab_it-ebeln.

      leave to screen 0.

    ENDIF.

endform.

form limpa_bapi.

  CLEAR: bapimepoheader,

         bapimepoheaderx,

         itab_bapimepoitem,

         itab_bapimepoitemx,

         itab_bapimeposchedule,

         itab_bapimeposchedulx,

         itab_bapimepoaccount,

         itab_bapimepoaccountx,

         itab_bapiret2.

  FREE:  itab_bapimepoitem,

         itab_bapimepoitemx,

         itab_bapimeposchedule,

         itab_bapimeposchedulx,

         itab_bapimepoaccount,

         itab_bapimepoaccountx,

         itab_bapiret2.

endform.

form retorna_saldo.

data v_cont1(2) type N.

clear v_cont1.

loop at itab_it where mark = 'X'.

v_cont1 = v_cont1 + 1.

endloop.

if sy-subrc ne 0.

  message i015 with text-507.

elseif v_cont1 > 1.

  message i015 with text-508.

elseif itab_it-ebelp_ori is initial.

 message i015 with text-516 text-517.

else.

  clear itab_lote_aux.

  refresh itab_lote_aux.

  loop at itab_lote

    where ebeln = itab_it-ebeln and

          ebelp = itab_it-ebelp.

    move-corresponding itab_lote to itab_lote_aux.

    itab_lote_aux-qtd_lote = itab_Lote-qtd_lote - itab_lote-qtd_nac.

    clear itab_lote_aux-qtd_lote_dif.

    if itab_lote-qtd_lote > itab_lote-qtd_nac.

    append itab_lote_aux.

    endif.

  endloop.

  if itab_lote_aux[] is initial.

    message i015 with text-518 text-510.

  else.

    call screen '0152'.

  endif.

endif.

endform.

form call_bapi_saldo.

data:   v_item          LIKE bapimepoitem-po_item,

        v_ebelp_maior   LIKE /pws/zycit003-ebelp.

  PERFORM limpa_bapi.

  CLEAR   itab_ekpo.

  REFRESH itab_ekpo.

  SELECT ebeln

         ebelp

         loekz

         matnr

         werks

         lgort

         menge

         meins

         elikz

         knttp

         txjcd

         INTO  TABLE itab_ekpo2

         FROM  ekpo

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

  CLEAR   itab_eket.

  REFRESH itab_eket.

  SELECT ebeln

         ebelp

         eindt

         INTO  TABLE itab_eket

         FROM  eket

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

  CLEAR   itab_ekkn.

  REFRESH itab_ekkn.

  SELECT ebeln

         ebelp

         kostl

         INTO  TABLE itab_ekkn

         FROM  ekkn

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp.

    CLEAR itab_ekpo2.

    READ TABLE itab_ekpo2 WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp.

    bapimepoheader-po_number   = itab_it-ebeln.

    bapimepoheaderx-po_number  = 'X'.

    itab_bapimepoitem-po_item  = itab_it-ebelp.

    IF itab_ekpo2-menge IS INITIAL.

      MESSAGE i013 WITH text-514.

      EXIT.

    ENDIF.

    itab_bapimepoitem-quantity = itab_ekpo2-menge -

                                 v_qtd_it.

    if itab_bapimepoitem-quantity is initial.

       itab_bapimepoitem-quantity = v_qtd_it.

       itab_bapimepoitemx-delete_ind = 'X'.

    endif.

    APPEND itab_bapimepoitem.

    itab_bapimepoitemx-po_item  = itab_it-ebelp.

    itab_bapimepoitemx-po_itemx = 'X'.

    itab_bapimepoitemx-quantity = 'X'.

    APPEND itab_bapimepoitemx.

  CLEAR   itab_ekpo.

  REFRESH itab_ekpo.

  SELECT ebeln

         ebelp

         loekz

         matnr

         werks

         lgort

         menge

         meins

         elikz

         knttp

         txjcd

         INTO  TABLE itab_ekpo2

         FROM  ekpo

         WHERE ebeln EQ itab_it-ebeln

         AND   ebelp EQ itab_it-ebelp_ori.

    CLEAR itab_ekpo2.

    READ TABLE itab_ekpo2 WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp_ori.

    itab_bapimepoitem-po_item     = itab_it-ebelp_ori.

    itab_bapimepoitem-quantity    = itab_ekpo2-menge +

                                    v_qtd_it.

    APPEND itab_bapimepoitem.

    CLEAR  itab_bapimepoitem.

    itab_bapimepoitemx-po_item     = itab_it-ebelp_ori.

    APPEND itab_bapimepoitemx.

    CLEAR  itab_bapimepoitemx.

    CLEAR itab_ekkn.

    READ TABLE itab_ekkn WITH KEY

                         ebeln = itab_it-ebeln

                         ebelp = itab_it-ebelp.

    CALL FUNCTION 'BAPI_PO_CHANGE'

         EXPORTING

              purchaseorder = bapimepoheader-po_number

              poheader      = bapimepoheader

              poheaderx     = bapimepoheaderx

         TABLES

              return        = itab_bapiret2

              poitem        = itab_bapimepoitem

              poitemx       = itab_bapimepoitemx

              poschedule    = itab_bapimeposchedule

              poschedulex   = itab_bapimeposchedulx

              poaccount     = itab_bapimepoaccount

              poaccountx    = itab_bapimepoaccountx.

    CLEAR itab_bapiret2.

    DELETE ADJACENT DUPLICATES FROM itab_bapiret2

                    COMPARING  type

                               id

                               number.

    READ TABLE itab_bapiret2 WITH KEY

                             type = 'E'.

    IF sy-subrc IS INITIAL.

      LOOP AT itab_bapiret2 WHERE type EQ 'E'.

        IF itab_bapiret2-id     EQ 'ME' AND

           itab_bapiret2-number EQ '006'.

          MESSAGE i015 WITH text-327

                            itab_bapiret2-message_v1

                            text-328

                            itab_bapiret2-message_v3.

        ELSE.

          MESSAGE i013 WITH itab_bapiret2-message+0(50)

                            itab_bapiret2-message+50(50).

        ENDIF.

      ENDLOOP.

    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

           EXPORTING

                wait = 'X'.

      itab_it-QTD_DA = itab_it-QTD_DA - v_qtd_it.

      modify itab_it transporting QTD_DA where mark = 'X'.

      if itab_it-qtd_da is initial.

        delete itab_it where mark = 'X'.

      endif.

      loop at itab_lote.

        v_tabix = sy-tabix.

        read table itab_lote_aux with key

           ebeln = itab_lote-ebeln

           ebelp = itab_lote-ebelp

           LOTE_FORN = itab_lote-LOTE_FORN.

        if sy-subrc = 0.

          itab_lote-qtd_lote

            = itab_lote_aux-qtd_lote - itab_lote_aux-qtd_lote_dif.

          modify itab_lote.

          if itab_lote-qtd_lote is initial.

            delete itab_lote index v_tabix.

          endif.

          read table itab_zycit463 with key

             ebeln = itab_lote-ebeln

             ebelp = itab_lote-ebelp

             nrseqlote = itab_lote-nrseqlote.

             if sy-subrc = 0.

               v_tabix = sy-tabix.

               itab_zycit463-qtd_lote = itab_lote-qtd_lote.

               modify itab_zycit463 index v_tabix.

                if itab_lote-qtd_lote is initial.

                  delete itab_zycit463 index v_tabix.

                endif.

             else.

               move itab_lote to itab_zycit463.

               append itab_zycit463.

             endif.

         endif.

      endloop.

      loop at itab_lote_aux where qtd_lote_dif > 0.

        read table itab_lote with key

           ebeln = itab_lote_aux-ebeln

           ebelp = itab_it-ebelp_ori

           LOTE_FORN = itab_lote_aux-LOTE_FORN.

           itab_lote-qtd_lote = itab_lote-qtd_lote

              + itab_lote_aux-qtd_lote_dif.

          modify  itab_lote index sy-tabix.

          read table itab_zycit463 with key

             ebeln = itab_lote-ebeln

             ebelp = itab_lote-ebelp

             nrseqlote = itab_lote-nrseqlote.

             if sy-subrc = 0.

               v_tabix = sy-tabix.

               itab_zycit463-qtd_lote = itab_lote-qtd_lote.

               modify itab_zycit463 index v_tabix.

             endif.

      endloop.

      read table itab_it with key ebelp = itab_it-ebelp_ori.

      itab_it-qtd_da = itab_it-QTD_DA + v_qtd_it.

      modify  itab_it index sy-tabix.

      perform save_data.

      MESSAGE i086 WITH itab_it-ebeln.

      leave to screen 0.

    ENDIF.

endform.

form ATUALIZA_QTD_PO.

   loop at itab_it.

     select single menge from ekpo into itab_it-qtd_iten

     where ebeln eq itab_it-ebeln

     and   ebelp eq itab_it-ebelp.

     modify itab_it.

   endloop.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI070I01

 

...

MODULE load_cpnj INPUT.

  PERFORM load_cnpj

    USING    /pws/zycie442-j_1bbranch

             /pws/zycie442-bukrs

    CHANGING s_cnpj.

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

  IF sy-tcode EQ '/PWS/ZYCI070_C' AND NOT /pws/zycie442-nrbl IS INITIAL.

* << Fim da exclusão

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

  IF v_tcode EQ '/PWS/ZYCI070_C' AND NOT /pws/zycie442-nrbl IS INITIAL.

* << Fim da inclusão

    CLEAR: wa_zycit094, wa_zycit001.

    SELECT SINGLE *

           FROM /pws/zycit094

           INTO wa_zycit094

           WHERE nrseqce EQ /pws/zycie442-nrbl.

...

 

...

ENDMODULE.

MODULE user_command_0050 INPUT.

  DATA: vl_erro TYPE c.

  DATA: v_seqdi LIKE /pws/zycie442-nrseqda.

  DATA: e_exec_okcode.

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

  IF sy-tcode EQ '/PWS/ZYCI070_C' OR

     sy-tcode EQ '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

  data v_matnr like /pws/zycit003-matnr.

  IF v_tcode EQ '/PWS/ZYCI070_C' OR

     v_tcode EQ '/PWS/ZYCI070_A'.

* << Fim da inclusão

    PERFORM check USING vl_erro.

    IF NOT vl_erro IS INITIAL.

      MESSAGE e013 WITH text-226.

    ENDIF.

  ENDIF.

...

 

...

        v_seqdi = /pws/zycie442-nrseqda.

        SET PARAMETER ID '/PWS/ZYCIP442' FIELD v_seqdi.

        EXPORT v_seqdi TO MEMORY ID 'V_REL'.

        SUBMIT /pws/zycir332 AND RETURN.

      WHEN 'PED'.

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

        loop at itab_lote where qtd_nac > 0.

        endloop.

        if sy-subrc = 0.

          message i015 with text-520 text-521.

        else.

* << Fim da inclusão

        CALL SELECTION-SCREEN '0299'.

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

        endif.

* << Fim da inclusão

      WHEN 'DELP'.

        CASE ts_des-activetab.

          WHEN 'FC_ITEM'.

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

            SELECT SINGLE *

                   INTO  itab_zycit459

                   FROM  /pws/zycit459

                   WHERE nrseqda EQ /pws/zycie442-nrseqda

                   AND   status  EQ 'A'.

            IF sy-subrc IS INITIAL.

              MESSAGE i015 WITH text-503 text-499.

              EXIT.

            ENDIF.

            SELECT SINGLE *

                   INTO  itab_zycit465

                   FROM  /pws/zycit465

                   WHERE nrseq  EQ /pws/zycie442-nrseqda

                   AND   status EQ 'A'.

            IF sy-subrc IS INITIAL.

              MESSAGE i015 WITH text-503 text-500.

              EXIT.

            ENDIF.

            IF NOT /pws/zycie442-statusfin IS INITIAL.

              MESSAGE i015 WITH text-503 text-501.

              EXIT.

            ENDIF.

* << Fim da inclusão

            IF NOT /pws/zycie442-nrdi IS INITIAL.

              MESSAGE i015 WITH text-029.

            ELSE.

              LOOP AT itab_it WHERE mark = 'X'.

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

                LOOP AT itab_zycit455 WHERE

                        nrseqda EQ /pws/zycie442-nrseqda AND

                    NOT nrseq   IS initial               AND

                        ebeln   EQ itab_it-ebeln         AND

                        ebelp   EQ itab_it-ebelp.

                ENDLOOP.

                IF sy-subrc IS INITIAL.

                  MESSAGE i015 WITH text-503 text-502.

                  EXIT.

                ENDIF.

* << Fim da inclusão

                IF itab_it-nrseq IS INITIAL.

                  CLEAR v_tabix.

                  v_tabix = sy-tabix.

                  READ TABLE itab_zycit094 WITH KEY

                                 nrseq = itab_it-nrseq.

...

 

...

      WHEN 'CUSTO'.

        PERFORM: solicita_custo.

      WHEN 'COMPEN'.

        PERFORM compensa_conta_ia.

        PERFORM atualiza_doccmp.

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

       when 'CRIA'.

         if /PWS/ZYCIE442-CODREG ne '02'.

           message i015 with text-519.

         elseif sy-tcode = '/PWS/ZYCI070_C' and

            v_salvo is initial.

            message i015 with text-515.

         else.

            v_matnr = itab_it-matnr.

            loop at itab_it where matnr ne v_matnr.

            endloop.

            if sy-subrc = 0.

              message i015 with text-522 text-523.

            else.

              perform copiar_item_DA.

            endif.

         endif.

        when 'TRAN'.

         if /PWS/ZYCIE442-CODREG ne '02'.

           message i015 with text-519.

         elseif sy-tcode = '/PWS/ZYCI070_C' and

            v_salvo is initial.

            message i015 with text-515.

         else.

            v_matnr = itab_it-matnr.

            loop at itab_it where matnr ne v_matnr.

            endloop.

            if sy-subrc = 0.

              message i015 with text-522 text-523.

            else.

            perform retorna_saldo.

            endif.

         endif.

* << Fim da inclusão

    ENDCASE.

  ENDIF.

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

  perform ATUALIZA_QTD_PO.

* << Fim da inclusão

  CLEAR: sy-ucomm, r_okcode.

ENDMODULE.

MODULE load_urf INPUT.

  IF /pws/zycie442-urfdesp IS INITIAL.

    CLEAR: s_urf, /pws/zycie442-recalf, s_recalf, /pws/zycie442-setor,

...

 

...

      ENDCASE.

    WHEN '0050'.

      CASE sy-ucomm.

        WHEN 'BACK' OR 'LEAV'.

          v_comm = sy-ucomm.

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

          IF sy-tcode EQ '/PWS/ZYCI070_C' OR

             sy-tcode EQ '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

          IF v_tcode EQ '/PWS/ZYCI070_C' OR

             v_tcode EQ '/PWS/ZYCI070_A'.

* << Fim da inclusão

            PERFORM check USING vl_erro.

            IF vl_erro IS INITIAL.

              PERFORM verify_changes.

              IF v_changed EQ '1' AND sy-binpt IS INITIAL.

                CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'

...

 

...

                     IMPORTING

                          answer        = v_resposta.

                IF v_resposta EQ 'J'.

                  PERFORM save_data.

                ELSEIF v_resposta EQ 'N' .

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

                  IF sy-tcode EQ '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

                  IF v_tcode EQ '/PWS/ZYCI070_C'.

* << Fim da inclusão

                    PERFORM delete_text.

                  ENDIF.

                  LEAVE TO SCREEN 0.

                ELSEIF v_resposta EQ 'A'.

                  EXIT.

...

 

...

          PERFORM unlock_record.

          PERFORM clear_workareas.

          IF v_comm = 'LEAV'.

            LEAVE PROGRAM.

          ELSE.

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

            IF sy-tcode NE '/PWS/ZYCI070_C'    AND

               sy-tcode NE '/PWS/ZYCI070_I' AND

* << Fim da exclusão

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

            IF v_tcode NE '/PWS/ZYCI070_C'    AND

               v_tcode NE '/PWS/ZYCI070_I' AND

* << Fim da inclusão

               v_nrseqda IS INITIAL.

              LEAVE TO SCREEN '0010'.

            ELSE.

              LEAVE PROGRAM.

            ENDIF.

...

 

...

  MODIFY itab_zycit104 INDEX tc_text-current_line TRANSPORTING flag.

ENDMODULE.

MODULE authority_empresa INPUT.

  IF sy-dynnr EQ '0100' OR

     sy-dynnr EQ '0200'.

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

    IF sy-tcode EQ '/PWS/ZYCI070_C'.

* << Fim da exclusão

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

    IF v_tcode EQ '/PWS/ZYCI070_C'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '01'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '01'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_A'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_A'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '02'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

                                            ID 'ACTVT' FIELD '02'.

        IF sy-subrc NE 0.

          MESSAGE e083(f5) WITH /pws/zycie442-bukrs.

        ENDIF.

      ENDIF.

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

    ELSEIF sy-tcode EQ '/PWS/ZYCI070_E'.

* << Fim da exclusão

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

    ELSEIF v_tcode EQ '/PWS/ZYCI070_E'.

* << Fim da inclusão

      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS'

                                          DUMMY

                                          ID 'ACTVT' FIELD '03'.

      IF sy-subrc NE 0.

        AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' ID 'BUKRS' FIELD

...

 

...

  MODIFY itab_itb TRANSPORTING item_adi_sisc

                     WHERE ebeln EQ wa_itb-ebeln

                       AND ebelp EQ wa_itb-ebelp.

ENDMODULE.

MODULE verifica_dados INPUT.

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

  IF sy-tcode EQ '/PWS/ZYCI070_C' AND

* << Fim da exclusão

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

  IF v_tcode EQ '/PWS/ZYCI070_C' AND

* << Fim da inclusão

    NOT /pws/zycie442-nrbl IS INITIAL.

    SELECT SINGLE *

           FROM /pws/zycit094

           INTO wa_zycit094

           WHERE nrseqce EQ /pws/zycie442-nrbl.

...

 

...

    MESSAGE e039

      WITH 'Data de validade não pode estar no passado'(459).

  ENDIF.

ENDMODULE.

MODULE carrega_tabela_lote INPUT.

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

  MOVE: /pws/zycie463          TO itab_lote,

* << Fim da exclusão

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

  MOVE:

    /pws/zycie463-ebeln            TO itab_lote-ebeln        ,

    /pws/zycie463-ebelp            TO itab_lote-ebelp        ,

    /pws/zycie463-lote_forn        TO itab_lote-lote_forn    ,

    /pws/zycie463-numfatura        TO itab_lote-numfatura    ,

    /pws/zycie463-matnr            TO itab_lote-matnr        ,

    /pws/zycie463-qtd_lote         TO itab_lote-qtd_lote     ,

    /pws/zycie463-dt_validade      TO itab_lote-dt_validade  ,

    /pws/zycie463-dt_fabricacao    TO itab_lote-dt_fabricacao,

    /pws/zycie463-qtd_nac          TO itab_lote-qtd_nac      ,

* << Fim da inclusão

        /pws/zycie442-nrseqda  TO itab_lote-nrseqda,

        v_mark                 TO itab_lote-mark,

        v_prazo                TO itab_lote-prazo.

  MODIFY itab_lote INDEX tc_lote-current_line.

  IF sy-subrc NE 0.

    APPEND itab_lote.

  ENDIF.

ENDMODULE.

MODULE user_command_0220 INPUT.

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

   DATA: V_NRSEQLOTE TYPE /PWS/ZYCIT463-NRSEQLOTE.

   CLEAR V_NRSEQLOTE.

   MOVE ITAB_LOTE[] TO ITAB_LOTE_AUX[].

   SORT ITAB_LOTE_AUX BY NRSEQLOTE DESCENDING .

   READ TABLE ITAB_LOTE_AUX INDEX 1.

   V_NRSEQLOTE = ITAB_LOTE_AUX-NRSEQLOTE + 1.

   LOOP AT ITAB_lOTE WHERE NRSEQLOTE IS INITIAL.

      ITAB_LOTE-NRSEQLOTE = V_NRSEQLOTE.

      V_NRSEQLOTE = ITAB_LOTE-NRSEQLOTE + 1 .

      MODIFY ITAB_LOTE.

   ENDLOOP.

   CLEAR ITAB_LOTE_AUX[].

   REFRESH ITAB_LOTE_AUX[].

* << Fim da inclusão

  SORT itab_lote BY ebeln ebelp lote_forn matnr.

  CASE okcode.

    WHEN 'DELP'.

      CLEAR   itab_lote_del.

      REFRESH itab_lote_del.

...

 

...

    WHEN 'DESM'.

      LOOP AT itab_lote.

        itab_lote-mark = ' '.

        MODIFY itab_lote.

      ENDLOOP.

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

    WHEN 'P-'.

      tc_lote-top_line = tc_lote-top_line - 10.

    WHEN 'P--'.

      tc_lote-top_line = tc_lote-top_line - tc_lote-lines.

    WHEN 'P+'.

      tc_lote-top_line = tc_lote-top_line + 10.

    WHEN 'P++'.

      tc_lote-top_line = tc_lote-top_line + tc_lote-lines.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

MODULE show_mod INPUT.

  progname = sy-repid.

  dynnum   = sy-dynnr.

...

 

...

            no_values_found = 2

            OTHERS          = 3.

  CLEAR itab_pedidos.

  FREE  itab_pedidos.

ENDMODULE.

* >> Início da inclusão:

module valida_lote input.

 data: itab_forn like itab_zycit463 occurs 0 with header line.

 move itab_zycit463[] to itab_forn[].

  DATA: v_dif.

  LOOP AT ITAB_FORN WHERE NOT LOTE_FORN IS INITIAL and

     ebeln eq /pws/zycie463-ebeln and

     ebelp eq /pws/zycie463-ebelp.

     if itab_forn-lote_forn eq /PWS/ZYCIe463-LOTE_FORN .

        v_dif = 'X'.

        exit.

     ENDIF.

  ENDLOOP.

  IF v_dif = 'X'.

    MESSAGE i015 WITH text-254.

    CLEAR /PWS/ZYCIE463-LOTE_FORN.

    CLEAR v_dif.

    CLEAR   : itab_forn.

    REFRESH : itab_forn.

  ENDIF.

endmodule.

module USER_COMMAND_0151 input.

data v_sai.

case okcode.

  when 'EXEC'.

  clear v_qtd_it.

  clear v_sai.

  loop at itab_lote_aux

    where ebeln = itab_it-ebeln and

          ebelp = itab_it-ebelp.

    if itab_lote_aux-qtd_lote < itab_lote_aux-qtd_lote_dif .

      v_sai = 'X'.

    endif.

    v_qtd_it = v_qtd_it + itab_lote_aux-qtd_lote_dif.

   endloop.

   if v_sai = 'X'.

      message i015 with text-511.

   endif.

If v_centro is initial or

   v_qtd_it is initial.

   if v_centro is initial.

     message i015 with text-512.

   elseif v_qtd_it is initial.

     message i015 with text-513.

   endif.

else.

   if v_sai ne 'X'.

     perform call_bapi.

   endif.

endif.

  when 'BACK' or 'CANCEL'.

   leave to screen 0.

  endcase.

  clear okcode.

endmodule.

module altera_itab_lote_aux input.

modify itab_lote_aux index tc_lote_aux-current_line.

endmodule.

module USER_COMMAND_0152 input.

data v_sai2.

case okcode.

  when 'EXEC'.

  clear v_qtd_it.

  clear v_sai2.

  loop at itab_lote_aux

    where ebeln = itab_it-ebeln and

          ebelp = itab_it-ebelp.

    if itab_lote_aux-qtd_lote < itab_lote_aux-qtd_lote_dif .

      v_sai2 = 'X'.

    endif.

    v_qtd_it = v_qtd_it + itab_lote_aux-qtd_lote_dif.

   endloop.

   if v_sai2 = 'X'.

      message i015 with text-511.

   endif.

If v_qtd_it is initial.

  if v_qtd_it is initial.

     message i015 with text-513.

   endif.

else.

   if v_sai2 ne 'X'.

     perform call_bapi_saldo.

   endif.

endif.

  when 'BACK' or 'CANCEL'.

   leave to screen 0.

  endcase.

  clear okcode.

endmodule.

module altera_itab_lote_aux2 input.

modify itab_lote_aux index tc_lote_aux2-current_line.

endmodule.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI070O01

 

...

           screen-name EQ '/PWS/ZYCIE049-WAERS' OR

           sy-dynnr    EQ '0160'.

          screen-input = '1'.

        ENDIF.

      ENDIF.

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

      IF sy-dynnr EQ '0220' AND

        ( v_embnac EQ 'X' OR v_doccmp EQ 'X' OR

          NOT /pws/zycie463-qtd_nac IS INITIAL ).

        screen-input = '0'.

* << Fim da exclusão

      ENDIF.

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

    MODIFY SCREEN.

  ENDLOOP.

  IF sy-dynnr EQ '0220'.

    READ TABLE itab_zycit467_nac WITH KEY

         nrseqda = /pws/zycie463-nrseqda

         ebeln   = /pws/zycie463-ebeln

         ebelp   = /pws/zycie463-ebelp

         nrseqlote  = /pws/zycie463-nrseqlote.

    IF sy-subrc EQ 0.

      LOOP AT SCREEN.

        screen-input = 0.

* << Fim da inclusão

      MODIFY SCREEN.

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

      ENDLOOP.

    ENDIF.

* << Fim da inclusão

    ENDIF.

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

  ENDLOOP.

* << Fim da exclusão

ENDMODULE.

...

 

...

                screen-input = '0'.

                screen-invisible = '1'.

              ENDIF.

            WHEN 'V_QTD_DA' OR 'V_VLREAL'.

              IF /pws/zycie442-codreg NE '04'.

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

                LOOP AT itab_lote WHERE ebeln = itab_it-ebeln AND

                                        ebelp = itab_it-ebelp AND

                                        qtd_nac > 0.

                ENDLOOP.

                IF itab_it-ebelp_ori IS INITIAL AND sy-subrc NE 0.

* << Fim da inclusão

                screen-input = '1'.

              ENDIF.

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

              ENDIF.

* << Fim da inclusão

              IF v_doccmp EQ 'X' OR v_embnac EQ 'X' OR

                 NOT /pws/zycie463-qtd_nac IS INITIAL.

                screen-input = '0'.

              ENDIF.

          ENDCASE.

        ENDIF.

        MODIFY SCREEN.

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

      ENDLOOP.

      LOOP AT tc_item-cols INTO v_cols.

        IF v_cols-screen-name EQ '/PWS/ZYCIE443A-NRSEQ'.

          v_cols-screen-input = 0.

          v_cols-invisible = '1'.

          MODIFY tc_item-cols FROM v_cols.

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

  ENDCASE.

ENDMODULE.

MODULE saldo_online_da OUTPUT.

  PERFORM saldo_online_da.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCI070OO

...

  ENDMETHOD.

ENDCLASS.

module verifica_nacional output.

   perform verifica_nacional.

endmodule.

* >> Início da inclusão:

module STATUS_0151 output.

  SET PF-STATUS '0151'.

  SET TITLEBAR '151'.

endmodule.

module STATUS_0152 output.

  SET PF-STATUS '0152'.

  SET TITLEBAR '152'.

endmodule.

* << Fim da inclusão

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI070TOP

...

  tc_adic  TYPE TABLEVIEW USING SCREEN 0170,

  tc_text  TYPE TABLEVIEW USING SCREEN 0181,

  t269     TYPE TABLEVIEW USING SCREEN 0190,

  tc_fornec TYPE TABLEVIEW USING SCREEN 0210,

* >> Início da inclusão:

  tc_lote   TYPE TABLEVIEW USING SCREEN 0220,

  tc_lote_aux   TYPE TABLEVIEW USING SCREEN 0151,

  tc_lote_aux2   TYPE TABLEVIEW USING SCREEN 0152,

* << Fim da inclusão

  tc_ades  TYPE TABLEVIEW USING SCREEN 0321,

  tc_adoc  TYPE TABLEVIEW USING SCREEN 0321,

  tc_aite  TYPE TABLEVIEW USING SCREEN 0322,

  tc_anom  TYPE TABLEVIEW USING SCREEN 0323,

  tc_aacr  TYPE TABLEVIEW USING SCREEN 0331,

...

 

...

DATA  BEGIN OF itab_lote OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie463.

DATA:   prazo TYPE numc3,

        mark  TYPE char1.

DATA  END OF itab_lote.

* >> Início da inclusão:

DATA  BEGIN OF itab_lote_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie463.

DATA:   prazo TYPE numc3,

        mark  TYPE char1,

        qtd_lote_dif like /pws/zycie463-qtd_lote.

DATA  END OF itab_lote_aux.

* << Fim da inclusão

DATA: BEGIN OF itab_lote_del OCCURS 0.

        INCLUDE STRUCTURE itab_lote.

DATA: END   OF itab_lote_del.

DATA: BEGIN OF itab_pedidos OCCURS 0,

        ebeln  LIKE /pws/zycie463-ebeln,

...

 

...

        v_blart    LIKE /pws/zycbt011-blart,

        v_desp_acr LIKE /pws/zycit049-vldp,

        v_desp_brl LIKE /pws/zycit049-vldp,

        v_evento   LIKE /pws/zyglt321-codeven,

        v_required,

* >> Início da inclusão:

        v_qtd_it like /pws/zycit443-QTD_ITEN,

        v_centro like /pws/zycit003-werks,

* << Fim da inclusão

        v_salvo.

DATA:

  v_cpochv(80),

  v_descricao(50),

  v_qtd_nac         LIKE /pws/zycit467-qtd_nac,

...

 

...

        loekz      TYPE ekpo-loekz,

      END OF itab_itens.

DATA: BEGIN OF itab_imposto OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie110.

DATA: END OF itab_imposto.

* >> Início da inclusão:

DATA: BEGIN OF itab_ekpo2 OCCURS 0,

        ebeln  LIKE ekpo-ebeln,

        ebelp  LIKE ekpo-ebelp,

        loekz  LIKE ekpo-loekz,

        matnr  LIKE ekpo-matnr,

        werks  LIKE ekpo-werks,

        lgort  LIKE ekpo-lgort,

        menge  LIKE ekpo-menge,

        meins  LIKE ekpo-meins,

        elikz  LIKE ekpo-elikz,

        knttp  LIKE ekpo-knttp,

        txjcd  LIKE ekpo-txjcd,

      END   OF itab_ekpo2.

DATA: BEGIN OF itab_eket OCCURS 0,

        ebeln  LIKE eket-ebeln,

        ebelp  LIKE eket-ebelp,

        eindt  LIKE eket-eindt,

      END   OF itab_eket.

DATA: BEGIN OF itab_ekkn OCCURS 0,

        ebeln  LIKE ekkn-ebeln,

        ebelp  LIKE ekkn-ebelp,

        kostl  LIKE ekkn-kostl,

      END   OF itab_ekkn.

TABLES:

  bapimepoheader,

  bapimepoheaderx,

  bapimepoaccount,

  bapimepoaccountx.

DATA: BEGIN OF itab_bapimepoitem OCCURS 0.

        INCLUDE STRUCTURE bapimepoitem.

DATA: END OF itab_bapimepoitem.

DATA: BEGIN OF itab_bapimepoitemx OCCURS 0.

        INCLUDE STRUCTURE bapimepoitemx.

DATA: END OF itab_bapimepoitemx.

DATA: BEGIN OF itab_bapimeposchedule OCCURS 0.

        INCLUDE STRUCTURE bapimeposchedule.

DATA: END OF itab_bapimeposchedule.

DATA: BEGIN OF itab_bapimeposchedulx OCCURS 0.

        INCLUDE STRUCTURE bapimeposchedulx.

DATA: END OF itab_bapimeposchedulx.

DATA: BEGIN OF itab_bapimepoaccount OCCURS 0.

        INCLUDE STRUCTURE bapimepoaccount.

DATA: END OF itab_bapimepoaccount.

DATA: BEGIN OF itab_bapimepoaccountx OCCURS 0.

        INCLUDE STRUCTURE bapimepoaccountx.

DATA: END OF itab_bapimepoaccountx.

DATA: BEGIN OF itab_bapiret1 OCCURS 0.

        INCLUDE STRUCTURE bapiret2.

DATA: END OF itab_bapiret1.

DATA: BEGIN OF itab_bapiret2 OCCURS 0.

        INCLUDE STRUCTURE bapiret2.

DATA: END OF itab_bapiret2.

* << Fim da inclusão

SELECTION-SCREEN BEGIN OF SCREEN 0299.

SELECT-OPTIONS:

  so_inco1 FOR /pws/zycie001-inco1

           NO-EXTENSION NO INTERVALS,

  so_waers FOR /pws/zycie001-waers

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI070X01

 

...

      v_faty TYPE p DECIMALS 8,

      v_tot_real LIKE /pws/zycie003-vlreal,

      v_fatpc LIKE t_icms,

      v_nova,

      v_nac.

* >> Início da inclusão:

DATA:   v_tcode         LIKE sy-tcode.

DATA : itab_zycit467_nac TYPE /pws/zycit467 OCCURS 0 WITH HEADER LINE

.

* << Fim da inclusão

DATA:  wa_it000      LIKE /pws/zycit000,

       wa_zycit078   LIKE /pws/zycit078.

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI070

 

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

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 254

 

Texto: (18 caracteres)

"Lote já informado."

 

Comprimento máximo: 132

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 499

 

Texto: (49 caracteres)

"Existe documento contabilizado-Prest.de Contas DA"

 

Comprimento máximo: 49

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 500

 

Texto: (54 caracteres)

"Existe documento contabilizado - Déb. Cta. ou Adto. DA"

 

Comprimento máximo: 54

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 501

 

Texto: (32 caracteres)

"Status de Finalização preenchido"

 

Comprimento máximo: 32

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 502

 

Texto: (16 caracteres)

"DA nacionalizada"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 503

 

Texto: (27 caracteres)

"Item não pode ser excluído!"

 

Comprimento máximo: 27

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 504

 

Texto: (42 caracteres)

"Pedido está sendo usado em outro Processo,"

 

Comprimento máximo: 42

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 505

 

Texto: (55 caracteres)

"Problemas de bloqueio. Avisar administrador do sistema."

 

Comprimento máximo: 55

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 506

 

Texto: (48 caracteres)

"Favor informar Lote do Fornecedor na Pasta Lote."

 

Comprimento máximo: 48

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 507

 

Texto: (21 caracteres)

"Marcar item de pedido"

 

Comprimento máximo: 24

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 508

 

Texto: (30 caracteres)

"Marcar apenas 1 item de pedido"

 

Comprimento máximo: 30

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 509

 

Texto: (48 caracteres)

"Ao criar item novo, é necessário existirem lotes"

 

Comprimento máximo: 96

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 510

 

Texto: (42 caracteres)

"com saldo à nacionalizar no item original!"

 

Comprimento máximo: 47

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 511

 

Texto: (50 caracteres)

"Quantidade do não pode ser maior que saldo de lote"

 

Comprimento máximo: 52

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 512

 

Texto: (16 caracteres)

"Informe o Centro"

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 513

 

Texto: (28 caracteres)

"Informe a Quantidade do Lote"

 

Comprimento máximo: 28

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 514

 

Texto: (34 caracteres)

"Pedido não possui saldo suficiente"

 

Comprimento máximo: 34

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 515

 

Texto: (45 caracteres)

"É necessário salvar a DA para criar novo item"

 

Comprimento máximo: 45

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 516

 

Texto: (47 caracteres)

"Item não foi criado pelo Pw. CE, não é possível"

 

Comprimento máximo: 47

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 517

 

Texto: (14 caracteres)

"retornar saldo"

 

Comprimento máximo: 14

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 518

 

Texto: (49 caracteres)

"Para retornar saldo, é necessário existirem lotes"

 

Comprimento máximo: 50

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 519

 

Texto: (50 caracteres)

"Alteração no Pedido, só permitido para regime '02'"

 

Comprimento máximo: 50

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 520

 

Texto: (42 caracteres)

"Já ocorreram Nacionalizações para essa DA,"

 

Comprimento máximo: 42

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 521

 

Texto: (38 caracteres)

"não será permitido vircular mais itens"

 

Comprimento máximo: 38

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 522

 

Texto: (44 caracteres)

"Existem itens com materiais diferente, não é"

 

Comprimento máximo: 54

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 523

 

Texto: (36 caracteres)

"permitido alterar o pedido de compra"

 

Comprimento máximo: 36

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 524

 

Texto: (52 caracteres)

"Materiais diferentes não permitido para regime '02'."

 

Comprimento máximo: 52

 

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

Modificações efetuadas em TABD /PWS/ZYCIT443

 

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

 

...

MANDT             MANDT                         CLNT     3

NRSEQDA           /PWS/ZYCIL831 /PWS/ZYCIT442   CHAR    10

NRSEQ             /PWS/ZYCIL001                 CHAR    10

EBELN             EBELN                         CHAR    10

EBELP             EBELP                         NUMC     5

ADICAO            /PWS/ZYCIL267                 NUMC     3

NRSEQLI           /PWS/ZYCIL229                 CHAR    10

...

 

NALADINCCA        /PWS/ZYGLL667                 NUMC     7

QTDEUMEST         /PWS/ZYCIL347                 QUAN    13

APLICACAO         /PWS/ZYCIL269                 CHAR     1

CONDMERC          /PWS/ZYCIL202                 CHAR     1

WERKS             WERKS_D                       CHAR     4

MATNR             MATNR                         CHAR    18

* >> Início da inclusão:

EBELP_ORI         EBELP                         NUMC     5

* << Fim da inclusão