CE PLUS - Nota 005130

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 01/11/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:13:28

Descrição da Nota: SELEÇÃO DAS COMERCIAIS EXPORTADORAS NA COMPOSIÇÃO DE ISENÇÃO

Sintoma

O programa não esta deletando corretamente os itens na composição de isenção.

 

 

Solução

Correção na seleção dos dados.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

DUMP TIME OUT NA SELEÇÃO DAS EXPORTAÇÕES

Informações Complementares

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

Nota Número 05130 Data: 01/11/2007 Hora: 10:21:40

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

 

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

Nota Número              : 05130

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00019

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

Referência às notas relacionadas:

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

 

05100  - 00001 - 7.0    - 00003  - DUMP TIME OUT NA SELEÇÃO DAS EXPORTAÇÕES

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

SELEÇÃO DAS COMERCIAIS EXPORTADORAS NA COMPOSIÇÃO DE ISENÇÃO

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

Palavras Chave:

COMERCIAL EXPORTADORA DRAWBACK COMPOSIÇÃO DE ISENÇÃO

 

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

Objetos da nota:

REPS /PWS/MZYCI064F03

REPS /PWS/MZYCI064I01

REPS /PWS/MZYCI064O01

REPS /PWS/MZYCI064X01

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

      ELSE.

        PERFORM testa_nao_vinculacao.

      ENDIF.

      PERFORM trata_ordem_venda3.

      REFRESH itab_mess_un.

      LOOP AT itab_re_final.

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

        IF v_count EQ 100.

* << Fim da inclusão

      v_pct = 30.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

        EXPORTING

          percentage = v_pct

          text       = text-298.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da inclusão

        CHECK NOT itab_re_final-matnr IS INITIAL.

        IF /pws/zycit321-ltopc NE '1'.

          READ TABLE itab_zycit281 WITH KEY matnr = itab_re_final-matnr

                                          werks = itab_re_final-werks.

          IF sy-subrc NE 0.

            SELECT SINGLE a~wrk02

              FROM ( t460a AS a INNER JOIN marc AS b ON

                a~werks EQ b~werks AND

                a~sobsl EQ b~sobsl AND

                a~beskz EQ b~beskz )

...

 

...

        itab_det_exp-qtd_iten TO v_qtd_0305        ,

        itab_det_exp-nrseqre  TO /pws/zycie259d-nrseqre ,

        itab_det_exp-nrre     TO /pws/zycie259d-nrre    ,

        itab_det_exp-nfnum    TO /pws/zycie259d-nfnum   ,

        itab_det_exp-serie    TO /pws/zycie259d-serie   ,

        itab_det_exp-nrseqc   TO /pws/zycie259d-nrseqc  ,

        itab_det_exp-dtnf     TO /pws/zycie259d-dtnf    ,

        itab_det_exp-dtre     TO /pws/zycie259d-dtre    ,

        itab_det_exp-lote     TO /pws/zycie259d-lote    ,

        itab_det_exp-nrseq    TO /pws/zycie259d-nrseq   ,

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

        itab_det_exp-nrseqc    TO /pws/zycie259d-nrseqc   ,

* << Fim da inclusão

        itab_det_exp-dtemb    TO /pws/zycie259d-dtemb   ,

        itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,

        itab_det_exp-vbeln_vf TO /pws/zycie259d-vbeln_vf,

        itab_det_exp-posnr    TO /pws/zycie259d-posnr   ,

        itab_det_exp-stlnr    TO /pws/zycie259d-stlnr   ,

        itab_det_exp-stlal    TO /pws/zycie259d-stlal   ,

        itab_det_exp-stlan    TO /pws/zycie259d-stlan   ,

        /pws/zycie258-werks        TO /pws/zycie259d-werks   .

  CLEAR: itab_comp_vinc. REFRESH: itab_comp_vinc.

  LOOP AT itab_comp_vinc_final.

    CHECK itab_comp_vinc_final-codmat   EQ /pws/zycie259d-codmat   AND

          itab_comp_vinc_final-nrseqre  EQ /pws/zycie259d-nrseqre  AND

          itab_comp_vinc_final-nrseq    EQ /pws/zycie259d-nrseq    AND

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

          itab_comp_vinc_final-nrseqc    EQ /pws/zycie259d-nrseqc    AND

* << Fim da inclusão

          itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

          itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

          itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

    MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

    IF itab_comp_vinc-qtd_orig IS INITIAL.

      IF /pws/zycit321-lote EQ space.

        itab_comp_vinc-qtd_orig = v_qtd_0305 * itab_comp_vinc-qtd_iten.

      ELSE.

        itab_comp_vinc-qtd_orig = itab_comp_vinc-qtd_total.

        itab_comp_vinc-qtd_iten = itab_comp_vinc-qtd_total / v_qtd_0305.

...

 

...

    CLEAR: v_indicatu6.

    MESSAGE s015 WITH text-104.

    EXIT.

  ENDIF.

  MOVE: sy-tabix TO v_indicatu6.

  CLEAR: itab_di. REFRESH: itab_di.

  LOOP AT itab_di_final WHERE

                        codmat   EQ itab_comp_vinc-codmat   AND

                        nrseqre  EQ itab_comp_vinc-nrseqre  AND

                        nrseq    EQ itab_comp_vinc-nrseq    AND

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

                        nrseqc    EQ itab_comp_vinc-nrseqc    AND

* << Fim da inclusão

                        vbeln_va EQ itab_comp_vinc-vbeln_va AND

                        vbeln_vf EQ itab_comp_vinc-vbeln_vf AND

                        posnr    EQ itab_comp_vinc-posnr.

    IF /pws/zycit321-it_ge EQ 'X'.

      CHECK itab_di_final-grupo  EQ itab_comp_vinc-grupo.

    ELSE.

      CHECK itab_di_final-codcomp  EQ itab_comp_vinc-codcomp.

    ENDIF.

    IF itab_di_final-sdo_qtd > 0

      OR itab_di_final-qtd_vinc > 0 .

...

 

...

          itab_det_exp-posnr    TO /pws/zycie259d-posnr   ,

          itab_det_exp-stlal    TO /pws/zycie259d-stlal   ,

          itab_det_exp-stlan    TO /pws/zycie259d-stlan   ,

          itab_det_exp-stlnr    TO /pws/zycie259d-stlnr   ,

          /pws/zycie258-werks        TO /pws/zycie259d-werks   .

    CLEAR: itab_comp_vinc. REFRESH: itab_comp_vinc.

    LOOP AT itab_comp_vinc_final.

     CHECK itab_comp_vinc_final-codmat   EQ /pws/zycie259d-codmat   AND

           itab_comp_vinc_final-nrseqre  EQ /pws/zycie259d-nrseqre  AND

           itab_comp_vinc_final-nrseq    EQ /pws/zycie259d-nrseq    AND

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

            itab_comp_vinc_final-nrseqc  EQ /pws/zycie259d-nrseqc   AND

* << Fim da inclusão

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_prior_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

...

 

...

          itab_det_exp-posnr    TO /pws/zycie259d-posnr   ,

          itab_det_exp-stlal    TO /pws/zycie259d-stlal   ,

          itab_det_exp-stlan    TO /pws/zycie259d-stlan   ,

          itab_det_exp-stlnr    TO /pws/zycie259d-stlnr   ,

          /pws/zycie258-werks        TO /pws/zycie259d-werks   .

    CLEAR: itab_comp_vinc. REFRESH: itab_comp_vinc.

    LOOP AT itab_comp_vinc_final.

     CHECK itab_comp_vinc_final-codmat   EQ /pws/zycie259d-codmat   AND

           itab_comp_vinc_final-nrseqre  EQ /pws/zycie259d-nrseqre  AND

           itab_comp_vinc_final-nrseq    EQ /pws/zycie259d-nrseq    AND

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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

* << Fim da inclusão

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_next_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

...

 

...

          itab_det_exp-posnr    TO /pws/zycie259d-posnr   ,

          itab_det_exp-stlal    TO /pws/zycie259d-stlal   ,

          itab_det_exp-stlan    TO /pws/zycie259d-stlan   ,

          itab_det_exp-stlnr    TO /pws/zycie259d-stlnr   ,

          /pws/zycie258-werks        TO /pws/zycie259d-werks   .

    CLEAR: itab_comp_vinc. REFRESH: itab_comp_vinc.

    LOOP AT itab_comp_vinc_final.

     CHECK itab_comp_vinc_final-codmat   EQ /pws/zycie259d-codmat   AND

           itab_comp_vinc_final-nrseqre  EQ /pws/zycie259d-nrseqre  AND

           itab_comp_vinc_final-nrseq    EQ /pws/zycie259d-nrseq    AND

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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

* << Fim da inclusão

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_last_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

...

 

...

          itab_det_exp-posnr    TO /pws/zycie259d-posnr   ,

          itab_det_exp-stlal    TO /pws/zycie259d-stlal   ,

          itab_det_exp-stlan    TO /pws/zycie259d-stlan   ,

          itab_det_exp-stlnr    TO /pws/zycie259d-stlnr   ,

          /pws/zycie258-werks        TO /pws/zycie259d-werks   .

    CLEAR: itab_comp_vinc. REFRESH: itab_comp_vinc.

    LOOP AT itab_comp_vinc_final.

     CHECK itab_comp_vinc_final-codmat   EQ /pws/zycie259d-codmat   AND

           itab_comp_vinc_final-nrseqre  EQ /pws/zycie259d-nrseqre  AND

           itab_comp_vinc_final-nrseq    EQ /pws/zycie259d-nrseq    AND

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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

* << Fim da inclusão

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM verifica_componentes3.

  DATA: v_qtdbase LIKE itab_stko-bmeng.

...

 

