CE PLUS - Nota 005384

Módulo: DRAWBACK

Funcionalidade: Composição

Data/Hora da Publicação: 05/12/2007 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:16:34

Descrição da Nota: AJUSTE DE PERFORMANCE NA VINCULAÇÃO DAS DI¿S

Sintoma

Ajuste de performance na vinculação das DI¿s

 

 

Solução

Ajuste de performance na vinculação das DI¿s

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

COMPOSIÇÃO ISENÇÃO CONVERSÃO UNIDADES DE MEDIDA

TRATAMENTO DE CASAS DECIMAIS DE MOEDA

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

Informações Complementares

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

Nota Número 05384 Data: 05/12/2007 Hora: 08:31:50

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

 

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

Nota Número              : 05384

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00024

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

Referência às notas relacionadas:

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

 

03173  - 00001 - 6.0    - 00026  - TRATAMENTO DE CASAS DECIMAIS DE MOEDA

03852  - 00002 - 7.0    - 00001  - COMPOSIÇÃO ISENÇÃO CONVERSÃO UNIDADES DE MEDIDA

05130  - 00003 - 7.0    - 00003  - SELEÇÃO DAS COMERCIAIS EXPORTADORAS NA COMPOSIÇÃO DE ISENÇÃO

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

AJUSTE DE PERFORMANCE NA VINCULAÇÃO DAS DI¿S

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

Palavras Chave:

COMPOSIÇÃO - ISENÇÃO - PERFORMANCE

 

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

Objetos da nota:

DYNP /PWS/SAPMZYCI064                        0304

DYNP /PWS/SAPMZYCI064                        0311

REPS /PWS/MZYCI064F01

REPS /PWS/MZYCI064F02

REPS /PWS/MZYCI064F03

REPS /PWS/MZYCI064I01

REPS /PWS/MZYCI064O01

REPS /PWS/MZYCI064TOP

REPS /PWS/MZYCI064TOP2

REPS /PWS/MZYCI064TOP3

REPS /PWS/MZYCI064X01

REPT /PWS/SAPMZYCI064

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI064                        0304

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI064                        0311

 

 

 

 

   Nome

      Ctg.      Linha   Coluna  CmprDf  CmVis   Altura  Format Dict  Modif At.Des.Só At

      Gr1 Gr2 Gr3 Gr4  SPA GPA ID parâm             Cód.F                TCmp   TpoLoopExbLoop

      Outros atributos

 

* >> Início da exclusão:

   /PWS/ZYCIE260D-I_VLII

      I/O        7       27      31      16       1     CURR   X               Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   /PWS/ZYCIE260D-I_VLIPI

      I/O        8       27      31      16       1     CURR   X               Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   /PWS/ZYCIE260D-VLAFRMM

      I/O        9       27      16      16       1     CURR   X     X         Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   /PWS/ZYCIE260D-VLPIS

      I/O       10       27      16      16       1     CURR   X     X         Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   /PWS/ZYCIE260D-VLCOFINS

      I/O       11       27      16      16       1     CURR   X     X         Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   V_VAR_CAMB3

      Texto     15        6      16      16       1     CHAR

 

   V_VAR_CAMB3

      I/O       15       27      16      16       1     CHAR                   Off

      Dest, Alinh.à dir.

   V_VAR_CAMBT3

      Texto     15       48      16      16       1     CHAR

 

   V_VAR_CAMBT3

      I/O       15       69      16      16       1     CHAR                   Off

      Dest, Alinh.à dir.

* >> Fim  da exclusão

 

* >> Início da inclusão:

   V_II

      I/O        7       27      31      16       1     CURR                   Off

      NEX

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   V_IPI

      I/O        8       27      31      16       1     DEC                    Off

      NEX

   V_AFRMM

      I/O        9       27      31      16       1     DEC                    Off

      NEX

   V_PIS

      I/O       10       27      31      16       1     DEC                    Off

      NEX

   V_COFINS

      I/O       11       27      31      16       1     DEC                    Off

      NEX

* >> Fim da inclusão

 

* >> Início itens modificados novos status:

   TT_PIS

      I/O       10       69      16      16       1     CURR                   Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   TT_COFINS

      I/O       11       69      16      16       1     CURR                   Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

   TT_COMP3

      Texto     13        6       5       5       1     CHAR

 

   TT_COMP3

      I/O       13       27      16      16       1     DEC                    Off

      NEX

      Dest, Alinh.à dir.

   TT_GERAL3

      Texto     13       48       5       5       1     CHAR

 

   TT_GERAL3

      I/O       13       69      16      16       1     DEC                    Off

      NEX

      Dest, Alinh.à dir.

   TT_AFRMM

      I/O        9       69      16      16       1     CURR                   Off

      NEX

      Dest, Alinh.à dir.

      Código da moeda=/PWS/ZYCIE260D-WAERSIMP

* >> fim  das modificações:

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F01

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F02

 

...

              OTHERS                = 3.

  ENDIF.

ENDFORM.

FORM carrega_toolbarcontrol2.

  IF btn2 IS INITIAL.

    REFRESH myevent_tab2.

    myevent2-eventid    = cl_gui_toolbar=>m_id_function_selected.

    myevent2-appl_event = 'X'.

    APPEND myevent2 TO myevent_tab2.

    CREATE OBJECT evt_receiver2.

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

    CREATE OBJECT toolbar_container2 EXPORTING

* << Fim da exclusão

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

    CREATE OBJECT toolbar_container2

      EXPORTING

* << Fim da inclusão

                                     container_name = tool_container2.

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

    CREATE OBJECT btn2 EXPORTING

* << Fim da exclusão

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

    CREATE OBJECT btn2

      EXPORTING

* << Fim da inclusão

                             parent = toolbar_container2.

    CALL METHOD btn2->set_registered_events

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

                                      EXPORTING events = myevent_tab2.

* << Fim da exclusão

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

      EXPORTING

        events = myevent_tab2.

* << Fim da inclusão

    SET HANDLER evt_receiver2->on_function_selected FOR btn2.

    IF itab_centros2[] IS INITIAL.

      CLEAR v_icone2.

      PERFORM call_icon USING text-006 CHANGING v_icone2.

    ELSE.

      CLEAR v_icone2.

      PERFORM call_icon USING text-008 CHANGING v_icone2.

    ENDIF.

    CALL METHOD btn2->add_button

         EXPORTING

           fcode       = 'BTN2'

           icon        = v_icone2

           butn_type   = 0

           is_disabled = ''

           text        = ''

           quickinfo   = text-007.

  ELSE.

    IF NOT itab_centros2[] IS INITIAL.

      CLEAR v_icone2.

      PERFORM call_icon USING text-008 CHANGING v_icone2.

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

      CALL METHOD btn2->set_button_info EXPORTING fcode     = 'BTN2'

* << Fim da exclusão

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

      CALL METHOD btn2->set_button_info

        EXPORTING

          fcode     = 'BTN2'

* << Fim da inclusão

                                                  icon      = v_icone2

                                                  quickinfo = text-007.

    ELSE.

      CLEAR v_icone2.

      PERFORM call_icon USING text-006 CHANGING v_icone2.

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

      CALL METHOD btn2->set_button_info EXPORTING fcode     = 'BTN2'

* << Fim da exclusão

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

      CALL METHOD btn2->set_button_info

        EXPORTING

          fcode     = 'BTN2'

* << Fim da inclusão

                                                  icon      = v_icone2

                                                  quickinfo = text-007.

    ENDIF.

  ENDIF.

ENDFORM.

FORM check_button_back2.

  DATA: v_confirm(1) TYPE c.

  PERFORM limpa_mark2.

  IF v_tcode2 EQ '/PWS/ZYCI040_C' OR v_tcode2 EQ '/PWS/ZYCI040_A' OR

     ( sy-tcode NE v_tcode2 AND /pws/zycie244-fechado EQ 'X' ).

...

 

...

        CHECK itab_zycit246_final-nritem  EQ /pws/zycie245c-nritem

          AND itab_zycit246_final-j_1bnbm EQ /pws/zycie245c-j_1bnbm.

        MOVE-CORRESPONDING itab_zycit246_final TO itab_zycit246.

        APPEND itab_zycit246.

      ENDLOOP.

    ENDIF.

  ENDIF.

ENDFORM.

FORM carrega_tree_edit2.

  IF container2 IS INITIAL.

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

    CREATE OBJECT container2 EXPORTING container_name = 'ADITIVO1'.

    CREATE OBJECT splitter2  EXPORTING parent         = container2

                                       orientation    = 1.

* << Fim da exclusão

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

    CREATE OBJECT container2

      EXPORTING

        container_name = 'ADITIVO1'.

    CREATE OBJECT splitter2

      EXPORTING

        parent      = container2

        orientation = 1.

* << Fim da inclusão

    left2  = splitter2->top_left_container.

    right2 = splitter2->bottom_right_container.

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

    CREATE OBJECT editor2 EXPORTING

* << Fim da exclusão

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

    CREATE OBJECT editor2

    EXPORTING

* << Fim da inclusão

          parent            = right2

        wordwrap_mode     = cl_gui_textedit=>wordwrap_at_fixed_position

          wordwrap_position = 72

          max_number_chars  = 100000.

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

    CALL METHOD editor2->set_readonly_mode EXPORTING readonly_mode = 1.

* << Fim da exclusão

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

    CALL METHOD editor2->set_readonly_mode

      EXPORTING

        readonly_mode = 1.

* << Fim da inclusão

    event2-eventid    = cl_gui_simple_tree=>eventid_selection_changed.

    event2-appl_event = ' '.

    APPEND event2 TO events2.

    CREATE OBJECT tree2

      EXPORTING parent = left2

        node_selection_mode = cl_gui_simple_tree=>node_sel_mode_single.

    PERFORM fill_tree2.

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

    CALL METHOD tree2->set_registered_events EXPORTING events = events2.

* << Fim da exclusão

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

    CALL METHOD tree2->set_registered_events

      EXPORTING

        events = events2.

* << Fim da inclusão

    SET HANDLER lcl_event_click2=>select_item FOR tree2.

  ELSE.

    LOOP AT itab_insert_ad.

      READ TABLE node_itab2 INTO node2 WITH KEY

                                    node_key = itab_insert_ad-nraditivo.

      IF sy-subrc NE 0.

        CLEAR node2.

        handle_tree2     = 1.

        node2-node_key   = itab_insert_ad-nraditivo.

        node2-relatkey   = text-062.

        node2-relatship  = cl_gui_simple_tree=>relat_last_child.

        node2-n_image    = '@0O@'.

        node2-text       = itab_insert_ad-tdname+10(58).

        node2-dragdropid = handle_tree2.

        APPEND node2 TO node_itab2.

        CALL METHOD tree2->delete_all_nodes.

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

        CALL METHOD tree2->add_nodes EXPORTING

                                                node_table = node_itab2

* << Fim da exclusão

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

        CALL METHOD tree2->add_nodes

          EXPORTING

            node_table           = node_itab2

* << Fim da inclusão

                                      table_structure_name = 'NODE_STR'.

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

        CALL METHOD tree2->expand_node EXPORTING node_key  = text-062.

* << Fim da exclusão

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

        CALL METHOD tree2->expand_node

          EXPORTING

            node_key = text-062.

* << Fim da inclusão

        CLEAR node2.

        v_undcr2 = node2-node_key = itab_insert_ad-nraditivo.

        CALL METHOD tree2->set_selected_node

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

                                    EXPORTING node_key = node2-node_key.

* << Fim da exclusão

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

          EXPORTING

            node_key = node2-node_key.

* << Fim da inclusão

        REFRESH: src2.

        CLEAR wa_src2.

        wa_src2-line = text-071.

        APPEND wa_src2 TO src2.

        CLEAR wa_src2.

        wa_src2-line = space.

        APPEND wa_src2 TO src2.

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

        CALL METHOD editor2->set_text_as_r3table EXPORTING

* << Fim da exclusão

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

        CALL METHOD editor2->set_text_as_r3table

          EXPORTING

* << Fim da inclusão

                                                         table = src2[].

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

        CALL METHOD editor2->set_readonly_mode EXPORTING

* << Fim da exclusão

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

        CALL METHOD editor2->set_readonly_mode

          EXPORTING

* << Fim da inclusão

                                             readonly_mode = v_status2a.

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

        CALL METHOD editor2->protect_lines EXPORTING from_line    = 1

* << Fim da exclusão

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

        CALL METHOD editor2->protect_lines

          EXPORTING

            from_line    = 1

* << Fim da inclusão

                                                     protect_mode = 1

                                                     to_line      = 1.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM fill_tree2.

  REFRESH: node_itab2.

  CLEAR node2.

  node2-node_key   = text-062.

...

 

...

    handle_tree2     = 1.

    node2-node_key   = itab_insert_ad-nraditivo.

    node2-relatkey   = text-062.

    node2-relatship  = cl_gui_simple_tree=>relat_last_child.

    node2-n_image    = '@0O@'.

    node2-text       = itab_insert_ad-tdname+10(58).

    node2-dragdropid = handle_tree2.

    APPEND node2 TO node_itab2.

  ENDLOOP.

  CALL METHOD tree2->delete_all_nodes.

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

  CALL METHOD tree2->add_nodes EXPORTING        node_table = node_itab2

* << Fim da exclusão

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

  CALL METHOD tree2->add_nodes

    EXPORTING

      node_table           = node_itab2

* << Fim da inclusão

                                      table_structure_name = 'NODE_STR'.

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

  CALL METHOD tree2->expand_node EXPORTING

* << Fim da exclusão

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

  CALL METHOD tree2->expand_node

    EXPORTING

* << Fim da inclusão

                                   node_key = text-062.

  LOOP AT itab_insert_ad.

    CLEAR node2.

    v_undcr2 = node2-node_key = itab_insert_ad-nraditivo.

    CALL METHOD tree2->set_selected_node

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

                                   EXPORTING node_key = node2-node_key.

* << Fim da exclusão

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

      EXPORTING

        node_key = node2-node_key.

* << Fim da inclusão

    REFRESH: src2.

    CLEAR wa_src2.

    wa_src2-line = text-071.

    APPEND wa_src2 TO src2.

    CLEAR wa_src2.

    wa_src2-line = space.

    APPEND wa_src2 TO src2.

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

    CALL METHOD editor2->set_text_as_r3table EXPORTING table = src2[].

    CALL METHOD editor2->set_readonly_mode EXPORTING readonly_mode = 0.

    CALL METHOD editor2->protect_lines EXPORTING from_line    = 1

* << Fim da exclusão

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

    CALL METHOD editor2->set_text_as_r3table

      EXPORTING

        table = src2[].

    CALL METHOD editor2->set_readonly_mode

      EXPORTING

        readonly_mode = 0.

    CALL METHOD editor2->protect_lines

      EXPORTING

        from_line    = 1

* << Fim da inclusão

                                                 protect_mode = 1

                                                 to_line      = 1.

  ENDLOOP.

ENDFORM.

FORM trata_button_ente2.

  DATA: itab_zycit078 LIKE /pws/zycit078 OCCURS 0 WITH HEADER LINE.

  DATA: BEGIN OF itab_data_di OCCURS 0.

  DATA: data LIKE sy-datum.

  DATA: END OF itab_data_di.

  CLEAR v_otheruser.

...

 

...

    FREE tree2.

  ENDIF.

  IF NOT container2 IS INITIAL.

    CALL METHOD container2->free.

    FREE container2.

  ENDIF.

  IF v_tcode2 EQ '/PWS/ZYCI040_A' OR

     v_tcode2 EQ '/PWS/ZYCI040_E'.

    IF NOT gp_inst1 IS INITIAL.

      CALL METHOD gp_inst1->if_graphic_proxy~free

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

                               IMPORTING retval = retval.

* << Fim da exclusão

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

        IMPORTING

          retval = retval.

* << Fim da inclusão

      FREE gp_inst1.

      CLEAR firstcall1.

    ENDIF.

    IF NOT custom_container1 IS INITIAL.

      CALL METHOD custom_container1->free.

      FREE custom_container1.

    ENDIF.

    IF NOT gp_inst2 IS INITIAL.

      CALL METHOD gp_inst2->if_graphic_proxy~free

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

                               IMPORTING retval = retval.

* << Fim da exclusão

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

        IMPORTING

          retval = retval.

* << Fim da inclusão

      FREE gp_inst2.

      CLEAR firstcall2.

    ENDIF.

    IF NOT custom_container2 IS INITIAL.

      CALL METHOD custom_container2->free.

      FREE custom_container2.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_itab_zycit246_final.

...

 

...

        bundle_grid_y   TYPE REF TO cl_cu_grid,

        bundle_values1  TYPE REF TO cl_cu_values,

        bundle_values2  TYPE REF TO cl_cu_values,

        bundle          TYPE REF TO if_customizing,

        v_title1(35)    TYPE c.

  IF /pws/zycie244-tipo NE 'G'.

    MOVE text-067 TO v_title1.

  ELSE.

    MOVE text-176 TO v_title1.

  ENDIF.

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

  CREATE OBJECT bundle_drawing EXPORTING instance_id = 'GFWKA'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

  CREATE OBJECT bundle_drawing

    EXPORTING

      instance_id = 'GFWKA'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bl_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bl_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_drawing->if_customizing~set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_display_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_display_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_drawing->if_customizing~set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_title

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_title

* << Fim da inclusão

              value   = v_title1

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

    IMPORTING retval  = retval.

* << Fim da exclusão

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

    IMPORTING

      retval  = retval.

* << Fim da inclusão

  CALL METHOD gp_inst1->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle = bundle_drawing

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

    IMPORTING retval = retval.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

* << Fim da inclusão

  CALL METHOD gp_inst1->if_graphic_proxy~get_cu_bundle

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

    EXPORTING port        = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port        = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle_type = cl_cu=>co_clsid_drawing_area

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

    IMPORTING bundle      = bundle.

  CREATE OBJECT bundle_display2 EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      bundle      = bundle.

  CREATE OBJECT bundle_display2

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_size

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_size

* << Fim da inclusão

              value   = 12.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle->set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_title_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_title_context

* << Fim da inclusão

              value   = bundle_display2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_size

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_size

* << Fim da inclusão

              value   = 12.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle->set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_legend_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_legend_context

* << Fim da inclusão

              value   = bundle_display2.

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

  CREATE OBJECT bundle_sheet EXPORTING instance_id = 'GFWBAR'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

  CREATE OBJECT bundle_sheet

    EXPORTING

      instance_id = 'GFWBAR'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_visibility

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_visibility

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_sheet->if_customizing~set

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

    EXPORTING attr_id = cl_cu_data_sheet=>co_display_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_data_sheet=>co_display_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD gp_inst1->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle = bundle_sheet

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

    IMPORTING retval = retval.

  CREATE OBJECT bundle_values1 EXPORTING instance_id = 'GFWBARV1'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

  CREATE OBJECT bundle_values1

    EXPORTING

      instance_id = 'GFWBARV1'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 3.

  CALL METHOD bundle_values1->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_curve_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_curve_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_values1->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD gp_inst1->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              key    = text-064

              bundle = bundle_values1

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

    IMPORTING retval = retval.

  CREATE OBJECT bundle_values2 EXPORTING instance_id = 'GFWBARV2'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

  CREATE OBJECT bundle_values2

    EXPORTING

      instance_id = 'GFWBARV2'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 8.

  CALL METHOD bundle_values2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_curve_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_curve_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_values2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD gp_inst1->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              key    = text-065

              bundle = bundle_values2

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

    IMPORTING retval = retval.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

