CE PLUS - Nota 008858

Módulo: DRAWBACK

Funcionalidade: Ato Concessório

Data/Hora da Publicação: 20/08/2009 00:00:00

Data/Hora Última Alteração: 17/02/2011 15:41:32

Descrição da Nota: CRIAÇÃO DE ATO CONCESSÓRIO GENÉRICO ATRAVÉS DE UM FORECAST.

Sintoma

Desenvolvimento da criação de ato concessório genérico a partir de um forecast.

 

 

Solução

Desenvolvimento da criação de ato concessório genérico a partir de um forecast.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

IMPORTAÇÃO DO DADOS DO FORECAST E REAPURAÇÃO PARCIAL COM LISTA POR AGRUP

FORECAST VERDE-AMARELO / INTEGRADO VINCULAÇÃO

Informações Complementares

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

Nota Número 08858 Data: 20/08/2009 Hora: 11:06:46

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

 

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

Nota Número              : 08858

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00010

Agrupamento              : 00110

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

Referência às notas relacionadas:

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

 

04587  - 00001 - 7.0    - 00002  - IMPORTAÇÃO DO DADOS DO FORECAST E REAPURAÇÃO PARCIAL COM LISTA PO

08800  - 00002 - 7.0    - 00010  - FORECAST VERDE-AMARELO / INTEGRADO VINCULAÇÃO

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

CRIAÇÃO DE ATO CONCESSÓRIO GENÉRICO ATRAVÉS DE UM FORECAST.

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

Palavras Chave:

ATO CONCESSÓRIO GENÉRICO FORECAST

 

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

Objetos da nota:

DOMA /PWS/ZYGLD604

DTEL /PWS/ZYCIL875

DYNP /PWS/SAPMZYCI063                        0101

REPS /PWS/MZYCI040F02

REPS /PWS/MZYCI040I01

REPS /PWS/MZYCI063F01

TABD /PWS/ZYCIE238

TABD /PWS/ZYCIT238

 

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

Modificações efetuadas em DOMA /PWS/ZYGLD604

 

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

Domínio incluído: /PWS/ZYGLD604

Descrição breve incluída (33 caracteres), idioma: PT

"GL - Tipos de Drawback (Forecast)"

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Categoria de dados: CHAR

Número de posições: 1

Comprimento de saída: 1

Rotina de conversão:

Letras minúsculas: SIM

-Valores individuais

Incluído valor fixo "C"

Texto incluído, idioma: PT (5 caracteres):

"Comum"

Incluído valor fixo "G"

Texto incluído, idioma: PT (8 caracteres):

"Genérico"

Incluída tabela de valores:

 

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

Modificações efetuadas em DTEL /PWS/ZYCIL875

 

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

Elemento de dados incluído: /PWS/ZYCIL875

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (33 caracteres), idioma: PT

"GL - Tipos de Drawback (Forecast)"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD604

ID parâmetro:

Nome componente default:

Documentar modificações: SIM

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 04

Denominador breve incluído (4 caracteres), idioma: PT

"Tipo"

Comprimento máximo do denominador médio: 13

Denominador médio incluído (13 caracteres), idioma: PT

"Tipo DrawBack"

Comprimento máximo do denominador longo: 13

Denominador longo incluído (13 caracteres), idioma: PT

"Tipo DrawBack"

Comprimento máximo do título: 15

Título incluído (13 caracteres), idioma: PT

"Tipo DrawBack"

 

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI063                        0101

 

MODIFICAR CAMPO TEXTO "/PWS/ZYCIE238-TIPO"

Grupo 1

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040F02

 

...

    IF screen-group1 NE 'NEX'.

      screen-input = v_status2.

      MODIFY SCREEN.

    ENDIF.

    IF screen-name EQ '/PWS/ZYCIE244-NRFORECAST'.

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

        screen-input = 1.

        screen-invisible = 1.

        MODIFY SCREEN.

      ELSE.

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

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