...

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

  REFRESH: itab_insumo_di.

  IF /pws/zycit321-lote IS INITIAL.

    LOOP AT itab_det_exp.

      CLEAR: it_stpox, it_stpox2. REFRESH: it_stpox, it_stpox2.

     READ TABLE itab_comp_vinc WITH KEY nrseqre  = itab_det_exp-nrseqre

                                          nrseq    = itab_det_exp-nrseq

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

                                         nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                         codmat   = itab_det_exp-codmat

                                       vbeln_va = itab_det_exp-vbeln_va

                                       vbeln_vf = itab_det_exp-vbeln_vf

                                          posnr    = itab_det_exp-posnr.

      IF sy-subrc EQ 0.

        CONTINUE.

      ENDIF.

      v_verif_v = 'X'.

      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

           EXPORTING

...

 

...

          CLEAR itab_marc. REFRESH itab_marc.

          SELECT * FROM marc INTO TABLE itab_marc

                 FOR ALL ENTRIES IN i_final

                 WHERE matnr EQ i_final-insumo

                   AND werks EQ itab_det_exp-werks.

        ENDIF.

        READ TABLE itab_comp_vinc_final WITH KEY

                                 codmat   = itab_det_exp-codmat

                                 nrseqre  = itab_det_exp-nrseqre

                                 nrseq    = itab_det_exp-nrseq

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

                                 nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                 vbeln_va = itab_det_exp-vbeln_va

                                 vbeln_vf = itab_det_exp-vbeln_vf

                                 posnr    = itab_det_exp-posnr.

        IF sy-subrc NE 0.

          IF itab_zycit433[] IS INITIAL.

            SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.

          ENDIF.

          LOOP AT i_final.

            CLEAR: itab_zycit433.

            READ TABLE itab_zycit433 WITH KEY matnr = i_final-insumo.

...

 

...

                CONTINUE.

              ENDIF.

            ENDIF.

            READ TABLE itab_mbew WITH KEY matnr = i_final-insumo.

            CLEAR itab_comp_vinc_final.

            MOVE:

             /pws/zycie258-nrseqd   TO itab_comp_vinc_final-nrseqd  ,

              itab_det_exp-codmat   TO itab_comp_vinc_final-codmat  ,

              itab_det_exp-nrseqre  TO itab_comp_vinc_final-nrseqre ,

              itab_det_exp-nrseq    TO itab_comp_vinc_final-nrseq   ,

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

              itab_det_exp-nrseqc   TO itab_comp_vinc_final-nrseqc  ,

* << Fim da inclusão

              itab_det_exp-vbeln_va TO itab_comp_vinc_final-vbeln_va,

              itab_det_exp-vbeln_vf TO itab_comp_vinc_final-vbeln_vf,

              itab_zycit433-grupo   TO itab_comp_vinc_final-grupo   ,

              itab_zycit433-desc_g  TO itab_comp_vinc_final-desc_g  ,

              itab_det_exp-posnr    TO itab_comp_vinc_final-posnr   ,

              i_final-insumo        TO itab_comp_vinc_final-codcomp .

            itab_comp_vinc_final-grupo = itab_zycit433-grupo.

            itab_comp_vinc_final-qtd_iten = i_final-qtunit.

            PERFORM converte_um_base USING i_final-insumo

                                  CHANGING i_final-meins

...

 

...

  ENDLOOP.

  REFRESH: itab_ekpo.

  itab_ekpo[] = itab_ekpo_sort[] .

  REFRESH itab_mess_un.

  SORT itab_det_exp BY dtre nrseqre.

  REFRESH itab_comp_sort3.

  LOOP AT itab_det_exp.

    LOOP AT itab_comp_vinc_final WHERE codmat   = itab_det_exp-codmat

                                  AND nrseqre  = itab_det_exp-nrseqre

                                   AND nrseq    = itab_det_exp-nrseq

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

                                   AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                 AND vbeln_va = itab_det_exp-vbeln_va

                                 AND vbeln_vf = itab_det_exp-vbeln_vf

                                   AND posnr    = itab_det_exp-posnr.

      itab_comp_sort3 = itab_comp_vinc_final.

      APPEND itab_comp_sort3.

    ENDLOOP.

  ENDLOOP.

  REFRESH itab_comp_vinc_final.

  itab_comp_vinc_final[] = itab_comp_sort3[].

  IF /pws/zycit321-it_ge EQ 'X'.

  ELSE.

  ENDIF.

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

  CLEAR: v_count .

* << Fim da inclusão

  LOOP AT itab_comp_vinc_final.

    READ TABLE itab_det_exp WITH KEY

                         codmat   = itab_comp_vinc_final-codmat

                         nrseqre  = itab_comp_vinc_final-nrseqre

                         nrseq    = itab_comp_vinc_final-nrseq

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

                         nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                         vbeln_va = itab_comp_vinc_final-vbeln_va

                         vbeln_vf = itab_comp_vinc_final-vbeln_vf

...

 

...

      v_dtini(4) = v_dtini(4) - 2.

      v_dtfim = itab_det_exp-dtre.

    ELSE.

      v_dtini = /pws/zycie258-dtpr.

      v_dtini(4) = v_dtini(4) - 2.

      v_dtfim = itab_det_exp-dtnf.

    ENDIF.

    IF /pws/zycit321-it_ge EQ 'X'.

      LOOP AT itab_zycit100_sort

                            WHERE grupo EQ itab_comp_vinc_final-grupo.

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

        IF v_count EQ 100.

* << Fim da inclusão

        v_pct = 0.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_pct

                  text       = text-297.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da inclusão

        PERFORM monta_dis3.

      ENDLOOP.

    ELSE.

      LOOP AT itab_zycit100_sort

                          WHERE matnr EQ itab_comp_vinc_final-codcomp.

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

        IF v_count EQ 100.

* << Fim da inclusão

        v_pct = 0.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_pct

                  text       = text-297.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da inclusão

        PERFORM monta_dis3.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_di_final.

    v_pct = 0.

    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

         EXPORTING

              percentage = v_pct

              text       = text-297.

...

 

...

  DATA: v_qtd_iten  LIKE /pws/zycie259-qtd_iten,

        v_vlfob     LIKE /pws/zycie259-vlfob   .

  CLEAR: v_qtd_iten, v_vlfob.

  IF pressed_tab_3c_2 EQ 'FS_RESUMO3'.

    itab_di_final_aux[] = itab_di_final[].

    LOOP AT itab_resumo WHERE marc_l = 'X'.

      LOOP AT itab_det_exp_final WHERE codmat = itab_resumo-codmat.

        LOOP AT itab_comp_vinc_final WHERE

                                  nrseqre  = itab_det_exp_final-nrseqre

                              AND nrseq    = itab_det_exp_final-nrseq

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

                              AND nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                              AND codmat   = itab_det_exp_final-codmat

                              AND vbeln_va = itab_det_exp_final-vbeln_va

                              AND vbeln_vf = itab_det_exp_final-vbeln_vf

                              AND posnr    = itab_det_exp_final-posnr.

          LOOP AT itab_di_final WHERE

                                nrseqre  = itab_comp_vinc_final-nrseqre

                            AND nrseq    = itab_comp_vinc_final-nrseq

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

                            AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                            AND codmat   = itab_comp_vinc_final-codmat

                            AND vbeln_va = itab_comp_vinc_final-vbeln_va

                            AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                            AND posnr    = itab_comp_vinc_final-posnr

                            AND

                              ( codcomp = itab_comp_vinc_final-codcomp

                             OR grupo  EQ itab_comp_vinc_final-grupo ).

            v_tabix2 = sy-tabix.

            LOOP AT itab_di_final_aux WHERE

                                  codcomp  EQ itab_di_final-codcomp AND

...

 

...

                                  ebelp    EQ itab_di_final-ebelp   AND

                                  docnum   EQ itab_di_final-docnum  AND

                                  itmnum   EQ itab_di_final-itmnum  AND

                                  nrseqemb EQ itab_di_final-nrseqemb.

              IF

         ( itab_di_final_aux-nrseqre  NE itab_det_exp_final-nrseqre  OR

           itab_di_final_aux-vbeln_va NE itab_det_exp_final-vbeln_va OR

           itab_di_final_aux-vbeln_vf NE itab_det_exp_final-vbeln_vf OR

           itab_di_final_aux-posnr    NE itab_det_exp_final-posnr    OR

           itab_di_final_aux-nrseq    NE itab_det_exp_final-nrseq    OR

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

           itab_di_final_aux-nrseqc   NE itab_det_exp_final-nrseqc   OR

* << Fim da inclusão

           itab_di_final_aux-codmat   NE itab_det_exp_final-codmat ).

                itab_di_final_aux-sdo_qtd  =

                     itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

                MODIFY itab_di_final_aux.

              ENDIF.

            ENDLOOP.

            DELETE itab_di_final_aux INDEX v_tabix2.

            DELETE itab_di_final INDEX v_tabix2.

          ENDLOOP.

          DELETE itab_comp_vinc_final.

...

 

...

    ENDLOOP.

    itab_di_final[] = itab_di_final_aux[].

    EXIT.

  ENDIF.

  IF pressed_tab_3c_2 EQ 'FS_DETALHE3'.

    itab_di_final_aux[] = itab_di_final[].

    LOOP AT itab_det_exp WHERE marcd_l = 'X'.

      LOOP AT itab_comp_vinc_final WHERE

                                nrseqre  = itab_det_exp-nrseqre

                            AND nrseq    = itab_det_exp-nrseq

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

                            AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                            AND codmat   = itab_det_exp-codmat

                            AND vbeln_va = itab_det_exp-vbeln_va

                            AND vbeln_vf = itab_det_exp-vbeln_vf

                            AND posnr    = itab_det_exp-posnr.

        LOOP AT itab_di_final WHERE

                              nrseqre  = itab_comp_vinc_final-nrseqre

                          AND nrseq    = itab_comp_vinc_final-nrseq

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

                          AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                          AND codmat   = itab_comp_vinc_final-codmat

                          AND vbeln_va = itab_comp_vinc_final-vbeln_va

                          AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                          AND posnr    = itab_comp_vinc_final-posnr

                            AND

                              ( codcomp = itab_comp_vinc_final-codcomp

                             OR grupo  EQ itab_comp_vinc_final-grupo ).

          v_tabix2 = sy-tabix.

          LOOP AT itab_di_final_aux WHERE

                                   codcomp  EQ itab_di_final-codcomp AND