* << Fim da inclusão

ENDFORM.

...

 

...

  DATA: bundle_display  TYPE REF TO cl_cu_display_context,

        bundle_display2 TYPE REF TO cl_cu_display_context,

        bundle_drawing  TYPE REF TO cl_cu_drawing_area,

        bundle_axis_y   TYPE REF TO cl_cu_axis,

        bundle_sheet    TYPE REF TO cl_cu_data_sheet,

        bundle_grid_x   TYPE REF TO cl_cu_grid,

        bundle_grid_y   TYPE REF TO cl_cu_grid,

        bundle_values1  TYPE REF TO cl_cu_values,

        bundle_values2  TYPE REF TO cl_cu_values,

        bundle          TYPE REF TO if_customizing.

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

  CREATE OBJECT bundle_drawing EXPORTING instance_id = 'GFWKA'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

  CREATE OBJECT bundle_drawing

    EXPORTING

      instance_id = 'GFWKA'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bl_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bl_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_drawing->if_customizing~set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_display_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_display_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_drawing->if_customizing~set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_title

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_title

* << Fim da inclusão

              value   = text-070

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

    IMPORTING retval  = retval.

* << Fim da exclusão

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

    IMPORTING

      retval  = retval.

* << Fim da inclusão

  CALL METHOD gp_inst2->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle = bundle_drawing

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

    IMPORTING retval = retval.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

* << Fim da inclusão

  CALL METHOD gp_inst2->if_graphic_proxy~get_cu_bundle

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

    EXPORTING port        = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port        = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle_type = cl_cu=>co_clsid_drawing_area

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

    IMPORTING bundle      = bundle.

  CREATE OBJECT bundle_display2 EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      bundle      = bundle.

  CREATE OBJECT bundle_display2

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_size

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_size

* << Fim da inclusão

              value   = 12.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle->set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_title_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_title_context

* << Fim da inclusão

              value   = bundle_display2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_italic

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_size

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_size

* << Fim da inclusão

              value   = 12.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_tf_clr_plt_id

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 2.

  CALL METHOD bundle_display2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_area_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_area_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD bundle->set

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

    EXPORTING attr_id = cl_cu_drawing_area=>co_legend_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_drawing_area=>co_legend_context

* << Fim da inclusão

              value   = bundle_display2.

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

  CREATE OBJECT bundle_sheet EXPORTING instance_id = 'GFWBAR'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

  CREATE OBJECT bundle_sheet

    EXPORTING

      instance_id = 'GFWBAR'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_visibility

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_visibility

* << Fim da inclusão

              value   = gfw_false.

  CALL METHOD bundle_sheet->if_customizing~set

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

    EXPORTING attr_id = cl_cu_data_sheet=>co_display_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_data_sheet=>co_display_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD gp_inst2->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              bundle = bundle_sheet

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

    IMPORTING retval = retval.

  CREATE OBJECT bundle_values1 EXPORTING instance_id = 'GFWBARV1'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

  CREATE OBJECT bundle_values1

    EXPORTING

      instance_id = 'GFWBARV1'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 3.

  CALL METHOD bundle_values1->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_curve_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_curve_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_values1->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD gp_inst2->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              key    = text-068

              bundle = bundle_values1

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

    IMPORTING retval = retval.

  CREATE OBJECT bundle_values2 EXPORTING instance_id = 'GFWBARV2'.

  CREATE OBJECT bundle_display EXPORTING instance_id = 'dummy'.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

  CREATE OBJECT bundle_values2

    EXPORTING

      instance_id = 'GFWBARV2'.

  CREATE OBJECT bundle_display

    EXPORTING

      instance_id = 'dummy'.

* << Fim da inclusão

  CALL METHOD bundle_display->if_customizing~set

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

    EXPORTING attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_display_context=>co_bg_clr_plt_id

* << Fim da inclusão

              value   = 8.

  CALL METHOD bundle_values2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_curve_context

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_curve_context

* << Fim da inclusão

              value   = bundle_display.

  CALL METHOD bundle_values2->if_customizing~set

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

    EXPORTING attr_id = cl_cu_values=>co_style

* << Fim da exclusão

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

    EXPORTING

      attr_id = cl_cu_values=>co_style

* << Fim da inclusão

              value   = 1.

  CALL METHOD gp_inst2->if_graphic_proxy~add_cu_bundle

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

    EXPORTING port   = if_graphic_proxy=>co_port_chart

* << Fim da exclusão

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

    EXPORTING

      port   = if_graphic_proxy=>co_port_chart

* << Fim da inclusão

              key    = text-069

              bundle = bundle_values2

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

    IMPORTING retval = retval.

* << Fim da exclusão

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

    IMPORTING

      retval = retval.

* << Fim da inclusão

ENDFORM.

...

 

...

    EXIT.

  ENDIF.

  IF wa_zycit244-vcto_vg EQ /pws/zycie244-vcto_vg

      AND wa_zycit244-werks EQ /pws/zycie244-werks

      AND itab_zycit247_save[] EQ itab_zycit247[]

      AND itab_zycit245_save[] EQ itab_zycit245[].

    v_erro2 = 'N'.

    EXIT.

  ENDIF.

  v_aditivo2_ant = v_aditivo2.

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

  CALL METHOD editor2->get_text_as_r3table IMPORTING table = src2[].

* << Fim da exclusão

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

  CALL METHOD editor2->get_text_as_r3table

    IMPORTING

      table = src2[].

* << Fim da inclusão

  READ TABLE src INTO wa_src WITH KEY nraditivo = v_aditivo2.

  IF sy-subrc NE 0.

    LOOP AT src2 INTO wa_src2.

      MOVE: v_aditivo2   TO wa_src-nraditivo,

            wa_src2-line TO wa_src-line     .

      APPEND wa_src TO src.

    ENDLOOP.

  ELSE.

    DELETE src WHERE nraditivo = v_aditivo2.

    LOOP AT src2 INTO wa_src2.

...

 

...

           EXPORTING

                id       = 'ZYCI'

                language = 'P'

                name     = itab_aditivos-tdname

                object   = '/PWS/CIACO'.

      MOVE itab_aditivos-nraditivo TO v_ndtmp.

      SHIFT v_ndtmp LEFT DELETING LEADING '0'.

      LOOP AT node_itab2 INTO node2 WHERE node_key = v_ndtmp.

        DELETE node_itab2.

      ENDLOOP.

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

      CALL METHOD tree2->delete_node EXPORTING node_key = v_ndtmp.

* << Fim da exclusão

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

      CALL METHOD tree2->delete_node

        EXPORTING

          node_key = v_ndtmp.

* << Fim da inclusão

      LOOP AT src WHERE nraditivo = itab_aditivos-nraditivo.

        DELETE src.

      ENDLOOP.

    ENDLOOP.

    COMMIT WORK.

    /pws/zycie244-aditivo = 0.

    CLEAR src2. REFRESH src2.

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

    CALL METHOD editor2->set_text_as_r3table EXPORTING table = src2[].

    CALL METHOD editor2->set_readonly_mode EXPORTING readonly_mode = 1.

* << Fim da exclusão

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

    CALL METHOD editor2->set_text_as_r3table

      EXPORTING

        table = src2[].

    CALL METHOD editor2->set_readonly_mode

      EXPORTING

        readonly_mode = 1.

* << Fim da inclusão

    CLEAR: itab_aditivos, itab_insert_ad.

    REFRESH: itab_aditivos, itab_insert_ad.

  ENDIF.

ENDFORM.

FORM button_modalid2.

  IF /pws/zycie244-modalidade EQ 'S'.

    CLEAR /pws/zycie244-nrcompos.

  ELSEIF /pws/zycie244-modalidade EQ 'I'.

    CLEAR /pws/zycie244-nrforecast.

  ELSEIF /pws/zycie244-modalidade EQ 'R'.

...

 

...

            OTHERS               = 8.

ENDFORM.

FORM trata_button_situac2.

  IF v_tcode2 EQ '/PWS/ZYCI040_A' AND v_numatoinf EQ 'S'.

    IF /pws/zycie244-status NE 'D' AND /pws/zycie244-aditivo EQ 1.

      MOVE /pws/zycie244-aditivo TO v_ndtmp.

      SHIFT v_ndtmp LEFT DELETING LEADING '0'.

      LOOP AT node_itab2 INTO node2 WHERE node_key = v_ndtmp.

        DELETE node_itab2.

      ENDLOOP.

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

      CALL METHOD tree2->delete_node EXPORTING node_key = v_ndtmp.

* << Fim da exclusão

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

      CALL METHOD tree2->delete_node

        EXPORTING

          node_key = v_ndtmp.

* << Fim da inclusão

      /pws/zycie244-aditivo = 0.

      CLEAR src2. REFRESH src2.

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

      CALL METHOD editor2->set_text_as_r3table EXPORTING table = src2[].

     CALL METHOD editor2->set_readonly_mode EXPORTING readonly_mode = 1.

* << Fim da exclusão

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

      CALL METHOD editor2->set_text_as_r3table

        EXPORTING

          table = src2[].

      CALL METHOD editor2->set_readonly_mode

        EXPORTING

          readonly_mode = 1.

* << Fim da inclusão

      CLEAR: itab_aditivos, itab_insert_ad.

      REFRESH: itab_aditivos, itab_insert_ad.

    ENDIF.

  ENDIF.

ENDFORM.

FORM refresh_balance_components2 CHANGING p_erro2.

  DATA: v_sdoqtde LIKE /pws/zycie245-qtd_tot,

        v_sdovl   LIKE /pws/zycie245-netpr_t.

  LOOP AT itab_zycit245.

    v_index = sy-tabix.

...

 

...

  ENDIF.

ENDFORM.

FORM converter_moeda_exp USING p_devlme

                           p_deme

                           p_parame

                           p_data

                  CHANGING p_paravlme.

  DATA: v_ctmoeda LIKE tcurr-kurst VALUE 'G',

        v_devlme   LIKE bsak-wrbtr,

        v_paravlme LIKE bsak-wrbtr.

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

  DATA: v_txc LIKE  tcurr-ukurs,

        v_defator LIKE  tcurr-ffact,

        v_parafator LIKE  tcurr-tfact,

        v_txc2 LIKE  tcurr-ukurs,

        v_defator2 LIKE  tcurr-ffact,

        v_parafator2 LIKE  tcurr-tfact.

  IF  p_deme EQ p_parame.

    p_paravlme = p_devlme.

  ELSE.

* << Fim da inclusão

  v_devlme = p_devlme .

  IF p_devlme NE 0.

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

      IF /pws/zycbt007 IS INITIAL.

        SELECT SINGLE * FROM /pws/zycbt007

          WHERE bukrs EQ /pws/zycie258-bukrs.

      ENDIF.

* << Fim da inclusão

    CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

         EXPORTING

              i_montante                 = v_devlme

              i_demoeda                  = p_deme

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

              i_paramoeda                = p_parame

* << Fim da exclusão

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

          i_paramoeda                = /pws/zycbt007-waersb

          i_ctmoeda                  = v_ctmoeda

          i_dtbase                   = p_data

        IMPORTING

          e_montante                 = v_paravlme

          e_txc                      = v_txc

          e_defator                  = v_defator

          e_parafator                = v_parafator

        EXCEPTIONS

          i_demoeda_nao_encontrado   = 1

          i_paramoeda_nao_encontrado = 2

          fator_nao_encontrado       = 3

          i_ctmoeda_nao_encontrado   = 4

          i_dtbase_nao_encontrada    = 5

          taxa_nao_encontrada        = 6

          i_montante_nao_encontrado  = 7.

      CALL FUNCTION '/PWS/ZYCB_MONTANTE_CONVERTE'

        EXPORTING

          i_montante                 = v_devlme

          i_demoeda                  = p_parame

          i_paramoeda                = /pws/zycbt007-waersb

* << Fim da inclusão

              i_ctmoeda                  = v_ctmoeda

              i_dtbase                   = p_data

         IMPORTING

              e_montante                 = v_paravlme

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

          e_txc                      = v_txc2

          e_defator                  = v_defator2

          e_parafator                = v_parafator2

* << Fim da inclusão

         EXCEPTIONS

              i_demoeda_nao_encontrado   = 1

              i_paramoeda_nao_encontrado = 2

              fator_nao_encontrado       = 3

              i_ctmoeda_nao_encontrado   = 4

              i_dtbase_nao_encontrada    = 5

              taxa_nao_encontrada        = 6

              i_montante_nao_encontrado  = 7.

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

    p_paravlme = v_paravlme.

* << Fim da exclusão

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

      p_paravlme =

                  ( ( ( v_txc * v_defator ) / v_parafator ) *

                   v_devlme ) /  ( ( v_txc2 * v_defator2 ) /

                   v_parafator2 ) .

* << Fim da inclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM fill_itab_zycit247_inter.

  CHECK NOT /pws/zycie247-mat_int IS INITIAL.

  SELECT SINGLE * FROM /pws/zycit368

      WHERE nrseq EQ /pws/zycie247-mat_int

        AND kunnr EQ /pws/zycie244-kunnr.

...

 

...

          wa_src2-line = v_mensagem.

          APPEND wa_src2 TO src2.

          wa_src2-line = text-229.

          APPEND wa_src2 TO src2.

        ENDLOOP.

      ENDIF.

    ENDIF.

    LOOP AT node_itab2 INTO node2 .

    ENDLOOP.

    v_node2 = node2-node_key.

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

    CALL METHOD tree2->set_selected_node EXPORTING node_key = v_node2.

* << Fim da exclusão

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

    CALL METHOD tree2->set_selected_node

      EXPORTING

        node_key = v_node2.

* << Fim da inclusão

    DELETE src WHERE nraditivo EQ v_node2.

    READ TABLE itab_insert_ad INTO it_insert_ad WITH KEY

                                         nraditivo = node2-node_key.

    IF sy-subrc EQ 0.

      MOVE it_insert_ad-nraditivo TO v_aditivo2.

      CLEAR: wa_src2.

      APPEND wa_src2 TO src2.

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

      CALL METHOD editor2->set_text_as_r3table EXPORTING

* << Fim da exclusão

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

      CALL METHOD editor2->set_text_as_r3table

        EXPORTING

* << Fim da inclusão

                                                     table = src2[].

      IF v_aditivo2 EQ /pws/zycie244-aditivo.

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

        CALL METHOD editor2->set_readonly_mode EXPORTING

* << Fim da exclusão

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

        CALL METHOD editor2->set_readonly_mode

          EXPORTING

* << Fim da inclusão

                                         readonly_mode = v_status2a.

      ELSE.

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

        CALL METHOD editor2->set_readonly_mode EXPORTING

* << Fim da exclusão

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

        CALL METHOD editor2->set_readonly_mode

          EXPORTING

* << Fim da inclusão

                                                  readonly_mode = 1.

      ENDIF.

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

      CALL METHOD editor2->protect_lines EXPORTING from_line    = 1

* << Fim da exclusão

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

      CALL METHOD editor2->protect_lines

        EXPORTING

          from_line    = 1

* << Fim da inclusão

                                                   protect_mode = 1

                                                   to_line      = 1.

    ENDIF.

  ENDIF.

ENDFORM.

FORM preenche_alte USING    p_campo

                            p_item

                            p_de

                            p_para

                            p_pasta.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064F03

 

...

        IF NOT itab_zycit372[] IS INITIAL.

          SELECT * FROM /pws/zycit281 INTO TABLE itab_zycit281

           FOR ALL ENTRIES IN itab_zycit372

           WHERE matnr EQ itab_zycit372-matnr

             AND werks EQ /pws/zycie258-werks.

        ENDIF.

        REFRESH: itab_det_exp_final, itab_det_exp.

        LOOP AT itab_zycit371.

          LOOP AT itab_zycit372 WHERE nrseq EQ itab_zycit371-nrseqd.

            CLEAR itab_zycit281.

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

         READ TABLE itab_zycit281 WITH KEY matnr = itab_zycit372-matnr .

* << Fim da exclusão

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

            READ TABLE itab_zycit281 WITH KEY matnr =

itab_zycit372-matnr .

* << Fim da inclusão

            IF sy-subrc NE 0.

              MESSAGE i015 WITH text-181 itab_zycit372-matnr

                                text-182 /pws/zycie258-werks.

              CLEAR: itab_det_exp, itab_det_exp_final.

              REFRESH: itab_det_exp, itab_det_exp_final.

              EXIT.

            ENDIF.

            LOOP AT itab_zycit373 WHERE matnr EQ itab_zycit372-matnr

                                    AND nrseq EQ itab_zycit372-nrseq.

              CLEAR itab_det_exp_final.

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

          READ TABLE itab_zycit281 WITH KEY matnr = itab_zycit373-matnr.

* << Fim da exclusão

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

              READ TABLE itab_zycit281 WITH KEY matnr =

itab_zycit373-matnr.

* << Fim da inclusão

              MOVE:

                /pws/zycie258-nrseqd     TO itab_det_exp_final-nrseqd  ,

                /pws/zycie258-werks      TO itab_det_exp_final-werks   ,

                itab_zycit281-stlnr      TO itab_det_exp_final-stlnr   ,

                itab_zycit281-stlal      TO itab_det_exp_final-stlal   ,

                itab_zycit281-stlan      TO itab_det_exp_final-stlan   ,

                itab_zycit373-matnr      TO itab_det_exp_final-codmat  ,

                itab_zycit373-doc_ven    TO itab_det_exp_final-vbeln_va,

                itab_zycit373-doc_fat    TO itab_det_exp_final-vbeln_vf,

                itab_zycit373-it_docven  TO itab_det_exp_final-posnr   ,

...

 

...

              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 exclusão: FORM SELECIONAR_EXPORTACOES3

        IF v_count EQ 100.

* << Fim da exclusão

          v_pct = 30.

          CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

               EXPORTING

                    percentage = v_pct

                    text       = text-298.

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

          CLEAR: v_count .

        ENDIF.

        ADD 1 TO v_count.

* << Fim da exclusã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 )

...

 

...

                                        posnr    = itab_re_final-posnr

                                       nrseqre  = itab_re_final-nrseqre.

        IF sy-subrc NE 0.

          CLEAR itab_det_exp_final.

          CLEAR itab_zycet003.

          READ TABLE itab_zycet003 WITH KEY

                                        nrseqre = itab_re_final-nrseqre

                                          nrre    = itab_re_final-nrre.

          IF sy-subrc EQ 0.

            CLEAR itab_zycet001.

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

          READ TABLE itab_zycet001 WITH KEY nrseq = itab_zycet003-nrseq.

* << Fim da exclusão

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

            READ TABLE itab_zycet001 WITH KEY nrseq =

itab_zycet003-nrseq.

* << Fim da inclusão

            IF sy-subrc EQ 0.

              IF itab_zycet001-nrsd IS INITIAL OR

                 itab_re_final-nrre IS INITIAL OR

                 itab_re_final-nrre EQ '00/0000000-000'.

                IF itab_zycet001-nrsd IS INITIAL.

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

               PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

* << Fim da exclusão

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

                  PERFORM preenche_itab_msg_erro USING

itab_re_final-matnr

