CE PLUS - Nota 010946

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 09/02/2011 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:24:25

Descrição da Nota: PREENCHER LOTE NA NOTA FISCAL - MATERIAL SUJEITO A LOTE

Sintoma

DA - Desenvolvimento Adicional

 

Devido a legislação de NFe, para matéria prima farmacêutica, é obrigatório informar o número de

lote, quantidade, data de fabricação e validade na NFe.

 

 

Solução

Por exigência legal, as informações sobre o lote da mercadoria deverão aparecer na NFe e XML.

 

No programa de nota fiscal, favor inserir o ícone de lote. Ao clicar no ícone, fazer a mesma

consistência que já faz no recebimento. Caso o material marcado seja sujeito a lote, deverá aparecer

uma tela para o usuário digitar as informações. Caso o material marcado não seja sujeito a lote, não

aparecerá a tela para preenchimento.

 

Versões Tratadas

8.0

Informações Complementares

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

Nota Número 10946 Data: 09/02/2011 Hora: 15:37:19

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

 

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

Nota Número              : 10946

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00006

Agrupamento              : 00058

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

Referência às notas relacionadas:

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

 

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

PREENCHER LOTE NA NOTA FISCAL - MATERIAL SUJEITO A LOTE

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

Palavras Chave:

LOTE DA MERCADORIA - MATERIAL SUJEIRO A LOTE - LOTE NA NOTA FISCAL

 

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

Objetos da nota:

CUAD /PWS/SAPMZYCI016

DYNP /PWS/SAPMZYCI016                        0121

REPS /PWS/MZYCI016F01

REPS /PWS/MZYCI016I01

REPS /PWS/MZYCI016O01

REPS /PWS/MZYCI016TOP

REPS /PWS/MZYCI016X01

REPT /PWS/SAPMZYCI016

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCI016

 

CRIAR Títulos GUI - títulos da interface /PWS/SAPMZYCI016

 

 Nº título            Título

 0121                 CI - Divisão da Qtde por lote

 

 

CRIAR Status GUI -----------------------------------------

 

 Nº status            Título

 0121                 Lote

 

Este Status GUI não possui botões.

 

 

MODIFICAR Status GUI -------------------------------------

 

 Nº status            Título

 0100                 CI - Criar NF Global

 

Inserir o botão LOTE na última posição:

 

Código de função     LOTE

Texto de função      Lote

Nome de ícone        ICON_TRANSPORT_POINT

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI016                        0121

 

INCLUIR TELA 0121

 

Descrição                CI - Itens - Divisão de Lotes

Tela seguinte            0121

Altura atual (linhas)    27

Largura atual (colunas)  120

 

INCLUIR CONTROLE DE TABELA "TC_LOTE"

Altura                   13

Comprimento Visível      117

Linha                    2

Coluna                   4

 

INCLUIR TEXTO "/PWS/ZYCIE223-LOTE" em tbl.contr./tabstr.

Altura                   14

Comprimento Visível      15

Linha                    1

Coluna                   1

Formato                  CHAR

Texto                    Lote

 

INCLUIR TEXTO "/PWS/ZYCIE223-QTDE" em tbl.contr./tabstr.

Altura                   14

Comprimento Visível      15

Linha                    1

Coluna                   2

Formato                  CHAR

Texto                    Qtd.do pedido

 

INCLUIR TEXTO "/PWS/ZYCIE223-NRVOLUME" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      15

Linha                    1

Coluna                   3

Formato                  CHAR

Texto                    Núm.containers

 

INCLUIR TEXTO "/PWS/ZYCIE223-TPVOLUME" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      15

Linha                    1

Coluna                   4

Formato                  CHAR

Texto                    Unidade comerc.

 

INCLUIR TEXTO "/PWS/ZYCIE223-CERTIFICADO" em tbl.contr./tabstr.

Altura                   1

Comprimento Visível      15

Linha                    1

Coluna                   5

Formato                  CHAR

Texto                    Resposta

 

INCLUIR TEXTO "/PWS/ZYCIE223-LOTE_FORN" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      15

Linha                    1

Coluna                   6

Formato                  CHAR

Texto                    Lote fornecedor

 

INCLUIR TEXTO "/PWS/ZYCIE223-DT_VENCTO" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      15

Linha                    1

Coluna                   7

Formato                  CHAR

Texto                    Data vencimento

 

INCLUIR TEXTO "/PWS/ZYCIE223-DT_PRODUCAO" em tbl.contr./tabstr.

Altura                   16

Comprimento Visível      13

Linha                    1

Coluna                   8

Formato                  CHAR

Texto                    Data Produção

 

INCLUIR CAIXA DE VERIFICAÇÃO "ITAB_ZYCIT223-MARK" em tbl.contr./tabstr.

Altura                   1

Comprimento Visível      1

Linha                    1

Formato                  CHAR

Texto                    _

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-LOTE" em tbl.contr./tabstr.

Altura                   14

Comprimento Visível      10

Linha                    1

Coluna                   1

Formato                  CHAR

Linhas mínimas           10

Texto                    __________

Código função

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-QTDE" em tbl.contr./tabstr.

Altura                   14

Comprimento Visível      17

Linha                    1

Coluna                   2

Formato                  QUAN

Campo referência         /PWS/ZYCIT042-MEINS

Linhas mínimas           13

Colunas mínimas          3

Texto                    _.___.___.___,___

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-NRVOLUME" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      7

Linha                    1

Coluna                   3

Formato                  QUAN

Campo referência         /PWS/ZYCIE223-TPVOLUME

Linhas mínimas           6

Colunas mínimas          3

Texto                    ___,___

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-TPVOLUME" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      3

Linha                    1

Coluna                   4

Formato                  UNIT

Linhas mínimas           3

Texto                    ___

Código função

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-CERTIFICADO" em tbl.contr./tabstr.

Altura                   1

Comprimento Visível      1

Linha                    1

Coluna                   5

Formato                  CHAR

Linhas mínimas           1

Texto                    _

Código função

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-LOTE_FORN" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      15

Linha                    1

Coluna                   6

Formato                  CHAR

Linhas mínimas           15

Texto                    _______________

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-DT_VENCTO" em tbl.contr./tabstr.

Altura                   15

Comprimento Visível      10

Linha                    1

Coluna                   7

Formato                  DATE

Linhas mínimas           8

Texto                    __________

Código função

 

INCLUIR CAMPO TEXTO "/PWS/ZYCIE223-DT_PRODUCAO" em tbl.contr./tabstr.

Altura                   16

Comprimento Visível      10

Linha                    1

Coluna                   8

Formato                  DATE

