CE PLUS - Nota 007146

Módulo: DRAWBACK

Funcionalidade: Apropriação

Data/Hora da Publicação: 15/08/2008 00:00:00

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

Descrição da Nota: AJUSTES PARA TRATAR COMPRAS NO MERCADO INTERNO

Sintoma

Atualização do programa de apropriação para tratativa de processos utilziando lista técnica por

agrupamento.

 

 

Solução

Atualização do programa de apropriação para tratativa de processos utilziando lista técnica por

agrupamento.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ORDENAÇÃO DAS IMPORTAÇÕES NA APROPRIAÇÃO

Informações Complementares

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

Nota Número 07146 Data: 15/08/2008 Hora: 08:43:43

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

 

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

Nota Número              : 07146

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00060

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

Referência às notas relacionadas:

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

 

04167  - 00001 - 7.0    - 00002  - ORDENAÇÃO DAS IMPORTAÇÕES NA APROPRIAÇÃO

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

AJUSTES PARA TRATAR COMPRAS NO MERCADO INTERNO

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

Palavras Chave:

COMPRAS - MERCADO - INTERNO - APROPRIAÇÃO

/PWS/ZYCIR254

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

Objetos da nota:

REPS /PWS/ZYCIR254

REPS /PWS/ZYCIR254F01

REPS /PWS/ZYCIR254O01

REPS /PWS/ZYCIR254X01

MENU /PWS/ZYCID

 

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

Modificações efetuadas em REPS /PWS/ZYCIR254

 

* >> Início da exclusão:

REPORT /pws/zycir070 MESSAGE-ID /pws/zycim.

* << Fim da exclusão

* >> Início da inclusão:

REPORT /pws/zycir254 MESSAGE-ID /pws/zycim.

* << Fim da inclusão

INCLUDE /pws/zycir254x01.

CONTROLS: tc_exp      TYPE TABLEVIEW USING SCREEN '0001',

          tc_exp_ap   TYPE TABLEVIEW USING SCREEN '0002',

          tc_imp_ap   TYPE TABLEVIEW USING SCREEN '0005',

          tc_imp_ap2   TYPE TABLEVIEW USING SCREEN '0006',

          tc_mer_ap   TYPE TABLEVIEW USING SCREEN '0006',

          tc_log      TYPE TABLEVIEW USING SCREEN '0003',

          tc_exp_desa TYPE TABLEVIEW USING SCREEN '0004'.

TABLES: ekko    ,

        t001         ,

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR254F01

 

...

      it_zycet002-mexp = 'X'.

      MODIFY it_zycet002 INDEX v_indicatu.

    ENDIF.

    PERFORM locate_record_appropriation.

    CALL SCREEN 0002.

  ELSE.

    MESSAGE s015 WITH text-002 text-003.

  ENDIF.

ENDFORM.

FORM run_appropriation_exportation.

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

  DATA: v_ncm_temp(5),

* << Fim da exclusão

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

  DATA: v_ncm_temp(10),

* << Fim da inclusão

        v_ncm_b LIKE it_zycet002_grp-steuc.

  PERFORM verifica_exit USING 'D'

                             '/PWS/ZYCIR254'

                             'APR004'.

  e_subrc = 0.

  CLEAR itab_zyglt100 .

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

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

...

 

...

              dtate >= sy-datum.

      CLEAR it_zycet001. REFRESH it_zycet001.

      SELECT * FROM /pws/zycet001 INTO TABLE it_zycet001

          FOR ALL ENTRIES IN it_zycet002

          WHERE nrseq EQ it_zycet002-nrseq.

      CLEAR it_zycit281.

      REFRESH it_zycit281.

      SELECT * FROM /pws/zycit281 INTO TABLE it_zycit281

             FOR ALL ENTRIES IN it_zycet002

             WHERE matnr EQ it_zycet002-matnr.

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

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

        CLEAR it_agrup. REFRESH it_agrup.

        SELECT * FROM mvke INTO TABLE it_agrup

            FOR ALL ENTRIES IN it_zycet002

            WHERE matnr EQ it_zycet002-matnr

              AND vkorg EQ it_zycet002-vkorg_auft

              AND vtweg EQ it_zycet002-vtweg_auft.

        CLEAR it_zycet002_grp. REFRESH it_zycet002_grp.

        it_zycet002_grp[] = it_zycet002[].

        CLEAR it_zycit247. REFRESH it_zycit247.

        LOOP AT it_zycet002_grp.

          READ TABLE it_agrup WITH KEY matnr = it_zycet002_grp-matnr.

          IF sy-subrc EQ 0.

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

              v_ncm_temp = it_zycet002_grp-steuc.

              IF v_ncm_temp+4(1) EQ '.'.

                v_ncm_temp+4 = it_zycet002_grp-steuc+5(1) .

              ENDIF.

            ELSE.

              v_ncm_temp = it_zycet002_grp-steuc.

            ENDIF.

           SELECT SINGLE agrup nrdprod FROM /pws/zycit423"#EC CI_NOFIELD

                    INTO (it_zycet002_grp-grp, it_zycet002_grp-nrdprod)

                                   WHERE mvgr1 = it_agrup-mvgr1

                                     AND ncm   = v_ncm_temp.

            IF sy-subrc EQ 0.

              MODIFY it_zycet002_grp TRANSPORTING grp nrdprod.

              READ TABLE it_zycit247

                       WITH KEY j_1bnbm = it_zycet002_grp-steuc

                                werks   = it_zycet002_grp-werks

                                agrup   = it_zycet002_grp-grp.

              IF sy-subrc NE 0.

                SELECT * FROM /pws/zycit247 APPENDING TABLE it_zycit247

                        WHERE j_1bnbm  EQ it_zycet002_grp-steuc

                          AND werks    EQ it_zycet002_grp-werks

                          AND agrup    EQ it_zycet002_grp-grp

                        AND esgotado EQ space.          "#EC CI_NOFIELD

              ENDIF.

            ELSE.

              CLEAR: v_errolog, it_log_erro.

              CONCATENATE text-038 it_zycet002_grp-grp '/'

                          it_zycet002-steuc text-039

                                      INTO v_errolog SEPARATED BY space.

              MOVE v_errolog TO it_log_erro.

              APPEND it_log_erro.

            ENDIF.

          ENDIF.

        ENDLOOP.

        SORT it_zycit247 BY  nrseqd j_1bnbm  agrup.

        DELETE ADJACENT DUPLICATES FROM it_zycit247 COMPARING

                                                 nrseqd j_1bnbm  agrup .

      ELSE.

