Módulo: DOC. IMPORTAÇÃO
Funcionalidade: LI
Data/Hora da Publicação: 06/12/2013 08:52:35
Data/Hora Última Alteração: 06/12/2013 08:52:35
Descrição da Nota: AO VINCULAR A LI AO ATO CONCESSÓRIO ESTÁ RECALCULANDO QUANT. ESTATISTICA
Sintoma
Ao vincular a LI ao Ato Concessório está recalculando quantidade estatistica.
Solução
Ajustado programa para efetuar o recalculo da quantidade estátistica apenas quando está for apagada
ou a quantidade for alterada nos itens da LI.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13427 Data: 20/11/2013 Hora: 10:50:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13427
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 9.0
Pacote : 00006
Agrupamento : 00166
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
10043 - 00001 - 8.0 - 00003 - CALCULAR O PESO LIQUIDO DOS ITENS APENAS QUANDO A QUANTIDADE FOR
10486 - 00002 - 8.0 - 00004 - PROGRAMA SOMA ERRADO COM PEDIDOS COM UNIDADES DE MEDIDAS DIFERENT
13386 - 00003 - 9.0 - 00006 - AO TRANSMITIR LI NÃO LEVAVA QUANTIDADE ESTATISTICA
----------------------------------------------------------------------------------------------------
AO VINCULAR A LI AO ATO CONCESSÓRIO ESTÁ RECALCULANDO QUANT. ESTATISTICA
----------------------------------------------------------------------------------------------------
Palavras Chave:
LI - QUANTIDADE - ESTATISTICA - VINCULAR - ATO - CONCESSÓRIO
/PWS/SAPMZYCI020 - RECALCULANDO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI020X01
REPS /PWS/MZYCI020I01
REPS /PWS/MZYCI020F02
REPS /PWS/MZYCI020F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020X01
...
* >> Início da inclusão:
DATA: v_calc_est(1) TYPE c.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020I01
...
MODULE altera_it_zycit079 INPUT.
READ TABLE it_zycit079 INDEX tc_item-current_line.
IF sy-subrc EQ 0 AND
/pws/zycie079-qtd_iten NE it_zycit079-qtd_iten AND
/pws/zycie079-ntgew EQ it_zycit079-ntgew.
CLEAR: /pws/zycie079-ntgew, it_zycit079-ntgew.
v_alt = 'X'.
ENDIF.
* >> Início da inclusão: MODULE ALTERA_IT_ZYCIT079
IF sy-subrc EQ 0 AND
/pws/zycie079-qtd_iten NE it_zycit079-qtd_iten.
v_calc_est = 'X'.
ENDIF.
* << Fim da inclusão
MOVE: mark TO it_zycit079-mark ,
/pws/zycie079-ebeln TO it_zycit079-ebeln ,
/pws/zycie079-ebelp TO it_zycit079-ebelp ,
/pws/zycie079-descr TO it_zycit079-descr ,
/pws/zycie079-bednr TO it_zycit079-bednr ,
/pws/zycie079-menge TO it_zycit079-menge ,
/pws/zycie079-meins TO it_zycit079-meins ,
/pws/zycie079-netpr TO it_zycit079-netpr ,
/pws/zycie079-qtd_iten TO it_zycit079-qtd_iten ,
/pws/zycie079-ntgew TO it_zycit079-ntgew ,
...
...
MODULE atualiza_itens INPUT.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
CLEAR: /pws/zycie078-qtdest.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF NOT /pws/zycie078-qtdest > 0 or v_calc_est = 'X'.
CLEAR /pws/zycie078-qtdest.
v_calc_est = 'X'.
ENDIF.
* << Fim da inclusão
LOOP AT it_zycit079.
v_indice = sy-tabix.
PERFORM atualiza_itens.
MODIFY it_zycit079 INDEX v_indice.
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF v_calc_est = 'X'.
* << Fim da inclusão
/pws/zycie078-qtdest = /pws/zycie078-qtdest + it_zycit079-qtdest.
* >> Início da inclusão: MODULE ATUALIZA_ITENS
ENDIF.
* << Fim da inclusão
ENDLOOP.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
FORM user_command_0810.
* >> Início da inclusão: FORM USER_COMMAND_0810
DATA: v_qtd_temp TYPE /pws/zycit079-qtd_iten,
v_qtd_tempt TYPE /pws/zycit079-qtd_iten.
* << Fim da inclusão
...
...
ELSE.
it_zycit079-qtd_drawback =
( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).
ENDIF.
it_zycit079-vl_prod_drawback =
it_zycit079-qtd_iten * it_zycit079-netpr.
MODIFY it_zycit079 TRANSPORTING item_drawback nritem_db
qtd_drawback vl_prod_drawback
WHERE ebeln = it_ekpo-ebeln
AND ebelp = it_ekpo-ebelp.
* >> Início da inclusão: FORM USER_COMMAND_0810
ADD it_zycit079-qtd_drawback TO v_qtd_tempt.
* << Fim da inclusão
ENDLOOP.
ENDLOOP.
ELSE.
LOOP AT it_ekpo WHERE matnr EQ itab_atos-matnr.
READ TABLE it_zycit079 WITH KEY
ebeln = it_ekpo-ebeln
ebelp = it_ekpo-ebelp.
MOVE:
itab_atos-nritem+2 TO it_zycit079-item_drawback,
itab_atos-nritem TO it_zycit079-nritem_db.
...
...
ELSE.
it_zycit079-qtd_drawback =
( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).
ENDIF.
it_zycit079-vl_prod_drawback =
it_zycit079-qtd_iten * it_zycit079-netpr.
MODIFY it_zycit079 TRANSPORTING item_drawback nritem_db
qtd_drawback vl_prod_drawback
WHERE ebeln = it_ekpo-ebeln
AND ebelp = it_ekpo-ebelp.
* >> Início da inclusão: FORM USER_COMMAND_0810
ADD it_zycit079-qtd_drawback TO v_qtd_tempt.
* << Fim da inclusão
ENDLOOP.
ENDIF.
ENDLOOP.
ELSE.
READ TABLE itab_atos WITH KEY nrseqd = itab_atos2-nrseqd.
LOOP AT it_zycit079.
MOVE itab_atos-nritem+2 TO it_zycit079-item_drawback.
MOVE itab_atos-nritem TO it_zycit079-nritem_db.
IF v_qtdtot > 0.
IF /pws/zycie078-zum EQ '10' AND
...
...
IF sy-subrc EQ 0.
ENDIF.
ENDIF.
ELSE.
it_zycit079-qtd_drawback =
( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).
ENDIF.
it_zycit079-vl_prod_drawback =
it_zycit079-qtd_iten * it_zycit079-netpr.
MODIFY it_zycit079.
* >> Início da inclusão: FORM USER_COMMAND_0810
ADD it_zycit079-qtd_drawback TO v_qtd_tempt.
* << Fim da inclusão
ENDLOOP.
ENDIF.
SELECT * FROM /pws/zycit172 INTO TABLE it_zycit172
WHERE descricao = it_zycit244-praca. "#EC CI_NOFIELD
MOVE: itab_atos2-nrseqd TO /pws/zycie078-nrseqd ,
itab_atos2-modalidade TO /pws/zycie078-modalidade,
itab_atos2-tipo TO /pws/zycie078-tipodb ,
itab_atos2-nratoc TO /pws/zycie078-reg_drawback.
READ TABLE it_zycit172 WITH KEY descricao = it_zycit244-praca.
IF sy-subrc EQ 0.
...
...
ELSE.
/pws/zycie078-drawback = '2'.
ENDIF.
ENDIF.
ENDIF.
LOOP AT itab_atos2 WHERE nrseqd NE /pws/zycit078-nrseqd.
CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'
EXPORTING
nrseqd = itab_atos2-nrseqd.
ENDLOOP.
* >> Início da inclusão: FORM USER_COMMAND_0810
IF /pws/zycie078-qtdest NE v_qtd_tempt AND
/pws/zycie078-qtdest > 0.
LOOP AT it_zycit079.
it_zycit079-qtd_drawback = /pws/zycie078-qtdest *
( it_zycit079-qtd_drawback / v_qtd_tempt ).
ADD it_zycit079-qtd_drawback TO v_qtd_temp.
MODIFY it_zycit079.
ENDLOOP.
it_zycit079-qtd_drawback = it_zycit079-qtd_drawback +
( /pws/zycie078-qtdest - v_qtd_temp ).
MODIFY it_zycit079 TRANSPORTING qtd_drawback
WHERE ebeln EQ it_zycit079-ebeln
AND ebelp EQ it_zycit079-ebelp.
ENDIF.
* << Fim da inclusão
LEAVE TO SCREEN '100'.
WHEN 'DELEITEM'.
LOOP AT it_vinculato WHERE marc EQ 'X'.
DELETE it_vinculato INDEX sy-tabix.
ENDLOOP.
ENDCASE.
CLEAR okcode.
ENDFORM.
...
...
form trata_qtdest.
* >> Início da inclusão: FORM TRATA_QTDEST
IF v_calc_est = 'X'.
CLEAR: /pws/zycie078-qtdest, v_calc_est.
ENDIF.
* << Fim da inclusão
if not it_zycit079[] is initial.
clear: it_ekpo.
if it_ekpo[] is initial.
refresh: it_ekpo.
select * from ekpo into table it_ekpo
for all entries in it_zycit079
where ebeln eq it_zycit079-ebeln
and ebelp eq it_zycit079-ebelp.
endif.
clear: v_qtdest, v_qtdtot, v_peso.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
APPEND it_ekpo.
ENDIF.
v_vl_temp = itab_zycit079a-qtd_iten *
itab_zycit079a-netpr.
PERFORM converter_moeda USING v_vl_temp
itab_zycit079a-waers
/pws/zycbt007-waersa
it_ekpo-aedat
CHANGING v_vl_temp2 .
IF v_qtdtot > 0 .
* >> Início da exclusão: FORM SAVE_DRAWBACK
IF /pws/zycie078-zum EQ '10'.
IF NOT v_peso IS INITIAL.
itab_zycit079a-qtd_iten =
( itab_zycit079a-ntgew * wa_zycit078-qtdest ) / v_pesod.
ENDIF.
ELSE.
CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'
EXPORTING
matnr = itab_zycit079a-matnr
meins = itab_zycit079a-meins
qtde = itab_zycit079a-qtd_iten
ncm = itab_zycit079a-steuc1
conv = ' '
land = t001-land1
IMPORTING
qtds = itab_zycit079a-qtd_iten
un_s = itab_zycit079a-meins
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 exclusão
* >> Início da inclusão: FORM SAVE_DRAWBACK
itab_zycit079a-qtd_iten = itab_zycit079a-qtd_drawback.
* << Fim da inclusão
ELSE.
itab_zycit079a-qtd_iten =
( itab_zycit079a-qtd_iten * wa_zycit078-qtdest ).
ENDIF.
it_zycit245-vlvinc = it_zycit245-vlvinc -
v_vl_temp2.
it_zycit245-vinculado = it_zycit245-vinculado -
itab_zycit079a-qtd_iten.
MODIFY it_zycit245 TRANSPORTING vlvinc vinculado
WHERE nritem EQ it_zycit245-nritem.
...
...
APPEND it_ekpo.
ENDIF.
v_vl_temp = it_zycit079-qtd_iten *
it_zycit079-netpr.
PERFORM converter_moeda USING v_vl_temp
it_zycit079-waers
/pws/zycbt007-waersa
it_ekpo-aedat
CHANGING v_vl_temp2 .
IF v_qtdtot > 0 .
* >> Início da exclusão: FORM SAVE_DRAWBACK
IF /pws/zycie078-zum EQ '10'.
IF NOT v_peso IS INITIAL.
it_zycit079-qtd_iten =
( it_zycit079-ntgew * /pws/zycie078-qtdest ) / v_peso.
ENDIF.
ELSE.
CALL FUNCTION '/PWS/COVERT_UN_MATERIAL'
EXPORTING
matnr = it_zycit079-matnr
meins = it_zycit079-meins
qtde = it_zycit079-qtd_iten
ncm = it_zycit079-steuc1
conv = ' '
land = t001-land1
IMPORTING
qtds = it_zycit079-qtd_iten
un_s = it_zycit079-meins
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 exclusão
* >> Início da inclusão: FORM SAVE_DRAWBACK
it_zycit079-qtd_iten = it_zycit079-qtd_drawback.
* << Fim da inclusão
ELSE.
it_zycit079-qtd_iten =
( it_zycit079-qtd_iten * /pws/zycie078-qtdest ).
ENDIF.
it_zycit245-vlvinc = it_zycit245-vlvinc +
v_vl_temp2.
it_zycit245-vinculado = it_zycit245-vinculado +
it_zycit079-qtd_iten.
MODIFY it_zycit245 TRANSPORTING vlvinc vinculado
WHERE nritem EQ it_zycit245-nritem
...