* << Fim da inclusão

                                                  itab_re_final-nrseqre

                                                     itab_re_final-nrre

                                                                  space

                                                               text-263

                                                                 '@02@'.

                ENDIF.

                IF itab_re_final-nrre IS INITIAL OR

                   itab_re_final-nrre EQ '00/0000000-000'.

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

               PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

* << Fim da exclusão

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

                  PERFORM preenche_itab_msg_erro USING

itab_re_final-matnr

* << Fim da inclusão

                                                  itab_re_final-nrseqre

                                                     itab_re_final-nrre

                                                                  space

                                                               text-265

                                                                 '@6V@'.

                ENDIF.

                CONTINUE.

              ENDIF.

              CLEAR itab_zycet002.

              READ TABLE itab_zycet002 WITH KEY

...

 

...

                MOVE: itab_zycet002-werks TO itab_det_exp_final-werks.

                PERFORM converte_unidades

                      USING itab_det_exp_final-codmat

                            itab_det_exp_final-meins

                            itab_zycit421-meins

                   CHANGING itab_det_exp_final-qtd_iten.

                itab_det_exp_final-meins = itab_zycit421-meins.

              ELSE.

               PERFORM converte_um_base USING itab_det_exp_final-codmat

                                      CHANGING itab_det_exp_final-meins

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

                                            itab_det_exp_final-qtd_iten.

* << Fim da exclusão

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

                                            itab_det_exp_final-qtd_iten

    .

* << Fim da inclusão

                IF itab_det_exp_final-qtd_iten IS INITIAL.

                  itab_mess_un-meins = itab_det_exp_final-meins.

                  itab_mess_un-matnr = itab_det_exp_final-codmat.

                  APPEND itab_mess_un.

                  CONTINUE.

                ENDIF.

              ENDIF.

              CASE /pws/zycit321-dtconv.

                WHEN 1.

                  itab_det_exp_final-dtemb = itab_det_exp_final-dtaverb.

...

 

...

                                                   space

                                                   text-261

                                                   '@AH@'.

              IF itab_re_final-nrre IS INITIAL OR

                 itab_re_final-nrre EQ '00/0000000-000'.

               PERFORM preenche_itab_msg_erro USING itab_re_final-matnr

                                                  itab_re_final-nrseqre

                                                     itab_re_final-nrre

                                                                  space

                                                               text-265

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

                                                                 '@6V@'.

* << Fim da exclusão

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

                                                                 '@6V@'

    .

* << Fim da inclusão

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDLOOP.

      IF NOT itab_re_final[] IS INITIAL.

        SELECT vbeln posnr charg lfimg FROM lips INTO TABLE itab_lote

            FOR ALL ENTRIES IN itab_det_exp_final

            WHERE vbeln EQ itab_det_exp_final-vbeln_vl

              AND posnr EQ itab_det_exp_final-posnl.

...

 

...

          READ TABLE itab_lote WITH KEY

                          vbeln = itab_det_exp_final-vbeln_vl

                          posnr = itab_det_exp_final-posnl.

          itab_det_exp_final-lote = itab_lote-charg.

          MODIFY itab_det_exp_final.

        ENDLOOP.

      ENDIF.

    ENDIF.

    IF NOT itab_msg_erro_aux[] IS INITIAL.

      SORT itab_msg_erro_aux.

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

     DELETE ADJACENT DUPLICATES FROM itab_msg_erro COMPARING ALL FIELDS.

* << Fim da exclusão

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

     DELETE ADJACENT DUPLICATES FROM itab_msg_erro COMPARING ALL FIELDS

    .

* << Fim da inclusão

      LOOP AT itab_msg_erro_aux.

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

      READ TABLE itab_msg_erro WITH KEY matnr = itab_msg_erro_aux-matnr

                                    nrseqre = itab_msg_erro_aux-nrseqre

                                       nrre    = itab_msg_erro_aux-nrre

                                      nrseq   = itab_msg_erro_aux-nrseq.

* << Fim da exclusão

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

        READ TABLE itab_msg_erro WITH KEY matnr =

itab_msg_erro_aux-matnr

                                      nrseqre =

itab_msg_erro_aux-nrseqre

                                         nrre    =

itab_msg_erro_aux-nrre

                                        nrseq   =

itab_msg_erro_aux-nrseq.

* << Fim da inclusão

        v_index = sy-tabix.

        IF sy-subrc <> 0.

          MOVE-CORRESPONDING itab_msg_erro_aux TO itab_msg_erro.

          APPEND itab_msg_erro.

          CLEAR  itab_msg_erro.

        ELSE.

          IF itab_msg_erro-icon2 IS INITIAL.

            MOVE: itab_msg_erro_aux-icon1 TO itab_msg_erro-icon2.

          ELSEIF itab_msg_erro-icon3 IS INITIAL.

            MOVE: itab_msg_erro_aux-icon1 TO itab_msg_erro-icon3.

...

 

...

          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

            itab_comp_vinc_final-nrseqc  EQ /pws/zycie259d-nrseqc   AND

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

* << Fim da exclusão

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr

    .

* << Fim da inclusão

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

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

      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.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_prior_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

    EXIT.

  ENDIF.

  IF v_indicatu5 > 1.

    v_indicatu5 = v_indicatu5 - 1.

...

 

...

          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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

* << Fim da exclusão

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr

    .

* << Fim da inclusão

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

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

      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.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_next_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

    EXIT.

  ENDIF.

  DESCRIBE TABLE itab_det_exp LINES v_ilinhas2.

  IF v_indicatu5 < v_ilinhas2.

...

 

...

          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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

* << Fim da exclusão

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr

    .

* << Fim da inclusão

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

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

      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.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM trata_button_last_0305.

  IF pressed_tab_3c_2 NE 'FS_VINC3'.

    EXIT.

  ENDIF.

  DESCRIBE TABLE itab_det_exp LINES v_ilinhas2.

  v_indicatu5 = v_ilinhas2.

...

 

...

          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

           itab_comp_vinc_final-nrseqc   EQ /pws/zycie259d-nrseqc   AND

           itab_comp_vinc_final-vbeln_va EQ /pws/zycie259d-vbeln_va AND

           itab_comp_vinc_final-vbeln_vf EQ /pws/zycie259d-vbeln_vf AND

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr.

* << Fim da exclusão

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

                  itab_comp_vinc_final-posnr    EQ /pws/zycie259d-posnr

    .

* << Fim da inclusão

      MOVE-CORRESPONDING itab_comp_vinc_final TO itab_comp_vinc.

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

      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.

        ENDIF.

      ENDIF.

* << Fim da inclusão

      APPEND itab_comp_vinc.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM verifica_componentes3.

  DATA: v_qtdbase LIKE itab_stko-bmeng.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI064'

                              'COI002'.

  e_subrc = 0.

...

 

...

  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

                                         nrseqc   = itab_det_exp-nrseqc

                                         codmat   = itab_det_exp-codmat

                                       vbeln_va = itab_det_exp-vbeln_va

                                       vbeln_vf = itab_det_exp-vbeln_vf

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

                                          posnr    = itab_det_exp-posnr.

* << Fim da exclusão

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

                                          posnr    = itab_det_exp-posnr

    .

* << Fim da inclusão

      IF sy-subrc EQ 0.

        CONTINUE.

      ENDIF.

      v_verif_v = 'X'.

      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

           EXPORTING

                capid                 = 'PP01'

                datuv                 = itab_det_exp-dtre

                mktls                 = 'X'

                mehrs                 = 'X'

...

 

...

            COLLECT itab_comp_vinc_final.

          ENDLOOP.

        ENDIF.

      ENDIF.

    ENDLOOP.

    SORT itab_comp_vinc_final BY nrseqre nrseq vbeln_va vbeln_vf posnr

                                                        codmat codcomp.

    IF /pws/zycie258-tipo EQ 'C'.

      PERFORM seleciona_di3.

      PERFORM seleciona_di.

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

      SORT itab_dis BY dtdi.

      PERFORM vincula_di.

* << Fim da inclusão

      PERFORM elimina_insumo_sdi.

    ELSE.

      PERFORM seleciona_nf3.

    ENDIF.

  ELSE.

    IF /pws/zycie258-tipo EQ 'C'.

      PERFORM seleciona_di3_l.

      PERFORM seleciona_di_l.

    ELSE.

      PERFORM seleciona_nf_l.

...

 

...

           itab_zycit042,

           itab_zycit041,

           itab_zycit043,

           itab_insumo_di.

  DATA: BEGIN OF itab_sel_di OCCURS 0 .

  DATA: nrseqdi TYPE /pws/zycit100-nrseqdi,

        nrseq   TYPE /pws/zycit100-nrseq,

        ebeln   TYPE /pws/zycit100-ebeln,

        ebelp   TYPE /pws/zycit100-ebelp.

  DATA: END OF itab_sel_di.

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

  v_pct = 50.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_fixo

            text       = text-297.

* << Fim da inclusão

  LOOP AT itab_comp_vinc_final.

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

      LOOP AT itab_zycit433 WHERE

                            grupo EQ itab_comp_vinc_final-grupo.

        READ TABLE itab_insumo_di WITH KEY

                    matnr = itab_zycit433-matnr.

        IF sy-subrc NE 0.

          itab_insumo_di-matnr = itab_zycit433-matnr.

          APPEND itab_insumo_di.

        ENDIF.

      ENDLOOP.

    ELSE.

      READ TABLE itab_insumo_di WITH KEY

                        matnr = itab_comp_vinc_final-codcomp.

      IF sy-subrc NE 0.

        itab_insumo_di-matnr = itab_comp_vinc_final-codcomp.

        APPEND itab_insumo_di.

      ENDIF.

    ENDIF.

  ENDLOOP.

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

  IF itab_insumo_di[] IS INITIAL.

    EXIT.

  ENDIF.

* << Fim da inclusão

  SORT itab_det_exp BY dtnf dtre.

  READ TABLE itab_det_exp INDEX 1.

  itab_det_exp-dtre = /pws/zycie258-dtpr.

  itab_det_exp-dtre(4) = itab_det_exp-dtre(4) - 2.

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

  v_pct = 0.

* << Fim da exclusão

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

  v_pct = 50.

* << Fim da inclusão

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

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

            percentage = v_pct

* << Fim da exclusão

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

            percentage = v_fixo

* << Fim da inclusão

            text       = text-297.

  IF NOT itab_insumo_di[] IS INITIAL.

...

 

...

      SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244

          FOR ALL ENTRIES IN itab_zycit003_t2

          WHERE nrseqd EQ itab_zycit003_t2-nrseqd

            AND modalidade EQ 'S'.

      LOOP AT itab_zycit244.

        DELETE itab_zycit003 WHERE nrseqd EQ itab_zycit244-nrseqd.

      ENDLOOP.

    ENDIF.

  ENDIF.

  IF NOT itab_zycit003[] IS INITIAL.

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

    v_pct = 0.

* << Fim da exclusão

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

    v_pct = 50.

* << Fim da inclusão

    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

         EXPORTING

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

              percentage = v_pct

* << Fim da exclusão

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

              percentage = v_fixo

* << Fim da inclusão

              text       = text-297.

    SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100

...

 

...

            SELECT * FROM /pws/zycit041 INTO TABLE itab_zycit041

                   FOR ALL ENTRIES IN itab_zycit042

                   WHERE nrseq    EQ itab_zycit042-nrseqnf

                     AND nfglobal EQ itab_zycit042-nfglobal

                     AND cancel   EQ space.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

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

  v_pct = 0.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-297.

  SORT itab_zycit085 BY dtreg nrseqdi.

  SORT itab_zycit100 BY nrseqdi ebeln ebelp.

* << Fim da exclusão

  REFRESH:  itab_ekpo_sort, itab_zycit100_sort.

  LOOP AT itab_zycit085.

    LOOP AT itab_zycit100 WHERE nrseqdi EQ itab_zycit085-nrseqdi.

      READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit100-ebeln

                                    ebelp = itab_zycit100-ebelp.

      READ TABLE itab_ekpo_sort WITH KEY ebeln = itab_ekpo-ebeln

                                         ebelp = itab_ekpo-ebelp.

      IF sy-subrc NE 0.

        itab_ekpo_sort = itab_ekpo.

        APPEND itab_ekpo_sort.

...

 

...

    ENDLOOP.

  ENDLOOP.

  REFRESH: itab_ekpo.

  itab_ekpo[] = itab_ekpo_sort[] .

  REFRESH itab_mess_un.

  SORT itab_det_exp BY dtre nrseqre.

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

  ELSE.

  ENDIF.

  CLEAR: v_count .

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

  LOOP AT itab_det_exp.

    LOOP AT itab_comp_vinc_final WHERE

                                codmat   = itab_comp_vinc_final-codmat

                            AND nrseqre  = itab_comp_vinc_final-nrseqre

                            AND nrseq    = itab_comp_vinc_final-nrseq

                            AND nrseqc   = itab_comp_vinc_final-nrseqc

                           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.

      IF NOT itab_det_exp-dtre IS INITIAL.

        v_dtini = /pws/zycie258-dtpr.

        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'.

* << Fim da exclusão

        LOOP AT itab_zycit100_sort

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

                              WHERE grupo EQ itab_comp_vinc_final-grupo.

          IF v_count EQ 100.

            v_pct = 0.

* << Fim da exclusão

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

                        .

    v_pct = 50.

* << Fim da inclusão

            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

                 EXPORTING

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

                      percentage = v_pct

* << Fim da exclusão

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

              percentage = v_fixo

* << Fim da inclusão

                      text       = text-297.

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

            CLEAR: v_count .

          ENDIF.

          ADD 1 TO v_count.

* << Fim da exclusão

          PERFORM monta_dis3.

        ENDLOOP.

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

      ELSE.

        LOOP AT itab_zycit100_sort

                            WHERE matnr EQ itab_comp_vinc_final-codcomp.

          IF v_count EQ 100.

            v_pct = 0.

            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

                 EXPORTING

                      percentage = v_pct

                      text       = text-297.

            CLEAR: v_count .

          ENDIF.

          ADD 1 TO v_count.

* << Fim da exclusão

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

  .

* << Fim da inclusão

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

          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.

      v_tabix = sy-tabix.

      CLEAR mara.

      SELECT SINGLE ntgew brgew

       FROM mara INTO (mara-ntgew,mara-brgew)

        WHERE matnr = itab_di_final-codmat.

      READ TABLE itab_zycit085 WITH KEY nrseqdi = itab_di_final-nrdi.

      IF sy-subrc = 0.

        PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                           'USD'

                                           itab_zycit085-dttax

                                  CHANGING itab_di_final-vlfob.

      ENDIF.

      MODIFY itab_di_final INDEX v_tabix.

    ENDLOOP.

  ENDLOOP.

  FREE: itab_zycit085,

        itab_zycit100,

        itab_zycit260,

        itab_zycit003,

        itab_ekpo    ,

        itab_zycit003_t2,

        itab_zycit244,

        itab_ekpo_sort,

        itab_zycit100_sort,

        itab_zycit001,

        itab_zycit044,

        itab_zycit042,

        itab_zycit041,

        itab_zycit043,

        itab_insumo_di.

* << Fim da exclusão

ENDFORM.

FORM check_fields_screen_0310.

  LOOP AT tc_di3-cols INTO wa_cols3.

    IF wa_cols3-screen-group1 NE 'NEX'.

      wa_cols3-screen-input = v_status3.

      MODIFY tc_di3-cols FROM wa_cols3.

    ENDIF.

    IF /pws/zycit321-lote NE space.

      IF   wa_cols3-screen-name EQ '/PWS/ZYCIE260C-SDO_QTD'

        OR wa_cols3-screen-name EQ 'V_VSEL'.

...

 

...

  IF v_tcode3 EQ '/PWS/ZYCI040_I'.

    PERFORM verifica_nrseq_gravado3.

  ENDIF.

  PERFORM elimina_nao_vinculados.

  DELETE FROM /pws/zycit434 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit259 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit261 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit260 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  DELETE FROM /pws/zycit250 WHERE nrseqd EQ /pws/zycie258-nrseqd.

  COMMIT WORK.

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

  MODIFY /pws/zycit434 FROM TABLE itab_zycit434.

* << Fim da exclusão

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

  INSERT /pws/zycit434 FROM TABLE itab_zycit434.

* << Fim da inclusão

  MODIFY /pws/zycit258 FROM /pws/zycie258.

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

  MODIFY /pws/zycit259 FROM TABLE itab_det_exp_final.

  MODIFY /pws/zycit261 FROM TABLE itab_comp_vinc_final.

  MODIFY /pws/zycit260 FROM TABLE itab_di_final.

  MODIFY /pws/zycit250 FROM TABLE itab_areas.

* << Fim da exclusão

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

  INSERT /pws/zycit259 FROM TABLE itab_det_exp_final.

  INSERT /pws/zycit261 FROM TABLE itab_comp_vinc_final.

  INSERT /pws/zycit260 FROM TABLE itab_di_final.

  INSERT /pws/zycit250 FROM TABLE itab_areas.

* << Fim da inclusão

  COMMIT WORK.

  IF sy-subrc EQ 0.

    pressed_tab_3c   = 'FS_CABEC3'.

    pressed_tab_3c_2 = 'FS_RESUMO3'.

    pressed_tab_3c_3 = 'FS_RES_IMP3'.

    pressed_tab_3c_4 = 'FS_VCP3'.

    dynpronr3c       = '0301'.

    dynpronr3c_2     = '0303'.

    dynpronr3c_3     = '0307'.

    dynpronr3c_4     = '0309'.

...

 

...

    PERFORM limpa_mark3.

    MESSAGE s015 WITH text-031.

    IF v_tcode3 EQ '/PWS/ZYCI040_I'.

      v_tcode3 = '/PWS/ZYCI040_G'.

      PERFORM lock_record3.

    ENDIF.

  ENDIF.

ENDFORM.

FORM trata_button_aprov3.

  DATA: v_ex_vinc .

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

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI064'

                              'COI004'.

  e_subrc = 0.

  CLEAR itab_zyglt100 .

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

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa)

                       CHANGING e_subrc

                                        IF FOUND     .

      IF e_subrc EQ '8'.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  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

...

 

...

    ENDIF.

  ENDLOOP.

  SELECT maktx UP TO 1 ROWS FROM makt INTO v_descr_0308

         WHERE matnr = /pws/zycie260-codcomp

           AND spras = sy-langu.

  ENDSELECT.

  DESCRIBE TABLE itab_det_imp LINES v_ilinhas2.

  tc_det_imp3-lines = v_ilinhas2.

ENDFORM.

FORM carrega_det_imp3.

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

  DATA: itab_mara TYPE mara OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  CLEAR itab_det_imp_final. REFRESH itab_det_imp_final.

  CLEAR: tt_ii, tt_ipi, tt_icms, tt_benef, tt_afrmm, tt_pis, tt_cofins.

  REFRESH itab_res_imp.

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

  LOOP AT itab_di_final.

    CHECK itab_di_final-v_sel EQ 'X'.

* << Fim da exclusão

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

  LOOP AT itab_di_final WHERE v_sel EQ 'X'.

* << Fim da inclusão

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

    SELECT SINGLE * FROM /pws/zycit085

    INTO /pws/zycit085

     WHERE nrseqdi EQ itab_di_final-nrdi.

