CE PLUS - Nota 005062

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Relatórios

Data/Hora da Publicação: 23/10/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 11:42:21

Descrição da Nota: CORREÇÃO BUSCA DE ITENS DO EMBARQUE NO RELATÓRIO FOLLOW UP

Sintoma

Relatório exibe itens inválidos.

Valores de comissão de agente em branco.

 

 

Solução

Nova implementação de busca de itens do embarque.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

INCLUSÃO DO PEDIDO DE COMPRA NO RELATORIO FOLLOW UP DE EXPORTAÇÃO

Informações Complementares

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

Nota Número 05062 Data: 23/10/2007 Hora: 16:33:37

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

 

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

Nota Número              : 05062

Categoria                : Erro de Programa

Prioridade               : Baixa

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00018

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

Referência às notas relacionadas:

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

 

04995  - 00001 - 7.0    - 00003  - INCLUSÃO DO PEDIDO DE COMPRA NO RELATORIO FOLLOW UP DE EXPORTAÇÃO

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

CORREÇÃO BUSCA DE ITENS DO EMBARQUE NO RELATÓRIO FOLLOW UP

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

Palavras Chave:

BUSCO ITENS EMBARQUE RELATÓRIO FOLLOW UP

 

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

Objetos da nota:

REPS /PWS/ZYCER213

 

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

Modificações efetuadas em REPS /PWS/ZYCER213

 

...

        /pws/zycet002,

        /pws/zycet003,

        /pws/zycet047,

        adrc,

        j_1bnfdoc,

        vbak,

        vbap,

        vbpa,

        vbkd,

        ekko.

* >> Início da inclusão:

TYPES:

  BEGIN OF t_seq_embarque,

    nrseq     TYPE /pws/zycet001-nrseq,

    nremb     TYPE /pws/zycet001-nremb,

    navio     TYPE /pws/zycet001-navio,

    viatrans  TYPE /pws/zycet001-viatrans,

    portdest  TYPE /pws/zycet001-portdest,

    nrsd      TYPE /pws/zycet001-nrsd,

    canal     TYPE /pws/zycet001-canal,

    dtprev    TYPE /pws/zycet001-dtprev,

    dtemb     TYPE /pws/zycet001-dtemb,

    dtaverb   TYPE /pws/zycet001-dtaverb,

    dtdoc     TYPE /pws/zycet001-dtdoc,

    dtenvcamb TYPE /pws/zycet001-dtenvcamb,

    dtcruze   TYPE /pws/zycet001-dtcruze,

  END OF t_seq_embarque,

  t_seq_embarques TYPE STANDARD TABLE OF t_seq_embarque.

* << Fim da inclusão

DATA: BEGIN OF itab_notas OCCURS 0,

        docnum       LIKE j_1bnflin-docnum,

        itmnum       LIKE j_1bnflin-itmnum,

        reftyp       LIKE j_1bnflin-reftyp,

        refkey       LIKE j_1bnflin-refkey,

        refitm       LIKE j_1bnflin-refitm,

        nfnum        LIKE j_1bnfdoc-nfnum,

        docdat       LIKE j_1bnfdoc-docdat,

        vbeln_vf     LIKE /pws/zycet002-vbeln_vf,

        vbeln_va     LIKE /pws/zycet002-vbeln_va,

...

 

...

        matnr        LIKE /pws/zycet002-matnr,

        ntgew        LIKE /pws/zycet002-ntgew,

        brgew        LIKE /pws/zycet002-brgew,

        shkzg        LIKE /pws/zycet002-shkzg,

        auart        LIKE /pws/zycet002-auart,

        gewei        LIKE /pws/zycet002-gewei,

        fkimg        LIKE /pws/zycet002-fkimg,

        vrkme        LIKE /pws/zycet002-vrkme,

        fkart        LIKE /pws/zycet002-fkart,

        bukrs        LIKE /pws/zycet002-bukrs,

* >> Início da exclusão:

        vlme         LIKE /pws/zycet002-vlme,

* << Fim da exclusão

* >> Início da inclusão:

        vlemb        LIKE /pws/zycet002-vlemb,

* << Fim da inclusão

        steuc        LIKE /pws/zycet002-steuc,

        land1        LIKE /pws/zycet002-land1,

        dtincl       LIKE /pws/zycet001-dtincl,

        ebeln        LIKE /pws/zycet002-ebeln,

        ebelp        LIKE /pws/zycet002-ebelp,

* >> Início da exclusão:

        vlcomis      LIKE /pws/zycee085-vlcomis,

        vldesconto   LIKE /pws/zycee085-vldesconto,

* << Fim da exclusão

* >> Início da inclusão:

        vlagente_r   LIKE /pws/zycet002-vlagente_r,

        vldesconto_r LIKE /pws/zycet002-vldesconto_r,

* << Fim da inclusão

      END OF itab_embarque.

DATA: BEGIN OF itab_t604f OCCURS 0,

        land1         LIKE t604f-land1,

        steuc         LIKE t604f-steuc,

        /pws/anuencia LIKE t604f-/pws/anuencia,

      END OF itab_t604f.

DATA: BEGIN OF itab_zycet003 OCCURS 0,

        nrseq        LIKE /pws/zycet003-nrseq,

        nrre         LIKE /pws/zycet003-nrre,

        dtlibanu     LIKE /pws/zycet003-dtlibanu,

...

 

...

  ELSE.

    MESSAGE i008.

  ENDIF.

END-OF-SELECTION.

FORM seleciona_dados.

  IF NOT s_nrseq  IS INITIAL OR

     NOT s_nremb  IS INITIAL OR

     NOT s_dtprev IS INITIAL OR

     NOT s_dtemb  IS INITIAL OR

     NOT s_viatr  IS INITIAL OR

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

     NOT s_dtdde  IS INITIAL OR

* << Fim da exclusão

     NOT s_werks  IS INITIAL OR

     NOT s_ebeln  IS INITIAL.

    PERFORM seleciona_embarque.

  ELSEIF NOT s_vkgrp  IS INITIAL OR

         NOT s_vbeln  IS INITIAL OR

         NOT s_bstkd  IS INITIAL OR

         NOT s_import IS INITIAL OR

         NOT s_padest IS INITIAL.

    PERFORM seleciona_ordem.

  ELSEIF NOT s_nfnum  IS INITIAL OR

         NOT s_docdat IS INITIAL.

    PERFORM seleciona_nota.

  ELSEIF NOT s_dtbl   IS INITIAL.

    PERFORM seleciona_dtbl.

  ELSEIF NOT s_nrre   IS INITIAL.

    PERFORM seleciona_re.

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

  ELSEIF NOT s_dtdde  IS INITIAL.

    PERFORM seleciona_dde.

* << Fim da inclusão

  ELSE.

    PERFORM seleciona_embarque.

  ENDIF.

ENDFORM.

FORM seleciona_embarque.

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

  DATA it_seq_embarque TYPE t_seq_embarques.

  SELECT

      nrseq

      nremb

      navio

      viatrans

      portdest

      nrsd

      canal

      dtprev

      dtemb

      dtaverb

      dtdoc

      dtenvcamb

      dtcruze

    FROM /pws/zycet001

    INTO TABLE it_seq_embarque

    WHERE nrseq IN s_nrseq.

* << Fim da inclusão

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

  SELECT a~mandt    a~nrseq    a~nremb     a~nrsd  a~canal   a~navio

         a~dtprev   a~dtaverb  a~dtenvcamb a~dtdoc a~dtcruze a~dtemb

         a~viatrans a~portdest a~despach

         b~vbeln_va b~vbeln_vl b~vbeln_vf b~aupos b~posnl b~posnr

         b~waers    b~inco1    b~docnum   b~nfnum b~werks b~vkgrp

         b~matnr    b~ntgew    b~brgew    b~shkzg b~auart b~gewei

         b~fkimg    b~vrkme    b~fkart    b~bukrs b~vlme b~steuc

         b~land1    a~dtincl   b~ebeln    b~ebelp

         FROM /pws/zycet001 AS a INNER JOIN /pws/zycet002 AS b

                                 ON a~nrseq = b~nrseq

         INTO TABLE itab_embarque

         WHERE a~nrseq    IN s_nrseq

           AND a~nremb    IN s_nremb

           AND a~nrsd     IN s_dtdde

           AND a~dtprev   IN s_dtprev

           AND a~dtemb    IN s_dtemb

           AND a~viatrans IN s_viatr

           AND b~vbeln_va IN s_vbeln

           AND b~nfnum    IN s_nfnum

           AND b~werks    IN s_werks

           AND b~vkgrp    IN s_vkgrp

           AND b~ebeln    IN s_ebeln.

* << Fim da exclusão

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

  CHECK sy-subrc = 0.

  PERFORM recupera_itens_embarque

    TABLES itab_embarque[]

    USING it_seq_embarque.

* << Fim da inclusão

  IF NOT itab_embarque[] IS INITIAL.

    SELECT nrseq nrre dtlibanu

           FROM /pws/zycet003

           INTO TABLE itab_zycet003

           FOR ALL ENTRIES IN itab_embarque

            WHERE nrseq EQ itab_embarque-nrseq

             AND nrre  IN s_nrre.

    IF NOT s_nrre IS INITIAL.

      IF NOT itab_zycet003[] IS INITIAL.

        LOOP AT itab_embarque.

