CE PLUS - Nota 000169

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

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

Data/Hora Última Alteração: 21/02/2011 13:43:26

Descrição da Nota: DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO

Sintoma

O Embarque de Exportação não trata o processo de Consignação.

 

 

Solução

Aplicar os ajustes constantes nessa nota de atualização para permitir a criação de embarques de

consignação.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS

AUTHORITY-CHECK POR EMPRESA NA NOMEAÇÃO

EMBARQUE PERMITE ENVIO PARA CÂMBIO ANTES DE CONTABILIZAR COMISSÃO AGENTE

CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS

Informações Complementares

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

Nota Número 00169 Data: 20/10/2005 Hora: 09:47:32

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

 

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

Nota Número              : 00169

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00084

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

Referência às notas relacionadas:

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

 

00061  - 00001 - 6.0    - 00021  - CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS

00067  - 00002 - 6.0    - 00021  - AUTHORITY-CHECK POR EMPRESA NA NOMEAÇÃO

00071  - 00003 - 6.0    - 00021  - CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS

00130  - 00004 - 6.0    - 00021  - EMBARQUE PERMITE ENVIO PARA CÂMBIO ANTES DE CONTABILIZAR COMISSÃO

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

DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO

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

Palavras Chave:

EXPORTAÇÃO EMBARQUE CONSIGNAÇÃO

 

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

Objetos da nota:

DOCT /PWS/ZYCEM261

DOCT /PWS/ZYCEM262

DOCU NA/PWS/ZYCEM261

DOCU NA/PWS/ZYCEM262

DOCU NA/PWS/ZYCEM263

DOCU NA/PWS/ZYCEM264

DOMD /PWS/ZYCED006

DOMD /PWS/ZYCED344

DOMD /PWS/ZYCED357

DYNP /PWS/SAPMZYCE003                        0100

DYNP /PWS/SAPMZYCE003                        0101

DYNP /PWS/SAPMZYCE003                        0103

DYNP /PWS/SAPMZYCE003                        0104

FUNC /PWS/ZYCE_ENQUEUE_ZYCET001

FUNC /PWS/ZYCE_TRATA_ORDEM

INDX /PWS/ZYCET002                 003

INDX /PWS/ZYCET034                 001

INDX /PWS/ZYCET034                 002

MESS /PWS/ZYCEM261

MESS /PWS/ZYCEM262

MESS /PWS/ZYCEM263

MESS /PWS/ZYCEM264

REPS /PWS/MZYCE003F01

REPS /PWS/MZYCE003F02

REPS /PWS/MZYCE003TCD

REPS /PWS/MZYCE003TCP

REPS /PWS/MZYCE003TIA

REPS /PWS/MZYCE003TOP

REPS /PWS/MZYCE006F01

REPS /PWS/MZYCE027F01

REPS /PWS/MZYCE040F01

REPS /PWS/MZYCE103F01

REPS /PWS/MZYCE110F01

REPS /PWS/ZYCER007

REPS /PWS/ZYCER203

REPS /PWS/ZYCER227

REPT /PWS/SAPMZYCE003

TABD /PWS/ZYCEE002

TABD /PWS/ZYCET002

TABD /PWS/ZYCET002A

 

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

Modificações efetuadas em DOMD /PWS/ZYCED006

No Domínio /PWS/ZYCED006, foram incluídos dois valores fixos na área de valores:

 

CO Ordem de Consignação

VC Venda da Consignação

 

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

Modificações efetuadas em DOMD /PWS/ZYCED344

No Domínio /PWS/ZYCED344, foram alterados os textos dos seguintes valores fixos:

 

V Venda de Consignação

C Exportação em Consignação

 

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

Modificações efetuadas em DOMD /PWS/ZYCED357

No Domínio /PWS/ZYCED357, foram alterados os textos dos seguintes valores fixos:

 

C Embarque de Consignação

 

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

Modificações efetuadas em TABD /PWS/ZYCEE002

 

Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura /PWS/ZYCEE002:

 

CONSIG        CHAR1

NRSEQ_CONSIG  /PWS/ZYCEL001

VBELN_CONSIG  VBELN

POSNR_CONSIG  POSNR

 

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

Modificações efetuadas em TABD /PWS/ZYCET002

 

Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura /PWS/ZYCET002:

 

CONSIG        CHAR1

NRSEQ_CONSIG  /PWS/ZYCEL001

VBELN_CONSIG  VBELN

POSNR_CONSIG  POSNR

 

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

Modificações efetuadas em TABD /PWS/ZYCET002A

 

Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura

/PWS/ZYCET002A:

 

CONSIG        CHAR1

NRSEQ_CONSIG  /PWS/ZYCEL001

VBELN_CONSIG  VBELN

POSNR_CONSIG  POSNR

 

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

Modificações efetuadas em FUNC /PWS/ZYCE_TRATA_ORDEM

 

FUNCTION /pws/zyce_trata_ordem.

...

      READ TABLE itab_doc_referencia INDEX v_index.

      MOVE: itab_zycee085-vbeln_vf TO itab_doc_referencia-vbeln_ref,

            itab_zycee085-posnr    TO itab_doc_referencia-posnr_ref.

      MODIFY itab_doc_referencia INDEX v_index.

    ENDLOOP.

  ENDIF.

 

  CALL CUSTOMER-FUNCTION '001'

   IMPORTING

    v_subrc = v_subrc.

 

  IF NOT v_subrc IS INITIAL.

    LOOP AT itab_zycee085_aux.

      v_index = sy-tabix.

      READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.

 

      IF sy-subrc = 0.

        CASE itab_zycet023-tipodoc.

* >> Início da Exclusão <<

          WHEN 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

          WHEN 'OV' OR

               'CO' OR

               'VC'.

* >> Fim da Inclusão <<

            READ TABLE itab_estorno WITH KEY

                                   vbeln = itab_zycee085_aux-vbeln_vf

                                    fksto = 'X'.

            IF sy-subrc = 0 .

              MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

              APPEND t_estorno.

              DELETE itab_zycee085_aux INDEX v_index.

 

              MOVE: t_estorno-vbeln_vf TO wa_vbco6-vbeln,

                    t_estorno-posnr    TO wa_vbco6-posnr.

 

              CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'

                   EXPORTING

                        comwa    = wa_vbco6

                   TABLES

                        vbfa_tab = itab_vbfa_aux.

 

              IF NOT itab_vbfa_aux[] IS INITIAL.

                READ TABLE itab_vbfa_aux

                     WITH KEY vbelv   = t_estorno-vbeln_vf

                              vbtyp_n = 'N'.

                IF sy-subrc EQ 0.

                  DELETE itab_zycee085_aux

                         WHERE  vbeln_vf   = itab_vbfa_aux-vbeln

                           OR   vbeln_vf   = t_estorno-vbeln_vf.

 

                  DELETE itab_zycee085

                        WHERE  vbeln_vf   = itab_vbfa_aux-vbeln

                           OR  vbeln_vf   = t_estorno-vbeln_vf.

                ENDIF.

              ENDIF.

            ENDIF.

 

* >> Início da Exclusão <<

          WHEN 'OD'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

          WHEN 'OD' OR

               'DR'.

* >> Fim da Inclusão <<

            READ TABLE itab_estorno WITH KEY

                              vbeln = itab_zycee085_aux-vbeln_vf

                              fksto = 'X'.

...

                  DELETE itab_zycee085

                          WHERE nfnum    = itab_zycee085_aux-nfnum

                          AND   vbeln_va = itab_zycee085_aux-vbeln_va

                          AND   posnr    = itab_zycee085_aux-aupos

                          AND   vbeln_vf = itab_zycee085_aux-vbeln_vf

                          AND   posnr    = itab_zycee085_aux-posnr

                          AND   vbeln_vl = itab_zycee085_aux-vbeln_vl

                         AND   posnl    = itab_zycee085_aux-posnl

                  DELETE itab_zycee085_aux INDEX v_index.

                ENDIF.

              ENDIF.

            ENDIF.

 

* >> Início da Exclusão <<

          WHEN 'OC' OR 'DR'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

          WHEN 'OC'.

* >> Fim da Inclusão <<

 

            CLEAR v_continue.

            READ TABLE itab_estorno WITH KEY

                                vbeln = itab_zycee085_aux-vbeln_vf

                                fksto = 'X'.

 

            IF sy-subrc = 0 .

              MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

              APPEND t_estorno.

...

 

      itab_zycee085-nrseq = v_estornado.

      MODIFY itab_zycee085 TRANSPORTING nrseq

          WHERE vbeln_vf = itab_estorno-vbeln.

 

    ENDLOOP.

 

    SORT itab_zycee085 BY nrseq.

    itab_zycee085_aux[] = itab_zycee085[].

 

 

    LOOP AT itab_zycee085_aux.

      v_index = sy-tabix.

      READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.

 

      IF sy-subrc = 0.

        CASE itab_zycet023-tipodoc.

* >> Início da Exclusão <<

          WHEN 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

          WHEN 'OV' OR

               'CO' OR

               'VC'.

* >> Fim da Inclusão <<

            READ TABLE itab_estorno WITH KEY

                                  vbeln = itab_zycee085_aux-vbeln_vf

                                  fksto = 'X'.

            IF sy-subrc = 0 .

              MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.

              APPEND t_estorno.

              CLEAR  t_estorno.

 

              READ TABLE itab_estorno WITH KEY

                                     kidno = itab_zycee085_aux-vbeln_vf

                                      fksto = ' '.

...

 

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

Modificações efetuadas em REPS /PWS/MZYCE027F01

 

form consiste_tipoordem.

  loop at itab_zycet002.

    v_tabix = sy-tabix.

    read table itab_zycet020 with key auart =

 itab_zycet002-auart.

    if sy-subrc eq 0.

* >> Início da Exclusão <<

      if  itab_zycet020-tipodoc <> 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      if ( itab_zycet020-tipodoc <> 'OV' and

           itab_zycet020-tipodoc <> 'VC' and

           itab_zycet020-tipodoc <> 'CO' ).

* >> Fim da Inclusão <<

 

        delete itab_zycet002 index v_tabix.

* >> Início da Exclusão <<

      elseif  itab_zycet020-tipodoc <> 'OV' and

        itab_zycet020-vinc_pex <>  '1'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      elseif ( itab_zycet020-tipodoc <> 'OV' and  "Tipos permitidos.

               itab_zycet020-tipodoc <> 'VC' and

               itab_zycet020-tipodoc <> 'CO' ) and

               itab_zycet020-vinc_pex <>  '1'.

* >> Fim da Inclusão <<

        delete itab_zycet002 index v_tabix.

      endif.

    endif.

    move itab_zycet002-fkimg to itab_zycet002-fkimg_pex.

    modify itab_vinc index v_tabix.

  endloop.

endform.                    " consiste_tipoordem

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE040F01

 

FORM consist_vbeln_va.

  IF NOT /pws/zycee271-bstkd IS INITIAL.

    SELECT SINGLE *

    FROM vbak

    WHERE vbeln = /pws/zycee265-vbeln_va.

    IF sy-subrc = 0.

      SELECT SINGLE *

      FROM /pws/zycet020

      WHERE auart = vbak-auart.

      IF sy-subrc = 0.

* >> Início da Exclusão <<

        IF /pws/zycet020-tipodoc = 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

        IF /pws/zycet020-tipodoc = 'OV' or

           /pws/zycet020-tipodoc = 'VC' or

           /pws/zycet020-tipodoc = 'CO'.

* >> Fim da Inclusão <<

          SELECT SINGLE *

          FROM vbkd

          WHERE vbeln = /pws/zycee265-vbeln_va.

          IF sy-subrc = 0.

            IF /pws/zycee271-bstkd NE vbkd-bstkd.

              v_erro = 1.

            ENDIF.

          ENDIF.

        ELSE.

          v_erro = 2.

        ENDIF.

      ENDIF.

    ELSE.

      v_erro = 3.

    ENDIF.

  ENDIF.

ENDFORM.                    " consist_vbeln_va

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE103F01

 

FORM fill_sint2.

  DATA: lvlme LIKE it108-vlme.

  CLEAR: svltot.

  REFRESH: it111. CLEAR it111.

 

* Seleciona tipo da ordem de venda de acordo com empresa

  SELECT *

    FROM /pws/zycet020

    INTO TABLE it020

    WHERE bukrs = /pws/zycee106-bukrs.

...

    lvlme = it108-vlme.

    IF lvlme < 0.

      lvlme = lvlme * -1.

    ENDIF.

    READ TABLE it020 WITH KEY auart = it108-auart.

    IF sy-subrc EQ 0.

* >> Início da Exclusão <<

      IF NOT ( it020-tipodoc EQ 'OC' OR it020-tipodoc EQ 'OV' ).

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      IF NOT ( it020-tipodoc EQ 'OC' OR

               it020-tipodoc EQ 'OV' OR

               it020-tipodoc EQ 'VC' OR

               it020-tipodoc EQ 'CO' OR ).

* >> Fim da Inclusão <<

        lvlme = lvlme * -1.

        svltot = svltot - it108-netwr.

      ELSE.

        svltot = svltot + it108-netwr.

      ENDIF.

    ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE110F01

 

form selecionar_dados_embarque.

  select *

  from /pws/zycet020

  into table itab_zycet020

  where bukrs = /pws/zycee001-bukrs.

  select * from /pws/zycet002 into table itab_zycet002

          where nrseq = /pws/zycee001-nrseq.

...

 

* >> Início da Exclusão <<

          when 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

          when 'OV' OR 'VC' OR 'CO'.

* >> Fim da Inclusão <<

            move :

             itab_zycet002_aux-nrseq      to itab_zycet062_aux1-nrseq,

            itab_zycet002_aux-vbeln_va   to itab_zycet062_aux1-vbeln_va,

             itab_zycet002_aux-posnr      to itab_zycet062_aux1-posnr,

             itab_zycet002_aux-ntgew      to itab_zycet062_aux1-ntgew,

             itab_zycet002_aux-brgew      to itab_zycet062_aux1-brgew,

             itab_zycet002_aux-gewei      to itab_zycet062_aux1-gewei,

             itab_zycet002_aux-netpr_t    to itab_zycet062_aux1-netpr_t,

             itab_zycet002_aux-netpr      to itab_zycet062_aux1-netpr,

             itab_zycet002_aux-waers      to itab_zycet062_aux1-waers.

            append itab_zycet062_aux1.

        endcase.

      endif.

    endloop.