...

 

...

                                   ebeln    EQ itab_di_final-ebeln   AND

                                   ebelp    EQ itab_di_final-ebelp   AND

                                   docnum   EQ itab_di_final-docnum  AND

                                   itmnum   EQ itab_di_final-itmnum  AND

                                   nrseqemb EQ itab_di_final-nrseqemb.

            IF ( itab_di_final_aux-nrseqre  NE itab_det_exp-nrseqre  OR

                 itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR

                 itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR

                 itab_di_final_aux-posnr    NE itab_det_exp-posnr    OR

                 itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

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

                 itab_di_final_aux-nrseqc   NE itab_det_exp-nrseqc   OR

* << Fim da inclusão

                 itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

              itab_di_final_aux-sdo_qtd  =

                   itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

              MODIFY itab_di_final_aux INDEX sy-tabix.

            ENDIF.

          ENDLOOP.

          DELETE itab_di_final_aux INDEX v_tabix2.

          DELETE itab_di_final INDEX v_tabix2.

        ENDLOOP.

        DELETE itab_comp_vinc_final.

      ENDLOOP.

      DELETE itab_det_exp_final WHERE nrseqre  = itab_det_exp-nrseqre

                                  AND codmat   = itab_det_exp-codmat

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

                                  AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                  AND vbeln_va = itab_det_exp-vbeln_va

                                  AND vbeln_vf = itab_det_exp-vbeln_vf

                                  AND posnr    = itab_det_exp-posnr.

      DELETE itab_det_exp.

    ENDLOOP.

    LOOP AT itab_det_exp.

      v_qtd_iten  = v_qtd_iten + itab_det_exp-qtd_iten.

      v_vlfob     = v_vlfob + itab_det_exp-vlfob.

    ENDLOOP.

    itab_resumo-qtd_iten = v_qtd_iten.

...

 

...

    /pws/zycie259d-vlfob    = itab_resumo-vlfob.

    itab_di_final[] = itab_di_final_aux[].

    EXIT.

  ENDIF.

  IF pressed_tab_3c_2 EQ 'FS_VINC3'.

    itab_di_final_aux[] = itab_di_final[].

    LOOP AT itab_comp_vinc WHERE marc_cp EQ 'X'.

      LOOP AT itab_di_final WHERE

                            nrseqre  = itab_comp_vinc-nrseqre

                        AND nrseq    = itab_comp_vinc-nrseq

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

                        AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                        AND codmat   = itab_comp_vinc-codmat

                        AND vbeln_va = itab_comp_vinc-vbeln_va

                        AND vbeln_vf = itab_comp_vinc-vbeln_vf

                        AND posnr    = itab_comp_vinc-posnr

                        AND ( codcomp = itab_comp_vinc-codcomp

                         OR   grupo  EQ itab_comp_vinc-grupo ).

        v_tabix2 = sy-tabix.

        LOOP AT itab_di_final_aux WHERE

                                 codcomp  EQ itab_di_final-codcomp AND

                                 nrdi     EQ itab_di_final-nrdi    AND

                                 ebeln    EQ itab_di_final-ebeln   AND

                                 ebelp    EQ itab_di_final-ebelp   AND

                                 nrseqemb EQ itab_di_final-nrseqemb.

          IF ( itab_di_final_aux-nrseqre  NE itab_det_exp-nrseqre  OR

               itab_di_final_aux-vbeln_va NE itab_det_exp-vbeln_va OR

               itab_di_final_aux-vbeln_vf NE itab_det_exp-vbeln_vf OR

               itab_di_final_aux-posnr    NE itab_det_exp-posnr    OR

               itab_di_final_aux-nrseq    NE itab_det_exp-nrseq    OR

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

               itab_di_final_aux-nrseqc   NE itab_det_exp-nrseqc   OR

* << Fim da inclusão

               itab_di_final_aux-codmat   NE itab_det_exp-codmat ).

            itab_di_final_aux-sdo_qtd  =

                 itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

            MODIFY itab_di_final_aux INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

        DELETE itab_di_final_aux INDEX v_tabix2.

        DELETE itab_di_final INDEX v_tabix2.

      ENDLOOP.

      IF /pws/zycit321-it_ge IS INITIAL.

        DELETE itab_comp_vinc_final WHERE

                                      nrseqre  = itab_comp_vinc-nrseqre

                                   AND nrseq    = itab_comp_vinc-nrseq

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

                                   AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                                   AND codmat   = itab_comp_vinc-codmat

                                 AND vbeln_va = itab_comp_vinc-vbeln_va

                                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                                   AND posnr    = itab_comp_vinc-posnr

                                  AND codcomp  = itab_comp_vinc-codcomp.

      ELSE.

        DELETE itab_comp_vinc_final WHERE

                                      nrseqre = itab_comp_vinc-nrseqre

                                   AND nrseq  = itab_comp_vinc-nrseq

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

                                   AND nrseqc = itab_comp_vinc-nrseqc

* << Fim da inclusão

                                   AND codmat = itab_comp_vinc-codmat

                                 AND vbeln_va = itab_comp_vinc-vbeln_va

                                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                                   AND posnr  = itab_comp_vinc-posnr

                                  AND grupo   = itab_comp_vinc-grupo.

      ENDIF.

      DELETE itab_comp_vinc.

    ENDLOOP.

    itab_di_final[] = itab_di_final_aux[].

    EXIT.

...

 

...

  IF NOT /pws/zycie258-aprovado IS INITIAL.

    MESSAGE s015 WITH text-114.

    EXIT.

  ENDIF.

  LOOP AT itab_det_exp_final.

    CLEAR: v_vtc, v_ex_vinc.

    v_execloop = 'N'.

    LOOP AT itab_comp_vinc_final

                      WHERE nrseqre  = itab_det_exp_final-nrseqre

                        AND nrseq    = itab_det_exp_final-nrseq

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

                        AND nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                        AND vbeln_va = itab_det_exp_final-vbeln_va

                        AND vbeln_vf = itab_det_exp_final-vbeln_vf

                        AND posnr    = itab_det_exp_final-posnr

                        AND codmat   = itab_det_exp_final-codmat.

      v_execloop = 'S'.

      IF itab_comp_vinc_final-qtd_stotal > 0 AND

       itab_comp_vinc_final-qtd_stotal < itab_comp_vinc_final-qtd_total.

        v_vtc = 'P'.

        EXIT.

      ELSEIF itab_comp_vinc_final-qtd_stotal > 0.

...

 

...

  ENDLOOP.

  IF v_execloop EQ 'N'.

    MESSAGE s015 WITH text-116 text-117.

    EXIT.

  ENDIF.

  itab_di_final_aux[] = itab_di_final[].

  LOOP AT itab_det_exp_final WHERE vinc_tot NE 'X'.

    LOOP AT itab_comp_vinc_final WHERE

                                nrseqre  = itab_det_exp_final-nrseqre

                            AND nrseq    = itab_det_exp_final-nrseq

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

                            AND nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                            AND codmat   = itab_det_exp_final-codmat

                            AND vbeln_va = itab_det_exp_final-vbeln_va

                            AND vbeln_vf = itab_det_exp_final-vbeln_vf

                            AND posnr    = itab_det_exp_final-posnr.

      LOOP AT itab_di_final WHERE

                            nrseqre  = itab_comp_vinc_final-nrseqre

                        AND nrseq    = itab_comp_vinc_final-nrseq

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

                        AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                        AND codmat   = itab_comp_vinc_final-codmat

                        AND vbeln_va = itab_comp_vinc_final-vbeln_va

                        AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                        AND posnr    = itab_comp_vinc_final-posnr

                        AND codcomp  = itab_comp_vinc_final-codcomp.

        v_tabix2 = sy-tabix.

        LOOP AT itab_di_final_aux WHERE

                                 codcomp  EQ itab_di_final-codcomp AND

                                 nrdi     EQ itab_di_final-nrdi    AND

                                 ebeln    EQ itab_di_final-ebeln   AND

                                 ebelp    EQ itab_di_final-ebelp   AND

                                 nrseqemb EQ itab_di_final-nrseqemb.

          IF (

          itab_di_final_aux-nrseqre  NE itab_det_exp_final-nrseqre  OR

          itab_di_final_aux-vbeln_va NE itab_det_exp_final-vbeln_va OR

          itab_di_final_aux-vbeln_vf NE itab_det_exp_final-vbeln_vf OR

          itab_di_final_aux-posnr    NE itab_det_exp_final-posnr    OR

          itab_di_final_aux-nrseq    NE itab_det_exp_final-nrseq    OR

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

          itab_di_final_aux-nrseqc   NE itab_det_exp_final-nrseqc   OR

* << Fim da inclusão

          itab_di_final_aux-codmat   NE itab_det_exp_final-codmat ).

            itab_di_final_aux-sdo_qtd  =

                 itab_di_final_aux-sdo_qtd + itab_di_final-qtd_vinc.

            MODIFY itab_di_final_aux INDEX sy-tabix.

          ENDIF.

        ENDLOOP.

        DELETE itab_di_final_aux INDEX v_tabix2.

        DELETE itab_di_final INDEX v_tabix2.

      ENDLOOP.

      DELETE itab_comp_vinc_final.

    ENDLOOP.

    DELETE itab_det_exp WHERE nrseqre  = itab_det_exp_final-nrseqre

                          AND codmat   = itab_det_exp_final-codmat

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

                          AND nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                          AND vbeln_va = itab_det_exp_final-vbeln_va

                          AND vbeln_vf = itab_det_exp_final-vbeln_vf

                          AND posnr    = itab_det_exp_final-posnr.

    DELETE itab_det_exp_final.

  ENDLOOP.

  itab_di_final[] = itab_di_final_aux[].

  PERFORM carrega_resumo_exportacao3.

  MOVE: 'X'      TO /pws/zycie258-aprovado,

        sy-datum TO /pws/zycie258-dtaprov .

ENDFORM.

...

 

...

  LOOP AT itab_di_final WHERE v_sel EQ ' '.

    DELETE itab_di_final.

  ENDLOOP.

  LOOP AT itab_di WHERE v_sel EQ ' '.

    DELETE itab_di.

  ENDLOOP.

  LOOP AT itab_det_exp_final.

    READ TABLE itab_comp_vinc_final WITH KEY

                        nrseqre  = itab_det_exp_final-nrseqre

                        nrseq    = itab_det_exp_final-nrseq

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

                        nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                        codmat   = itab_det_exp_final-codmat

                        vbeln_va = itab_det_exp_final-vbeln_va

                        vbeln_vf = itab_det_exp_final-vbeln_vf

                        posnr    = itab_det_exp_final-posnr.

    IF sy-subrc NE 0.

      DELETE itab_det_exp WHERE nrseqre  = itab_det_exp_final-nrseqre

                            AND codmat   = itab_det_exp_final-codmat

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

                            AND nrseqc   = itab_det_exp_final-nrseqc

* << Fim da inclusão

                            AND vbeln_va = itab_det_exp_final-vbeln_va

                            AND vbeln_vf = itab_det_exp_final-vbeln_vf

                            AND posnr    = itab_det_exp_final-posnr.

      DELETE itab_det_exp_final.

    ENDIF.

  ENDLOOP.

  PERFORM carrega_resumo_exportacao3.

ENDFORM.

FORM check_fields_screen_0307.

  LOOP AT tc_res_imp3-cols INTO wa_cols3.

...

 

...

      v_cifimp3 = v_cifimp3 +

            ( itab_di_final-vlfob + itab_di_final-vlfrete_t

                                  + itab_di_final-vlseg_t ).

    ENDLOOP.

  ENDIF.

  LOOP AT itab_det_exp_final.

    IF /pws/zycit321-it_ge EQ 'X'.

      READ TABLE itab_di_final

                    WITH KEY nrseqre   = itab_di_final-nrseqre

                             nrseq     = itab_di_final-nrseq

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

                             nrseqc    = itab_di_final-nrseqc

* << Fim da inclusão

                             codmat    = itab_di_final-codmat

                             vbeln_va  = itab_di_final-vbeln_va

                             vbeln_vf  = itab_di_final-vbeln_vf

                             posnr     = itab_di_final-posnr

                             grupo     = itab_res_imp-grupo.

    ELSE.

      READ TABLE itab_di_final

                    WITH KEY nrseqre   = itab_di_final-nrseqre

                             nrseq     = itab_di_final-nrseq

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

                             nrseqc    = itab_di_final-nrseqc

* << Fim da inclusão

                             codmat    = itab_di_final-codmat

                             vbeln_va  = itab_di_final-vbeln_va

                             vbeln_vf  = itab_di_final-vbeln_vf

                             posnr     = itab_di_final-posnr

                             codcomp   = itab_res_imp-codcomp.

    ENDIF.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

    v_fobexp3 = v_fobexp3 +

...

 

...

    itab_comp_vinc-qtd_total = itab_comp_vinc-qtd_total -

                               itab_comp_vinc-qtd_stotal.

    CLEAR: itab_comp_vinc-qtd_stotal.

  ENDIF.

  MODIFY itab_comp_vinc TRANSPORTING qtd_total qtd_stotal

      WHERE marc_cp EQ 'X'.

  itab_comp_vinc_final = itab_comp_vinc.

  MODIFY itab_comp_vinc_final TRANSPORTING qtd_total qtd_stotal

       WHERE nrseqre  = itab_comp_vinc-nrseqre

         AND nrseq    = itab_comp_vinc-nrseq

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

         AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

         AND codmat   = itab_comp_vinc-codmat

         AND vbeln_va = itab_comp_vinc-vbeln_va

         AND vbeln_vf = itab_comp_vinc-vbeln_vf

         AND posnr    = itab_comp_vinc-posnr

         AND codcomp  = itab_comp_vinc-codcomp.

ENDFORM.

FORM preenche_itab_msg_erro USING    p_matnr

                                     p_nrseqre

                                     p_nrre

                                     p_dtemb

...

 

...

    ENDLOOP.

  ENDLOOP.

  REFRESH itab_j_1bnflin.

  itab_j_1bnflin[] = itab_j_1bnflin_sort[].

  SORT itab_det_exp BY dtre nrseqre.

  REFRESH itab_comp_sort3.

  LOOP AT itab_det_exp.

    LOOP AT itab_comp_vinc_final WHERE codmat   = itab_det_exp-codmat

                                   AND nrseqre  = itab_det_exp-nrseqre

                                   AND nrseq    = itab_det_exp-nrseq

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

                                   AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                   AND vbeln_va = itab_det_exp-vbeln_va

                                   AND vbeln_vf = itab_det_exp-vbeln_vf

                                   AND posnr    = itab_det_exp-posnr.

      itab_comp_sort3 = itab_comp_vinc_final.

      APPEND itab_comp_sort3.

    ENDLOOP.

  ENDLOOP.

  REFRESH: itab_comp_vinc_final.

  itab_comp_vinc_final[] = itab_comp_sort3[].

  itab_di_final_aux[] = itab_di_final[].

...

 

...

        DELETE itab_zycit279 WHERE nrseqd EQ itab_zycit279-nrseqd.

      ENDIF.

    ENDLOOP.

  ENDIF.

  v_pct = 0.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-297.

  SORT itab_zycit279 BY dtdi.

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

  SORT itab_det_exp BY dtre nrseqre.

  REFRESH itab_comp_sort3.

  LOOP AT itab_det_exp.

    LOOP AT itab_comp_vinc_final WHERE codmat   = itab_det_exp-codmat

                                   AND nrseqre  = itab_det_exp-nrseqre

                                   AND nrseq    = itab_det_exp-nrseq

                                   AND vbeln_va = itab_det_exp-vbeln_va

                                   AND vbeln_vf = itab_det_exp-vbeln_vf

                                   AND posnr    = itab_det_exp-posnr.

      itab_comp_sort3 = itab_comp_vinc_final.

      APPEND itab_comp_sort3.

    ENDLOOP.

  ENDLOOP.

  REFRESH itab_comp_vinc_final.

  itab_comp_vinc_final[] = itab_comp_sort3[].

* << Fim da exclusão

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

  CLEAR: v_count .

* << Fim da inclusão

  LOOP AT itab_comp_vinc_final.

    READ TABLE itab_det_exp WITH KEY

                         codmat   = itab_comp_vinc_final-codmat

                         nrseqre  = itab_comp_vinc_final-nrseqre

                         nrseq    = itab_comp_vinc_final-nrseq

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

                         nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                         vbeln_va = itab_comp_vinc_final-vbeln_va

                         vbeln_vf = itab_comp_vinc_final-vbeln_vf

...

 

...

      v_dtini(4) = v_dtini(4) - 2.

      v_dtfim = itab_det_exp-dtre.

    ELSE.

      v_dtini = /pws/zycie258-dtpr.

      v_dtini(4) = v_dtini(4) - 2.

      v_dtfim = itab_det_exp-dtnf.

    ENDIF.

    IF /pws/zycit321-it_ge EQ 'X'.

      LOOP AT itab_zycit279

                 WHERE grupo EQ itab_comp_vinc_final-grupo.

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

        IF v_count EQ 100.

* << Fim da inclusão

        v_pct = 0.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_pct

                  text       = text-297.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da inclusão

        PERFORM monta_di.

      ENDLOOP.

    ELSE.

      LOOP AT itab_zycit279

                 WHERE matnr EQ itab_comp_vinc_final-codcomp.

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

        IF v_count EQ 100.

* << Fim da inclusão

        v_pct = 0.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_pct

                  text       = text-297.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da inclusão

        PERFORM monta_di.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  FREE: itab_zycit279,

        itab_zycit244,

        itab_comp_sort3.

ENDFORM.

FORM verifica_exit USING    p_modulo

                            p_func

...

 

...

                     AND nfglobal EQ itab_zycit042-nfglobal

                     AND cancel   EQ space.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

  LOOP AT itab_det_exp.

    LOOP AT itab_di_final WHERE nrseqre   = itab_det_exp-nrseqre

                            AND nrseq     = itab_det_exp-nrseq

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

                            AND nrseqc    = itab_det_exp-nrseqc

* << Fim da inclusão

                            AND codmat    = itab_det_exp-codmat

                            AND vbeln_va  = itab_det_exp-vbeln_va

                            AND vbeln_vf  = itab_det_exp-vbeln_vf

                            AND posnr     = itab_det_exp-posnr.

      READ TABLE itab_zycit100 WITH KEY ebeln = itab_di_final-ebeln

                                        ebelp = itab_di_final-ebelp.

      IF sy-subrc NE 0 .

        CONTINUE.

      ENDIF.

      REFRESH   itab_di_final_aux.

...

 

...

      v_xb = ( 1 - v_advpis - v_advcof - v_advicms ) .

     v_xa =  1 + v_advicms *  ( v_advii + v_advipi * ( 1 + v_advii ) ) .

      v_fatx = v_xa / v_xb.

      v_faty = v_advicms / v_xb.

      CLEAR itab_comp_vinc_final.

      MOVE:

       /pws/zycie258-nrseqd     TO itab_comp_vinc_final-nrseqd ,

        itab_det_exp-codmat     TO itab_comp_vinc_final-codmat ,

        itab_di_final-nrseqre   TO itab_comp_vinc_final-nrseqre,

        itab_di_final-nrseq     TO itab_comp_vinc_final-nrseq  ,

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

        itab_di_final-nrseqc    TO itab_comp_vinc_final-nrseqc ,

* << Fim da inclusão

        itab_di_final-vbeln_va  TO itab_comp_vinc_final-vbeln_va,

        itab_di_final-vbeln_vf  TO itab_comp_vinc_final-vbeln_vf,

        itab_di_final-posnr     TO itab_comp_vinc_final-posnr   ,

        itab_zycit003-matnr     TO itab_comp_vinc_final-codcomp ,

        itab_di_final-meins     TO itab_comp_vinc_final-meins.

      PERFORM converte_um_base USING itab_comp_vinc_final-codcomp

                            CHANGING itab_comp_vinc_final-meins

                                     itab_comp_vinc_final-qtd_iten.

      itab_comp_vinc_final-qtd_total = itab_comp_vinc_final-qtd_orig

                                     = itab_di_final-qtd_vinc.

      COLLECT itab_comp_vinc_final.

      MOVE:

      /pws/zycie258-nrseqd               TO itab_di_final-nrseqd ,

      itab_zycit003-matnr           TO itab_di_final-codcomp     ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

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

      itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

* << Fim da inclusão

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit085-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit085-nrdi            TO itab_di_final-reg_di      ,

      itab_zycit085-dtuserc         TO itab_di_final-dtdi        ,

      itab_zycit100-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit100-adicao          TO itab_di_final-adicao      ,

      itab_zycit003-meins           TO itab_di_final-meins       ,

      itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      ,

...

 

...

        ENDIF.

      ENDLOOP.

      MODIFY itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final WHERE

                 ( nrseqre  NE itab_det_exp-nrseqre      OR

                   vbeln_va NE itab_det_exp-vbeln_va     OR

                   vbeln_vf NE itab_det_exp-vbeln_vf     OR

                   posnr    NE itab_det_exp-posnr        OR

                   nrseq    NE itab_det_exp-nrseq        OR

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

                   nrseqc   NE itab_det_exp-nrseqc       OR

* << Fim da inclusão

                   codmat   NE itab_det_exp-codmat )    AND

                   codcomp  EQ itab_comp_vinc_final-codcomp AND

                   nrdi     EQ wa_itab_di_final-nrdi     AND

                   ebeln    EQ wa_itab_di_final-ebeln    AND

                   ebelp    EQ wa_itab_di_final-ebelp    AND

                   lote     EQ wa_itab_di_final-lote     AND

                   nrseqemb EQ wa_itab_di_final-nrseqemb AND

                   nrseqemb NE space.

          itab_di_final-sdo_qtd  = wa_itab_di_final-sdo_qtd .

          MODIFY itab_di_final.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_comp_vinc_final WHERE nrseqre   = itab_det_exp-nrseqre

                                   AND nrseq     = itab_det_exp-nrseq

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

                                   AND nrseqc    = itab_det_exp-nrseqc

* << Fim da inclusão

                                   AND codmat    = itab_det_exp-codmat

                                  AND vbeln_va  = itab_det_exp-vbeln_va

                                  AND vbeln_vf  = itab_det_exp-vbeln_vf.

      itab_comp_vinc_final-qtd_iten = itab_comp_vinc_final-qtd_total /

                                      itab_det_exp-qtd_iten.

      MODIFY itab_comp_vinc_final.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM seleciona_di_l.

...

 

...

        AND lote  EQ itab_di_final-lote.

  IF NOT itab_zycit279[] IS INITIAL.

    SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244

        FOR ALL ENTRIES IN itab_zycit279

        WHERE nrseqd EQ itab_zycit279-nrseqd

          AND tipo EQ 'I'.

  ENDIF.

  LOOP AT itab_det_exp.

    LOOP AT itab_di_final WHERE nrseqre  = itab_det_exp-nrseqre

                            AND nrseq    = itab_det_exp-nrseq

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

                            AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                            AND codmat   = itab_det_exp-codmat

                           AND vbeln_va  = itab_det_exp-vbeln_va

                           AND vbeln_vf  = itab_det_exp-vbeln_vf

                           AND posnr     = itab_det_exp-posnr

                           AND nrdi      = space

  .

      READ TABLE itab_zycit279 WITH KEY

                            ebeln = itab_di_final-ebeln

                            ebelp = itab_di_final-ebelp

                            lote  = itab_di_final-lote.

...

 

...

      COLLECT itab_comp_vinc_final.

      MODIFY itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final.

          IF

         ( itab_di_final-nrseqre  NE itab_det_exp-nrseqre      OR

           itab_di_final-vbeln_va NE itab_det_exp-vbeln_va     OR

           itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf     OR

           itab_di_final-posnr    NE itab_det_exp-posnr        OR

           itab_di_final-nrseq    NE itab_det_exp-nrseq        OR

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

           itab_di_final-nrseqc   NE itab_det_exp-nrseqc       OR

* << Fim da inclusão

           itab_di_final-codmat   NE itab_det_exp-codmat )    AND

         ( itab_di_final-codcomp  EQ

                                 itab_comp_vinc_final-codcomp AND

          itab_di_final-docnum   EQ wa_itab_di_final-docnum   AND

          itab_di_final-ebeln    EQ wa_itab_di_final-ebeln    AND

          itab_di_final-ebelp    EQ wa_itab_di_final-ebelp     ).

            itab_di_final-sdo_qtd  =

                itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

            MODIFY itab_di_final.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_comp_vinc_final WHERE nrseqre   = itab_det_exp-nrseqre

                                   AND nrseq     = itab_det_exp-nrseq

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

                                   AND nrseqc    = itab_det_exp-nrseqc

* << Fim da inclusão

                                   AND codmat    = itab_det_exp-codmat

                                  AND vbeln_va  = itab_det_exp-vbeln_va

                                  AND vbeln_vf  = itab_det_exp-vbeln_vf.

      itab_comp_vinc_final-qtd_iten = itab_comp_vinc_final-qtd_total /

                                      itab_det_exp-qtd_iten.

      MODIFY itab_comp_vinc_final.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM seleciona_nf_l.

...

 

...

        AND posnn EQ itab_zycit259_d-posnr.

    .

  ENDLOOP.

  IF NOT itab_vbfa_aux[] IS INITIAL.

    SELECT vbeln posnr ntgew brgew gewei FROM vbrp

            INTO TABLE itab_vbrp

            FOR ALL ENTRIES IN itab_vbfa_aux

            WHERE vbeln EQ itab_vbfa_aux-vbeln

              AND posnr EQ itab_vbfa_aux-posnn.

  ENDIF.

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

  v_pct = 80.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-300.

  CLEAR: v_count .

* << Fim da inclusão

  LOOP AT itab_nota_c.

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

    IF v_count EQ 100.

* << Fim da inclusão

      v_pct = 80.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

        EXPORTING

          percentage = v_pct

          text       = text-300.

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

      CLEAR: v_count .

    ENDIF.

    ADD 1 TO v_count.

* << Fim da inclusão

    READ TABLE itab_det_exp_final WITH KEY

                              vbeln_vf = itab_nota_c-refkey

                              posnr    = itab_nota_c-refitm.

    IF sy-subrc EQ 0.

      CONTINUE.

    ENDIF.

    CLEAR: itab_det_exp_final.

    READ TABLE itab_zycit281 WITH KEY matnr = itab_nota_c-matnr

                                    werks = itab_nota_c-werks.

    IF sy-subrc NE 0.

...

 

...

                  a~docnum EQ b~docnum )

           INTO TABLE itab_nota_c

           FOR ALL ENTRIES IN itab_zycit373

           WHERE a~docnum = itab_zycit373-docnum

            AND bukrs EQ /pws/zycie258-bukrs

             AND b~itmnum <= itab_zycit373-itmnum.

    SELECT * FROM mara INTO TABLE itab_mara

        FOR ALL ENTRIES IN itab_zycit373

        WHERE matnr EQ itab_zycit373-matnr.

  ENDIF.

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

  v_pct = 55.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-299.

  CLEAR: v_count .

