CE PLUS - Nota 008034

Módulo: DRAWBACK

Funcionalidade: Apropriação

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

Data/Hora Última Alteração: 01/03/2010 18:36:12

Descrição da Nota: APROPRIAÇÃO MULTIPLA / PARCIAL

Sintoma

 

Desenvolvimento de parametro para controle de apropriação multipla e parcial.

 

Solução

 

Desenvolvimento de parametro para controle de apropriação multipla e parcial.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 08034 Data: 10/02/2009 Hora: 15:17:59

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

 

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

Nota Número              : 08034

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00008

Agrupamento              : 00085

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

APROPRIAÇÃO MULTIPLA / PARCIAL

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

Palavras Chave:

APROPRIAÇÃO MULTIPLA PARCIAL

 

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

Objetos da nota:

DOMA /PWS/ZYGLD599

DOMA /PWS/ZYGLD600

DTEL /PWS/ZYCIL870

DTEL /PWS/ZYCIL871

REPS /PWS/ZYCIR254F01

TABD /PWS/ZYCIE282

TABD /PWS/ZYCIT282

TABD /PWS/ZYCIT321

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

**********************OBS: APÓS A APLICAÇÃO DESTA NOTA, APLICAR NOTA 8035.**************************

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

Modificações efetuadas em DOMA /PWS/ZYGLD599

 

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

Domínio incluído: /PWS/ZYGLD599

Descrição breve incluída (19 caracteres), idioma: EN

"GL - Control of Lot"

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

"GL - Apropriação Multipla"

Classe de desenvolvimento: /PWS/ZYCI

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: NÃO

-Valores individuais

Incluído valor fixo ""

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

"SIM"

Incluído valor fixo "X"

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

"Não"

Incluída tabela de valores:

 

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

Modificações efetuadas em DOMA /PWS/ZYGLD600

 

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

Domínio incluído: /PWS/ZYGLD600

Descrição breve incluída (19 caracteres), idioma: EN

"GL - Control of Lot"

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

"GL - Apropriação Parcial"

Classe de desenvolvimento: /PWS/ZYCI

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: NÃO

-Valores individuais

Incluído valor fixo ""

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

"Permitir"

Incluído valor fixo "1"

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

"Não Permitir"

Incluído valor fixo "2"

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

"Liquidar  AC"

Incluída tabela de valores:

 

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

Modificações efetuadas em DTEL /PWS/ZYCIL870

 

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

Elemento de dados incluído: /PWS/ZYCIL870

Classe de desenvolvimento: /PWS/ZYCI

Idioma original: PT

Descrição breve incluída: (19 caracteres), idioma: EN

"GL - Control of Lot"

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

"GL - Apropriação Multipla"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD599

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (3 caracteres), idioma: EN

"Lot"

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

"Apr. Mult."

Comprimento máximo do denominador médio: 20

Denominador médio incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"Apropriação Multipla"

Comprimento máximo do denominador longo: 20

Denominador longo incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"Apropriação Multipla"

Comprimento máximo do título: 25

Título incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"GL - Apropriação Multipla"

 

 

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

Modificações efetuadas em DTEL /PWS/ZYCIL871

 

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

Elemento de dados incluído: /PWS/ZYCIL871

Classe de desenvolvimento: /PWS/ZYCI

Idioma original: PT

Descrição breve incluída: (19 caracteres), idioma: EN

"GL - Control of Lot"

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

"GL - Apropriação Parcial"

Categoria de dados: Domínio

Domínio: /PWS/ZYGLD600

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 10

Denominador breve incluído (3 caracteres), idioma: EN

"Lot"

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

"Apr. Parc."

Comprimento máximo do denominador médio: 19

Denominador médio incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"Apropriação Parcial"

Comprimento máximo do denominador longo: 20

Denominador longo incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"Apropriação Parcial"

Comprimento máximo do título: 24

Título incluído (14 caracteres), idioma: EN

"Control of Lot"

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

"GL - Apropriação Parcial"

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR254F01

 

...

      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.

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

    IF v_qtdaprop > 0 AND /pws/zycit321-apr_mult NE space.

      EXIT.

    ENDIF.

* << Fim da inclusão

    v_apmat = 'S'.

    v_error = 'N'.

    PERFORM appropriate_tng CHANGING v_qtdaprop v_qtdbase v_error.

    v_pct_com = v_qtdaprop / it_zycet002-fkimg .

    IF v_error EQ 'S'.

      CONTINUE.

    ENDIF.

  ENDLOOP.

  REFRESH: itab_lista.

  itab_lista[] = itab_lista_f[].

...

 

...

        v_bxatoc_tmp LIKE /pws/zycit247-sdomat_e,

        v_saldo_e    LIKE /pws/zycit247-sdomat_e,

        v_meins_e    LIKE /pws/zycit247-meins   ,

        v_dtnf       LIKE sy-datum              ,

        v_mdias                                 ,

        v_aprcomum                              ,

        v_dttax      LIKE sy-datum              .

  v_qtdtmp  = it_zycet002-fkimg - p_qtdaprop.

  v_meins_e = it_zycit247-meins.

  v_saldo_e = it_zycit247-sdomat_e.

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

  IF v_saldo_e < it_zycet002-fkimg AND /pws/zycit321-apr_parc EQ '1'.

    EXIT.

  ENDIF.

