Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DA
Data/Hora da Publicação: 28/02/2011 00:00:00
Data/Hora Última Alteração: 03/03/2011 15:42:11
Descrição da Nota: CALCULO DA QUANTIDADE ESTATISTICA
Sintoma
A quantidade estatistica está errada no detalhe do ITEM da DA
Solução
Ajustado programa para efetuar o calculo da quantidade estatistica.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 10999 Data: 28/02/2011 Hora: 15:09:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 10999
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00006
Agrupamento : 00061
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03926 - 00001 - 7.0 - 00001 - ERRO AO ACRESCENTAR NOVOS LOTES NA DA E PROPOSIÇÃO DE VALOR SEGUR
10860 - 00002 - 8.0 - 00006 - DA NÃO CONVERTE PESO LÍQUIDO / UNIDADE DE MEDIDA ESTATÍSTICA
----------------------------------------------------------------------------------------------------
CALCULO DA QUANTIDADE ESTATISTICA
----------------------------------------------------------------------------------------------------
Palavras Chave:
DA- CALCULO - QUANTIDADE - ESTATISTICA - ITEM - PESO - LIQUIDO
/PWS/SAPMZYCI070
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI070F01
REPS /PWS/MZYCI070F02
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F01
...
IF v_embimp IS INITIAL.
DELETE FROM /pws/zycit014 WHERE nrseq = /pws/zycie442-nrseqda.
MODIFY /pws/zycit014 FROM TABLE itab_zycit014.
ENDIF.
DELETE FROM /pws/zycit463 WHERE nrseqda = /pws/zycie442-nrseqda.
MODIFY /pws/zycit463 FROM TABLE itab_zycit463.
CLEAR itab_del.
FREE itab_del.
LOOP AT itab_it.
v_tabix = sy-tabix.
* >> Início da exclusão: FORM SAVE_DATA
itab_it-qtdeumest = itab_it-qtd_da.
CLEAR itab_ekpo.
READ TABLE itab_ekpo WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc IS INITIAL.
itab_it-meinsest = itab_ekpo-lmein.
* << Fim da exclusão
* >> Início da inclusão: FORM SAVE_DATA
IF itab_it-qtdeumest IS INITIAL.
PERFORM qtd_estatic USING itab_it-matnr
itab_it-j_1bnbm
itab_it-meins
itab_it-qtd_da
CHANGING itab_it-meinsest
itab_it-qtdeumest.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SAVE_DATA
PERFORM peso_liq.
* << Fim da inclusão
MODIFY itab_it INDEX v_tabix.
MOVE-CORRESPONDING itab_it TO itab_zycit003.
APPEND itab_zycit003.
MOVE-CORRESPONDING itab_it TO itab_zycit455.
IF itab_zycit455-itseqda IS INITIAL.
LOOP AT itab_zycit455 INTO itab_zycit455a
...
...
MOVE-CORRESPONDING /pws/zycie003 TO itab_it.
ENDIF.
MOVE-CORRESPONDING /pws/zycie443a TO itab_it.
itab_it-waersbem = v_waersdif.
ELSE.
MOVE /pws/zycie442-inco1 TO itab_it-inco1.
IF NOT /pws/zycie003-nrseq IS INITIAL.
MOVE-CORRESPONDING /pws/zycie003 TO itab_it.
ENDIF.
MOVE-CORRESPONDING /pws/zycie443a TO itab_it.
* >> Início da inclusão: FORM SAVE_DATA_ITEM
ENDIF.
IF itab_it-qtdeumest IS INITIAL.
PERFORM qtd_estatic USING itab_it-matnr
itab_it-j_1bnbm
itab_it-meins
itab_it-qtd_da
CHANGING itab_it-meinsest
itab_it-qtdeumest.
ENDIF.
IF itab_t006[] IS INITIAL.
SELECT msehi zaehl nennr exp10 FROM t006
INTO TABLE itab_t006
WHERE dimid = 'MASS'.
ENDIF.
READ TABLE itab_t006 WITH KEY msehi = itab_it-meinsest.
IF sy-subrc EQ 0.
IF itab_it-meinsest EQ itab_it-gewei.
itab_it-ntgew = itab_it-qtdeumest.
ELSE.
CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'
EXPORTING
matnr = itab_it-matnr
meins = itab_it-meinsest
MEINS_P = itab_it-gewei
qtde = itab_it-qtdeumest
conv = ' '
land = t001-land1
IMPORTING
qtds = itab_it-ntgew
EXCEPTIONS
conversion_not_found = 1
ncm_not_found = 2
overflow = 3
un_ncm_not_found = 4
material_not_found = 5
OTHERS = 6.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SAVE_DATA_ITEM
/pws/zycie443a-ntgew = itab_it-ntgew .
/pws/zycie443a-qtdeumest = itab_it-qtdeumest.
/pws/zycie443a-meinsest = itab_it-meinsest.
* << Fim da inclusão
IF NOT /pws/zycie003-qtd_itend IS INITIAL AND
v_embimp EQ 'X'.
MOVE /pws/zycie003-qtd_itend TO itab_it-qtd_itend.
ENDIF.
...
...
PERFORM load_fbvl.
CLEAR: v_desp_acr, v_desp_brl.
PERFORM load_sevl.
IF NOT itab_it[] IS INITIAL.
CLEAR:
/pws/zycie442-vlpis,
/pws/zycie442-vlcofins.
ENDIF.
LOOP AT itab_it.
v_idx = sy-tabix.
* >> Início da inclusão: FORM CALC_ITAB
IF itab_it-qtdeumest IS INITIAL.
PERFORM qtd_estatic USING itab_it-matnr
itab_it-j_1bnbm
itab_it-meins
itab_it-qtd_da
CHANGING itab_it-meinsest
itab_it-qtdeumest.
ENDIF.
PERFORM peso_liq.
MODIFY itab_it.
* << Fim da inclusão
IF v_idx EQ v_ipt AND v_ipt NE 1.
itab_it-vlfob = v_tval - v_aux_rateio.
ELSE.
IF s_inco1_ci NE 'FOB' AND itab_it-vlfre_fat IS INITIAL.
IF NOT /pws/zycie442-ukursfre IS INITIAL.
IF s_inco1_ci = 'C&F'.
IF NOT v_tval3 IS INITIAL.
itab_it-vlfob = ( ( itab_it-qtd_da * itab_it-vlreal )
/ v_tval3 ) * v_tval.
ENDIF.
...
...
CLEAR itab_it.
READ TABLE itab_it
WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
v_sub = sy-subrc.
v_idx = sy-tabix.
IF v_sub NE 0.
MOVE-CORRESPONDING itab_zycit003 TO itab_it.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
READ TABLE itab_ekpo WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
itab_it-meinsest = itab_ekpo-lmein.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_it-qtdeumest IS INITIAL.
PERFORM qtd_estatic USING itab_it-matnr
itab_it-j_1bnbm
itab_it-meins
itab_it-qtd_da
CHANGING itab_it-meinsest
itab_it-qtdeumest.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
PERFORM peso_liq.
* << Fim da inclusão
itab_it-meinscom = itab_zycit003-meins.
itab_it-basred = itab_zycit003-basred.
itab_it-vlreal = itab_zycit003-vlreal.
itab_it-nrseqda = /pws/zycie442-nrseqda.
itab_it-waersreal = wa_zycbt007-waersb.
itab_it-waersbem = itab_zycit003-waers_real.
...
...
* >> Início da inclusão:
FORM qtd_estatic USING p_matnr
p_ncm
p_meins
p_qtd
CHANGING p_meinsest
p_qtdeumest.
CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'
EXPORTING
matnr = p_matnr
meins = p_meins
qtde = p_qtd
conv = ' '
land = t001-land1
ncm = p_ncm
IMPORTING
qtds = p_qtdeumest
un_s = p_meinsest
EXCEPTIONS
conversion_not_found = 1
ncm_not_found = 2
overflow = 3
un_ncm_not_found = 4
material_not_found = 5
OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
FORM peso_liq.
IF itab_t006[] IS INITIAL.
SELECT msehi zaehl nennr exp10 FROM t006
INTO TABLE itab_t006
WHERE dimid = 'MASS'.
ENDIF.
READ TABLE itab_t006 WITH KEY msehi = itab_it-meinsest.
IF sy-subrc EQ 0.
IF itab_it-meinsest EQ itab_it-gewei.
itab_it-ntgew = itab_it-qtdeumest.
EXIT.
ENDIF.
CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'
EXPORTING
matnr = itab_it-matnr
meins = itab_it-meinsest
MEINS_P = itab_it-gewei
qtde = itab_it-qtdeumest
conv = ' '
land = t001-land1
IMPORTING
qtds = itab_it-ntgew
EXCEPTIONS
conversion_not_found = 1
ncm_not_found = 2
overflow = 3
un_ncm_not_found = 4
material_not_found = 5
OTHERS = 6.
ENDIF.
ENDFORM.
* << Fim da inclusão