CE PLUS - Nota 013919

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: SISCOSERV

Data/Hora da Publicação: 26/06/2014 10:49:30

Data/Hora Última Alteração: 26/06/2014 10:49:30

Descrição da Nota: SISCOSERV - CRIAÇÃO COM ORIGEM EM FRETE E SEGURO DE PEDIDO DE COMPRA

Sintoma

DESENVOLVIMENTO EFETUADO NO PROGRAMA /PWS/ZYCA011 PARA PERMITIR A CRIAÇÃO DE PROCESSOS COM ORIGEM EM

FRETE E SEGURO DE PEDIDO DE COMPRA

 

 

Solução

DESENVOLVIMENTO EFETUADO NO PROGRAMA /PWS/ZYCA011 PARA PERMITIR A CRIAÇÃO DE PROCESSOS COM ORIGEM EM

FRETE E SEGURO DE PEDIDO DE COMPRA

 

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

SISCOSERV - EXCLUSÃO DE RAS/RVS - STATUS EM PROCESSAMENTO

SISCOSERV - CARGA - INCLUSÃO DE AUTHORITY-CHECK

SISCOSERV - CRIAÇÃO AUTOMÁTICA DE RAS/RVS

Informações Complementares

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

Nota Número 13919 Data: 13/05/2014 Hora: 10:09:49

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

 

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

Nota Número              : 13919

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 9.0

Pacote                   : 00007

Agrupamento              : 00170

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

Referência às notas relacionadas:

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

 

13228  - 00001 - 9.0    - 00005  - SISCOSERV - CARGA - INCLUSÃO DE AUTHORITY-CHECK

13874  - 00002 - 9.0    - 00007  - SISCOSERV - CRIAÇÃO AUTOMÁTICA DE RAS/RVS

13889  - 00003 - 9.0    - 00007  - SISCOSERV - EXCLUSÃO DE RAS/RVS - STATUS EM PROCESSAMENTO

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

SISCOSERV - CRIAÇÃO COM ORIGEM EM FRETE E SEGURO DE PEDIDO DE COMPRA

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

Palavras Chave:

SISCOSERV - CRIAÇÃO COM ORIGEM EM FRETE E SEGURO DE PEDIDO DE COMPRA

PAÍS NO PROGRAMA DE CARGA

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

Objetos da nota:

DOMD /PWS/ZYCAD028

REPS /PWS/ZYCAR022

REPS /PWS/MZYCA011F01

REPS /PWS/MZYCA011TOP

REPT /PWS/SAPMZYCA011

 

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

Modificações efetuadas em DOMD /PWS/ZYCAD028

 

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

Domínio modificado: /PWS/ZYCAD028

-Valores individuais

Modificado valor fixo "K"

Texto modificado, idioma: PT (27 caracteres):

"Pedido de Compra - Serviços"

Incluído valor fixo "M"

Texto modificado, idioma: EN (25 caracteres):

"Purchase Order - Shipping"

Texto modificado, idioma: PT (24 caracteres):

"Pedido de Compra - Frete"

Texto modificado, idioma: ES (23 caracteres):

"Orden de Compra - Envío"

Excluído valor fixo "L"

Incluído valor fixo "N"

Texto incluído, idioma: EN (26 caracteres):

"Purchase Order - Insurance"

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

"Pedido de Compra - Seguro"

Texto incluído, idioma: ES (25 caracteres):

"Orden de Compra - Seguros"

Incluído valor fixo "L"

Texto incluído, idioma: EN (11 caracteres):

"Sales Order"

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

"Ordem de Venda"

Texto incluído, idioma: ES (14 caracteres):

"Orden de venta"

 

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

Modificações efetuadas em REPS /PWS/ZYCAR022

 

...

  BEGIN OF ty_cabec,

    nrseq(8)       TYPE c,

    bukrs(4)       TYPE c,

    j_1bbranch(4)  TYPE c,

    tp_processo(1) TYPE c,

    bukrs_ext(10)  TYPE c,

    cod_pais(5)    TYPE c,

    nif(40)        TYPE c,

    waers(5)       TYPE c,

    n_rvs_ras(12)  TYPE c,

* >> Início da inclusão:

    processamento(1) type c,

* << Fim da inclusão

  END OF ty_cabec,

  BEGIN OF ty_opera,

    nrseq(8)       TYPE c,

    operacao(4)    TYPE c,

    nbs(12)        TYPE c,

    cod_pais(5)    TYPE c,

    modo_prest(1)  TYPE c,

    data_ini(10)   TYPE c,

    data_fim(10)   TYPE c,

    valor(18)      TYPE c,

...

 

...

    ENDIF.

  ENDIF.

  IF NOT r_header IS INITIAL AND

     NOT itab_redi[] IS INITIAL.

    DELETE itab_redi INDEX 1.

  ENDIF.

  LOOP AT itab_cabec INTO wa_cabec.

    PERFORM ajusta_emp CHANGING wa_cabec-bukrs_ext.

    MOVE-CORRESPONDING wa_cabec TO wa_zycat030.

    CLEAR: wa_zycat030-nrseq, wa_zycat030-valor.

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

    PERFORM cod_pais USING wa_zycat030-bukrs_ext

                           wa_zycat030-tp_processo

                  CHANGING wa_zycat030-cod_pais.

* << Fim da inclusão

    LOOP AT itab_opera INTO wa_opera

      WHERE nrseq = wa_cabec-nrseq.

      PERFORM ajusta_valor USING    wa_zycat030-waers

                           CHANGING wa_opera-valor.

      PERFORM ajusta_data CHANGING wa_opera-data_ini.

      PERFORM ajusta_data CHANGING wa_opera-data_fim.

      MOVE-CORRESPONDING wa_opera TO wa_zycat031.

      CLEAR wa_zycat031-nrseq.

      wa_zycat031-saldo = wa_zycat031-valor.

      wa_zycat031-waers = wa_zycat030-waers.

      wa_zycat030-valor = wa_zycat030-valor + wa_zycat031-valor.

      APPEND wa_zycat031 TO itab_zycat031.

      LOOP AT itab_enqua INTO wa_enqua

        WHERE nrseq    = wa_opera-nrseq

          AND operacao = wa_opera-operacao.

        MOVE-CORRESPONDING wa_enqua TO wa_zycat032.

        APPEND wa_zycat032 TO itab_zycat032.

      ENDLOOP.

    ENDLOOP.

    wa_zycat030-saldo = wa_zycat030-valor.

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

    wa_zycat030-processamento = 'X'.