* << Fim da inclusão

      CLEAR it_zycit247. REFRESH it_zycit247.

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

      SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247 "#EC CI_NOFIELD

* << Fim da exclusão

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

       SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247"#EC CI_NOFIELD

* << Fim da inclusão

             FOR ALL ENTRIES IN it_zycet002

             WHERE j_1bnbm  EQ it_zycet002-steuc

               AND esgotado EQ space.

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

      ENDIF.

* << Fim da inclusão

      IF sy-subrc EQ 0.

        CLEAR it_zycit244. REFRESH it_zycit244.

        SELECT * FROM /pws/zycit244 INTO TABLE it_zycit244

               FOR ALL ENTRIES IN it_zycit247

               WHERE nrseqd     EQ it_zycit247-nrseqd

                 AND status     EQ 'D'

                 AND ( tipo     EQ 'C' OR tipo EQ 'F' OR tipo EQ 'G' )

                 AND vcto_fn    >= sy-datum

                 AND dtatoc     NE '00000000'

                 AND modalidade EQ 'S'.

        CLEAR it_zycit245. REFRESH it_zycit245.

        SELECT * FROM /pws/zycit245 INTO TABLE it_zycit245

               FOR ALL ENTRIES IN it_zycit247

               WHERE nrseqd EQ it_zycit247-nrseqd.

        CLEAR it_zycit279. REFRESH it_zycit279.

        SELECT * FROM /pws/zycit279 INTO

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

        TABLE it_zycit279 "#EC CI_NOFIRST

* << Fim da exclusão

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

        TABLE it_zycit279                               "#EC CI_NOFIRST

* << Fim da inclusão

                 FOR ALL ENTRIES IN it_zycit247

                 WHERE nrseqd   EQ it_zycit247-nrseqd

                   AND esgotado EQ space.

        CLEAR itab_stko. REFRESH itab_stko.

        SELECT * FROM stko INTO TABLE itab_stko

               FOR ALL ENTRIES IN it_zycit247

               WHERE stlty EQ 'M'

                 AND stlnr EQ it_zycit247-stlnr

                 AND stlal EQ it_zycit247-stlal.

      ENDIF.

      PERFORM sort_records_zycit247.

      PERFORM lock_record_receb.

      PERFORM lock_record_ato.

      SORT it_zycit279 BY dtdi nrseq+8(2) nrseq(8) ebeln ebelp matnr.

      LOOP AT it_zycet002.

        IF t001-bukrs NE it_zycet002-bukrs.

          SELECT SINGLE * FROM t001 WHERE bukrs EQ it_zycet002-bukrs.

        ENDIF.

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

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

          READ TABLE it_zycet002_grp WITH KEY

                                          nrseq    = it_zycet002-nrseq

                                        vbeln_va = it_zycet002-vbeln_va

                                          aupos    = it_zycet002-aupos

                                        vbeln_vf = it_zycet002-vbeln_vf

                                          posnr    = it_zycet002-posnr

                                          docnum   = it_zycet002-docnum

                                        vbeln_vl = it_zycet002-vbeln_vl

                                          posnl    = it_zycet002-posnl

                                          ebeln    = it_zycet002-ebeln

                                          ebelp    = it_zycet002-ebelp.

          SELECT SINGLE bldat FROM likp INTO v_dtforn

              WHERE vbeln EQ it_zycet002-vbeln_vl.

          PERFORM aprop_currenty_rec_agrup.

        ELSE.