...

 

...

           vbrk~exnum vbrk~fkart vbrk~inco1 vbrk~bukrs

           vbrk~waerk

           FROM vbrk INNER JOIN vbrp

                     ON vbrk~vbeln = vbrp~vbeln

           INTO TABLE itab_fatura

           FOR ALL ENTRIES IN itab_ordem

           WHERE vbrp~vbeln EQ itab_ordem-vbeln_vf

             AND vbrp~posnr EQ itab_ordem-posnf.

  ENDIF.

  IF NOT itab_ordem[] IS INITIAL.

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

    PERFORM trata_ordem_ord.

  ENDIF.

  IF NOT itab_ordem[] IS INITIAL.

* << Fim da exclusão

    PERFORM seleciona_dados_ordem.

    SELECT a~mandt    a~nrseq    a~nremb     a~nrsd  a~canal   a~navio

           a~dtprev   a~dtaverb  a~dtenvcamb a~dtdoc a~dtcruze a~dtemb

           a~viatrans a~portdest a~despach

           b~vbeln_va b~vbeln_vl b~vbeln_vf b~aupos b~posnl b~posnr

           b~waers    b~inco1    b~docnum   b~nfnum b~werks b~vkgrp

           b~matnr    b~ntgew    b~brgew    b~shkzg b~auart b~gewei

           b~fkimg    b~vrkme    b~fkart    b~bukrs b~vlme b~steuc

           b~land1

           FROM /pws/zycet001 AS a INNER JOIN /pws/zycet002 AS b

...

 

...

      v_index = sy-tabix.

      READ TABLE itab_notas WITH KEY vbeln_va = itab_ordem-vbeln

                                     aupos    = itab_ordem-posnr.

      MOVE: itab_notas-vbeln_vl TO itab_ordem-vbeln_vl,

            itab_notas-vbeln_vf TO itab_ordem-vbeln_vf,

            itab_notas-vbeln_vl TO itab_ordem-objky,

            itab_notas-posnl    TO itab_ordem-posnl,

            itab_notas-refitm   TO itab_ordem-posnf.

      MODIFY itab_ordem INDEX v_index.

    ENDLOOP.

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

    IF NOT itab_ordem[] IS INITIAL.

      PERFORM trata_ordem_ord.

    ENDIF.

* << Fim da exclusão

    IF NOT itab_ordem[] IS INITIAL.

      SELECT vbeln bstkd bstdk

             FROM vbkd

             INTO TABLE itab_vbkd

             FOR ALL ENTRIES IN itab_ordem

             WHERE vbeln EQ itab_ordem-vbeln.

      SELECT vbpa~vbeln vbpa~kunnr vbpa~parvw vbpa~adrnr

             adrc~country

             kna1~name1

             FROM vbpa INNER JOIN adrc

...

 

...

         nrseqtr nrrota_tr nrseqcg

         FROM /pws/zycet046

         INTO TABLE itab_zycet046

         FOR ALL ENTRIES IN itab_embarque

         WHERE nrseq EQ itab_embarque-nrseq.

  IF NOT itab_zycet046[] IS INITIAL.

    SELECT nrseqtr nrrota_tr dtdesembaraco

           FROM /pws/zycet102

           INTO TABLE itab_zycet102

           FOR ALL ENTRIES IN itab_zycet046

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

           WHERE nrseqtr   EQ itab_zycet046-nrseqcg

* << Fim da exclusão

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

           WHERE nrseqtr   EQ itab_zycet046-nrseqtr

* << Fim da inclusão

             AND nrrota_tr EQ itab_zycet046-nrrota_tr.

    SELECT nrseqno dtinspecao

           FROM /pws/zycet217

           INTO TABLE itab_zycet217

           FOR ALL ENTRIES IN itab_zycet046

           WHERE nrseqno EQ itab_zycet046-nrseqno.

    SELECT nrseqtr

           nrrota_tr

           readtexta

           INTO  TABLE itab_zycet103

...

 

...

         WHERE steuc EQ itab_embarque-steuc.

  SELECT nrseq categoria

         FROM /pws/zycet124

         INTO TABLE itab_zycet124

         FOR ALL ENTRIES IN itab_embarque

         WHERE nrseq EQ itab_embarque-nrseq.

  IF NOT itab_zycet124[] IS INITIAL.

    DELETE itab_zycet124 WHERE categoria EQ ' '.

  ENDIF.

ENDFORM.

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

FORM trata_ordem_emb.

  REFRESH itab_zycee085.

  CLEAR itab_zycee085.

  LOOP AT itab_embarque.

    nrseq = nrseq + 1.

    itab_zycee085-nrseq = nrseq.

    SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.

    UNPACK  itab_zycee085-nrseq   TO itab_zycee085-nrseq.

    MOVE : itab_embarque-mandt    TO itab_zycee085-mandt,

           itab_embarque-vbeln_va TO itab_zycee085-vbeln_va,

           itab_embarque-vbeln_vf TO itab_zycee085-vbeln_vf,

           itab_embarque-vbeln_vl TO itab_zycee085-vbeln_vl,

           itab_embarque-posnl    TO itab_zycee085-posnl,

           itab_embarque-posnr    TO itab_zycee085-posnr,

           itab_embarque-aupos    TO itab_zycee085-aupos,

           itab_embarque-ntgew    TO itab_zycee085-ntgew,

           itab_embarque-brgew    TO itab_zycee085-brgew,

           itab_embarque-shkzg    TO itab_zycee085-shkzg,

           itab_embarque-nfnum    TO itab_zycee085-nfnum,

           itab_embarque-auart    TO itab_zycee085-auart,

           itab_embarque-waers    TO itab_zycee085-waers,

           itab_embarque-gewei    TO itab_zycee085-gewei,

           itab_embarque-fkimg    TO itab_zycee085-fkimg,

           itab_embarque-vrkme    TO itab_zycee085-vrkme,

           itab_embarque-vlme     TO itab_zycee085-vlme,

           itab_embarque-fkart    TO itab_zycee085-fkart,

           itab_embarque-inco1    TO itab_zycee085-inco1,

           itab_embarque-bukrs    TO itab_zycee085-bukrs.

    APPEND itab_zycee085.

    CLEAR itab_zycee085.

  ENDLOOP.

  EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.

  CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'

       TABLES

            t_saida = itab_saida.

  FREE MEMORY ID 'ODOC'.

  DELETE itab_saida WHERE ( vlme = space AND vfob = space ).

  IF NOT itab_saida[] IS INITIAL.

    LOOP AT itab_embarque.

      v_index = sy-tabix.

      READ TABLE itab_saida WITH KEY vbeln_va = itab_embarque-vbeln_va

                                     vbeln_vf = itab_embarque-vbeln_vf

                                     vbeln_vl = itab_embarque-vbeln_vl

                                     posnl    = itab_embarque-posnl

                                     posnr    = itab_embarque-posnr

                                     aupos    = itab_embarque-aupos.

      IF sy-subrc EQ 0.

        MOVE: itab_saida-vlme       TO itab_embarque-vlme,

              itab_saida-vlcomis    TO itab_embarque-vlcomis,

              itab_saida-vldesconto TO itab_embarque-vldesconto.

        MODIFY itab_embarque INDEX v_index.

      ELSE.

        DELETE itab_embarque INDEX v_index.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_ordem_ord.

  REFRESH itab_zycee085.

  CLEAR itab_zycee085.

  LOOP AT itab_ordem.

    CLEAR: itab_fatura,

           itab_notas.

    nrseq = nrseq + 1.

    itab_zycee085-nrseq = nrseq.

    SHIFT itab_zycee085-nrseq RIGHT DELETING TRAILING space.

    UNPACK  itab_zycee085-nrseq   TO itab_zycee085-nrseq.

    READ TABLE itab_fatura WITH KEY vbeln = itab_ordem-vbeln_vf

                                    posnr = itab_ordem-posnf.

    READ TABLE itab_notas WITH KEY refkey = itab_ordem-refkey

                                   refitm = itab_ordem-posnf.

    MOVE : itab_ordem-mandt    TO itab_zycee085-mandt,

           itab_ordem-vbeln    TO itab_zycee085-vbeln_va,

           itab_ordem-vbeln_vf TO itab_zycee085-vbeln_vf,

           itab_ordem-vbeln_vl TO itab_zycee085-vbeln_vl,

           itab_ordem-posnl    TO itab_zycee085-posnl,

           itab_ordem-posnf    TO itab_zycee085-posnr,

           itab_ordem-posnr    TO itab_zycee085-aupos,

           itab_ordem-ntgew    TO itab_zycee085-ntgew,

           itab_ordem-brgew    TO itab_zycee085-brgew,

           itab_ordem-shkzg    TO itab_zycee085-shkzg,

           itab_notas-nfnum    TO itab_zycee085-nfnum,

           itab_ordem-auart    TO itab_zycee085-auart,

           itab_ordem-waerk    TO itab_zycee085-waers,

           itab_ordem-gewei    TO itab_zycee085-gewei,

           itab_ordem-kwmeng   TO itab_zycee085-fkimg,

           itab_ordem-vrkme    TO itab_zycee085-vrkme,

           itab_ordem-netwr    TO itab_zycee085-vlme,

           itab_fatura-fkart   TO itab_zycee085-fkart,

           itab_fatura-inco1   TO itab_zycee085-inco1,

           itab_fatura-bukrs   TO itab_zycee085-bukrs.

    APPEND itab_zycee085.

    CLEAR itab_zycee085.

  ENDLOOP.

  EXPORT itab_zycee085 TO MEMORY ID 'ODOC'.

  CALL FUNCTION '/PWS/ZYCE_TRATA_ORDEM'

       TABLES

            t_saida = itab_saida.

  FREE MEMORY ID 'ODOC'.

  DELETE itab_saida WHERE ( vlme = space AND vfob = space ) OR

                          (  ntgew = space AND brgew = space ).

  IF NOT itab_saida[] IS INITIAL.

    LOOP AT itab_ordem.

      v_index = sy-tabix.

      READ TABLE itab_saida WITH KEY vbeln_va = itab_ordem-vbeln

                                     vbeln_vf = itab_ordem-vbeln_vf

                                     vbeln_vl = itab_ordem-vbeln_vl

                                     posnl    = itab_ordem-posnl

                                     posnr    = itab_ordem-posnf

                                     aupos    = itab_ordem-posnr.

      IF sy-subrc EQ 0.

        MOVE: itab_saida-vlme       TO itab_ordem-netwr,

              itab_saida-vlcomis    TO itab_ordem-vlcomis,

              itab_saida-vldesconto TO itab_ordem-vldesconto.

        MODIFY itab_ordem INDEX v_index.

      ELSE.

        DELETE itab_ordem INDEX v_index.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM processa_dados.

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

  SORT itab_ordem BY vbeln posnr.