* << Fim da exclusão

    MOVE-CORRESPONDING itab_di_final TO itab_det_imp_final.

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

    READ TABLE itab_mara INTO mara

            WITH KEY matnr = itab_di_final-codcomp.

    IF sy-subrc NE 0.

      CLEAR: mara.

* << Fim da inclusão

    SELECT SINGLE * FROM mara

     INTO mara

      WHERE matnr EQ itab_di_final-codcomp.

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

      itab_mara = mara .

      itab_mara-matnr = itab_di_final-codcomp.

      APPEND itab_mara.

    ENDIF.

* << Fim da inclusão

    IF sy-subrc = 0.

      IF itab_det_imp_final-ntgew IS INITIAL.

        itab_det_imp_final-ntgew = mara-ntgew * itab_di_final-qtd_vinc.

      ENDIF.

      itab_det_imp_final-brgew = mara-brgew * itab_di_final-qtd_vinc.

      itab_det_imp_final-gewei = mara-gewei.

    ENDIF.

    tt_ii     = tt_ii     + itab_di_final-i_vlii.

    tt_ipi    = tt_ipi    + itab_di_final-i_vlipi.

    tt_icms   = tt_icms   + itab_di_final-i_vlicms.

...

 

...

      itab_res_imp-codcomp = itab_di_final-codcomp.

    ENDIF.

    COLLECT itab_res_imp.

  ENDLOOP.

  IF v_verif_v EQ 'X'.

    CLEAR: /pws/zycie260d, v_verif_v.

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

      LOOP AT itab_res_imp.

        CLEAR: /pws/zycie260d-i_vlii.

        LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

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

          /pws/zycie260d-i_vlii =

* << Fim da exclusão

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

          /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

* << Fim da inclusão

           itab_det_imp_final-i_vlii + itab_det_imp_final-i_vlipi

            + itab_det_imp_final-i_vlicms + itab_det_imp_final-vlafrmm

            + itab_det_imp_final-vlpis + itab_det_imp_final-vlcofins.

        ENDLOOP.

        IF /pws/zycie260d-i_vlii >= /pws/zycit321-viabilidade.

          itab_di_final-transp = 'X'.

        ELSE.

          CLEAR: itab_di_final-transp.

        ENDIF.

        MODIFY itab_di_final TRANSPORTING transp

                    WHERE grupo EQ itab_res_imp-grupo.

      ENDLOOP.

    ELSE.

      LOOP AT itab_res_imp.

        CLEAR: /pws/zycie260d-i_vlii.

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

       LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

* << Fim da exclusão

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

       LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp

    .

* << Fim da inclusão

          /pws/zycie260d-i_vlii =

           itab_det_imp_final-i_vlii + itab_det_imp_final-i_vlipi

            + itab_det_imp_final-i_vlicms + itab_det_imp_final-vlafrmm

            + itab_det_imp_final-vlpis + itab_det_imp_final-vlcofins.

        ENDLOOP.

        IF /pws/zycie260d-i_vlii >= /pws/zycit321-viabilidade.

          itab_di_final-transp = 'X'.

        ELSE.

          CLEAR: itab_di_final-transp.

        ENDIF.

...

 

...

      ENDLOOP.

    ENDIF.

  ENDIF.

  tt_benef = tt_benef + tt_ii + tt_ipi.

  SORT itab_det_imp_final BY dtdi nrdi ebeln ebelp adicao.

  REFRESH itab_res_imp.

  PERFORM carrega_resumo_importacao3.

ENDFORM.

FORM carrega_resumo_importacao3.

  DATA: v_moeda TYPE c.

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

  DATA: v_count TYPE i.

  DATA: v_pct TYPE p.

  DATA: v_lines TYPE i.

  DATA: v_fixo TYPE i VALUE 0.

  DATA: v_percent(100) .

  DATA: BEGIN OF wa_moeda.

  DATA: moeda TYPE c,

        grupo TYPE /pws/zycit433-grupo,

        matnr TYPE mara-matnr.

  DATA: END OF wa_moeda.

* << Fim da inclusão

  DATA: BEGIN OF itab_det_imp_aux OCCURS 0.

  DATA: nrdi    TYPE /pws/zycit085-nrseqdi,

        codcomp TYPE /pws/zycit245-codcomp,

        ebeln   TYPE /pws/zycit003-ebeln,

        ebelp   TYPE /pws/zycit003-ebelp,

        lote    TYPE /pws/zycit260-lote,

        grupo   TYPE /pws/zycit433-grupo.

  DATA: END OF itab_det_imp_aux.

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

  IF v_verif_v EQ 'X' OR  itab_res_imp[] IS INITIAL.

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

      SORT itab_det_imp_final BY codcomp.

    ELSE.

      SORT itab_det_imp_final BY grupo.

    ENDIF.

* << Fim da inclusão

  CLEAR itab_res_imp. REFRESH itab_res_imp.

  CLEAR itab_det_imp_aux. REFRESH itab_det_imp_aux.

  REFRESH itab_det_imp.

  itab_det_imp[] = itab_det_imp_final[].

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

    v_pct = 0.

    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

         EXPORTING

              percentage = v_fixo

              text       = text-301.

    DESCRIBE TABLE itab_det_imp_final LINES v_lines.

* << Fim da inclusão

  LOOP AT itab_det_imp_final.

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

      IF v_count EQ 100.

        v_pct = ( sy-tabix / v_lines ) * 100.

        IF v_pct < 1.

          v_pct = 1.

        ENDIF.

        CLEAR: v_percent.

        WRITE v_pct TO v_percent LEFT-JUSTIFIED NO-GAP.

        CONCATENATE text-301 '.' v_percent '%'

                      INTO v_percent SEPARATED BY space.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_fixo

                  text       = v_percent.

        CLEAR: v_count.

      ENDIF.

      ADD 1 TO v_count.

* << Fim da inclusão

    CLEAR itab_res_imp.

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

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

      CLEAR: v_moeda.

      LOOP AT itab_det_imp WHERE codcomp EQ itab_det_imp_final-codcomp

                             AND waers   NE itab_det_imp_final-waers.

        v_moeda = 'X'.

* << Fim da exclusão

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

        IF wa_moeda-matnr NE itab_det_imp_final-codcomp.

          CLEAR: wa_moeda-moeda.

          wa_moeda-matnr = itab_det_imp_final-codcomp.

          LOOP AT itab_det_imp WHERE codcomp EQ

itab_det_imp_final-codcomp

                                 AND waers   NE itab_det_imp_final-waers

.

            wa_moeda-moeda = 'X'.

* << Fim da inclusão

        EXIT.

      ENDLOOP.

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

        ENDIF.

* << Fim da inclusão

      READ TABLE itab_det_imp_aux WITH KEY

                                   nrdi  = itab_det_imp_final-nrdi

                                   ebeln = itab_det_imp_final-ebeln

                                   ebelp = itab_det_imp_final-ebelp

                                   lote  = itab_det_imp_final-lote

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

                                   codcomp = itab_det_imp_final-codcomp.

* << Fim da exclusão

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

                                     codcomp =

itab_det_imp_final-codcomp.

* << Fim da inclusão

    ELSE.

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

      CLEAR: v_moeda.

* << Fim da exclusão

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

        IF wa_moeda-grupo NE itab_det_imp_final-grupo.

          CLEAR: wa_moeda-moeda.

          wa_moeda-grupo = itab_det_imp_final-grupo.

* << Fim da inclusão

      LOOP AT itab_det_imp WHERE grupo EQ itab_det_imp_final-grupo

                             AND waers NE  itab_det_imp_final-waers.

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

        v_moeda = 'X'.

* << Fim da exclusão

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

            wa_moeda-moeda = 'X'.

* << Fim da inclusão

        EXIT.

      ENDLOOP.

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

      READ TABLE itab_det_imp_aux WITH KEY

* << Fim da exclusão

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

        ENDIF.

        LOOP AT itab_det_imp_aux WHERE

* << Fim da inclusão

                                  nrdi  = itab_det_imp_final-nrdi

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

                                  ebeln = itab_det_imp_final-ebeln

                                  ebelp = itab_det_imp_final-ebelp

                                  lote  = itab_det_imp_final-lote

                                  grupo = itab_det_imp_final-grupo.

* << Fim da exclusão

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

                                AND ebeln = itab_det_imp_final-ebeln

                                AND ebelp = itab_det_imp_final-ebelp

                                AND lote  = itab_det_imp_final-lote

                                AND grupo = itab_det_imp_final-grupo.

          EXIT.

        ENDLOOP.

* << Fim da inclusão

    ENDIF.

    IF sy-subrc NE 0.

      MOVE: itab_det_imp_final-qtd_di   TO itab_res_imp-qtd_di,

            itab_det_imp_final-codcomp  TO itab_det_imp_aux-codcomp.

      itab_det_imp_aux-ebeln = itab_det_imp_final-ebeln.

      itab_det_imp_aux-ebelp = itab_det_imp_final-ebelp.

      itab_det_imp_aux-lote  = itab_det_imp_final-lote.

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

        CLEAR itab_det_imp_aux-codcomp.

        itab_det_imp_aux-grupo = itab_det_imp_final-grupo.

...

 

...

      APPEND itab_det_imp_aux.

    ENDIF.

    MOVE: itab_det_imp_final-codcomp  TO itab_res_imp-codcomp ,

          itab_det_imp_final-waers    TO itab_res_imp-waers   ,

          itab_det_imp_final-qtd_vinc TO itab_res_imp-qtd_vinc.

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

      CLEAR: itab_res_imp-codcomp .

      itab_res_imp-grupo = itab_det_imp_final-grupo.

      itab_res_imp-desc_g = itab_det_imp_final-desc_g.

    ENDIF.

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

    IF v_moeda EQ 'X'.

* << Fim da exclusão

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

      IF wa_moeda-moeda EQ 'X'.

* << Fim da inclusão

      itab_res_imp-vlfob = itab_res_imp-qtd_vinc *

                           itab_det_imp_final-valor_u.

      itab_res_imp-waers = 'USD'.

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

        itab_res_imp-meins = itab_det_imp_final-meins.

* << Fim da inclusão

    ELSE.

      itab_res_imp-vlfob = itab_res_imp-qtd_vinc *

                           itab_det_imp_final-netpr.

      itab_res_imp-waers = itab_det_imp_final-waers.

...

 

...

            v_dtfim = itab_det_imp_final-dtdi.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

    MOVE: v_dtini TO itab_res_imp-dtpdi,

          v_dtfim TO itab_res_imp-dtudi.

    CLEAR: v_dtini, v_dtfim.

    MODIFY itab_res_imp INDEX v_idxtmp.

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM elimina_nao_vinculados.

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

  DATA: BEGIN OF itab_comp_vinc_aux OCCURS 0.

          INCLUDE STRUCTURE /pws/zycie261.

  DATA: qtd_orig LIKE /pws/zycit245-qtd_tot,

        marc_cp(1)  TYPE c.

  DATA: END OF itab_comp_vinc_aux.

* << Fim da inclusão

  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.

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

  itab_comp_vinc_aux[] = itab_comp_vinc_final[].

  SORT itab_comp_vinc_aux BY nrseqre nrseq nrseqc

          vbeln_va vbeln_vf posnr.

  DELETE ADJACENT DUPLICATES FROM itab_comp_vinc_aux

                           COMPARING nrseqre nrseq nrseqc

                                  vbeln_va vbeln_vf posnr.

* << Fim da inclusão

  LOOP AT itab_det_exp_final.

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

    READ TABLE itab_comp_vinc_final WITH KEY

* << Fim da exclusão

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

    READ TABLE itab_comp_vinc_aux WITH KEY

* << Fim da inclusão

                        nrseqre  = itab_det_exp_final-nrseqre

                        nrseq    = itab_det_exp_final-nrseq

                        nrseqc   = itab_det_exp_final-nrseqc

                        codmat   = itab_det_exp_final-codmat

                        vbeln_va = itab_det_exp_final-vbeln_va

                        vbeln_vf = itab_det_exp_final-vbeln_vf

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

                        posnr    = itab_det_exp_final-posnr.

* << Fim da exclusão

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

                        posnr    = itab_det_exp_final-posnr

                                               BINARY SEARCH.

* << Fim da inclusão

    IF sy-subrc NE 0.

      DELETE itab_det_exp WHERE nrseqre  = itab_det_exp_final-nrseqre

                            AND codmat   = itab_det_exp_final-codmat

                            AND nrseqc   = itab_det_exp_final-nrseqc

                            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.

...

 

...

    MESSAGE s015 WITH text-016.

    EXIT.

  ENDIF.

  READ TABLE itab_res_imp WITH KEY marc_l = 'X'.

  IF sy-subrc NE 0.

    CLEAR: v_indicatu7.

    MESSAGE s015 WITH text-102.

    EXIT.

  ENDIF.

  MOVE: sy-tabix TO v_indicatu7.

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

  CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

* << Fim da exclusão

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

  CLEAR: itab_det_imp, /pws/zycie260d.

* << Fim da inclusão

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

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

    LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

* << Fim da exclusão

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

    LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo

                                   AND v_sel EQ 'X'.

* << Fim da inclusão

      MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

      APPEND itab_det_imp.

...

 

...

      /pws/zycie260d-i_vlicms =

      /pws/zycie260d-i_vlicms + itab_det_imp_final-i_vlicms.

      /pws/zycie260d-vlafrmm =

      /pws/zycie260d-vlafrmm + itab_det_imp_final-vlafrmm.

      /pws/zycie260d-vlpis =

      /pws/zycie260d-vlpis + itab_det_imp_final-vlpis.

      /pws/zycie260d-vlcofins =

      /pws/zycie260d-vlcofins + itab_det_imp_final-vlcofins.

    ENDLOOP.

    CLEAR: v_var_camb3, v_var_cambt3, v_cifimp3, v_fobexp3.

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

    LOOP AT itab_di_final WHERE grupo EQ itab_res_imp-grupo.

* << Fim da exclusão

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

    LOOP AT itab_di_final WHERE grupo EQ itab_res_imp-grupo

                            AND v_sel EQ 'X'.

      .

* << Fim da inclusão

      v_cifimp3 = v_cifimp3 +

            ( itab_di_final-vlfob + itab_di_final-vlfrete_t

                                  + itab_di_final-vlseg_t ).

    ENDLOOP.

  ELSE.

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

    LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.

* << Fim da exclusão

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

    LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp

                                 AND v_sel EQ 'X'.

* << Fim da inclusão

      MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

      APPEND itab_det_imp.

      /pws/zycie260d-i_vlii =

      /pws/zycie260d-i_vlii + itab_det_imp_final-i_vlii.

      /pws/zycie260d-i_vlipi =

      /pws/zycie260d-i_vlipi + itab_det_imp_final-i_vlipi.

      /pws/zycie260d-i_vlicms =

      /pws/zycie260d-i_vlicms + itab_det_imp_final-i_vlicms.

      /pws/zycie260d-vlafrmm =

      /pws/zycie260d-vlafrmm + itab_det_imp_final-vlafrmm.

      /pws/zycie260d-vlpis =

      /pws/zycie260d-vlpis + itab_det_imp_final-vlpis.

      /pws/zycie260d-vlcofins =

      /pws/zycie260d-vlcofins + itab_det_imp_final-vlcofins.

    ENDLOOP.

    CLEAR: v_var_camb3, v_var_cambt3, v_cifimp3, v_fobexp3.

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

    LOOP AT itab_di_final WHERE codcomp EQ itab_res_imp-codcomp.

* << Fim da exclusão

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

    LOOP AT itab_di_final WHERE codcomp EQ itab_res_imp-codcomp

                            AND v_sel EQ 'X'.

* << Fim da inclusão

      v_cifimp3 = v_cifimp3 +

            ( itab_di_final-vlfob + itab_di_final-vlfrete_t

                                  + itab_di_final-vlseg_t ).

    ENDLOOP.

  ENDIF.

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

  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

                             nrseqc    = itab_di_final-nrseqc

                             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

                             nrseqc    = itab_di_final-nrseqc

                             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_det_exp_final-vlfob - itab_det_exp_final-vlcomis ).

  ENDLOOP.

  IF v_fobexp3 > 0.

    v_variac = ( v_cifimp3 / v_fobexp3 ) * 100.

    MOVE v_variac TO v_var_camb3.

    SHIFT v_var_camb3 LEFT DELETING LEADING space.

    CONCATENATE v_var_camb3 '%' INTO v_var_camb3.

  ENDIF.

* << Fim da exclusão

  CLEAR: v_cifimp3, v_fobexp3.

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

  LOOP AT itab_di_final.

    v_cifimp3 = v_cifimp3 +

          ( itab_di_final-vlfob + itab_di_final-vlfrete_t

                                + itab_di_final-vlseg_t ).

  ENDLOOP.

  LOOP AT itab_det_exp_final.

    v_fobexp3 = v_fobexp3 +

            ( itab_det_exp_final-vlfob - itab_det_exp_final-vlcomis ).

  ENDLOOP.

  IF v_fobexp3 > 0.

    v_variac = ( v_cifimp3 / v_fobexp3 ) * 100.

    MOVE v_variac TO v_var_cambt3.

    SHIFT v_var_cambt3 LEFT DELETING LEADING space.

    CONCATENATE v_var_cambt3 '%' INTO v_var_cambt3.

  ENDIF.

* << Fim da exclusão

  /pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +

                           /pws/zycie260d-i_vlipi.

  pressed_tab_3c_3 = ok_code3.

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

    dynpronr3c_3     = '0321'.

    MOVE: itab_res_imp-grupo  TO v_detcomp1,

          itab_res_imp-desc_g TO v_detcomp2.

  ELSE.

    MOVE itab_res_imp-codcomp TO v_detcomp1.

    dynpronr3c_3     = '0311'.

...

 

...

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

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

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

* << Fim da inclusão

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

...

 

...

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

        itab_res_imp-meins     TO /pws/zycie260-meins ,

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

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

* << Fim da inclusão

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

        /pws/zycie260d-i_vlipi =

...

 

...

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc   TO /pws/zycie260-qtd_di ,

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

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

* << Fim da inclusão

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

...

 

...

  LOOP AT itab_res_imp WHERE marc_l = 'X'.

    itab_res_imp-marc_l = ' '.

    MODIFY itab_res_imp.

  ENDLOOP.

  READ TABLE itab_res_imp INDEX v_indicatu7.

  IF sy-subrc EQ 0.

    itab_res_imp-marc_l = 'X'.

    MODIFY itab_res_imp INDEX v_indicatu7.

    MOVE: itab_res_imp-codcomp  TO /pws/zycie260-codcomp,

          itab_res_imp-qtd_vinc  TO /pws/zycie260-qtd_di ,

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

        itab_res_imp-grupo     TO /pws/zycie260-grupo ,

        itab_res_imp-desc_g    TO /pws/zycie260-desc_g ,

* << Fim da inclusão

        itab_res_imp-meins     TO /pws/zycie260-meins ,

        itab_res_imp-waers     TO /pws/zycie260-waers ,

          itab_res_imp-vlfob    TO /pws/zycie260-vlfob_t.

    CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.

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

      LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.

        MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.

        APPEND itab_det_imp.

        /pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +

           itab_det_imp_final-i_vlii.

...

 

...

                               /pws/zycie260d-i_vlipi.

      MOVE itab_res_imp-codcomp TO v_detcomp1.

    ENDIF.

  ENDIF.