* << Fim da inclusão

        PERFORM converte_um_base USING    it_zycet002-matnr

                              CHANGING it_zycet002-vrkme

                                       it_zycet002-fkimg.

        IF it_zycet002-fkimg IS INITIAL.

          CONTINUE.

        ENDIF.

        READ TABLE it_zycit281 WITH KEY matnr = it_zycet002-matnr

                                        werks = it_zycet002-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 )

          INTO it_zycet002-werks

          WHERE b~matnr EQ it_zycet002-matnr

            AND b~werks EQ it_zycet002-werks

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

            AND a~beskz EQ 'F'.  "#EC CI_BUFFJOIN

* << Fim da exclusão

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

             AND a~beskz EQ 'F'.                       "#EC CI_BUFFJOIN

* << Fim da inclusão

          IF sy-subrc EQ 0.

            READ TABLE it_zycit281 WITH KEY matnr = it_zycet002-matnr

                                            werks = it_zycet002-werks.

          ENDIF.

        ENDIF.

        IF sy-subrc EQ 0.

          CLEAR: it_stpox, it_stpox2, it_matcat.

          REFRESH: it_stpox, it_stpox2, it_matcat. v_errolt = 'N'.

          PERFORM get_bom_of_materials TABLES it_stpox2

                                              it_matcat

...

 

...

            MOVE v_errolog TO it_log_erro.

            APPEND it_log_erro.

          ENDIF.

        ELSE.

          CLEAR: v_errolog, it_log_erro.

          CONCATENATE text-016 it_zycet002-matnr

                                    INTO v_errolog SEPARATED BY space.

          MOVE v_errolog TO it_log_erro.

          APPEND it_log_erro.

        ENDIF.

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

        ENDIF.

* << Fim da inclusão

      ENDLOOP.

    ENDIF.

    SORT it_log_erro BY ltext.

    DELETE ADJACENT DUPLICATES FROM it_log_erro .

  ENDIF.

  SORT it_apr_final BY matnr_imp nrseqimp ebeln ebelp.

ENDFORM.

FORM check_buttons_screen.

  REFRESH it_buttons.

  CASE sy-dynnr.

...

 

...

  CLEAR i_final. REFRESH i_final.

  CLEAR it_materiais. REFRESH it_materiais.

  it_materiais-matnr = p_matnr.

  it_materiais-werks = p_werks.

  it_materiais-stlan = p_stlan.

  it_materiais-stlnr = p_stlnr.

  it_materiais-stlal = p_stlal.

  it_materiais-capid = p_capid.

  APPEND it_materiais.

  EXPORT it_materiais TO MEMORY ID idmemory1.

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

  SUBMIT (v_trans) AND RETURN."#EC CI_SUBMIT

* << Fim da exclusão

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

  SUBMIT (v_trans) AND RETURN.                           "#EC CI_SUBMIT

* << Fim da inclusão

  IMPORT i_final FROM MEMORY ID idmemory2.

  IF sy-subrc NE 0 OR i_final[] IS INITIAL.

    p_erro = 'S'.

  ELSE.

    SELECT * FROM /pws/zycit327 INTO TABLE itab_zycit327

           FOR ALL ENTRIES IN i_final

           WHERE produto EQ i_final-produto

             AND centro  EQ i_final-centro.

    LOOP AT i_final.

      READ TABLE itab_zycit327 WITH KEY produto = i_final-produto

...

 

...

      MODIFY it_zycit279 TRANSPORTING matnr_alt

        WHERE matnr  EQ itab_zycit433t-matnr

          AND nrseqd EQ it_zycit247-nrseqd.

    ENDLOOP.

    CLEAR: v_qtdtot, v_qtd_perda, v_perda, it_zycit245.

    LOOP AT it_zycit279 WHERE matnr_alt EQ itab_lista-matnr

                          AND esgotado = space

                          AND nrseqd   = it_zycit247-nrseqd    .

      CLEAR: v_perda, v_dias.

      v_dias = v_dtforn - it_zycit279-dtnf.

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

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

        IF it_zycet002_grp-nrdprod > v_dias.

          CONTINUE.

        ENDIF.

      ELSE.

* << Fim da inclusão

      IF it_zycit281-nrdprod > v_dias.

        CONTINUE.

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

        ENDIF.

* << Fim da inclusão

      ENDIF.

      READ TABLE itab_zycit439 WITH KEY

          insumo = it_zycit279-matnr

          matnr  = it_zycet002-matnr.

      IF sy-subrc NE 0 OR

...

 

...

        MODIFY it_zycit279 TRANSPORTING matnr_alt

          WHERE matnr  EQ itab_zycit433t-matnr

            AND nrseqd EQ it_zycit247-nrseqd.

      ENDLOOP.

      CLEAR: v_aprcomum.

      LOOP AT it_zycit279 WHERE nrseqd   = it_zycit247-nrseqd

                            AND esgotado = space

                            AND matnr_alt EQ itab_lista_aux-matnr.

        CLEAR v_dias.

        v_dias = v_dtforn - it_zycit279-dtnf.

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

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

          IF it_zycet002_grp-nrdprod > v_dias.

            CONTINUE.

          ENDIF.

        ELSE.

