CE PLUS - Nota 008060

Módulo: DRAWBACK

Funcionalidade: Ato Concessório

Data/Hora da Publicação: 16/02/2009 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:35:27

Descrição da Nota: ATO CENCESÓRIO INTERMEDIARIO EXPORTADOR COM LISTA POR AGRUPAMENTO

Sintoma

Ajustes no Ato Concessório para tratar lista técnica por agrupamento para intermediario exportador.

 

 

Solução

Ajustes no Ato Concessório para tratar lista técnica por agrupamento para intermediario exportador.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE NA SELEÇÃO DO CODIGO NCM DOS INSUMOS DA LISTA POR AGRUPAMENTO

AJUSTE NA SELEÇÃO DOS ATOS CONCESSÓRIOS PARA VINCULAÇÃO

ATO CONCESSÓRIO MOEDA AMERICANA /PWS/ZYCBT007

INCLUSÃO DE ITENS NO ATO CONCESSÓRIO POR MATERIAIS VINCULADO AO FORECAST

AJUSTADO CALCULO DO ICMS PROPORCIONAL A QUANTIDADE A SER NACIONALIZADA

ABRE CAMPO USAGEM(%) PARA PREENCHIMENTO QUANDO ESTE ESTIVER EM BRANCO.

REAPURAÇÃO DOS SALDOS, USAGEM, ITEM

Informações Complementares

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

Nota Número 08060 Data: 16/02/2009 Hora: 09:48:57

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

 

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

Nota Número              : 08060

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00086

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

Referência às notas relacionadas:

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

 

03936  - 00001 - 7.0    - 00001  - AJUSTADO CALCULO DO ICMS PROPORCIONAL A QUANTIDADE A SER NACIONAL

04160  - 00002 - 7.0    - 00002  - ATO CONCESSÓRIO MOEDA AMERICANA /PWS/ZYCBT007

04597  - 00003 - 7.0    - 00002  - AJUSTE NA SELEÇÃO DO CODIGO NCM DOS INSUMOS DA LISTA POR AGRUPAME

04609  - 00004 - 7.0    - 00003  - ABRE CAMPO USAGEM(%) PARA PREENCHIMENTO QUANDO ESTE ESTIVER EM BR

04672  - 00005 - 7.0    - 00003  - INCLUSÃO DE ITENS NO ATO CONCESSÓRIO POR MATERIAIS VINCULADO AO F

06382  - 00006 - 7.0    - 00005  - REAPURAÇÃO DOS SALDOS, USAGEM, ITEM

07249  - 00007 - 7.0    - 00006  - AJUSTE NA SELEÇÃO DOS ATOS CONCESSÓRIOS PARA VINCULAÇÃO

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

ATO CENCESÓRIO INTERMEDIARIO EXPORTADOR COM LISTA POR AGRUPAMENTO

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

Palavras Chave:

DESENVOLVIMENTO - ATO - CONCESSÓRIO - INTERMEDIARIO - EXPORTADOR - LISTA

/PWS/SAPMZYCI040 - AGRUPAMENTO

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

Objetos da nota:

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI040I01

REPS /PWS/MZYCI040O01

REPS /PWS/MZYCI052F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

        ELSE.

          wa_cols2-invisible = 0.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ENDIF.

      ENDIF.

    ELSE.

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

        IF /pws/zycie244-nrforecast IS INITIAL.

          IF wa_cols2-screen-group1 NE 'NEX'.

            wa_cols2-screen-input = v_status2.

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

           IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

            IF /pws/zycie244-tipo EQ 'G' OR

             ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

                                           /pws/zycit321-c_comum EQ 'X'.

              IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR'.

                wa_cols2-screen-input = 0.

              ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR_T'.

                wa_cols2-screen-input = 1.

              ENDIF.

            ELSE.

              IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR'.

                wa_cols2-screen-input = 1.

              ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE245-NETPR_T'.

...

 

...

      ENDIF.

    ENDIF.

    IF wa_cols2-screen-name EQ '/PWS/ZYCIE245-WAERS'.

      wa_cols2-invisible = 1.

      MODIFY tc_cimp2-cols FROM wa_cols2.

    ENDIF.

  ENDLOOP.

  LOOP AT tc_cimp2-cols INTO wa_cols2.

    CASE wa_cols2-screen-name.

      WHEN '/PWS/ZYCIE245-CODCOMP'.

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

        IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

        IF /pws/zycie244-tipo EQ 'G' OR

           ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

           ( /pws/zycit321-c_comum EQ 'X' AND

             /pws/zycie244-modalidade NE 'I' ).

          wa_cols2-invisible = 1.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ELSE.

          wa_cols2-invisible = 0.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ENDIF.

      WHEN '/PWS/ZYCIE245-WAERS'.

        wa_cols2-invisible = 1.