* << Fim da inclusão

  LOOP AT itab_zycit373.

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

    IF v_count EQ 100.

* << Fim da inclusão

      v_pct = 55.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

        EXPORTING

          percentage = v_pct

          text       = text-299.

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

      CLEAR: v_count .

    ENDIF.

    ADD 1 TO v_count.

* << Fim da inclusão

    CLEAR: itab_zycit371, itab_nota_c, itab_mara.

    READ TABLE itab_zycit371 WITH KEY nrseqd = itab_zycit373-nrseq.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

    READ TABLE itab_nota_c WITH KEY docnum = itab_zycit373-docnum

                                    itmnum = itab_zycit373-itmnum.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

...

 

...

  v_advcof  = ( itab_zycit100-advalcofins / 100 ).

  v_xb = ( 1 - v_advpis - v_advcof - v_advicms ) .

  v_xa =  1 + v_advicms *  ( v_advii + v_advipi * ( 1 + v_advii ) ) .

  v_fatx = v_xa / v_xb.

  v_faty = v_advicms / v_xb.

  READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit100_sort-matnr.

  CLEAR itab_di_final_aux.

  READ TABLE itab_di_final_aux WITH KEY

              nrseqre  = itab_comp_vinc_final-nrseqre

              nrseq    = itab_comp_vinc_final-nrseq

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

              nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

              codmat   = itab_comp_vinc_final-codmat

              vbeln_va = itab_comp_vinc_final-vbeln_va

              vbeln_vf = itab_comp_vinc_final-vbeln_vf

              posnr    = itab_comp_vinc_final-posnr

              nrdi     = itab_zycit085-nrseqdi

              nrseqemb = itab_zycit100-nrseq

              ebeln    = itab_ekpo-ebeln

              ebelp    = itab_ekpo-ebelp.

  IF sy-subrc               NE 0 AND

     itab_zycit003-qtd_iten >  0.