* << Fim da inclusão

        IF it_zycit281-nrdprod > v_dias.

          CONTINUE.

        ENDIF.

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

        ENDIF.

* << Fim da inclusão

        CLEAR it_apr_final.

        MOVE: it_zycet002-nrseq    TO it_apr_final-nrseqexp  ,

              it_zycet002-vbeln_va TO it_apr_final-vbeln_va  ,

              it_zycet002-aupos    TO it_apr_final-aupos     ,

...

 

...

         ( it_apr_final-qtd_iorg * ( it_apr_final-perda_e / 100 ) ).

        v_qtdtmp2 = v_qtdtmp2 - it_apr_final-qtd_mimp -

                                it_apr_final-qtd_perda_e .

        it_apr_final-qtd_perda =

              ( it_apr_final-qtd_mimp + it_apr_final-qtd_perda_e )

                        * ( it_apr_final-perda / 100 ).

        itab_lista_aux-qtd = itab_lista_aux-qtd -

                 it_apr_final-qtd_mimp - it_apr_final-qtd_perda_e.

        DATA: v_nrseqdi LIKE /pws/zycit085-nrseqdi.

        FREE itab_zycit246.

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

        SELECT SINGLE * FROM /pws/zycit094 "#EC CI_NOFIRST

* << Fim da exclusão

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

        SELECT SINGLE * FROM /pws/zycit094              "#EC CI_NOFIRST

* << Fim da inclusão

        INTO /pws/zycit094

        WHERE nrseq EQ it_apr_final-nrseqimp.

        IF sy-subrc = 0.

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

          SELECT SINGLE nrdi dtreg dttax "#EC CI_NOFIELD

* << Fim da exclusão

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

          SELECT SINGLE nrdi dtreg dttax                "#EC CI_NOFIELD

* << Fim da inclusão

          FROM /pws/zycit085

...

 

...

        i_ebeln    LIKE ekko-ebeln      ,

        v_nrseqdi  LIKE /pws/zycie085-nrseqdi,

        v_tpdi     LIKE /pws/zycie085-tpdi   .

  CLEAR: v_campo, v_valor.

  GET CURSOR FIELD v_campo VALUE v_valor.

  CASE v_campo.

    WHEN '/PWS/ZYCEE002-NRSEQ'.

      IF NOT v_valor IS INITIAL.

        SET PARAMETER ID '/PWS/ZYCEP001' FIELD v_valor.

        CALL TRANSACTION '/PWS/ZYCE003_E' AND

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

        SKIP FIRST SCREEN. "#EC CI_CALLTA

* << Fim da exclusão

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

        SKIP FIRST SCREEN.                               "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN '/PWS/ZYCEE002-VBELN_VA'.

      IF NOT v_valor IS INITIAL.

        v_vbeln_va = v_valor.

        SET PARAMETER ID 'AUN' FIELD v_vbeln_va.

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

        CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.   "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN '/PWS/ZYCEE002-VBELN_VF'.

      IF NOT v_valor IS INITIAL.

        v_vbeln_vf = v_valor.

        SET PARAMETER ID 'VF' FIELD v_vbeln_vf.

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

        CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.   "#EC CI_CALLTA

* << Fim da inclusão

      ENDIF.

    WHEN '/PWS/ZYCEE002-VBELN_VL'.

      IF NOT v_valor IS INITIAL.

        v_vbeln_vl = v_valor.

        SET PARAMETER ID 'VL' FIELD v_vbeln_vl.

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

        CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.  "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN '/PWS/ZYCEE002-DOCNUM'.

      IF NOT v_valor IS INITIAL.

        v_docnum = v_valor.

        SET PARAMETER ID 'JEF' FIELD v_docnum.

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

        CALL TRANSACTION 'J1B3' AND SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN.  "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN 'WA_REAL_MERC-DOCNUM'.

      IF NOT v_valor IS INITIAL.

        v_docnum = v_valor.

        SET PARAMETER ID 'JEF' FIELD v_docnum.

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

        CALL TRANSACTION 'J1B3' AND SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'J1B3N' AND SKIP FIRST SCREEN.  "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN '/PWS/ZYCIE282-EBELN'.

      IF NOT v_valor IS INITIAL.

        SELECT SINGLE ebeln FROM ekko INTO ekko

               WHERE ebeln = v_valor.

        IF sy-subrc EQ 0.

          i_ebeln = v_valor.

          SET PARAMETER ID 'BES' FIELD i_ebeln.

          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN."#EC CI_CALLTA

...

 