* << Fim da exclusão

    LOOP AT itab_redi INTO wa_redi

      WHERE nrseq = wa_cabec-nrseq.

      MOVE-CORRESPONDING wa_redi TO wa_zycat033.

      APPEND wa_zycat033 TO itab_zycat033.

    ENDLOOP.

    CALL FUNCTION '/PWS/ZYCA_CARGA_SICOSERV_CONTR'

      EXPORTING

        i_zycat030       = wa_zycat030

      TABLES

        i_zycat031       = itab_zycat031

...

 

...

  SET PF-STATUS 'STANDARD_FULLSCREEN'.

ENDFORM.

FORM user_command USING ucomm LIKE sy-ucomm

                          selfield TYPE slis_selfield.      "#EC CALLED

ENDFORM.

FORM top_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

       EXPORTING

            it_list_commentary = itab_listheader.

ENDFORM.

* >> Início da inclusão:

FORM cod_pais USING    p_bukrsext

                       p_tpprocesso

              CHANGING p_codpais.

  DATA: v_land1 TYPE lfa1-land1.

  CHECK p_codpais IS INITIAL.

  IF p_tpprocesso = 'A'.

    SELECT SINGLE land1

      FROM lfa1

      INTO v_land1

      WHERE lifnr = p_bukrsext.

  ELSEIF p_tpprocesso = 'V'.

    SELECT SINGLE land1

      FROM kna1

      INTO v_land1

      WHERE kunnr = p_bukrsext.

  ENDIF.

  CHECK NOT v_land1 IS INITIAL.

  SELECT SINGLE cod_pais

    FROM /pws/zycat043

    INTO p_codpais

    WHERE land1 = v_land1.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA011F01

 

...

FORM seleciona_dados.

  REFRESH: itab_zycat031_ant, itab_zycat031t,

           itab_zycat032_ant, itab_zycat031 ,

           itab_zycat033_ant, itab_zycat033t,

           itab_tline_ant   , itab_src, itab_tline.

  SELECT SINGLE * FROM /pws/zycat030

          WHERE nrseq = /pws/zycat030-nrseq.

  IF sy-subrc NE 0.

    CLEAR v_okcode.

    MESSAGE w015 WITH text-e05.

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

    STOP.

* << Fim da exclusão

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

    EXIT.

* << Fim da inclusão

  ENDIF.

  wa_zycat030_ant = /pws/zycat030.

  SELECT * FROM /pws/zycat031

    INTO TABLE itab_zycat031_ant

    WHERE nrseq = /pws/zycat030-nrseq

    ORDER BY operacao.

  IF sy-subrc EQ 0.

    LOOP AT itab_zycat031_ant INTO wa_zycat031.

      APPEND wa_zycat031 TO itab_zycat031t.

    ENDLOOP.

...

 

...

    PERFORM busca_comissao_agente USING v_novo

                               CHANGING p_erro.

  ELSEIF NOT v_prestconta IS INITIAL.

    PERFORM busca_prestacao_contas USING v_novo

                                CHANGING p_erro.

  ELSEIF NOT v_despimp IS INITIAL.

    PERFORM busca_despesas_imp USING v_novo

                            CHANGING p_erro.

  ELSEIF NOT v_ordvenda IS INITIAL.

    PERFORM busca_ordem_venda USING v_novo

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

                           CHANGING p_erro.

  ELSEIF NOT v_fretepc IS INITIAL.

    PERFORM busca_frete_pc USING v_novo

                           CHANGING p_erro.

  ELSEIF NOT v_segpc IS INITIAL.

    PERFORM busca_seguro_pc USING v_novo

* << Fim da inclusão

                           CHANGING p_erro.

  ENDIF.

ENDFORM.

FORM busca_emb_imp_2 USING p_novo

                  CHANGING p_erro.

  DATA:

    v_valor_total TYPE /pws/zycit006-vlmerc,

    v_count       TYPE /pws/zycat031-operacao,

    v_existe(1)   TYPE c,

    v_nrseqdi     TYPE /pws/zycit085-nrseqdi,

...

 

...

        v_valor_total  TO  /pws/zycat030-saldo.

  CLEAR:   r_embexp.

  REFRESH: r_embexp.

ENDFORM.

FORM verifica_operacao USING p_nrseq_op

                             p_origem_op

                    CHANGING p_existe.

  DATA:

    wa_zycat030  TYPE /pws/zycat030,

    wa_zycat031  TYPE /pws/zycat031.

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

  DATA: itab_zycat031 TYPE TABLE OF /pws/zycat031.

* << Fim da inclusão

  CLEAR p_existe.

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

  SELECT SINGLE *

* << Fim da exclusão

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

  SELECT *

* << Fim da inclusão

    FROM /pws/zycat031

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

    INTO wa_zycat031

* << Fim da exclusão

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

    INTO TABLE itab_zycat031

* << Fim da inclusão

   WHERE nrseq_origem = p_nrseq_op.

  IF sy-subrc EQ 0.

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

    SELECT SINGLE *

* << Fim da exclusão

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

    SELECT *

* << Fim da inclusão

      FROM /pws/zycat030

      INTO wa_zycat030

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

      WHERE nrseq      = wa_zycat031-nrseq

* << Fim da exclusão

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

      FOR ALL ENTRIES IN itab_zycat031

      WHERE nrseq      = itab_zycat031-nrseq

* << Fim da inclusão

        AND status    NE 'EX'

        AND tp_origem  = p_origem_op.

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

    ENDSELECT.

* << Fim da inclusão

    IF sy-subrc EQ 0.

      p_existe = 'X'.

    ENDIF.

  ELSE.

    SELECT SINGLE *

...

 

...

         v_embimp,

         v_freteexp,

         v_freteimp,

         v_segexp,

         v_segimp,

         v_pedcomp,

         v_sorigem,

         v_comagente,

         v_prestconta,

         v_despimp,

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

         v_fretepc,

         v_segpc,

* << Fim da inclusão

         v_ordvenda.

  IF v_dom_tporigem = 'A'.

    v_sorigem    = 'X'.

  ELSEIF v_dom_tporigem = 'B'.

    v_freteimp   = 'X'.

  ELSEIF v_dom_tporigem = 'C'.

    v_segimp     = 'X'.

  ELSEIF v_dom_tporigem = 'D'.

    v_embimp     = 'X'.

  ELSEIF v_dom_tporigem = 'E'.

