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