...

        IF sy-subrc EQ 0.

          i_ebeln = v_valor.

          SET PARAMETER ID 'BES' FIELD i_ebeln.

          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN."#EC CI_CALLTA

        ENDIF.

      ENDIF.

    WHEN '/PWS/ZYCIE282-NRSEQIMP'.

      IF NOT v_valor IS INITIAL.

        SET PARAMETER ID '/PWS/ZYCIP001' FIELD v_valor.

        CALL TRANSACTION '/PWS/ZYCI001_E' AND

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

        SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        SKIP FIRST SCREEN.                               "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN 'WA_REAL_MERC-NRSEQD'.

      IF NOT v_valor IS INITIAL.

        SET PARAMETER ID '/PWS/ZYCIP435' FIELD v_valor.

        CALL TRANSACTION '/PWS/ZYCI040_E' AND

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

        SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        SKIP FIRST SCREEN.                               "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

    WHEN '/PWS/ZYCIE282-NRSEQD'.

      IF NOT v_valor IS INITIAL.

        SET PARAMETER ID '/PWS/ZYCIP435' FIELD v_valor.

        CALL TRANSACTION '/PWS/ZYCI040_E' AND

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

        SKIP FIRST SCREEN."#EC CI_CALLTA

* << Fim da exclusão

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

        SKIP FIRST SCREEN.                               "#EC CI_CALLTA

* << Fim da inclusão

        CLEAR ok_code.

      ENDIF.

  ENDCASE.

ENDFORM.

FORM collect_materials TABLES it_stpox  STRUCTURE it_stpox

                              it_stpox2 STRUCTURE it_stpox2

                              it_matcat STRUCTURE it_matcat.

  DATA: v_qtd LIKE it_stpox-mngko.

  SORT it_stpox  BY ttidx ASCENDING.

  SORT it_matcat BY index ASCENDING.

...

 

...

    ENDIF.

  ENDIF.

  IF v_um_rez IS INITIAL

    OR v_um_ren IS INITIAL.

    EXIT.

  ENDIF.

  p_qtd = ( p_qtd / v_um_ren ) * v_um_rez.

  p_meins = v_meinsb.

ENDFORM.

FORM cob_camb.

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

  DATA: v_nrseqd_temp TYPE /pws/zycit244-nrseqd.

  CLEAR: v_nrseqd_temp.

  SORT it_apr_final BY nrseqd.

* << Fim da exclusão

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

  DATA: itab_nrseqd_temp TYPE /pws/zycit244-nrseqd OCCURS 0

                                              WITH HEADER LINE.

  REFRESH: itab_nrseqd_temp.

* << Fim da inclusão

  LOOP AT it_apr_final WHERE nrseqexp EQ it_zycet002-nrseq

                         AND vbeln_va EQ it_zycet002-vbeln_va

                         AND vbeln_vl EQ it_zycet002-vbeln_vl

                         AND posnl EQ it_zycet002-posnl

                         AND nrseqimp NE space.

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

    IF v_nrseqd_temp NE it_apr_final-nrseqd.

* << Fim da exclusão

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

    READ TABLE itab_nrseqd_temp WITH KEY it_apr_final-nrseqd.

    IF sy-subrc NE 0.

* << Fim da inclusão

      v_exp_camb = v_exp_camb + it_apr_final-exp_c_cob_camb.

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

      v_nrseqd_temp = it_apr_final-nrseqd.

* << Fim da exclusão

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

      APPEND it_apr_final-nrseqd TO itab_nrseqd_temp.

* << Fim da inclusão

    ENDIF.

    v_ebelp2   = it_apr_final-ebelp.

    v_imp_camb =  v_imp_camb + it_apr_final-imp_s_cob_camb.

...

 

...

         v_destino LIKE tcurc-/pws/codmo,

         v_taxa    LIKE /pws/zycit174-txconver,

         v_taxa2   LIKE /pws/zycit174-txconver.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_origem WHERE

         waers = p_waersde.

  IF sy-subrc EQ 0.

    CLEAR v_taxa.

    SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa WHERE

           codconver = v_origem    AND

           vigen_inicio <= p_data AND

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

           vigen_fim    >= p_data . "#EC CI_NOFIRST

* << Fim da exclusão

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

           vigen_fim    >= p_data .                     "#EC CI_NOFIRST

* << Fim da inclusão

    IF sy-subrc NE 0 AND p_waersde EQ 'BRL'.

      v_taxa = 1.

    ENDIF.

  ENDIF.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_destino WHERE

         waers = p_waerspara.

  IF sy-subrc EQ 0.

    CLEAR v_taxa2.

    SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa2 WHERE

           codconver = v_destino    AND

           vigen_inicio <= p_data AND

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

           vigen_fim    >= p_data. "#EC CI_NOFIRST

* << Fim da exclusão

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

           vigen_fim    >= p_data.                      "#EC CI_NOFIRST

* << Fim da inclusão

  ENDIF.

  IF NOT v_taxa IS INITIAL AND NOT v_taxa2 IS INITIAL.

    p_valor = ( p_valor * v_taxa ) / v_taxa2.

  ENDIF.

ENDFORM.