ENDFORM.

FORM trata_button_atualiz3.

  PERFORM seleciona_di3.

ENDFORM.

FORM check_fields_screen_0311.

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

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

    SELECT SINGLE maktx FROM makt INTO v_detcomp2

* << Fim da inclusão

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

    SELECT maktx UP TO 1 ROWS FROM makt INTO v_detcomp2

* << Fim da exclusão

           WHERE matnr = v_detcomp1

             AND spras = sy-langu.

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

    ENDSELECT.

* << Fim da exclusão

  ENDIF.

  tt_geral3 = tt_ii + tt_ipi + tt_afrmm

              + tt_pis + tt_cofins.

  tt_comp3 = /pws/zycie260d-i_vlii + /pws/zycie260d-i_vlipi +

              /pws/zycie260d-vlafrmm

              + /pws/zycie260d-vlpis + /pws/zycie260d-vlcofins.

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

  v_ii     = /pws/zycie260d-i_vlii.

  v_ipi    = /pws/zycie260d-i_vlipi.

  v_afrmm  = /pws/zycie260d-vlafrmm.

  v_pis    = /pws/zycie260d-vlpis.

  v_cofins = /pws/zycie260d-vlcofins.

  CLEAR: /pws/zycie260d-waersimp.

* << Fim da inclusão

ENDFORM.

FORM check_button_abort3.

  DATA: v_confirm(1) TYPE c.

  PERFORM limpa_mark3.

  IF v_tcode3 EQ '/PWS/ZYCI040_I' OR v_tcode3 EQ '/PWS/ZYCI040_G'.

    IF wa_zycit258 NE /pws/zycie258.

      CALL FUNCTION 'POPUP_TO_CONFIRM'

           EXPORTING

              titlebar                    = text-039

              text_question               = text-040

...

 

...

    ELSEIF itab_forms-nrseq IS INITIAL AND

           itab_forms-spras IS INITIAL.

      SUBMIT (itab_forms-programa) AND RETURN.

    ENDIF.

  ELSE.

    IF itab_forms-nrseq EQ 'X' AND

       itab_forms-spras EQ 'X'.

      SUBMIT (itab_forms-programa)

          WITH p_nrseqd = /pws/zycie244-nrseqd

          WITH p_spras = /pws/zycee001-spras

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

  VIA SELECTION-SCREEN AND RETURN.

* << Fim da exclusão

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

     VIA SELECTION-SCREEN AND RETURN.

* << Fim da inclusão

    ELSEIF itab_forms-nrseq EQ 'X' AND

           itab_forms-spras IS INITIAL.

      SUBMIT (itab_forms-programa)

           WITH p_nrseq = /pws/zycie244-nrseqd

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

  VIA SELECTION-SCREEN AND RETURN.

* << Fim da exclusão

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

     VIA SELECTION-SCREEN AND RETURN.

* << Fim da inclusão

    ELSEIF itab_forms-nrseq IS INITIAL AND

          itab_forms-spras IS INITIAL.

      SUBMIT (itab_forms-programa)

              VIA SELECTION-SCREEN AND RETURN.

    ENDIF.

  ENDIF.

  FREE MEMORY ID idmemory.

  PERFORM f_executa_func.

ENDFORM.

FORM f_executa_func.

...

 

...

  ENDLOOP.

  REFRESH: itab_comp_vinc_final.

  itab_comp_vinc_final[] = itab_comp_sort3[].

  itab_di_final_aux[] = itab_di_final[].

  LOOP AT itab_comp_vinc_final.

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

      LOOP AT itab_j_1bnflin WHERE grupo EQ itab_comp_vinc_final-grupo.

        PERFORM monta_nf.

      ENDLOOP.

    ELSE.

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

     LOOP AT itab_j_1bnflin WHERE matnr EQ itab_comp_vinc_final-codcomp.

* << Fim da exclusão

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

     LOOP AT itab_j_1bnflin WHERE matnr EQ itab_comp_vinc_final-codcomp

    .

* << Fim da inclusão

        PERFORM monta_nf.

      ENDLOOP.

    ENDIF.

    MODIFY itab_comp_vinc_final.

  ENDLOOP.

  FREE: itab_j_1bnflin,

        itab_j_1bnfdoc,

        itab_insumo_nf,

        itab_sel_doc  ,

        itab_rseg,

...

 

...

                             AND itmnum = itab_di_final-itmnum.

    ELSE.

      itab_det_nf = itab_di_final.

      APPEND itab_det_nf.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM seleciona_di.

  IF /pws/zycie258-tipo NE 'I'.

  ENDIF.

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

  REFRESH: itab_insumo_di,

* << Fim da exclusão

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

  REFRESH:

* << Fim da inclusão

           itab_zycit279,

           itab_zycit244.

  v_pct = 0.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

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

            percentage = v_pct

* << Fim da exclusão

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

            percentage = v_fixo

* << Fim da inclusão

            text       = text-297.

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

  LOOP AT itab_comp_vinc_final.

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

      LOOP AT itab_zycit433 WHERE

                            grupo EQ itab_comp_vinc_final-grupo.

        READ TABLE itab_insumo_di WITH KEY

                    matnr = itab_zycit433-matnr.

        IF sy-subrc NE 0.

          itab_insumo_di-matnr = itab_zycit433-matnr.

          APPEND itab_insumo_di.

        ENDIF.

      ENDLOOP.

    ELSE.

      READ TABLE itab_insumo_di WITH KEY

                        matnr = itab_comp_vinc_final-codcomp.

      IF sy-subrc NE 0.

        itab_insumo_di-matnr = itab_comp_vinc_final-codcomp.

        APPEND itab_insumo_di.

      ENDIF.

    ENDIF.

  ENDLOOP.

  REFRESH: itab_zycit279, itab_zycit244.

* << Fim da exclusão

  SORT itab_det_exp BY dtnf dtre.

  READ TABLE itab_det_exp INDEX 1.

  itab_det_exp-dtre = /pws/zycie258-dtpr.

  itab_det_exp-dtre(4) = itab_det_exp-dtre(4) - 2.

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

  v_pct = 0.

* << Fim da exclusão

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

  v_pct = 80.

* << Fim da inclusão

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

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

            percentage = v_pct

* << Fim da exclusão

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

            percentage = v_fixo

* << Fim da inclusão

            text       = text-297.

  SELECT * FROM /pws/zycit279 INTO TABLE itab_zycit279

        FOR ALL ENTRIES IN itab_insumo_di

        WHERE matnr EQ itab_insumo_di-matnr

          AND esgotado NE 'X'

          AND dtdi >= itab_det_exp-dtre.

  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

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

          AND tipo EQ 'I'.

* << Fim da exclusão

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

          AND modalidade EQ 'S'.

  ENDIF.

  IF NOT itab_zycit244[] IS INITIAL.

    LOOP AT itab_zycit244.

      DELETE itab_zycit279 WHERE nrseqd EQ itab_zycit244-nrseqd.

    ENDLOOP.

* << Fim da inclusão

  ENDIF.

  LOOP AT itab_zycit279 WHERE grupo EQ space.

    READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit279-matnr.

    itab_zycit279-grupo = itab_zycit433-grupo.

    MODIFY itab_zycit279 TRANSPORTING grupo

              WHERE matnr EQ itab_zycit279-matnr.

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

  ENDLOOP.

  IF NOT itab_zycit244[] IS INITIAL.

    LOOP AT itab_zycit279 WHERE nrseqd NE space.

      READ TABLE itab_zycit244 WITH KEY nrseqd = itab_zycit279-nrseqd.

      IF sy-subrc NE 0.

        DELETE itab_zycit279 WHERE nrseqd EQ itab_zycit279-nrseqd.

      ENDIF.

* << Fim da exclusão

    ENDLOOP.

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

  ENDIF.

  v_pct = 0.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-297.

  SORT itab_zycit279 BY dtdi.

  CLEAR: v_count .

  LOOP AT itab_det_exp.

    LOOP AT itab_comp_vinc_final WHERE

                                codmat   = itab_comp_vinc_final-codmat

                            AND nrseqre  = itab_comp_vinc_final-nrseqre

                            AND nrseq    = itab_comp_vinc_final-nrseq

                            AND nrseqc   = itab_comp_vinc_final-nrseqc

                           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.

      IF NOT itab_det_exp-dtre IS INITIAL.

        v_dtini = /pws/zycie258-dtpr.

        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.

          IF v_count EQ 100.

            v_pct = 0.

            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

                 EXPORTING

                      percentage = v_pct

                      text       = text-297.

            CLEAR: v_count .

          ENDIF.

          ADD 1 TO v_count.

* << Fim da exclusão

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

  LOOP AT itab_zycit279.

    v_pct = 80.

* << Fim da inclusão

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

          PERFORM monta_di.

        ENDLOOP.

      ELSE.

        LOOP AT itab_zycit279

                   WHERE matnr EQ itab_comp_vinc_final-codcomp.

          IF v_count EQ 100.

            v_pct = 0.

* << Fim da exclusão

            CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

                 EXPORTING

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

                      percentage = v_pct

* << Fim da exclusão

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

              percentage = v_fixo

* << Fim da inclusão

                      text       = text-297.

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

            CLEAR: v_count .

          ENDIF.

          ADD 1 TO v_count.

* << Fim da exclusão

          PERFORM monta_di.

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

        ENDLOOP.

      ENDIF.

* << Fim da exclusão

    ENDLOOP.

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

  ENDLOOP.

  FREE: itab_zycit279,

        itab_zycit244,

        itab_comp_sort3.

* << Fim da exclusão

ENDFORM.

FORM verifica_exit USING    p_modulo

                            p_func

                            p_exit.

  CLEAR itab_zyglt100.

  REFRESH itab_zyglt100.

  CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

       EXPORTING

            i_codmod                = p_modulo

            i_func                  = p_func

...

 

...

      MOVE: itab_zycit003-meins           TO itab_di_final-meins       ,

            itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      .

      PERFORM converte_um_ncm  USING itab_zycit003-matnr

                            CHANGING itab_di_final-meins

                                     itab_zycit003-werks

                                     itab_di_final-qtd_di.

      IF itab_di_final-qtd_di IS INITIAL.

        EXIT.

      ENDIF.

      v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.

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

    CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,

                                                         v_fatx, v_faty.

* << Fim da exclusão

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

      CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa,

v_xb,

                                                           v_fatx,

v_faty.

* << Fim da inclusão

      v_advii   = ( itab_zycit003-advalii / 100 ).

      v_advipi  = ( itab_zycit003-advalipi / 100 ).

      IF NOT itab_zycit003-basred IS INITIAL.

        v_advicms = ( ( itab_zycit003-advalicms / 100 ) *

         ( itab_zycit003-basred / 100 ) ) .

      ELSE.

        v_advicms = ( itab_zycit003-advalicms / 100 ).

      ENDIF.

      v_advpis  = ( itab_zycit100-advalpis / 100 ).

      v_advcof  = ( itab_zycit100-advalcofins / 100 ).

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

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

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

* << Fim da exclusão

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

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

.

* << Fim da inclusão

      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  ,

        itab_di_final-nrseqc    TO itab_comp_vinc_final-nrseqc ,

        itab_di_final-vbeln_va  TO itab_comp_vinc_final-vbeln_va,

...

 

...

            WHERE vbeln EQ itab_vbfa_aux-vbeln

              AND posnr EQ itab_vbfa_aux-posnn.

  ENDIF.

  v_pct = 80.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-300.

  CLEAR: v_count .

  LOOP AT itab_nota_c.

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

    IF v_count EQ 100.

* << Fim da exclusão

      v_pct = 80.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

           EXPORTING

                percentage = v_pct

                text       = text-300.

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

      CLEAR: v_count .

    ENDIF.

    ADD 1 TO v_count.

* << Fim da exclusã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.

...

 

...

        FOR ALL ENTRIES IN itab_zycit373

        WHERE matnr EQ itab_zycit373-matnr.

  ENDIF.

  v_pct = 55.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            percentage = v_pct

            text       = text-299.

  CLEAR: v_count .

  LOOP AT itab_zycit373.

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

    IF v_count EQ 100.

* << Fim da exclusão

      v_pct = 55.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

           EXPORTING

                percentage = v_pct

                text       = text-299.

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

      CLEAR: v_count .

    ENDIF.

    ADD 1 TO v_count.

* << Fim da exclusã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.

...

 

...

                                        * itab_mara-ntgew.

    itab_det_exp_final-brgew = itab_det_exp_final-qtd_iten

                                        * itab_mara-brgew.

    itab_det_exp_final-vlcif = ( itab_nota_c-netwr +

            itab_nota_c-netfre + itab_nota_c-netins )

            * ( itab_zycit373-qtd_apro / itab_zycit373-qtd_iten ).

    APPEND itab_det_exp_final.

  ENDLOOP.

ENDFORM.

FORM monta_dis3.

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

  REFRESH   itab_di_final_aux.

  itab_di_final_aux[] = itab_di_final[].

* << Fim da exclusão

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

  REFRESH   itab_dis.

* << Fim da inclusão

  CLEAR itab_zycit085.

  READ TABLE itab_zycit085 WITH KEY

                             nrseqdi = itab_zycit100_sort-nrseqdi.

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

  CHECK sy-subrc EQ 0 AND

        itab_zycit085-dtreg >= v_dtini AND

        itab_zycit085-dtreg <= v_dtfim.

* << Fim da exclusão

  IF  /pws/zycbt007-bukrs NE itab_zycit085-bukrs.

    SELECT SINGLE * FROM /pws/zycbt007

...

 

...

  ENDIF.

  PERFORM converte_um_base USING itab_zycit003-matnr

                        CHANGING itab_zycit003-meins

                                 itab_zycit003-qtd_iten.

  IF itab_zycit003-qtd_iten <= 0.

    itab_mess_un-meins = itab_det_exp_final-meins.

    itab_mess_un-matnr = itab_det_exp_final-codmat.

    APPEND itab_mess_un.

    EXIT.

  ENDIF.

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

  MOVE: itab_zycit003-meins           TO itab_di_final-meins       ,

        itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      .

* << Fim da exclusão

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

  MOVE: itab_zycit003-meins           TO itab_dis-meins       ,

        itab_zycit003-qtd_iten        TO itab_dis-qtd_di      .

* << Fim da inclusão

  PERFORM converte_um_ncm  USING itab_zycit003-matnr

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

                        CHANGING itab_di_final-meins

* << Fim da exclusão

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

                        CHANGING itab_dis-meins

* << Fim da inclusão

                                 itab_zycit003-werks

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

                                 itab_di_final-qtd_di.

  IF itab_di_final-qtd_di IS INITIAL.

* << Fim da exclusão

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

                                 itab_dis-qtd_di.

  IF itab_dis-qtd_di IS INITIAL.

* << Fim da inclusão

    EXIT.

  ENDIF.

  v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.

  CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,

                                                       v_fatx, v_faty.

  v_advii   = ( itab_zycit003-advalii / 100 ).

  v_advipi  = ( itab_zycit003-advalipi / 100 ).

  IF NOT itab_zycit003-basred IS INITIAL.

    v_advicms = ( ( itab_zycit003-advalicms / 100 ) *

     ( itab_zycit003-basred / 100 ) ) .

  ELSE.

    v_advicms = ( itab_zycit003-advalicms / 100 ).

  ENDIF.

  v_advpis  = ( itab_zycit100-advalpis / 100 ).

  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.

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

  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

              nrseqc   = itab_comp_vinc_final-nrseqc

              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

* << Fim da exclusão

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

  CLEAR itab_dis.

  READ TABLE itab_dis WITH KEY

* << Fim da inclusão

              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.

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

    READ TABLE itab_di_final_aux WITH KEY

                           nrdi     = itab_zycit085-nrseqdi

                           nrseqemb = itab_zycit100-nrseq

                           ebeln    = itab_ekpo-ebeln

                           ebelp    = itab_ekpo-ebelp.

    IF sy-subrc NE 0.

      CLEAR itab_di_final.

* << Fim da exclusão

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

    CLEAR itab_dis.

* << Fim da inclusão

      MOVE:

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

      /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       ,

      itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

      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_zycit003-meins           TO itab_di_final-meins       ,

      itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      ,

      itab_zycit003-qtd_iten        TO itab_di_final-sdo_qtd     ,

      itab_zycit003-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit085-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit003-gewei           TO itab_di_final-gewei       ,

      itab_zycit003-werks           TO itab_di_final-werks       ,

      itab_zycit003-ntgew           TO itab_di_final-ntgew       ,

      itab_zycit003-waers           TO itab_di_final-waers       ,

      itab_zycit003-netpr           TO itab_di_final-netpr       ,

      itab_zycit003-advalii         TO itab_di_final-i_txii      ,

      itab_zycit100-advalpis        TO itab_di_final-pis         ,

      itab_zycit100-advalcofins     TO itab_di_final-cofins      ,

      itab_zycit003-advalipi        TO itab_di_final-i_txipi     ,

      itab_zycit003-advalicms       TO itab_di_final-i_txicms    ,

      itab_zycit003-waers_real      TO itab_di_final-i_waerscifme,

      itab_zycit100-dttaxbem        TO itab_di_final-i_txmoeda   ,

      itab_zycit100-waersreal       TO itab_di_final-i_waerscifmi,

      itab_zycit100-waersreal       TO itab_di_final-waersimp    ,

      itab_zycit003-vlreal          TO itab_di_final-vlreal      ,

      itab_zycit100-vlfre           TO itab_di_final-vlfrete     ,

      itab_zycit100-vlseg           TO itab_di_final-vlseg       .

* << Fim da exclusão

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

    /pws/zycie258-nrseqd          TO itab_dis-nrseqd      ,

    itab_zycit100_sort-matnr      TO itab_dis-codcomp     ,

    itab_zycit100_sort-grupo      TO itab_dis-grupo       ,

    itab_zycit433-desc_g          TO itab_dis-desc_g      ,

    itab_zycit085-nrseqdi         TO itab_dis-nrdi        ,

    itab_zycit085-nrdi            TO itab_dis-reg_di      ,

    itab_zycit085-dtreg           TO itab_dis-dtdi        ,

    itab_zycit100-nrseq           TO itab_dis-nrseqemb    ,

    itab_zycit100-adicao          TO itab_dis-adicao      ,

    itab_ekpo-ebeln               TO itab_dis-ebeln       ,

    itab_ekpo-ebelp               TO itab_dis-ebelp       ,

    itab_zycit003-meins           TO itab_dis-meins       ,

    itab_zycit003-qtd_iten        TO itab_dis-qtd_di      ,

    itab_zycit003-qtd_iten        TO itab_dis-sdo_qtd     ,

    itab_zycit003-j_1bnbm         TO itab_dis-j_1bnbm     ,

    itab_zycit085-dtdesemb        TO itab_dis-dtdesemb    ,

    itab_zycit003-gewei           TO itab_dis-gewei       ,

    itab_zycit003-werks           TO itab_dis-werks       ,

    itab_zycit003-ntgew           TO itab_dis-ntgew       ,

    itab_zycit003-waers           TO itab_dis-waers       ,

    itab_zycit003-netpr           TO itab_dis-netpr       ,

    itab_zycit003-advalii         TO itab_dis-i_txii      ,

    itab_zycit100-advalpis        TO itab_dis-pis         ,

    itab_zycit100-advalcofins     TO itab_dis-cofins      ,

    itab_zycit003-advalipi        TO itab_dis-i_txipi     ,

    itab_zycit003-advalicms       TO itab_dis-i_txicms    ,

    itab_zycit003-waers_real      TO itab_dis-i_waerscifme,

    itab_zycit100-dttaxbem        TO itab_dis-i_txmoeda   ,

    itab_zycit100-waersreal       TO itab_dis-i_waerscifmi,

    itab_zycit100-waersreal       TO itab_dis-waersimp    ,

    itab_zycit003-vlreal          TO itab_dis-vlreal      ,

    itab_zycit100-vlfre           TO itab_dis-vlfrete     ,

    itab_zycit100-vlseg           TO itab_dis-vlseg       .

    READ TABLE itab_mara INTO mara

          WITH KEY matnr = itab_dis-codcomp.

    IF sy-subrc NE 0.