* << Fim da exclusão

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

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

* << Fim da inclusão

          IF /pws/zycie244-bukrs IS INITIAL.

            screen-input = 1.

          ELSE.

            screen-input = v_status2.

          ENDIF.

          screen-invisible = 0.

          MODIFY SCREEN.

        ELSE.

          screen-input = 1.

          screen-invisible = 1.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI040I01

 

...

          AND   ddlanguage EQ sy-langu(1)

          AND   domvalue_l LIKE /pws/zycie244-tipo.

      CLEAR itab_zycit245. REFRESH itab_zycit245.

      SELECT * FROM /pws/zycit249 INTO TABLE itab_zycit249

             WHERE nrseqd EQ /pws/zycie244-nrforecast.

      SELECT * FROM /pws/zycit240 INTO TABLE itab_zycit240

             WHERE nrseqd EQ /pws/zycie244-nrforecast

             AND   transp NE space.

      IF sy-subrc EQ 0.

        CLEAR itab_zycit245_aux. REFRESH itab_zycit245_aux.

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

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

* << Fim da inclusão

        LOOP AT itab_zycit249 WHERE proced NE '0'.

          CLEAR itab_zycit245.

          MOVE-CORRESPONDING itab_zycit249 TO itab_zycit245.

          PERFORM select_max_item_number2 CHANGING v_nritem.

          itab_zycit245-nritem = v_nritem.

          itab_zycit245-nrseqd = /pws/zycie244-nrseqd.

          itab_zycit245-sdocomp_i = itab_zycit249-qtd_tot.

          LOOP AT itab_zycit240 WHERE

              codcomp EQ itab_zycit245-codcomp.

            itab_zycit245-qtd_perda_e = itab_zycit245-qtd_perda_e +

...

 

...

            itab_zycit245-qtd_tot = itab_zycit245-qtd_ncm   .

            itab_zycit245-meins   = itab_zycit245-um_ncm    .

            CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp,

                   itab_zycit245-perda, itab_zycit245-perda_e.

            COLLECT itab_zycit245.

          ELSE.

            APPEND itab_zycit245.

          ENDIF.

          itab_zycit245_aux[] = itab_zycit245[].

        ENDLOOP.

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

        ELSE.

          LOOP AT itab_zycit249 WHERE proced NE '0'.

            CLEAR itab_zycit245.

            MOVE:

            '00001'                    TO itab_zycit245-nritem    ,

            itab_zycit249-proced       TO itab_zycit245-proced    ,

            /pws/zycit321-ncm          TO itab_zycit245-j_1bnbm   ,

            itab_zycit249-waers        TO itab_zycit245-waers     ,

            itab_zycit249-netpr_t      TO itab_zycit245-netpr_t   ,

            itab_zycit249-vl_frete_t   TO itab_zycit245-vl_frete_t,

            itab_zycit249-vl_seg_t     TO itab_zycit245-vl_seg_t  .

            COLLECT itab_zycit245.

          ENDLOOP.

        ENDIF.

* << Fim da inclusão

        REFRESH itab_zycit245t.

        itab_zycit245t[] = itab_zycit245[].

        REFRESH: itab_zycit245, itab_zycit245_aux.

        CLEAR: itab_zycit245.

        pressed_tab_2a = 'FS_MERC2'.

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

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

* << Fim da inclusão

        LOOP AT itab_zycit240 WHERE proced EQ 0.

          CLEAR: v_nritem.

...

 