FORM converte_um_ncm USING p_matnr

                     CHANGING p_meins

                              p_werks

                              p_qtd.

  DATA: v_cod_umncm   LIKE /pws/zyglt204-zum ,

...

 

...

  IF p_werks IS INITIAL.

    CLEAR p_qtd.

    EXIT.

  ENDIF.

  CLEAR v_cod_umncm.

  SELECT SINGLE a~steuc INTO v_j_1bnbm

         FROM ( marc AS a INNER JOIN t001w AS b ON

                a~werks EQ b~werks )

         WHERE a~matnr EQ p_matnr

           AND a~steuc NE space

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

           AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN

* << Fim da exclusão

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

           AND b~land1 EQ t001-land1.                  "#EC CI_BUFFJOIN

* << Fim da inclusão

  IF sy-subrc EQ 0.

    SELECT SINGLE land1 /pws/zum

             FROM t604f INTO (v_codpais, v_cod_umncm)

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

             WHERE steuc = v_j_1bnbm. "#EC CI_GENBUFF

* << Fim da exclusão

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

             WHERE steuc = v_j_1bnbm.                   "#EC CI_GENBUFF

* << Fim da inclusão

  ENDIF.

  IF NOT v_cod_umncm IS INITIAL.

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

    SELECT SINGLE msehi "#EC CI_NOFIELD

* << Fim da exclusão

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

    SELECT SINGLE msehi                                 "#EC CI_NOFIELD

* << Fim da inclusão

             FROM /pws/zyglt204 INTO (v_umncm)

             WHERE zum = v_cod_umncm.

    IF sy-subrc NE 0.

      MESSAGE i015 WITH text-072 text-073 v_j_1bnbm.

      CLEAR p_qtd.

      EXIT.

    ENDIF.

    v_conv1 = 1.

    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'

         EXPORTING

...

 

...

  DATA: v_conv1       TYPE /pws/zycit245-qtd_ncm,

        v_conv2       TYPE /pws/zycit245-qtd_ncm.

  CLEAR: v_um_rez, v_um_ren, v_codpais, v_cod_umncm, v_umncm,

         v_um_rez2, v_um_ren2.

  CLEAR v_cod_umncm.

  SELECT SINGLE a~steuc INTO v_j_1bnbm

         FROM ( marc AS a INNER JOIN t001w AS b ON

                a~werks EQ b~werks )

         WHERE a~matnr EQ p_matnr

           AND a~steuc NE space

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

           AND b~land1 EQ t001-land1. "#EC CI_BUFFJOIN

* << Fim da exclusão

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

           AND b~land1 EQ t001-land1.                  "#EC CI_BUFFJOIN

* << Fim da inclusão

  v_conv1 = 1.

  CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'

       EXPORTING

            input                = v_conv1

            no_type_check        = 'X'

            round_sign           = 'X'

            unit_in              = p_de

            unit_out             = p_para

       IMPORTING

            denominator          = v_um_ren

...

 

...

      it_zycit279-matnr_alt = itab_zycit433t-matnr.

      MODIFY it_zycit279 TRANSPORTING matnr_alt

        WHERE matnr  EQ itab_zycit433t-matnr_alt

          AND nrseqd EQ it_zycit247f-nrseqd.

    ENDLOOP.

    LOOP AT it_zycit279 WHERE nrseqd   = it_zycit247f-nrseqd

                          AND esgotado = space

                          AND matnr_alt EQ itab_lista_aux-matnr.

      CLEAR v_dias.

      v_dias = v_dtforn - it_zycit279-dtnf.

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

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

        IF it_zycet002_grp-nrdprod > v_dias.

          CONTINUE.

        ENDIF.

      ELSE.

* << Fim da inclusão

      IF it_zycit281-nrdprod > v_dias.

        CONTINUE.

      ENDIF.

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

      ENDIF.

* << Fim da inclusão

      CLEAR it_apr_final.

      MOVE: it_zycet002-nrseq    TO it_apr_final-nrseqexp  ,

            it_zycet002-vbeln_va TO it_apr_final-vbeln_va  ,

            it_zycet002-aupos    TO it_apr_final-aupos     ,

...

 

...

       EXCEPTIONS

            i_codmod_nao_encontrado = 1

            i_func_nao_encontrado   = 2

            i_zexit_nao_encontrado  = 3

            OTHERS                  = 4.

ENDFORM.

FORM aprop_lote.

  IF itab_zycit468[] IS INITIAL.

    EXIT.

  ENDIF.

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

  SELECT * FROM /pws/zycit439 INTO TABLE itab_zycit439."#EC CI_NOWHERE

* << Fim da exclusão

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

  SELECT * FROM /pws/zycit439 INTO TABLE itab_zycit439. "#EC CI_NOWHERE