...

 

...

    IF sy-subrc NE 0.

      CLEAR itab_di_final.

      MOVE:

      /pws/zycie258-nrseqd          TO itab_di_final-nrseqd      ,

      itab_zycit100_sort-matnr      TO itab_di_final-codcomp     ,

      itab_zycit100_sort-grupo      TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

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

      itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

* << Fim da inclusão

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit085-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit085-nrdi            TO itab_di_final-reg_di      ,

      itab_zycit085-dtreg           TO itab_di_final-dtdi        ,

      itab_zycit100-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit100-adicao          TO itab_di_final-adicao      ,

      itab_ekpo-ebeln               TO itab_di_final-ebeln       ,

      itab_ekpo-ebelp               TO itab_di_final-ebelp       ,

...

 

...

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-i_vlicms.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ELSE.

          IF itab_comp_vinc_final-qtd_stotal <

...

 

...

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-i_vlicms.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo .

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ENDIF.

      ENDIF.

...

 

...

      PERFORM retorna_decimais USING itab_zycit085-waersfob

                          CHANGING itab_di_final-netpr.

      APPEND itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final WHERE

         ( nrseqre  NE itab_det_exp-nrseqre      OR

           vbeln_va NE itab_det_exp-vbeln_va     OR

           vbeln_vf NE itab_det_exp-vbeln_vf     OR

           posnr    NE itab_det_exp-posnr        OR

           nrseq    NE itab_det_exp-nrseq        OR

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

           nrseqc   NE itab_det_exp-nrseqc       OR

* << Fim da inclusão

           codmat   NE itab_det_exp-codmat )    AND

          nrdi      EQ wa_itab_di_final-nrdi    AND

          ebeln     EQ wa_itab_di_final-ebeln   AND

          ebelp     EQ wa_itab_di_final-ebelp   AND

          nrseqemb  EQ wa_itab_di_final-nrseqemb .

          itab_di_final-sdo_qtd  =

              itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

          MODIFY itab_di_final.

        ENDLOOP.

      ENDIF.

    ELSE.

      CLEAR itab_di_final.

      MOVE:

      /pws/zycie258-nrseqd           TO itab_di_final-nrseqd     ,

      itab_zycit100_sort-matnr      TO itab_di_final-codcomp     ,

      itab_zycit100_sort-grupo      TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

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

      itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