* << Fim da inclusão

  PERFORM converte_um_base USING    it_zycet002-matnr

                        CHANGING v_meins_e

                                 v_saldo_e.

  IF v_saldo_e >= v_qtdtmp.

    v_qtdtmp = v_qtdtmp.

  ELSE.

    v_qtdtmp = v_saldo_e.

  ENDIF.

  LOOP AT itab_lista.

    itab_lista-qtd = itab_lista-usagem * v_qtdtmp.

    MODIFY itab_lista.

  ENDLOOP.

  CLEAR: v_menorpct, v_allcomp, v_totit, v_totit_tmp, v_mdias.

  PERFORM get_pct USING v_qtdtmp p_qtdebase CHANGING v_menorpct.

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

  IF NOT v_menorpct >= 100 AND /pws/zycit321-apr_parc EQ '1'.

    EXIT.

  ENDIF.

* << Fim da inclusão

  IF v_menorpct > 0.

    REFRESH: itab_lista_aux.

    LOOP AT itab_lista.

      itab_lista_aux = itab_lista.

      itab_lista_aux-qtd = ( itab_lista-qtd * v_menorpct ) / 100.

      itab_lista-qtd = itab_lista-qtd - itab_lista_aux-qtd.

      APPEND itab_lista_aux.

      MODIFY itab_lista.

    ENDLOOP.

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

    IF /pws/zycit321-apr_parc EQ '2'.

      v_bxatoc = it_zycet002-fkimg.

    ELSE.

* << Fim da inclusão

    v_bxatoc = itab_lista_aux-qtd / itab_lista_aux-usagem.

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

    ENDIF.

* << Fim da inclusão

    v_bxatoc_tmp = ( p_qtdaprop + v_bxatoc ).

    IF v_bxatoc_tmp > it_zycet002-fkimg.

      v_bxatoc = it_zycet002-fkimg - p_qtdaprop .

    ENDIF.

    CLEAR: v_apcomp.

    CLEAR it_apr_final_aux. REFRESH it_apr_final_aux.

...

 

...

              it_zycet002-fkimg    TO it_apr_final-qtd_eorg  ,

              itab_lista_aux-perc  TO it_apr_final-perc      ,

              v_bxatoc             TO it_apr_final-qtd_mexp  ,

              it_zycit279-j_1bnbm  TO it_apr_final-j_1bnbmimp,

              v_bxatoc             TO it_apr_final-qtd_ncm   ,

              it_zycet002-vrkme    TO it_apr_final-um_ncm    ,

              it_zycit247-nritem   TO it_apr_final-nritem    ,

              it_zycit279-matnr    TO it_apr_final-matnr_imp ,

              itab_lista-meins     TO it_apr_final-un_ncm    ,

              it_zycit279-meins    TO it_apr_final-meins_i   .

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

        MOVE: sy-uname             TO it_apr_final-usernamec,

              sy-datlo             TO it_apr_final-dtuserc  .

* << Fim da inclusão

        PERFORM converte_um_ncm USING it_apr_final-matnr_exp

                          CHANGING it_apr_final-um_ncm

                                   it_zycet002-werks

                                   it_apr_final-qtd_ncm.

        it_apr_final-mengecom = it_zycit279-slqtde.

        READ TABLE itab_zycit439 WITH KEY

                 insumo = it_apr_final-matnr_imp

                 matnr  = it_zycet002-matnr.

        IF sy-subrc EQ 0.

          IF itab_zycit439-perda IS INITIAL.

...

 

...

            it_zycit279-nrseqd   TO it_apr_final-nrseqd    ,

            it_zycit279-docnum   TO it_apr_final-docnumimp ,

            it_zycet002-matnr    TO it_apr_final-matnr_exp ,

            it_zycet002-vrkme    TO it_apr_final-meins_e   ,

            it_zycet002-fkimg    TO it_apr_final-qtd_eorg  ,

            itab_lista_aux-perc  TO it_apr_final-perc      ,

            it_zycit247f-nritem  TO it_apr_final-nritem    ,

            it_zycit279-matnr    TO it_apr_final-matnr_imp ,

            itab_lista-meins     TO it_apr_final-un_ncm    ,

            it_zycit279-meins    TO it_apr_final-meins_i   .

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

      MOVE: sy-uname             TO it_apr_final-usernamec,

            sy-datlo             TO it_apr_final-dtuserc  .

* << Fim da inclusão

      it_apr_final-mengecom = it_zycit279-slqtde.

      READ TABLE itab_zycit439 WITH KEY

               insumo = it_apr_final-matnr_imp

               matnr  = it_zycet002-matnr.

      IF sy-subrc EQ 0.

        IF itab_zycit439-perda IS INITIAL.

          READ TABLE it_zycit245 WITH KEY

                                 nrseqd  = it_apr_final-nrseqd

                                 j_1bnbm = it_zycit279-j_1bnbm.

          IF sy-subrc EQ 0.