...

 

...

  ELSEIF v_dom_tporigem = 'H'.

    v_embexp     = 'X'.

  ELSEIF v_dom_tporigem = 'I'.

    v_comagente  = 'X'.

  ELSEIF v_dom_tporigem = 'J'.

    v_prestconta = 'X'.

  ELSEIF v_dom_tporigem = 'K'.

    v_pedcomp    = 'X'.

  ELSEIF v_dom_tporigem = 'L'.

    v_ordvenda   = 'X'.

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

  ELSEIF v_dom_tporigem = 'M'.

    v_fretepc    = 'X'.

  ELSEIF v_dom_tporigem = 'N'.

    v_segpc      = 'X'.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM busca_comissao_agente USING p_novo

                        CHANGING p_erro.

  TYPES:

    BEGIN OF ty_result,

      nrseq      TYPE /pws/zycet010-nrseq,

      lifnr      TYPE /pws/zycet010-lifnr,

      waers      TYPE /pws/zycet010-waers,

      vlcomis    TYPE /pws/zycet010-vlcomis,

...

 

...

     /pws/zycat030-tp_origem = 'EI' OR

     /pws/zycat030-tp_origem = 'DI'.

    v_proces = 'FI'.

  ELSEIF /pws/zycat030-tp_origem = 'FE' OR

         /pws/zycat030-tp_origem = 'SE' OR

         /pws/zycat030-tp_origem = 'EE' OR

         /pws/zycat030-tp_origem = 'CA'.

    v_proces = 'FE'.

  ELSEIF /pws/zycat030-tp_origem = 'PT'.

    v_proces = 'PT'.

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

  ELSEIF /pws/zycat030-tp_origem = 'PC'.

* << Fim da exclusão

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

  ELSEIF /pws/zycat030-tp_origem = 'PC' OR

         /pws/zycat030-tp_origem = 'FP' OR

         /pws/zycat030-tp_origem = 'SP'.

* << Fim da inclusão

    v_proces = 'PC'.

  ELSEIF /pws/zycat030-tp_origem = 'OV'.

    v_proces = 'OV'.

  ENDIF.

  CLEAR: wa_zycat031-data_ini,

         wa_zycat031-data_fim.

  LOOP AT itab_zycat048 INTO wa_zycat048 WHERE processo = v_proces.

    CASE wa_zycat048-campo.

      WHEN 'DT_INI'.

        IF v_proces = 'FI'.

...

 

...

    FROM ekko

    INTO TABLE itab_ekko

   WHERE ebeln IN r_pcompr

     AND lifnr IN r_fornpc

     AND waers IN r_pmoeda.

  IF sy-subrc NE 0.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

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

  REFRESH itab_zycit003aux.

  SELECT * FROM /pws/zycit003

    INTO TABLE itab_zycit003aux

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln = itab_ekko-ebeln.

* << Fim da inclusão

  LOOP AT itab_ekko INTO wa_ekko.

    v_tabix = sy-tabix.

    PERFORM verifica_operacao USING wa_ekko-ebeln

                                    'PC'

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

                           CHANGING v_existe.

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-e35 wa_ekko-ebeln text-i32.

      DELETE itab_ekko INDEX v_tabix.

    ELSE.

      LOOP AT itab_zycit003aux INTO wa_zycit003aux

        WHERE ebeln = wa_ekko-ebeln.

        PERFORM verifica_operacao USING wa_zycit003aux-nrseq

                                        'EI'

* << Fim da inclusão

                           CHANGING v_existe.

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-e35 wa_ekko-ebeln text-i32.

      DELETE itab_ekko INDEX v_tabix.

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

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

...

 

...

  itab_vbap_aux[] = itab_vbap[].

  DELETE ADJACENT DUPLICATES FROM itab_vbap_aux COMPARING j_1bbranch.

  DESCRIBE TABLE itab_vbap_aux LINES v_total_reg.

  IF v_total_reg > 1.

    MESSAGE i015 WITH text-i51 text-i52.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  CLEAR: wa_vbak,

         wa_vbap.

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

  REFRESH itab_zycet002aux.

  SELECT * FROM /pws/zycet002

    INTO TABLE itab_zycet002aux

    FOR ALL ENTRIES IN itab_vbap

    WHERE vbeln_va = itab_vbap-vbeln.

* << Fim da inclusão

  LOOP AT itab_vbak INTO wa_vbak.

    LOOP AT itab_vbap INTO wa_vbap WHERE vbeln = wa_vbak-vbeln.

      v_tabix = sy-tabix.

      WRITE wa_vbap-posnr TO v_posnr RIGHT-JUSTIFIED.

      OVERLAY v_posnr WITH '0000000000'.

      PERFORM verifica_operacao_2 USING wa_vbak-vbeln

                                        v_posnr

                                        wa_vbak-waerk

                                        ''

                                        'OV'

                               CHANGING v_existe

                                        v_ras_rvs.

      IF v_existe = 'X'.

        MESSAGE i061 WITH text-e37 wa_vbak-vbeln wa_vbap-posnr text-e36.

        DELETE itab_vbap INDEX v_tabix.

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

      ELSE.

        LOOP AT itab_zycet002aux INTO wa_zycet002aux

          WHERE vbeln_va = wa_vbap-vbeln.

          PERFORM verifica_operacao USING wa_zycet002aux-nrseq

                                          'EE'

                                 CHANGING v_existe.

          IF v_existe EQ 'X'.

            MESSAGE i061 WITH text-i30 wa_zycet002aux-nrseq text-i32.

            DELETE itab_vbak WHERE vbeln = wa_vbak-vbeln.

            DELETE itab_vbap WHERE vbeln = wa_vbak-vbeln.

          ENDIF.

        ENDLOOP.

* << Fim da inclusão

      ENDIF.

    ENDLOOP.

  ENDLOOP.

  IF p_novo = 'N'.

    LOOP AT itab_vbak INTO wa_vbak.

      LOOP AT itab_vbap INTO wa_vbap WHERE vbeln = wa_vbak-vbeln.

        v_tabix = sy-tabix.

        WRITE wa_vbap-posnr TO v_posnr RIGHT-JUSTIFIED.

        OVERLAY v_posnr WITH '0000000000'.

        READ TABLE itab_zycat031t