* << Fim da inclusão

      SELECT SINGLE *

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

        FROM mara INTO mara

        WHERE matnr = itab_di_final-codmat.

* << Fim da exclusão

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

        FROM mara INTO itab_mara

        WHERE matnr = itab_dis-codcomp.

      mara = itab_mara.

      APPEND itab_mara.

    ENDIF.

    itab_dis-gewei = mara-gewei.

* << Fim da inclusão

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

      itab_di_final-gewei = mara-gewei.

* << Fim da exclusão

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

    itab_dis-ntgew = itab_dis-ntgew * v_fator_conv.

    itab_dis-brgew = itab_dis-brgew * v_fator_conv.

* << Fim da inclusão

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

      itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.

      itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.

* << Fim da exclusão

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

    itab_dis-valor_u = itab_zycit100-vlfob /

                                    itab_zycit003-qtd_iten.

* << Fim da inclusão

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

   itab_di_final-valor_u = itab_zycit100-vlfob / itab_zycit003-qtd_iten.

      itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.

* << Fim da exclusão

      PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                         'USD'

                                         itab_zycit085-dttax

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

                              CHANGING itab_di_final-vlfrete.

* << Fim da exclusão

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

                            CHANGING itab_dis-vlfrete.

* << Fim da inclusão

      PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                         'USD'

                                         itab_zycit085-dttax

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

                                CHANGING itab_di_final-vlseg.

* << Fim da exclusão

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

                              CHANGING itab_dis-vlseg.

* << Fim da inclusão

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

      itab_di_final-vlfrete = itab_di_final-vlfrete /

* << Fim da exclusão

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

    itab_dis-vlfrete = itab_dis-vlfrete /

* << Fim da inclusão

                              itab_zycit003-qtd_iten.

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

      itab_di_final-vlseg   = itab_di_final-vlseg /

* << Fim da exclusão

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

    itab_dis-vlseg   = itab_dis-vlseg /

* << Fim da inclusão

                              itab_zycit003-qtd_iten.

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

      CHECK itab_di_final-valor_u > 0.

      itab_di_final-i_vlcif_me = itab_di_final-valor_u.

      itab_di_final-i_vlcif_mi =

             itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.

* << Fim da exclusão

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

    CHECK itab_dis-valor_u > 0.

    itab_dis-i_vlcif_me = itab_dis-valor_u.

    itab_dis-i_vlcif_mi =

           itab_dis-i_vlcif_me * itab_dis-i_txmoeda.

* << Fim da inclusão

      LOOP AT itab_zycit260

                    WHERE

                          nrdi      = itab_zycit085-nrseqdi

                      AND nrseqemb  = itab_zycit100-nrseq

                      AND ebeln     = itab_ekpo-ebeln

                      AND ebelp     = itab_ekpo-ebelp.

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

        itab_di_final-sdo_qtd =

                itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.

* << Fim da exclusão

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

      itab_dis-sdo_qtd =

              itab_dis-sdo_qtd - itab_zycit260-qtd_vinc.

* << Fim da inclusão

      ENDLOOP.

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

      IF itab_di_final-sdo_qtd <= 0.

        CLEAR itab_di_final.

* << Fim da exclusão

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

    IF itab_dis-sdo_qtd <= 0.

      CLEAR itab_dis.

* << Fim da inclusão

        EXIT.

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

      ENDIF.

      CLEAR wa_itab_di_final.

      IF itab_comp_vinc_final-qtd_stotal > 0 AND

         itab_di_final-sdo_qtd > 0.

        IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.

          IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                     itab_di_final-sdo_qtd - itab_di_final-qtd_di.

            itab_di_final-qtd_vinc =

                    itab_di_final-qtd_vinc + itab_di_final-qtd_di.

          ELSE.

            itab_di_final-qtd_vinc =

                   itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                    itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.

          ENDIF.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM retorna_decimais USING itab_zycit085-waersfob

                              CHANGING itab_di_final-vlfob.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

           ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc * itab_zycit100-vlpis.

          itab_di_final-vlcofins =

                  v_perc_vinc * itab_zycit100-vlcofins.

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc * itab_zycit100-vlii.

          itab_di_final-i_vlipi =

                  v_perc_vinc * itab_zycit100-vlipi.

          itab_di_final-i_vlicms =

                  v_perc_vinc * itab_zycit100-vlicms.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-vlpis.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-vlcofins.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlii.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlipi.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

                   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-sdo_qtd.

            itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -

                                  itab_comp_vinc_final-qtd_stotal.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                  itab_comp_vinc_final-qtd_stotal.

          ELSE.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                            itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                   itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.

          ENDIF.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc * itab_zycit100-vlpis.

          itab_di_final-vlcofins =

                  v_perc_vinc * itab_zycit100-vlcofins.

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc * itab_zycit100-vlii.

          itab_di_final-i_vlipi =

                  v_perc_vinc * itab_zycit100-vlipi.

          itab_di_final-i_vlicms =

                  v_perc_vinc * itab_zycit100-vlicms.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-vlpis.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-vlcofins.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlii.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlipi.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

                   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.

* << Fim da exclusão

      ENDIF.

      CLEAR v_found.

      LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq

                              AND ebeln = itab_ekpo-ebeln

                              AND ebelp = itab_ekpo-ebelp.

        CLEAR itab_zycit043.

        READ TABLE itab_zycit043 WITH KEY

                              nrseq     = itab_zycit044-nrseqnf

                              nfglobal  = itab_zycit044-nfglobal

                              nfremessa = itab_zycit044-nfremessa.

        IF sy-subrc EQ 0.

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

          MOVE: itab_zycit043-nfnum  TO itab_di_final-nfnum,

                itab_zycit043-series TO itab_di_final-serie,

                itab_zycit043-dtincl TO itab_di_final-dtnf .

* << Fim da exclusão

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

        MOVE: itab_zycit043-nfnum  TO itab_dis-nfnum,

              itab_zycit043-series TO itab_dis-serie,

              itab_zycit043-dtincl TO itab_dis-dtnf .

* << Fim da inclusão

          v_found = 'S'.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF v_found NE 'S'.

        LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq

                                AND ebeln = itab_ekpo-ebeln

                                AND ebelp = itab_ekpo-ebelp.

          CLEAR itab_zycit041.

          READ TABLE itab_zycit041 WITH KEY

                                nrseq    = itab_zycit042-nrseqnf

                                nfglobal = itab_zycit042-nfglobal.

          IF sy-subrc EQ 0.

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

            MOVE: itab_zycit041-nfnum  TO itab_di_final-nfnum,

                  itab_zycit041-series TO itab_di_final-serie,

                  itab_zycit041-dtincl TO itab_di_final-dtnf .

* << Fim da exclusão

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

          MOVE: itab_zycit041-nfnum  TO itab_dis-nfnum,

                itab_zycit041-series TO itab_dis-serie,

                itab_zycit041-dtincl TO itab_dis-dtnf .

* << Fim da inclusão

            EXIT.

          ENDIF.

        ENDLOOP.

      ENDIF.

      PERFORM retorna_decimais USING itab_zycit085-waersfob

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

                          CHANGING itab_di_final-valor_u.

* << Fim da exclusão

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

                        CHANGING itab_dis-valor_u.

* << Fim da inclusão

      PERFORM retorna_decimais USING itab_zycit085-waersfob

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

                          CHANGING itab_di_final-vlfob_t.

* << Fim da exclusão

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

                        CHANGING itab_dis-vlfob_t.

* << Fim da inclusão

      PERFORM retorna_decimais USING itab_zycit085-waersfob

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

                          CHANGING itab_di_final-netpr.

* << Fim da exclusão

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

                        CHANGING itab_dis-netpr.

* << Fim da inclusão

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

      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

           nrseqc   NE itab_det_exp-nrseqc       OR

           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       ,

      itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

      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_zycit003-meins           TO itab_di_final-meins       ,

      itab_zycit003-qtd_iten        TO itab_di_final-qtd_di      ,

      itab_di_final_aux-sdo_qtd     TO itab_di_final-sdo_qtd     ,

      itab_zycit003-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit085-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit003-gewei           TO itab_di_final-gewei       ,

      itab_zycit003-ntgew           TO itab_di_final-ntgew       ,

      itab_zycit003-werks           TO itab_di_final-werks       ,

      itab_zycit003-waers           TO itab_di_final-waers       ,

      itab_zycit003-netpr           TO itab_di_final-netpr       ,

      itab_zycit100-advalpis        TO itab_di_final-pis         ,

      itab_zycit100-advalcofins     TO itab_di_final-cofins      ,

      itab_zycit003-advalii         TO itab_di_final-i_txii      ,

      itab_zycit003-advalipi        TO itab_di_final-i_txipi     ,

      itab_zycit003-advalicms       TO itab_di_final-i_txicms    ,

      itab_zycit003-waers_real      TO itab_di_final-i_waerscifme,

      itab_zycit100-dttaxbem        TO itab_di_final-i_txmoeda   ,

      itab_zycit100-waersreal       TO itab_di_final-i_waerscifmi,

      itab_zycit100-waersreal       TO itab_di_final-waersimp    ,

      itab_zycit003-vlreal          TO itab_di_final-vlreal      ,

      itab_zycit100-vlfre           TO itab_di_final-vlfrete     ,

      itab_zycit100-vlseg           TO itab_di_final-vlseg       .

      itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.

      IF itab_zycit001-inco1 EQ 'FOB'.

        itab_di_final-valor_u = itab_zycit003-vlreal.

      ELSEIF itab_zycit001-inco1 EQ 'CFR'.

        itab_di_final-valor_u = ( itab_zycit003-vlreal +

                 itab_zycit003-vlfre_fat ) - itab_zycit100-vlfre.

      ELSEIF itab_zycit001-inco1 EQ 'CIF'.

        itab_di_final-valor_u = ( ( itab_zycit003-vlreal +

            itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ) -

                     itab_zycit100-vlfre ) - itab_zycit100-vlseg.

      ELSE.

        itab_di_final-valor_u = itab_zycit003-vlreal.

      ENDIF.

      itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.

      PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                         'USD'

                                         itab_zycit085-dttax

                              CHANGING itab_di_final-vlfrete.

      PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                         'USD'

                                         itab_zycit085-dttax

                                CHANGING itab_di_final-vlseg.

      itab_di_final-vlfrete = itab_di_final-vlfrete /

                              itab_zycit003-qtd_iten.

      itab_di_final-vlseg   = itab_di_final-vlseg /

                              itab_zycit003-qtd_iten.

      CHECK itab_di_final-valor_u > 0.

      itab_di_final-i_vlcif_me = itab_di_final-valor_u.

      itab_di_final-i_vlcif_mi =

             itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.

      CLEAR wa_itab_di_final.

      IF itab_comp_vinc_final-qtd_stotal > 0 AND

                                        itab_di_final-sdo_qtd > 0.

        IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.

          IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                     itab_di_final-sdo_qtd - itab_di_final-qtd_di.

            itab_di_final-qtd_vinc =

                    itab_di_final-qtd_vinc + itab_di_final-qtd_di.

          ELSE.

            itab_di_final-qtd_vinc =

                   itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                    itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.

          ENDIF.

          SELECT SINGLE *

           FROM mara INTO mara

            WHERE matnr = itab_di_final-codmat.

          itab_di_final-gewei = mara-gewei.

          itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.

          itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc * itab_zycit100-vlpis.

          itab_di_final-vlcofins =

                  v_perc_vinc * itab_zycit100-vlcofins.

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc * itab_zycit100-vlii.

          itab_di_final-i_vlipi =

                  v_perc_vinc * itab_zycit100-vlipi.

          itab_di_final-i_vlicms =

                  v_perc_vinc * itab_zycit100-vlicms.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-vlpis.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-vlcofins.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlii.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlipi.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

                   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-sdo_qtd.

            itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -

                                  itab_comp_vinc_final-qtd_stotal.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                  itab_comp_vinc_final-qtd_stotal.

          ELSE.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                            itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                   itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.

          ENDIF.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc * itab_zycit100-vlpis.

          itab_di_final-vlcofins =

                  v_perc_vinc * itab_zycit100-vlcofins.

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc * itab_zycit100-vlii.

          itab_di_final-i_vlipi =

                  v_perc_vinc * itab_zycit100-vlipi.

          itab_di_final-i_vlicms =

                  v_perc_vinc * itab_zycit100-vlicms.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-vlpis.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                 CHANGING itab_di_final-vlcofins.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlii.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             itab_zycit085-dttax

                                  CHANGING itab_di_final-i_vlipi.

          PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                             'USD'

                                             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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

                   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.

      CLEAR v_found.

      LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq

                              AND ebeln = itab_ekpo-ebeln

                              AND ebelp = itab_ekpo-ebelp.

        CLEAR itab_zycit043.

        READ TABLE itab_zycit043 WITH KEY

                                nrseq     = itab_zycit044-nrseqnf

                               nfglobal  = itab_zycit044-nfglobal

                              nfremessa = itab_zycit044-nfremessa.

        IF sy-subrc EQ 0.

          MOVE: itab_zycit043-nfnum  TO itab_di_final-nfnum,

                itab_zycit043-series TO itab_di_final-serie,

                itab_zycit043-dtincl TO itab_di_final-dtnf .

          v_found = 'S'.

          EXIT.

        ENDIF.

      ENDLOOP.

      IF v_found NE 'S'.

        LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq

                                AND ebeln = itab_ekpo-ebeln

                                AND ebelp = itab_ekpo-ebelp.

          CLEAR itab_zycit041.

          READ TABLE itab_zycit041 WITH KEY

                                 nrseq    = itab_zycit042-nrseqnf

                                nfglobal = itab_zycit042-nfglobal.

          IF sy-subrc EQ 0.

            MOVE: itab_zycit041-nfnum  TO itab_di_final-nfnum,

                  itab_zycit041-series TO itab_di_final-serie,

                  itab_zycit041-dtincl TO itab_di_final-dtnf .

            EXIT.

* << Fim da exclusão

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

    APPEND itab_dis.

* << Fim da inclusão

          ENDIF.

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

        ENDLOOP.

      ENDIF.

      PERFORM retorna_decimais USING itab_zycit085-waersfob

                          CHANGING itab_di_final-valor_u.

      PERFORM retorna_decimais USING itab_zycit085-waersfob

                          CHANGING itab_di_final-vlfob_t.

      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

               nrseqc   NE itab_det_exp-nrseqc       OR

               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.

    ENDIF.

  ENDIF.

* << Fim da exclusão

ENDFORM.

FORM monta_di.

  IF NOT itab_zycit279-nrseqd IS INITIAL.

    READ TABLE itab_zycit244 WITH KEY

                              nrseqd = itab_zycit279-nrseqd.

    IF sy-subrc NE 0.

      EXIT.

    ENDIF.

  ENDIF.

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

  REFRESH   itab_di_final_aux.

  itab_di_final_aux[] = itab_di_final[].

  CHECK itab_zycit279-dtdi >= v_dtini AND

        itab_zycit279-dtdi <= v_dtfim.

  MOVE: itab_zycit279-meins        TO itab_di_final-meins       ,

        itab_zycit279-menge        TO itab_di_final-qtd_di      .

* << Fim da exclusão

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

  MOVE: itab_zycit279-meins        TO itab_dis-meins       ,

        itab_zycit279-menge        TO itab_dis-qtd_di      .

* << Fim da inclusão

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

  IF itab_di_final-qtd_di IS INITIAL.

* << Fim da exclusão

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

  IF itab_dis-qtd_di IS INITIAL.

* << Fim da inclusão

    EXIT.

  ENDIF.

  READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit279-matnr.

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

  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

              nrseqc   = itab_comp_vinc_final-nrseqc

              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

* << Fim da exclusão

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

  READ TABLE itab_dis WITH KEY

* << Fim da inclusão

                           docnum   = itab_zycit279-docnum

                           ebeln    = itab_zycit279-ebeln

                           ebelp    = itab_zycit279-ebelp.

    IF sy-subrc NE 0.

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

      CLEAR itab_di_final.

* << Fim da exclusão

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

    CLEAR itab_dis.

* << Fim da inclusão

      MOVE:

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

      /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       ,

      itab_comp_vinc_final-nrseqc    TO itab_di_final-nrseqc     ,

      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_zycit279-ebelp           TO itab_di_final-ebelp       ,

      itab_zycit279-meins           TO itab_di_final-meins       ,

      itab_zycit279-menge           TO itab_di_final-qtd_di      ,

      itab_zycit279-nfnum           TO itab_di_final-nfnum       ,

      itab_zycit279-serie           TO itab_di_final-serie       ,

      itab_zycit279-dtnf            TO itab_di_final-dtnf       ,

* << Fim da exclusão

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

    /pws/zycie258-nrseqd               TO itab_dis-nrseqd ,

    itab_zycit279-matnr           TO itab_dis-codcomp     ,

    itab_zycit279-grupo           TO itab_dis-grupo       ,

    itab_zycit433-desc_g          TO itab_dis-desc_g      ,

    itab_zycit279-nrseqdi         TO itab_dis-nrdi        ,

    itab_zycit279-nrdi            TO itab_dis-reg_di      ,

    itab_zycit279-dtdi            TO itab_dis-dtdi        ,

    itab_zycit279-nrseq           TO itab_dis-nrseqemb    ,

    itab_zycit279-adicao          TO itab_dis-adicao      ,

    itab_zycit279-docnum          TO itab_dis-docnum      ,

    itab_zycit279-ebeln           TO itab_dis-ebeln       ,

    itab_zycit279-ebelp           TO itab_dis-ebelp       ,

    itab_zycit279-meins           TO itab_dis-meins       ,

    itab_zycit279-menge           TO itab_dis-qtd_di      ,

    itab_zycit279-nfnum           TO itab_dis-nfnum       ,

    itab_zycit279-serie           TO itab_dis-serie       ,

    itab_zycit279-dtnf            TO itab_dis-dtnf       ,