Linhas mínimas           8

Texto                    __________

Código função

 

INCLUIR BOTÃO "OK"

Altura                   2

Comprimento Visível      4

Linha                    16

Coluna                   4

Formato                  CHAR

Texto                    @0V@

Código função            SAVE

 

INCLUIR BOTÃO "CANCEL"

Altura                   2

Comprimento Visível      4

Linha                    16

Coluna                   7

Formato                  CHAR

Texto                    @0W@

Código função            CANC

 

INCLUIR BOTÃO "%#AUTOTEXT001"

Altura                   2

Comprimento Visível      4

Linha                    16

Coluna                   10

Formato                  CHAR

Texto                    @4B@

Código função            MALL

 

INCLUIR BOTÃO "%#AUTOTEXT002"

Altura                   2

Comprimento Visível      6

Linha                    16

Coluna                   13

Formato                  CHAR

Texto                    @4D@

Código função            DALL

 

INCLUIR BOTÃO "DELE"

Altura                   2

Comprimento Visível      4

Linha                    16

Coluna                   16

Formato                  CHAR

Texto                    @18@

Código função            DELE

 

INCLUIR OKCODE "OKCODE"

 

 

MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0121

 

* >> Início da inclusão:

PROCESS BEFORE OUTPUT.

  MODULE: status_0121,

          exit_tela ,

          set_screen_0121.

  LOOP AT itab_zycit223 WITH CONTROL tc_lote.

    MODULE: inibe_linhas,

            alimenta_zycie223.

  ENDLOOP.

PROCESS AFTER INPUT.

  LOOP AT itab_zycit223.

    MODULE: alimenta_zycit223.

  ENDLOOP.

  MODULE: limpa_linhas,

          user_command_0121,

          user_command_exit AT EXIT-COMMAND.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

FORM cria_nota_fiscal_r.

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

  DATA: lv_erro.

* << Fim da inclusão

  READ TABLE itab_zycit044.

  IF NOT itab_zycit044-docnum IS INITIAL.

    MESSAGE i028 WITH itab_zycit044-docnum.

    LEAVE TO SCREEN '0200'.

  ENDIF.

  READ TABLE itab_zycit044 WITH KEY qtd_item = 0.

  IF sy-subrc EQ 0.

    MESSAGE i031.

    LEAVE TO SCREEN '0200'.

  ENDIF.

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

  LOOP AT itab_zycit044.

    CLEAR: itab_zycit223, itab_zycit223[], v_soma_qtde, lv_erro.

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

       WHERE nrseq     = itab_zycit044-nrseq     AND

             nrseqnf   = itab_zycit044-nrseqnf   AND

             nfglobal  = itab_zycit044-nfglobal  AND

             nfremessa = itab_zycit044-nfremessa AND

             ebeln     = itab_zycit044-ebeln     AND

             ebelp     = itab_zycit044-ebelp.

    IF NOT itab_zycit223[] IS INITIAL.

      LOOP AT itab_zycit223.

        v_soma_qtde = v_soma_qtde + itab_zycit223-qtde.

      ENDLOOP.

      IF NOT v_soma_qtde = itab_zycit044-qtd_item.

        lv_erro = 'X'.

        MESSAGE i015 WITH text-121 text-122.

        EXIT.

      ENDIF.

    ENDIF.

  ENDLOOP.

  IF lv_erro EQ 'X'.

    EXIT.

  ENDIF.

* << Fim da inclusão

  MOVE itab_zycit044[] TO itab_zycit044_aux[].

  tc_lista_nfr-lines = tc_lista_nfr-lines + 1.

  CLEAR v_sucesso.

  PERFORM fill_data_j1b1_r.

  IF v_sucesso = 'OK'.

    v_status_s_nfr = 0.

    LOOP AT itab_zycit044.

      MOVE-CORRESPONDING itab_zycit044 TO /pws/zycie045.

      MODIFY /pws/zycit045 FROM /pws/zycie045.

    ENDLOOP.

  ENDIF.

ENDFORM.

 

 

FORM nfiscal_remessa.

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

  CLEAR: wa_zycie042.

  itab_zycit042-mark = ' '.

  MODIFY itab_zycit042 TRANSPORTING mark WHERE mark = 'X'.

* << Fim da inclusão

  e_subrc = '0'.

  REFRESH itab_zyglt100.

  PERFORM verifica_exit USING 'D'

                      '/PWS/SAPMZYCI016'

                      'NFR004'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

        zexit = 'NFR004'  BINARY SEARCH.

  IF sy-subrc EQ 0 AND

  NOT  itab_zyglt100-zexit_ativa IS INITIAL.

...

 

 

...

                AND ebelp    = itab_zycit042-ebelp

                AND tpnf     = itab_zycit042-tpnf

                AND j_1bbranch = itab_zycit042-j_1bbranch

                AND lifnr    = itab_zycit042-lifnr

                AND docnum   = v_valor.

            DELETE FROM /pws/zycit223

              WHERE ebeln    = itab_zycit042-ebeln    AND

                    ebelp    = itab_zycit042-ebelp    AND

                    nfglobal = itab_zycit042-nfglobal AND

                    nrseq    = itab_zycit042-nrseq    AND

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

                    docnum   = v_valor.                 "#EC CI_NOFIRST

* << Fim da exclusão

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

                    nrseqnf  = itab_zycit042-nrseqnf.

* << Fim da inclusão

            COMMIT WORK.

          ELSEIF v_apaga EQ 'X' AND v_modalidade = '99'.

            itab_zycit042-docnum = '9999999999'.

            UPDATE /pws/zycit042 SET docnum = itab_zycit042-docnum

                                series = itab_zycit042-series

                                nfnum = itab_zycit042-nfnum

              WHERE nrseq    = itab_zycit042-nrseq

                AND nfglobal = itab_zycit042-nfglobal

                AND ebeln    = itab_zycit042-ebeln

                AND ebelp    = itab_zycit042-ebelp

...

 

 

...

          AND ebeln    = itab_zycit042-ebeln

          AND ebelp    = itab_zycit042-ebelp

          AND tpnf     = itab_zycit042-tpnf

          AND j_1bbranch = itab_zycit042-j_1bbranch

          AND lifnr    = itab_zycit042-lifnr

          AND docnum   = v_valor.

      DELETE FROM /pws/zycit223

        WHERE ebeln    = itab_zycit042-ebeln    AND

              ebelp    = itab_zycit042-ebelp    AND

              nfglobal = itab_zycit042-nfglobal AND

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

              nrseq    = itab_zycit042-nrseq    AND

              docnum   = v_valor.                       "#EC CI_NOFIRST