...

 

...

      ELSEIF screen-name(8)  = 'R_PCOMPR'   OR

             screen-name(10) = '%_R_PCOMPR' OR

             screen-name(6)  = 'R_ITEM'     OR

             screen-name(8)  = '%_R_ITEM'   OR

             screen-name(8)  = 'R_CENTRO'   OR

             screen-name(10) = '%_R_CENTRO' OR

             screen-name(8)  = 'R_FORNPC'   OR

             screen-name(10) = '%_R_FORNPC' OR

             screen-name(8)  = 'R_PMOEDA'   OR

             screen-name(10) = '%_R_PMOEDA'.

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

        IF NOT v_pedcomp IS INITIAL.

* << Fim da exclusão

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

        IF NOT v_pedcomp IS INITIAL OR

           NOT v_fretepc IS INITIAL OR

           NOT v_segpc   IS INITIAL.

* << Fim da inclusão

          screen-input  = '1'.

          screen-active = '1'.

          CLEAR:   r_embimp, r_embexp, r_fornec, r_filial, r_moeda,

                   r_vlocal, r_ordem,  r_client, r_vmoeda, r_forimp,

                   r_filimp, r_moeimp, r_forexp.

          REFRESH: r_embimp, r_embexp, r_fornec, r_filial, r_moeda,

                   r_vlocal, r_ordem,  r_client, r_vmoeda, r_forimp,

                   r_filimp, r_moeimp, r_forexp.

        ELSE.

          screen-input  = '0'.

...

 

...

  DATA: END OF itab_zycat046.

  DATA: BEGIN OF itab_zycet156 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycet156.

  DATA: END OF itab_zycet156.

  DATA: BEGIN OF itab_zycet001_del OCCURS 0.

          INCLUDE STRUCTURE itab_zycet001.

  DATA: END OF itab_zycet001_del.

  DATA: BEGIN OF itab_zycet008_del OCCURS 0.

          INCLUDE STRUCTURE itab_zycet008.

  DATA: END OF itab_zycet008_del.

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

  DATA: v_posnr   TYPE  /pws/zycat031-despach,

        v_ras_rvs TYPE  /pws/zycat030-nrseq.

* << Fim da inclusão

  SELECT nrseq bukrs dtemb codportd tipo_emb

         dtaverb werks

    FROM /pws/zycet001

    INTO TABLE itab_zycet001

    WHERE nrseq IN r_embexp.

  IF NOT r_forexp[] IS INITIAL.

    DELETE itab_zycet001 WHERE codportd NE r_forexp-low.

  ENDIF.

  IF sy-subrc NE 0.

    p_erro = 'X'.

    MESSAGE i015 WITH text-i25 text-i26.

    EXIT.

  ENDIF.

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

  REFRESH itab_zycet002.

  SELECT * FROM /pws/zycet002

    INTO TABLE itab_zycet002aux

    FOR ALL ENTRIES IN itab_zycet001

    WHERE nrseq = itab_zycet001-nrseq.

* << Fim da inclusão

  LOOP AT itab_zycet001.

    v_tabix = sy-tabix.

    IF itab_zycet001-tipo_emb NE 'E'.

      MESSAGE i061 WITH text-i30 itab_zycet001-nrseq text-i31.

      DELETE itab_zycet001 INDEX v_tabix.

    ELSE.

      PERFORM verifica_operacao USING itab_zycet001-nrseq

                                      'EE'

                             CHANGING v_existe.

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

      IF v_existe EQ 'X'.

        MESSAGE i061 WITH text-i30 itab_zycet001-nrseq text-i32.

        DELETE itab_zycet001 INDEX v_tabix.

      ELSE.

        LOOP AT itab_zycet002aux INTO wa_zycet002aux

          WHERE nrseq = itab_zycet001-nrseq.

          WRITE wa_zycet002aux-aupos TO v_posnr RIGHT-JUSTIFIED.

          OVERLAY v_posnr WITH '0000000000'.

          PERFORM verifica_operacao_2 USING wa_zycet002aux-vbeln_va

                                            v_posnr

                                            wa_zycet002aux-waers

                                            ''

                                            'OV'

                                   CHANGING v_existe

                                            v_ras_rvs.

* << Fim da inclusão

      IF v_existe EQ 'X'.

        MESSAGE i061 WITH text-i30 itab_zycet001-nrseq text-i32.

        DELETE itab_zycet001 INDEX v_tabix.

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

          ENDIF.

        ENDLOOP.

* << Fim da inclusão

      ENDIF.

    ENDIF.

  ENDLOOP.

...

 

...

    END OF itab_zycit006.

  DATA: BEGIN OF itab_zycat046 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycat046.

  DATA: END OF itab_zycat046.

  DATA: BEGIN OF itab_zycit001_del OCCURS 0.

          INCLUDE STRUCTURE itab_zycit001.

  DATA: END OF itab_zycit001_del.

  DATA: BEGIN OF itab_zycit006_del OCCURS 0.

          INCLUDE STRUCTURE itab_zycit006.

  DATA: END OF itab_zycit006_del.

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

  DATA: wa_zycat003 TYPE /pws/zycat003.

* << Fim da inclusão

  SELECT nrseq bukrs waers j_1bbranch

         modalidade dtinicio

    FROM /pws/zycit001

    INTO TABLE itab_zycit001

   WHERE nrseq IN r_embimp.

  IF NOT r_filimp[] IS INITIAL.

    DELETE itab_zycit001 WHERE j_1bbranch NE r_filimp-low.

  ENDIF.

  IF NOT r_moeimp[] IS INITIAL.

    DELETE itab_zycit001 WHERE waers NE r_moeimp-low.

  ENDIF.

  IF itab_zycit001[] IS INITIAL.

    p_erro = 'X'.

    MESSAGE i015 WITH text-i25 text-i26.

    EXIT.

  ELSE.

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

    REFRESH itab_zycit003.

    SELECT * FROM /pws/zycit003

      INTO TABLE itab_zycit003aux

      FOR ALL ENTRIES IN itab_zycit001

      WHERE nrseq = itab_zycit001-nrseq.