...

 

...

        IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

           ( /pws/zycit321-c_comum EQ 'X' AND

             /pws/zycie244-modalidade NE 'I' ).

          wa_cols2-invisible = 1.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ELSE.

          wa_cols2-invisible = 0.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ENDIF.

      WHEN '/PWS/ZYCIE245-MAKTX'.

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

        IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

        IF /pws/zycie244-tipo EQ 'G' OR

         ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

           ( /pws/zycit321-c_comum EQ 'X' AND

             /pws/zycie244-modalidade NE 'I' ).

          wa_cols2-invisible = 0.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ELSE.

          wa_cols2-invisible = 1.

          MODIFY tc_cimp2-cols FROM wa_cols2.

        ENDIF.

      WHEN '/PWS/ZYCIE245-QTD_PERDA'.

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

...

 

...

    IF v_tcode2 EQ '/PWS/ZYCI040_E'.

      IF wa_cols2-screen-group1 NE 'NEX'.

        wa_cols2-screen-input = v_status2.

        MODIFY tc_mexp2-cols FROM wa_cols2.

      ENDIF.

    ELSE.

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

        IF /pws/zycie244-nrforecast IS INITIAL.

          IF wa_cols2-screen-group1 NE 'NEX'.

            wa_cols2-screen-input = v_status2.

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

           IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

            IF /pws/zycie244-tipo EQ 'G' OR

              ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

                                           /pws/zycit321-c_comum EQ 'X'.

              IF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR'.

                wa_cols2-screen-input = 0.

              ELSEIF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR_T'.

                wa_cols2-screen-input = 1.

              ELSEIF wa_cols2-screen-name EQ 'V_DESCR_0206'.

                wa_cols2-screen-input = 1.

              ENDIF.

            ELSE.

              IF wa_cols2-screen-name EQ '/PWS/ZYCIE247-NETPR'.

...

 