* << Fim da inclusão

  SELECT * FROM /pws/zycit279 INTO TABLE it_zycit279

      FOR ALL ENTRIES IN itab_zycit468

      WHERE nrseq  EQ itab_zycit468-nrseqimp

        AND ebeln  EQ itab_zycit468-ebeln

        AND ebelp  EQ itab_zycit468-ebelp

        AND docnum EQ itab_zycit468-docnumimp

        AND buzei  EQ itab_zycit468-buzei

        AND lote   EQ itab_zycit468-lote_i.

  IF NOT it_zycit279[] IS INITIAL.

    SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247

...

 

...

         WHERE vbeln EQ it_zycet002-vbeln_vl

           AND posnr EQ it_zycet002-posnl.

    LOOP AT itab_lote .

      it_zycet002-lote = itab_lote-lote.

      MODIFY it_zycet002 TRANSPORTING lote

          WHERE vbeln_vl EQ itab_lote-vbeln

            AND posnl    EQ itab_lote-posnr.

    ENDLOOP.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM aprop_currenty_rec_agrup.

  DATA: v_apmat(1) TYPE c              ,

        v_diasv TYPE /pws/zycit321-dia_ant,

        v_qtdaprop LIKE /pws/zycet002-fkimg ,

        v_qtdbase  LIKE itab_stko-bmeng,

        v_error(1) TYPE c              .

  v_apmat = 'N'.

  CLEAR: it_zycet001.

  READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.

  IF it_zycet001-dtprev IS INITIAL.

    CLEAR: v_errolog, it_log_erro.

    CONCATENATE text-075 it_zycet002-nrseq text-077

                                    INTO v_errolog SEPARATED BY space.

    MOVE v_errolog TO it_log_erro.

    APPEND it_log_erro.

    EXIT.

  ENDIF.

  LOOP AT it_zycit247 WHERE agrup    EQ it_zycet002_grp-grp

                        AND j_1bnbm  EQ it_zycet002_grp-steuc

                        AND esgotado EQ ' '.

    CLEAR it_zycit244.

    READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247-nrseqd.

    IF it_zycit244-vcto_vg IS INITIAL.

      CLEAR: v_errolog, it_log_erro.

      CONCATENATE text-031 it_zycit244-nrseqd text-076

                                    INTO v_errolog SEPARATED BY space.

      MOVE v_errolog TO it_log_erro.

      APPEND it_log_erro.

      CONTINUE.

    ENDIF.

    v_diasv = it_zycit244-vcto_vg - it_zycet001-dtprev.

    IF v_diasv < /pws/zycit321-dia_ant.

      CONTINUE.

    ENDIF.

    IF v_qtdaprop >= it_zycet002-fkimg .

      EXIT.

    ENDIF.

    CLEAR: /pws/zycit421.

    SELECT SINGLE * FROM /pws/zycit421

        WHERE agrup EQ it_zycet002_grp-grp

          AND stlal EQ it_zycit247-stlal

          AND werks EQ it_zycit247-werks.

    CLEAR it_zycit422. REFRESH it_zycit422.

    SELECT * FROM /pws/zycit422 INTO TABLE it_zycit422

        WHERE agrup EQ it_zycet002_grp-grp

          AND stlal EQ it_zycit247-stlal

          AND werks EQ it_zycit247-werks

          AND datuv <= v_dtforn

          AND datub >= v_dtforn.

    PERFORM converte_unidade USING it_zycet002-matnr

                                    it_zycet002-vrkme

                                    it_zycit247-meins

                           CHANGING it_zycet002-fkimg.

    it_zycet002-vrkme = it_zycit247-meins.

    REFRESH itab_lista. CLEAR itab_lista.

    LOOP AT it_zycit422.

      IF NOT /pws/zycit421-base IS INITIAL.

        it_zycit422-menge = it_zycit422-menge / /pws/zycit421-base.

      ENDIF.

      PERFORM converte_um_ncm USING it_zycit422-idnrk

                        CHANGING it_zycit422-meins

                                 it_zycit422-werks

                                 it_zycit422-menge.

      itab_lista-matnr  = it_zycit422-idnrk.

      itab_lista-usagem = it_zycit422-menge.

      itab_lista-meins  = it_zycit422-meins.

      itab_lista-qtd    = it_zycit422-menge *

                                  it_zycet002-fkimg.

      APPEND itab_lista.

    ENDLOOP.

    IF sy-subrc EQ 0.

      v_qtdbase = 1.

    ELSE.

      CLEAR: v_errolog, it_log_erro.

      CONCATENATE text-016 it_zycet002-matnr

                                  INTO v_errolog SEPARATED BY space.

      MOVE v_errolog TO it_log_erro.

      APPEND it_log_erro.

    ENDIF.

    v_apmat = 'S'.

    v_error = 'N'.

    IF it_zycit244-tipo NE 'G'.

      PERFORM appropriate_tng CHANGING v_qtdaprop v_qtdbase v_error.

    ENDIF.

    IF v_error EQ 'S'.

      CONTINUE.

    ENDIF.

  ENDLOOP.

  IF v_apmat = 'N'.

    CLEAR: v_errolog, it_log_erro.

    CONCATENATE text-021 it_zycet002-matnr

                                      INTO v_errolog SEPARATED BY space.

    MOVE v_errolog TO it_log_erro.

    APPEND it_log_erro.

  ENDIF.

  MOVE v_qtdaprop TO it_zycet002-qtdbx.

  MODIFY it_zycet002.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/ZYCIR254O01

 