* << Fim da exclusão

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

  SORT itab_embarque BY nrseq vbeln_va ebeln.

* << Fim da inclusão

  SORT itab_nast BY objky datvr ASCENDING.

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

  LOOP AT itab_ordem.

* << Fim da exclusão

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

  LOOP AT itab_embarque.

* << Fim da inclusão

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

    CLEAR: itab_relat.

    MOVE: itab_ordem-vbeln      TO itab_relat-vbeln_va,

          itab_ordem-vbeln_vl   TO itab_relat-vbeln_vl,

          itab_ordem-vkgrp      TO itab_relat-vkgrp,

          itab_ordem-erdat      TO itab_relat-erdat,

          itab_ordem-werks      TO itab_relat-werks.

    READ TABLE itab_fatura WITH KEY vbeln = itab_ordem-vbeln_vf

                                    posnr = itab_ordem-posnf.

    IF sy-subrc EQ 0.

      IF itab_fatura-waerk EQ 'BRL'.

        itab_relat-vlnota = itab_fatura-kursk * itab_fatura-netwr.

      ELSE.

        itab_relat-vlnota = itab_fatura-netwr.

      ENDIF.

    ENDIF.

    READ TABLE itab_notas WITH KEY refkey = itab_ordem-refkey

                                   refitm = itab_ordem-posnf.

    IF sy-subrc EQ 0.

      MOVE: itab_notas-nfnum    TO itab_relat-nfnum,

            itab_notas-docdat   TO itab_relat-docdat.

    ENDIF.

    READ TABLE itab_vbpa WITH KEY vbeln = itab_ordem-vbeln.

    IF sy-subrc EQ 0.

      MOVE: itab_vbpa-name1  TO itab_relat-recebedor.

    ENDIF.

    READ TABLE itab_import WITH KEY vbeln = itab_ordem-vbeln.

    IF sy-subrc EQ 0.

      MOVE: itab_import-name1    TO itab_relat-importador,

            itab_import-country  TO itab_relat-country.

    ENDIF.

    READ TABLE itab_likp WITH KEY vbeln = itab_ordem-vbeln_vl.

    IF sy-subrc EQ 0.

      MOVE: itab_likp-bldat   TO itab_relat-bldat.

      READ TABLE itab_eikp WITH KEY exnum = itab_likp-exnum.

      IF sy-subrc EQ 0.

        MOVE: itab_eikp-bezei   TO itab_relat-zolla.

      ENDIF.

      LOOP AT itab_lips WHERE vbeln = itab_ordem-vbeln_vl

                          AND posnr = itab_ordem-posnl.

        MOVE: itab_lips-vrkme TO itab_relat-vrkme,

              itab_lips-lfimg TO itab_relat-lfimg,

              itab_lips-brgew TO itab_relat-btgew,

              itab_likp-gewei TO itab_relat-gewei.

      ENDLOOP.

    ENDIF.

    READ TABLE itab_zycet265 WITH KEY vbeln_va = itab_ordem-vbeln

                                      vbeln_vl = itab_ordem-vbeln_vl.

    IF sy-subrc EQ 0.

      MOVE: itab_zycet265-dtrecped   TO itab_relat-dtrecped,

            itab_zycet265-dtembsol   TO itab_relat-dtembsol,

            itab_zycet265-dtsolov    TO itab_relat-dtsolov,

            itab_zycet265-dtlibven   TO itab_relat-dtlibven,

            itab_zycet265-dtsolrem   TO itab_relat-dtsolrem,

            itab_zycet265-dtsolfat   TO itab_relat-dtsolfat,

            itab_zycet265-dtlibemb   TO itab_relat-dtlibemb,

            itab_zycet265-bstkd      TO itab_relat-bstkd,

            itab_zycet265-dtrecped   TO itab_relat-bstdk.

    ENDIF.

    READ TABLE itab_embarque WITH KEY vbeln_va = itab_ordem-vbeln

                                      vbeln_vl = itab_ordem-vbeln_vl

                                      vbeln_vf = itab_ordem-vbeln_vf

                                      aupos    = itab_ordem-posnr

                                      posnl    = itab_ordem-posnl

                                      posnr    = itab_ordem-posnf.

    IF sy-subrc EQ 0.

      MOVE: itab_embarque-nrseq      TO itab_relat-nrseq,

            itab_embarque-nremb      TO itab_relat-nremb,

            itab_embarque-viatrans   TO itab_relat-viatrans,

            itab_embarque-portdest   TO itab_relat-portdest,

            itab_embarque-nrsd       TO itab_relat-nrsd,

            itab_embarque-dtprev     TO itab_relat-dtprev,

            itab_embarque-dtemb      TO itab_relat-dtemb,

            itab_embarque-dtcruze    TO itab_relat-dtcruze,

            itab_embarque-dtaverb    TO itab_relat-dtaverb,

            itab_embarque-dtdoc      TO itab_relat-dtdoc,

            itab_embarque-dtenvcamb  TO itab_relat-dtenvcamb,

            itab_embarque-waers      TO itab_relat-waers,

            itab_embarque-inco1      TO itab_relat-inco1,

            itab_embarque-vlme       TO itab_relat-netwr,

            itab_embarque-vlcomis    TO itab_relat-vlcomis,

            itab_embarque-vldesconto TO itab_relat-vldesconto,

            itab_embarque-dtincl     TO itab_relat-dt_eiv.

      CASE itab_embarque-canal.

        WHEN 'VD'.

          itab_relat-canal = 'Verde'.

        WHEN 'AM'.

          itab_relat-canal = 'Amarelo'.

        WHEN 'VM'.

          itab_relat-canal = 'Vermelho'.

        WHEN 'CZ'.

          itab_relat-canal = 'Cinza'.

      ENDCASE.

      READ TABLE itab_zycet100 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet100-nrinsp     TO itab_relat-nrinsp,

              itab_zycet100-dtleg      TO itab_relat-dtleg,

              itab_zycet100-empinsp    TO itab_relat-empinsp,

              itab_zycet100-data_insp  TO itab_relat-data_insp,

              itab_zycet100-dtconemb   TO itab_relat-dtconemb,

              itab_zycet100-analista   TO itab_relat-analista.

      ENDIF.

      READ TABLE itab_zycet262 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet262-dtchegf    TO itab_relat-dtchegf.

      ENDIF.

      CLEAR itab_armador.

      READ TABLE itab_armador

                 WITH KEY nrseq = itab_embarque-nrseq.

      CLEAR itab_lfa1.

      READ TABLE itab_lfa1

                 WITH KEY lifnr = itab_armador-armador.

      MOVE itab_lfa1-name1           TO itab_relat-emptrans.

      MOVE itab_armador-dtconsolida  TO itab_relat-dtconsolida.

      MOVE itab_armador-dtfumigacao  TO itab_relat-dtinspecao.

      IF itab_embarque-viatrans EQ c_ma.

        MOVE itab_armador-dt_dead_line TO itab_relat-dataentr.

      ENDIF.

      CLEAR itab_relat-navio.

      IF itab_embarque-viatrans EQ c_rd.

        itab_relat-navio = itab_armador-nome_tr.

      ENDIF.

      READ TABLE itab_zycet015 WITH KEY nrseq   = itab_embarque-nrseq

                                        tipo    = 'DES'.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet015-name1      TO itab_relat-despachante.

      ENDIF.

      READ TABLE itab_zycet047 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet047-tipcar      TO itab_relat-tipcar,

              itab_zycet047-dtlibconemb TO itab_relat-dtlibconemb,

              itab_zycet047-dtbl        TO itab_relat-dtbl.

      ENDIF.

      CLEAR itab_relat-nrbl.

      IF itab_embarque-viatrans EQ c_rd OR

         itab_embarque-viatrans EQ c_ma.

        itab_relat-nrbl = itab_zycet047-nrbl.

      ELSEIF itab_embarque-viatrans EQ c_ta.

        itab_relat-nrbl = itab_zycet047-house.

      ENDIF.

      READ TABLE itab_zycet046 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet046-nrcour     TO itab_relat-nrcour,

              itab_zycet046-dtrec      TO itab_relat-dtrec,

              itab_zycet046-dpch       TO itab_relat-dpch.

        IF itab_embarque-viatrans EQ c_ma.

          MOVE itab_armador-nome_tr TO itab_relat-nome_tr.

        ELSEIF itab_embarque-viatrans EQ c_rd OR

               itab_embarque-viatrans EQ c_ta.

          CLEAR itab_zycet103.

          READ TABLE itab_zycet103 WITH KEY

                                   nrseqtr = itab_zycet046-nrseqcg.

          MOVE itab_zycet103-readtexta TO itab_relat-nome_tr.

        ENDIF.

        READ TABLE itab_zycet102 WITH KEY

                                 nrseqtr   = itab_zycet046-nrseqcg

                                 nrrota_tr = itab_zycet046-nrrota_tr.

        IF sy-subrc EQ 0.

          MOVE: itab_zycet102-dtdesembaraco TO itab_relat-dtdesembaraco.

        ENDIF.

        CLEAR itab_zycet124.

        READ TABLE itab_zycet124 WITH KEY

                   nrseq = itab_embarque-nrseq.

        itab_relat-tpcont = itab_zycet124-categoria.

      ENDIF.