...

      wa_cols2-screen-input = 1.

      MODIFY tc_mexp2-cols FROM wa_cols2.

    ELSEIF wa_cols2-screen-group4 EQ 'CAM' .

      wa_cols2-invisible = 0.

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

        wa_cols2-screen-input = 1.

      ENDIF.

      MODIFY tc_mexp2-cols FROM wa_cols2.

    ENDIF.

  ENDLOOP.

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

  SELECT SINGLE *

         FROM /pws/zycit321

         INTO /pws/zycit321.

  IF /pws/zycit321-ltopc EQ 1 AND

     ( /pws/zycie244-tipo NE 'N' OR

       ( /pws/zycie244-tipo EQ 'N' AND

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

    v_agrup = 'X'.

  ELSE.

    CLEAR v_agrup.

  ENDIF.

* << Fim da exclusão

  LOOP AT tc_mexp2-cols INTO wa_cols2.

    CASE wa_cols2-screen-name.

      WHEN '/PWS/ZYCIE247-AGRUP' OR

           '/PWS/ZYCIT422-WERKS' OR

           '/PWS/ZYCIT422-STLAL'.

        IF v_agrup = 'X'.

          wa_cols2-invisible = 0.

          MODIFY tc_mexp2-cols FROM wa_cols2.

          CONTINUE.

        ELSE.

...

 

...

    ENDIF.

  ENDLOOP.

  LOOP AT SCREEN.

    IF ( /pws/zycie244-modalidade EQ 'I' )       AND

        ( screen-name EQ '/PWS/ZYCIE245C-NETPR' ).

      screen-invisible = 1.

      MODIFY SCREEN.

    ENDIF.

  ENDLOOP.

  LOOP AT SCREEN.

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

    IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F'

* << Fim da exclusão

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

    IF /pws/zycie244-tipo EQ 'G' OR

     ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL )

* << Fim da inclusão

      OR ( /pws/zycit321-c_comum    EQ 'X' AND

           /pws/zycie244-modalidade NE 'I' )

      OR ( /pws/zycit321-it_ge      EQ 'X' AND

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

      IF screen-name EQ 'I_NRITEM'.

        screen-invisible = 1.

        screen-intensified = 0.

        MODIFY SCREEN.

      ENDIF.

      IF screen-name EQ '/PWS/ZYCIE245C-CODCOMP'.

...

 

...

FORM check_field_0202.

  LOOP AT SCREEN.

    CASE screen-name.

      WHEN 'FS_NACION'.

        IF /pws/zycie244-modalidade EQ 'I' OR

           /pws/zycie244-tipo EQ 'F'.

          screen-invisible = 1.

          MODIFY SCREEN.

        ENDIF.

      WHEN 'FS_RESIMP'.

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

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

* << Fim da exclusão

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

        IF /pws/zycie244-modalidade EQ 'I' OR

         ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ).

* << Fim da inclusão

          screen-invisible = 1.

          MODIFY SCREEN.

        ELSEIF /pws/zycie244-modalidade NE 'I' AND

               ( /pws/zycie244-tipo NE 'G' AND

                 /pws/zycie244-tipo NE 'F'

                  ).

          screen-invisible = 1.

          IF /pws/zycit321-c_comum EQ 'X' AND

             ( /pws/zycie244-tipo    EQ 'C' OR

               /pws/zycie244-tipo    EQ 'N' ).

...

 

...

    itab_zycit245-qtd_perda  = /pws/zycie245-qtd_perda .

    itab_zycit245-perda_e     = /pws/zycie245-perda_e     .

    itab_zycit245-qtd_perda_e = /pws/zycie245-qtd_perda_e .

    itab_zycit245-waers    = /pws/zycie245-waers   .

    itab_zycit245-netpr    = /pws/zycie245-netpr   .

    itab_zycit245-vl_frete_t = /pws/zycie245-vl_frete_t.

    itab_zycit245-pctseg   = /pws/zycie245-pctseg  .

    itab_zycit245-vl_seg_t = /pws/zycie245-vl_seg_t.

    itab_zycit245-j_1bnbm  = /pws/zycie245-j_1bnbm .

    itab_zycit245-markci   = markci           .

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

    SELECT SINGLE a~steuc INTO itab_zycit245-j_1bnbm

           FROM ( marc AS a INNER JOIN t001w AS b ON

                  a~werks EQ b~werks )

           WHERE a~matnr EQ itab_zycit245-codcomp

             AND a~steuc NE space

             AND b~land1 EQ t001-land1.

* << Fim da inclusão

    IF NOT itab_zycit245-qtd_tot IS INITIAL.

      itab_zycit245-vl_frete = itab_zycit245-vl_frete_t /

            itab_zycit245-qtd_tot.

      itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.

      itab_zycit245-um_ncm = itab_zycit245-meins .

      PERFORM converte_um_ncm USING itab_zycit245-codcomp

                              CHANGING itab_zycit245-um_ncm

                                       itab_zycit245-werks

                                       itab_zycit245-qtd_ncm.

    ENDIF.

...

 

...

               WHERE matnr = itab_zycit245-codcomp.

        ENDSELECT.

        SELECT kaln1 UP TO 1 ROWS FROM mbew INTO v_kaln1

               WHERE matnr = itab_zycit245-codcomp

                 AND bwkey = itab_zycit245-werks.

        ENDSELECT.

        IF sy-subrc EQ 0.

          SELECT SINGLE * FROM t001a INTO wat001a

                 WHERE bukrs EQ /pws/zycie244-bukrs.

          CLEAR it_ckmlcr. REFRESH it_ckmlcr.

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

          IF /pws/zycie244-tipo EQ 'F' AND

             NOT v_agrup IS INITIAL.

            SELECT * FROM ckmlcr INTO TABLE it_ckmlcr

                   WHERE kalnr = v_kaln1

                       AND waers = wa_zycbt007-waersb.

            SORT it_ckmlcr BY bdatj poper ASCENDING.

            DESCRIBE TABLE it_ckmlcr LINES v_ilinhas.

            READ TABLE it_ckmlcr INDEX v_ilinhas.

            IF sy-subrc EQ 0.

              itab_zycit245-netpr = it_ckmlcr-stprs / it_ckmlcr-peinh.

              itab_zycit245-waers = wa_zycbt007-waersb.

            ENDIF.

          ELSE.

* << Fim da inclusão

          SELECT * FROM ckmlcr INTO TABLE it_ckmlcr

                 WHERE kalnr = v_kaln1

                     AND waers = wa_zycbt007-waersa.

          SORT it_ckmlcr BY bdatj poper ASCENDING.

          DESCRIBE TABLE it_ckmlcr LINES v_ilinhas.

          READ TABLE it_ckmlcr INDEX v_ilinhas.

          IF sy-subrc EQ 0.

            itab_zycit245-netpr = it_ckmlcr-stprs / it_ckmlcr-peinh.

            itab_zycit245-waers = wa_zycbt007-waersa.

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

            ENDIF.

* << Fim da inclusão

          ENDIF.

        ENDIF.

        READ TABLE itab_marc WITH KEY matnr = itab_zycit245-codcomp

                                      werks = itab_zycit245-werks.

        IF sy-subrc EQ 0.

          MOVE itab_marc-steuc TO itab_zycit245-j_1bnbm.

        ELSE.

          LOOP AT itab_centros2.

            READ TABLE itab_marc WITH KEY matnr = itab_zycit245-codcomp

                                          werks = itab_centros2-werks.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040I01

 

...

MODULE insert_line_comprov_ci INPUT.

  /pws/zycie245-waers = v_waers.

  CLEAR:  v_waers.

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

    PERFORM fill_itab_zycit245_tg2.

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

  ELSEIF /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

  ELSEIF ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

           /pws/zycit321-c_comum EQ 'X' OR

           ( /pws/zycit321-it_ge EQ 'X' AND

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

    PERFORM fill_itab_zycit245_tf2.

  ELSE.

    PERFORM fill_itab_zycit245_ng2.

  ENDIF.

ENDMODULE.

...

 

...

     INTO TABLE itab_matnr

     WHERE matnr EQ /pws/zycie247-codmat.

    IF sy-dbcnt > 1.

      v_centro = 'X'.

    ENDIF.

  ENDIF.

  IF NOT v_centro IS INITIAL

  AND /pws/zycie247-werks IS INITIAL.

    MESSAGE w015 WITH text-258 /pws/zycie247-codmat text-256 text-257.

  ENDIF.

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

  IF /pws/zycie244-tipo EQ 'G' OR /pws/zycie244-tipo EQ 'F' OR

* << Fim da exclusão

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

  IF /pws/zycie244-tipo EQ 'G' OR

      ( /pws/zycie244-tipo EQ 'F' AND v_agrup IS INITIAL ) OR

* << Fim da inclusão

           /pws/zycit321-c_comum EQ 'X'.

    IF  /pws/zycie244-tipo EQ 'N' AND /pws/zycie244-modalidade EQ 'S'.

      PERFORM fill_itab_zycit247_inter.

    ELSE.

      PERFORM fill_itab_zycit247_tg2.

    ENDIF.

  ELSE.

    IF v_agrup IS INITIAL.

      IF  /pws/zycie244-tipo EQ 'N' AND /pws/zycie244-modalidade EQ 'S'.

        PERFORM fill_itab_zycit247_inter.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040O01

 

...

MODULE set_screen2 OUTPUT.

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

  IF /pws/zycit321 IS INITIAL.

    SELECT SINGLE *

           FROM /pws/zycit321

           INTO /pws/zycit321.

  ENDIF.

  IF /pws/zycit321-ltopc EQ 1 AND

     ( /pws/zycie244-tipo NE 'N' OR

       ( /pws/zycie244-tipo EQ 'N' AND

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

    v_agrup = 'X'.

  ELSE.

    CLEAR v_agrup.

  ENDIF.

* << Fim da inclusão

  CASE sy-dynnr.

    WHEN '0200'.

      PERFORM check_field_0200.

    WHEN '0201'.

      PERFORM check_field_0201.

    WHEN '0202'.

      PERFORM check_field_0202.

    WHEN '0203'.

      PERFORM check_field_0203.

    WHEN '0204'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI052F01

 

...

  CLEAR: ekko, j_1bnflin.

  REFRESH: itab_zycit245, itab_zycit279_aux, itab_zycit244, itab_vinc.

  SELECT SINGLE * FROM ekko

    WHERE ebeln EQ itab_zycit330-ebeln.

  SELECT SINGLE * FROM j_1bnflin

      WHERE docnum EQ itab_zycit330-docnum

        AND itmnum EQ itab_zycit330-buzei .

  IF sy-subrc EQ 0.

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

    IF /pws/zycit321-ltopc EQ 1.

* << Fim da inclusão

    SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245

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

        WHERE tipo EQ 'F'                               "#EC CI_NOFIELD

* << Fim da exclusão

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

         WHERE tipo EQ 'F'                              "#EC CI_NOFIELD

            AND codcomp EQ itab_zycit330-codcomp.

    ELSE.

      SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245

         WHERE tipo EQ 'F'                              "#EC CI_NOFIELD

* << Fim da inclusão

          AND j_1bnbm EQ itab_zycit330-ncm.

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

    ENDIF.

* << Fim da inclusão

    IF NOT itab_zycit245[] IS INITIAL.

      CLEAR: itab_zycit244.

      SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244

          FOR ALL ENTRIES IN itab_zycit245

          WHERE nrseqd EQ itab_zycit245-nrseqd

            AND status EQ 'D'

...