...

 

form trata_tipo_ordens.

* Seleciona Ordens de Complemento

  clear itab_devolucao.

  refresh itab_devolucao.

...

  loop at itab_zycet002_aux.

    v_index = sy-tabix.

    read table itab_zycet020 with key auart = itab_zycet002_aux-auart.

    case itab_zycet020-tipodoc.

* >> Início da Exclusão <<

      when 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      when 'OV' OR 'VC' OR 'CO'.

* >> Fim da Inclusão <<

        read table itab_estorno with key nfnum =

                                        itab_zycet002_aux-nfnum.

        if sy-subrc = 0.

          delete itab_zycet002_aux index v_index.

          delete itab_zycet002_aux where nfnum = itab_estorno-nfnum.

          delete itab_zycet002 where nfnum = itab_estorno-nfnum.

        else.

          read table itab_vbap with key

                                 vbeln = itab_zycet002_aux-vbeln_va

                                 posnr = itab_zycet002_aux-posnr.

          if sy-subrc = 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCER203

 

FORM imprime_relatorio.

  CLEAR : itab_zycet046, itab_zycet101, itab_zycet102,

   itab_zycet106,

          itab_zycet053.

  WRITE:  text-001 COLOR 1 INVERSE,

          50 p_nrseq.

...

              LOOP AT itab_zycet023

                      WHERE fkart EQ itab_zycet002-fkart

                        AND bukrs EQ itab_zycet002-bukrs.