* << Fim da inclusão

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit085-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit085-nrdi            TO itab_di_final-reg_di      ,

      itab_zycit085-dtreg           TO itab_di_final-dtdi        ,

      itab_zycit100-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit100-adicao          TO itab_di_final-adicao      ,

      itab_ekpo-ebeln               TO itab_di_final-ebeln       ,

      itab_ekpo-ebelp               TO itab_di_final-ebelp       ,

...

 

...

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-i_vlicms.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ELSE.

          IF itab_comp_vinc_final-qtd_stotal <

...

 

...

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-i_vlicms.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ENDIF.

      ENDIF.

...

 

...

      PERFORM retorna_decimais USING itab_zycit085-waersfob

                          CHANGING itab_di_final-netpr.

      APPEND itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final WHERE

             ( nrseqre  NE itab_det_exp-nrseqre      OR

               vbeln_va NE itab_det_exp-vbeln_va     OR

               vbeln_vf NE itab_det_exp-vbeln_vf     OR

               posnr    NE itab_det_exp-posnr        OR

               nrseq    NE itab_det_exp-nrseq        OR

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

               nrseqc   NE itab_det_exp-nrseqc       OR

* << Fim da inclusão

               codmat   NE itab_det_exp-codmat )     AND

               nrdi     EQ wa_itab_di_final-nrdi     AND

               ebeln    EQ wa_itab_di_final-ebeln    AND

               ebelp    EQ wa_itab_di_final-ebelp    AND

               nrseqemb EQ wa_itab_di_final-nrseqemb .

          itab_di_final-sdo_qtd  =

              itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

          MODIFY itab_di_final.

        ENDLOOP.

      ENDIF.

...

 

...

  MOVE: itab_zycit279-meins        TO itab_di_final-meins       ,

        itab_zycit279-menge        TO itab_di_final-qtd_di      .

  IF itab_di_final-qtd_di IS INITIAL.

    EXIT.

  ENDIF.

  READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit279-matnr.

  CLEAR itab_di_final_aux.

  READ TABLE itab_di_final_aux WITH KEY

              nrseqre  = itab_comp_vinc_final-nrseqre

              nrseq    = itab_comp_vinc_final-nrseq

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

              nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

              codmat   = itab_comp_vinc_final-codmat

              vbeln_va = itab_comp_vinc_final-vbeln_va

              vbeln_vf = itab_comp_vinc_final-vbeln_vf

              posnr    = itab_comp_vinc_final-posnr

              docnum   = itab_zycit279-docnum

              ebeln    = itab_zycit279-ebeln

              ebelp    = itab_zycit279-ebelp.

  IF sy-subrc               NE 0 AND

     itab_zycit279-menge >  0.

    READ TABLE itab_di_final_aux WITH KEY

...

 

...

    IF sy-subrc NE 0.

      CLEAR itab_di_final.

      MOVE:

      /pws/zycie258-nrseqd               TO itab_di_final-nrseqd ,

      itab_zycit279-matnr           TO itab_di_final-codcomp     ,

      itab_zycit279-grupo           TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

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

      itab_comp_vinc_final-nrseqc    TO itab_di_final-nrseqc     ,

* << Fim da inclusão

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit279-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit279-nrdi            TO itab_di_final-reg_di      ,

      itab_zycit279-dtdi            TO itab_di_final-dtdi        ,

      itab_zycit279-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit279-adicao          TO itab_di_final-adicao      ,

      itab_zycit279-docnum          TO itab_di_final-docnum      ,

      itab_zycit279-ebeln           TO itab_di_final-ebeln       ,

...

 

...

          itab_di_final-vlafrmm =

              itab_di_final-vlafrmm / itab_di_final-i_txmoeda.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ELSE.

          IF itab_comp_vinc_final-qtd_stotal <

...

 

...

          itab_di_final-vlafrmm =

              itab_di_final-vlafrmm / itab_di_final-i_txmoeda.

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ENDIF.

      ENDIF.

...

 

...

      itab_di_final-brgew =

     ( mara-brgew * itab_di_final-qtd_vinc ).

      APPEND itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final WHERE

         ( nrseqre  NE itab_det_exp-nrseqre      OR

           vbeln_va NE itab_det_exp-vbeln_va     OR

           vbeln_vf NE itab_det_exp-vbeln_vf     OR

           posnr    NE itab_det_exp-posnr        OR

           nrseq    NE itab_det_exp-nrseq        OR

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

           nrseqc    NE itab_det_exp-nrseqc        OR

* << Fim da inclusão

           codmat   NE itab_det_exp-codmat )     AND

           docnum   EQ wa_itab_di_final-docnum   AND

           ebeln    EQ wa_itab_di_final-ebeln    AND

           ebelp    EQ wa_itab_di_final-ebelp     .

          itab_di_final-sdo_qtd  =

              itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

          MODIFY itab_di_final.

        ENDLOOP.

      ENDIF.

    ELSE.

      CLEAR itab_di_final.

      MOVE:

      /pws/zycie258-nrseqd          TO itab_di_final-nrseqd     ,

      itab_zycit279-matnr           TO itab_di_final-codcomp     ,

      itab_zycit279-grupo           TO itab_di_final-grupo       ,

      itab_zycit433-desc_g          TO itab_di_final-desc_g      ,

      itab_comp_vinc_final-codmat   TO itab_di_final-codmat      ,

      itab_comp_vinc_final-nrseqre  TO itab_di_final-nrseqre     ,

      itab_comp_vinc_final-nrseq    TO itab_di_final-nrseq       ,

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

      itab_comp_vinc_final-nrseqc    TO itab_di_final-nrseqc       ,

* << Fim da inclusão

      itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va    ,

      itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf    ,

      itab_comp_vinc_final-posnr    TO itab_di_final-posnr       ,

      itab_zycit279-nrseqdi         TO itab_di_final-nrdi        ,

      itab_zycit279-nrdi            TO itab_di_final-reg_di      ,

      itab_zycit279-dtdi            TO itab_di_final-dtdi        ,

      itab_zycit279-nrseq           TO itab_di_final-nrseqemb    ,

      itab_zycit279-adicao          TO itab_di_final-adicao      ,

      itab_zycit279-docnum          TO itab_di_final-docnum      ,

      itab_zycit279-ebeln           TO itab_di_final-ebeln       ,

...

 

...

              itab_di_final-vlafrmm / itab_di_final-i_txmoeda.

          .

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ELSE.

          IF itab_comp_vinc_final-qtd_stotal <

...

 

...

              itab_di_final-vlafrmm / itab_di_final-i_txmoeda.

          .

          itab_di_final-t_benef =

                     itab_di_final-i_vlii + itab_di_final-i_vlipi.

          itab_comp_vinc_final-qtd_stotal =

                                itab_comp_vinc_final-qtd_stotal -

                                           itab_di_final-qtd_vinc.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc_final-nrseqre

                   AND nrseq    = itab_comp_vinc_final-nrseq

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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc_final-codmat

                   AND vbeln_va = itab_comp_vinc_final-vbeln_va

                   AND vbeln_vf = itab_comp_vinc_final-vbeln_vf

                   AND posnr    = itab_comp_vinc_final-posnr

                   AND codcomp  = itab_comp_vinc_final-codcomp

                   AND grupo    = itab_comp_vinc_final-grupo.

          itab_di_final-v_sel = 'X'.

          MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.

        ENDIF.

      ENDIF.

...

 

...

      itab_di_final-brgew =

     ( mara-brgew * itab_di_final-qtd_vinc ).

      APPEND itab_di_final.

      IF NOT wa_itab_di_final IS INITIAL.

        LOOP AT itab_di_final WHERE

         ( nrseqre  NE itab_det_exp-nrseqre      OR

           vbeln_va NE itab_det_exp-vbeln_va     OR

           vbeln_vf NE itab_det_exp-vbeln_vf     OR

           posnr    NE itab_det_exp-posnr        OR

           nrseq    NE itab_det_exp-nrseq        OR

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

           nrseqc   NE itab_det_exp-nrseqc       OR

* << Fim da inclusão

           codmat   NE itab_det_exp-codmat )     AND

           docnum   EQ wa_itab_di_final-docnum   AND

           ebeln    EQ wa_itab_di_final-ebeln    AND

           ebelp    EQ wa_itab_di_final-ebelp     .

          itab_di_final-sdo_qtd  =

              itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.

          MODIFY itab_di_final.

        ENDLOOP.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM monta_nf.

  READ TABLE itab_di_final_aux WITH KEY

              nrseqre  = itab_comp_vinc_final-nrseqre

              nrseq    = itab_comp_vinc_final-nrseq

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

              nrseqc   = itab_comp_vinc_final-nrseqc