...

 

...

                                    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 .

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

      EXIT.

    ENDIF.

    IF v_qtdaprop > 0 AND /pws/zycit321-apr_mult NE space.

* << Fim da inclusão

      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

...

 

...

    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.

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

    REFRESH itab_lista_f.

    itab_lista_f[] = itab_lista[].

* << Fim da inclusão

    v_apmat = 'S'.

    v_error = 'N'.

    IF it_zycit244-tipo NE 'G'.

      PERFORM appropriate_tng CHANGING v_qtdaprop v_qtdbase v_error.

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

      v_pct_com = v_qtdaprop / it_zycet002-fkimg .

* << Fim da inclusão

    ENDIF.

    IF v_error EQ 'S'.

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

      CONTINUE.

    ENDIF.

  ENDLOOP.

  REFRESH: itab_lista.

  itab_lista[] = itab_lista_f[].

  IF NOT itab_lista_f[] IS INITIAL.

    IF /pws/zycit321-apr_gen EQ 'G'.

      IF v_pct_com IS INITIAL.

        v_pct_com = 1.

      ENDIF.

      LOOP AT itab_lista_f.

        itab_lista_f-qtd = itab_lista_f-usagem *

          ( it_zycet002-fkimg * v_pct_com ).

        MODIFY itab_lista_f.

      ENDLOOP.

    ELSE.

      LOOP AT itab_lista_f.

        itab_lista_f-qtd = itab_lista_f-usagem * it_zycet002-fkimg.

        MODIFY itab_lista_f.

      ENDLOOP.

    ENDIF.

    REFRESH itab_lista_aux.

    itab_lista_aux[] = itab_lista_f[].

    REFRESH: itab_fornec.

    LOOP AT it_zycit247f WHERE j_1bnbm  EQ it_zycet002-steuc

                          AND esgotado EQ ' '.

      READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247f-nrseqd.

      IF it_zycit244-werks NE it_zycet002-werks.

        READ TABLE itab_zycit243 WITH KEY nrseqd = it_zycit247f-nrseqd

                                          werks  = it_zycet002-werks.

        IF sy-subrc NE 0.

          CONTINUE.

        ENDIF.

      ENDIF.

      CLEAR it_zycit244.

      READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247f-nrseqd.

      IF sy-subrc NE 0.

        CONTINUE.

      ENDIF.

      READ TABLE itab_fornec WITH KEY lifnr = it_zycit244-lifnr.

      IF sy-subrc EQ 0 AND

        itab_fornec-nrseqd NE it_zycit244-nrseqd.

        CONTINUE.

      ENDIF.

      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.

* << Fim da inclusão

      CONTINUE.

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

      ENDIF.

      PERFORM apr_tf .

      DELETE itab_lista_aux WHERE qtd <= 0.

      IF itab_lista_aux[] IS INITIAL.

        EXIT.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

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

  ENDIF.

* << Fim da inclusão

  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.

...

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIE282

 

PERDA_E J_1BTXRATE DEC 6 2 Taxa de imposto

QTD_PERDA_E /PWS/ZYCIL473 QUAN 23 5 GL - Quantidade

UM_NCM BSTME UNIT 3 0 Unidade de medida do pedido

QTD_NCM /PWS/ZYCIL473 QUAN 23 5 GL - Quantidade

* >> Início da inclusão:

USERNAMEC SYUNAME CHAR 12 0 Sistema R/3, nome de logon do usuário

DTUSERC SYDATUM DATS 8 0 Data e hora, data (data de aplicação de servidor)

* << Fim da inclusão

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

Modificações efetuadas em TABD /PWS/ZYCIT282

 

PERDA_E J_1BTXRATE DEC 6 2 Taxa de imposto

QTD_PERDA_E /PWS/ZYCIL473 QUAN 23 5 GL - Quantidade

UM_NCM BSTME UNIT 3 0 Unidade de medida do pedido

QTD_NCM /PWS/ZYCIL473 QUAN 23 5 GL - Quantidade

* >> Início da inclusão:

USERNAMEC SYUNAME CHAR 12 0 Sistema R/3, nome de logon do usuário

DTUSERC SYDATUM DATS 8 0 Data e hora, data (data de aplicação de servidor)

* << Fim da inclusão

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT321

 

C_COMUM /PWS/ZYCIL839 CHAR 1 0 GL - TIPO DE CONTROLE ATO CONCESSÓRIO COMUM

(MATERIAL/NCM)

LOTE /PWS/ZYCIL840 CHAR 1 0 GL - Controle de Lote

IT_GE /PWS/ZYCIL843 CHAR 1 0 'GL - Utiliza Codigo Genérico para o material

DTCONV /PWS/ZYCIL856 CHAR 1 0 GL - Data Conversão

* >> Início da inclusão:

APR_MULT /PWS/ZYCIL870 CHAR 1 0 GL - Apropriação Multipla

APR_PARC /PWS/ZYCIL871 CHAR 1 0 GL - Apropriação Parcial

* << Fim da inclusão

* << Fim da inclusão