* >> Início da Exclusão <<

                IF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                IF ( /pws/zycet020-tipodoc EQ 'OV' or

                     /pws/zycet020-tipodoc EQ 'VC' or

                     /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                   itab_zycet023-estorno NE 'X'.

                  WRITE: /  ' ',2 text-009 COLOR 2 INTENSIFIED OFF,

                         30 ' ',

                         31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                            HOTSPOT,

                            itab_zycet002-posnr COLOR 2

                                INTENSIFIED OFF NO-ZERO,

                         55 ' ',

                         56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                         66 ' ', 89 ' '.

* >> Início da Exclusão <<

                ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or

                     /pws/zycet020-tipodoc EQ 'VC' or

                     /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                         itab_zycet023-estorno EQ 'X'.

                  WRITE: /  ' ',2 text-013 COLOR 2 INTENSIFIED OFF,

                         30 ' ',

                         31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                         HOTSPOT,

                         itab_zycet002-posnr COLOR 2

                           INTENSIFIED OFF NO-ZERO,

                         55 ' ',

                         56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

...

        ELSE.

          LOOP AT itab_likp WHERE vbeln EQ itab_zycet002-vbeln_vl.

            IF itab_likp-vbeln <> v_likp-vbeln.

              WRITE: /  ' ', 2 text-008 COLOR 2 INTENSIFIED OFF,

                     30 ' ',

                     31 ' ',

                          31 itab_likp-vbeln COLOR 2 INTENSIFIED OFF

                          HOTSPOT,

                          itab_zycet002-posnl COLOR 2

                             INTENSIFIED OFF NO-ZERO,

                     55 ' ', 56 itab_likp-erdat COLOR 2 INTENSIFIED OFF,

                     66 ' ', 89 ' '.

              READ TABLE itab_vbup

                   WITH KEY vbeln = itab_zycet002-vbeln_va

                            posnr = itab_zycet002-posnl.

              IF sy-subrc EQ 0.

                IF itab_vbup-lfsta EQ space.

                  WRITE: 67 text-023 COLOR 3 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'A'.

                  WRITE: 67 text-024 COLOR 6 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'B'.

                  WRITE: 67 text-025 COLOR 5 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'C'.

                  WRITE: 67 text-026 COLOR 5.

                ENDIF.

              ENDIF.

              v_likp-vbeln = itab_likp-vbeln.

            ENDIF.

            LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf.

              IF v_vbeln_vf NE itab_zycet002-vbeln_vf.

               LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart

                                       AND bukrs EQ itab_zycet002-bukrs.

* >> Início da Exclusão <<

                 IF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                 IF ( /pws/zycet020-tipodoc EQ 'OV' or

                      /pws/zycet020-tipodoc EQ 'VC' or

                      /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                         itab_zycet023-estorno NE 'X'.

                    WRITE: /  ' ',2 text-009 COLOR 2 INTENSIFIED OFF,

                           30 ' ',

                           31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                              HOTSPOT,

                              itab_zycet002-posnr COLOR 2

                                  INTENSIFIED OFF NO-ZERO,

                           55 ' ',

                           56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                           66 ' ', 89 ' '.

* >> Início da Exclusão <<

                  ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                  ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or

                       /pws/zycet020-tipodoc EQ 'VC' or

                       /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                           itab_zycet023-estorno EQ 'X'.

                    WRITE: /  ' ',2 text-013 COLOR 2 INTENSIFIED OFF,

                           30 ' ',

                           31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                           HOTSPOT,

                           itab_zycet002-posnr COLOR 2

                             INTENSIFIED OFF NO-ZERO,

                           55 ' ',

                           56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                           66 ' ', 89 ' '.

...

 

FORM print_report USING  nrseq.

  DESCRIBE TABLE itab_034 LINES v_lines.

  IF wa_034-nrseq = wa_001-nrseq.

    WRITE:  text-001 COLOR 1 INVERSE,

            50 p_nrseq.

    WRITE: / sy-uline(89).

    WRITE: / ' ',2 text-002 COLOR 1,

             30 ' ',

             55 ' ',

             66 ' ',

             89 ' '.

    WRITE: / sy-uline(89).

...

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

* QUANDO O EMBARQUE NÃO POSSUI REMESSA

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

        IF NOT itab_zycet002-vbeln_vf IS INITIAL AND

               itab_zycet002-vbeln_vl IS INITIAL.

          LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf.

            IF v_vbeln_vf NE itab_zycet002-vbeln_vf.

              LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart

                                      AND bukrs EQ itab_zycet002-bukrs.

* >> Início da Exclusão <<

                IF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                IF ( /pws/zycet020-tipodoc EQ 'OV' or

                     /pws/zycet020-tipodoc EQ 'VC' or

                     /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                   itab_zycet023-estorno NE 'X'.

                  IF wa_034-nrseq = wa_001-nrseq.

                    WRITE: /  ' ',2 text-051 COLOR 2 INTENSIFIED OFF.

                  ELSE.

                    WRITE: /  ' ',2 text-054 COLOR 2 INTENSIFIED OFF.

                  ENDIF.

                  WRITE: 30 ' ',

                         31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                            HOTSPOT,

                            itab_zycet002-posnr COLOR 2

                                INTENSIFIED OFF NO-ZERO,

                         55 ' ',

                         56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                         66 ' ', 89 ' '.

* >> Início da Exclusão <<

                ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or

                     /pws/zycet020-tipodoc EQ 'VC' or

                     /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                         itab_zycet023-estorno EQ 'X'.

                  WRITE: /  ' ',2 text-013 COLOR 2 INTENSIFIED OFF,

                         30 ' ',

                         31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                         HOTSPOT,

                         itab_zycet002-posnr COLOR 2

                           INTENSIFIED OFF NO-ZERO,

                         55 ' ',

                         56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                         66 ' ', 89 ' '.

                ELSEIF itab_zycet023-tipodoc EQ 'OD'.

                  WRITE: /  ' ',2 text-011 COLOR 2 INTENSIFIED OFF,

                         30 ' ',

                         31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                         HOTSPOT,

                         itab_zycet002-posnr COLOR 2

                           INTENSIFIED OFF NO-ZERO,

                         55 ' ',

                         56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                         66 ' ', 89 ' '.

...

******

*FIM

******

        ELSE.

          LOOP AT itab_likp WHERE vbeln EQ itab_zycet002-vbeln_vl.

            IF itab_likp-vbeln <> v_likp-vbeln.

              IF wa_034-nrseq = wa_001-nrseq.

                WRITE: /  ' ', 2 text-050 COLOR 2 INTENSIFIED OFF.

              ELSE.

                WRITE: /  ' ', 2 text-053 COLOR 2 INTENSIFIED OFF.

              ENDIF.

              WRITE: 30 ' ',

                     31 ' ',

                     31 itab_likp-vbeln COLOR 2 INTENSIFIED OFF HOTSPOT,

                    itab_zycet002-posnl COLOR 2 INTENSIFIED OFF

 NO-ZERO,

                     55 ' ', 56 itab_likp-erdat COLOR 2 INTENSIFIED OFF,

                     66 ' ', 89 ' '.

              READ TABLE itab_vbup WITH KEY vbeln = itab_zycet002-vbeln_va

                                            posnr = itab_zycet002-posnl.

              IF sy-subrc EQ 0.

                IF itab_vbup-lfsta EQ space.

                  WRITE: 67 text-023 COLOR 3 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'A'.

                  WRITE: 67 text-024 COLOR 6 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'B'.

                  WRITE: 67 text-025 COLOR 5 INTENSIFIED OFF.

                ELSEIF itab_vbup-lfsta EQ 'C'.

                  WRITE: 67 text-026 COLOR 5.

                ENDIF.

              ENDIF.

              v_likp-vbeln = itab_likp-vbeln.

            ENDIF.

            LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf

                                AND bukrs EQ itab_zycet002-bukrs.

              IF v_vbeln_vf NE itab_zycet002-vbeln_vf.

               LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart

                                       AND bukrs EQ itab_zycet002-bukrs.

* >> Início da Exclusão <<

                  IF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                  IF ( /pws/zycet020-tipodoc EQ 'OV' or

                       /pws/zycet020-tipodoc EQ 'VC' or

                       /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                       itab_zycet023-estorno NE 'X'.

                    IF wa_034-nrseq = wa_001-nrseq.

                      WRITE: /  ' ',2 text-051 COLOR 2 INTENSIFIED OFF.

                    ELSE.

                      WRITE: /  ' ',2 text-054 COLOR 2 INTENSIFIED OFF.

                    ENDIF.

                    WRITE: 30 ' ',

                           31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                              HOTSPOT,

                              itab_zycet002-posnr COLOR 2

                                  INTENSIFIED OFF NO-ZERO,

                           55 ' ',

                           56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                           66 ' ', 89 ' '.

* >> Início da Exclusão <<

                  ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                  ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or

                     /pws/zycet020-tipodoc EQ 'VC' or

                     /pws/zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

                            itab_zycet023-estorno EQ 'X'.

                    WRITE: /  ' ',2 text-013 COLOR 2 INTENSIFIED OFF,

                           30 ' ',

                           31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF

                           HOTSPOT,

                           itab_zycet002-posnr COLOR 2

                             INTENSIFIED OFF NO-ZERO,

                           55 ' ',

                           56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,

                           66 ' ', 89 ' '.

...

 

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

Modificações efetuadas em REPS /PWS/ZYCER227

 

FORM seleciona_dados.

 

  CLEAR: itab_inicio.

  FREE : itab_inicio.

 

  IF p_sim EQ c_x AND

     p_nao EQ c_x.

 

    PERFORM selecao_todos_embarques.

 

  ELSEIF p_sim EQ c_x.

 

    PERFORM selecao_enviados_cambio.

 

  ELSE.

 

    PERFORM selecao_nao_enviados_cambio.

 

  ENDIF.

...

  LOOP AT itab_inicio.

    v_tabix = sy-tabix.

    CLEAR itab_zycet124.

    READ TABLE itab_zycet124 WITH KEY nrseq = itab_inicio-nrseq

                                      BINARY SEARCH.

    IF sy-subrc IS INITIAL.

* >> Início da Exclusão <<

      IF itab_zycet124-tipodoc NE c_tpdoc_ov.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      IF itab_zycet124-tipodoc NE c_tpdoc_ov AND

         itab_zycet124-tipodoc NE 'VC' AND

         itab_zycet124-tipodoc NE 'CO'.

* >> Fim da Inclusão <<

        DELETE itab_inicio INDEX v_tabix.

      ENDIF.

    ENDIF.

  ENDLOOP.

 

  IF itab_inicio[] IS INITIAL.

    MESSAGE s008.

    STOP.

  ENDIF.

 

*  Código do Despachante

  CLEAR: itab_zycet015.

  FREE : itab_zycet015.

 

 

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

Criada as mensagens a seguir na classe de mensagens /PWS/ZYCEM:

 

261 Embarque de &1 não permite Ordem de Venda do tipo &2. Ordem &3.

262 Ordem de Venda &1/&2 pertence a outro Embarque de Consignação: &3.

263 Ordem de Venda &1/&2 não faz parte de um processo de Consignação.

264 Embarque possui Venda de Consignação (&1). Não pode excluir.

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F01

 

FORM carrega_parametros.

 

  CHECK wa_controle-parametros_carregados IS INITIAL.

 

  SELECT bukrs

         butxt

         land1

         waers

         adrnr

         FROM t001

         INTO TABLE itab_t001.

 

  LOOP AT itab_t001 WHERE NOT adrnr IS initial.

...

   SELECT *

          FROM /pws/zycet317

          INTO TABLE itab_zycet317.

 

* >> Início da Exclusão <<

   SELECT *

          FROM /pws/zycet318

          INTO TABLE itab_zycet318.

 

   SELECT *

          FROM /pws/zycet319

          INTO TABLE itab_zycet319.

 

* >> Fim da Exclusão <<

   SELECT bukrs

          codmod

          codigo

          kschl

          vtext

          fator

          FROM /pws/zycit030

          INTO TABLE itab_zycit030.

...

ENDFORM.                    " carrega_parametros

 

 

FORM seleciona_dados_embarque_pw.

 

* Itens do Embarque

  SELECT *

         FROM /pws/zycet002

         INTO TABLE itab_zycet002

         WHERE nrseq = /pws/zycee001-nrseq.

...

  itab_zycet016_ant[] = itab_zycet016[].

 

* >> Início da Inclusão <<

* Dados de Consignação

  IF NOT /pws/zycee001-emb_consig IS INITIAL.

    IF /pws/zycee001-emb_consig EQ 'C'.

      SELECT *

             FROM /pws/zycet034

             INTO TABLE itab_zycet034

             WHERE nrseq = /pws/zycee001-nrseq.

    ELSE.

      SELECT *

             FROM /pws/zycet034

             INTO TABLE itab_zycet034

             WHERE nrseq_n = /pws/zycee001-nrseq.

    ENDIF.

  ENDIF.

 

* >> Fim da Inclusão <<

ENDFORM.                    " seleciona_dados_embarque_pw

 

 

FORM seleciona_dados_adicionais_pw.

 

  IF sy-tcode NE c_transacao_c.

 

* Seleciona REs criados pelo programa de RE

    DELETE itab_zycet003 WHERE NOT nrseqre IS initial.

    SELECT *

           FROM /pws/zycet003

           APPENDING TABLE itab_zycet003

           WHERE nrseq   = /pws/zycee001-nrseq AND

                 nrseqre NE space.

...

  SELECT nrseqper

         nrper

         nrseq

         dtincl

         FROM /pws/zycet292

         INTO TABLE itab_zycet292

         WHERE nrseq EQ /pws/zycee001-nrseq.

 

* >> Início da Inclusão <<

* Vendas de Consignação

  IF /pws/zycee001-tipo_emb   EQ 'C' AND

     /pws/zycee001-emb_consig EQ 'C'.

 

    SELECT nrseq

           vbeln_va

           vbeln_vf

           posnr

           docnum

           vbeln_vl

           posnl

           aupos

           fkdat

           inco1

           zterm

           land1

           kunag

           gsber

           matnr

           werks

           nfnum

           nrseq_consig

           vbeln_consig

           posnr_consig

           FROM /pws/zycet002

           INTO TABLE itab_venda_cons

           WHERE nrseq_consig EQ /pws/zycee001-nrseq.

 

  ENDIF.

 

* >> Fim da Inclusão <<

ENDFORM.                    " seleciona_dados_adicionais_pw

 

FORM atualiza_dados_sap_no_embarque USING value(p_novos).

 

  DATA: v_linhas_ant  TYPE i,

        v_linhas_dep  TYPE i,

        v_checa_auart TYPE c.

 

  v_checa_auart = 'X'.

 

  v_linhas_dep = 0.

  DESCRIBE TABLE itab_zycet002 LINES v_linhas_ant.

 

  WHILE v_linhas_ant NE v_linhas_dep AND

        p_novos      EQ 'X'.

 

    DESCRIBE TABLE itab_zycet002 LINES v_linhas_ant.

 

    IF sy-tcode              NE c_transacao_e AND

       /pws/zycee001-envia_c IS INITIAL       AND

       /pws/zycee001-sta1    NE '4'.

 

      PERFORM atualiza_ordens_e_remessas.

      PERFORM atualiza_faturamentos.

* >> Início da Inclusão <<

      IF /pws/zycee001-emb_consig EQ 'C'.

        v_checa_auart = 'X'.

      ENDIF.

 

* >> Fim da Inclusão <<

      PERFORM atualiza_outras_ordens USING v_checa_auart.

 

      IF /pws/zycee001-tipo_emb EQ 'V'.

        DELETE itab_zycet002 WHERE vbeln_va IS initial.

      ENDIF.

 

      DELETE itab_zycet002 WHERE aupos IS initial AND

                                 ebelp IS initial.

 

      PERFORM verifica_particao_lote.

 

    ENDIF.

 

    DESCRIBE TABLE itab_zycet002 LINES v_linhas_dep.

    CLEAR v_checa_auart.

 

  ENDWHILE.

 

  PERFORM atualiza_itens_embarque.

  PERFORM elimina_dados_sap_irrelevantes.

 

ENDFORM.                    " atualiza_dados_sap_no_embarque

 

 

FORM identifica_status_itens.

 

  DATA: itab_002   LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE.

  DATA: itab_vbfa2 LIKE itab_vbfa     OCCURS 0 WITH HEADER LINE.

...

* Identifica itens de serviço

  LOOP AT itab_zycet002 WHERE devolucao = 'X'.

    v_index = sy-tabix.

    READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart

                                      bukrs = itab_zycet002-bukrs.

    IF sy-subrc NE 0.

      READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.

      IF sy-subrc NE 0.

        CALL FUNCTION 'MESSAGE_STORE'

             EXPORTING

                  arbgb = '/PWS/ZYCEM'

                  msgty = 'E'

                  msgv1 = itab_zycet002-auart

                  msgv2 = itab_zycet002-bukrs

                  msgv3 = itab_zycet002-vbeln_va

                  txtnr = 222

                  zeile = 'TP_OV_001'.

        CONTINUE.

      ENDIF.

    ENDIF.

 

    IF itab_zycet020-tipodoc = 'OS'.

      CLEAR itab_zycet002-devolucao.

      itab_zycet002-servico = 'X'.

    ELSEIF NOT ( itab_zycet020-tipodoc = 'OD' OR

* >> Início da Exclusão <<

                 itab_zycet020-tipodoc = 'OD' ).

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                 itab_zycet020-tipodoc = 'DR' ).

* >> Início da Inclusão <<

      CLEAR itab_zycet002-devolucao.

      itab_zycet002-saida = 'X'.

    ENDIF.

 

    MODIFY itab_zycet002 INDEX v_index TRANSPORTING saida

                                                    devolucao

                                                    servico.

 

  ENDLOOP.

...

 

 

 

FORM monta_drawback.

 

  DATA: v_vbeln_vf LIKE /pws/zycet002-vbeln_vf,

        v_posnr    LIKE /pws/zycet002-posnr,

        v_num      TYPE i,

        v_branch   LIKE t001w-j_1bbranch,

        v_cgc      LIKE j_1bwfield-cgc_number,

        v_status   LIKE /pws/zycet002-staprop,

        v_datum    LIKE sy-datum,

        v_vlme     LIKE /pws/zycee002-vlme,

        v_processa TYPE c.

...

 

        ELSE.

 

          CLEAR itab_lfa1.

          READ TABLE itab_lfa1 WITH KEY lifnr = itab_zycit244-lifnr.

 

          IF sy-subrc NE 0.

            PERFORM seleciona_novos_fornecedores

                                    USING itab_zycit244-lifnr.

            CLEAR itab_lfa1.

            READ TABLE itab_lfa1 WITH KEY lifnr = itab_zycit244-lifnr.

          ENDIF.

 

          itab_drawback-name1    = itab_lfa1-name1.

          WRITE itab_lfa1-stcd1 TO itab_drawback-stcd1

* >> Início da Exclusão <<

                                USING EDIT MASK 'CGCBR'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                                USING EDIT MASK '==CGCBR'.

* >> Fim da Inclusão <<

          itab_drawback-regio    = itab_lfa1-regio.

          itab_drawback-steuc    = itab_zycit282-j_1bnbmimp.

...

 

 

FORM move_dados_sap_para_itens.

 

  DATA: v_index   LIKE sy-tabix,

        v_lfimg   LIKE lips-lfimg,

        v_tipo_ov TYPE c,

        v_kwmeng  LIKE vbap-kwmeng.

...

 

  LOOP AT itab_vbap.

 

    READ TABLE itab_vbak WITH KEY vbeln = itab_vbap-vbeln.

 

    CLEAR itab_zycet020.

    IF NOT itab_vbak-auart IS INITIAL.

      READ TABLE itab_zycet020

                 WITH KEY auart = itab_vbak-auart

                          bukrs = /pws/zycee001-bukrs.

      IF sy-subrc NE 0.

        READ TABLE itab_zycet020

                   WITH KEY auart = itab_vbak-auart.

      ENDIF.

    ENDIF.

 

* >> Início da Exclusão <<

    CHECK itab_zycet020-tipodoc EQ 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

    CHECK itab_zycet020-tipodoc EQ 'OV' OR

          itab_zycet020-tipodoc EQ 'CO' OR

          itab_zycet020-tipodoc EQ 'VC'.

* >> Fim da Inclusão <<

 

    MOVE: itab_vbap-vbeln  TO itab_saldo_ov-vbeln,

          itab_vbap-posnr  TO itab_saldo_ov-posnr,

          itab_vbap-kwmeng TO itab_saldo_ov-kwmeng,

          'C'              TO itab_saldo_ov-tipo_ov.

 

    LOOP AT itab_vbfa WHERE vbelv   = itab_vbap-vbeln AND

                            posnv   = itab_vbap-posnr AND

* >> Início da Exclusão <<

                            vbtyp_n = 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                            vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

      READ TABLE itab_lips WITH KEY vbeln = itab_vbfa-vbeln

                                    posnr = itab_vbfa-posnn.

      CHECK sy-subrc EQ 0.

      v_lfimg = itab_lips-lfimg.

      PERFORM converte_um USING itab_lips-lfimg

                                itab_lips-vrkme

                                itab_vbap-vrkme

                                itab_vbap-matnr

                       CHANGING v_lfimg.

      itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.

    ENDLOOP.

 

    LOOP AT itab_vbfa WHERE vbelv   EQ itab_vbap-vbeln AND

                            posnv   EQ itab_vbap-posnr AND

* >> Início da Exclusão <<

                            vbtyp_n NE 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                            vbtyp_n NA 'JT7'.

* >> Fim da Inclusão <<

      READ TABLE itab_vbrp WITH KEY vbeln = itab_vbfa-vbeln

                                    posnr = itab_vbfa-posnn.

      CHECK sy-subrc EQ 0.

      v_lfimg = itab_vbrp-fkimg.

      PERFORM converte_um USING itab_vbrp-fkimg

                                itab_vbrp-vrkme

                                itab_vbap-vrkme

                                itab_vbap-matnr

                       CHANGING v_lfimg.

      itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.

    ENDLOOP.

...

  IF /pws/zycee001-tipo_emb NE 'V'.

 

    LOOP AT itab_ekpo.

 

      MOVE: itab_ekpo-ebeln TO itab_saldo_ov-vbeln,

            itab_ekpo-ebelp TO itab_saldo_ov-posnr,

            itab_ekpo-menge TO itab_saldo_ov-kwmeng,

            'V'             TO itab_saldo_ov-tipo_ov.

 

      LOOP AT itab_vbfa WHERE vbelv   = itab_ekpo-ebeln AND

                              posnv   = itab_ekpo-ebelp AND

* >> Início da Exclusão <<

                              vbtyp_n = 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                              vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

        READ TABLE itab_lips WITH KEY vbeln = itab_vbfa-vbeln

                                      posnr = itab_vbfa-posnn.

        CHECK sy-subrc EQ 0.

        v_lfimg = itab_lips-lfimg.

        PERFORM converte_um USING itab_lips-lfimg

                                  itab_lips-vrkme

                                  itab_ekpo-meins

                                  itab_ekpo-matnr

                         CHANGING v_lfimg.

        itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.

      ENDLOOP.

 

      LOOP AT itab_vbfa WHERE vbelv   EQ itab_ekpo-ebeln AND

                              posnv   EQ itab_ekpo-ebeln AND

* >> Início da Exclusão <<

                              vbtyp_n NE 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                              vbtyp_n NA 'JT7'.

* >> Fim da Inclusão <<

 

        READ TABLE itab_vbrp WITH KEY vbeln = itab_vbfa-vbeln

                                      posnr = itab_vbfa-posnn.

        CHECK sy-subrc EQ 0.

        v_lfimg = itab_vbrp-fkimg.

        PERFORM converte_um USING itab_vbrp-fkimg

                                  itab_vbrp-vrkme

                                  itab_ekpo-meins

                                  itab_ekpo-matnr

                         CHANGING v_lfimg.

        itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.

      ENDLOOP.

 

      APPEND itab_saldo_ov.

 

    ENDLOOP.

...

 

*       Item da Ordem de Venda

        MOVE: itab_vbap-posnr      TO itab_zycet002-posnv,

              itab_vbap-vrkme      TO itab_zycet002-vrkme,

              itab_vbap-gewei      TO itab_zycet002-gewei,

              itab_vbap-gsber      TO itab_zycet002-gsber,

              itab_vbap-matnr      TO itab_zycet002-matnr,

              itab_vbap-werks      TO itab_zycet002-werks,

              itab_vbap-prctr      TO itab_zycet002-prctr,

              itab_vbap-pstyv      TO itab_zycet002-pstyv,

              itab_vbap-arktx      TO itab_zycet002-arktx,

              itab_vbap-ktgrm      TO itab_zycet002-ktgrm,

              itab_vbap-aufnr      TO itab_zycet002-aufnr,

              itab_vbap-ps_psp_pnr TO itab_zycet002-pspid,

              itab_vbap-shkzg      TO itab_zycet002-shkzg.

 

        MOVE: itab_vbap-ntgew      TO itab_zycet002-ntgew,

              itab_vbap-brgew      TO itab_zycet002-brgew.

 

        v_kwmeng = itab_vbap-kwmeng.

 

* >> Início da Inclusão <<

        CLEAR: itab_zycet002-vbeln_consig,

               itab_zycet002-posnr_consig.

 

        IF /pws/zycee001-tipo_emb   EQ 'C' AND

           /pws/zycee001-emb_consig EQ 'V'.

 

          CLEAR itab_zycet020.

 

          READ TABLE itab_zycet020

                     WITH KEY auart = itab_zycet002-auart

                              bukrs = itab_zycet002-bukrs.

 

          IF sy-subrc NE 0.

 

            READ TABLE itab_zycet020

                       WITH KEY auart = itab_zycet002-auart.

 

          ENDIF.

 

          IF itab_zycet020-tipodoc EQ 'VC'.

            PERFORM localiza_consignacao.

          ENDIF.

 

        ENDIF.

 

* >> Fim da Inclusão <<

      ENDIF.

 

      IF itab_zycet002-vbeln_vl IS INITIAL AND

         itab_zycet002-vbeln_vf IS INITIAL.

...

ENDFORM.                    " move_dados_sap_para_itens

 

 

 

FORM atualiza_cabecalho_embarque.

 

  CHECK sy-tcode              NE c_transacao_e AND

        /pws/zycee001-envia_c IS INITIAL       AND

        /pws/zycee001-sta1    NE '4'.

...

 

  CLEAR itab_zycet002.

  READ TABLE itab_zycet002 INDEX 1.

  PERFORM: cabecalho_condicao_pagamento,

           cabecalho_incoterms,

           cabecalho_porto_pais,

           cabecalho_descricoes,

           cabecalho_outros_dados,

           cabecalho_peso_embarque.

 

* >> Início da Inclusão <<

  IF /pws/zycee001-tipo_emb   EQ 'C' AND

     /pws/zycee001-emb_consig EQ 'V'.

    PERFORM atualiza_consignacao.

  ENDIF.

 

* >> Fim da Inclusão <<

ENDFORM.                    " atualiza_cabecalho_embarque

 

FORM cabecalho_condicao_pagamento.

 

  DATA: v_zterm LIKE t052-zterm.

 

  IF itab_zycet037-alt_cond EQ '0'.

 

    CLEAR /pws/zycee046-zterm.

* >> Início da Exclusão <<

    LOOP AT itab_zycet020 WHERE tipodoc = 'OV'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

    LOOP AT itab_zycet020 WHERE tipodoc = 'OV' OR

                                tipodoc = 'CO' OR

                                tipodoc = 'VC'.

* >> Fim da Inclusão <<

      READ TABLE itab_zycet002 WITH KEY auart = itab_zycet020-auart.

      IF sy-subrc EQ 0.

        /pws/zycee046-zterm = itab_zycet002-zterm.

        EXIT.

      ENDIF.

    ENDLOOP.

 

  ENDIF.

...

ENDFORM.                    " cabecalho_condicao_pagamento

 

 

FORM atualiza_ordens_e_remessas.

 

  DATA: wa_zycet002 LIKE itab_zycet002,

        itab_002    LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,

        v_vbeln_va  LIKE /pws/zycet002-vbeln_va,

        v_vbeln_vl  LIKE /pws/zycet002-vbeln_vl,

        v_posnr_va  LIKE /pws/zycet002-aupos,

        v_posnr_vl  LIKE /pws/zycet002-posnl,

        v_kwmeng    LIKE vbap-kwmeng,

        v_lfimg     LIKE lips-lfimg,

        v_tipo_ov   TYPE c.

...

 

    IF NOT v_vbeln_va IS INITIAL AND

           v_posnr_va IS INITIAL.

 

* >> Início da Exclusão <<

      LOOP AT itab_vbfa WHERE vbeln   EQ v_vbeln_va        AND

                              posnn   NE space             AND

                              ( ( vbelv   EQ space AND

                                  posnv   EQ space ) OR

                                ( vbtyp_v EQ v_tipo_ov ) ) AND

                              vbtyp_n EQ v_tipo_ov.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      LOOP AT itab_vbfa WHERE vbeln   EQ v_vbeln_va AND

                              posnn   NE space      AND

                              vbtyp_n EQ v_tipo_ov.

* >> Fim da Inclusão <<

        wa_zycet002 = itab_zycet002.

        IF v_tipo_ov EQ 'V'.

          wa_zycet002-ebelp = itab_vbfa-posnn.

        ELSE.

          wa_zycet002-aupos = itab_vbfa-posnn.

        ENDIF.

        APPEND wa_zycet002 TO itab_zycet002.

        APPEND wa_zycet002 TO itab_002.

 

      ENDLOOP.

 

...

 

    IF NOT v_vbeln_vl IS INITIAL AND

           v_posnr_vl IS INITIAL.

 

      LOOP AT itab_vbfa WHERE vbeln   EQ itab_zycet002-vbeln_vl AND

                              posnn   NE space                  AND

* >> Início da Exclusão <<

                              vbtyp_n EQ 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                              vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

 

        READ TABLE itab_vbak WITH KEY vbeln = itab_vbfa-vbelv.

        IF sy-subrc EQ 0.

          v_tipo_ov = 'C'.

        ELSE.

          READ TABLE itab_ekpo WITH KEY ebeln = itab_vbfa-vbelv.

          IF sy-subrc EQ 0.

            v_tipo_ov = 'V'.

          ENDIF.

        ENDIF.

...

 

    IF NOT v_vbeln_va IS INITIAL AND

           v_vbeln_vl IS INITIAL.

 

      LOOP AT itab_vbfa WHERE vbelv   EQ v_vbeln_va AND

                              posnv   EQ v_posnr_va AND

* >> Início da Exclusão <<

                              vbtyp_n EQ 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                              vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

 

        READ TABLE itab_likp WITH KEY vbeln = itab_vbfa-vbeln.

 

        IF sy-subrc NE 0.

          CONTINUE.

        ENDIF.

 

        IF v_tipo_ov EQ 'V'.

          READ TABLE itab_002 WITH KEY ebeln    = v_vbeln_va

                                       ebelp    = v_posnr_va

                                       vbeln_vl = itab_vbfa-vbeln

                                       posnl    = itab_vbfa-posnn.

        ELSE.

...

 

ENDFORM.                    " atualiza_ordens_e_remessas

 

FORM atualiza_outras_ordens USING value(p_auart) TYPE c.

 

  DATA: wa_zycet002 LIKE itab_zycet002,

        itab_002    LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,

        v_vbeln     LIKE vbfa-vbeln,

        v_posnr     LIKE vbfa-posnn,

        v_nao_achou TYPE c,

        v_exclui    TYPE c.

 

  v_nao_achou = 'X'.

 

  LOOP AT itab_zycet002 WHERE NOT vbeln_vf IS initial.

...

      IF p_auart EQ 'X'.

 

        IF NOT itab_vbak-auart IS INITIAL.

 

          CLEAR itab_zycet020.

 

          READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart

                                            bukrs = itab_vbak-bukrs_vf

 

          IF sy-subrc NE 0.

            READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart.

          ENDIF.

 

        ENDIF.

 

* >> Início da Exclusão <<

        IF /pws/zycee001-tipo_emb EQ 'D'.

          IF itab_zycet020-tipodoc EQ 'OS' OR

             itab_zycet020-tipodoc EQ 'OV'.

            CONTINUE.

          ENDIF.

 

        ENDIF.

 

        IF /pws/zycee001-tipo_emb EQ 'V'.

 

          IF itab_zycet020-tipodoc NE 'OS' AND

             itab_zycet020-tipodoc NE 'OV'.

            CONTINUE.

          ENDIF.

 

        ENDIF.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

        IF /pws/zycee001-tipo_emb EQ 'D'.

 

          IF itab_zycet020-tipodoc EQ 'OS' OR

             itab_zycet020-tipodoc EQ 'OV' OR

             itab_zycet020-tipodoc EQ 'VC' OR

             itab_zycet020-tipodoc EQ 'CO'.

            CONTINUE.

          ENDIF.

 

        ENDIF.

 

        IF /pws/zycee001-tipo_emb EQ 'V'.

 

          IF itab_zycet020-tipodoc NE 'OS' AND

             itab_zycet020-tipodoc NE 'OV' AND

             itab_zycet020-tipodoc NE 'VC' AND

             itab_zycet020-tipodoc NE 'CO'.

            CONTINUE.

          ENDIF.

 

        ENDIF.

 

        IF /pws/zycee001-tipo_emb   EQ 'C' AND

           /pws/zycee001-emb_consig EQ 'C'.

          IF itab_zycet020-tipodoc EQ 'VC'.

            CONTINUE.

          ENDIF.

        ENDIF.

* >> Fim da Inclusão <<

 

      ENDIF.

 

      CLEAR v_nao_achou.

 

      CLEAR wa_zycet002.

...

 

ENDFORM.                    " atualiza_outras_ordens

 

 

FORM atualiza_faturamentos.

 

  DATA: wa_zycet002 LIKE itab_zycet002,

        itab_002    LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,

        v_vbeln     LIKE vbfa-vbeln,

        v_posnr     LIKE vbfa-posnn,

        v_nao_achou TYPE c,

        v_tipo_ov   TYPE c.

 

  LOOP AT itab_zycet002 WHERE vbeln_vf IS initial.

 

    itab_002[] = itab_zycet002[].

 

    CHECK ( NOT itab_zycet002-vbeln_va IS INITIAL AND

            NOT itab_zycet002-aupos    IS INITIAL ) OR

          ( NOT itab_zycet002-ebeln    IS INITIAL AND

            NOT itab_zycet002-ebelp    IS INITIAL ).

 

* >> Início da Inclusão <<

    clear itab_vbak.

 

    read table itab_vbak with key vbeln = itab_zycet002-vbeln_va.

 

* >> Fim da Inclusão <<

    IF NOT itab_vbak-auart IS INITIAL.

 

      CLEAR itab_zycet020.

 

      READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart

                                        bukrs = itab_vbak-bukrs_vf.

 

      IF sy-subrc NE 0.

        READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart.

      ENDIF.

 

* >> Início da Exclusão <<

      IF ( itab_zycet020-tipodoc EQ 'OS' OR

           itab_zycet020-tipodoc EQ 'OV' ) AND

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      IF ( itab_zycet020-tipodoc EQ 'OS' OR

           itab_zycet020-tipodoc EQ 'OV' OR

           itab_zycet020-tipodoc EQ 'VC' OR

           itab_zycet020-tipodoc EQ 'CO' ) AND

* >> Fim da Inclusão <<

         itab_zycet002-vbeln_vl IS INITIAL.

        CONTINUE.

      ENDIF.

 

    ENDIF.

 

...

ENDFORM.                    " atualiza_faturamentos

 

 

FORM elimina_embarque.

 

  DATA: v_resposta(1) TYPE c.

  DATA: v_erro(1)     TYPE c.

...

 

  DELETE FROM /pws/zycet001

        WHERE nrseq = /pws/zycee001-nrseq.

  IF sy-subrc NE 0.

    v_erro = 'X'.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet002[] IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF NOT itab_zycet002[]     IS INITIAL OR

     NOT itab_zycet002_ant[] IS INITIAL.

* >> Fim da Inclusão <<

    DELETE FROM /pws/zycet002

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet003[] IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF NOT itab_zycet003[]     IS INITIAL OR

     NOT itab_zycet003_ant[] IS INITIAL.

* >> Fim da Inclusão <<

    DELETE FROM /pws/zycet003

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet008[] IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF NOT itab_zycet008[]     IS INITIAL OR

     NOT itab_zycet008_ant[] IS INITIAL.

* >> Fim da Inclusão <<

    DELETE FROM /pws/zycet008

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

 

  DELETE FROM /pws/zycet014

        WHERE nrseq = /pws/zycee001-nrseq.

 

  DELETE FROM /pws/zycet014a

        WHERE nrseq = /pws/zycee001-nrseq.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet015[] IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF NOT itab_zycet015[]     IS INITIAL OR

     NOT itab_zycet015_ant[] IS INITIAL.

* >> Fim da Inclusão <<

    DELETE FROM /pws/zycet015

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet016[] IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF NOT itab_zycet016[]     IS INITIAL OR

     NOT itab_zycet016_ant[] IS INITIAL.

* >> Fim da Inclusão <<

    DELETE FROM /pws/zycet016

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT itab_zycet129[] IS INITIAL.

    DELETE FROM /pws/zycet129

          WHERE nrseq = /pws/zycee001-nrseq.

    IF sy-subrc NE 0.

      v_erro = 'X'.

    ENDIF.

  ENDIF.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  DELETE FROM /pws/zycet129

        WHERE nrseq = /pws/zycee001-nrseq.

* >> Fim da Inclusão <<

...

ENDFORM.                    " elimina_embarque

 

 

FORM valida_eliminacao.

 

  DATA: v_num_messages LIKE sy-tabix.

 

  IF NOT wa_status_cab-f_pca IS INITIAL.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb = '/PWS/ZYCEM'

              msgty = 'W'

              msgv1 = /pws/zycee001-nrseq

              msgv2 = text-s02

              txtnr = 236

              zeile = 'CAN_NOT_DEL'.

  ENDIF.

 

* >> Início da Exclusão <<

  IF NOT wa_status_cab-comag IS INITIAL.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF wa_status_cab-comag CA 'BC'.

* >> Fim da Inclusão <<

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb = '/PWS/ZYCEM'

              msgty = 'W'

              msgv1 = /pws/zycee001-nrseq

              msgv2 = text-s03

              txtnr = 236

              zeile = 'CAN_NOT_DEL'.

  ENDIF.

...

  READ TABLE itab_zycet292 INDEX 1.

  IF sy-subrc EQ 0.

    CALL FUNCTION 'MESSAGE_STORE'

         EXPORTING

              arbgb = '/PWS/ZYCEM'

              msgty = 'W'

              msgv1 = /pws/zycee001-nrseq

              msgv2 = text-544

              txtnr = 236

              zeile = 'CAN_NOT_DEL'.

  ENDIF.

 

* >> Início da Inclusão <<

  IF /pws/zycee001-tipo_emb   EQ 'C' AND

     /pws/zycee001-emb_consig EQ 'C'.

 

    LOOP AT itab_venda_cons.

 

      CALL FUNCTION 'MESSAGE_STORE'

           EXPORTING

                arbgb = '/PWS/ZYCEM'

                msgty = 'E'

                msgv1 = itab_venda_cons-nrseq

                txtnr = 264

                zeile = 'CAN_NOT_DEL'.

 

    ENDLOOP.

 

  ENDIF.

* >> Fim da Inclusão <<

 

  CALL FUNCTION 'MESSAGES_COUNT'

       IMPORTING

            count = v_num_messages.

 

  IF v_num_messages IS INITIAL.

    sy-subrc = 0.

  ELSE.

    sy-subrc = 4.

  ENDIF.

 

ENDFORM.                    " valida_eliminacao

 

...

 

FORM verifica_particao_lote.

 

  DATA: BEGIN OF itab_particao OCCURS 0,

          vbelv LIKE lips-vbeln,

          posnv LIKE lips-posnr,

          vbeln LIKE lips-vbeln,

          posnn LIKE lips-posnr,

        END OF itab_particao.

...

 

    CHECK sy-subrc EQ 0.

 

    LOOP AT itab_vbfa WHERE vbelv   = itab_lips-vgbel AND

                            posnv   = itab_lips-vgpos AND

* >> Início da Exclusão <<

                            vbtyp_n = 'J'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

                            vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

 

      CHECK itab_vbfa-posnn LT 900000.

 

      itab_particao-vbelv = itab_vbfa-vbeln.

      itab_particao-posnv = itab_vbfa-posnn.

      itab_particao-vbeln = itab_zycet002-vbeln_vl.

      itab_particao-posnn = itab_zycet002-posnl.

      APPEND itab_particao.

 

    ENDLOOP.

 

  ENDLOOP.

...

 

ENDFORM.                    " verifica_particao_lote

 

 

 

FORM consistencia_itens USING value(p_excluir).

 

  STATICS: v_parvw LIKE vbpa-parvw.

...

 

  IF v_parvw IS INITIAL.

    CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'

         EXPORTING

              input  = 'PY'

         IMPORTING

              output = v_parvw.

  ENDIF.

 

  itab_zycet002-mark = ' '.

 

* >> Início da Exclusão <<

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF /pws/zycee001-emb_consig EQ 'C'.

    itab_zycet002-consig = 'X'.

  ELSE.

    itab_zycet002-consig = ' '.

  ENDIF.

 

* >> Fim da Inclusão <<

  MODIFY itab_zycet002 TRANSPORTING consig mark

                       WHERE mark   NE itab_zycet002-mark   OR

                             consig NE itab_zycet002-consig.

 

* Carrega itens já existentes em outros embarques

  LOOP AT itab_zycet002 WHERE vbeln_va NE space.

    MOVE: itab_zycet002-vbeln_va TO itab_ordens-vbeln_va,

          itab_zycet002-aupos    TO itab_ordens-aupos.

    APPEND itab_ordens.

  ENDLOOP.

...

 

* Consistência da Divisão

      IF itab_zycet002-gsber NE /pws/zycee001-gsber.

 

        CALL FUNCTION 'MESSAGE_STORE'

             EXPORTING

                  arbgb = '/PWS/ZYCEM'

                  msgty = v_msgtp

                  msgv1 = text-566

                  msgv2 = itab_zycet002-vbeln_va

                  msgv3 = itab_zycet002-aupos

                  txtnr = 241

                  zeile = 'GSBER_ERR'.

 

        IF p_excluir EQ 'X'.

          itab_zycet002-mark = 'X'.

          MODIFY itab_zycet002.

        ENDIF.

 

      ENDIF.

 

    ENDIF.

 

* >> Início da Inclusão <<

* Consistência do Tipo de Ordem

    IF /pws/zycee001-tipo_emb EQ 'C'.

 

      CLEAR itab_zycet020.

 

      IF NOT itab_zycet002-auart IS INITIAL.

 

        READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart

                                          bukrs = itab_zycet002-bukrs.

 

        IF sy-subrc NE 0.

          READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.

        ENDIF.

 

        IF sy-subrc EQ 0.

 

          IF /pws/zycee001-emb_consig EQ 'C'.

 

            IF itab_zycet020-tipodoc NE 'DR' AND

               itab_zycet020-tipodoc NE 'OD' AND

               itab_zycet020-tipodoc NE 'OC' AND

               itab_zycet020-tipodoc NE 'CO'.

 

              CALL FUNCTION 'MESSAGE_STORE'

                   EXPORTING

                        arbgb = '/PWS/ZYCEM'

                        msgty = 'E'

                        msgv1 = 'Consignação'(572)

                        msgv2 = itab_zycet002-auart

                        msgv3 = itab_zycet002-vbeln_va

                        msgv4 = itab_zycet002-aupos

                        txtnr = 261

                        zeile = 'AUART_ERR'.

 

              IF p_excluir EQ 'X'.

                itab_zycet002-mark = 'X'.

                MODIFY itab_zycet002.

              ENDIF.

 

            ENDIF.

 

          ELSE.

 

            IF itab_zycet020-tipodoc NE 'DR' AND

               itab_zycet020-tipodoc NE 'OD' AND

               itab_zycet020-tipodoc NE 'OC' AND

               itab_zycet020-tipodoc NE 'VC'.

 

              CALL FUNCTION 'MESSAGE_STORE'

                   EXPORTING

                        arbgb = '/PWS/ZYCEM'

                        msgty = 'E'

                        msgv1 = 'Venda de Consignação'(573)

                        msgv2 = itab_zycet002-auart

                        msgv3 = itab_zycet002-vbeln_va

                        msgv4 = itab_zycet002-aupos

                        txtnr = 261

                        zeile = 'AUART_ERR'.

 

              IF p_excluir EQ 'X'.

                itab_zycet002-mark = 'X'.

                MODIFY itab_zycet002.

              ENDIF.

 

            ENDIF.

 

          ENDIF.

 

        ENDIF.

 

      ENDIF.

 

* Consistência do Embarque de Consignação.

      IF /pws/zycee001-emb_consig EQ 'V'.

 

        IF itab_zycet002-devolucao   IS INITIAL AND

           itab_zycet002-complemento IS INITIAL AND

           itab_zycet002-estornado   IS INITIAL AND

           NOT itab_zycet002-zterm   IS INITIAL.

 

          IF itab_zycet002-nrseq_consig NE wa_valores-nrseq_consig.

 

            IF itab_zycet002-nrseq_consig IS INITIAL.

 

              CALL FUNCTION 'MESSAGE_STORE'

                   EXPORTING

                        arbgb = '/PWS/ZYCEM'

                        msgty = 'E'

                        msgv1 = itab_zycet002-vbeln_va

                        msgv2 = itab_zycet002-aupos

                        txtnr = 263

                        zeile = 'CONSIG_ERR'.

 

            ELSE.

 

              CALL FUNCTION 'MESSAGE_STORE'

                   EXPORTING

                        arbgb = '/PWS/ZYCEM'

                        msgty = 'E'

                        msgv1 = itab_zycet002-vbeln_va

                        msgv2 = itab_zycet002-aupos

                        msgv3 = itab_zycet002-nrseq_consig

                        msgv4 = wa_valores-nrseq_consig

                        txtnr = 262

                        zeile = 'CONSIG_ERR'.

 

            ENDIF.

 

            IF p_excluir EQ 'X'.

              itab_zycet002-mark = 'X'.

              MODIFY itab_zycet002.

            ENDIF.

 

          ENDIF.

 

        ENDIF.

 

      ENDIF.

 

    ENDIF.

* >> Fim da Inclusão <<

 

 

* Verifica se Item está em outro Embarque

    READ TABLE itab_zycet002_existe

         WITH KEY vbeln_va = itab_zycet002-vbeln_va

                  aupos    = itab_zycet002-aupos

                  vbeln_vl = itab_zycet002-vbeln_vl

                  posnl    = itab_zycet002-posnl

                  vbeln_vf = itab_zycet002-vbeln_vf

                  posnr    = itab_zycet002-posnr

                  ebeln    = itab_zycet002-ebeln

                  ebelp    = itab_zycet002-ebelp.

...

 

  PERFORM refresh_embarque USING space.

 

ENDFORM.                    " consistencia_itens

 

...

 

FORM seleciona_novos_itens.

 

  DATA: wa_vbco6 LIKE vbco6.

 

  DATA: BEGIN OF itab_002 OCCURS 0,

          vbeln_va LIKE /pws/zycet002-vbeln_va,

          aupos    LIKE /pws/zycet002-aupos,

          vbeln_vl LIKE /pws/zycet002-vbeln_vl,

          posnl    LIKE /pws/zycet002-posnl,

          vbeln_vf LIKE /pws/zycet002-vbeln_vf,

          posnr    LIKE /pws/zycet002-posnr,

        END OF itab_002.

...

 

    LOOP AT itab_vbfa_2.

 

      IF itab_vbfa_2-vbtyp_n EQ 'C'.

 

        READ TABLE itab_vbak_2 WITH KEY vbeln = itab_vbfa_2-vbeln.

        CHECK sy-subrc NE 0.

        SELECT vbeln

               auart

               vkorg

               vtweg

               FROM vbak

               APPENDING TABLE itab_vbak_2

               WHERE vbeln = itab_vbfa_2-vbeln.

 

* >> Início da Exclusão <<

      ELSEIF itab_vbfa_2-vbtyp_n CA 'JT'.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      ELSEIF itab_vbfa_2-vbtyp_n CA 'JT7'.

* >> Fim da Inclusão <<

 

        READ TABLE itab_likp_2 WITH KEY vbeln = itab_vbfa_2-vbeln.

        CHECK sy-subrc NE 0.

 

        SELECT vbeln

               kunag

               FROM likp

               APPENDING TABLE itab_likp_2

               WHERE vbeln = itab_vbfa_2-vbeln.

 

      ENDIF.

 

    ENDLOOP.

 

...

 

ENDFORM.                    " seleciona_novos_itens

 

...

 

* >> Início da Inclusão <<

FORM localiza_consignacao.

 

  DATA: v_vbeln_vf LIKE vbrp-vbeln,

        v_posnr_vf LIKE vbrp-posnr,

        v_vbeln_vl LIKE lips-vbeln,

        v_posnr_vl LIKE lips-posnr.

 

  READ TABLE itab_vbfa WITH KEY vbeln   = itab_zycet002-vbeln_va

                                posnn   = itab_zycet002-aupos

                                vbtyp_n = 'C'

                                vbtyp_v = 'M'.

 

  CHECK sy-subrc EQ 0.

 

  v_vbeln_vf = itab_vbfa-vbelv.

  v_posnr_vf = itab_vbfa-posnv.

 

  READ TABLE itab_vbfa WITH KEY vbeln   = v_vbeln_vf

                                posnn   = v_posnr_vf

                                vbtyp_n = 'M'

                                vbtyp_v = 'J'.

 

  CHECK sy-subrc EQ 0.

 

  v_vbeln_vl = itab_vbfa-vbelv.

  v_posnr_vl = itab_vbfa-posnv.

 

  READ TABLE itab_vbfa WITH KEY vbeln   = v_vbeln_vl

                                posnn   = v_posnr_vl

                                vbtyp_n = 'J'

                                vbtyp_v = 'C'.

 

  CHECK sy-subrc EQ 0.

 

  itab_zycet002-vbeln_consig = itab_vbfa-vbelv.

  itab_zycet002-posnr_consig = itab_vbfa-posnv.

 

ENDFORM.                    " localiza_consignacao

FORM atualiza_consignacao.

 

  DATA: BEGIN OF itab_emb_cons OCCURS 0,

          nrseq_cons   LIKE /pws/zycet001-nrseq,

          dtaverb      LIKE /pws/zycet001-dtaverb,

          dtemb        LIKE /pws/zycet001-dtemb,

          dteta        LIKE /pws/zycet001-dteta,

          dtinclav     LIKE /pws/zycet001-dtinclav,

          dtprev       LIKE /pws/zycet001-dtprev,

          dtrecemb     LIKE /pws/zycet001-dtrecemb,

          dtvencto     LIKE /pws/zycet001-dtvencto,

          kurrf_bl     LIKE /pws/zycet001-kurrf_bl,

          navio        LIKE /pws/zycet001-navio,

          portdest     LIKE /pws/zycet001-portdest,

          portemb      LIKE /pws/zycet001-portemb,

          paisportdest LIKE /pws/zycet001-paisportdest,

          viatrans     LIKE /pws/zycet001-viatrans,

          inco1        LIKE /pws/zycet001-inco1,

          dtcruze      LIKE /pws/zycet001-dtcruze,

          paisemb      LIKE /pws/zycet001-paisemb,

          tpcalc       LIKE /pws/zycet001-tpcalc,

          eadi         LIKE /pws/zycet001-eadi,

          zolla_eadi   LIKE /pws/zycet001-zolla_eadi,

          modo_venc    LIKE /pws/zycet001-modo_venc,

        END OF itab_emb_cons.

 

  DATA: BEGIN OF itab_item_cons OCCURS 0,

          nrseq    LIKE /pws/zycet002-nrseq,

          vbeln_va LIKE /pws/zycet002-vbeln_va,

          aupos    LIKE /pws/zycet002-aupos,

        END OF itab_item_cons.

 

  DATA: itab_itens LIKE itab_item_cons OCCURS 0 WITH HEADER LINE.

 

  LOOP AT itab_zycet002 WHERE NOT vbeln_consig IS initial.

    MOVE: itab_zycet002-vbeln_consig TO itab_itens-vbeln_va,

          itab_zycet002-posnr_consig TO itab_itens-aupos.

    APPEND itab_itens.

  ENDLOOP.

 

  IF NOT itab_itens[] IS INITIAL.

 

    SELECT nrseq

           vbeln_va

           aupos

           FROM /pws/zycet002

           INTO TABLE itab_item_cons

           FOR ALL ENTRIES IN itab_itens

           WHERE vbeln_va EQ itab_itens-vbeln_va AND

                 aupos    EQ itab_itens-aupos    AND

                 consig   EQ 'X'.

 

    IF sy-subrc EQ 0.

 

      SELECT nrseq

             dtaverb

             dtemb

             dteta

             dtinclav

             dtprev

             dtrecemb

             dtvencto

             kurrf_bl

             navio

             portdest

             portemb

             paisportdest

             viatrans

             inco1

             dtcruze

             paisemb

             tpcalc

             eadi

             zolla_eadi

             modo_venc

             FROM /pws/zycet001

             INTO TABLE itab_emb_cons

             FOR ALL ENTRIES IN itab_item_cons

             WHERE nrseq EQ itab_item_cons-nrseq.

 

      IF sy-subrc EQ 0.

 

        CLEAR itab_emb_cons.

 

        LOOP AT itab_zycet002 WHERE nrseq_consig IS initial AND

                                NOT vbeln_consig IS initial.

 

          READ TABLE itab_item_cons

                     WITH KEY vbeln_va = itab_zycet002-vbeln_consig

                              aupos    = itab_zycet002-posnr_consig.

 

          CHECK sy-subrc EQ 0.

 

          itab_zycet002-nrseq_consig = itab_item_cons-nrseq.

 

          MODIFY itab_zycet002 TRANSPORTING nrseq_consig.

 

        ENDLOOP.

 

      ENDIF.

 

    ENDIF.

 

  ENDIF.

 

  CLEAR: /pws/zycee001-dtaverb,

         /pws/zycee001-dtemb,

         /pws/zycee001-dteta,

         /pws/zycee001-dtinclav,

         /pws/zycee001-dtprev,

         /pws/zycee001-dtrecemb,

         /pws/zycee001-dtvencto,

         /pws/zycee001-kurrf_bl,

         /pws/zycee001-navio,

         /pws/zycee001-portdest,

         /pws/zycee001-portemb,

         /pws/zycee001-paisportdest,

         /pws/zycee001-viatrans,

         /pws/zycee001-inco1,

         /pws/zycee001-dtcruze,

         /pws/zycee001-paisemb,

         /pws/zycee001-tpcalc,

         /pws/zycee001-eadi,

         /pws/zycee001-zolla_eadi,

         /pws/zycee001-modo_venc,

         wa_valores-nrseq_consig.

 

  LOOP AT itab_zycet002 WHERE NOT nrseq_consig IS initial.

 

    READ TABLE itab_emb_cons

               WITH KEY nrseq_cons = itab_zycet002-nrseq_consig.

 

    CHECK sy-subrc EQ 0.

 

    wa_valores-nrseq_consig = itab_zycet002-nrseq_consig.

 

    MOVE-CORRESPONDING itab_emb_cons TO /pws/zycee001.

 

    EXIT.

 

  ENDLOOP.

 

ENDFORM.                    " atualiza_consignacao

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F02

 

FORM cons_define_tabstrips.

 

  DATA: v_tela_botao LIKE sy-dynnr.

 

* Define as telas e subtelas das tabstrips, além dos textos das abas

  DEFINE add_tabstrip.

    clear itab_tabstrip.

    read table itab_tabstrip with key level = &1

                                    tabname = &2.

    if sy-subrc ne 0.

      itab_tabstrip-level    = &1.

      itab_tabstrip-tabname  = &2.

      itab_tabstrip-cprog    = &3.

      itab_tabstrip-dynnr    = &4.

      itab_tabstrip-visible  = 'X'.

      itab_tabstrip-hdr_scr  = &5.

      itab_tabstrip-tbar_scr = &6.

      itab_tabstrip-descr    = &7.

      append itab_tabstrip.

    endif.

  END-OF-DEFINITION.

...

 

  add_tabstrip 'HDR' 'T/06' sy-cprog '0102' '0100' '0050'

               'Serviços'(c06).

* >> Início da Exclusão <<

  add_tabstrip 'HDR' 'T/07' sy-cprog '0103' '0100' '0050'

               'Fluxo do Faturamento Intercompany'(c07).

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  add_tabstrip 'HDR' 'T/07' sy-cprog '0103' '0100' '0050'

             'Vendas de Consignação'(c07).

* >> Fim da Inclusão <<

  add_tabstrip 'HDR' 'T/08' sy-cprog '0104' '0100' '0050'

               'SISCOMEX'(c08).

...

 

FORM cons_define_tablecontrols.

 

* Define dados de controle para as Table-Controls

  DEFINE add_table_control.

    clear itab_tbcontrol.

    read table itab_tbcontrol with key level = &1

                                     tabname = &2.

    if sy-subrc ne 0.

      itab_tbcontrol-level   = &1.

      itab_tbcontrol-dynnr   = &2.

      itab_tbcontrol-tabname = &3.

      itab_tbcontrol-nivel   = &4.

      itab_tbcontrol-group4  = &5.

      itab_tbcontrol-exibe   = &6.

      itab_tbcontrol-selec   = &7.

      itab_tbcontrol-pagina  = 1.

      append itab_tbcontrol.

    endif.

  END-OF-DEFINITION.

...

  add_table_control 'HDR' '0102' 'T/06' 'SVC' 'S' space 'X'.

* >> Início da Inclusão <<

  add_table_control 'HDR' '0103' 'T/07' 'CON' 'C' 'S'   'X'.

* >> Fim da Inclusão <<

  add_table_control 'HDR' '0104' 'T/08' 'SIS' 'S' 'S'   'X'.

 

...

 

FORM cons_define_drill_down.

 

  DATA: v_tsysdef LIKE tsysdef.

 

...

  IF v_tsysdef(2) EQ '00'.

    add_drill_down '/PWS/ZYCEE001-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   space

                   space.

    add_drill_down '/PWS/ZYCEE002-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   space

                   space.

* >> Início da Inclusão <<

    add_drill_down 'ITAB_VENDA_CONS-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   space

                   space.

* >> Fim da Inclusão <<

  ELSE.

    add_drill_down '/PWS/ZYCEE001-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   'X'

                   space.

    add_drill_down '/PWS/ZYCEE002-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   'X'

                   space.

* >> Início da Inclusão <<

    add_drill_down 'ITAB_VENDA_CONS-WERKS'

                   'WB03'

                   'WRK'

                   space

                   space

                   'X'

                   space.

* >> Fim da Inclusão <<

  ENDIF.

 

...

 

* >> Início da Inclusão <<

  add_drill_down 'ITAB_VENDA_CONS-VBELN_VA'

                 'VA03'

                 'AUN'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-VBELN_VL'

                 'VL03N'

                 'VL'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-VBELN_VF'

                 'VF03'

                 'VF'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-DOCNUM'

                 'J1B3'

                 'JEF'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-KUNAG'

                 'FD03'

                 'KUN'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-MATNR'

                 'MM03'

                 'MAT'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'WA_VALORES-NRSEQ_CONSIG'

                 c_transacao_e

                 '/PWS/ZYCEP001'

                 space

                 space

                 'X'

                 space.

 

  add_drill_down 'ITAB_VENDA_CONS-NRSEQ'

                 c_transacao_e

                 '/PWS/ZYCEP001'

                 space

                 space

                 'X'

                 space.

* >> Fim da Inclusão <<

...

ENDFORM.                    " cons_define_drill_down

 

 

FORM valores_iniciais.

 

  CASE sy-dynnr.

    WHEN '0001'.

      PERFORM valores_iniciais_0001.

 

    WHEN '0002'.

      PERFORM valores_iniciais_0002.

 

    WHEN '0003'.

      PERFORM valores_iniciais_0003.

 

    WHEN '0010'.

      PERFORM valores_iniciais_0010.

 

    WHEN '0050'.

 

    WHEN '0051'.

 

    WHEN '0100'.

* >> Início da Inclusão <<

      PERFORM valores_iniciais_0100.

* >> Fim da Inclusão <<

 

    WHEN '0101'.

      PERFORM valores_iniciais_0101.

 

    WHEN '0102'.

      PERFORM valores_iniciais_0102.

 

* >> Início da Inclusão <<

    WHEN '0103'.

      PERFORM valores_iniciais_0103.

 

* >> Fim da Inclusão <<

    WHEN '0104'.

      PERFORM valores_iniciais_0104.

 

    WHEN '0105'.

      PERFORM valores_iniciais_0105.

 

    WHEN '0106'.

      PERFORM valores_iniciais_0106.

...

ENDFORM.                    " valores_iniciais

...

 

FORM valores_iniciais_0002.

 

  DATA: v_nome     TYPE vrm_id,

        v_lista    TYPE vrm_values,

        wa_valores LIKE LINE OF v_lista.

 

* >> Início da Inclusão <<

  CONSTANTS: c_permitido(5) TYPE c VALUE 'SDVTC'.

* >> Fim da Inclusão <<

 

  IF /pws/zycee001 IS INITIAL.

 

    PERFORM limpa_tabelas_internas.

 

    READ TABLE itab_zycet312 INDEX 1.

...

 

    MOVE: sy-langu                TO /pws/zycee001-spras,

          sy-datum                TO /pws/zycee001-dtuserc,

          sy-uzeit                TO /pws/zycee001-hruserc,

          sy-uname                TO /pws/zycee001-unamec,

          sy-datlo                TO /pws/zycee001-dtincl,

          space                   TO /pws/zycee001-envia_c,

          '1'                     TO /pws/zycee001-sta1,

          '1'                     TO /pws/zycee001-tpcalc.

 

* >> Início da Inclusão <<

    IF /pws/zycee001-tipo_emb NA c_permitido.

      /pws/zycee001-tipo_emb = 'S'.

    ENDIF.

* >> Fim da Inclusão <<

 

  ENDIF.

 

* >> Início da Exclusão <<

* Prepara o filtro da seleção do Local de Embarque

  v_nome = 'WA_FILTRO-LCEMB'.

 

* Define valores para o Local de Embarque

  LOOP AT itab_zycet316 WHERE uname   EQ sy-uname AND

                              loc_emb NE space.

    wa_valores-key  = itab_zycet316-loc_emb.

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                          itab_zycet316-loc_emb

                                 CHANGING wa_valores-text.

    APPEND wa_valores TO v_lista.

  ENDLOOP.

 

  IF sy-subrc NE 0.

    LOOP AT itab_zycet316 WHERE uname   EQ space AND

                                loc_emb NE space.

      wa_valores-key  = itab_zycet316-loc_emb.

      PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                            itab_zycet316-loc_emb

                                   CHANGING wa_valores-text.

      APPEND wa_valores TO v_lista.

    ENDLOOP.

 

  ENDIF.

 

  wa_filtro-lcemb = /pws/zycee001-loc_emb.

  DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.

 

  IF wa_numero_filtro-lcemb EQ 0.

 

    wa_valores-key  = 'N'.

 

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                          wa_valores-key

                                 CHANGING wa_valores-text.

 

    wa_numero_filtro-lcemb = 1.

    wa_filtro-lcemb = 'N'.

 

  ELSEIF wa_numero_filtro-lcemb EQ 1.

 

    READ TABLE itab_zycet316 INDEX 1.

    wa_filtro-lcemb = itab_zycet316-loc_emb.

 

  ENDIF.

 

  CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

            id     = v_nome

            values = v_lista.

 

  REFRESH v_lista.

 

* Prepara o filtro da seleção do Tipo de Embarque

  v_nome = 'WA_FILTRO-TPEMB'.

 

* Define valores para o Local de Embarque

  LOOP AT itab_zycet317 WHERE uname  EQ sy-uname AND

                              tp_emb NE space.

    CHECK itab_zycet317-tp_emb CA 'SDVT'.

    wa_valores-key  = itab_zycet317-tp_emb.

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                          itab_zycet317-tp_emb

                                 CHANGING wa_valores-text.

    APPEND wa_valores TO v_lista.

  ENDLOOP.

 

  IF sy-subrc NE 0.

 

    LOOP AT itab_zycet317 WHERE uname EQ space AND

                               tp_emb NE space.

 

      CHECK itab_zycet317-tp_emb CA 'SDVT'.

      wa_valores-key  = itab_zycet317-tp_emb.

      PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                            itab_zycet317-tp_emb

                                   CHANGING wa_valores-text.

      APPEND wa_valores TO v_lista.

 

    ENDLOOP.

 

  ENDIF.

 

  wa_filtro-tpemb = /pws/zycee001-tipo_emb.

 

  DESCRIBE TABLE v_lista LINES wa_numero_filtro-tpemb.

 

  IF wa_numero_filtro-tpemb EQ 1.

    READ TABLE itab_zycet317 INDEX 1.

    wa_filtro-tpemb = itab_zycet317-tp_emb.

  ENDIF.

 

  wa_filtro-lcemb = /pws/zycee001-loc_emb.

  DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.

 

  IF wa_numero_filtro-tpemb EQ 0.

 

    wa_valores-key  = 'S'.

 

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                          wa_valores-key

                                 CHANGING wa_valores-text.

 

    wa_numero_filtro-tpemb = 1.

    wa_filtro-tpemb = 'S'.

 

  ELSEIF wa_numero_filtro-tpemb EQ 1.

 

    READ TABLE itab_zycet317 INDEX 1.

    wa_filtro-tpemb = itab_zycet317-tp_emb.

 

  ENDIF.

 

  CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

            id     = v_nome

            values = v_lista.

 

  REFRESH v_lista.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

* Prepara o filtro da seleção do Local de Embarque

  v_nome = 'WA_FILTRO-LCEMB'.

 

* Define valores para o Local de Embarque

  LOOP AT itab_zycet316 WHERE uname   EQ sy-uname AND

                              loc_emb NE space.

    wa_valores-key  = itab_zycet316-loc_emb.

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                          itab_zycet316-loc_emb

                                 CHANGING wa_valores-text.

    APPEND wa_valores TO v_lista.

  ENDLOOP.

 

  IF sy-subrc NE 0.

    LOOP AT itab_zycet316 WHERE uname   EQ space AND

                                loc_emb NE space.

      wa_valores-key  = itab_zycet316-loc_emb.

      PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                            itab_zycet316-loc_emb

                                   CHANGING wa_valores-text.

      APPEND wa_valores TO v_lista.

    ENDLOOP.

 

  ENDIF.

 

  wa_filtro-lcemb = /pws/zycee001-loc_emb.

  DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.

 

  IF wa_numero_filtro-lcemb EQ 0.

 

    wa_valores-key  = 'N'.

 

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'

                                          wa_valores-key

                                 CHANGING wa_valores-text.

 

    wa_numero_filtro-lcemb = 1.

    wa_filtro-lcemb = 'N'.

 

    /pws/zycee001-loc_emb = 'N'.

 

  ELSEIF wa_numero_filtro-lcemb EQ 1.

 

    READ TABLE itab_zycet316 INDEX 1.

    wa_filtro-lcemb = itab_zycet316-loc_emb.

 

    /pws/zycee001-loc_emb = itab_zycet316-loc_emb.

 

  ELSE.

 

    READ TABLE v_lista

               WITH KEY key = /pws/zycee001-loc_emb

               INTO wa_valores.

 

    IF sy-subrc NE 0.

 

      READ TABLE v_lista INDEX 1 INTO wa_valores.

      /pws/zycee001-loc_emb = wa_valores-key.

      wa_filtro-lcemb = /pws/zycee001-loc_emb.

 

    ENDIF.

 

  ENDIF.

 

  CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

            id     = v_nome

            values = v_lista.

 

  REFRESH v_lista.

 

* Prepara o filtro da seleção do Tipo de Embarque

  v_nome = 'WA_FILTRO-TPEMB'.

 

* Define valores para o Local de Embarque

  LOOP AT itab_zycet317 WHERE uname  EQ sy-uname AND

                              tp_emb NE space.

    CHECK itab_zycet317-tp_emb CA c_permitido.

    wa_valores-key  = itab_zycet317-tp_emb.

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                          itab_zycet317-tp_emb

                                 CHANGING wa_valores-text.

    APPEND wa_valores TO v_lista.

  ENDLOOP.

 

  IF sy-subrc NE 0.

 

    LOOP AT itab_zycet317 WHERE uname EQ space AND

                               tp_emb NE space.

 

      CHECK itab_zycet317-tp_emb CA c_permitido.

      wa_valores-key  = itab_zycet317-tp_emb.

      PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                            itab_zycet317-tp_emb

                                   CHANGING wa_valores-text.

      APPEND wa_valores TO v_lista.

 

    ENDLOOP.

 

  ENDIF.

 

  wa_filtro-tpemb = /pws/zycee001-tipo_emb.

 

  DESCRIBE TABLE v_lista LINES wa_numero_filtro-tpemb.

 

  IF wa_numero_filtro-tpemb EQ 0.

 

    wa_valores-key  = 'S'.

 

    PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'

                                          wa_valores-key

                                 CHANGING wa_valores-text.

 

    wa_numero_filtro-tpemb = 1.

    wa_filtro-tpemb = 'S'.

 

    /pws/zycee001-tipo_emb = wa_filtro-tpemb.

 

  ELSEIF wa_numero_filtro-tpemb EQ 1.

 

    READ TABLE itab_zycet317 INDEX 1.

    wa_filtro-tpemb = itab_zycet317-tp_emb.

 

    /pws/zycee001-tipo_emb = wa_filtro-tpemb.

 

  ELSE.

 

    READ TABLE v_lista

               WITH KEY key = /pws/zycee001-tipo_emb

               INTO wa_valores.

 

    IF sy-subrc NE 0.

 

      READ TABLE v_lista INDEX 1 INTO wa_valores.

      wa_filtro-tpemb = wa_valores-key.

      /pws/zycee001-tipo_emb = wa_filtro-tpemb.

 

    ENDIF.

 

  ENDIF.

 

  CALL FUNCTION 'VRM_SET_VALUES'

       EXPORTING

            id     = v_nome

            values = v_lista.

 

  REFRESH v_lista.

* >> Fim da Inclusão <<

 

...

ENDFORM.                    " valores_iniciais_0002

 

* >> Início da Inclusão <<

FORM valores_iniciais_0100.

 

  LOOP AT itab_zycet002 WHERE NOT nrseq_consig IS initial.

 

    wa_valores-nrseq_consig = itab_zycet002-nrseq_consig.

 

    EXIT.

 

  ENDLOOP.

 

ENDFORM.                    " valores_iniciais_0100

FORM valores_iniciais_0103.

 

  DATA: v_tabix LIKE sy-tabix.

 

  DESCRIBE TABLE itab_venda_cons LINES v_tabix.

 

  tc_consigna-lines = v_tabix + 1.

 

  PERFORM posiciona_table_control USING 3

                               CHANGING tc_consigna-top_line.

 

ENDFORM.                    " valores_iniciais_0103

* >> Fim da Inclusão <<

 

FORM loop_at_screen.

 

* >> Início da Exclusão <<

  DATA: v_consignacao TYPE c.

 

  IF NOT /pws/zycee001 IS INITIAL.

 

    CLEAR itab_zycet037.

    READ TABLE itab_zycet037 WITH KEY bukrs = /pws/zycee001-bukrs.

 

    IF NOT itab_zycet037-bukrs IS INITIAL.

      IF itab_zycet037-consig_std EQ 0.

        IF itab_zycet002[] IS INITIAL.

          v_consignacao = 'X'.

        ELSE.

          READ TABLE itab_zycet002 WITH KEY vbeln_vf = space.

          IF sy-subrc EQ 0.

            v_consignacao = 'X'.

          ENDIF.

        ENDIF.

      ELSE.

        v_consignacao = 'X'.

      ENDIF.

    ENDIF.

 

  ENDIF.

* >> Fim da Exclusão <<

 

  CASE sy-dynnr.

    WHEN '0001'.

 

    WHEN '0002'.

      PERFORM loop_at_screen_0002.

* >> Início da Exclusão <<

      v_consignacao = 'X'.

 

    WHEN '0010'.

      PERFORM loop_at_screen_0010.

      PERFORM verifica_tabstrip.

 

    WHEN '0050'.

 

    WHEN '0100'.

 

    WHEN '0101'.

      PERFORM loop_at_screen_0101.

 

    WHEN '0102'.

      PERFORM loop_at_screen_0102 USING v_consignacao.

 

    WHEN '0104'.

      PERFORM loop_at_screen_0104 USING v_consignacao.

 

    WHEN '0105'.

      PERFORM loop_at_screen_0105 USING v_consignacao.

 

    WHEN '0106'.

      PERFORM loop_at_screen_0106 USING v_consignacao.

 

    WHEN '0200'.

      PERFORM loop_at_screen_0102 USING v_consignacao.

      PERFORM loop_at_screen_0200.

 

    WHEN '0201'.

      PERFORM loop_at_screen_0102 USING v_consignacao.

 

    WHEN '0204'.

      PERFORM loop_at_screen_0204.

 

    WHEN '0205'.

      PERFORM loop_at_screen_0205 USING v_consignacao.

 

    WHEN '0211'.

      PERFORM loop_at_screen_0211 USING v_consignacao.

 

    WHEN '0221'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0222'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0223'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0224'.

      PERFORM loop_at_screen_expande.

 

    WHEN '4001'.

      PERFORM loop_at_screen_4001.

 

    WHEN '4002'.

      PERFORM loop_at_screen_0102 USING v_consignacao.

 

    WHEN '4004'.

      PERFORM loop_at_screen_4004.

 

  ENDCASE.

 

  LOOP AT SCREEN.

 

    PERFORM loop_at_screen_default USING v_consignacao

                                CHANGING screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

 

    WHEN '0010'.

      PERFORM loop_at_screen_0010.

      PERFORM verifica_tabstrip.

 

    WHEN '0050'.

 

    WHEN '0100'.

 

    WHEN '0101'.

      PERFORM loop_at_screen_0101.

 

    WHEN '0102'.

      PERFORM loop_at_screen_0102.

 

    WHEN '0103'.

      PERFORM loop_at_screen_0103.

 

    WHEN '0104'.

      PERFORM loop_at_screen_0104.

 

    WHEN '0105'.

      PERFORM loop_at_screen_0105.

 

    WHEN '0106'.

      PERFORM loop_at_screen_0106.

 

    WHEN '0200'.

      PERFORM loop_at_screen_0102.

      PERFORM loop_at_screen_0200.

 

    WHEN '0201'.

      PERFORM loop_at_screen_0102.

 

    WHEN '0204'.

      PERFORM loop_at_screen_0204.

 

    WHEN '0205'.

      PERFORM loop_at_screen_0205.

 

    WHEN '0211'.

      PERFORM loop_at_screen_0211.

 

    WHEN '0221'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0222'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0223'.

      PERFORM loop_at_screen_expande.

 

    WHEN '0224'.

      PERFORM loop_at_screen_expande.

 

    WHEN '4001'.

      PERFORM loop_at_screen_4001.

 

    WHEN '4002'.

      PERFORM loop_at_screen_0102.

 

    WHEN '4004'.

      PERFORM loop_at_screen_4004.

 

  ENDCASE.

 

  LOOP AT SCREEN.

 

    PERFORM loop_at_screen_default CHANGING screen.

* >> Fim da Inclusão <<

 

    MODIFY SCREEN.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen

...

 

* >> Início da Exclusão <<

FORM loop_at_screen_default USING value(p_consignacao) TYPE c

                            CHANGING wa_screen  LIKE screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_default CHANGING wa_screen  LIKE screen.

* >> Fim da Inclusão <<

...

  IF wa_screen-group3 EQ '023'.

    IF sy-tcode EQ c_transacao_c.

      wa_screen-input     = '0'.

      wa_screen-output    = '0'.

      wa_screen-invisible = '1'.

      wa_screen-required  = '0'.

      wa_screen-active    = '0'.

    ELSEIF sy-tcode EQ c_transacao_a.

      v_input = '1'.

      wa_screen-input     = '1'.

      wa_screen-output    = '1'.

      wa_screen-invisible = '0'.

      wa_screen-required  = '0'.

      wa_screen-active    = '1'.

    ELSE.

      wa_screen-output    = '1'.

      wa_screen-invisible = '0'.

      wa_screen-required  = '0'.

      wa_screen-active    = '1'.

    ENDIF.

  ENDIF.

 

* >> Início da Exclusão <<

  IF /pws/zycee001-emb_consig = 'C' AND

     p_consignacao NE 'X'.

    wa_screen-input = '0'.

  ENDIF.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

  IF wa_screen-group3 EQ '024' OR

     wa_screen-group2 CA '4'.

    IF /pws/zycee001-emb_consig EQ 'V'.

      wa_screen-input = '0'.

    ENDIF.

  ENDIF.

 

  IF wa_screen-group3 EQ '025'.

    IF /pws/zycee001-emb_consig NE 'V' OR

       /pws/zycee001-tipo_emb   NE 'C'.

      wa_screen-input     = '0'.

      wa_screen-output    = '0'.

      wa_screen-invisible = '1'.

      wa_screen-required  = '0'.

      wa_screen-active    = '0'.

    ELSE.

      wa_screen-input     = '0'.

      wa_screen-output    = '1'.

      wa_screen-invisible = '0'.

      wa_screen-required  = '0'.

      wa_screen-active    = '1'.

    ENDIF.

  ENDIF.

* >> Fim da Inclusão <<

 

  IF wa_screen-group2 NA '0'.

...

ENDFORM.                    " loop_at_screen_default

 

 

 

FORM loop_at_screen_0010.

 

  DATA: v_tabix      LIKE sy-tabix,

        v_tabname(4) TYPE c.

 

  CLEAR itab_t001.

  READ TABLE itab_t001 WITH KEY bukrs = /pws/zycee001-bukrs.

 

  LOOP AT SCREEN.

 

    CHECK screen-group1 EQ 'TAB'.

 

    IF wa_controle-nivel_tela EQ 'HDR'.

 

      CONCATENATE 'T/'

                  screen-name+26(2)

                  INTO v_tabname.

 

      READ TABLE itab_tabstrip

                 WITH KEY level  = wa_controle-nivel_tela

                         tabname = v_tabname.

 

      IF sy-subrc EQ 0.

 

        v_tabix = sy-tabix.

* >> Início da Inclusão <<

        IF itab_tabstrip-dynnr EQ '0103'.

          itab_tabstrip-visible = ' '.

          IF sy-tcode EQ c_transacao_c.

            itab_tabstrip-visible = ' '.

          ELSEIF /pws/zycee001-tipo_emb   EQ 'C' AND

                 /pws/zycee001-emb_consig EQ 'C'.

            itab_tabstrip-visible = 'X'.

          ENDIF.

        ENDIF.

* >> Fim da Inclusão <<

 

        IF itab_tabstrip-dynnr EQ '0104'.

...

 

ENDFORM.                    " loop_at_screen_0010

 

* >> Início da Exclusão <<

FORM loop_at_screen_0102 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0102.

* >> Fim da Inclusão <<

...

      wa_cols-screen-output    = '1'.

      wa_cols-screen-active    = '1'.

      wa_cols-invisible        = '0'.

      wa_cols-screen-invisible = '0'.

 

* >> Início da Exclusão <<

      PERFORM loop_at_screen_default USING p_consignacao

                                  CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

 

      IF wa_cols-screen-invisible EQ '1'.

        wa_cols-invisible = '1'.

      ENDIF.

 

    ENDIF.

 

    MODIFY tc_itens-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0102

 

* >> Início da Inclusão <<

FORM loop_at_screen_0103.

 

  DATA: wa_cols TYPE cxtab_column.

 

  LOOP AT tc_consigna-cols INTO wa_cols.

 

    IF wa_cols-screen-group1 CA 'F'.

 

      wa_cols-screen-input     = '0'.

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

      wa_cols-screen-input     = '0'.

 

    ELSE.

 

      wa_cols-screen-output    = '1'.

      wa_cols-invisible        = '0'.

      wa_cols-screen-active    = '1'.

 

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

 

      IF wa_cols-screen-invisible EQ '1'.

        wa_cols-invisible = '1'.

      ENDIF.

 

    ENDIF.

 

    MODIFY tc_consigna-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0103

* >> Fim da Inclusão <<

 

* >> Início da Exclusão <<

FORM loop_at_screen_0104 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0104.

* >> Fim da Inclusão <<

 

  DATA: wa_cols TYPE cxtab_column.

 

  LOOP AT tc_siscomex-cols INTO wa_cols.

 

    IF wa_cols-screen-group1 CA 'F'.

 

      wa_cols-screen-input     = '0'.

* >> Início da Exclusão <<

      PERFORM loop_at_screen_default USING p_consignacao

                                  CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

      wa_cols-screen-input     = '0'.

 

    ELSE.

 

      wa_cols-screen-output    = '1'.

      wa_cols-invisible        = '0'.

      wa_cols-screen-active    = '1'.

 

* >> Início da Exclusão <<

      PERFORM loop_at_screen_default USING p_consignacao

                                  CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

 

      IF wa_cols-screen-invisible EQ '1'.

        wa_cols-invisible = '1'.

      ENDIF.

 

    ENDIF.

 

    MODIFY tc_siscomex-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0104

 

* >> Início da Exclusão <<

FORM loop_at_screen_0105 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0105.

* >> Fim da Inclusão <<

 

  DATA: wa_cols TYPE cxtab_column.

 

  LOOP AT tc_parceiro-cols INTO wa_cols.

 

    IF wa_cols-screen-group3 NE space AND

       ( ( wa_cols-screen-group3 CA wa_filtro-parvw(1) AND

           wa_filtro-parvw       NE 'DK' ) OR

         wa_cols-screen-group3 EQ 'DK' ).

 

      wa_cols-screen-input     = '0'.

      wa_cols-screen-output    = '0'.

      wa_cols-invisible        = '1'.

      wa_cols-screen-active    = '0'.

 

    ELSE.

 

      wa_cols-screen-output    = '1'.

      wa_cols-invisible        = '0'.

      wa_cols-screen-active    = '1'.

 

* >> Início da Exclusão <<

      PERFORM loop_at_screen_default USING p_consignacao

                                  CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

 

      IF wa_cols-screen-invisible EQ '1'.

        wa_cols-invisible = '1'.

      ENDIF.

 

    ENDIF.

 

    MODIFY tc_parceiro-cols FROM wa_cols.

 

  ENDLOOP.

...

ENDFORM.                    " loop_at_screen_0105

 

 

* >> Início da Exclusão <<

FORM loop_at_screen_0105 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0105.

* >> Fim da Inclusão <<

 

  DATA: wa_cols TYPE cxtab_column.

 

  LOOP AT tc_resumo-cols INTO wa_cols.

 

* >> Início da Exclusão <<

    PERFORM loop_at_screen_default USING p_consignacao

                                CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

    PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

 

    IF wa_cols-screen-invisible EQ '1'.

      wa_cols-invisible = '1'.

    ENDIF.

 

    MODIFY tc_resumo-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0106

 

* >> Início da Exclusão <<

FORM loop_at_screen_0205 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0205.

* >> Fim da Inclusão <<

 

  DATA: wa_cols TYPE cxtab_column.

 

  LOOP AT tc_drawback-cols INTO wa_cols.

 

* >> Início da Exclusão <<

    PERFORM loop_at_screen_default USING p_consignacao

                                CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

    PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

    wa_cols-screen-input     = '0'.

    MODIFY tc_drawback-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0205

 

 

* >> Início da Exclusão <<

FORM loop_at_screen_0211 USING value(p_consignacao) TYPE c.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

FORM loop_at_screen_0211.

* >> Fim da Inclusão <<

 

  DATA: v_itens TYPE i.

  DATA: wa_cols TYPE cxtab_column.

  DATA: v_nivel TYPE c.

 

  DESCRIBE TABLE itab_pricing_tc LINES v_itens.

  tc_pricing-lines = v_itens.

 

  READ TABLE itab_tbcontrol WITH KEY level   = wa_controle-nivel_tela

                                     tabname = ts_embarque-activetab

                                     dynnr   = sy-dynnr.

...

    ELSE.

 

      wa_cols-screen-input     = '0'.

      wa_cols-screen-output    = '1'.

      wa_cols-screen-active    = '1'.

      wa_cols-invisible        = '0'.

 

* >> Início da Exclusão <<

      PERFORM loop_at_screen_default USING p_consignacao

                                CHANGING wa_cols-screen.

* >> Fim da Exclusão <<

* >> Início da Inclusão <<

      PERFORM loop_at_screen_default CHANGING wa_cols-screen.

* >> Fim da Inclusão <<

 

      IF wa_cols-screen-invisible EQ '1'.

        wa_cols-invisible = '1'.

      ENDIF.

 

    ENDIF.

 

    MODIFY tc_pricing-cols FROM wa_cols.

 

  ENDLOOP.

 

ENDFORM.                    " loop_at_screen_0211

 

 

 

FORM loop_at_screen_tc.

 

  DATA: v_input LIKE screen-input.

 

  v_input = '0'.

 

  IF wa_controle-edicao EQ 'X'.

    v_input = '1'.

  ENDIF.

 

  IF /pws/zycee001-envia_c EQ 'X'.

    IF sy-dynnr NE '0105'.

      v_input = '0'.

    ENDIF.

  ENDIF.

...

          ENDIF.

 

        ENDIF.

 

        MODIFY SCREEN.

 

      ENDLOOP.

 

* >> Início da Inclusão <<

    WHEN '0103'.

 

      LOOP AT SCREEN.

 

        CHECK screen-group1 NA 'F'.

 

        screen-input = v_input.

 

        MODIFY SCREEN.

 

      ENDLOOP.

 

* >> Fim da Inclusão <<

    WHEN '0104'.

 

      LOOP AT SCREEN.

...

ENDFORM.                    " loop_at_screen_tc

 

FORM exclui_status_gui_0010_hdr TABLES i_botoes.

 

  IF itab_zycet015[] IS INITIAL.

    APPEND 'F_SADIA' TO i_botoes.

    APPEND 'F_SPCON' TO i_botoes.

  ENDIF.

...

  IF /pws/zycee001-tipo_emb EQ 'T'.

    APPEND 'ENV_CB' TO i_botoes.

    APPEND 'REM_CB' TO i_botoes.

    APPEND 'F_APROP' TO i_botoes.

    APPEND 'F_RGVEN' TO i_botoes.

    APPEND 'F_RVEND' TO i_botoes.

  ENDIF.

 

* >> Início da Inclusão <<

  IF /pws/zycee001-tipo_emb EQ 'C'.

    IF /pws/zycee001-emb_consig EQ 'C'.

      APPEND 'ENV_CB' TO i_botoes.

      APPEND 'REM_CB' TO i_botoes.

      APPEND 'F_RVEND' TO i_botoes.

      APPEND 'F_VCAMB' TO i_botoes.

      APPEND 'F_LCAMB' TO i_botoes.

      APPEND 'F_APROP' TO i_botoes.

      APPEND 'F_PEXPA' TO i_botoes.

    ELSE.

      APPEND 'F_REXPO' TO i_botoes.

      APPEND 'F_DDEXP' TO i_botoes.

      APPEND 'F_DSEXP' TO i_botoes.

      APPEND 'F_APROP' TO i_botoes.

      APPEND 'F_PEXPA' TO i_botoes.

      APPEND 'F_FPRAC' TO i_botoes.

      APPEND 'F_CONTA' TO i_botoes.

    ENDIF.

  ENDIF.

 

* >> Fim da Inclusão <<

ENDFORM.                    " exclui_status_gui_0010_hdr

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE003TCP

 

* /PWS/ZYCET317 - CE - Tipos de Embarque

DATA: BEGIN OF itab_zycet317 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet317.

DATA: END OF itab_zycet317.

 

* >> Início da Exclusão <<

* /PWS/ZYCET318 - CE - Tipos de Embarque de Consignação

DATA: BEGIN OF itab_zycet318 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet318.

DATA: END OF itab_zycet318.

 

* /PWS/ZYCET319 - CE - Tipos de Embarque Temporários

DATA: BEGIN OF itab_zycet319 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet319.

DATA: END OF itab_zycet319.

 

* >> Fim da Exclusão <<

* /PWS/ZYCIT030 - GL - Param. Despesas de Custo x Condition Type

DATA: BEGIN OF itab_zycit030 OCCURS 0,

        bukrs  LIKE /pws/zycit030-bukrs,

        codmod LIKE /pws/zycit030-codmod,

        codigo LIKE /pws/zycit030-codigo,

        kschl  LIKE /pws/zycit030-kschl,

        vtext  LIKE /pws/zycit030-vtext,

        fator  LIKE /pws/zycit030-fator,

      END OF itab_zycit030.

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE003TIA

 

* Tabela interna com os valores individuais das Conditions de Preços

DATA: BEGIN OF itab_pricing OCCURS 0,

        codigo LIKE /pws/zycet008-codigo,

        kschl  LIKE konv-kschl,

        vbeln  LIKE vbap-vbeln,

        posnr  LIKE vbap-posnr,

        kwert  LIKE konv-kwert,

        kbetr  LIKE konv-kbetr,

      END OF itab_pricing.

 

DATA: itab_pricing_tc LIKE itab_pricing OCCURS 0 WITH HEADER LINE.

 

* >> Início da Inclusão <<

* Tabela interna com dados das vendas de consignação

DATA: BEGIN OF itab_venda_cons OCCURS 0,

        nrseq        LIKE /pws/zycet002-nrseq,

        vbeln_va     LIKE /pws/zycet002-vbeln_va,

        vbeln_vf     LIKE /pws/zycet002-vbeln_vf,

        posnr        LIKE /pws/zycet002-posnr,

        docnum       LIKE /pws/zycet002-docnum,

        vbeln_vl     LIKE /pws/zycet002-vbeln_vl,

        posnl        LIKE /pws/zycet002-posnl,

        aupos        LIKE /pws/zycet002-aupos,

        fkdat        LIKE /pws/zycet002-fkdat,

        inco1        LIKE /pws/zycet002-inco1,

        zterm        LIKE /pws/zycet002-zterm,

        land1        LIKE /pws/zycet002-land1,

        kunag        LIKE /pws/zycet002-kunag,

        gsber        LIKE /pws/zycet002-gsber,

        matnr        LIKE /pws/zycet002-matnr,

        werks        LIKE /pws/zycet002-werks,

        nfnum        LIKE /pws/zycet002-nfnum,

        nrseq_consig LIKE /pws/zycet002-nrseq_consig,

        vbeln_consig LIKE /pws/zycet002-vbeln_consig,

        posnr_consig LIKE /pws/zycet002-posnr_consig,

      END OF itab_venda_cons.

* >> Fim da Inclusão <<

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE003TOP

 

* Valores de Campos

DATA: BEGIN OF wa_valores,

* >> Início da Inclusão <<

        nrseq_consig    LIKE /pws/zycet001-nrseq,

* >> Fim da Inclusão <<

        peso(30)        TYPE c,

        parvw_final(20) TYPE c,

        preco_base      LIKE /pws/zycet008-vlme,

        preco_000001    LIKE /pws/zycet008-vlme,

        pais_dest       LIKE t005t-landx,

        gsber           LIKE tgsbt-gtext,

        werks           LIKE t001w-name1,

        vkorg           LIKE tvkot-vtext,

        vtweg           LIKE tvtwt-vtext,

        spara           LIKE tspat-vtext,

        kostl           LIKE cskt-ktext,

        prctr           LIKE cepct-ktext,

        vkgrp           LIKE tvgrt-bezei,

        auart           LIKE tvakt-bezei,

        fkart           LIKE tvfkt-vtext,

        inco1           LIKE tinct-bezei,

        zterm           LIKE t052u-text1,

        ktgrm           LIKE tvkmt-vtext,

        ktgrd           LIKE tvktt-vtext,

      END OF wa_valores.

 

...

 

* Controles

CONTROLS: ts_embarque TYPE TABSTRIP,

          tc_itens    TYPE TABLEVIEW USING SCREEN '0102',

* >> Início da Inclusão <<

          tc_consigna TYPE TABLEVIEW USING SCREEN '0103',

* >> Fim da Inclusão <<

          tc_siscomex TYPE TABLEVIEW USING SCREEN '0104',

          tc_parceiro TYPE TABLEVIEW USING SCREEN '0105',

          tc_resumo   TYPE TABLEVIEW USING SCREEN '0106',

          tc_docrel   TYPE TABLEVIEW USING SCREEN '0204',

          tc_drawback TYPE TABLEVIEW USING SCREEN '0205',

          tc_pricing  TYPE TABLEVIEW USING SCREEN '0211',

          tc_outdados TYPE TABLEVIEW USING SCREEN '4004'.

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCE003

Criar os seguintes elementos de texto:

 

572: Consignação

573: Venda de Consignação

 

Alterar o elemento de texto abaixo:

 

De:

C07: Fluxo do Faturamento Intercompany

Para:

C07: Vendas de Consignação

 

 

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

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

 

Abaixo do campo Status do Processo (/PWS/ZYCEE001-STA1), foi incluído um campo na tela:

 

Campo Texto:

Nome  : *WA_VALORES-NRSEQ_CONSIG

Texto : Embarque de Consignação

Linha : 3

Coluna: 59

SCREEN-GROUP1: '   '

SCREEN-GROUP2: '0  '

SCREEN-GROUP3: '025'

SCREEN-GROUP4: '   '

Como denominador à esquerda

 

 

Campo entrada/saída:

Nome  : WA_VALORES-NRSEQ_CONSIG

Texto : Embarque de Consignação

Linha : 3

Coluna: 82

SCREEN-GROUP1: 'F  '

SCREEN-GROUP2: '0  '

SCREEN-GROUP3: '025'

SCREEN-GROUP4: '   '

Campo de Entrada

Campo de Saída

 

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

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

 

Alterar os campos GROUP2 e GROUP3 dos seguintes elementos da tela 0101:

 

Campo                     GR2  GR3

/PWS/ZYCEE001-DTETA       4

/PWS/ZYCEE001-DTPREV      4    007

/PWS/ZYCEE001-DTEMB       4    007

/PWS/ZYCEE001-DTRECEMB    4

/PWS/ZYCEE001-DTVENCTO    4    007

/PWS/ZYCEE001-KURRF_BL    4

/PWS/ZYCEE001-DTCRUZE     4    021

/PWS/ZYCEE001-NAVIO            024

/PWS/ZYCEE001-VIATRANS    4    013

/PWS/ZYCEE001-PORTEMB     4

/PWS/ZYCEE001-PORTDEST    4

/PWS/ZYCEE001-EADI        4

/PWS/ZYCEE001-PAISDEST    74   010

/PWS/ZYCEE046-ZTERM       74   011

/PWS/ZYCEE001-INCO1       74   012

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCE003                        0103

 

Criar a subtela 0103:

 

Linhas : 32

Colunas: 180

 

Incluir uma Table Control (TC_CONSIGNA) ocupando toda a área da tela, com redimensionsamento

vertical e horizontal, com linhas de separação verticais e horizontais, sem possibilidade de marcar

linhas ou colunas.

 

Incluir as seguintes colunas na Table Control, com todos os campos de Entrada/Saída com o SCREEN-

GROUP1 = 'F  ':

Nome                      Texto

ITAB_VENDA_CONS-NRSEQ     Embarque_de_Venda

ITAB_VENDA_CONS-VBELN_VA  Ordem_de_Venda

ITAB_VENDA_CONS-AUPOS     Item_OV

ITAB_VENDA_CONS-VBELN_VL  Fornecimento

ITAB_VENDA_CONS-POSNL     Item_Forn.

ITAB_VENDA_CONS-VBELN_VF  Faturamento

ITAB_VENDA_CONS-POSNR     Item_Fat.

ITAB_VENDA_CONS-FKDAT     Data_Fat.

ITAB_VENDA_CONS-DOCNUM    Doc._N.F.

ITAB_VENDA_CONS-NFNUM     Nota_Fiscal

ITAB_VENDA_CONS-KUNAG     Emissor

ITAB_VENDA_CONS-ZTERM     Cond._Pag.

ITAB_VENDA_CONS-INCO1     Incoterm

ITAB_VENDA_CONS-LAND1     País

ITAB_VENDA_CONS-WERKS     Centro

ITAB_VENDA_CONS-GSBER     Divisão

ITAB_VENDA_CONS-MATNR     Material

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCE003                        0104

 

Definir o SCREEN-GROUP3 do campo /PWS/ZYCEE001-DTINCLAV igual a '024'.