...

            APPEND itab_zycit245.

          ELSE.

            itab_zycit245-nritem = v_nritem.

            CLEAR: itab_zycit245-qtd_iten, itab_zycit245-netpr,

                   itab_zycit245-pctseg, itab_zycit245-vl_seg,

                   itab_zycit245-vl_frete.

            COLLECT itab_zycit245.

          ENDIF.

          itab_zycit245_aux[] = itab_zycit245[].

        ENDLOOP.

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

        ELSE.

          LOOP AT itab_zycit240 WHERE proced EQ 0.

            CLEAR itab_zycit245.

            MOVE:

            '90001'                    TO itab_zycit245-nritem    ,

            itab_zycit240-proced       TO itab_zycit245-proced    ,

            /pws/zycit321-ncm          TO itab_zycit245-j_1bnbm   ,

            itab_zycit240-waers        TO itab_zycit245-waers     ,

            itab_zycit240-netpr_t      TO itab_zycit245-netpr_t   ,

            itab_zycit240-vl_frete_t   TO itab_zycit245-vl_frete_t,

            itab_zycit240-vl_seg_t     TO itab_zycit245-vl_seg_t  .

            COLLECT itab_zycit245.

          ENDLOOP.

          IF sy-subrc NE 0.

            MOVE:

            '90001'                    TO itab_zycit245-nritem    ,

            '0'                        TO itab_zycit245-proced    ,

            /pws/zycit321-ncm          TO itab_zycit245-j_1bnbm   .

            APPEND itab_zycit245.

          ENDIF.

        ENDIF.

* << Fim da inclusão

        LOOP AT itab_zycit245.

          IF NOT itab_zycit245-ntgewt IS INITIAL.

            itab_zycit245-ntgew = itab_zycit245-ntgewt

                                / itab_zycit245-qtd_tot.

            itab_zycit245-brgew = itab_zycit245-brgew

                                / itab_zycit245-qtd_tot.

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

          ENDIF.

* << Fim da inclusão

            itab_zycit245-pctseg = ( itab_zycit245-vl_seg_t  /

               ( itab_zycit245-netpr_t + itab_zycit245-vl_frete_t )

                                                               ) * 100.

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

          ENDIF.

* << Fim da exclusão

          MODIFY itab_zycit245.

        ENDLOOP.

        LOOP AT itab_zycit245t.

          IF NOT itab_zycit245t-ntgewt IS INITIAL.

            itab_zycit245t-ntgew = itab_zycit245t-ntgewt

                                / itab_zycit245t-qtd_tot.

            itab_zycit245t-brgew = itab_zycit245t-brgew

                                / itab_zycit245t-qtd_tot.

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

          ENDIF.

* << Fim da inclusão

            itab_zycit245t-pctseg = ( itab_zycit245t-vl_seg_t  /

               ( itab_zycit245t-netpr_t + itab_zycit245t-vl_frete_t )

                                                               ) * 100.

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

          ENDIF.

* << Fim da exclusão

          MODIFY itab_zycit245t.

        ENDLOOP.

        pressed_tab_2a = 'FS_CABEC2'.

        /pws/zycie245-nrseqd = /pws/zycie244-nrseqd.

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

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

          PERFORM acumula_item_lista_tecnica_tg2.

* << Fim da exclusão

        ENDIF.

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

      ENDIF.

* << Fim da exclusão

      CLEAR itab_zycit247. REFRESH itab_zycit247.

      SELECT * FROM /pws/zycit239 INTO TABLE itab_zycit239

             WHERE nrseqd EQ /pws/zycie244-nrforecast.

      IF sy-subrc EQ 0.

        CLEAR v_item_fc.

        LOOP AT itab_zycit239.

...

 

...

            itab_zycit247-sdomat_e = itab_zycit239-qtd_aditiv.

          ENDIF.

          itab_zycit247-qtd_ncm = itab_zycit247-qtd_iten.

          itab_zycit247-um_ncm  = itab_zycit247-meins  .

          IF /pws/zycit321-ltopc IS INITIAL.

            PERFORM converte_um_ncm USING itab_zycit247-codmat

                                    CHANGING itab_zycit247-um_ncm

                                             itab_zycit247-werks

                                             itab_zycit247-qtd_ncm.

          ENDIF.

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

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