* << Fim da exclusão

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

    PERFORM:

      atribui_dados_comuns

        USING itab_embarque CHANGING itab_relat,

* << Fim da inclusão

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

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-005.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_eie.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-006.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_1o1.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-007.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_efa.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-008.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_epl.

      ENDIF.

* << Fim da exclusão

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

      atribui_dados_adicionais

        USING itab_embarque CHANGING itab_relat,

* << Fim da inclusão

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

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-009.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_seg.

      ENDIF.

* << Fim da exclusão

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

      atribui_dados_certificados

        USING itab_embarque CHANGING itab_relat.

* << Fim da inclusão

      READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                        tp_doc = text-011.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet183-dtlog   TO itab_relat-dt_re.

      ENDIF.

      READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                        tp_doc = text-012.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet183-dtlog   TO itab_relat-dt_sd.

      ELSE.

        READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                            tp_doc = text-013.

        IF sy-subrc EQ 0.

          MOVE: itab_zycet183-dtlog   TO itab_relat-dt_sd.

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

        ENDIF.

* << Fim da exclusão

      ENDIF.

    ENDIF.

    IF itab_relat-netwr      IS INITIAL.

      MOVE: itab_ordem-netwr TO itab_relat-netwr.

    ENDIF.

    IF itab_relat-vlcomis    IS INITIAL.

      MOVE: itab_ordem-vlcomis TO itab_relat-vlcomis.

    ENDIF.

    IF itab_relat-vldesconto IS INITIAL.

      MOVE: itab_ordem-vldesconto TO itab_relat-vldesconto.

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

    ENDIF.

    READ TABLE itab_vbep WITH KEY vbeln = itab_ordem-vbeln

                                  posnr = itab_ordem-posnr.

    IF sy-subrc EQ 0.

      MOVE: itab_vbep-edatu TO itab_relat-dt_eta.

* << Fim da exclusão

    ENDIF.

    READ TABLE itab_nast WITH KEY objky = itab_ordem-objky.

    IF sy-subrc EQ 0.

      MOVE: itab_nast-datvr TO itab_relat-dt_analise.

    ENDIF.

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

    PERFORM red_flags.

* << Fim da exclusão

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

    IF NOT itab_ordem[] IS INITIAL.

      READ TABLE itab_ordem WITH KEY

        vbeln    = itab_embarque-vbeln_va

* << Fim da inclusão

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

    COLLECT itab_relat.

* << Fim da exclusão

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

        posnr    = itab_embarque-aupos

        vbeln_vl = itab_embarque-vbeln_vl

* << Fim da inclusão

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

  ENDLOOP.

* << Fim da exclusão

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

        posnl    = itab_embarque-posnl.

* << Fim da inclusão

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

  LOOP AT itab_pedido.

    CLEAR: itab_relat.

    CLEAR itab_embarque.

    v_index = sy-tabix.

* << Fim da exclusão

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

      PERFORM atribui_dados_ov

        USING itab_ordem itab_embarque CHANGING itab_relat.

* << Fim da inclusão

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

    READ TABLE itab_embarque WITH KEY ebeln = itab_pedido-ebeln

                                      posnr = itab_pedido-ebelp.

    MOVE: itab_pedido-ebeln       TO itab_relat-ebeln,

          itab_pedido-vbeln       TO itab_relat-vbeln_va,

          itab_pedido-vbeln_vl    TO itab_relat-vbeln_vl,

          itab_pedido-aedat       TO itab_relat-erdat,

          itab_embarque-werks     TO itab_relat-werks,

          itab_embarque-nrseq     TO itab_relat-nrseq,

          itab_embarque-nremb     TO itab_relat-nremb,

          itab_embarque-viatrans  TO itab_relat-viatrans,

          itab_embarque-portdest  TO itab_relat-portdest,

          itab_embarque-nrsd      TO itab_relat-nrsd,

          itab_embarque-dtprev    TO itab_relat-dtprev,

          itab_embarque-dtemb     TO itab_relat-dtemb,

          itab_embarque-dtcruze   TO itab_relat-dtcruze,

          itab_embarque-dtaverb   TO itab_relat-dtaverb,

          itab_embarque-dtdoc     TO itab_relat-dtdoc,

          itab_embarque-dtenvcamb TO itab_relat-dtenvcamb,

          itab_embarque-waers     TO itab_relat-waers,

          itab_embarque-inco1     TO itab_relat-inco1,

          itab_embarque-vlme      TO itab_relat-netwr,

          itab_embarque-vlcomis   TO itab_relat-vlcomis,

          itab_embarque-vldesconto TO itab_relat-vldesconto,

          itab_embarque-dtincl     TO itab_relat-dt_eiv.

    CASE itab_embarque-canal.

      WHEN 'VD'.

        itab_relat-canal = 'Verde'.

      WHEN 'AM'.

        itab_relat-canal = 'Amarelo'.

      WHEN 'VM'.

        itab_relat-canal = 'Vermelho'.

      WHEN 'CZ'.

        itab_relat-canal = 'Cinza'.

    ENDCASE.

    READ TABLE itab_fatura1 WITH KEY vbeln = itab_pedido-vbeln_vf

                                    posnr = itab_pedido-posnf.

    IF sy-subrc EQ 0.

      IF itab_fatura1-waerk EQ 'BRL'.

        itab_relat-vlnota = itab_fatura1-kursk * itab_fatura1-netwr.

      ELSE.

        itab_relat-vlnota = itab_fatura1-netwr.

      ENDIF.

* << Fim da exclusão

    ENDIF.

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

    READ TABLE itab_notas WITH KEY refkey = itab_pedido-refkey

                                   refitm = itab_pedido-posnf.

    IF sy-subrc EQ 0.

      MOVE: itab_notas-nfnum    TO itab_relat-nfnum,

            itab_notas-docdat   TO itab_relat-docdat.

    ENDIF.

* << Fim da exclusão

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

    IF NOT itab_pedido[] IS INITIAL.

      READ TABLE itab_pedido WITH KEY

        ebeln    = itab_embarque-ebeln

        ebelp    = itab_embarque-ebelp

        vbeln_vl = itab_embarque-vbeln_vl

        posnl    = itab_embarque-posnl.