* << Fim da inclusão

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

      itab_zycit279-menge           TO itab_di_final-sdo_qtd     ,

      itab_zycit279-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit279-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit279-gewei           TO itab_di_final-gewei       ,

      itab_zycit279-ntgew           TO itab_di_final-ntgew       ,

      itab_zycit279-waers           TO itab_di_final-waers       ,

      itab_zycit279-netpr           TO itab_di_final-netpr       ,

      itab_zycit279-i_txii          TO itab_di_final-i_txii      ,

      itab_zycit279-pis             TO itab_di_final-pis         ,

      itab_zycit279-cofins          TO itab_di_final-cofins      ,

      itab_zycit279-i_txipi         TO itab_di_final-i_txipi     ,

      itab_zycit279-i_txicms        TO itab_di_final-i_txicms    ,

      itab_zycit279-waers           TO itab_di_final-i_waerscifme,

      itab_zycit279-i_txmoeda       TO itab_di_final-i_txmoeda   ,

      itab_zycit279-waers           TO itab_di_final-i_waerscifmi,

      itab_zycit279-waers           TO itab_di_final-waersimp    ,

      itab_zycit279-vltot           TO itab_di_final-vlreal      ,

      itab_zycit279-vlfrete         TO itab_di_final-vlfrete     ,

      itab_zycit279-vlseg           TO itab_di_final-vlseg       .

* << Fim da exclusão

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

    itab_zycit279-menge           TO itab_dis-sdo_qtd     ,

    itab_zycit279-j_1bnbm         TO itab_dis-j_1bnbm     ,

    itab_zycit279-dtdesemb        TO itab_dis-dtdesemb    ,

    itab_zycit279-gewei           TO itab_dis-gewei       ,

    itab_zycit279-ntgew           TO itab_dis-ntgew       ,

    itab_zycit279-waers           TO itab_dis-waers       ,

    itab_zycit279-netpr           TO itab_dis-netpr       ,

    itab_zycit279-i_txii          TO itab_dis-i_txii      ,

    itab_zycit279-pis             TO itab_dis-pis         ,

    itab_zycit279-cofins          TO itab_dis-cofins      ,

    itab_zycit279-i_txipi         TO itab_dis-i_txipi     ,

    itab_zycit279-i_txicms        TO itab_dis-i_txicms    ,

    itab_zycit279-waers           TO itab_dis-i_waerscifme,

    itab_zycit279-i_txmoeda       TO itab_dis-i_txmoeda   ,

    itab_zycit279-waers           TO itab_dis-i_waerscifmi,

    itab_zycit279-waers           TO itab_dis-waersimp    ,

    itab_zycit279-vltot           TO itab_dis-vlreal      ,

    itab_zycit279-vlfrete         TO itab_dis-vlfrete     ,

    itab_zycit279-vlseg           TO itab_dis-vlseg       .

    READ TABLE itab_mara INTO mara WITH KEY matnr = itab_dis-codcomp.

    IF sy-subrc NE 0.

* << Fim da inclusão

      SELECT SINGLE *

        FROM mara INTO mara

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

        WHERE matnr = itab_di_final-codmat.

* << Fim da exclusão

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

        WHERE matnr = itab_dis-codcomp.

      itab_mara = mara.

      APPEND itab_mara.

    ENDIF.

* << Fim da inclusão

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

      itab_di_final-gewei = mara-gewei.

* << Fim da exclusão

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

    itab_dis-gewei = mara-gewei.

* << Fim da inclusão

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

      itab_di_final-valor_u = itab_zycit279-vltot /

* << Fim da exclusão

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

    itab_dis-valor_u = itab_zycit279-vltot /

* << Fim da inclusão

                              itab_zycit279-qtd_ncm.

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

      itab_di_final-vlfrete = itab_di_final-vlfrete /

* << Fim da exclusão

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

    itab_dis-vlfrete = itab_dis-vlfrete /

* << Fim da inclusão

                              itab_zycit279-qtd_ncm.

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

      itab_di_final-vlseg   = itab_di_final-vlseg /

* << Fim da exclusão

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

    itab_dis-vlseg   = itab_dis-vlseg /

* << Fim da inclusão

                              itab_zycit279-qtd_ncm.

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

      CHECK itab_di_final-valor_u > 0.

      itab_di_final-i_vlcif_me = itab_di_final-valor_u.

      itab_di_final-i_vlcif_mi =

             itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.

* << Fim da exclusão

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

    CHECK itab_dis-valor_u > 0.

    itab_dis-i_vlcif_me = itab_dis-valor_u.

    itab_dis-i_vlcif_mi =

           itab_dis-i_vlcif_me * itab_dis-i_txmoeda.

* << Fim da inclusão

      LOOP AT itab_zycit260

                     WHERE

                          docnum    = itab_zycit279-docnum

                      AND ebeln     = itab_zycit279-ebeln

                      AND ebelp     = itab_zycit279-ebelp.

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

        itab_di_final-sdo_qtd =

                itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.

* << Fim da exclusão

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

      itab_dis-sdo_qtd =

              itab_dis-sdo_qtd - itab_zycit260-qtd_vinc.

* << Fim da inclusão

      ENDLOOP.

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

      IF itab_di_final-sdo_qtd <= 0.

        CLEAR itab_di_final.

* << Fim da exclusão

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

    IF itab_dis-sdo_qtd <= 0.

      CLEAR itab_dis.

* << Fim da inclusão

        EXIT.

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

      ENDIF.

      CLEAR wa_itab_di_final.

      IF itab_comp_vinc_final-qtd_stotal > 0 AND

         itab_di_final-sdo_qtd > 0.

        IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.

          IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                     itab_di_final-sdo_qtd - itab_di_final-qtd_di.

            itab_di_final-qtd_vinc =

                    itab_di_final-qtd_vinc + itab_di_final-qtd_di.

          ELSE.

            itab_di_final-qtd_vinc =

                   itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                    itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.

          ENDIF.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          itab_di_final-i_vlcifn_mi =

           ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc *

            ( itab_zycit279-basepis *

                ( itab_zycit279-pis / 100 ) ).

          itab_di_final-vlcofins =

                  v_perc_vinc *

            ( itab_zycit279-basecofins *

                ( itab_zycit279-cofins / 100 ) ).

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc *

            ( itab_zycit279-baseii *

                ( itab_zycit279-i_txii / 100 ) ).

          itab_di_final-i_vlipi =

                  v_perc_vinc *

            ( itab_zycit279-baseipi *

                ( itab_zycit279-i_txipi / 100 ) ).

          itab_di_final-i_vlicms =

                  v_perc_vinc *

            ( itab_zycit279-baseicms *

                ( itab_zycit279-i_txicms / 100 ) ).

          itab_di_final-vlpis =

              itab_di_final-vlpis / itab_di_final-i_txmoeda.

          itab_di_final-i_vlii =

              itab_di_final-i_vlii / itab_di_final-i_txmoeda.

          itab_di_final-i_vlipi =

              itab_di_final-i_vlipi / itab_di_final-i_txmoeda.

          itab_di_final-vlcofins =

              itab_di_final-vlcofins / itab_di_final-i_txmoeda.

          itab_di_final-i_vlicms =

              itab_di_final-i_vlicms / itab_di_final-i_txmoeda.

          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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

                   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-sdo_qtd.

            itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -

                                  itab_comp_vinc_final-qtd_stotal.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                  itab_comp_vinc_final-qtd_stotal.

          ELSE.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                            itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                   itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.

          ENDIF.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc *

            ( itab_zycit279-basepis *

                ( itab_zycit279-pis / 100 ) ).

          itab_di_final-vlcofins =

                  v_perc_vinc *

            ( itab_zycit279-basecofins *

                ( itab_zycit279-cofins / 100 ) ).

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc *

            ( itab_zycit279-baseii *

                ( itab_zycit279-i_txii / 100 ) ).

          itab_di_final-i_vlipi =

                  v_perc_vinc *

            ( itab_zycit279-baseipi *

                ( itab_zycit279-i_txipi / 100 ) ).

          itab_di_final-i_vlicms =

                  v_perc_vinc *

            ( itab_zycit279-baseicms *

                ( itab_zycit279-i_txicms / 100 ) ).

          itab_di_final-vlpis =

              itab_di_final-vlpis / itab_di_final-i_txmoeda.

          itab_di_final-i_vlii =

              itab_di_final-i_vlii / itab_di_final-i_txmoeda.

          itab_di_final-i_vlipi =

              itab_di_final-i_vlipi / itab_di_final-i_txmoeda.

          itab_di_final-vlcofins =

              itab_di_final-vlcofins / itab_di_final-i_txmoeda.

          itab_di_final-i_vlicms =

              itab_di_final-i_vlicms / itab_di_final-i_txmoeda.

          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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

                   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-ntgew = itab_di_final-ntgew * v_perc_vinc.

      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

           nrseqc    NE itab_det_exp-nrseqc        OR

           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       ,

      itab_comp_vinc_final-nrseqc    TO itab_di_final-nrseqc       ,

      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_zycit279-ebelp           TO itab_di_final-ebelp       ,

      itab_zycit279-meins           TO itab_di_final-meins       ,

      itab_zycit279-menge           TO itab_di_final-qtd_di      ,

      itab_di_final_aux-sdo_qtd     TO itab_di_final-sdo_qtd     ,

      itab_zycit279-j_1bnbm         TO itab_di_final-j_1bnbm     ,

      itab_zycit279-dtdesemb        TO itab_di_final-dtdesemb    ,

      itab_zycit279-gewei           TO itab_di_final-gewei       ,

      itab_zycit279-ntgew           TO itab_di_final-ntgew       ,

      itab_zycit279-waers           TO itab_di_final-waers       ,

      itab_zycit279-netpr           TO itab_di_final-netpr       ,

      itab_zycit279-nfnum           TO itab_di_final-nfnum       ,

      itab_zycit279-serie           TO itab_di_final-serie       ,

      itab_zycit279-dtnf            TO itab_di_final-dtnf       ,

      itab_zycit279-i_txii          TO itab_di_final-i_txii      ,

      itab_zycit279-pis             TO itab_di_final-pis         ,

      itab_zycit279-cofins          TO itab_di_final-cofins      ,

      itab_zycit279-i_txipi         TO itab_di_final-i_txipi     ,

      itab_zycit279-i_txicms        TO itab_di_final-i_txicms    ,

      itab_zycit279-waers           TO itab_di_final-i_waerscifme,

      itab_zycit279-i_txmoeda       TO itab_di_final-i_txmoeda   ,

      itab_zycit279-waers           TO itab_di_final-i_waerscifmi,

      itab_zycit279-waers           TO itab_di_final-waersimp    ,

      itab_zycit279-vltot           TO itab_di_final-vlreal      ,

      itab_zycit279-vlfrete         TO itab_di_final-vlfrete     ,

      itab_zycit279-vlseg           TO itab_di_final-vlseg       .

      itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.

      itab_di_final-valor_u = itab_zycit279-vltot /

                              itab_zycit279-qtd_ncm.

      itab_di_final-vlfrete = itab_di_final-vlfrete /

                              itab_zycit279-menge.

      itab_di_final-vlseg   = itab_di_final-vlseg /

                              itab_zycit279-menge.

      CHECK itab_di_final-valor_u > 0.

      itab_di_final-i_vlcif_me = itab_di_final-valor_u.

      itab_di_final-i_vlcif_mi =

             itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.

      CLEAR wa_itab_di_final.

      IF itab_comp_vinc_final-qtd_stotal > 0 AND

                                        itab_di_final-sdo_qtd > 0.

        IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.

          IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                     itab_di_final-sdo_qtd - itab_di_final-qtd_di.

            itab_di_final-qtd_vinc =

                    itab_di_final-qtd_vinc + itab_di_final-qtd_di.

          ELSE.

            itab_di_final-qtd_vinc =

                   itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                    itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.

          ENDIF.

          SELECT SINGLE *

           FROM mara INTO mara

            WHERE matnr = itab_di_final-codmat.

          itab_di_final-gewei = mara-gewei.

          itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.

          itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc *

            ( itab_zycit279-basepis *

                ( itab_zycit279-pis / 100 ) ).

          itab_di_final-vlcofins =

                  v_perc_vinc *

            ( itab_zycit279-basecofins *

                ( itab_zycit279-cofins / 100 ) ).

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc *

            ( itab_zycit279-baseii *

                ( itab_zycit279-i_txii / 100 ) ).

          itab_di_final-i_vlipi =

                  v_perc_vinc *

            ( itab_zycit279-baseipi *

                ( itab_zycit279-i_txipi / 100 ) ).

          itab_di_final-i_vlicms =

                  v_perc_vinc *

            ( itab_zycit279-baseicms *

                ( itab_zycit279-i_txicms / 100 ) ).

          itab_di_final-vlpis =

              itab_di_final-vlpis / itab_di_final-i_txmoeda.

          itab_di_final-i_vlii =

              itab_di_final-i_vlii / itab_di_final-i_txmoeda.

          itab_di_final-i_vlipi =

              itab_di_final-i_vlipi / itab_di_final-i_txmoeda.

          itab_di_final-vlcofins =

              itab_di_final-vlcofins / itab_di_final-i_txmoeda.

          itab_di_final-i_vlicms =

              itab_di_final-i_vlicms / itab_di_final-i_txmoeda.

          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

                   AND nrseqc    = itab_comp_vinc_final-nrseqc

                   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-sdo_qtd.

            itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -

                                  itab_comp_vinc_final-qtd_stotal.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                  itab_comp_vinc_final-qtd_stotal.

          ELSE.

            itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +

                                            itab_di_final-sdo_qtd.

            itab_di_final-sdo_qtd =

                   itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.

* << Fim da exclusão

          ENDIF.

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

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM valor_converte_imp USING itab_zycit085-waersfob

                                             'USD'

                                             itab_zycit085-dttax

                                    CHANGING itab_di_final-vlfob.

          itab_di_final-i_vlcifn_mi =

              ( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).

          v_perc_vinc =

                    itab_di_final-qtd_vinc / itab_di_final-qtd_di.

          itab_di_final-vlpis =

                  v_perc_vinc *

            ( itab_zycit279-basepis *

                ( itab_zycit279-pis / 100 ) ).

          itab_di_final-vlcofins =

                  v_perc_vinc *

            ( itab_zycit279-basecofins *

                ( itab_zycit279-cofins / 100 ) ).

          itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                    ( 25 / 100 ).

          itab_di_final-afrmm = '25'.

          itab_di_final-i_vlii =

                  v_perc_vinc *

            ( itab_zycit279-baseii *

                ( itab_zycit279-i_txii / 100 ) ).

          itab_di_final-i_vlipi =

                  v_perc_vinc *

            ( itab_zycit279-baseipi *

                ( itab_zycit279-i_txipi / 100 ) ).

          itab_di_final-i_vlicms =

                  v_perc_vinc *

            ( itab_zycit279-baseicms *

                ( itab_zycit279-i_txicms / 100 ) ).

          itab_di_final-vlpis =

              itab_di_final-vlpis / itab_di_final-i_txmoeda.

          itab_di_final-i_vlii =

              itab_di_final-i_vlii / itab_di_final-i_txmoeda.

          itab_di_final-i_vlipi =

              itab_di_final-i_vlipi / itab_di_final-i_txmoeda.

          itab_di_final-vlcofins =

              itab_di_final-vlcofins / itab_di_final-i_txmoeda.

          itab_di_final-i_vlicms =

              itab_di_final-i_vlicms / itab_di_final-i_txmoeda.

* << Fim da exclusão

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

    APPEND itab_dis.

* << Fim da inclusão

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

          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

                   AND nrseqc   = itab_comp_vinc_final-nrseqc

                   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.

* << Fim da exclusão

      ENDIF.

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

      itab_di_final-ntgew = itab_di_final-ntgew * v_perc_vinc.

      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

           nrseqc   NE itab_det_exp-nrseqc       OR

           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.

* << Fim da exclusão

ENDFORM.

FORM monta_nf.

  READ TABLE itab_di_final_aux WITH KEY

              nrseqre  = itab_comp_vinc_final-nrseqre

              nrseq    = itab_comp_vinc_final-nrseq

              nrseqc   = itab_comp_vinc_final-nrseqc

              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

...

 

...

        itab_zycet092,

        itab_zycet066,

        itab_saida,

        itab_zycee085,

        it_log_erro3,

        itab_nota_c,

        itab_sel_vbfa,

        itab_vbfa,

        itab_vbfa_1.

ENDFORM.

* >> Início da inclusão:

FORM vincula_di .

  DATA: v_pct TYPE p.

  DATA: BEGIN OF itab_taxa OCCURS 0.

  DATA: data TYPE datum,

        taxa TYPE /pws/zycit279-i_txmoeda.

  DATA: END OF itab_taxa.

  DESCRIBE TABLE itab_det_exp LINES v_lines.

  CLEAR: v_count .

  LOOP AT itab_det_exp.

    v_pct = ( sy-tabix / v_lines ) * 100.

    IF v_pct < 1.

      v_pct = 1.

    ENDIF.

    CLEAR: v_percent.

    WRITE v_pct TO v_percent LEFT-JUSTIFIED NO-GAP.

    CONCATENATE text-302 '.' v_percent '%'

                  INTO v_percent SEPARATED BY space.

    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 nrseqc   = itab_det_exp-nrseqc

                           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_dis WITH KEY

                  grupo = itab_comp_vinc_final-grupo.

      IF sy-subrc NE 0.

        DELETE itab_comp_vinc_final

              WHERE grupo EQ itab_comp_vinc_final-grupo.

        CONTINUE.

      ENDIF.

      IF NOT itab_det_exp-dtre IS INITIAL.

        v_dtini = /pws/zycie258-dtpr.

        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.

      LOOP AT itab_dis WHERE grupo EQ itab_comp_vinc_final-grupo

                         AND dtdi >= v_dtini

                         AND dtdi <= v_dtfim

                         AND sdo_qtd > 0.

        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

             EXPORTING

                  percentage = v_fixo

                  text       = v_percent.

        itab_di_final = itab_dis.

        MOVE:

          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       ,

          itab_comp_vinc_final-nrseqc   TO itab_di_final-nrseqc      ,

          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       .

        IF itab_comp_vinc_final-qtd_stotal > 0 AND

           itab_di_final-sdo_qtd > 0.

          IF itab_di_final-sdo_qtd <= itab_comp_vinc_final-qtd_stotal.

            itab_di_final-qtd_vinc = itab_di_final-sdo_qtd.

          ELSE.

            itab_di_final-qtd_vinc = itab_comp_vinc_final-qtd_stotal.

          ENDIF.

          itab_dis-sdo_qtd =

             itab_dis-sdo_qtd - itab_di_final-qtd_vinc.

          IF itab_di_final-sdo_qtd < 0.

            itab_dis-sdo_qtd = 0.

          ENDIF.

          READ TABLE itab_mara INTO mara WITH KEY matnr =

                                             itab_dis-codcomp.

          itab_di_final-gewei = itab_mara-gewei.

         itab_di_final-ntgew = itab_mara-ntgew * itab_di_final-qtd_vinc

   .

         itab_di_final-brgew = itab_mara-brgew * itab_di_final-qtd_vinc

   .

          itab_di_final-vlfrete_t = itab_di_final-vlfrete *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlseg_t   = itab_di_final-vlseg *

                                          itab_di_final-qtd_vinc.

          itab_di_final-vlfob_t = itab_di_final-valor_u *

                                           itab_di_final-qtd_vinc.

          itab_di_final-vlfob = itab_di_final-vlfob_t.

          PERFORM trata_decimais USING    itab_di_final-waers

                              CHANGING itab_di_final-vlfob.

          READ TABLE itab_zycit100

                    WITH KEY nrseq = itab_di_final-nrseqemb

                             ebeln = itab_di_final-ebeln

                             ebelp = itab_di_final-ebelp.

          IF sy-subrc = 0.

            READ TABLE itab_zycit085 WITH KEY

                nrseqdi = itab_zycit100-nrseqdi.

            PERFORM valor_converte_imp USING itab_di_final-waers

                                               'USD'

                                               itab_zycit085-dttax

                                      CHANGING itab_di_final-vlfob.

            v_perc_vinc =

                      itab_di_final-qtd_vinc / itab_di_final-qtd_di.

            itab_di_final-vlpis =

                    v_perc_vinc * itab_zycit100-vlpis.

            itab_di_final-vlcofins =

                    v_perc_vinc * itab_zycit100-vlcofins.

            itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                      ( 25 / 100 ).

            itab_di_final-afrmm = '25'.

            itab_di_final-i_vlii =

                    v_perc_vinc * itab_zycit100-vlii.

            itab_di_final-i_vlipi =

                    v_perc_vinc * itab_zycit100-vlipi.

            itab_di_final-i_vlicms =

                    v_perc_vinc * itab_zycit100-vlicms.

            PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                               'USD'

                                               itab_zycit085-dttax

                                    CHANGING itab_di_final-vlpis.

            PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                               'USD'

                                               itab_zycit085-dttax

                                   CHANGING itab_di_final-vlcofins.

            PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                               'USD'

                                               itab_zycit085-dttax

                                    CHANGING itab_di_final-i_vlii.

            PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                               'USD'

                                               itab_zycit085-dttax

                                    CHANGING itab_di_final-i_vlipi.

            PERFORM valor_converte_imp USING   /pws/zycbt007-waersb

                                               'USD'

                                               itab_zycit085-dttax

                                   CHANGING itab_di_final-i_vlicms.

          ELSE.

            READ TABLE itab_zycit279 WITH KEY

                          ebeln  = itab_di_final-ebeln

                          ebelp  = itab_di_final-ebelp

                          docnum = itab_di_final-docnum.

            PERFORM trata_decimais USING    itab_di_final-waers

                                CHANGING itab_di_final-vlfob.

            PERFORM valor_converte_imp USING itab_di_final-waers

                                               'USD'

                                               itab_di_final-dtdi

                                      CHANGING itab_di_final-vlfob.

            v_perc_vinc =

                      itab_di_final-qtd_vinc / itab_di_final-qtd_di.

            itab_di_final-vlpis =

                    v_perc_vinc *

              ( itab_zycit279-basepis *

                  ( itab_zycit279-pis / 100 ) ).

            itab_di_final-vlcofins =

                    v_perc_vinc *

              ( itab_zycit279-basecofins *

                  ( itab_zycit279-cofins / 100 ) ).

            itab_di_final-vlafrmm = itab_di_final-vlfrete_t *

                                                      ( 25 / 100 ).

            itab_di_final-afrmm = '25'.

            itab_di_final-i_vlii =

                    v_perc_vinc *

              ( itab_zycit279-baseii *

                  ( itab_zycit279-i_txii / 100 ) ).

            itab_di_final-i_vlipi =

                    v_perc_vinc *

              ( itab_zycit279-baseipi *

                  ( itab_zycit279-i_txipi / 100 ) ).

            itab_di_final-i_vlicms =

                    v_perc_vinc *

              ( itab_zycit279-baseicms *

                  ( itab_zycit279-i_txicms / 100 ) ).

            IF itab_di_final-i_txmoeda IS INITIAL.

              READ TABLE itab_taxa WITH KEY data = itab_zycit279-dtdi.

              IF sy-subrc EQ 0.

                itab_di_final-i_txmoeda = itab_taxa-taxa.

              ELSE.

                DATA: it_fields   TYPE sval OCCURS 0 WITH HEADER LINE.

                REFRESH it_fields.

                it_fields-tabname    = '/PWS/ZYCIT279'.

                it_fields-fieldname  = 'I_TXMOEDA'.

                it_fields-field_obl  = 'X'.

                WRITE itab_zycit279-dtdi TO it_fields-fieldtext.

                CONCATENATE 'Taxa dia' it_fields-fieldtext

                    INTO it_fields-fieldtext SEPARATED BY space.

                APPEND it_fields.

                CALL FUNCTION 'POPUP_GET_VALUES'

                     EXPORTING

                          popup_title     = text-001

                     TABLES

                          fields          = it_fields

                     EXCEPTIONS

                          error_in_fields = 1

                          OTHERS          = 2.

                IF sy-subrc EQ 0.

                  READ TABLE it_fields INDEX 1.

                  MOVE it_fields-value  TO itab_di_final-i_txmoeda.

                  itab_taxa-taxa = itab_di_final-i_txmoeda.

                  itab_taxa-data = itab_zycit279-dtdi.

                  APPEND itab_taxa.

                ENDIF.

              ENDIF.

            ENDIF.

            itab_di_final-vlpis =

                itab_di_final-vlpis / itab_di_final-i_txmoeda.

            itab_di_final-i_vlii =

                itab_di_final-i_vlii / itab_di_final-i_txmoeda.

            itab_di_final-i_vlipi =

                itab_di_final-i_vlipi / itab_di_final-i_txmoeda.

            itab_di_final-vlcofins =

                itab_di_final-vlcofins / itab_di_final-i_txmoeda.

            itab_di_final-i_vlicms =

                itab_di_final-i_vlicms / itab_di_final-i_txmoeda.

            itab_di_final-vlafrmm =

                itab_di_final-vlafrmm / itab_di_final-i_txmoeda.

          ENDIF.

          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.

          itab_di_final-v_sel = 'X'.

        ENDIF.

        APPEND itab_di_final.

        MODIFY itab_dis.

      ENDLOOP.

      MODIFY itab_comp_vinc_final.

    ENDLOOP.

  ENDLOOP.

  LOOP AT itab_di_final.

    READ TABLE itab_dis WITH KEY

                            ebeln    = itab_di_final-ebeln

                            ebelp    = itab_di_final-ebelp

                            nrseqemb = itab_di_final-nrseqemb

                            docnum   = itab_di_final-docnum.

    itab_di_final-sdo_qtd = itab_dis-sdo_qtd.

    MODIFY itab_di_final.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI064I01

 

...

      DELETE src.

    ENDLOOP.

    LOOP AT itab_insert_ad WHERE nraditivo = /pws/zycie244-aditivo.

      DELETE itab_insert_ad.

    ENDLOOP.

    MOVE /pws/zycie244-aditivo TO v_ndtmp.

    SHIFT v_ndtmp LEFT DELETING LEADING '0'.

    LOOP AT node_itab2 INTO node2 WHERE node_key = v_ndtmp.

      DELETE node_itab2.

    ENDLOOP.

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

    CALL METHOD tree2->delete_node EXPORTING node_key = v_ndtmp.

* << Fim da exclusão

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

    CALL METHOD tree2->delete_node

      EXPORTING

        node_key = v_ndtmp.

* << Fim da inclusão

    MOVE: v_aditivo_ini TO /pws/zycie244-aditivo   ,

          v_aditivo_ini TO wa_zycit244-aditivo.

    CLEAR src2. REFRESH src2.

    LOOP AT src WHERE nraditivo = /pws/zycie244-aditivo.

      MOVE-CORRESPONDING src TO src2.

      APPEND src2.

    ENDLOOP.

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

    CALL METHOD editor2->set_text_as_r3table EXPORTING table = src2[].

    CALL METHOD editor2->set_readonly_mode EXPORTING readonly_mode = 1.

* << Fim da exclusão

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

    CALL METHOD editor2->set_text_as_r3table

      EXPORTING

        table = src2[].

    CALL METHOD editor2->set_readonly_mode

      EXPORTING

        readonly_mode = 1.

* << Fim da inclusão

    IF /pws/zycie244-aditivo >= 1.

      MOVE /pws/zycie244-aditivo TO v_ndtmp.

      SHIFT v_ndtmp LEFT DELETING LEADING '0'.

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

      CALL METHOD tree2->set_selected_node EXPORTING node_key = v_ndtmp.

* << Fim da exclusão

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

      CALL METHOD tree2->set_selected_node

        EXPORTING

          node_key = v_ndtmp.

* << Fim da inclusão

    ENDIF.

    CLEAR v_aditivo.

  ENDIF.

ENDMODULE.

MODULE trata_composicao INPUT.

  IF NOT /pws/zycie244-nrcompos IS INITIAL.

    CLEAR: itab_zycit245, itab_zycit247.

    REFRESH: itab_zycit245, itab_zycit247.

    SELECT * UP TO 1 ROWS FROM /pws/zycit258 INTO wa_zycit2582

           WHERE nrseqd EQ /pws/zycie244-nrcompos.

...

 

...

    WHEN 'FS_RESUMO3'.

      pressed_tab_3c_2 = ok_code3.

      dynpronr3c_2     = '0303'.

      LOOP AT itab_det_exp.

        itab_det_exp-marcd_l =  ' '.

        MODIFY itab_det_exp.

      ENDLOOP.

    WHEN 'FS_DETALHE3'.

      PERFORM trata_tab_detalhe3.

    WHEN 'FS_VINC3'.

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

      tc_vcp3-top_line = 1.

* << Fim da inclusão

      PERFORM trata_tab_vinc3.

  ENDCASE.

ENDMODULE.

MODULE preenche_itab_resumo INPUT.

  itab_resumo-codmat   = /pws/zycie259-codmat  .

  itab_resumo-werks    = /pws/zycie259-werks   .

  itab_resumo-stlan    = /pws/zycie259-stlan   .

  itab_resumo-stlnr    = /pws/zycie259-stlnr   .

  itab_resumo-stlal    = /pws/zycie259-stlal   .

  itab_resumo-qtd_iten = /pws/zycie259-qtd_iten.

...

 

...

  itab_det_exp-vlfob    = /pws/zycie259c-vlfob   .

  itab_det_exp-waerscom = /pws/zycie259c-waerscom.

  itab_det_exp-vlcomis  = /pws/zycie259c-vlcomis .

  itab_det_exp-waerscif = /pws/zycie259c-waerscif.

  itab_det_exp-vlcif    = /pws/zycie259c-vlcif   .

  itab_det_exp-marcd_l  = marcd_l                .

ENDMODULE.

MODULE insert_itab_resumo INPUT.

  READ TABLE itab_resumo INDEX tc_resumo3-current_line.

  IF sy-subrc EQ 0.

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

    IF marc_l EQ 'X' AND itab_resumo-marc_l NE 'X'.

      MODIFY itab_resumo TRANSPORTING marc_l

          WHERE marc_l EQ 'X'.

    ENDIF.

* << Fim da inclusão

    itab_resumo-werks  = /pws/zycie259-werks.

    itab_resumo-stlan  = /pws/zycie259-stlan.

    itab_resumo-stlnr  = /pws/zycie259-stlnr.

    itab_resumo-stlal  = /pws/zycie259-stlal.

    itab_resumo-marc_l = marc_l.

    MODIFY itab_resumo INDEX tc_resumo3-current_line.

    LOOP AT itab_det_exp_final WHERE codmat = itab_resumo-codmat.

      itab_det_exp_final-werks = /pws/zycie259-werks.

      itab_det_exp_final-stlan = /pws/zycie259-stlan.

      itab_det_exp_final-stlnr = /pws/zycie259-stlnr.

      itab_det_exp_final-stlal = /pws/zycie259-stlal.

      MODIFY itab_det_exp_final.

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE insert_itab_det_exp INPUT.

  READ TABLE itab_det_exp INDEX tc_detalhe3-current_line.

  IF sy-subrc EQ 0.

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

    IF marcd_l EQ 'X' AND itab_det_exp-marcd_l NE 'X'.

      CLEAR: itab_det_exp-marcd_l.

      MODIFY itab_det_exp TRANSPORTING marcd_l

         WHERE marcd_l EQ 'X'.

    ENDIF.

* << Fim da inclusão

    itab_det_exp-marcd_l = marcd_l.

    MODIFY itab_det_exp INDEX tc_detalhe3-current_line.

  ENDIF.

  MODIFY itab_det_exp INDEX tc_detalhe3-current_line.

ENDMODULE.

MODULE user_command_0306 INPUT.

  CASE ok_code3.

    WHEN 'FS_RES_IMP3'.

      pressed_tab_3c_3 = ok_code3.

      dynpronr3c_3     = '0307'.

...

 

...

ENDMODULE.

MODULE preenche_itab_comp_vinc INPUT.

  itab_comp_vinc-codcomp   = /pws/zycie261-codcomp  .

  itab_comp_vinc-qtd_iten  = /pws/zycie261-qtd_iten .

  itab_comp_vinc-qtd_total = /pws/zycie261-qtd_total.

  itab_comp_vinc-marc_cp   = marc_cp           .

ENDMODULE.

MODULE insert_itab_comp_vinc INPUT.

  READ TABLE itab_comp_vinc INDEX tc_vcp3-current_line.

  IF sy-subrc EQ 0.

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

    IF marc_cp EQ 'X' AND itab_comp_vinc-marc_cp IS INITIAL.

      MODIFY itab_comp_vinc TRANSPORTING marc_cp

        WHERE marc_cp EQ 'X'.

    ENDIF.

* << Fim da inclusão

    itab_comp_vinc-marc_cp = marc_cp.

    MODIFY itab_comp_vinc INDEX tc_vcp3-current_line.

  ENDIF.

ENDMODULE.

MODULE user_command_0304 INPUT.

  CASE ok_code3.

    WHEN 'FIRST'.

      PERFORM trata_button_first_0304.

    WHEN 'PRIOR'.

      PERFORM trata_button_prior_0304.

...

 

...

  itab_res_imp-qtd_di   = /pws/zycie260-qtd_di  .

  itab_res_imp-qtd_vinc = /pws/zycie260-qtd_vinc.

  itab_res_imp-vlfob    = /pws/zycie260-vlfob_t .

  itab_res_imp-dtpdi    = v_dtpdi          .

  itab_res_imp-dtudi    = v_dtudi          .

  itab_res_imp-marc_l   = marci_l          .

ENDMODULE.

MODULE insert_itab_res_imp INPUT.

  READ TABLE itab_res_imp INDEX tc_res_imp3-current_line.

  IF sy-subrc EQ 0.

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

    IF marci_l EQ 'X' AND itab_res_imp-marc_l NE 'X'.

      MODIFY itab_res_imp TRANSPORTING marc_l

          WHERE marc_l EQ 'X'.

    ENDIF.

* << Fim da inclusão

    itab_res_imp-marc_l = marci_l.

    MODIFY itab_res_imp INDEX tc_res_imp3-current_line.

  ENDIF.

ENDMODULE.

MODULE user_command_0301 INPUT.

  CASE ok_code3.

    WHEN 'SELE'.

      PERFORM trata_sele_0301.

    WHEN 'ADDCENTRO'.

      PERFORM adiciona_centro3.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064O01

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064TOP

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064TOP2

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064TOP3

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI064X01

 

...

      v_ico_vcp3        TYPE icon-id                     ,

      v_ico_det3        TYPE icon-id                     ,

      marc_cp(1)        TYPE c                           ,

      v_vsel(1)         TYPE c                           ,

      v_vtc(1)          TYPE c                           ,

      v_execloop(1)     TYPE c                           ,

      v_var_camb3(16)   TYPE c                           ,

      v_var_cambt3(16)  TYPE c                           ,

      v_dtaux           LIKE /pws/zycee116-dtincl             ,

      v_idxtmp          LIKE sy-tabix                    ,

* >> Início da exclusão:

      tt_ii             LIKE /pws/zycie260d-i_vlii            ,

      tt_ipi            LIKE /pws/zycie260d-i_vlipi           ,

* << Fim da exclusão

* >> Início da inclusão:

      tt_ii             LIKE /pws/zycie260d-t_benef            ,

      tt_ipi            LIKE /pws/zycie260d-t_benef           ,

* << Fim da inclusão

      tt_icms           LIKE /pws/zycie260d-i_vlicms          ,

* >> Início da exclusão:

      tt_afrmm          LIKE /pws/zycie260d-vlafrmm           ,

      tt_pis            LIKE /pws/zycie260d-vlpis             ,

      tt_cofins         LIKE /pws/zycie260d-vlcofins          ,

* << Fim da exclusão

* >> Início da inclusão:

      tt_afrmm          LIKE /pws/zycie260d-t_benef          ,

      tt_pis            LIKE /pws/zycie260d-t_benef           ,

      tt_cofins         LIKE /pws/zycie260d-t_benef          ,

* << Fim da inclusão

      tt_benef          LIKE /pws/zycie260d-t_benef           ,

* >> Início da inclusão:

      v_ii             LIKE /pws/zycie260d-t_benef            ,

      v_ipi            LIKE /pws/zycie260d-t_benef           ,

      v_afrmm          LIKE /pws/zycie260d-t_benef          ,

      v_pis            LIKE /pws/zycie260d-t_benef           ,

      v_cofins         LIKE /pws/zycie260d-t_benef          ,

* << Fim da inclusão

      tt_comp3          LIKE /pws/zycie260d-t_benef           ,

      tt_geral3         LIKE /pws/zycie260d-t_benef           ,

      v_detcomp1        LIKE /pws/zycie260-codcomp            ,

      v_detcomp2(40)    TYPE c                           ,

      v_descr_0308(40)  TYPE c                           ,

* >> Início da exclusão:

      v_tiires_0303     LIKE /pws/zycie260d-i_vlii            ,

      v_tipires_0303    LIKE /pws/zycie260d-i_vlipi           ,

* << Fim da exclusão

* >> Início da inclusão:

      v_tiires_0303     LIKE /pws/zycie260d-t_benef           ,

      v_tipires_0303    LIKE /pws/zycie260d-t_benef           ,

* << Fim da inclusão

      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   ,

      v_count type i,

      v_ico_t           TYPE icon-id                     .

* >> Início da inclusão:

DATA: v_lines TYPE i.

DATA: v_fixo TYPE i VALUE 0.

DATA: v_percent(100) .

* << Fim da inclusão

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  ,

        qtd_vinc  TYPE /pws/zycie260-qtd_vinc,

...

 

...

DATA: qtd_orig LIKE /pws/zycit245-qtd_tot,

      marc_cp(1)  TYPE c.

DATA: END OF itab_comp_vinc_final.

DATA: BEGIN OF itab_di OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie260.

DATA: END OF itab_di.

DATA: BEGIN OF itab_zycit260 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie260.

DATA: END OF itab_zycit260.

DATA: itab_di_final_aux LIKE itab_di_final OCCURS 0 WITH HEADER LINE.

* >> Início da inclusão:

DATA: BEGIN OF itab_dis OCCURS 0.

        INCLUDE STRUCTURE /pws/zycie260.

DATA: END OF itab_dis.

* << Fim da inclusão

DATA : BEGIN OF itab_zycit036 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit036.

DATA : END   OF itab_zycit036.

DATA : BEGIN OF itab_zycit247_lt OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit247.

DATA: flag.

DATA : END   OF itab_zycit247_lt.

DATA : BEGIN OF itab_zycit245_lt OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit245.

DATA : END   OF itab_zycit245_lt.

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI064

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 301

 

Texto: (16 caracteres)

"Calculando DI¿s."

 

Comprimento máximo: 16

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 302

 

Texto: (15 caracteres)

"Vinculando DI¿s"

 

Comprimento máximo: 15