* << Fim da inclusão

    LOOP AT itab_zycit001.

      v_tabix = sy-tabix.

      IF itab_zycit001-modalidade NE '02'.

        MESSAGE i061 WITH text-i30 itab_zycit001-nrseq text-i31.

        DELETE itab_zycit001 INDEX v_tabix.

      ELSE.

        PERFORM verifica_operacao USING itab_zycit001-nrseq

                                        'EI'

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

                               CHANGING v_existe.

        IF v_existe EQ 'X'.

          MESSAGE i061 WITH text-i30 itab_zycit001-nrseq text-i32.

          DELETE itab_zycit001 INDEX v_tabix.

        ELSE.

          LOOP AT itab_zycit003aux INTO wa_zycit003aux

            WHERE nrseq = itab_zycit001-nrseq.

            PERFORM verifica_operacao USING wa_zycit003aux-ebeln

                                            'PC'

* << Fim da inclusão

                               CHANGING v_existe.

        IF v_existe EQ 'X'.

          MESSAGE i061 WITH text-i30 itab_zycit001-nrseq text-i32.

          DELETE itab_zycit001 INDEX v_tabix.

        ENDIF.

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

          ENDLOOP.

        ENDIF.

* << Fim da inclusão

      ENDIF.

...

 

...

    v_matnr     = 'FRT'.

  ELSEIF NOT v_segimp IS INITIAL.

    v_tp_origem = 'SI'.

    v_tp_fatura = '03'.

    v_matnr     = 'SEG'.

  ENDIF.

  SELECT nrseqce nrseq

    FROM /pws/zycit094

    INTO TABLE itab_zycit094

    WHERE nrseq IN r_embimp.

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

  IF NOT itab_zycit094 IS INITIAL.

    REFRESH itab_zycit003aux.

    SELECT * FROM /pws/zycit003

      INTO TABLE itab_zycit003aux

      FOR ALL ENTRIES IN itab_zycit094

      WHERE nrseq = itab_zycit094-nrseq.

  ENDIF.

* << Fim da inclusão

  LOOP AT itab_zycit094.

    v_tabix = sy-tabix.

    PERFORM verifica_operacao USING itab_zycit094-nrseq

                                    v_tp_origem

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

                           CHANGING v_existe.

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-i30 itab_zycit094-nrseq text-i32.

      DELETE itab_zycit094 INDEX v_tabix.

    ELSE.

      LOOP AT itab_zycit003aux INTO wa_zycit003aux

        WHERE nrseq = itab_zycit094-nrseq.

        CASE v_tp_fatura.

          WHEN 'FI'.

            PERFORM verifica_operacao USING wa_zycit003aux-ebeln

                                            'FP'

* << Fim da inclusão

                           CHANGING v_existe.

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

          WHEN 'SI'.

            PERFORM verifica_operacao USING wa_zycit003aux-ebeln

                                            'SP'

                                   CHANGING v_existe.

        ENDCASE.

* << Fim da inclusão

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-i30 itab_zycit094-nrseq text-i32.

      DELETE itab_zycit094 INDEX v_tabix.

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

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  IF p_novo = 'N'.

    LOOP AT itab_zycit094.

      v_tabix = sy-tabix.

      READ TABLE itab_zycat031t

                       WITH KEY nrseq_origem = itab_zycit094-nrseq.

      IF sy-subrc EQ 0.

        MESSAGE i061 WITH text-i30 itab_zycit094-nrseq text-i32.

        DELETE itab_zycit094 INDEX v_tabix.

...

 