* << Fim da inclusão

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

    READ TABLE itab_import1 WITH KEY ebeln = itab_pedido-ebeln.

    IF sy-subrc EQ 0.

      MOVE: itab_import1-name1    TO itab_relat-importador,

            itab_import1-country  TO itab_relat-country.

    ENDIF.

    READ TABLE itab_likp1 WITH KEY vbeln = itab_pedido-vbeln_vl.

    IF sy-subrc EQ 0.

      MOVE: itab_likp1-bldat   TO itab_relat-bldat.

      READ TABLE itab_receb WITH KEY kunnr = itab_likp1-kunnr.

      IF sy-subrc = 0.

        MOVE: itab_receb-name1   TO itab_relat-recebedor.

      ENDIF.

      READ TABLE itab_eikp1 WITH KEY exnum = itab_likp1-exnum.

      IF sy-subrc EQ 0.

        MOVE: itab_eikp1-bezei   TO itab_relat-zolla.

      ENDIF.

      LOOP AT itab_lips1 WHERE vbeln = itab_pedido-vbeln_vl

                          AND posnr = itab_pedido-posnl.

        MOVE: itab_lips1-vrkme TO itab_relat-vrkme,

              itab_lips1-lfimg TO itab_relat-lfimg,

              itab_lips1-brgew TO itab_relat-btgew,

              itab_likp1-gewei TO itab_relat-gewei.

      ENDLOOP.

    ENDIF.

    READ TABLE itab_embarque WITH KEY ebeln = itab_pedido-ebeln

                                      vbeln_vl = itab_pedido-vbeln_vl

                                      vbeln_vf = itab_pedido-vbeln_vf

                                      ebelp    = itab_pedido-ebelp

                                      posnl    = itab_pedido-posnl

                                      posnr    = itab_pedido-posnf.

    IF sy-subrc EQ 0.

      READ TABLE itab_zycet100 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet100-nrinsp     TO itab_relat-nrinsp,

              itab_zycet100-dtleg      TO itab_relat-dtleg,

              itab_zycet100-empinsp    TO itab_relat-empinsp,

              itab_zycet100-data_insp  TO itab_relat-data_insp,

              itab_zycet100-dtconemb   TO itab_relat-dtconemb,

              itab_zycet100-analista   TO itab_relat-analista.

      ENDIF.

      READ TABLE itab_zycet262 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet262-dtchegf    TO itab_relat-dtchegf.

      ENDIF.

      CLEAR itab_armador.

      READ TABLE itab_armador

                 WITH KEY nrseq = itab_embarque-nrseq.

      CLEAR itab_lfa1.

      READ TABLE itab_lfa1

                 WITH KEY lifnr = itab_armador-armador.

      MOVE itab_lfa1-name1           TO itab_relat-emptrans.

      MOVE itab_armador-dtconsolida  TO itab_relat-dtconsolida.

      MOVE itab_armador-dtfumigacao  TO itab_relat-dtinspecao.

      IF itab_embarque-viatrans EQ c_ma.

        MOVE itab_armador-dt_dead_line TO itab_relat-dataentr.

      ENDIF.

      CLEAR itab_relat-navio.

      IF itab_embarque-viatrans EQ c_rd.

        itab_relat-navio = itab_armador-nome_tr.

      ENDIF.

      READ TABLE itab_zycet015 WITH KEY nrseq   = itab_embarque-nrseq

                                        tipo    = 'DES'.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet015-name1      TO itab_relat-despachante.

      ENDIF.

      READ TABLE itab_zycet047 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet047-tipcar      TO itab_relat-tipcar,

              itab_zycet047-dtlibconemb TO itab_relat-dtlibconemb,

              itab_zycet047-dtbl        TO itab_relat-dtbl.

      ENDIF.

      CLEAR itab_relat-nrbl.

      IF itab_embarque-viatrans EQ c_rd OR

         itab_embarque-viatrans EQ c_ma.

        itab_relat-nrbl = itab_zycet047-nrbl.

      ELSEIF itab_embarque-viatrans EQ c_ta.

        itab_relat-nrbl = itab_zycet047-house.

      ENDIF.

      READ TABLE itab_zycet046 WITH KEY nrseq = itab_embarque-nrseq.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet046-nrcour     TO itab_relat-nrcour,

              itab_zycet046-dtrec      TO itab_relat-dtrec,

              itab_zycet046-dpch       TO itab_relat-dpch.

        IF itab_embarque-viatrans EQ c_ma.

          MOVE itab_armador-nome_tr TO itab_relat-nome_tr.

        ELSEIF itab_embarque-viatrans EQ c_rd OR

               itab_embarque-viatrans EQ c_ta.

          CLEAR itab_zycet103.

          READ TABLE itab_zycet103 WITH KEY

                                   nrseqtr = itab_zycet046-nrseqcg.

          MOVE itab_zycet103-readtexta TO itab_relat-nome_tr.

        ENDIF.

        READ TABLE itab_zycet102 WITH KEY

                                 nrseqtr   = itab_zycet046-nrseqcg

                                 nrrota_tr = itab_zycet046-nrrota_tr.

        IF sy-subrc EQ 0.

          MOVE: itab_zycet102-dtdesembaraco TO itab_relat-dtdesembaraco.

        ENDIF.

        CLEAR itab_zycet124.

        READ TABLE itab_zycet124 WITH KEY

                   nrseq = itab_embarque-nrseq.

        itab_relat-tpcont = itab_zycet124-categoria.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-005.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_eie.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-006.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_1o1.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-007.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_efa.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-008.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_epl.

      ENDIF.

      READ TABLE itab_zycet068 WITH KEY nrseq = itab_embarque-nrseq

                                        repid = text-009.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet068-data_emis  TO itab_relat-dt_seg.

      ENDIF.

      READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                        tp_doc = text-011.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet183-dtlog   TO itab_relat-dt_re.

      ENDIF.

      READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                        tp_doc = text-012.

      IF sy-subrc EQ 0.

        MOVE: itab_zycet183-dtlog   TO itab_relat-dt_sd.

      ELSE.

        READ TABLE itab_zycet183 WITH KEY nrseq  = itab_embarque-nrseq

                                            tp_doc = text-013.

        IF sy-subrc EQ 0.

          MOVE: itab_zycet183-dtlog   TO itab_relat-dt_sd.

        ENDIF.

      ENDIF.

    ENDIF.

    IF itab_relat-netwr      IS INITIAL.

      MOVE: itab_pedido-netpr TO itab_relat-netwr.

    ENDIF.

    IF itab_relat-vlcomis    IS INITIAL.

      MOVE: itab_pedido-vlcomis TO itab_relat-vlcomis.

    ENDIF.

* << Fim da exclusão

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

      PERFORM atribui_dados_pc

        USING itab_pedido itab_embarque CHANGING itab_relat.

* << Fim da inclusão

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

    IF itab_relat-vldesconto IS INITIAL.

      MOVE: itab_pedido-vldesconto TO itab_relat-vldesconto.

    ENDIF.

    READ TABLE itab_vbep WITH KEY vbeln = itab_ordem-vbeln

                                  posnr = itab_ordem-posnr.

    IF sy-subrc EQ 0.

      MOVE: itab_vbep-edatu TO itab_relat-dt_eta.

    ENDIF.

    READ TABLE itab_nast WITH KEY objky = itab_ordem-objky.

    IF sy-subrc EQ 0.

      MOVE: itab_nast-datvr TO itab_relat-dt_analise.

* << Fim da exclusão

    ENDIF.

    PERFORM red_flags.

    COLLECT itab_relat.

  ENDLOOP.

  SORT itab_relat BY nrseq

                     vbeln_vl

                     werks.

  DELETE ADJACENT DUPLICATES FROM itab_relat.

  itab_zycet003_aux[] = itab_zycet003[].

  LOOP AT itab_relat.

...

 

...

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'ICON_2'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 25.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

  afield-icon          = 'X'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DTSOLFAT'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 25.

  afield-sp_group      = 'A'.

...

 

...

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_EIV'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 20.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0030'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'NETWR'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

...

 

...

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_EIE'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 26.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0038'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_1O1'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 20.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0039'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_EFA'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 10.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0040'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_EPL'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 20.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0041'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_SEG'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 20.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0042'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'DT_ANALISE'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

  afield-outputlen     = 26.

  afield-sp_group      = 'A'.

  afield-just          = 'C'.

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

  IF v_f24 IS INITIAL.

    afield-no_out      = 'X'.

  ENDIF.

* << Fim da exclusão

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

  afield-no_out        = 'X'.

* << Fim da inclusão

  APPEND afield TO i_fieldcat.

  CLEAR itab_zycet031.

  READ TABLE itab_zycet031 WITH KEY id = '0043'.

  CLEAR afield.

  v_inteiro            = v_inteiro + 5.

  afield-col_pos       = v_inteiro.

  afield-fieldname     = 'NRRE'.

  afield-seltext_s     = itab_zycet031-name.

  afield-seltext_m     = itab_zycet031-name.

  afield-seltext_l     = itab_zycet031-name.

...

 

...

           active    = v_f24.

ENDFORM.

FORM limpa_campos.

  IF NOT itab_zycet047[] IS INITIAL.

    DELETE itab_zycet047 WHERE dtbl        EQ '00000000' AND

                               dtlibconemb EQ '00000000' AND

                               tipcar      EQ ' '   .

  ENDIF.

ENDFORM.

FORM seleciona_dtbl.

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

  DATA it_seq_embarque TYPE t_seq_embarques.

* << Fim da inclusão

  SELECT nrseq matnr nrbl dtbl house dtlibconemb tipcar

         FROM /pws/zycet047

         INTO TABLE itab_zycet047

         WHERE dtbl  IN s_dtbl.

  IF NOT itab_zycet047[] IS INITIAL.

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

    SELECT a~mandt    a~nrseq    a~nremb     a~nrsd  a~canal   a~navio

           a~dtprev   a~dtaverb  a~dtenvcamb a~dtdoc a~dtcruze a~dtemb

           a~viatrans a~portdest a~despach

           b~vbeln_va b~vbeln_vl b~vbeln_vf b~aupos b~posnl b~posnr

           b~waers    b~inco1    b~docnum   b~nfnum b~werks b~vkgrp

           b~matnr    b~ntgew    b~brgew    b~shkzg b~auart b~gewei

           b~fkimg    b~vrkme    b~fkart    b~bukrs b~vlme b~steuc

           b~land1    a~dtincl

           FROM /pws/zycet001 AS a INNER JOIN /pws/zycet002 AS b

                                   ON a~nrseq = b~nrseq

           INTO TABLE itab_embarque