* << Fim da inclusão

              codmat   = itab_comp_vinc_final-codmat

              vbeln_va = itab_comp_vinc_final-vbeln_va

              vbeln_vf = itab_comp_vinc_final-vbeln_vf

              posnr    = itab_comp_vinc_final-posnr

              docnum   = itab_j_1bnflin-docnum

              itmnum   = itab_j_1bnflin-itmnum.

  IF sy-subrc EQ 0.

    EXIT.

  ENDIF.

  READ TABLE itab_zycit260 WITH KEY

...

 

...

                            meins EQ itab_j_1bnflin-meins.

      EXIT.

    ENDIF.

    CLEAR wa_di.

    MOVE:

    /pws/zycie258-nrseqd          TO wa_di-nrseqd      ,

    itab_comp_vinc_final-codcomp  TO wa_di-codcomp     ,

    itab_comp_vinc_final-codmat   TO wa_di-codmat      ,

    itab_comp_vinc_final-nrseqre  TO wa_di-nrseqre     ,

    itab_comp_vinc_final-nrseq    TO wa_di-nrseq       ,

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

    itab_comp_vinc_final-nrseqc   TO wa_di-nrseqc      ,

* << Fim da inclusão

    itab_comp_vinc_final-vbeln_va TO wa_di-vbeln_va    ,

    itab_comp_vinc_final-vbeln_vf TO wa_di-vbeln_vf    ,

    itab_comp_vinc_final-posnr    TO wa_di-posnr       ,

    itab_rseg-ebeln               TO wa_di-ebeln       ,

    itab_rseg-ebelp               TO wa_di-ebelp       ,

    itab_j_1bnfdoc-nfnum          TO wa_di-nfnum       ,

    itab_j_1bnfdoc-series         TO wa_di-serie       ,

    itab_j_1bnfdoc-docdat         TO wa_di-dtnf        ,

    itab_j_1bnflin-docnum         TO wa_di-docnum      ,

    itab_j_1bnflin-grupo          TO wa_di-grupo       ,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064I01

 

...

          PERFORM valor_converte_imp USING   'BRL'

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di-i_vlicms.

          itab_di-t_benef = itab_di-i_vlii + itab_di-i_vlipi.

          itab_comp_vinc-qtd_stotal =

                           itab_comp_vinc-qtd_stotal - itab_di-qtd_vinc.

          MODIFY itab_comp_vinc TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc-nrseqre

                   AND nrseq    = itab_comp_vinc-nrseq

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

                   AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc-codmat

                   AND vbeln_va = itab_comp_vinc-vbeln_va

                   AND vbeln_vf = itab_comp_vinc-vbeln_vf

                   AND posnr    = itab_comp_vinc-posnr

                   AND codcomp  = itab_comp_vinc-codcomp

                   AND grupo    = itab_comp_vinc-grupo.

          itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc-nrseqre

                   AND nrseq    = itab_comp_vinc-nrseq

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

                   AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc-codmat

                   AND vbeln_va = itab_comp_vinc-vbeln_va

                   AND vbeln_vf = itab_comp_vinc-vbeln_vf

                   AND posnr    = itab_comp_vinc-posnr

                   AND codcomp  = itab_comp_vinc-codcomp

                   AND grupo    = itab_comp_vinc-grupo.

          itab_di-v_sel = v_vsel.

          MODIFY itab_di INDEX tc_di3-current_line.

          LOOP AT itab_di_final WHERE

               ( nrseqre  NE itab_det_exp-nrseqre  OR

                 vbeln_va NE itab_det_exp-vbeln_va OR

                 vbeln_vf NE itab_det_exp-vbeln_vf OR

                 posnr    NE itab_det_exp-posnr    OR

                 nrseq    NE itab_det_exp-nrseq    OR

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

                 nrseqc   NE itab_det_exp-nrseqc   OR

* << Fim da inclusão

                 codmat   NE itab_det_exp-codmat ) AND

                 nrdi     EQ itab_di-nrdi          AND

                 ebeln    EQ itab_di-ebeln         AND

                 ebelp    EQ itab_di-ebelp         AND

                 nrseqemb EQ itab_di-nrseqemb .

            itab_di_final-sdo_qtd  =

                             itab_di_final-sdo_qtd - itab_di-qtd_vinc.

            MODIFY itab_di_final.

          ENDLOOP.

        ELSE.

...

 

...

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di-i_vlicms.

          itab_di-t_benef =

                   itab_di-i_vlii + itab_di-i_vlipi.

          itab_comp_vinc-qtd_stotal =

                           itab_comp_vinc-qtd_stotal - itab_di-qtd_vinc.

          MODIFY itab_comp_vinc TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc-nrseqre

                   AND nrseq    = itab_comp_vinc-nrseq

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

                   AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc-codmat

                   AND vbeln_va = itab_comp_vinc-vbeln_va

                   AND vbeln_vf = itab_comp_vinc-vbeln_vf

                   AND posnr    = itab_comp_vinc-posnr

                   AND codcomp  = itab_comp_vinc-codcomp

                   AND grupo    = itab_comp_vinc-grupo.

          itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.

          MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

                 WHERE nrseqre  = itab_comp_vinc-nrseqre

                   AND nrseq    = itab_comp_vinc-nrseq

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

                   AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                   AND codmat   = itab_comp_vinc-codmat

                   AND vbeln_va = itab_comp_vinc-vbeln_va

                   AND vbeln_vf = itab_comp_vinc-vbeln_vf

                   AND posnr    = itab_comp_vinc-posnr

                   AND codcomp  = itab_comp_vinc-codcomp

                   AND grupo    = itab_comp_vinc-grupo.

          itab_di-v_sel = v_vsel.

          MODIFY itab_di INDEX tc_di3-current_line.

          LOOP AT itab_di_final WHERE

               ( nrseqre  NE itab_det_exp-nrseqre  OR

                 vbeln_va NE itab_det_exp-vbeln_va OR

                 vbeln_vf NE itab_det_exp-vbeln_vf OR

                 posnr    NE itab_det_exp-posnr    OR

                 nrseq    NE itab_det_exp-nrseq    OR

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

                 nrseqc   NE itab_det_exp-nrseqc   OR

* << Fim da inclusão

                 codmat   NE itab_det_exp-codmat ) AND

                 nrdi     EQ itab_di-nrdi          AND

                 ebeln    EQ itab_di-ebeln         AND

                 ebelp    EQ itab_di-ebelp         AND

                 nrseqemb EQ itab_di-nrseqemb .

            itab_di_final-sdo_qtd  =

                             itab_di_final-sdo_qtd - itab_di-qtd_vinc.

            MODIFY itab_di_final.

          ENDLOOP.

        ENDIF.

      ENDIF.

      IF v_vsel         EQ ' '             AND

         NOT itab_di-qtd_vinc IS INITIAL.

        itab_comp_vinc-qtd_stotal =

                           itab_comp_vinc-qtd_stotal + itab_di-qtd_vinc.

        MODIFY itab_comp_vinc TRANSPORTING qtd_stotal

               WHERE nrseqre  = itab_comp_vinc-nrseqre

                 AND nrseq    = itab_comp_vinc-nrseq

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

                 AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                 AND codmat   = itab_comp_vinc-codmat

                 AND vbeln_va = itab_comp_vinc-vbeln_va

                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                 AND posnr    = itab_comp_vinc-posnr

                 AND codcomp  = itab_comp_vinc-codcomp

                 AND grupo    = itab_comp_vinc-grupo.

        itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.

        MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

               WHERE nrseqre  = itab_comp_vinc-nrseqre

                 AND nrseq    = itab_comp_vinc-nrseq

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

                 AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                 AND codmat   = itab_comp_vinc-codmat

                 AND vbeln_va = itab_comp_vinc-vbeln_va

                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                 AND posnr    = itab_comp_vinc-posnr

                 AND codcomp  = itab_comp_vinc-codcomp

                 AND grupo    = itab_comp_vinc-grupo.

        LOOP AT itab_di_final WHERE

             ( nrseqre  NE itab_det_exp-nrseqre  OR

               vbeln_va NE itab_det_exp-vbeln_va OR

               vbeln_vf NE itab_det_exp-vbeln_vf OR

               posnr    NE itab_det_exp-posnr    OR

               nrseq    NE itab_det_exp-nrseq    OR

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

               nrseqc   NE itab_det_exp-nrseqc   OR

* << Fim da inclusão

               codmat   NE itab_det_exp-codmat ) AND

               nrdi     EQ itab_di-nrdi          AND

               ebeln    EQ itab_di-ebeln         AND

               ebelp    EQ itab_di-ebelp         AND

               nrseqemb EQ itab_di-nrseqemb .

          itab_di_final-sdo_qtd  =

                           itab_di_final-sdo_qtd + itab_di-qtd_vinc.

          MODIFY itab_di_final.

        ENDLOOP.

        itab_di-sdo_qtd = itab_di-sdo_qtd + itab_di-qtd_vinc.

...

 

...

        itab_di-t_benef = itab_di-i_vlii + itab_di-i_vlipi.

        itab_di-v_sel = v_vsel.

        MODIFY itab_di INDEX tc_di3-current_line.

      ENDIF.

      LOOP AT itab_di_final WHERE

                nrseqre  = itab_det_exp-nrseqre   AND

                vbeln_va = itab_det_exp-vbeln_va  AND

                vbeln_vf = itab_det_exp-vbeln_vf  AND

                posnr    = itab_det_exp-posnr     AND

                nrseq    = itab_det_exp-nrseq     AND

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

                nrseqc   = itab_det_exp-nrseqc    AND