* << Fim da exclusão

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

          IF /pws/zycit321-c_comum EQ 'X' OR /pws/zycie244-tipo EQ 'G'.

* << Fim da inclusão

            READ TABLE itab_zycit247_aux

                      WITH KEY j_1bnbm = itab_zycit247-j_1bnbm.

            IF sy-subrc EQ 0.

              itab_zycit247-nritem   = itab_zycit247_aux-nritem.

            ENDIF.

            itab_zycit247-qtd_iten = itab_zycit247-qtd_ncm   .

            itab_zycit247-meins    = itab_zycit247-um_ncm    .

            CLEAR: itab_zycit247-codmat, itab_zycit247-stlal,

                   itab_zycit247-stlan, itab_zycit247-stlnr,

                   itab_zycit247-tolling.

...

 

...

      READ TABLE itab_centros2 WITH KEY werks = itab_zycit247-werks.

      IF sy-subrc NE 0.

        IF itab_zycit247-werks NE /pws/zycie244-werks.

          MESSAGE w061 WITH text-190 text-191.

        ENDIF.

      ENDIF.

    ENDLOOP.

    LOOP AT itab_zycit245.

      itab_zycit245-werks = /pws/zycie244-werks.

      MODIFY itab_zycit245.

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

    ENDLOOP.

    LOOP AT itab_zycit245t.

      itab_zycit245t-werks = /pws/zycie244-werks.

      MODIFY itab_zycit245t.

* << Fim da inclusão

    ENDLOOP.

  ENDIF.

ENDMODULE.

MODULE trata_aditivos INPUT.

  IF /pws/zycie244-aditivo EQ 0.

    EXIT.

  ENDIF.

  IF v_tcode2 EQ '/PWS/ZYCI040_A'   AND

     /pws/zycie244-nratoc IS INITIAL AND

     v_numatoinf = 'S'.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI063F01

 

...

  ELSE.

    MOVE '0' TO v_status.

  ENDIF.

  IF wa_zycbt007 IS INITIAL.

    SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007.

  ENDIF.

  IF v_tcode EQ '/PWS/ZYCI040_P'.

    IF /pws/zycie238-n_user IS INITIAL.

      MOVE: sy-uname TO /pws/zycie238-n_user    ,

            'X'      TO /pws/zycie238-importacao,

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

            'S'      TO /pws/zycie238-modalidade,

            'C'      TO /pws/zycie238-tipo      .

* << Fim da exclusão

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

            'S'      TO /pws/zycie238-modalidade.

* << Fim da inclusão

    ENDIF.

  ENDIF.

  IF v_segpct IS INITIAL AND NOT /pws/zycie238-bukrs IS INITIAL.

    SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie238-bukrs.

    SELECT SINGLE per_seg

      FROM /pws/zycit000 INTO v_segpct

      WHERE land1 EQ t001-land1.

  ENDIF.

ENDFORM.

FORM execute_button_btn1.

...

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIE238

...

 

EKGRP       EKGRP

EKORG       EKORG

MODALIDADE /PWS/ZYCIL419

* >> Início da exclusão:

TIPO       /PWS/ZYCIL423

* << Fim da exclusão

* >> Início da inclusão:

TIPO       /PWS/ZYCIL875

* << Fim da exclusão

TIPOEMP /PWS/ZYCIL424

OPER_IND /PWS/ZYCIL425

WERKS       WERKS_D

...

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

Modificações efetuadas em TABD /PWS/ZYCIT238

 

...

 

EKGRP       EKGRP

EKORG       EKORG

MODALIDADE /PWS/ZYCIL419

* >> Início da exclusão:

TIPO       /PWS/ZYCIL423

* << Fim da exclusão

* >> Início da inclusão:

TIPO       /PWS/ZYCIL875

* << Fim da exclusão

TIPOEMP /PWS/ZYCIL424

OPER_IND /PWS/ZYCIL425

WERKS       WERKS_D

...

-------