* << Fim da exclusão

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

    SELECT

        nrseq

        nremb

        navio

        viatrans

        portdest

        nrsd

        canal

        dtprev

        dtemb

        dtaverb

        dtdoc

        dtenvcamb

        dtcruze

      FROM /pws/zycet001

      INTO TABLE it_seq_embarque

* << Fim da inclusão

           FOR ALL ENTRIES IN itab_zycet047

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

           WHERE a~nrseq EQ itab_zycet047-nrseq.

* << Fim da exclusão

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

      WHERE nrseq = itab_zycet047-nrseq.

    PERFORM recupera_itens_embarque

      TABLES itab_embarque[]

      USING it_seq_embarque.

* << Fim da inclusão

  ENDIF.

  IF NOT itab_embarque[] IS INITIAL.

    SELECT nrseq nrre dtlibanu

           FROM /pws/zycet003

           INTO TABLE itab_zycet003

           FOR ALL ENTRIES IN itab_embarque

            WHERE nrseq EQ itab_embarque-nrseq

             AND nrre  IN s_nrre.

    IF NOT s_nrre IS INITIAL.

      IF NOT itab_zycet003[] IS INITIAL.

...

 

...

        ENDLOOP.

      ELSE.

        REFRESH itab_embarque.

      ENDIF.

    ENDIF.

  ENDIF.

  PERFORM seleciona_ordem_emb.

  PERFORM seleciona_pedido_compra.

ENDFORM.

FORM seleciona_ordem_emb.

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

  FIELD-SYMBOLS <fs_embarque> LIKE itab_embarque.

  LOOP AT itab_embarque ASSIGNING <fs_embarque>

    WHERE vbeln_va NE space AND ebeln NE space.

    <fs_embarque>-vbeln_va = space.

  ENDLOOP.

  UNASSIGN <fs_embarque>.

* << Fim da inclusão

  IF NOT itab_embarque[] IS INITIAL.

    SELECT vbeln bstkd bstdk

           FROM vbkd

           INTO TABLE itab_vbkd

           FOR ALL ENTRIES IN itab_embarque

           WHERE vbeln EQ itab_embarque-vbeln_va

             AND bstkd IN s_bstkd.

    IF NOT s_bstkd IS INITIAL.

      IF NOT itab_vbkd[] IS INITIAL.

        LOOP AT itab_embarque.

...

 

...

          READ TABLE itab_import WITH KEY vbeln =

                                                itab_embarque-vbeln_va.

          IF sy-subrc NE 0.

            DELETE itab_embarque INDEX v_index.

          ENDIF.

        ENDLOOP.

      ELSE.

        REFRESH itab_embarque.

      ENDIF.

    ENDIF.

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

  ENDIF.

  IF NOT itab_embarque[] IS INITIAL.

    PERFORM trata_ordem_emb.

* << Fim da exclusão

  ENDIF.

  IF NOT itab_embarque[] IS INITIAL.

    PERFORM seleciona_dados_embarque.

    SELECT vbap~mandt vbap~vbeln vbap~posnr

           vbak~vkgrp vbak~erdat vbak~auart

           vbap~werks vbap~ntgew vbap~brgew vbap~shkzg vbap~gewei

           vbap~vrkme vbap~netwr vbap~waerk vbap~kwmeng

           FROM vbak INNER JOIN vbap

                     ON vbak~vbeln = vbap~vbeln

           INTO TABLE itab_ordem

...

 

...

           vbrk~waerk

           FROM vbrk INNER JOIN vbrp

                     ON vbrk~vbeln = vbrp~vbeln

           INTO TABLE itab_fatura

           FOR ALL ENTRIES IN itab_embarque

           WHERE vbrp~vbeln EQ itab_embarque-vbeln_vf

             AND vbrp~posnr EQ itab_embarque-posnr.

  ENDIF.

ENDFORM.

FORM seleciona_re.

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

  DATA  it_seq_embarque TYPE t_seq_embarques.

  SELECT

      b~nrseq

      b~nremb

      b~navio

      b~viatrans

      b~portdest

      b~nrseq

      b~viatrans

      b~portdest

      b~nrsd

      b~canal

      b~dtprev

      b~dtemb

      b~dtaverb

      b~dtdoc

      b~dtenvcamb

      b~dtcruze

    FROM /pws/zycet003 AS a

    INNER JOIN /pws/zycet001 AS b

      ON a~nrseq = b~nrseq

    INTO TABLE it_seq_embarque

    WHERE

      a~nrre IN s_nrre.

 

   CHECK sy-subrc = 0.

* << Fim da inclusão

 

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

  SELECT nrseq nrre dtlibanu

         FROM /pws/zycet003

         INTO TABLE itab_zycet003

          WHERE nrre  IN s_nrre.

  IF NOT itab_zycet003[] IS INITIAL.

* << Fim da exclusão

 

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

    SELECT a~mandt    a~nrseq    a~nremb     a~nrsd  a~canal   a~navio

           a~dtprev   a~dtaverb  a~dtenvcamb a~dtdoc a~dtcruze a~dtemb

           a~viatrans a~portdest a~despach

           b~vbeln_va b~vbeln_vl b~vbeln_vf b~aupos b~posnl b~posnr

           b~waers    b~inco1    b~docnum   b~nfnum b~werks b~vkgrp

           b~matnr    b~ntgew    b~brgew    b~shkzg b~auart b~gewei

           b~fkimg    b~vrkme    b~fkart    b~bukrs b~vlme b~steuc

           b~land1    a~dtincl

           FROM /pws/zycet001 AS a INNER JOIN /pws/zycet002 AS b

                                   ON a~nrseq = b~nrseq

           INTO TABLE itab_embarque

           FOR ALL ENTRIES IN itab_zycet003

           WHERE a~nrseq    EQ itab_zycet003-nrseq.

  ENDIF.

* << Fim da exclusão

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

  PERFORM recupera_itens_embarque

    TABLES itab_embarque[]

    USING it_seq_embarque.

* << Fim da inclusão

  IF NOT itab_embarque[] IS INITIAL.

    SELECT nrseq matnr nrbl dtbl house dtlibconemb tipcar

           FROM /pws/zycet047

           INTO TABLE itab_zycet047

           FOR ALL ENTRIES IN itab_embarque

           WHERE nrseq EQ itab_embarque-nrseq

             AND matnr EQ itab_embarque-matnr

             AND dtbl  IN s_dtbl.

    IF NOT s_dtbl IS INITIAL.

      IF NOT itab_zycet047[] IS INITIAL.

...

 

...

             p_variant,

             p_text.

    ENDIF.

  ELSE.

    CLEAR: p_disvariant,

           p_variant,

           p_text.

  ENDIF.

ENDFORM.

FORM seleciona_pedido_compra.

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

  DATA:

    itab_pedido_aux LIKE STANDARD TABLE OF itab_pedido,

    wa_pedido_aux   LIKE itab_pedido.

* << Fim da inclusão

  IF NOT itab_embarque[] IS INITIAL.

    SELECT ekpo~mandt ekpo~ebeln ekpo~ebelp

            ekko~aedat ekpo~werks ekpo~ntgew ekpo~brgew ekpo~retpo

            ekpo~gewei ekpo~meins ekpo~netpr ekko~waers ekpo~menge

            FROM ekko INNER JOIN ekpo

                      ON ekko~ebeln = ekpo~ebeln

            INTO TABLE itab_pedido

            FOR ALL ENTRIES IN itab_embarque

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

            WHERE ekko~ebeln = itab_embarque-ebeln.

* << Fim da exclusão

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

            WHERE

              ekko~ebeln = itab_embarque-ebeln AND

              ekpo~ebelp = itab_embarque-ebelp.

* << Fim da inclusão

  ENDIF.

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

  CLEAR itab_pedido_aux.

* << Fim da inclusão

  LOOP AT itab_pedido.

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

    MOVE-CORRESPONDING itab_pedido TO wa_pedido_aux.

* << Fim da inclusão

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

    CLEAR itab_embarque.

    v_index = sy-tabix.

* << Fim da exclusão

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

    LOOP AT itab_embarque WHERE ebeln = itab_pedido-ebeln AND

                                ebelp = itab_pedido-ebelp.

* << Fim da inclusão

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

    READ TABLE itab_embarque WITH KEY ebeln = itab_pedido-ebeln

                                      posnr = itab_pedido-ebelp.

* << Fim da exclusão

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

      MOVE:

        itab_embarque-vbeln_va  TO wa_pedido_aux-vbeln,

        itab_embarque-vbeln_vl  TO wa_pedido_aux-vbeln_vl,

        itab_embarque-vbeln_vf  TO wa_pedido_aux-vbeln_vf,

        itab_embarque-vbeln_vf  TO wa_pedido_aux-refkey,

        itab_embarque-posnl     TO wa_pedido_aux-posnl,

        itab_embarque-posnr     TO wa_pedido_aux-posnf,

        itab_embarque-vbeln_vl  TO wa_pedido_aux-objky.

* << Fim da inclusão

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

    MOVE: itab_embarque-vbeln_va  TO itab_pedido-vbeln,

          itab_embarque-vbeln_vl  TO itab_pedido-vbeln_vl,

          itab_embarque-vbeln_vf  TO itab_pedido-vbeln_vf,

          itab_embarque-vbeln_vf  TO itab_pedido-refkey,

          itab_embarque-posnl     TO itab_pedido-posnl,

          itab_embarque-posnr     TO itab_pedido-posnf,

          itab_embarque-vbeln_vl  TO itab_pedido-objky.