* << Fim da inclusão

                codmat   = itab_det_exp-codmat    AND

                nrdi     = itab_di-nrdi           AND

                ebeln    = itab_di-ebeln          AND

                ebelp    = itab_di-ebelp          AND

                nrseqemb = itab_di-nrseqemb.

        itab_di_final-v_sel       = itab_di-v_sel  .

        itab_di_final-sdo_qtd     = itab_di-sdo_qtd .

        itab_di_final-qtd_vinc    = itab_di-qtd_vinc.

        itab_di_final-vlseg_t     = itab_di-vlseg_t.

        itab_di_final-vlfrete_t   = itab_di-vlfrete_t.

...

 

...

        itab_di-v_sel = 'X'.

        MODIFY itab_di INDEX tc_nf3-current_line.

        itab_di_final = itab_di.

        MODIFY itab_di_final TRANSPORTING sdo_qtd v_sel qtd_vinc

                    WHERE docnum EQ itab_di-docnum

                      AND itmnum EQ itab_di-itmnum

                      AND nrseqre  EQ itab_di-nrseqre

                      AND vbeln_va EQ itab_di-vbeln_va

                      AND vbeln_vf EQ itab_di-vbeln_vf

                      AND posnr    EQ itab_di-posnr

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

                      AND nrseqc   EQ itab_di-nrseqc

* << Fim da inclusão

                      AND nrseq    EQ itab_di-nrseq    .

        MODIFY itab_di_final TRANSPORTING sdo_qtd

                    WHERE docnum EQ itab_di-docnum

                      AND itmnum EQ itab_di-itmnum.

        MODIFY itab_comp_vinc TRANSPORTING qtd_stotal

                    WHERE marc_cp = 'X'.

        itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.

        MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

               WHERE nrseqre  = itab_comp_vinc-nrseqre

                 AND nrseq    = itab_comp_vinc-nrseq

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

                 AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

                 AND codmat   = itab_comp_vinc-codmat

                 AND vbeln_va = itab_comp_vinc-vbeln_va

                 AND vbeln_vf = itab_comp_vinc-vbeln_vf

                 AND posnr    = itab_comp_vinc-posnr

                 AND codcomp  = itab_comp_vinc-codcomp.

      ENDIF.

    ENDIF.

  ELSE.

    IF itab_di-v_sel EQ 'X'.

      itab_di-sdo_qtd = itab_di-sdo_qtd + itab_di-qtd_vinc.

...

 

...

      CLEAR itab_di-v_sel.

      MODIFY itab_di INDEX tc_nf3-current_line.

      itab_di_final = itab_di.

      MODIFY itab_di_final TRANSPORTING sdo_qtd v_sel qtd_vinc

                  WHERE docnum EQ itab_di-docnum

                    AND itmnum EQ itab_di-itmnum

                    AND nrseqre  EQ itab_di-nrseqre

                    AND vbeln_va EQ itab_di-vbeln_va

                    AND vbeln_vf EQ itab_di-vbeln_vf

                    AND posnr    EQ itab_di-posnr

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

                    AND nrseqc   EQ itab_di-nrseqc

* << Fim da inclusão

                    AND nrseq    EQ itab_di-nrseq    .

      MODIFY itab_di_final TRANSPORTING sdo_qtd

                  WHERE docnum EQ itab_di-docnum

                    AND itmnum EQ itab_di-itmnum.

      MODIFY itab_comp_vinc TRANSPORTING qtd_stotal

                  WHERE marc_cp = 'X'.

      itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.

      MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal

             WHERE nrseqre  = itab_comp_vinc-nrseqre

               AND nrseq    = itab_comp_vinc-nrseq

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

               AND nrseqc   = itab_comp_vinc-nrseqc

* << Fim da inclusão

               AND codmat   = itab_comp_vinc-codmat

               AND vbeln_va = itab_comp_vinc-vbeln_va

               AND vbeln_vf = itab_comp_vinc-vbeln_vf

               AND posnr    = itab_comp_vinc-posnr

               AND codcomp  = itab_comp_vinc-codcomp.

    ELSE.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE user_command_0317 INPUT.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064O01

 

...

  /pws/zycie260c-qtd_vinc = itab_di-qtd_vinc.

  /pws/zycie260c-lote     = itab_di-lote.

  v_vsel             = itab_di-v_sel   .

ENDMODULE.

MODULE trata_screen_0304 OUTPUT.

  DATA: v_ex_vinc .

  CLEAR: v_vtc, v_ex_vinc.

  v_execloop = 'N'.

  LOOP AT itab_comp_vinc_final WHERE nrseqre  = itab_det_exp-nrseqre

                                 AND nrseq    = itab_det_exp-nrseq

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

                                 AND nrseqc    = itab_det_exp-nrseqc

* << Fim da inclusão

                                 AND vbeln_va = itab_det_exp-vbeln_va

                                 AND vbeln_vf = itab_det_exp-vbeln_vf

                                 AND posnr    = itab_det_exp-posnr

                                 AND codmat   = itab_det_exp-codmat.

    v_execloop = 'S'.

    IF itab_comp_vinc_final-qtd_stotal > 0 AND

     itab_comp_vinc_final-qtd_stotal < itab_comp_vinc_final-qtd_total.

      v_vtc = 'P'.

      EXIT.

    ELSEIF itab_comp_vinc_final-qtd_stotal > 0.

...

 

...

    v_vtc = 'N'.

  ENDIF.

  IF v_ex_vinc = 'X' AND v_vtc = 'N'.

    v_vtc = 'P'.

  ENDIF.

  IF v_vtc EQ 'S'.

    MOVE 'X' TO itab_det_exp-vinc_tot.

    MODIFY itab_det_exp TRANSPORTING vinc_tot WHERE

                                      nrseqre  = itab_det_exp-nrseqre

                                  AND nrseq    = itab_det_exp-nrseq

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

                                  AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                  AND vbeln_va = itab_det_exp-vbeln_va

                                  AND vbeln_vf = itab_det_exp-vbeln_vf

                                  AND posnr    = itab_det_exp-posnr

                                  AND codmat   = itab_det_exp-codmat.

    READ TABLE itab_det_exp_final WITH KEY

                                      nrseqre  = itab_det_exp-nrseqre

                                      nrseq    = itab_det_exp-nrseq

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

                                      nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                      vbeln_va = itab_det_exp-vbeln_va

                                      vbeln_vf = itab_det_exp-vbeln_vf

                                      posnr    = itab_det_exp-posnr

                                      codmat   = itab_det_exp-codmat.

    IF sy-subrc EQ 0.

      MOVE 'X' TO itab_det_exp_final-vinc_tot.

      MODIFY itab_det_exp_final TRANSPORTING vinc_tot WHERE

                                     nrseqre  = itab_det_exp-nrseqre

                                 AND nrseq    = itab_det_exp-nrseq

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

                                 AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                 AND vbeln_va = itab_det_exp-vbeln_va

                                 AND vbeln_vf = itab_det_exp-vbeln_vf

                                 AND posnr    = itab_det_exp-posnr

                                 AND codmat   = itab_det_exp-codmat.

    ENDIF.

  ELSE.

    MOVE ' ' TO itab_det_exp-vinc_tot.

    MODIFY itab_det_exp TRANSPORTING vinc_tot WHERE

                                      nrseqre  = itab_det_exp-nrseqre

                                  AND nrseq    = itab_det_exp-nrseq

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

                                  AND nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                  AND vbeln_va = itab_det_exp-vbeln_va

                                  AND vbeln_vf = itab_det_exp-vbeln_vf

                                  AND posnr    = itab_det_exp-posnr

                                  AND codmat   = itab_det_exp-codmat.

    READ TABLE itab_det_exp_final WITH KEY

                                      nrseqre  = itab_det_exp-nrseqre

                                      nrseq    = itab_det_exp-nrseq

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

                                      nrseqc   = itab_det_exp-nrseqc

* << Fim da inclusão

                                      vbeln_va = itab_det_exp-vbeln_va

                                      vbeln_vf = itab_det_exp-vbeln_vf

                                      posnr    = itab_det_exp-posnr

                                      codmat   = itab_det_exp-codmat.

    IF sy-subrc EQ 0.

      MOVE ' ' TO itab_det_exp_final-vinc_tot.

      MODIFY itab_det_exp_final TRANSPORTING vinc_tot WHERE

                                     nrseqre  = itab_det_exp-nrseqre

                                 AND nrseq    = itab_det_exp-nrseq

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

                                 AND nrseqc    = itab_det_exp-nrseqc

* << Fim da inclusão

                                 AND vbeln_va = itab_det_exp-vbeln_va

                                 AND vbeln_vf = itab_det_exp-vbeln_vf

                                 AND posnr    = itab_det_exp-posnr

                                 AND codmat   = itab_det_exp-codmat.

    ENDIF.

  ENDIF.

  IF NOT itab_det_exp-nrseqc IS INITIAL.

    v_ico_t = '@KY@'.

  ELSEIF NOT itab_det_exp-nrseq IS INITIAL.

    v_ico_t = '@KW@'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064X01

 

...

      v_tiires_0303     LIKE /pws/zycie260d-i_vlii            ,

      v_tipires_0303    LIKE /pws/zycie260d-i_vlipi           ,

      v_tbenef_0303     LIKE /pws/zycie260d-t_benef           ,

      v_errolog3(135)   TYPE c                                ,

      v_tabix           LIKE sy-tabix                         ,

      v_cent_ei         TYPE /pws/zycit260-werks              ,

      v_desc_agr(35)    TYPE c                                ,

      v_ncent(35)       TYPE c                                ,

      v_verif_v         TYPE c,

      v_pct type i   ,

* >> Início da inclusão:

      v_count type i,

* << Fim da inclusão

      v_ico_t           TYPE icon-id                     .

DATA: BEGIN OF itab_cent_ei OCCURS 0.

DATA: werks TYPE /pws/zycit260-werks.

DATA: END OF itab_cent_ei .

DATA: BEGIN OF itab_botoes3 OCCURS 0.

DATA: bname(20) TYPE c        .

DATA: END OF itab_botoes3           .

DATA: BEGIN OF itab_res_imp OCCURS 0,

        codcomp   TYPE /pws/zycie260-codcomp ,

        qtd_di    TYPE /pws/zycie260-qtd_di  ,

...