Módulo: DRAWBACK
Funcionalidade: Ato Concessório
Data/Hora da Publicação: 07/06/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 13:50:16
Descrição da Nota: AJUSTES NA VINCULAÇÃO DO FORECAST AO ATO CONCESSÓRIO COMUM POR NCM
Sintoma
Ao vincular um Forecast ao ato concessório comum por ncm os valores unitarios ficam incorretos.
Solução
Ajustar o programa para efetuar o calculo dos valores unitarios com base ns somatória dos itens.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01541 Data: 07/06/2006 Hora: 15:53:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01541
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00117
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01284 - 00001 - 6.0 - 00023 - AJUSTES PARA CONTROLE DE ATO CONCESSÓRIO COMUM POR NCM.
----------------------------------------------------------------------------------------------------
AJUSTES NA VINCULAÇÃO DO FORECAST AO ATO CONCESSÓRIO COMUM POR NCM
----------------------------------------------------------------------------------------------------
Palavras Chave:
ATO - CONCESSÓRIO - FORECAST - VINCULAÇÃO - NCM
/PWS/SAPMZYCI040
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI040I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
WHEN 'ABORT'.
PERFORM check_button_abort2.
ENDCASE.
ENDMODULE.
MODULE trata_forecast INPUT.
* >> Início da exclusão: MODULE TRATA_FORECAST
DATA: v_item_fc TYPE i.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
DATA: v_item_fc TYPE i,
v_brgew_t TYPE /pws/zycit245-qtd_tot,
v_ntgew_t TYPE /pws/zycit245-qtd_tot.
* << Fim da inclusão
IF NOT /pws/zycie244-nrforecast IS INITIAL.
CLEAR: itab_zycit239,
itab_zycit249.
REFRESH: itab_zycit239,
itab_zycit249.
...
...
IF sy-subrc EQ 0.
itab_zycit245-nritem = itab_zycit245_aux-nritem.
ENDIF.
itab_zycit245-qtd_tot = itab_zycit245-qtd_ncm .
itab_zycit245-meins = itab_zycit245-um_ncm .
* >> Início da exclusão: MODULE TRATA_FORECAST
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp,
itab_zycit245-perda, itab_zycit245-perda_e.
* << Fim da inclusão
COLLECT itab_zycit245.
ELSE.
APPEND itab_zycit245.
ENDIF.
itab_zycit245_aux[] = itab_zycit245[].
...
...
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,
* >> Início da exclusão: MODULE TRATA_FORECAST
itab_zycit247-stlan, itab_zycit247-stlnr.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
itab_zycit247-stlan, itab_zycit247-stlnr,
itab_zycit247-tolling.
* << Fim da inclusão
itab_zycit247-werks = /pws/zycie244-werks.
COLLECT itab_zycit247.
ELSE.
APPEND itab_zycit247.
ENDIF.
...
...
ENDIF.
v_verificp2 = 'S'.
ELSE.
MESSAGE e015 WITH text-051.
ENDIF.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF /pws/zycit321-c_comum EQ 'X'.
LOOP AT itab_zycit245.
itab_zycit245-netpr = itab_zycit245-netpr_t /
itab_zycit245-qtd_tot.
IF NOT itab_zycit245-vl_seg_t IS INITIAL.
itab_zycit245-pctseg = ( itab_zycit245-vl_seg_t /
( itab_zycit245-netpr_t + itab_zycit245-vl_frete_t )
) * 100.
ENDIF.
CLEAR: v_brgew_t, v_ntgew_t.
LOOP AT itab_zycit249 WHERE j_1bnbm EQ itab_zycit245-j_1bnbm.
v_ntgew_t = v_ntgew_t +
( itab_zycit249-ntgew * itab_zycit249-qtd_tot ).
v_brgew_t = v_brgew_t +
( itab_zycit249-brgew * itab_zycit249-qtd_tot ).
ENDLOOP.
itab_zycit245-brgew = v_brgew_t / itab_zycit245-qtd_tot.
itab_zycit245-ntgew = v_ntgew_t / itab_zycit245-qtd_tot.
MODIFY itab_zycit245.
ENDLOOP.
LOOP AT itab_zycit247.
itab_zycit247-netpr = itab_zycit247-netpr_t /
itab_zycit247-qtd_iten.
itab_zycit247-vl_frete = itab_zycit247-vl_frete_t /
itab_zycit247-qtd_iten.
IF NOT itab_zycit247-netpr_t IS INITIAL.
IF NOT itab_zycit247-pctcomis IS INITIAL.
itab_zycit247-pctcomis = ( itab_zycit247-vl_comis_t /
itab_zycit247-netpr_t ) * 100.
ELSE.
itab_zycit247-pctcomis = itab_zycit247-vl_comis_t /
itab_zycit247-qtd_iten.
ENDIF.
ENDIF.
CLEAR: v_brgew_t, v_ntgew_t.
LOOP AT itab_zycit239 WHERE j_1bnbm EQ itab_zycit247-j_1bnbm.
v_ntgew_t = v_ntgew_t +
( itab_zycit239-ntgew * itab_zycit239-qtd_iten ).
v_brgew_t = v_brgew_t +
( itab_zycit239-brgew * itab_zycit239-qtd_iten ).
ENDLOOP.
itab_zycit247-brgew = v_brgew_t / itab_zycit247-qtd_iten.
itab_zycit247-ntgew = v_ntgew_t / itab_zycit247-qtd_iten.
MODIFY itab_zycit247.
ENDLOOP.
ENDIF.
* << Fim da inclusão
ELSE.
IF /pws/zycie244-nrcompos IS INITIAL.
CLEAR: itab_centros2,
itab_zycit245,
itab_zycit247,
...