* << Fim da exclusão

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

      APPEND wa_pedido_aux TO itab_pedido_aux.

    ENDLOOP.

  ENDLOOP.

* << Fim da inclusão

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

    MODIFY itab_pedido INDEX v_index.

  ENDLOOP.

* << Fim da exclusão

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

  IF NOT itab_pedido_aux IS INITIAL.

    itab_pedido[] = itab_pedido_aux.

  ENDIF.

* << Fim da inclusão

  IF NOT itab_pedido[] IS INITIAL.

    SELECT vbeln bldat btgew gewei exnum kunnr

           FROM likp

           INTO TABLE itab_likp1

           FOR ALL ENTRIES IN itab_pedido

           WHERE vbeln EQ itab_pedido-vbeln_vl.

    SELECT ekpo~ebeln ekpo~kunnr ekpo~adrnr

           adrc~country

           kna1~name1

           FROM ekpo INNER JOIN adrc

...

 

...

           INTO TABLE itab_zycet003

           FOR ALL ENTRIES IN itab_embarque

           WHERE nrseq EQ itab_embarque-nrseq.

    SELECT nrseq matnr nrbl dtbl house dtlibconemb tipcar

           FROM /pws/zycet047

           INTO TABLE itab_zycet047

           FOR ALL ENTRIES IN itab_embarque

           WHERE nrseq EQ itab_embarque-nrseq

             AND matnr EQ itab_embarque-matnr.

    PERFORM seleciona_dados_embarque.

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

  ENDIF.

ENDFORM.

FORM recupera_itens_embarque

  TABLES p_embarque LIKE itab_embarque[]

  USING  p_seq_embarques TYPE t_seq_embarques.

  DATA:

    it_itens_embarque TYPE STANDARD TABLE OF /pws/zycet002,

    wa_seq_embarque   TYPE t_seq_embarque,

    wa_item_embarque  TYPE /pws/zycet002.

  CLEAR it_itens_embarque.

  LOOP AT p_seq_embarques INTO wa_seq_embarque.

    CALL FUNCTION '/PWS/ZYCE_SEPARA_ITENS_EMB'

         EXPORTING

              nrseq                 = wa_seq_embarque-nrseq

              inclui_par_dt         = space

              inclui_es_saida       = space

         TABLES

              tab_saida             = it_itens_embarque

         EXCEPTIONS

              itens_nao_encontrados = 1.

    CHECK sy-subrc = 0.

  ENDLOOP.

  CLEAR itab_embarque[].

  LOOP AT it_itens_embarque INTO wa_item_embarque.

    MOVE-CORRESPONDING wa_item_embarque TO p_embarque.

    READ TABLE p_seq_embarques INTO wa_seq_embarque

      WITH KEY nrseq = wa_item_embarque-nrseq.

    MOVE:

      wa_seq_embarque-viatrans  TO p_embarque-viatrans,

      wa_seq_embarque-nremb     TO p_embarque-nremb,

      wa_seq_embarque-navio     TO p_embarque-navio,

      wa_seq_embarque-portdest  TO p_embarque-portdest,

      wa_seq_embarque-nrsd      TO p_embarque-nrsd,

      wa_seq_embarque-canal     TO p_embarque-canal,

      wa_seq_embarque-dtprev    TO p_embarque-dtprev,

      wa_seq_embarque-dtemb     TO p_embarque-dtemb,

      wa_seq_embarque-dtaverb   TO p_embarque-dtaverb,

      wa_seq_embarque-dtdoc     TO p_embarque-dtdoc,

      wa_seq_embarque-dtenvcamb TO p_embarque-dtenvcamb,

      wa_seq_embarque-dtcruze   TO p_embarque-dtcruze.

    APPEND p_embarque.

  ENDLOOP.

ENDFORM.

FORM seleciona_dde.

  DATA  it_seq_embarque TYPE t_seq_embarques.

  SELECT

      b~nrseq

      b~nremb

      b~navio

      b~viatrans

      b~portdest

      b~nrseq

      b~viatrans

      b~portdest

      b~nrsd

      b~canal

      b~dtprev

      b~dtemb

      b~dtaverb

      b~dtdoc

      b~dtenvcamb

      b~dtcruze

    FROM /pws/zycet120 AS a

    INNER JOIN /pws/zycet001 AS b

      ON a~nrseq = b~nrseq

    INTO TABLE it_seq_embarque

    WHERE a~nrseqsd IN s_dtdde.

 

  CHECK sy-subrc = 0.

 

  PERFORM recupera_itens_embarque

    TABLES itab_embarque[]

    USING it_seq_embarque.

  IF NOT itab_embarque[] IS INITIAL.

    SELECT nrseq matnr nrbl dtbl house dtlibconemb tipcar

           FROM /pws/zycet047

           INTO TABLE itab_zycet047

           FOR ALL ENTRIES IN itab_embarque

           WHERE nrseq EQ itab_embarque-nrseq

             AND matnr EQ itab_embarque-matnr

             AND dtbl  IN s_dtbl.

    IF NOT s_dtbl IS INITIAL.

      IF NOT itab_zycet047[] IS INITIAL.

        LOOP AT itab_embarque.

          v_index = sy-tabix.

          READ TABLE itab_zycet047 WITH KEY nrseq = itab_embarque-nrseq

                                            matnr = itab_embarque-matnr.

          IF sy-subrc NE 0.

            DELETE itab_embarque INDEX v_index.

          ENDIF.

        ENDLOOP.

      ELSE.

        REFRESH itab_embarque.

      ENDIF.

    ENDIF.

  ENDIF.

  PERFORM seleciona_ordem_emb.

  PERFORM seleciona_pedido_compra.

ENDFORM.

FORM atribui_dados_adicionais

  USING    p_embarque LIKE itab_embarque

  CHANGING p_relat    LIKE itab_relat.

  READ TABLE itab_zycet100 WITH KEY nrseq = p_embarque-nrseq.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet100-nrinsp     TO p_relat-nrinsp,

          itab_zycet100-dtleg      TO p_relat-dtleg,

          itab_zycet100-empinsp    TO p_relat-empinsp,

          itab_zycet100-data_insp  TO p_relat-data_insp,

          itab_zycet100-dtconemb   TO p_relat-dtconemb,

          itab_zycet100-analista   TO p_relat-analista.

  ENDIF.

  READ TABLE itab_zycet262 WITH KEY nrseq = p_embarque-nrseq.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet262-dtchegf    TO p_relat-dtchegf.

  ENDIF.

  READ TABLE itab_zycet046 WITH KEY nrseq = p_embarque-nrseq.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet046-nrcour     TO p_relat-nrcour,

          itab_zycet046-dtrec      TO p_relat-dtrec,

          itab_zycet046-dpch       TO p_relat-dpch.

    CLEAR itab_armador.

    READ TABLE itab_armador

               WITH KEY nrseq = p_embarque-nrseq.

    CLEAR itab_lfa1.

    READ TABLE itab_lfa1

               WITH KEY lifnr = itab_armador-armador.

    MOVE itab_lfa1-name1           TO p_relat-emptrans.

    MOVE itab_armador-dtconsolida  TO p_relat-dtconsolida.

    MOVE itab_armador-dtfumigacao  TO p_relat-dtinspecao.

    IF p_embarque-viatrans EQ c_ma.

      MOVE itab_armador-dt_dead_line TO p_relat-dataentr.

    ENDIF.

    CLEAR p_relat-navio.

    IF p_embarque-viatrans EQ c_rd.

      p_relat-navio = itab_armador-nome_tr.

    ENDIF.

    READ TABLE itab_zycet015 WITH KEY nrseq   = p_embarque-nrseq

                                      tipo    = 'DES'.

    IF sy-subrc EQ 0.

      MOVE: itab_zycet015-name1      TO p_relat-despachante.

    ENDIF.

    READ TABLE itab_zycet047 WITH KEY nrseq = p_embarque-nrseq.

    IF sy-subrc EQ 0.

      MOVE: itab_zycet047-tipcar      TO p_relat-tipcar,

            itab_zycet047-dtlibconemb TO p_relat-dtlibconemb,

            itab_zycet047-dtbl        TO p_relat-dtbl.

    ENDIF.

    CLEAR p_relat-nrbl.

    IF p_embarque-viatrans EQ c_rd OR

       p_embarque-viatrans EQ c_ma.

      p_relat-nrbl = itab_zycet047-nrbl.

    ELSEIF p_embarque-viatrans EQ c_ta.

      p_relat-nrbl = itab_zycet047-house.

    ENDIF.

    IF p_embarque-viatrans EQ c_ma.

      MOVE itab_armador-nome_tr TO p_relat-nome_tr.

    ELSEIF p_embarque-viatrans EQ c_rd OR

           p_embarque-viatrans EQ c_ta.

      CLEAR itab_zycet103.

      READ TABLE itab_zycet103 WITH KEY

                               nrseqtr = itab_zycet046-nrseqcg.

      MOVE itab_zycet103-readtexta TO p_relat-nome_tr.

    ENDIF.

    READ TABLE itab_zycet102 WITH KEY

      nrseqtr   = itab_zycet046-nrseqtr

      nrrota_tr = itab_zycet046-nrrota_tr.

    IF sy-subrc EQ 0.

      MOVE: itab_zycet102-dtdesembaraco TO p_relat-dtdesembaraco.

    ENDIF.

    CLEAR itab_zycet124.

    READ TABLE itab_zycet124 WITH KEY

               nrseq = p_embarque-nrseq.

    p_relat-tpcont = itab_zycet124-categoria.

  ENDIF.