* << Fim da exclusão

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

              nrseq    = itab_zycit042-nrseq.

* << Fim da inclusão

      IF v_modalidade = '99' OR

      ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).

        DELETE FROM /pws/zycit045

            WHERE nrseq    = itab_zycit042-nrseq

              AND nfglobal = itab_zycit042-nfglobal

              AND ebeln    = itab_zycit042-ebeln

              AND ebelp    = itab_zycit042-ebelp.       "#EC CI_NOFIRST

      ENDIF.

      COMMIT WORK.

    ENDLOOP.

...

 

 

...

            AND tpnf      = itab_zycit044-tpnf

            AND docnum    = v_valor.                    "#EC CI_NOFIRST

        DELETE itab_zycit044

          WHERE nrseq     = itab_zycit044-nrseq

            AND nfglobal  = itab_zycit044-nfglobal

            AND nfremessa = itab_zycit044-nfremessa

            AND ebeln     = itab_zycit044-ebeln

            AND ebelp     = itab_zycit044-ebelp

            AND tpnf      = itab_zycit044-tpnf

            AND docnum    = v_valor.

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

        DELETE FROM /pws/zycit223 WHERE nrseq  = itab_zycit044-nrseq

                                 AND nrseqnf   = itab_zycit044-nrseqnf

                                 AND nfglobal  = itab_zycit044-nfglobal

                                 AND nfremessa = itab_zycit044-nfremessa

                                 AND ebeln     = itab_zycit044-ebeln

                                 AND ebelp     = itab_zycit044-ebelp.

* << Fim da inclusão

        FREE  itab_zycit043_lista.

        CLEAR itab_zycit043_lista.

        v_cancel = 'OK'.

        COMMIT WORK.

      ELSE.

        READ TABLE it_zycet005 WITH KEY  tcode  = text-030

                                         tabela = text-025

                                         cpochv =

 /pws/zycie043-nfremessa

                                         tpmsg  = 'E'.

...

 

 

...

* >> Início da inclusão:

FORM verifica_lote.

  DATA: v_mark.

  CLEAR: v_suj_lote, v_validade, v_remessa, v_certificado,

         itab_zycit223, itab_zycit223[],

         wa_zycie042, wa_zycie044, v_mark.

  LOOP AT itab_zycit042.

    IF itab_zycit042-mark EQ 'X'.

      v_mark = v_mark + 1.

    ENDIF.

  ENDLOOP.

  IF v_mark > 1.

    EXIT.

  ENDIF.

  CLEAR: v_mark.

  LOOP AT itab_zycit044.

    IF itab_zycit044-mark EQ 'X'.

      v_mark = v_mark + 1.

    ENDIF.

  ENDLOOP.

  IF v_mark > 1.

    EXIT.

  ENDIF.

  READ TABLE itab_zycit042 WITH KEY mark = 'X'.

  IF sy-subrc EQ 0.

    wa_zycie042 = itab_zycit042.

  ENDIF.

  READ TABLE itab_zycit044 WITH KEY mark = 'X'.

  IF sy-subrc EQ 0.

    wa_zycie044 = itab_zycit044.

  ENDIF.

  IF NOT wa_zycie042 IS INITIAL.

    SELECT SINGLE charg FROM eket INTO itab_zycit223-lote

               WHERE ebeln = wa_zycie042-ebeln

                 AND ebelp = wa_zycie042-ebelp.

    IF NOT itab_zycit223-lote IS INITIAL.

      MESSAGE i015 WITH text-119.

      EXIT.

    ENDIF.

    SELECT SINGLE mhdhb xchpf FROM mara

           INTO (v_validade, v_suj_lote)

          WHERE matnr EQ wa_zycie042-matnr.

    IF v_suj_lote IS INITIAL.

      SELECT SINGLE  xchpf FROM marc

             INTO v_suj_lote

            WHERE matnr EQ wa_zycie042-matnr

              AND werks EQ wa_zycie042-werks.

      IF v_suj_lote IS INITIAL.

        MESSAGE w015 WITH text-120.

        EXIT.

      ENDIF.

    ENDIF.

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

       WHERE nrseq     = wa_zycie042-nrseq    AND

             nrseqnf   = wa_zycie042-nrseqnf  AND

             nfglobal  = wa_zycie042-nfglobal AND

             nfremessa = space                AND

             ebeln     = wa_zycie042-ebeln    AND

             ebelp     = wa_zycie042-ebelp.

  ELSEIF NOT wa_zycie044 IS INITIAL.

    SELECT SINGLE charg FROM eket INTO itab_zycit223-lote

               WHERE ebeln = wa_zycie044-ebeln

                 AND ebelp = wa_zycie044-ebelp.

    IF NOT itab_zycit223-lote IS INITIAL.

      MESSAGE i015 WITH text-119.

      EXIT.

    ENDIF.

    SELECT SINGLE mhdhb xchpf FROM mara

           INTO (v_validade, v_suj_lote)

          WHERE matnr EQ wa_zycie044-matnr.

    IF v_suj_lote IS INITIAL.

      SELECT SINGLE  xchpf FROM marc

             INTO v_suj_lote

            WHERE matnr EQ wa_zycie044-matnr

              AND werks EQ wa_zycie044-werks.

      IF v_suj_lote IS INITIAL.

        MESSAGE w015 WITH text-120.

        EXIT.

      ENDIF.

    ENDIF.

    SELECT * FROM /pws/zycit223 INTO TABLE itab_zycit223

       WHERE nrseq     = wa_zycie044-nrseq     AND

             nrseqnf   = wa_zycie044-nrseqnf   AND

             nfglobal  = wa_zycie044-nfglobal  AND

             nfremessa = wa_zycie044-nfremessa AND

             ebeln     = wa_zycie044-ebeln     AND

             ebelp     = wa_zycie044-ebelp.

  ENDIF.

  IF sy-dynnr = '0100'.

    v_remessa = ' '.

    SELECT SINGLE * FROM ekpo WHERE

      ebeln = wa_zycie042-ebeln AND

      ebelp = wa_zycie042-ebelp.

    IF sy-subrc = 0 AND NOT ekpo-zgtyp IS INITIAL.

      v_certificado = 'X'.

    ENDIF.

  ELSEIF sy-dynnr = '0200'.

    v_remessa = 'X'.

    SELECT SINGLE * FROM ekpo WHERE

      ebeln = wa_zycie044-ebeln AND

      ebelp = wa_zycie044-ebelp.

    IF sy-subrc = 0 AND NOT ekpo-zgtyp IS INITIAL.

      v_certificado = 'X'.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI016I01

 