...

    CONCATENATE wa_real_merc-dispnf '%' INTO wa_real_merc-dispnf.

    TRANSLATE wa_real_merc-dispnf USING '.,' .

    TRANSLATE wa_real_merc-disp USING '.,' .

    wa_real_merc-saldor = it_apr_m-mengecom - it_apr_m-qtd_mimp .

    IF wa_real_merc-saldor < 0.

      wa_real_merc-saldor = 0.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE status_0006 OUTPUT.

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

  DATA: v_tipo TYPE c.

* << Fim da inclusão

  LOOP AT tc_imp_ap2-cols INTO wa_cols.

    IF /pws/zycit321-lote EQ space.

      IF wa_cols-screen-group1 EQ 'LOT'.

        wa_cols-invisible = 1.

        MODIFY tc_imp_ap2-cols FROM wa_cols.

      ENDIF.

    ELSE.

      IF wa_cols-screen-group2 EQ 'LOT'.

        wa_cols-invisible = 1.

        MODIFY tc_imp_ap2-cols FROM wa_cols.

      ENDIF.

    ENDIF.

  ENDLOOP.

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

  CLEAR: v_tipo.

  LOOP AT it_apr_m.

    READ TABLE it_zycit244

            WITH KEY nrseqd = it_apr_m-nrseqd.

    IF sy-subrc EQ 0 AND

       it_zycit244-tipo EQ 'F'.

      v_tipo = 'X'.

      EXIT.

    ENDIF.

  ENDLOOP.

* << Fim da inclusão

  LOOP AT tc_mer_ap-cols INTO wa_cols.

    IF /pws/zycit321-lote EQ space.

      IF wa_cols-screen-group1 EQ 'LOT'.

        wa_cols-invisible = 1.

        MODIFY tc_mer_ap-cols FROM wa_cols.

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

      ENDIF.

* << Fim da inclusão

      ENDIF.

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

    IF v_tipo IS INITIAL AND

       wa_cols-screen-name EQ 'WA_REAL_MERC-FORNEC'.

      wa_cols-invisible = 1.

      MODIFY tc_mer_ap-cols FROM wa_cols.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  DESCRIBE TABLE it_apr_m LINES v_linha.

  CLEAR: it_apr_m.

  tc_mer_ap-lines = v_linha.

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

  DESCRIBE TABLE it_apr LINES tc_imp_ap2-lines.

* << Fim da inclusão

ENDMODULE.

MODULE status_0005 OUTPUT.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR254X01

 

* >> Início da inclusão:

TABLES: /pws/zycit421.

* << Fim da inclusão

DATA: BEGIN OF COMMON PART a.

data: itab_zycit468 type /pws/zycit468 occurs 0 with header line.

DATA: BEGIN OF it_zycet002 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg ,

      lote    type /pws/zycit468-lote_e,

      mexp(1) TYPE c                   .

DATA: END OF it_zycet002.

DATA: BEGIN OF it_zycet001 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet001.

DATA: END OF it_zycet001.

DATA: BEGIN OF itab_zycit246 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit246.

DATA: END OF itab_zycit246.

DATA: BEGIN OF it_zycet002_grp OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg,

      mexp(1) TYPE c             ,

* >> Início da exclusão:

      grp     LIKE mvke-mvgr1   .

* << Fim da exclusão

* >> Início da inclusão:

      grp     LIKE mvke-mvgr1    ,

      nrdprod TYPE /pws/zycit423-nrdprod.

* << Fim da inclusão

DATA: END OF it_zycet002_grp.

DATA: BEGIN OF it_zycet002_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: END OF it_zycet002_aux.

DATA: BEGIN OF it_zycet002_desa OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdapr  LIKE /pws/zycit283-qtd_apr,

      mexp(1) TYPE c.

DATA: END OF it_zycet002_desa.

DATA: BEGIN OF it_apr OCCURS 0.

...

 

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

Modificações efetuadas em MENU /PWS/ZYCID

 

Forecast ( Planejamento de vendas )

Composição de Drawback Isenção

Ato Concessório

Apropriação de Exportação

       Apropriação Drawback Suspensão

       Desapropriação Drawback Suspensão

       Aprop. Susp. Intermediário-Importação/Trading Company

       Desap. Susp. Intermediário-Importação/Trading Company

* >> Início da exclusão:

       Apropriação Suspensão Comum por NCM

       Desapropriação  Suspensão Comum por NCM

* << Fim da exclusão

Vinculação de Importação

Siscomex

Entrada de Notas Fiscais (Mercado Interno)

Relatórios

Comprovação Drawback Intermediário-Importação / Comercial Exportadora

Parâmetros