ENDFORM.

FORM atribui_dados_certificados

  USING    p_embarque LIKE itab_embarque

  CHANGING p_relat    LIKE itab_relat.

  READ TABLE itab_zycet068 WITH KEY nrseq = p_embarque-nrseq

                                    repid = text-005.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet068-data_emis  TO p_relat-dt_eie.

  ENDIF.

  READ TABLE itab_zycet068 WITH KEY nrseq = p_embarque-nrseq

                                    repid = text-006.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet068-data_emis  TO p_relat-dt_1o1.

  ENDIF.

  READ TABLE itab_zycet068 WITH KEY nrseq = p_embarque-nrseq

                                    repid = text-007.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet068-data_emis  TO p_relat-dt_efa.

  ENDIF.

  READ TABLE itab_zycet068 WITH KEY nrseq = p_embarque-nrseq

                                    repid = text-008.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet068-data_emis  TO p_relat-dt_epl.

  ENDIF.

  READ TABLE itab_zycet068 WITH KEY nrseq = p_embarque-nrseq

                                    repid = text-009.

  IF sy-subrc EQ 0.

    MOVE: itab_zycet068-data_emis  TO p_relat-dt_seg.

  ENDIF.

ENDFORM.

FORM atribui_dados_ov_r3

  USING

    p_ordem        LIKE itab_ordem

    p_embarque     LIKE itab_embarque

  CHANGING p_relat LIKE itab_relat.

  READ TABLE itab_vbpa WITH KEY vbeln = p_ordem-vbeln.

  IF sy-subrc EQ 0.

    MOVE: itab_vbpa-name1  TO p_relat-recebedor.

  ENDIF.

  READ TABLE itab_import WITH KEY vbeln = p_ordem-vbeln.

  IF sy-subrc EQ 0.

    MOVE: itab_import-name1    TO p_relat-importador,

          itab_import-country  TO p_relat-country.

  ENDIF.

  READ TABLE itab_likp WITH KEY vbeln = p_ordem-vbeln_vl.

  IF sy-subrc EQ 0.

    MOVE: itab_likp-bldat   TO p_relat-bldat.

    READ TABLE itab_eikp WITH KEY exnum = itab_likp-exnum.

    IF sy-subrc EQ 0.

      MOVE: itab_eikp-bezei   TO p_relat-zolla.

    ENDIF.

  ENDIF.

  READ TABLE itab_vbep WITH KEY vbeln = p_ordem-vbeln

                                posnr = p_ordem-posnr.

  IF sy-subrc EQ 0.

    MOVE: itab_vbep-edatu TO p_relat-dt_eta.

  ENDIF.

ENDFORM.

FORM atribui_dados_comuns

  USING    p_embarque LIKE itab_embarque

  CHANGING p_relat    LIKE itab_relat.

  MOVE:

    p_embarque-nrseq        TO p_relat-nrseq,

    p_embarque-nremb        TO p_relat-nremb,

    p_embarque-viatrans     TO p_relat-viatrans,

    p_embarque-portdest     TO p_relat-portdest,

    p_embarque-nrsd         TO p_relat-nrsd,

    p_embarque-dtprev       TO p_relat-dtprev,

    p_embarque-dtemb        TO p_relat-dtemb,

    p_embarque-dtcruze      TO p_relat-dtcruze,

    p_embarque-dtaverb      TO p_relat-dtaverb,

    p_embarque-dtdoc        TO p_relat-dtdoc,

    p_embarque-dtenvcamb    TO p_relat-dtenvcamb,

    p_embarque-waers        TO p_relat-waers,

    p_embarque-inco1        TO p_relat-inco1,

    p_embarque-vlemb        TO p_relat-netwr,

    p_embarque-vlagente_r   TO p_relat-vlcomis,

    p_embarque-vldesconto_r TO p_relat-vldesconto,

    p_embarque-dtincl       TO p_relat-dt_eiv,

    p_embarque-brgew        TO p_relat-btgew,

    p_embarque-gewei        TO p_relat-gewei,

    p_embarque-vbeln_va     TO p_relat-vbeln_va,

    p_embarque-vbeln_vl     TO p_relat-vbeln_vl,

    p_embarque-ebeln        TO p_relat-ebeln,

    p_embarque-werks        TO p_relat-werks,

    p_embarque-fkimg        TO p_relat-lfimg,

    p_embarque-vrkme        TO p_relat-vrkme.

  CASE p_embarque-canal.

    WHEN 'VD'.

      p_relat-canal = 'Verde'.

    WHEN 'AM'.

      p_relat-canal = 'Amarelo'.

    WHEN 'VM'.

      p_relat-canal = 'Vermelho'.

    WHEN 'CZ'.

      p_relat-canal = 'Cinza'.

  ENDCASE.

ENDFORM.

FORM atribui_dados_ov

  USING

    p_ordem    LIKE itab_ordem

    p_embarque LIKE itab_embarque

  CHANGING p_relat    LIKE itab_relat.

  READ TABLE itab_zycet265 WITH KEY vbeln_va = p_ordem-vbeln

                                    vbeln_vl = p_ordem-vbeln_vl

                                    .

  IF sy-subrc EQ 0.

    MOVE: itab_zycet265-dtrecped   TO p_relat-dtrecped,

          itab_zycet265-dtembsol   TO p_relat-dtembsol,

          itab_zycet265-dtsolov    TO p_relat-dtsolov,

          itab_zycet265-dtlibven   TO p_relat-dtlibven,

          itab_zycet265-dtsolrem   TO p_relat-dtsolrem,

          itab_zycet265-dtsolfat   TO p_relat-dtsolfat,

          itab_zycet265-dtlibemb   TO p_relat-dtlibemb,

          itab_zycet265-bstkd      TO p_relat-bstkd,

          itab_zycet265-dtrecped   TO p_relat-bstdk.

  ENDIF.

  MOVE:

    p_ordem-vkgrp      TO p_relat-vkgrp,

    p_ordem-erdat      TO p_relat-erdat.

  READ TABLE itab_fatura WITH KEY vbeln = p_ordem-vbeln_vf

                                  posnr = p_ordem-posnf.

  IF sy-subrc EQ 0.

    IF itab_fatura-waerk EQ 'BRL'.

      p_relat-vlnota = itab_fatura-kursk * itab_fatura-netwr.

    ELSE.

      p_relat-vlnota = itab_fatura-netwr.

    ENDIF.

  ENDIF.

  READ TABLE itab_notas WITH KEY refkey = p_ordem-refkey

                                 refitm = p_ordem-posnf.

  IF sy-subrc EQ 0.

    MOVE: itab_notas-nfnum    TO p_relat-nfnum,

          itab_notas-docdat   TO p_relat-docdat.

  ENDIF.

  PERFORM atribui_dados_ov_r3

    USING p_ordem p_embarque CHANGING p_relat.

ENDFORM.

FORM atribui_dados_pc

  USING

    p_pedido   LIKE itab_pedido

    p_embarque LIKE itab_embarque

  CHANGING p_relat  LIKE itab_relat.

  MOVE:

    itab_pedido-aedat TO itab_relat-erdat.

  READ TABLE itab_fatura1 WITH KEY

    vbeln = p_pedido-vbeln_vf

    posnr = p_pedido-posnf.

  IF sy-subrc EQ 0.

    IF itab_fatura1-waerk EQ 'BRL'.

      p_relat-vlnota = itab_fatura1-kursk * itab_fatura1-netwr.

    ELSE.

      p_relat-vlnota = itab_fatura1-netwr.

    ENDIF.

  ENDIF.

  READ TABLE itab_notas WITH KEY refkey = itab_pedido-refkey

                                 refitm = itab_pedido-posnf.

  IF sy-subrc EQ 0.

    MOVE: itab_notas-nfnum    TO itab_relat-nfnum,

          itab_notas-docdat   TO itab_relat-docdat.

* << Fim da inclusão

  ENDIF.

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

  READ TABLE itab_likp1 WITH KEY vbeln = itab_pedido-vbeln_vl.

  IF sy-subrc EQ 0.

    MOVE: itab_likp1-bldat   TO p_relat-bldat.

    READ TABLE itab_receb WITH KEY kunnr = itab_likp1-kunnr.

    IF sy-subrc = 0.

      MOVE: itab_receb-name1  TO p_relat-recebedor.

    ENDIF.

* << Fim da inclusão

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

ENDFORM.

* << Fim da exclusão

* >> Início da inclusão:

    READ TABLE itab_eikp1 WITH KEY exnum = itab_likp1-exnum.

    IF sy-subrc EQ 0.

      MOVE: itab_eikp1-bezei  TO p_relat-zolla.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da inclusão

* << Fim da inclusão