...

        UPDATE /pws/zycit043

          SET nfnum  = itab_zycit044-nfnum

              series = itab_zycit044-series

              subser = itab_zycit044-subser

          WHERE nrseq     = itab_zycit044-nrseqnf AND

                nfglobal  = itab_zycit044-nfglobal AND

                nfremessa = itab_zycit044-nfremessa AND

                docnum    = itab_zycit044-docnum.

      ENDIF.

      IF okcode = '%EX'.

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

        CLEAR: wa_zycie044.

        itab_zycit044-mark = ' '.

        MODIFY itab_zycit044 TRANSPORTING mark WHERE mark = 'X'.

* << Fim da inclusão

        LEAVE PROGRAM.

      ELSEIF okcode = 'BACK'.

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

        CLEAR: wa_zycie044.

        itab_zycit044-mark = ' '.

        MODIFY itab_zycit044 TRANSPORTING mark WHERE mark = 'X'.

* << Fim da inclusão

        IF itab_zycit043_lista[] IS INITIAL.

          LEAVE TO SCREEN 0.

        ELSE.

...

 

...

    WHEN '0400'.

      IF okcode = '%EX'.

        LEAVE PROGRAM.

      ELSEIF okcode = 'BACK'.

        SET SCREEN '0300'.

      ENDIF.

      CLEAR okcode.

    WHEN '0050'.

      PERFORM unlock_nf.

      LEAVE PROGRAM.

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

    WHEN '0121'.

      CLEAR: /pws/zycie223.

      LEAVE TO SCREEN 0.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

 

 

MODULE user_command_0100 INPUT.

  DATA:  v_nfee TYPE c.

  DATA:  t_fields3(20) TYPE c VALUE 'J_1BNFDOC-NFE',

         t_fields4(20) TYPE c VALUE 'J_1BNFDOC-NFENUM'.

  FIELD-SYMBOLS: <nfenum> TYPE ANY,

                 <nfe> TYPE ANY.

  DATA: t_docstat(20) TYPE c VALUE 'J_1BNFDOC-DOCSTAT'.

  FIELD-SYMBOLS: <docsta> TYPE ANY.

...

 

...

  itab_zycit044-nfnum     = /pws/zycie044-nfnum.

  itab_zycit044-series    = /pws/zycie044-series.

  itab_zycit044-subser    = /pws/zycie044-subser.

  itab_zycit044-ebeln     = /pws/zycie044-ebeln.

  itab_zycit044-ebelp     = /pws/zycie044-ebelp.

  itab_zycit044-qtd_item  = /pws/zycie044-qtd_item.

  itab_zycit044-menge     = /pws/zycie045-menge.

  itab_zycit044-saldo     = /pws/zycie045-saldo.

  itab_zycit044-meins     = /pws/zycie045-meins.

  itab_zycit044-docnumnfg = /pws/zycie043-docnumnfg.

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

  itab_zycit044-matnr     = /pws/zycie044-matnr.

* << Fim da inclusão

  READ TABLE itab_zycit044_aux WITH KEY

                               ebeln    = itab_zycit044-ebeln

                               ebelp    = itab_zycit044-ebelp.

  REFRESH itab_zyglt100.

  PERFORM verifica_exit USING 'D'

                      '/PWS/SAPMZYCI016'

                      ' '.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

        zexit = 'DNF017'  BINARY SEARCH.

...

 

...

          (itab_zyglt100-programa) IF FOUND.

      IF e_subrc NE 0.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

  IF e_exec_okcode IS INITIAL.

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

       sy-tcode EQ '/PWS/ZYCI016_A'.

      CASE okcode.

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

        WHEN 'LOTE'.

          PERFORM verifica_lote.

          IF wa_zycie042 IS INITIAL AND wa_zycie044 IS INITIAL.

            MESSAGE s015 WITH text-118.

          ELSEIF NOT v_suj_lote IS INITIAL.

            CALL SCREEN '0121' STARTING AT 10 2.

          ENDIF.

* << Fim da inclusão

        WHEN 'ITENSNFR'.

          CALL SCREEN '0220' STARTING AT 2 2.

        WHEN 'ENTE'.

          IF /pws/zycie043-nfexterna NE wa_zycit048-nfext.

         v_ok = 'A'.

          ENDIF.

          itab_zycit044-nfnum  = /pws/zycie044-nfnum.

          itab_zycit044-series = /pws/zycie044-series.

          itab_zycit044-subser = /pws/zycie044-subser.

        WHEN 'DELE'.

...

 

...

            PERFORM modo_batch_input.

          ELSE.

            MESSAGE w013 WITH text-094 text-095.

          ENDIF.

        WHEN 'CRIARNFR'.

          IF /pws/zycie043-transpnac IS INITIAL.

            SELECT SINGLE * FROM /pws/zyglt217

            WHERE arbgb EQ '/PWS/ZYCIM'

            AND   msgnr EQ '111'.

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

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

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

