Módulo: DRAWBACK
Funcionalidade: Forecast
Data/Hora da Publicação: 10/08/2009 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:40:34
Descrição da Nota: FORECAST VERDE-AMARELO / INTEGRADO VINCULAÇÃO
Sintoma
Desenvolvimento do Forecast verde-amarelo / integrado.
Solução
Desenvolvimento do Forecast verde-amarelo / integrado.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08800 Data: 10/08/2009 Hora: 09:52:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08800
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00109
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05099 - 00001 - 7.0 - 00003 - PREENCHIMENTO DO CAMPO MOEDA NO ATO CONCESSÓRIO ISENÇÃO
07198 - 00002 - 7.0 - 00006 - IMPORTA INSUMO NACIONAIS DO FORECAST PARA O ATO CONCESSÓRIO
07841 - 00003 - 7.0 - 00008 - PROGRAMA ESTÁ ELIMINANDO INSUMOS QUANDO O FORECAST É POR AGRUPAME
08573 - 00004 - 7.0 - 00010 - AJUSTES REFERENTES AO DRAWBACK INTEGRADO
----------------------------------------------------------------------------------------------------
FORECAST VERDE-AMARELO / INTEGRADO VINCULAÇÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
ATO CONCESSÓRIO FORECAST VINCULAÇÃO VERDE-AMARELO INTEGRADO
----------------------------------------------------------------------------------------------------
Objetos da nota:
TABD /PWS/ZYCIE238
TABD /PWS/ZYCIT238
DYNP /PWS/SAPMZYCI063 0101
REPS /PWS/MZYCI063F01
REPS /PWS/MZYCI040F02
REPS /PWS/MZYCI040I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE238
IMPORTACAO /PWS/ZYCIL841
DESCRICAO CHAR35
VARIACAOCB /PWS/ZYCIL444
APROVADO /PWS/ZYCIL451
DTAPROV DATUM
CODAGRUP /PWS/ZYCIL613
* >> Início da inclusão:TABD /PWS/ZYCIE238
SUBTIPO /PWS/ZYCIL874
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT238
IMPORTACAO /PWS/ZYCIL841
DESCRICAO CHAR35
VARIACAOCB /PWS/ZYCIL444
APROVADO /PWS/ZYCIL451
DTAPROV DATUM
CODAGRUP /PWS/ZYCIL613
* >> Início da inclusão:TABD /PWS/ZYCIT238
SUBTIPO /PWS/ZYCIL874
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI063 0101
INCLUIR CAMPO TEXTO "/PWS/ZYCIE238-SUBTIPO"
Altura 15
Comprimento Visível 1
Linha 6
Coluna 73
Formato CHAR
Linhas mínimas 1
Texto _
Código função
INCLUIR TEXTO "/PWS/ZYCIE238-SUBTIPO"
Comprimento Visível 13
Linha 6
Coluna 58
Formato CHAR
Texto Sub-tipo
Código função
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI063F01
...
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn.
MOVE-CORRESPONDING itab_compn TO itab_compi_viab.
CLEAR: itab_compi_viab-vlii, itab_compi_viab-vlafrmm,
itab_compi_viab-vlicms.
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm +
itab_compi_viab-vlpis + itab_compi_viab-vlcofins
+ itab_compi_viab-vlicms.
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
ENDIF.
* << Fim da inclusão
PERFORM atualiza_viabilidade.
tc_compn-top_line = 1.
tc_compi-top_line = 1.
tc_viab-top_line = 1.
ENDIF.
ENDFORM.
FORM trata_button_prior.
IF v_indicatu > 1.
v_indicatu = v_indicatu - 1.
ENDIF.
...
...
itab_exp-meins TO /pws/zycie239c-meins ,
v_qtdmat TO /pws/zycie239c-qtd_iten,
itab_exp-waers TO /pws/zycie239c-waers ,
itab_exp-netpr TO /pws/zycie239c-netpr ,
itab_exp-netpr_t TO /pws/zycie239c-netpr_t .
PERFORM move_componentes.
CLEAR: itab_compi_viab. REFRESH: itab_compi_viab.
CLEAR: v_tot_eco, v_tot_cb.
LOOP AT itab_compi.
MOVE-CORRESPONDING itab_compi TO itab_compi_viab.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm +
itab_compi_viab-vlpis + itab_compi_viab-vlcofins +
itab_compi_viab-vlicms . .
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn.
MOVE-CORRESPONDING itab_compn TO itab_compi_viab.
CLEAR: itab_compi_viab-vlii, itab_compi_viab-vlafrmm,
itab_compi_viab-vlicms.
* << Fim da inclusão
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm +
itab_compi_viab-vlpis + itab_compi_viab-vlcofins +
itab_compi_viab-vlicms . .
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR
ENDIF.
* << Fim da inclusão
PERFORM atualiza_viabilidade.
tc_compn-top_line = 1.
tc_compi-top_line = 1.
tc_viab-top_line = 1.
ENDIF.
ENDFORM.
FORM trata_button_next.
DESCRIBE TABLE itab_exp LINES v_ilinhas.
IF v_indicatu < v_ilinhas.
v_indicatu = v_indicatu + 1.
...
...
itab_exp-meins TO /pws/zycie239c-meins ,
v_qtdmat TO /pws/zycie239c-qtd_iten,
itab_exp-waers TO /pws/zycie239c-waers ,
itab_exp-netpr TO /pws/zycie239c-netpr ,
itab_exp-netpr_t TO /pws/zycie239c-netpr_t .
PERFORM move_componentes.
CLEAR: itab_compi_viab. REFRESH: itab_compi_viab.
CLEAR: v_tot_eco, v_tot_cb.
LOOP AT itab_compi.
MOVE-CORRESPONDING itab_compi TO itab_compi_viab.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms .
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn.
MOVE-CORRESPONDING itab_compn TO itab_compi_viab.
CLEAR: itab_compi_viab-vlii, itab_compi_viab-vlafrmm,
itab_compi_viab-vlicms.
* << Fim da inclusão
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms .
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT
ENDIF.
* << Fim da inclusão
PERFORM atualiza_viabilidade.
tc_compn-top_line = 1.
tc_compi-top_line = 1.
tc_viab-top_line = 1.
ENDIF.
ENDFORM.
FORM trata_button_last.
DESCRIBE TABLE itab_exp LINES v_ilinhas.
v_indicatu = v_ilinhas.
LOOP AT itab_exp WHERE mark = 'X'.
...
...
itab_exp-meins TO /pws/zycie239c-meins ,
v_qtdmat TO /pws/zycie239c-qtd_iten,
itab_exp-waers TO /pws/zycie239c-waers ,
itab_exp-netpr TO /pws/zycie239c-netpr ,
itab_exp-netpr_t TO /pws/zycie239c-netpr_t .
PERFORM move_componentes.
CLEAR: itab_compi_viab. REFRESH: itab_compi_viab.
CLEAR: v_tot_eco, v_tot_cb.
LOOP AT itab_compi.
MOVE-CORRESPONDING itab_compi TO itab_compi_viab.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms.
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn.
MOVE-CORRESPONDING itab_compn TO itab_compi_viab.
CLEAR: itab_compi_viab-vlii, itab_compi_viab-vlafrmm,
itab_compi_viab-vlicms.
* << Fim da inclusão
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms.
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST
ENDIF.
* << Fim da inclusão
PERFORM atualiza_viabilidade.
tc_compn-top_line = 1.
tc_compi-top_line = 1.
tc_viab-top_line = 1.
ENDIF.
ENDFORM.
FORM gera_numero_seq.
DATA: v_nrseqd LIKE /pws/zycie238-nrseqd,
v_count(7) TYPE n ,
v_ano(4) TYPE c .
...
...
CLEAR itab_compn_final.
ENDFORM.
FORM atualiza_itab_compi_final.
IF NOT itab_compi[] IS INITIAL.
READ TABLE itab_compi INDEX tc_compi-current_line.
IF sy-subrc EQ 0.
DELETE itab_compi_final WHERE nritem = itab_compi-nritem
AND werks = itab_compi-werks.
LOOP AT itab_compi.
MOVE-CORRESPONDING itab_compi TO itab_compi_final.
* >> Início da inclusão: FORM ATUALIZA_ITAB_COMPI_FINAL
APPEND itab_compi_final.
ENDLOOP.
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn_final.
MOVE-CORRESPONDING itab_compn_final TO itab_compi_final.
* << Fim da inclusão
APPEND itab_compi_final.
ENDLOOP.
* >> Início da inclusão: FORM ATUALIZA_ITAB_COMPI_FINAL
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
CLEAR itab_compi_final.
ENDFORM.
FORM trata_button_exclm_n.
...
...
MOVE itab_marc-steuc TO itab_compn_final-j_1bnbm.
ENDIF.
itab_compn_final-qtd_iten = i_final-qtunit.
PERFORM converte_um_base USING i_final-insumo
CHANGING i_final-meins
itab_compn_final-qtd_iten.
itab_compn_final-qtd_tot =
( itab_compn_final-qtd_iten * itab_exp-qtd_iten ).
itab_compn_final-netpr_t =
( itab_compn_final-netpr * itab_compn_final-qtd_tot ).
* >> Início da inclusão: FORM VERIFICA_COMPONENTES
READ TABLE itab_compn_final INTO itab_compi
WITH KEY nritem = itab_exp-nritem
codcomp = itab_compn_final-codcomp.
IF sy-subrc EQ 0.
CLEAR: itab_compn_final-netpr, itab_compn_final-txafrmm,
itab_compn_final-brgew, itab_compn_final-ntgew,
itab_compn_final-pctseg.
ELSE.
CLEAR: itab_impostos2, it_cpi.
REFRESH: itab_impostos2, it_cpi.
MOVE-CORRESPONDING itab_compn_final TO it_cpi.
APPEND it_cpi.
CALL FUNCTION '/PWS/ZYCI_VERIFICA_TAXA_DB'
EXPORTING
data = sy-datum
centro = /pws/zycie238-werks
TABLES
itab_itens = it_cpi[]
itab_impostos2 = itab_impostos2[].
READ TABLE itab_impostos2 WITH KEY
codmat = itab_compn_final-codmat
codcomp = itab_compn_final-codcomp
proced = itab_compn_final-proced.
IF sy-subrc EQ 0.
itab_compn_final-txipi = itab_impostos2-rate2.
itab_compn_final-txicms = itab_impostos2-rate3.
ENDIF.
ENDIF.
itab_compi_final-txcofins = v_cofins1.
itab_compi_final-txpis = v_pis1 .
itab_compn_final-waersimp = itab_compn_final-waers.
* << Fim da inclusão
COLLECT itab_compn_final.
ELSE.
CLEAR itab_compi_final.
MOVE: /pws/zycie238-nrseqd TO itab_compi_final-nrseqd ,
itab_exp-codmat TO itab_compi_final-codmat ,
itab_exp-nritem TO itab_compi_final-nritem ,
itab_exp-werks TO itab_compi_final-werks ,
itab_exp-agrup TO itab_compi_final-agrup ,
i_final-insumo TO itab_compi_final-codcomp,
itab_mara-meins TO itab_compi_final-meins ,
...
...
ENDLOOP.
itab_exp-imp_s_cob_camb = v_imp_camb.
MODIFY itab_exp.
ENDIF.
ENDLOOP.
READ TABLE itab_zycit407 WITH KEY tributos = 'PIS' .
IF sy-subrc EQ 0.
itab_compi_final-txpis = itab_zycit407-aliquotas.
MODIFY itab_compi_final TRANSPORTING txpis
WHERE txpis EQ space.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES
itab_compn_final-txpis = itab_zycit407-aliquotas.
MODIFY itab_compn_final TRANSPORTING txpis
WHERE txpis EQ space.
* << Fim da inclusão
ENDIF.
READ TABLE itab_zycit407 WITH KEY tributos = 'COFINS' .
IF sy-subrc EQ 0.
itab_compi_final-txcofins = itab_zycit407-aliquotas.
MODIFY itab_compi_final TRANSPORTING txcofins
* >> Início da inclusão: FORM VERIFICA_COMPONENTES
WHERE txcofins EQ space.
itab_compn_final-txcofins = itab_zycit407-aliquotas.
MODIFY itab_compn_final TRANSPORTING txcofins
* << Fim da inclusão
WHERE txcofins EQ space.
ENDIF.
v_verificp = 'S'.
DESCRIBE TABLE itab_exp LINES v_verifiit.
MESSAGE s015 WITH text-023.
PERFORM atualiza_impostos.
ENDFORM.
FORM atualiza_valores_comps.
it_cpi[] = itab_compi_final[].
LOOP AT itab_exp.
...
...
itab_exp-waers TO /pws/zycie239c-waers ,
itab_exp-netpr TO /pws/zycie239c-netpr ,
itab_exp-netpr_t TO /pws/zycie239c-netpr_t ,
itab_exp-meins TO /pws/zycie239c-meins ,
v_qtdmat TO /pws/zycie239c-qtd_iten.
PERFORM move_componentes.
CLEAR: itab_compi_viab. REFRESH: itab_compi_viab.
CLEAR: v_tot_eco, v_tot_cb.
LOOP AT itab_compi.
MOVE-CORRESPONDING itab_compi TO itab_compi_viab.
* >> Início da inclusão: FORM TRATA_TAB_VIAB
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms .
IF /pws/zycie238-importacao EQ 'X'.
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
ELSE.
itab_compi_viab-variacaocb =
itab_compi_viab-vlcif / ( ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) + itab_compi-netpr_t ) * 100.
ENDIF.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn.
MOVE-CORRESPONDING itab_compn TO itab_compi_viab.
CLEAR: itab_compi_viab-vlii, itab_compi_viab-vlafrmm,
itab_compi_viab-vlicms.
* << Fim da inclusão
itab_compi_viab-vlcif = itab_compi_viab-netpr_t +
itab_compi_viab-vl_frete_t + itab_compi_viab-vl_seg_t.
itab_compi_viab-vl_total = itab_compi_viab-vlii +
itab_compi_viab-vlipi + itab_compi_viab-vlafrmm
+ itab_compi_viab-vlcofins + itab_compi_viab-vlpis +
itab_compi_viab-vlicms .
IF /pws/zycie238-importacao EQ 'X'.
itab_compi_viab-variacaocb =
( itab_compi_viab-vlcif / ( itab_exp-netpr_t -
itab_exp-vl_comis_t ) ) * 100.
...
...
itab_exp-vl_comis_t ) + itab_compi-netpr_t ) * 100.
ENDIF.
MOVE itab_compi_viab-variacaocb TO itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 LEFT DELETING LEADING space.
CONCATENATE itab_compi_viab-variacaocb2 '%' INTO
itab_compi_viab-variacaocb2.
SHIFT itab_compi_viab-variacaocb2 RIGHT DELETING TRAILING space.
REPLACE '.' WITH ',' INTO itab_compi_viab-variacaocb2.
APPEND itab_compi_viab.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_TAB_VIAB
ENDIF.
* << Fim da inclusão
PERFORM atualiza_viabilidade.
pressed_tab = ok_code.
dynpronr = '0108'.
tc_viab-top_line = 1.
ENDFORM.
FORM check_screen_0108.
LOOP AT SCREEN.
IF NOT /pws/zycit321-ltopc IS INITIAL.
CASE screen-group4.
WHEN 'MAT'.
...
...
EXIT.
ENDIF.
PERFORM atualiza_viabilidade.
IF v_tot_eco7_aux > 60.
IF ok_code NE 'BACK' AND ok_code NE 'ABORT'.
MESSAGE w015 WITH text-047.
ENDIF.
ENDIF.
IF v_tcode EQ '/PWS/ZYCI040_P'.
PERFORM verifica_nrseq_gravado.
* >> Início da inclusão: FORM TRATA_BUTTON_SAVE
ENDIF.
IF /pws/zycie238-subtipo EQ space.
itab_compn_final-transp = ''.
MODIFY itab_compn_final TRANSPORTING transp
WHERE nrseqd EQ /pws/zycie238-nrseqd.
* << Fim da inclusão
ENDIF.
LOOP AT itab_compn_final.
CHECK itab_compn_final-codcomp IS INITIAL.
READ TABLE itab_compn WITH KEY nrseqd = itab_compn_final-nrseqd
nritem = itab_compn_final-nritem
codcomp = itab_compn_final-codcomp
proced = itab_compn_final-proced.
IF sy-subrc EQ 0.
DELETE itab_compn WHERE nrseqd = itab_compn_final-nrseqd
AND nritem = itab_compn_final-nritem
...
...
v_cif_aux = itab_compi_final-netpr_t + itab_compi_final-vl_frete_t +
itab_compi_final-vl_seg_t .
v_cif_aux2 = v_cif_aux2 + v_cif_aux.
v_totii2 = ( v_totii2 + itab_compi_final-vlii ).
v_totipi2 = ( v_totipi2 + itab_compi_final-vlipi ).
v_totpis2 = ( v_totpis2 + itab_compi_final-vlpis ).
v_totcofins2 = ( v_totcofins2 + itab_compi_final-vlcofins ).
v_totafrmm2 = ( v_totafrmm2 + itab_compi_final-vlafrmm ).
v_fob_t = v_fob_t + itab_compi_final-netpr_t.
ENDLOOP.
* >> Início da inclusão: FORM ATUALIZA_VIABILIDADE
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn_final WHERE transp EQ 'X'.
v_cif_aux = itab_compn_final-netpr_t + itab_compn_final-vl_frete_t
+ itab_compn_final-vl_seg_t .
v_cif_aux2 = v_cif_aux2 + v_cif_aux.
v_totipi2 = ( v_totipi2 + itab_compn_final-vlipi ).
v_totpis2 = ( v_totpis2 + itab_compn_final-vlpis ).
v_totcofins2 = ( v_totcofins2 + itab_compn_final-vlcofins ).
v_fob_t = v_fob_t + itab_compn_final-netpr_t.
ENDLOOP.
ENDIF.
* << Fim da inclusão
v_tot_eco4 = v_totafrmm2 + v_totii2.
v_tot_eco6 = v_totpis2 + v_totcofins2 + v_tot_eco5 + v_totipi2.
v_totr = v_tot_eco6 + v_tot_eco4.
IF /pws/zycie238-importacao EQ 'X'.
v_tot_eco7_aux = ( ( v_cif_aux2 / v_netprmat ) * 100 ).
ELSE.
v_tot_eco7_aux = ( v_cif_aux2 / ( ( v_netprmat + v_fob_t )
- v_comis_t ) * 100 ).
ENDIF.
MOVE v_tot_eco7_aux TO v_tot_eco7.
...
...
itab_compi-vl_total = ( itab_compi-vlii + itab_compi-vlipi +
itab_compi-vlicms + itab_compi-vlafrmm +
itab_compi-vlpis + itab_compi-vlcofins ).
MODIFY itab_compi TRANSPORTING codmat codcomp proced txii vlii
txipi vlipi txicms vlicms txafrmm
vlafrmm vl_total vlpis vlcofins
nritem
WHERE nritem = itab_compi_final-nritem
AND codcomp = itab_compi_final-codcomp
AND proced = itab_compi_final-proced.
* >> Início da inclusão: FORM ATUALIZA_IMPOSTOS
ENDIF.
ENDLOOP.
v_index = 0.
LOOP AT itab_compn_final.
v_index = sy-tabix.
IF itab_compn_final-txicms > 0.
v_icmspct = ( 100 - itab_compn_final-txicms ) / 100.
ELSE.
v_icmspct = 1.
ENDIF.
v_vlcif_imp = itab_compn_final-netpr_t +
itab_compn_final-vl_frete_t + itab_compn_final-vl_seg_t.
itab_compn_final-vlii =
( v_vlcif_imp * itab_compn_final-txii ) / 100.
itab_compn_final-vlipi = ( ( v_vlcif_imp + itab_compn_final-vlii )
* itab_compn_final-txipi ) / 100.
v_advii = ( itab_compn_final-txii / 100 ).
v_advipi = ( itab_compn_final-txipi / 100 ).
v_advicms = ( itab_compn_final-txicms / 100 ).
v_advpis = ( itab_compn_final-txpis / 100 ).
v_advcof = ( itab_compn_final-txcofins / 100 ).
v_xb = ( 1 - v_advpis - v_advcof ) * ( 1 - v_advicms ).
v_xa = 1 + v_advicms * ( v_advii + v_advipi *
( 1 + v_advii ) ) .
v_fatx = v_xa / v_xb.
v_faty = v_advicms / v_xb.
itab_compn_final-vlpis = ( v_vlcif_imp * v_fatx ) *
v_advpis.
itab_compn_final-vlcofins = ( v_vlcif_imp * v_fatx ) *
v_advcof.
itab_compn_final-vlicms =
( ( ( v_vlcif_imp + itab_compn_final-vlii +
itab_compn_final-vlpis + itab_compn_final-vlcofins +
itab_compn_final-vlipi ) / v_icmspct ) *
itab_compn_final-txicms ) / 100.
itab_compn_final-txafrmm = 25.
itab_compn_final-vlafrmm =
( itab_compn_final-vl_frete_t * itab_compn_final-txafrmm ) / 100.
itab_compn_final-vl_total =
( itab_compn_final-vlii + itab_compn_final-vlipi +
itab_compn_final-vlicms + itab_compn_final-vlafrmm +
itab_compn_final-vlpis + itab_compn_final-vlcofins ).
MODIFY itab_compn_final INDEX v_index.
READ TABLE itab_compn WITH KEY nritem = itab_compn_final-nritem
codcomp = itab_compn_final-codcomp
proced = itab_compn_final-proced.
IF sy-subrc EQ 0.
IF itab_compn-txicms > 0.
v_icmspct = ( 100 - itab_compn-txicms ) / 100.
ELSE.
v_icmspct = 1.
ENDIF.
v_vlcif_imp = itab_compn-netpr_t +
itab_compn-vl_frete_t + itab_compn-vl_seg_t.
itab_compn-vlii = ( v_vlcif_imp * itab_compi-txii ) / 100.
itab_compn-vlipi = ( ( v_vlcif_imp + itab_compn-vlii )
* itab_compn-txipi ) / 100.
itab_compn-vlicms = ( ( ( v_vlcif_imp + itab_compn-vlii +
itab_compn-vlipi ) / v_icmspct ) * itab_compn-txicms ) / 100.
itab_compn-txafrmm = 25.
itab_compn-vlafrmm =
( itab_compn-vl_frete_t * itab_compn-txafrmm ) / 100.
v_advii = ( itab_compn-txii / 100 ).
v_advipi = ( itab_compn-txipi / 100 ).
v_advicms = ( itab_compn-txicms / 100 ).
v_advpis = ( itab_compn-txpis / 100 ).
v_advcof = ( itab_compn-txcofins / 100 ).
v_xb = ( 1 - v_advpis - v_advcof ) * ( 1 - v_advicms ).
v_xa = 1 + v_advicms * ( v_advii + v_advipi *
( 1 + v_advii ) ) .
v_fatx = v_xa / v_xb.
v_faty = v_advicms / v_xb.
itab_compn-vlpis = ( v_vlcif_imp * v_fatx ) *
v_advpis.
itab_compn-vlcofins = ( v_vlcif_imp * v_fatx ) *
v_advcof.
itab_compn-vl_total = ( itab_compn-vlii + itab_compn-vlipi +
itab_compn-vlicms + itab_compn-vlafrmm +
itab_compn-vlpis + itab_compn-vlcofins ).
MODIFY itab_compn TRANSPORTING codmat codcomp proced txii vlii
txipi vlipi txicms vlicms txafrmm
vlafrmm vl_total vlpis vlcofins
nritem
WHERE nritem = itab_compn_final-nritem
AND codcomp = itab_compn_final-codcomp
AND proced = itab_compn_final-proced.
* << Fim da inclusão
ENDIF.
ENDLOOP.
ENDFORM.
FORM check_fields_screen_0101.
LOOP AT SCREEN.
IF screen-group1 NE 'NEX'.
screen-input = v_status.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
...
...
itab_compi_final-vlipi TO itab_sdocompi-vlipi ,
itab_compi_final-vlicms TO itab_sdocompi-vlicms ,
itab_compi_final-vlpis TO itab_sdocompi-vlpis ,
itab_compi_final-vlcofins TO itab_sdocompi-vlcofins ,
itab_compi_final-vlafrmm TO itab_sdocompi-vlafrmm ,
itab_compi_final-vl_total TO itab_sdocompi-vl_total .
itab_sdocompi-vl_cif_t = ( itab_compi_final-netpr_t +
itab_compi_final-vl_frete_t + itab_compi_final-vl_seg_t ).
COLLECT itab_sdocompi.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_SALDO
IF /pws/zycie238-subtipo NE space.
LOOP AT itab_compn_final.
CLEAR: itab_sdocompi.
MOVE: /pws/zycie238-nrseqd TO itab_sdocompi-nrseqd ,
itab_compn_final-codcomp TO itab_sdocompi-codcomp ,
itab_compn_final-proced TO itab_sdocompi-proced ,
itab_compn_final-qtd_iten TO itab_sdocompi-qtd_iten ,
itab_compn_final-qtd_tot TO itab_sdocompi-qtd_tot ,
itab_compn_final-netpr_t TO itab_sdocompi-netpr_t ,
itab_compn_final-vl_frete_t TO itab_sdocompi-vl_frete_t,
itab_compn_final-vl_seg_t TO itab_sdocompi-vl_seg_t ,
itab_compn_final-vlipi TO itab_sdocompi-vlipi ,
itab_compn_final-vlpis TO itab_sdocompi-vlpis ,
itab_compn_final-vlcofins TO itab_sdocompi-vlcofins .
itab_sdocompi-vl_total = itab_compn_final-vlipi +
itab_compn_final-vlpis + itab_compn_final-vlcofins.
itab_sdocompi-vl_cif_t = ( itab_compn_final-netpr_t +
itab_compn_final-vl_frete_t + itab_compn_final-vl_seg_t ).
COLLECT itab_sdocompi.
ENDLOOP.
ENDIF.
* << Fim da inclusão
LOOP AT itab_sdocompi.
v_index = sy-tabix.
READ TABLE itab_compi_final WITH KEY
codcomp = itab_sdocompi-codcomp
proced = itab_sdocompi-proced.
IF sy-subrc EQ 0.
MOVE: itab_compi_final-werks TO itab_sdocompi-werks ,
itab_compi_final-meins TO itab_sdocompi-meins ,
itab_compi_final-gewei TO itab_sdocompi-gewei ,
itab_compi_final-brgew TO itab_sdocompi-brgew ,
...
...
itab_compi_final-vl_frete TO itab_sdocompi-vl_frete,
itab_compi_final-pctseg TO itab_sdocompi-pctseg ,
itab_compi_final-vl_seg TO itab_sdocompi-vl_seg ,
itab_compi_final-transp TO itab_sdocompi-transp .
IF v_verifvb = 'S'.
IF itab_sdocompi-vl_total >= /pws/zycit321-viabilidade.
itab_sdocompi-transp = 'X'.
ENDIF.
itab_compi_final-transp = itab_sdocompi-transp .
MODIFY itab_compi_final TRANSPORTING transp
* >> Início da inclusão: FORM TRATA_SALDO
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
ENDIF.
MODIFY itab_sdocompi INDEX v_index.
ELSE.
READ TABLE itab_compn_final WITH KEY
codcomp = itab_sdocompi-codcomp
proced = itab_sdocompi-proced.
IF sy-subrc EQ 0.
MOVE: itab_compn_final-werks TO itab_sdocompi-werks ,
itab_compn_final-meins TO itab_sdocompi-meins ,
itab_compn_final-gewei TO itab_sdocompi-gewei ,
itab_compn_final-brgew TO itab_sdocompi-brgew ,
itab_compn_final-ntgew TO itab_sdocompi-ntgew ,
itab_compn_final-j_1bnbm TO itab_sdocompi-j_1bnbm ,
itab_compn_final-waers TO itab_sdocompi-waers ,
itab_compn_final-waersimp TO itab_sdocompi-waersimp,
itab_compn_final-netpr TO itab_sdocompi-netpr ,
itab_compn_final-vl_frete TO itab_sdocompi-vl_frete,
itab_compn_final-pctseg TO itab_sdocompi-pctseg ,
itab_compn_final-vl_seg TO itab_sdocompi-vl_seg ,
itab_compn_final-transp TO itab_sdocompi-transp .
IF v_verifvb = 'S'.
IF itab_sdocompi-vl_total >= /pws/zycit321-viabilidade.
itab_sdocompi-transp = 'X'.
ENDIF.
itab_compn_final-transp = itab_sdocompi-transp .
MODIFY itab_compn_final TRANSPORTING transp
* << Fim da inclusão
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
ENDIF.
MODIFY itab_sdocompi INDEX v_index.
* >> Início da inclusão: FORM TRATA_SALDO
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
SORT itab_sdocompi BY codcomp.
...
...
ENDLOOP.
ENDFORM.
FORM trata_button_transp.
READ TABLE itab_sdocompi WITH KEY mark_res = 'X'.
IF sy-subrc NE 0.
MESSAGE s015 WITH text-148.
EXIT.
ENDIF.
LOOP AT itab_sdocompi WHERE mark_res = 'X'.
IF itab_sdocompi-transp EQ 'X'.
* >> Início da inclusão: FORM TRATA_BUTTON_TRANSP
IF itab_sdocompi-proced EQ '0'.
LOOP AT itab_compn_final
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
itab_compn_final-transp = ' '.
MODIFY itab_compn_final.
ENDLOOP.
ELSE.
* << Fim da inclusão
LOOP AT itab_compi_final
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
itab_compi_final-transp = ' '.
MODIFY itab_compi_final.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_TRANSP
ENDIF.
* << Fim da inclusão
itab_sdocompi-transp = ' '.
ELSE.
* >> Início da inclusão: FORM TRATA_BUTTON_TRANSP
IF itab_sdocompi-proced EQ '0'.
LOOP AT itab_compn_final
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
itab_compn_final-transp = 'X'.
MODIFY itab_compn_final.
ENDLOOP.
ELSE.
* << Fim da inclusão
LOOP AT itab_compi_final
WHERE codcomp = itab_sdocompi-codcomp
AND proced = itab_sdocompi-proced.
itab_compi_final-transp = 'X'.
MODIFY itab_compi_final.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_BUTTON_TRANSP
ENDIF.
* << Fim da inclusão
itab_sdocompi-transp = 'X'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040F02
...
MODIFY SCREEN.
ENDIF.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE244-VERD_AMA'.
IF /pws/zycie244-modalidade EQ 'I' OR
/pws/zycie244-tipo EQ 'F'.
screen-invisible = 1.
screen-active = 0.
CLEAR: /pws/zycie244-verd_ama.
ELSE.
* >> Início da exclusão: FORM CHECK_FIELD_0201
IF NOT /pws/zycie244-nratoc IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM CHECK_FIELD_0201
IF NOT /pws/zycie244-nratoc IS INITIAL OR NOT
/pws/zycie244-nrforecast IS INITIAL.
* << Fim da inclusão
screen-input = 0.
ELSE.
screen-input = 1.
ENDIF.
screen-invisible = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF screen-name EQ 'LINHA'.
IF /pws/zycie244-modalidade EQ 'I'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI040I01
...
MODULE user_command_0200_exit INPUT.
CASE ok_code2.
WHEN 'ABORT'.
PERFORM check_button_abort2.
ENDCASE.
ENDMODULE.
MODULE trata_forecast INPUT.
DATA: v_item_fc TYPE i,
v_brgew_t TYPE /pws/zycit245-qtd_tot,
v_ntgew_t TYPE /pws/zycit245-qtd_tot.
* >> Início da inclusão: MODULE TRATA_FORECAST
DATA: v_conv10 TYPE /pws/zycit245-qtd_ncm,
v_conv20 TYPE /pws/zycit245-qtd_ncm.
* << Fim da inclusão
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI040'
'ATO003'.
e_subrc = 0.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'ATO003' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa)
...
...
DELETE ADJACENT DUPLICATES FROM itab_zycit250 COMPARING codagrup.
MOVE: wa_zycit2382-modalidade TO /pws/zycie244-modalidade,
wa_zycit2382-tipo TO /pws/zycie244-tipo ,
wa_zycit2382-tipoemp TO /pws/zycie244-tipoemp ,
wa_zycit2382-oper_ind TO /pws/zycie244-oper_ind ,
wa_zycit2382-bukrs TO /pws/zycie244-bukrs ,
wa_zycit2382-werks TO /pws/zycie244-werks ,
wa_zycit2382-ekorg TO /pws/zycie244-ekorg ,
wa_zycit2382-importacao TO /pws/zycie244-importacao,
wa_zycit2382-variacaocb TO /pws/zycie244-variacaocb,
* >> Início da exclusão: MODULE TRATA_FORECAST
wa_zycit2382-codagrup TO /pws/zycie244-codagrup.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
wa_zycit2382-codagrup TO /pws/zycie244-codagrup ,
wa_zycit2382-subtipo TO /pws/zycie244-verd_ama .
* << Fim da inclusão
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie244-bukrs.
IF NOT /pws/zycie244-bukrs IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007 INTO wa_zycbt007
WHERE bukrs = /pws/zycie244-bukrs .
ENDIF.
SELECT SINGLE ddtext FROM dd07t
INTO /pws/zycie244-tipo2
WHERE domname EQ '/PWS/ZYGLD053'
AND ddlanguage EQ sy-langu(1)
AND domvalue_l LIKE /pws/zycie244-tipo.
CLEAR itab_zycit245. REFRESH itab_zycit245.
SELECT * FROM /pws/zycit249 INTO TABLE itab_zycit249
WHERE nrseqd EQ /pws/zycie244-nrforecast.
SELECT * FROM /pws/zycit240 INTO TABLE itab_zycit240
* >> Início da exclusão: MODULE TRATA_FORECAST
WHERE nrseqd EQ /pws/zycie244-nrforecast.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
WHERE nrseqd EQ /pws/zycie244-nrforecast
AND transp NE space.
* << Fim da inclusão
IF sy-subrc EQ 0.
CLEAR itab_zycit245_aux. REFRESH itab_zycit245_aux.
* >> Início da exclusão: MODULE TRATA_FORECAST
LOOP AT itab_zycit249.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
LOOP AT itab_zycit249 WHERE proced NE '0'.
* << Fim da inclusão
CLEAR itab_zycit245.
* >> Início da exclusão: MODULE TRATA_FORECAST
CHECK itab_zycit249-transp EQ 'X'.
* << Fim da exclusão
MOVE-CORRESPONDING itab_zycit249 TO itab_zycit245.
PERFORM select_max_item_number2 CHANGING v_nritem.
itab_zycit245-nritem = v_nritem.
itab_zycit245-nrseqd = /pws/zycie244-nrseqd.
itab_zycit245-sdocomp_i = itab_zycit249-qtd_tot.
LOOP AT itab_zycit240 WHERE
codcomp EQ itab_zycit245-codcomp.
itab_zycit245-qtd_perda_e = itab_zycit245-qtd_perda_e +
itab_zycit240-qtd_perda_e.
itab_zycit245-vl_scamb = itab_zycit245-vl_scamb +
...
...
itab_zycit245-qtd_perda_e.
itab_zycit245-perda_e = ( itab_zycit245-qtd_perda_e * 100 )
/ itab_zycit245-qtd_tot.
itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.
itab_zycit245-um_ncm = itab_zycit245-meins .
PERFORM converte_um_ncm USING itab_zycit245-codcomp
CHANGING itab_zycit245-um_ncm
itab_zycit245-werks
itab_zycit245-qtd_ncm.
CLEAR: itab_zycit245-qtd_perda_e.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF itab_zycit245-gewei NE 'KG'.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv10
no_type_check = 'X'
round_sign = 'X'
unit_in = itab_zycit245-gewei
unit_out = 'KG'
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv20
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc = 0.
itab_zycit245-ntgew =
( itab_zycit245-ntgew / v_um_ren ) * v_um_rez.
itab_zycit245-brgew =
( itab_zycit245-brgew / v_um_ren ) * v_um_rez.
itab_zycit245-gewei = 'KG'.
ENDIF.
ENDIF.
itab_zycit245-ntgewt = itab_zycit245-ntgew *
itab_zycit245-qtd_tot.
itab_zycit245-brgew = itab_zycit245-brgew *
itab_zycit245-qtd_tot.
CLEAR itab_zycit245-pctseg.
* << Fim da inclusão
IF /pws/zycit321-c_comum EQ 'X'.
READ TABLE itab_zycit245_aux
WITH KEY j_1bnbm = itab_zycit245-j_1bnbm.
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 .
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp,
itab_zycit245-perda, itab_zycit245-perda_e.
...
...
v_nritem = itab_zycit245-nritem.
EXIT.
ENDLOOP.
ENDIF.
CLEAR: itab_zycit245.
MOVE-CORRESPONDING itab_zycit240 TO itab_zycit245.
itab_zycit245-nrseqd = /pws/zycie244-nrseqd.
itab_zycit245-sdocomp_i = itab_zycit240-qtd_tot.
itab_zycit245-qtd_tot = itab_zycit245-qtd_tot +
itab_zycit245-qtd_perda_e.
* >> Início da inclusão: MODULE TRATA_FORECAST
itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.
itab_zycit245-um_ncm = itab_zycit245-meins .
PERFORM converte_um_ncm USING itab_zycit245-codcomp
CHANGING itab_zycit245-um_ncm
itab_zycit245-werks
itab_zycit245-qtd_ncm.
IF itab_zycit245-gewei NE 'KG'.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv10
no_type_check = 'X'
round_sign = 'X'
unit_in = itab_zycit245-gewei
unit_out = 'KG'
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv20
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc = 0.
itab_zycit245-ntgew =
( itab_zycit245-ntgew / v_um_ren ) * v_um_rez.
itab_zycit245-brgew =
( itab_zycit245-brgew / v_um_ren ) * v_um_rez.
itab_zycit245-gewei = 'KG'.
ENDIF.
ENDIF.
itab_zycit245-ntgewt = itab_zycit245-ntgew *
itab_zycit245-qtd_tot.
itab_zycit245-brgew = itab_zycit245-brgew *
itab_zycit245-qtd_tot.
CLEAR itab_zycit245-pctseg.
IF /pws/zycit321-c_comum EQ 'X'.
itab_zycit245-qtd_tot = itab_zycit245-qtd_ncm .
itab_zycit245-meins = itab_zycit245-um_ncm .
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-codcomp,
itab_zycit245-perda, itab_zycit245-perda_e.
ENDIF.
* << Fim da inclusão
IF v_nritem IS INITIAL.
PERFORM select_max_item_number2 CHANGING v_nritem.
itab_zycit245-nritem = v_nritem.
APPEND itab_zycit245.
ELSE.
itab_zycit245-nritem = v_nritem.
* >> Início da exclusão: MODULE TRATA_FORECAST
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-brgew,
itab_zycit245-netpr, itab_zycit245-pctseg,
itab_zycit245-vl_seg, itab_zycit245-vl_frete.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
CLEAR: itab_zycit245-qtd_iten, itab_zycit245-netpr,
itab_zycit245-pctseg, itab_zycit245-vl_seg,
itab_zycit245-vl_frete.
* << Fim da inclusão
COLLECT itab_zycit245.
ENDIF.
itab_zycit245_aux[] = itab_zycit245[].
ENDLOOP.
LOOP AT itab_zycit245.
* >> Início da exclusão: MODULE TRATA_FORECAST
itab_zycit245-qtd_ncm = itab_zycit245-qtd_tot.
itab_zycit245-um_ncm = itab_zycit245-meins .
itab_zycit245-perda_e = ( itab_zycit245-qtd_perda_e * 100 )
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
IF NOT itab_zycit245-ntgewt IS INITIAL.
itab_zycit245-ntgew = itab_zycit245-ntgewt
/ itab_zycit245-qtd_tot.
itab_zycit245-brgew = itab_zycit245-brgew
* << Fim da inclusão
/ itab_zycit245-qtd_tot.
* >> Início da exclusão: MODULE TRATA_FORECAST
CLEAR: itab_zycit245-qtd_perda_e.
PERFORM converte_um_ncm USING itab_zycit245-codcomp
CHANGING itab_zycit245-um_ncm
itab_zycit245-werks
itab_zycit245-qtd_ncm.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_FORECAST
itab_zycit245-pctseg = ( itab_zycit245-vl_seg_t /
( itab_zycit245-netpr_t + itab_zycit245-vl_frete_t )
) * 100.
ENDIF.
* << Fim da inclusão
MODIFY itab_zycit245.
* >> Início da inclusão: MODULE TRATA_FORECAST
ENDLOOP.
LOOP AT itab_zycit245t.
IF NOT itab_zycit245t-ntgewt IS INITIAL.
itab_zycit245t-ntgew = itab_zycit245t-ntgewt
/ itab_zycit245t-qtd_tot.
itab_zycit245t-brgew = itab_zycit245t-brgew
/ itab_zycit245t-qtd_tot.
itab_zycit245t-pctseg = ( itab_zycit245t-vl_seg_t /
( itab_zycit245t-netpr_t + itab_zycit245t-vl_frete_t )
) * 100.
ENDIF.
MODIFY itab_zycit245t.
* << Fim da inclusão
ENDLOOP.
pressed_tab_2a = 'FS_CABEC2'.
/pws/zycie245-nrseqd = /pws/zycie244-nrseqd.
IF /pws/zycie244-tipo EQ 'G'.
PERFORM acumula_item_lista_tecnica_tg2.
ENDIF.
ENDIF.
CLEAR itab_zycit247. REFRESH itab_zycit247.
SELECT * FROM /pws/zycit239 INTO TABLE itab_zycit239
WHERE nrseqd EQ /pws/zycie244-nrforecast.
...
...
ENDIF.
PERFORM replace_screen_0201.
IF v_tcode2 EQ '/PWS/ZYCI040_A'.
ENDIF.
v_verificp2 = 'S'.
ELSE.
MESSAGE e015 WITH text-051.
ENDIF.
IF /pws/zycit321-c_comum EQ 'X'.
LOOP AT itab_zycit245.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF NOT itab_zycit245-qtd_tot IS INITIAL.
* << Fim da inclusão
itab_zycit245-netpr = itab_zycit245-netpr_t /
itab_zycit245-qtd_tot.
* >> Início da exclusão: MODULE TRATA_FORECAST
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.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: MODULE TRATA_FORECAST
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.
* << Fim da exclusão
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.
* >> Início da inclusão: MODULE TRATA_FORECAST
IF itab_zycit239-gewei NE 'KG'.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE_OLD'
EXPORTING
input = v_conv10
no_type_check = 'X'
round_sign = 'X'
unit_in = itab_zycit239-gewei
unit_out = 'KG'
IMPORTING
denominator = v_um_ren
numerator = v_um_rez
output = v_conv20
EXCEPTIONS
conversion_not_found = 1
division_by_zero = 2
input_invalid = 3
output_invalid = 4
overflow = 5
type_invalid = 6
units_missing = 7
unit_in_not_found = 8
unit_out_not_found = 9
OTHERS = 10.
IF sy-subrc = 0.
itab_zycit239-ntgew =
( itab_zycit239-ntgew / v_um_ren ) * v_um_rez.
itab_zycit239-brgew =
( itab_zycit239-brgew / v_um_ren ) * v_um_rez.
itab_zycit239-gewei = 'KG'.
ENDIF.
ENDIF.
* << Fim da inclusão
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.
...