...

      WHERE nrseq_arq = itab_zycat034-nrseq_arq.

  ENDIF.

  DELETE itab_zycat038 WHERE processo NE 'IRVS' AND

                             processo NE 'IRAS'.

  DELETE itab_zycat038 WHERE prot_transm IS initial.

  IF itab_zycat038[] IS INITIAL.

    wa_fcode-ucomm = 'DELE'.

    APPEND wa_fcode TO itab_fcode.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM busca_frete_pc USING    p_novo

                        CHANGING p_erro.

  DATA:

    itab_ekko      TYPE STANDARD TABLE OF ekko,

    wa_ekko        TYPE ekko,

    itab_ekpo      TYPE STANDARD TABLE OF ekpo,

    wa_ekpo        TYPE ekpo,

    itab_konv      TYPE STANDARD TABLE OF konv,

    wa_konv        TYPE konv,

    itab_ekpa      TYPE STANDARD TABLE OF ekpa,

    wa_ekpa        TYPE ekpa,

    itab_eket      TYPE STANDARD TABLE OF eket,

    wa_eket        TYPE eket,

    itab_t001w     TYPE TABLE OF t001w,

    wa_t001w       TYPE t001w,

    itab_zycbt007  TYPE STANDARD TABLE OF /pws/zycbt007,

    wa_zycbt007    TYPE /pws/zycbt007,

    itab_zycat046  TYPE STANDARD TABLE OF /pws/zycat046,

    wa_zycat046    TYPE /pws/zycat046,

    itab_zycat053  TYPE STANDARD TABLE OF /pws/zycat053,

    wa_zycat053    TYPE /pws/zycat053,

    itab_zycit030  TYPE STANDARD TABLE OF /pws/zycit030,

    wa_zycit030    TYPE /pws/zycit030,

    itab_zycit031  TYPE STANDARD TABLE OF /pws/zycit031,

    wa_zycit031    TYPE /pws/zycit031,

    v_tabix        TYPE sy-tabix,

    v_bukrs_ext    TYPE /pws/zycat030-bukrs_ext,

    v_operacao     TYPE /pws/zycat031-operacao,

    v_existe(1)    TYPE c.

  CLEAR /pws/zycat030.

  REFRESH itab_zycat031t.

  SELECT *

    FROM ekko

    INTO TABLE itab_ekko

   WHERE ebeln IN r_pcompr

     AND waers IN r_pmoeda.

  IF sy-subrc NE 0.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit003

    INTO TABLE itab_zycit003aux

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln = itab_ekko-ebeln.

  SELECT * FROM /pws/zycbt007

    INTO TABLE itab_zycbt007.

  LOOP AT itab_ekko INTO wa_ekko.

    v_tabix = sy-tabix.

    CLEAR wa_zycbt007.

    READ TABLE itab_zycbt007 INTO wa_zycbt007

      WITH KEY bukrs = wa_ekko-bukrs.

    IF sy-subrc NE 0.

      READ TABLE itab_zycbt007 INTO wa_zycbt007 INDEX 1.

    ENDIF.

    IF wa_ekko-waers = wa_zycbt007-waersb.

      DELETE itab_ekko INDEX v_tabix.

      CONTINUE.

    ENDIF.

    PERFORM verifica_operacao USING wa_ekko-ebeln

                                    'FP'

                           CHANGING v_existe.

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-e40 wa_ekko-ebeln text-i32.

      DELETE itab_ekko INDEX v_tabix.

    ELSE.

      LOOP AT itab_zycit003aux INTO wa_zycit003aux

        WHERE ebeln = wa_ekko-ebeln.

        PERFORM verifica_operacao USING wa_zycit003aux-nrseq

                                        'FI'

                               CHANGING v_existe.

        IF v_existe = 'X'.

          MESSAGE i061 WITH text-e40 wa_ekko-ebeln text-i32.

          DELETE itab_ekko INDEX v_tabix.

          EXIT.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  IF itab_ekko[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT *

    FROM ekpo

    INTO TABLE itab_ekpo

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln  = itab_ekko-ebeln

      AND werks IN r_centro.

  IF itab_ekpo[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit031

    INTO TABLE itab_zycit031

    FOR ALL ENTRIES IN itab_ekko

    WHERE inco1 = itab_ekko-inco1

      AND land1 = 'BR'.

  SELECT *

    FROM /pws/zycat046

    INTO TABLE itab_zycat046

    WHERE tpprocesso = 'A'.

  SELECT * FROM /pws/zycat053

    INTO TABLE itab_zycat053.

  SELECT * FROM /pws/zycit030

    INTO TABLE itab_zycit030

    WHERE codmod = 'D'

      AND codigo = 'FRETEI'.

  SELECT * FROM konv

    INTO TABLE itab_konv

    FOR ALL ENTRIES IN itab_ekko

    WHERE knumv = itab_ekko-knumv.

  SELECT * FROM ekpa

    INTO TABLE itab_ekpa

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln = itab_ekko-ebeln.

  SELECT *

    FROM eket

    INTO TABLE itab_eket

    FOR ALL ENTRIES IN itab_ekpo

    WHERE ebeln = itab_ekpo-ebeln

      AND ebelp = itab_ekpo-ebelp.

  SELECT * FROM t001w

    INTO TABLE itab_t001w

    FOR ALL ENTRIES IN itab_ekpo

    WHERE werks = itab_ekpo-werks.

  CLEAR: /pws/zycat030, v_operacao.

  LOOP AT itab_ekko INTO wa_ekko.

    CLEAR: wa_zycit031, wa_zycat031,

           v_bukrs_ext.

    READ TABLE itab_zycit031 INTO wa_zycit031

        WITH KEY inco1 = wa_ekko-inco1.

    CASE wa_zycit031-inco1_ci.

      WHEN 'CIF' OR 'C&F'.

        v_bukrs_ext = wa_ekko-lifnr.

      WHEN 'C+I' OR 'FOB'.

        LOOP AT itab_zycat053 INTO wa_zycat053

          WHERE tp_prest = 'FRT'.

          READ TABLE itab_ekpa INTO wa_ekpa

            WITH KEY ebeln = wa_ekko-ebeln

                     parvw = wa_zycat053-parvw.

          IF sy-subrc EQ 0.

            v_bukrs_ext = wa_ekpa-lifn2.

            EXIT.

          ENDIF.

        ENDLOOP.

    ENDCASE.

    CHECK NOT v_bukrs_ext IS INITIAL.

    CHECK v_bukrs_ext IN r_fornpc.

    IF NOT /pws/zycat030-bukrs IS INITIAL AND

       NOT /pws/zycat030-waers IS INITIAL AND

       NOT /pws/zycat030-bukrs_ext IS INITIAL..

      IF /pws/zycat030-bukrs     NE wa_ekko-bukrs OR

         /pws/zycat030-waers     NE wa_ekko-waers OR

         /pws/zycat030-bukrs_ext NE v_bukrs_ext.

        MESSAGE i061

                WITH text-i49 wa_ekko-ebeln text-i50.

        p_erro = 'X'.

        EXIT.

      ENDIF.

    ENDIF.

    LOOP AT itab_ekpo INTO wa_ekpo

      WHERE ebeln = wa_ekko-ebeln.

      CLEAR wa_t001w.

      READ TABLE itab_t001w INTO wa_t001w

        WITH KEY werks = wa_ekpo-werks.

      IF NOT /pws/zycat030-j_1bbranch IS INITIAL AND

         NOT wa_t001w-j_1bbranch IS INITIAL      AND

        /pws/zycat030-j_1bbranch NE wa_t001w-j_1bbranch.

        MESSAGE i061

                WITH text-i49 wa_ekko-ebeln text-i50.

        p_erro = 'X'.

        EXIT.

      ENDIF.

      /pws/zycat030-j_1bbranch = wa_t001w-j_1bbranch.

      LOOP AT itab_konv INTO wa_konv

        WHERE knumv = wa_ekko-knumv

          AND kposn = wa_ekpo-ebelp.

        READ TABLE itab_zycit030 INTO wa_zycit030

          WITH KEY codigo = 'FRETEI'

                   kschl = wa_konv-kschl.

        IF sy-subrc EQ 0.

          wa_zycat031-valor = wa_zycat031-valor + wa_konv-kwert.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    CHECK NOT wa_zycat031-valor IS INITIAL.

    v_operacao = v_operacao + 1.

    MOVE:

      wa_ekko-bukrs     TO /pws/zycat030-bukrs,

      v_bukrs_ext       TO /pws/zycat030-bukrs_ext,

      'A'               TO /pws/zycat030-tp_processo,

      wa_ekko-waers     TO /pws/zycat030-waers,

      'FP'              TO  /pws/zycat030-tp_origem.

    /pws/zycat030-valor = /pws/zycat030-valor + wa_zycat031-valor.

    /pws/zycat030-saldo = /pws/zycat030-valor.

    PERFORM informacoes_cabecalho.

    CHECK v_land1 NE 'BR'.

    READ TABLE itab_zycat046 INTO wa_zycat046

                                     WITH KEY matnr = 'FRT'.

    MOVE:

      v_operacao               TO  wa_zycat031-operacao,

      wa_zycat046-nbs          TO  wa_zycat031-nbs,

      wa_zycat046-modo_prest   TO  wa_zycat031-modo_prest,

      wa_zycat031-valor        TO wa_zycat031-saldo,

      /pws/zycat030-cod_pais   TO  wa_zycat031-cod_pais,

      wa_ekpo-ebeln            TO  wa_zycat031-nrseq_origem.

    MOVE-CORRESPONDING wa_ekko TO wa_ekko_aux.

    PERFORM busca_parametros_campos.

    APPEND wa_zycat031 TO itab_zycat031t.

  ENDLOOP.

  IF itab_zycat031t[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

  ENDIF.

ENDFORM.

FORM busca_seguro_pc USING    p_novo

                     CHANGING p_erro.

  DATA:

    itab_ekko      TYPE STANDARD TABLE OF ekko,

    wa_ekko        TYPE ekko,

    itab_ekpo      TYPE STANDARD TABLE OF ekpo,

    wa_ekpo        TYPE ekpo,

    itab_konv      TYPE STANDARD TABLE OF konv,

    wa_konv        TYPE konv,

    itab_ekpa      TYPE STANDARD TABLE OF ekpa,

    wa_ekpa        TYPE ekpa,

    itab_eket      TYPE STANDARD TABLE OF eket,

    wa_eket        TYPE eket,

    itab_t001w     TYPE TABLE OF t001w,

    wa_t001w       TYPE t001w,

    itab_zycbt007  TYPE STANDARD TABLE OF /pws/zycbt007,

    wa_zycbt007    TYPE /pws/zycbt007,

    itab_zycat046  TYPE STANDARD TABLE OF /pws/zycat046,

    wa_zycat046    TYPE /pws/zycat046,

    itab_zycat053  TYPE STANDARD TABLE OF /pws/zycat053,

    wa_zycat053    TYPE /pws/zycat053,

    itab_zycit030  TYPE STANDARD TABLE OF /pws/zycit030,

    wa_zycit030    TYPE /pws/zycit030,

    itab_zycit031  TYPE STANDARD TABLE OF /pws/zycit031,

    wa_zycit031    TYPE /pws/zycit031,

    v_tabix        TYPE sy-tabix,

    v_bukrs_ext    TYPE /pws/zycat030-bukrs_ext,

    v_operacao     TYPE /pws/zycat031-operacao,

    v_existe(1)    TYPE c.

  CLEAR /pws/zycat030.

  REFRESH itab_zycat031t.

  SELECT *

    FROM ekko

    INTO TABLE itab_ekko

   WHERE ebeln IN r_pcompr

     AND waers IN r_pmoeda.

  IF sy-subrc NE 0.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit003

    INTO TABLE itab_zycit003aux

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln = itab_ekko-ebeln.

  SELECT * FROM /pws/zycbt007

    INTO TABLE itab_zycbt007.

  LOOP AT itab_ekko INTO wa_ekko.

    v_tabix = sy-tabix.

    CLEAR wa_zycbt007.

    READ TABLE itab_zycbt007 INTO wa_zycbt007

      WITH KEY bukrs = wa_ekko-bukrs.

    IF sy-subrc NE 0.

      READ TABLE itab_zycbt007 INTO wa_zycbt007 INDEX 1.

    ENDIF.

    IF wa_ekko-waers = wa_zycbt007-waersb.

      DELETE itab_ekko INDEX v_tabix.

      CONTINUE.

    ENDIF.

    PERFORM verifica_operacao USING wa_ekko-ebeln

                                    'SP'

                           CHANGING v_existe.

    IF v_existe = 'X'.

      MESSAGE i061 WITH text-e40 wa_ekko-ebeln text-i32.

      DELETE itab_ekko INDEX v_tabix.

    ELSE.

      LOOP AT itab_zycit003aux INTO wa_zycit003aux

        WHERE ebeln = wa_ekko-ebeln.

        PERFORM verifica_operacao USING wa_zycit003aux-nrseq

                                        'SI'

                               CHANGING v_existe.

        IF v_existe = 'X'.

          MESSAGE i061 WITH text-e40 wa_ekko-ebeln text-i32.

          DELETE itab_ekko INDEX v_tabix.

          EXIT.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  IF itab_ekko[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT *

    FROM ekpo

    INTO TABLE itab_ekpo

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln  = itab_ekko-ebeln

      AND werks IN r_centro.

  IF itab_ekpo[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

    EXIT.

  ENDIF.

  SELECT * FROM /pws/zycit031

    INTO TABLE itab_zycit031

    FOR ALL ENTRIES IN itab_ekko

    WHERE inco1 = itab_ekko-inco1

      AND land1 = 'BR'.

  SELECT *

    FROM /pws/zycat046

    INTO TABLE itab_zycat046

    WHERE tpprocesso = 'A'.

  SELECT * FROM /pws/zycat053

    INTO TABLE itab_zycat053.

  SELECT * FROM /pws/zycit030

    INTO TABLE itab_zycit030

    WHERE codmod = 'D'

      AND codigo = 'SEGURO'.

  SELECT * FROM konv

    INTO TABLE itab_konv

    FOR ALL ENTRIES IN itab_ekko

    WHERE knumv = itab_ekko-knumv.

  SELECT * FROM ekpa

    INTO TABLE itab_ekpa

    FOR ALL ENTRIES IN itab_ekko

    WHERE ebeln = itab_ekko-ebeln.

  SELECT *

    FROM eket

    INTO TABLE itab_eket

    FOR ALL ENTRIES IN itab_ekpo

    WHERE ebeln = itab_ekpo-ebeln

      AND ebelp = itab_ekpo-ebelp.

  SELECT * FROM t001w

    INTO TABLE itab_t001w

    FOR ALL ENTRIES IN itab_ekpo

    WHERE werks = itab_ekpo-werks.

  CLEAR: /pws/zycat030, v_operacao.

  LOOP AT itab_ekko INTO wa_ekko.

    CLEAR: wa_zycit031, wa_zycat031,

           v_bukrs_ext.

    READ TABLE itab_zycit031 INTO wa_zycit031

        WITH KEY inco1 = wa_ekko-inco1.

    CASE wa_zycit031-inco1_ci.

      WHEN 'CIF' OR 'C+I'.

        v_bukrs_ext = wa_ekko-lifnr.

      WHEN 'C&F' OR 'FOB'.

        LOOP AT itab_zycat053 INTO wa_zycat053

          WHERE tp_prest = 'SEG'.

          READ TABLE itab_ekpa INTO wa_ekpa

            WITH KEY ebeln = wa_ekko-ebeln

                     parvw = wa_zycat053-parvw.

          IF sy-subrc EQ 0.

            v_bukrs_ext = wa_ekpa-lifn2.

            EXIT.

          ENDIF.

        ENDLOOP.

    ENDCASE.

    CHECK NOT v_bukrs_ext IS INITIAL.

    CHECK v_bukrs_ext IN r_fornpc.

    IF NOT /pws/zycat030-bukrs IS INITIAL AND

       NOT /pws/zycat030-waers IS INITIAL AND

       NOT /pws/zycat030-bukrs_ext IS INITIAL..

      IF /pws/zycat030-bukrs     NE wa_ekko-bukrs OR

         /pws/zycat030-waers     NE wa_ekko-waers OR

         /pws/zycat030-bukrs_ext NE v_bukrs_ext.

        MESSAGE i061

                WITH text-i49 wa_ekko-ebeln text-i50.

        p_erro = 'X'.

        EXIT.

      ENDIF.

    ENDIF.

    LOOP AT itab_ekpo INTO wa_ekpo

      WHERE ebeln = wa_ekko-ebeln.

      CLEAR wa_t001w.

      READ TABLE itab_t001w INTO wa_t001w

        WITH KEY werks = wa_ekpo-werks.

      IF NOT /pws/zycat030-j_1bbranch IS INITIAL AND

         NOT wa_t001w-j_1bbranch IS INITIAL      AND

        /pws/zycat030-j_1bbranch NE wa_t001w-j_1bbranch.

        MESSAGE i061

                WITH text-i49 wa_ekko-ebeln text-i50.

        p_erro = 'X'.

        EXIT.

      ENDIF.

      /pws/zycat030-j_1bbranch = wa_t001w-j_1bbranch.

      LOOP AT itab_konv INTO wa_konv

        WHERE knumv = wa_ekko-knumv

          AND kposn = wa_ekpo-ebelp.

        READ TABLE itab_zycit030 INTO wa_zycit030

          WITH KEY codigo = 'SEGURO'

                   kschl = wa_konv-kschl.

        IF sy-subrc EQ 0.

          wa_zycat031-valor = wa_zycat031-valor + wa_konv-kwert.

        ENDIF.

      ENDLOOP.

    ENDLOOP.

    CHECK NOT wa_zycat031-valor IS INITIAL.

    v_operacao = v_operacao + 1.

    MOVE:

      wa_ekko-bukrs     TO /pws/zycat030-bukrs,

      v_bukrs_ext       TO /pws/zycat030-bukrs_ext,

      'A'               TO /pws/zycat030-tp_processo,

      wa_ekko-waers     TO /pws/zycat030-waers,

      'SP'              TO  /pws/zycat030-tp_origem.

    /pws/zycat030-valor = /pws/zycat030-valor + wa_zycat031-valor.

    /pws/zycat030-saldo = /pws/zycat030-valor.

    PERFORM informacoes_cabecalho.

    CHECK v_land1 NE 'BR'.

    READ TABLE itab_zycat046 INTO wa_zycat046

                                     WITH KEY matnr = 'SEG'.

    MOVE:

      v_operacao               TO  wa_zycat031-operacao,

      wa_zycat046-nbs          TO  wa_zycat031-nbs,

      wa_zycat046-modo_prest   TO  wa_zycat031-modo_prest,

      wa_zycat031-valor        TO wa_zycat031-saldo,

      /pws/zycat030-cod_pais   TO  wa_zycat031-cod_pais,

      wa_ekpo-ebeln            TO  wa_zycat031-nrseq_origem.

    MOVE-CORRESPONDING wa_ekko TO wa_ekko_aux.

    PERFORM busca_parametros_campos.

    APPEND wa_zycat031 TO itab_zycat031t.

  ENDLOOP.

  IF itab_zycat031t[] IS INITIAL.

    MESSAGE i015 WITH text-i25 text-i26.

    p_erro = 'X'.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA011TOP

 

...

                       value '/PWS/SAPMZYCA011',

      v_identificador  type /pws/zyglt390-identificador,

      v_sorigem    type c,

      v_freteimp   type c,

      v_segimp     type c,

      v_embimp     type c,

      v_freteexp   type c,

      v_segexp     type c,

      v_embexp     type c,

      v_pedcomp    type c,

* >> Início da inclusão:

      v_fretepc    type c,

      v_segpc      type c,

* << Fim da inclusão

      v_comagente       type c,

      v_prestconta      type c,

      v_stceg           type lfa1-stceg,

      v_tipo_origem(60) type c,

      v_despimp         type c,

      v_ordvenda        type c,

      v_stcd1           type kna1-stcd1,

      v_stcd2           type kna1-stcd2,

      v_stcd3           type kna1-stcd3,

      v_stcd4           type kna1-stcd4,

...

 

...

      wa_zycet047_aux   type /pws/zycet047,

      wa_zycit001_aux   type ty_zycit001,

      wa_zycit006_aux   type ty_zycit006,

      wa_zycit085_aux   type ty_zycit085,

      wa_zycit093_aux   type ty_zycit093,

      wa_ekko_aux       type ty_ekko,

      wa_eket_aux       type ty_eket,

      wa_vbak           type ty_vbak,

      wa_vbap           type ty_vbap.

data: itab_zycat050 type table of /pws/zycat050.

* >> Início da inclusão:

data: itab_zycit003aux type standard table of /pws/zycit003,

      itab_zycet002aux type standard table of /pws/zycet002,

      wa_zycit003aux   type /pws/zycit003,

      wa_zycet002aux   type /pws/zycet002.

* << Fim da inclusão

controls: ts_contrato   type tabstrip,

          tc_oper       type tableview using screen '0101',

          tc_enq        type tableview using screen '0102',

          tc_re         type tableview using screen '0103'.

data editor        type ref to cl_gui_textedit.

data editcontainer type ref to cl_gui_custom_container.

data: gos type ref to /pws/zygl_cl_gos.

selection-screen begin of screen 0004 as subscreen.

select-options:

       r_filimp for t001w-j_1bbranch      no intervals no-extension,

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCA011

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: E40

 

Texto: (23 caracteres)

"Shipping Purchase Order"

 

Comprimento máximo: 25

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: E40

 

Texto: (25 caracteres)

"Frete do Pedido de Compra"

 

Comprimento máximo: 25