* << Fim da exclusão

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

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

                                                       NUMBER '111'.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          PERFORM cria_nota_fiscal_r.

        WHEN 'CANCR'.

          PERFORM efetua_cancelamento_r.

        WHEN 'CONT_NFR' .

          GET CURSOR FIELD v_campo VALUE v_valor.

          IF v_campo EQ '/PWS/ZYCIE044-DOCNUM'

          AND NOT v_valor EQ '0000000000'.

            IF ( /pws/zycie043-belnr_mr1m IS INITIAL AND

...

 

...

              CALL SCREEN '0140' STARTING AT 5 15.

            ELSE.

              MESSAGE i015 WITH text-111 text-051.

            ENDIF.

          ELSE.

            MESSAGE s015 WITH text-052.

          ENDIF.

      ENDCASE.

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

      CASE okcode.

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

        WHEN 'LOTE'.

          PERFORM verifica_lote.

          IF wa_zycie042 IS INITIAL AND wa_zycie044 IS INITIAL.

            MESSAGE s015 WITH text-118.

          ELSEIF NOT v_suj_lote IS INITIAL.

            CALL SCREEN '0121' STARTING AT 10 2.

          ENDIF.

* << Fim da inclusão

        WHEN 'CRIARNFR'.

          PERFORM cria_nota_fiscal_r.

        WHEN OTHERS.

          IF NOT okcode IS INITIAL.

            MESSAGE s015 WITH text-006.

          ENDIF.

      ENDCASE.

    ENDIF.

    CASE okcode.

      WHEN 'DRAFT'.

...

 

...

          ELSEIF NOT /pws/zycie041-transpnac IS INITIAL.

            PERFORM cria_nota_fiscal_g.

          ENDIF.

        WHEN 'VISUA'.

          v_visualiza = 'X'.

          PERFORM ver_rateio.

        WHEN 'FUNDAP' .

          IF /pws/zycie001-modalidade EQ '05' AND

             /pws/zycie001-tpdecl EQ 'DI'.

            PERFORM call_fundap.

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

          ENDIF.

        WHEN 'LOTE'.

          PERFORM verifica_lote.

          IF wa_zycie042 IS INITIAL AND wa_zycie044 IS INITIAL.

            MESSAGE w015 WITH text-118.

          ELSEIF NOT v_suj_lote IS INITIAL.

            CALL SCREEN '0121' STARTING AT 10 2.

* << Fim da inclusão

          ENDIF.

      ENDCASE.

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

      CASE okcode.

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

        WHEN 'LOTE'.

          PERFORM verifica_lote.

          IF wa_zycie042 IS INITIAL AND wa_zycie044 IS INITIAL.

            MESSAGE s015 WITH text-118.

          ELSEIF NOT v_suj_lote IS INITIAL.

            CALL SCREEN '0121' STARTING AT 10 2.

          ENDIF.

* << Fim da inclusão

        WHEN 'OBS'.

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

          CALL SCREEN '0110' STARTING AT 5 18.

* << Fim da exclusão

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

          CALL SCREEN '0120' STARTING AT 5 18.

* << Fim da inclusão

        WHEN 'NFR1'.

          GET CURSOR FIELD v_campo VALUE v_valor.

          IF v_campo EQ '/PWS/ZYCIE042-DOCNUM' AND NOT v_valor = 0.

...

 

...

            ENDIF.

            LEAVE TO SCREEN 0.

          ELSE.

            MESSAGE i015 WITH text-111 text-051.

          ENDIF.

        WHEN 'EXIT'.

          LEAVE TO SCREEN 0.

      ENDCASE.

  ENDCASE.

ENDMODULE.

* >> Início da inclusão:

MODULE alimenta_zycit223 INPUT.

  IF NOT wa_zycie042 IS INITIAL.

    MOVE: wa_zycie042-ebeln      TO  itab_zycit223-ebeln,

          wa_zycie042-ebelp      TO  itab_zycit223-ebelp,

          wa_zycie042-nrseqnf    TO  itab_zycit223-nrseqnf,

          wa_zycie042-nrseq      TO  itab_zycit223-nrseq,

          wa_zycie042-nfglobal   TO  itab_zycit223-nfglobal,

          space                  TO  itab_zycit223-nfremessa,

          wa_zycie042-docnum     TO  itab_zycit223-docnum,

          /pws/zycie223-seq           TO  itab_zycit223-seq,

          /pws/zycie223-lote          TO  itab_zycit223-lote,

          /pws/zycie223-qtde          TO  itab_zycit223-qtde,

          /pws/zycie223-nrvolume      TO  itab_zycit223-nrvolume,

          /pws/zycie223-tpvolume      TO  itab_zycit223-tpvolume,

          /pws/zycie223-certificado   TO  itab_zycit223-certificado,

          /pws/zycie223-lote_forn     TO  itab_zycit223-lote_forn,

          /pws/zycie223-dt_vencto     TO  itab_zycit223-dt_vencto,

          /pws/zycie223-dt_producao   TO  itab_zycit223-dt_producao.

  ELSEIF NOT wa_zycie044 IS INITIAL.

    MOVE: wa_zycie044-ebeln      TO  itab_zycit223-ebeln,

          wa_zycie044-ebelp      TO  itab_zycit223-ebelp,

          wa_zycie044-nrseqnf    TO  itab_zycit223-nrseqnf,

          wa_zycie044-nrseq      TO  itab_zycit223-nrseq,

          wa_zycie044-nfglobal   TO  itab_zycit223-nfglobal,

          wa_zycie044-nfremessa  TO  itab_zycit223-nfremessa,

          wa_zycie044-docnum     TO  itab_zycit223-docnum,

          /pws/zycie223-seq           TO  itab_zycit223-seq,

          /pws/zycie223-lote          TO  itab_zycit223-lote,

          /pws/zycie223-qtde          TO  itab_zycit223-qtde,

          /pws/zycie223-nrvolume      TO  itab_zycit223-nrvolume,

          /pws/zycie223-tpvolume      TO  itab_zycit223-tpvolume,

          /pws/zycie223-certificado   TO  itab_zycit223-certificado,

          /pws/zycie223-lote_forn     TO  itab_zycit223-lote_forn,

          /pws/zycie223-dt_vencto     TO  itab_zycit223-dt_vencto,

          /pws/zycie223-dt_producao   TO  itab_zycit223-dt_producao.

  ENDIF.

  MODIFY itab_zycit223 INDEX tc_lote-current_line.

  IF sy-subrc NE 0.

    APPEND itab_zycit223.

  ENDIF.

ENDMODULE.

MODULE limpa_linhas INPUT.

  CLEAR: v_soma_qtde.

  IF NOT wa_zycie042 IS INITIAL.

    LOOP AT itab_zycit223 WHERE nrseq = wa_zycie042-nrseq

                         AND nrseqnf  = wa_zycie042-nrseqnf

                         AND nfglobal = wa_zycie042-nfglobal

                         AND ebeln    = wa_zycie042-ebeln

                         AND ebelp    = wa_zycie042-ebelp.

      v_soma_qtde = itab_zycit223-qtde + v_soma_qtde.

    ENDLOOP.

  ELSEIF NOT wa_zycie044 IS INITIAL.

    LOOP AT itab_zycit223 WHERE nrseq = wa_zycie044-nrseq

                         AND nrseqnf  = wa_zycie044-nrseqnf

                         AND nfglobal = wa_zycie044-nfglobal

                         AND ebeln    = wa_zycie044-ebeln

                         AND ebelp    = wa_zycie044-ebelp.

      v_soma_qtde = itab_zycit223-qtde + v_soma_qtde.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE user_command_0121 INPUT.

  DATA:   v_seq  TYPE   i.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI016'

                              'DNF020'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'RCB022'  BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

              (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_exec_okcode IS INITIAL.

    CASE okcode.

      WHEN 'SAVE'.

        DELETE /pws/zycit223 FROM TABLE itab_zycit223_del.

        REFRESH itab_zycit223_del. CLEAR itab_zycit223_del.

        DELETE itab_zycit223 WHERE qtde IS initial.

        IF v_remessa = 'X'.

          IF NOT v_soma_qtde = wa_zycie044-qtd_item.

            IF itab_zycit223-lote         IS INITIAL AND

               itab_zycit223-qtde         IS INITIAL AND

               itab_zycit223-nrvolume     IS INITIAL AND

               itab_zycit223-tpvolume     IS INITIAL AND

               itab_zycit223-certificado  IS INITIAL AND

               itab_zycit223-lote_forn    IS INITIAL AND

               itab_zycit223-dt_vencto    IS INITIAL AND

               itab_zycit223-dt_producao  IS INITIAL.

            ELSE.

              MESSAGE i015 WITH text-121 text-122.

              EXIT.

            ENDIF.

          ELSE.

            CLEAR v_seq.

            LOOP AT itab_zycit223.

              v_seq = v_seq + 1.

              MOVE: itab_zycit044-ebeln  TO itab_zycit223-ebeln,

                 itab_zycit044-ebelp     TO itab_zycit223-ebelp,

                 itab_zycit044-nrseqnf   TO itab_zycit223-nrseqnf,

                 itab_zycit044-nrseq     TO itab_zycit223-nrseq,

                 itab_zycit044-nfglobal  TO itab_zycit223-nfglobal,

                 itab_zycit044-nfremessa TO itab_zycit223-nfremessa,

                 itab_zycit044-docnum    TO itab_zycit223-docnum,

                 v_seq                   TO itab_zycit223-seq.

              MODIFY itab_zycit223.

            ENDLOOP.

          ENDIF.

        ELSEIF v_remessa = ' '.

          CLEAR v_seq.

          IF NOT v_soma_qtde = wa_zycie042-qtd_iten.

            IF itab_zycit223-lote         IS INITIAL AND

               itab_zycit223-qtde         IS INITIAL AND

               itab_zycit223-nrvolume     IS INITIAL AND

               itab_zycit223-tpvolume     IS INITIAL AND

               itab_zycit223-certificado  IS INITIAL AND

               itab_zycit223-lote_forn    IS INITIAL AND

               itab_zycit223-dt_vencto    IS INITIAL AND

               itab_zycit223-dt_producao  IS INITIAL.

            ELSE.

              MESSAGE i015 WITH text-121 text-122.

              EXIT.

            ENDIF.

          ELSE.

            LOOP AT itab_zycit223.

              v_seq = v_seq + 1.

              MOVE: itab_zycit042-ebeln  TO itab_zycit223-ebeln,

                 itab_zycit042-ebelp     TO itab_zycit223-ebelp,

                 itab_zycit042-nrseqnf   TO itab_zycit223-nrseqnf,

                 itab_zycit042-nrseq     TO itab_zycit223-nrseq,

                 itab_zycit042-nfglobal  TO itab_zycit223-nfglobal,

                 space                   TO itab_zycit223-nfremessa,

                 itab_zycit042-docnum    TO itab_zycit223-docnum,

                 v_seq                   TO itab_zycit223-seq.

              MODIFY itab_zycit223.

            ENDLOOP.

          ENDIF.

        ENDIF.

        IF v_remessa = 'X'.

          DELETE FROM /pws/zycit223 WHERE nrseq  = wa_zycie044-nrseq

                              AND nrseqnf   = wa_zycie044-nrseqnf

                              AND nfglobal  = wa_zycie044-nfglobal

                              AND nfremessa = wa_zycie044-nfremessa

                              AND ebeln     = wa_zycie044-ebeln

                              AND ebelp     = wa_zycie044-ebelp.

        ELSE.

          DELETE FROM /pws/zycit223 WHERE nrseq = wa_zycie042-nrseq

                              AND nrseqnf  = wa_zycie042-nrseqnf

                              AND nfglobal = wa_zycie042-nfglobal

                              AND ebeln    = wa_zycie042-ebeln

                              AND ebelp    = wa_zycie042-ebelp.

        ENDIF.

        MODIFY /pws/zycit223 FROM TABLE itab_zycit223.

        LEAVE TO SCREEN 0.

      WHEN 'CANC'.

        LEAVE TO SCREEN 0.

      WHEN 'DELE'.

        IF v_remessa = 'X' AND NOT wa_zycie044-docnum IS INITIAL.

          CLEAR okcode.

          MESSAGE i015 WITH text-123.

          EXIT.

        ELSEIF v_remessa = ' ' AND NOT wa_zycie042-docnum IS INITIAL.

          CLEAR okcode.

          MESSAGE i015 WITH text-123.

          EXIT.

        ENDIF.

        LOOP AT itab_zycit223 WHERE mark = 'X'.

        ENDLOOP.

        IF sy-subrc NE 0.

          MESSAGE i015 WITH text-l03.

        ELSE.

          LOOP AT itab_zycit223 WHERE mark = 'X'.

            MOVE itab_zycit223 TO itab_zycit223_del.

            APPEND itab_zycit223_del.

            DELETE itab_zycit223.

          ENDLOOP.

        ENDIF.

      WHEN 'MALL'.

        LOOP AT itab_zycit223.

          itab_zycit223-mark = 'X'.

          MODIFY itab_zycit223.

        ENDLOOP.

      WHEN 'DALL'.

        LOOP AT itab_zycit223.

          itab_zycit223-mark = ' '.

          MODIFY itab_zycit223.

        ENDLOOP.

    ENDCASE.

  ENDIF.

  CLEAR okcode.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI016O01

 

...

MODULE set_screen_nfr OUTPUT.

  CASE sy-dynnr.

    WHEN '0200' OR '0210' .

      LOOP AT SCREEN.

        IF v_status_s_nfr = 0  AND screen-group1 NE 'ALT'.

          screen-input = '0'.

          MODIFY SCREEN.

        ELSEIF v_status_s_nfr = 1.

          IF screen-group1 NE 'OUT'.

            screen-input = '1'.

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

          ELSEIF screen-group1 EQ 'OUT' AND /pws/zycie043-nfexterna EQ

 'X'

* << Fim da exclusão

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

          ELSEIF screen-group1 EQ 'OUT' AND

                /pws/zycie043-nfexterna EQ 'X'

* << Fim da inclusão

             AND screen-group2 EQ 'NF'.

            screen-input = '1'.

          ELSE.

            screen-input = '0'.

          ENDIF.

          MODIFY SCREEN.

        ENDIF.

        IF screen-name = '/PWS/ZYCIE043-NFEXTERNA' OR

           screen-name = '/PWS/ZYCIE043-IMPRIMINF'.

          LOOP AT itab_zycit044 WHERE docnum NE 0.

          ENDLOOP.

          IF sy-subrc EQ 0.

            screen-input = '0'.

          ELSE.

            screen-input = '1'.

          ENDIF.

          MODIFY SCREEN.

        ENDIF.

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

        IF screen-name = 'ITAB_ZYCIT044-MARK'.

          screen-input = '1'.

          MODIFY SCREEN.

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

      CLEAR wa_cols.

      IF v_status_s_nfr = 0.

        LOOP AT tc_itens_nfr-cols INTO wa_cols.

          wa_cols-screen-input = '0'.

          MODIFY tc_itens_nfr-cols FROM wa_cols.

        ENDLOOP.

      ELSEIF v_status_s_nfr = 1.

        LOOP AT tc_itens_nfr-cols INTO wa_cols.

          IF wa_cols-screen-group1 NE 'OUT'.

...

 

...

  SET PF-STATUS '0300' EXCLUDING itab_pf_status.

  SET TITLEBAR '0300'.

ENDMODULE.

MODULE carrega_zycie042_c OUTPUT.

  PERFORM carrega_zycie042_c.

  tc_itens_nfc-lines = tc_itens_nfc-lines + 15.

ENDMODULE.

MODULE set_screen_tc_nfg OUTPUT.

  LOOP AT SCREEN.

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

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

      IF screen-name EQ 'ITAB_ZYCIT042-MARK'.

        screen-input = '1'.

      ELSE.

* << Fim da inclusão

      screen-input = 0.

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

      ENDIF.

* << Fim da inclusão

    ELSE.

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

      IF screen-group1 EQ 'OUT' AND /pws/zycie041-nfexterna EQ 'X'

         AND screen-group2 EQ 'NF' AND /pws/zycie042-docnum IS

INITIAL

         AND NOT /pws/zycie042-ebeln IS INITIAL.

* << Fim da exclusão

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

      IF screen-group1           EQ 'OUT'   AND

         /pws/zycie041-nfexterna EQ 'X'     AND

         screen-group2           EQ 'NF'    AND

         /pws/zycie042-docnum    IS INITIAL AND

         NOT /pws/zycie042-ebeln IS INITIAL.

* << Fim da inclusão

        screen-input = '1'.

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

      ELSEIF screen-name EQ 'ITAB_ZYCIT042-MARK' AND

         ( /pws/zycie042-docnum IS INITIAL OR v_modalidade = '99' ).

* << Fim da exclusão

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

      ELSEIF screen-name EQ 'ITAB_ZYCIT042-MARK'.

* << Fim da inclusão

        screen-input = '1'.

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

      ELSEIF screen-group1 EQ 'ENF' AND /pws/zycie042-docnum IS

INITIAL.

* << Fim da exclusão

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

      ELSEIF screen-group1 EQ 'ENF' AND

                                    /pws/zycie042-docnum IS INITIAL.

* << Fim da inclusão

        screen-input = '1'.

      ELSE.

        screen-input = '0'.

      ENDIF.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

  v_local = 'TBL_CTRL'.

ENDMODULE.

MODULE seta_table OUTPUT.

...

 

...

ENDMODULE.

MODULE status_0130 OUTPUT.

  SET PF-STATUS '0130'.

ENDMODULE.

MODULE status OUTPUT.

  CASE sy-dynnr.

    WHEN '0140' .

      SET PF-STATUS '0140'.

  ENDCASE.

ENDMODULE.

* >> Início da inclusão:

MODULE inibe_linhas OUTPUT.

  CLEAR: tqss1.

  IF v_remessa = 'X'.

    LOOP AT SCREEN.

      IF screen-name = '/PWS/ZYCIE223-DT_PRODUCAO'.

        IF NOT v_validade IS INITIAL.

          screen-invisible = '0'.

          MODIFY SCREEN.

        ELSE.

          screen-input     = '0'.

          screen-invisible = '1'.

        ENDIF.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-CERTIFICADO'.

        screen-input     = '1'.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-LOTE'.

        IF NOT v_suj_lote IS INITIAL.

          screen-input     = '1'.

        ELSE.

          screen-input     = '0'.

        ENDIF.

        MODIFY SCREEN.

      ELSE.

        screen-input     = '1'.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ELSE.

    LOOP AT SCREEN.

      IF screen-name = '/PWS/ZYCIE223-DT_PRODUCAO'.

        IF NOT v_validade IS INITIAL.

          screen-invisible = '0'.

        ELSE.

          screen-input     = '0'.

          screen-invisible = '1'.

        ENDIF.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-CERTIFICADO'.

        screen-input     = '1'.

        MODIFY SCREEN.

      ELSEIF screen-name = '/PWS/ZYCIE223-LOTE'.

        IF NOT v_suj_lote IS INITIAL.

          screen-input     = '1'.

        ELSE.

          screen-input     = '0'.

        ENDIF.

        MODIFY SCREEN.

      ELSE.

        screen-input     = '1'.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ENDIF.

  IF NOT wa_zycie042 IS INITIAL.

    IF v_suj_lote NE 'X'.

      LOOP AT SCREEN.

        screen-input = 0.

        MODIFY SCREEN.

      ENDLOOP.

    ELSE.

      LOOP AT SCREEN.

        IF screen-name EQ '/PWS/ZYCIE223-LOTE'.

          screen-input = 1.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-QTDE'.

          screen-input = 1.

          screen-required = 1.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-NRVOLUME'.

          screen-input = 1.

          screen-required = 0.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-TPVOLUME'.

          SELECT SINGLE * FROM tqss1

           INTO tqss1

            WHERE werks EQ wa_zycie042-werks.

          IF sy-subrc = 0.

            IF tqss1-kzgeb EQ '+'.

              screen-input = 1.

              screen-required = 1.

            ELSE.

              screen-input = 1.

              screen-required = 0.

            ENDIF.

          ELSE.

            screen-input = 1.

            screen-required = 0.

          ENDIF.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-LOTE_FORN'.

          screen-input = 1.

        ENDIF.

        MODIFY SCREEN.

      ENDLOOP.

    ENDIF.

    SELECT SINGLE * FROM ekpo WHERE

     ebeln = wa_zycie042-ebeln AND

     ebelp = wa_zycie042-ebelp.

    IF sy-subrc = 0 AND NOT ekpo-zgtyp IS INITIAL.

      v_certificado = 'X'.

    ENDIF.

  ELSEIF NOT wa_zycie044 IS INITIAL.

    IF v_suj_lote NE 'X'.

      LOOP AT SCREEN.

        screen-input = 0.

        MODIFY SCREEN.

      ENDLOOP.

    ELSE.

      LOOP AT SCREEN.

        IF screen-name EQ '/PWS/ZYCIE223-LOTE'.

          screen-input = 1.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-QTDE'.

          screen-input = 1.

          screen-required = 1.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-NRVOLUME'.

          screen-input = 1.

          screen-required = 0.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-TPVOLUME'.

          SELECT SINGLE * FROM tqss1

           INTO tqss1

            WHERE werks EQ itab_zycit003-werks.

          IF sy-subrc = 0.

            IF tqss1-kzgeb EQ '+'.

              screen-input = 1.

              screen-required = 1.

            ELSE.

              screen-input = 1.

              screen-required = 0.

            ENDIF.

          ELSE.

            screen-input = 1.

            screen-required = 0.

          ENDIF.

        ELSEIF screen-name EQ '/PWS/ZYCIE223-LOTE_FORN'.

          screen-input = 1.

        ENDIF.

        MODIFY SCREEN.

      ENDLOOP.

    ENDIF.

    SELECT SINGLE * FROM ekpo WHERE

     ebeln = wa_zycie044-ebeln AND

     ebelp = wa_zycie044-ebelp.

    IF sy-subrc = 0 AND NOT ekpo-zgtyp IS INITIAL.

      v_certificado = 'X'.

    ENDIF.

  ENDIF.

  IF NOT wa_zycie042-docnum IS INITIAL.

    LOOP AT SCREEN.

      screen-input     = '0'.

      MODIFY SCREEN.

    ENDLOOP.

  ENDIF.

  IF NOT wa_zycie044-docnum IS INITIAL.

    LOOP AT SCREEN.

      screen-input     = '0'.

      MODIFY SCREEN.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE alimenta_zycie223 OUTPUT.

  MOVE: itab_zycit223-lote          TO   /pws/zycie223-lote,

        itab_zycit223-qtde          TO   /pws/zycie223-qtde,

        itab_zycit223-nrvolume      TO   /pws/zycie223-nrvolume,

        itab_zycit223-tpvolume      TO   /pws/zycie223-tpvolume,

        itab_zycit223-certificado   TO   /pws/zycie223-certificado,

        itab_zycit223-lote_forn     TO   /pws/zycie223-lote_forn,

        itab_zycit223-dt_vencto     TO   /pws/zycie223-dt_vencto,

        itab_zycit223-dt_producao   TO   /pws/zycie223-dt_producao.

ENDMODULE.

MODULE status_0121 OUTPUT.

  SET PF-STATUS '0121'.

  SET TITLEBAR '0121'.

ENDMODULE.

MODULE set_screen_0121 OUTPUT.

  DESCRIBE TABLE itab_zycit223 LINES v_linhas_110.

  tc_lote-lines = v_linhas_110 + 10.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI016TOP

 

...

           vltot(16)    TYPE c,

           advalicms(6) TYPE c,

           advalipi(6)  TYPE c,

           taxval(15)   TYPE c.

DATA: END OF itab_itens_txt.

CONTROLS:

  tc_itens_nfg TYPE TABLEVIEW USING SCREEN '0100',

  tc_itens_nfr TYPE TABLEVIEW USING SCREEN '0200',

  tc_lista_nfr TYPE TABLEVIEW USING SCREEN '0002',

  tc_itens_nfc TYPE TABLEVIEW USING SCREEN '0300',

* >> Início da exclusão:

  tc_resum_nfc TYPE TABLEVIEW USING SCREEN '0400'.

* << Fim da exclusão

* >> Início da inclusão:

  tc_resum_nfc TYPE TABLEVIEW USING SCREEN '0400',

  tc_lote      TYPE TABLEVIEW USING SCREEN '0121'.

* << Fim da inclusão

DATA:

  v_despmens    LIKE /pws/zycee007-netoth,

  v_resposta(1) TYPE c,

  v_bukrs       LIKE /pws/zycit085-bukrs,

  v_status_s,

  wa_cols       TYPE cxtab_column,

  v_campo(25),

  v_belnr2(10),

  v_year        LIKE bkpf-gjahr,

  v_line(10)    TYPE n,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI016X01

 

TABLES:

* >> Início da inclusão:

        /pws/zycie223,

        tqss1,

        marc,

* << Fim da inclusão

        /pws/zycit000,

        /pws/zycit062,

        /pws/zycit036,

        /pws/zycee007,

        t001,

        adrc,

       /pws/zycie041.

TABLES:  /pws/zycit478 ,

         /pws/zycit480 .

TABLES:   dd03l.

...

 

...

DATA: END OF itab_zycit043_lista.

DATA  v_status_s_nfr.

DATA: v_local(10).

DATA wa_j1bnfdoc TYPE j_1bnfdoc.

DATA: v_conting TYPE /pws/zycie042-docnum.

DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.

DATA: itab_zycit374     TYPE /pws/zycit374 OCCURS 0 WITH HEADER LINE,

      itab_zycit100m    TYPE /pws/zycit100 OCCURS 0 WITH HEADER LINE,

      itab_zycit036m    TYPE /pws/zycit036 OCCURS 0,

      itab_zycit036_dim TYPE /pws/zycit036 OCCURS 0.

* >> Início da inclusão:

DATA:   v_suj_lote    LIKE mara-xchpf,

        v_validade    LIKE mara-mhdhb,

        v_remessa,

        v_soma_qtde   LIKE /pws/zycie042-qtd_iten,

        v_certificado,

        v_linhas_110  TYPE i,

        wa_zycie042   LIKE /pws/zycie042,

        wa_zycie044   LIKE /pws/zycie044.

DATA: BEGIN OF itab_zycit223 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit223.

DATA: mark.

DATA: END OF itab_zycit223.

DATA: BEGIN OF itab_zycit223_del OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit223.

DATA: mark.

DATA: END OF itab_zycit223_del.

* << Fim da inclusão

DATA: END OF COMMON PART a.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI016

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 118

 

Texto: (17 caracteres)

"Marcar uma linha."

 

Comprimento máximo: 17

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 119

 

Texto: (39 caracteres)

"Lote já preenchido no Pedido de Compra."

 

Comprimento máximo: 39

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 120

 

Texto: (28 caracteres)

"Material não sujeito a Lote."

 

Comprimento máximo: 28

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 121

 

Texto: (44 caracteres)

"Quantidade nos lotes diferente da quantidade"

 

Comprimento máximo: 54

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 122

 

Texto: (8 caracteres)

"do item."

 

Comprimento máximo: 8

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 123

 

Texto: (49 caracteres)

"Impossível deletar o lote porque a NF foi criada."

 

Comprimento máximo: 49

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 124

 

Texto: (25 caracteres)

"Marcar somente uma linha."

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: L03

 

Texto: (38 caracteres)

"Selecionar ao menos uma linha na tela."

 

Comprimento máximo: 38