Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 24/03/2009 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:04:08
Descrição da Nota: AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA FATURA
Sintoma
O valor da mercadoria calculado na DI está diferente do valor da mercadoria.
Solução
Ajustada DI para utilizar a quantidade com 3 casas decimais no calculo do valor dos itens.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08231 Data: 24/03/2009 Hora: 11:00:44
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08231
Categoria : Erro de Programa
Prioridade : Baixa
Versão PW.CE : 7.0
Pacote : 00009
Agrupamento : 00091
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04750 - 00001 - 7.0 - 00002 - ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA
05477 - 00002 - 7.0 - 00003 - AJUSTADO RATEIO DO SEGURO PARA PROCESSOS CIF A GRANEL
06176 - 00003 - 7.0 - 00004 - AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E
06643 - 00004 - 7.0 - 00005 - NÃO SOMA O FRETE RODOVIÁRIO NO TOTAL DA FATURA DA ADIÇÃO DA DI
07673 - 00005 - 7.0 - 00007 - NECESSÁRIA EXIT PARA TEXTO COMPLEMENTARES DA DI
07873 - 00006 - 7.0 - 00008 - AJUSTE DE PREFORMANCE. DUMP DETALHE DO ITEM, DI COM MAIS DE 999 I
----------------------------------------------------------------------------------------------------
AJUSTE NO CALCULO DO VALOR DA MERCADORIA PARA CONFORME FEITO NA FATURA
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALOR - MERCADORIA - QUANTIDADE - CASAS - DECIMAIS
/PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F02
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F05
REPS /PWS/MZYCI023X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
FORM load_ifre USING p_tipo.
* >> Início da inclusão: FORM LOAD_IFRE
DATA: v_qtd_c3 TYPE /pws/zycit263-qtd_iten,
v_qtd_dc3 TYPE /pws/zycit263-qtd_iten.
* << Fim da inclusão
...
...
SELECT SINGLE qtd_iten ntgewd FROM /pws/zycit003 INTO
(/pws/zycie003-qtd_iten, /pws/zycie003-ntgewd)
WHERE nrseq EQ /pws/zycie003-nrseq
AND ebeln EQ /pws/zycie003-ebeln
AND ebelp EQ /pws/zycie003-ebelp.
ELSE.
/pws/zycie003-qtd_iten = wa_zycit003-qtd_iten.
/pws/zycie003-ntgewd = wa_zycit003-ntgewd .
ENDIF.
v_vlreal = /pws/zycie003-vlreal.
* >> Início da inclusão: FORM LOAD_IFRE
v_qtd_c3 = /pws/zycie003-qtd_iten * 10000.
v_qtd_dc3 = /pws/zycie003-qtd_itend * 10000.
v_qtd_c3 = trunc( v_qtd_c3 ) / 10000.
v_qtd_dc3 = trunc( v_qtd_dc3 ) / 10000.
* << Fim da inclusão
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * /pws/zycie003-qtd_itend.
t_vmle2 = /pws/zycie003-vlreal * /pws/zycie003-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal *
v_qtd_dc3.
t_vmle2 = /pws/zycie003-vlreal * v_qtd_dc3.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * /pws/zycie003-qtd_iten.
t_vmle2 = /pws/zycie003-vlreal * /pws/zycie003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
t_vmle3 = t_vmle_d2 = t_vmle = v_vlreal * v_qtd_c3.
t_vmle2 = /pws/zycie003-vlreal * v_qtd_c3.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_IFRE
v_it_plan = /pws/zycie003-netpr * /pws/zycie003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
v_it_plan = /pws/zycie003-netpr * v_qtd_c3.
* << Fim da inclusão
v_frete_nm = v_bltofat.
IF NOT v_ntgewd IS INITIAL.
t_ivfre = ( /pws/zycie003-ntgewd / v_ntgewd ) * s_frvr.
v_tot_fre = ( /pws/zycie003-ntgewd / v_ntgewd ) * v_frete_nm.
ELSE.
IF NOT v_ntgew IS INITIAL.
t_ivfre = ( /pws/zycie003-ntgew / v_ntgew ) * s_frvr.
v_tot_fre = ( /pws/zycie003-ntgew / v_ntgew ) * v_frete_nm.
ENDIF.
ENDIF.
...
...
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
t_ivdes2 =
* >> Início da exclusão: FORM LOAD_ITAX
( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
( ( itab_zycit003-netpr * itab_zycit003-qtd_itenc3 ) /
* << Fim da inclusão
v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ELSE.
IF NOT v_tot_real IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
ENDIF.
IF NOT v_tot_real IS INITIAL.
t_ivdes2 = ( itab_zycit003-vlreal *
* >> Início da exclusão: FORM LOAD_ITAX
itab_zycit003-qtd_iten
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
itab_zycit003-qtd_itenc3
* << Fim da inclusão
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
ENDIF.
IF t_ivdes2 > 0.
...
...
/pws/zycit000-rat_seg_fob IS INITIAL.
v_cfr = ( v_cfr * /pws/zycie100a-dttaxbem ) /
/pws/zycie085-ukursfob.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
IF NOT itab_it-qtd_itend IS INITIAL.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM LOAD_ITAX
v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_itend ) +
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_itendc3 ) +
* << Fim da inclusão
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .
ENDIF.
IF NOT v_tcif_fat IS INITIAL.
t_ivseg = itab_it-vlseg =
( v_cif_fat / v_tcif_fat ) * s_stvr.
v_tot_seg = ( v_cif_fat / v_tcif_fat ) * v_sgtofat.
ENDIF.
ELSE.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM LOAD_ITAX
v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_iten ) +
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
v_cif_fat = ( itab_zycit003-vlreal * itab_it-qtd_itenc3 ) +
* << Fim da inclusão
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat .
ENDIF.
IF NOT v_tcfr IS INITIAL AND NOT v_tcif_fat IS INITIAL.
t_ivseg = itab_it-vlseg =
( v_cif_fat / ( v_tcif_fat ) ) * s_stvr.
v_tot_seg = ( v_cif_fat / ( v_tcif_fat ) ) * v_sgtofat.
ENDIF.
ENDIF.
ELSE.
IF NOT v_tcfr IS INITIAL.
...
...
v_casasd3 = t_ivdesp.
v_ivadud = t_ivmle2 + v_casasd3 + v_casasd .
WHEN 'CIF'.
CLEAR v_difgran .
IF NOT itab_it-qtd_itend IS INITIAL.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
t_vmle =
* >> Início da exclusão: FORM LOAD_ITAX
itab_it-vlreal * itab_it-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
itab_it-vlreal * itab_it-qtd_itendc3.
* << Fim da inclusão
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg .
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle = ( itab_it-vlreal * itab_it-qtd_itend ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_ivmle = ( itab_it-vlreal * itab_it-qtd_itendc3 ) *
* << Fim da inclusão
/pws/zycie085-ukursfob .
t_ivmle_d2 = t_ivmle .
ENDIF.
ELSE.
t_vmle =
* >> Início da exclusão: FORM LOAD_ITAX
( ( ( itab_it-vlreal * itab_it-qtd_iten ) +
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
( ( ( itab_it-vlreal * itab_it-qtd_itenc3 ) +
* << Fim da inclusão
itab_it-vlfre_fat + itab_it-vlseg_fat ) -
( v_tot_fre + v_tot_seg + v_diftern ) ) .
itab_it-vlfob = t_vmle.
/pws/zycie100a-vlfob = t_vmle.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg .
v_diftern = v_diftern * /pws/zycie085-ukursfob .
t_ivmle_d2 = t_ivmle =
( ( ( ( itab_it-vlreal *
* >> Início da exclusão: FORM LOAD_ITAX
/pws/zycie085-ukursfob ) * itab_it-qtd_iten ) +
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
/pws/zycie085-ukursfob ) * itab_it-qtd_itenc3 ) +
* << Fim da inclusão
( itab_it-vlfre_fat * /pws/zycie085-ukursfob ) +
( itab_it-vlseg_fat * /pws/zycie085-ukursfob ) ) -
( itab_it-vlfre + itab_it-vlseg + v_diftern ) ).
t_ivmle_d2 = t_ivmle =
t_ivmle + v_desp_fren + t_ivfre + t_ivseg .
ENDIF.
t_vmle2 = t_vmle.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.
v_casasd3 = t_ivdesp.
...
...
PERFORM soma_despesa_acr.
LOOP AT itab_it.
v_idx = sy-tabix.
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/zycie085-ukursfre IS INITIAL.
IF s_inco1_ci = 'C&F'.
IF NOT v_tval3 IS INITIAL.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )
* << Fim da inclusão
/ v_tval3 ) * v_tval.
ENDIF.
ELSE.
IF NOT v_tval3 IS INITIAL AND
NOT /pws/zycie085-ukursseg IS INITIAL.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )
* << Fim da inclusão
/ v_tval3 ) * v_tval -
( itab_it-vlseg / /pws/zycie085-ukursseg ).
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF NOT v_tval3 IS INITIAL.
* >> Início da exclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
itab_it-vlfob = ( ( itab_it-qtd_itenc3 * itab_it-vlreal )
* << Fim da inclusão
/ v_tval3 ) * v_tval.
ENDIF.
ENDIF.
v_aux_rateio = v_aux_rateio + itab_it-vlfob.
ENDIF.
IF itab_it-codregtripiscofi IS INITIAL.
itab_it-codregtripiscofi = '1'.
ENDIF.
IF itab_it-codregtri IS INITIAL.
MOVE 1 TO itab_it-codregtri.
...
...
itab_zycit118b, itab_zycit121b, itab_zycit121c,
itab_zycit124b, itab_zycit049b, itab_zycit049c,
itab_zycit195, itab_zycit200b, itab_mercosul,
rtextx.
LOOP AT itab_it.
IF itab_it-adicao = wa_it-adicao.
IF NOT itab_it-qtd_iten IS INITIAL.
CASE s_inco1_ci.
WHEN 'C&F'.
itab_it-vlreal_aux2 =
* >> Início da exclusão: FORM ADIC_LOAD
( ( ( itab_it-vlreal * itab_it-qtd_iten ) + itab_it-vldiffob +
itab_it-vlfre_me ) / itab_it-qtd_iten ) -
( itab_it-frn / itab_it-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
( ( ( itab_it-vlreal * itab_it-qtd_itenc3 ) +
itab_it-vldiffob + itab_it-vlfre_me ) / itab_it-qtd_itenc3 ) -
( itab_it-frn / itab_it-qtd_itenc3 ) .
* << Fim da inclusão
WHEN 'CIF'.
itab_it-vlreal_aux2 =
* >> Início da exclusão: FORM ADIC_LOAD
( ( ( itab_it-vlreal * itab_it-qtd_iten ) + itab_it-vldiffob +
itab_it-vlfre_me + itab_it-vlseg_me )
/ itab_it-qtd_iten ) -
( itab_it-frn / itab_it-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
( ( ( itab_it-vlreal * itab_it-qtd_itenc3 ) +
itab_it-vldiffob + itab_it-vlfre_me + itab_it-vlseg_me )
/ itab_it-qtd_itenc3 ) -
( itab_it-frn / itab_it-qtd_itenc3 ) .
* << Fim da inclusão
WHEN 'FOB'.
itab_it-vlreal_aux2 = itab_it-vlreal -
* >> Início da exclusão: FORM ADIC_LOAD
( itab_it-frn / itab_it-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
( itab_it-frn / itab_it-qtd_itenc3 ) .
* << Fim da inclusão
ENDCASE.
ENDIF.
APPEND itab_it TO itab_itb.
IF itab_it-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM ADIC_LOAD
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itenc3.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM ADIC_LOAD
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_itad_plan = v_itad_plan + itab_it-netpr * itab_it-qtd_itendc3.
* << Fim da inclusão
ENDIF.
IF itab_it-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM ADIC_LOAD
v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itenc3.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM ADIC_LOAD
v_itad_real = v_itad_real + itab_it-vlreal * itab_it-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_itad_real = v_itad_real + itab_it-vlreal *
itab_it-qtd_itendc3.
* << Fim da inclusão
ENDIF.
ENDIF.
IF itab_it-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM ADIC_LOAD
v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_iten.
v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itenc3.
v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itenc3.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM ADIC_LOAD
v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itend.
v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
v_ttad_plan = v_ttad_plan + itab_it-netpr * itab_it-qtd_itendc3.
v_ttad_real = v_ttad_real + itab_it-vlreal * itab_it-qtd_itendc3.
* << Fim da inclusão
ENDIF.
ENDLOOP.
LOOP AT itab_itb.
* >> Início da exclusão: FORM ADIC_LOAD
a_vlrtot = a_vlrtot + ( ( itab_itb-qtd_iten * itab_itb-vlreal_aux2 )
+ itab_itb-frn ).
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LOAD
a_vlrtot = a_vlrtot + ( ( itab_itb-qtd_itenc3 *
itab_itb-vlreal_aux2 ) + itab_itb-frn ).
* << Fim da inclusão
a_vladu = a_vladu + itab_itb-vlmerc_ad.
a_vmler = a_vladu * itab_itb-dttaxbem.
a_qtdeest = a_qtdeest + itab_itb-qtdeumest.
a_uqtde = a_uqtde + itab_itb-unit_qtde.
a_adbase = a_adbase + itab_itb-baseantid.
LOOP AT itab_zycit115 WHERE nrseq = itab_itb-nrseq AND
ebeln = itab_itb-ebeln AND
ebelp = itab_itb-ebelp.
APPEND itab_zycit115 TO itab_zycit115b.
ENDLOOP.
...
...
itab_it-codregtripiscofi = '3'.
ELSEIF itab_zycit003-modalidade EQ 'S'.
itab_it-codregtripiscofi = '5'.
ENDIF.
IF itab_it-codregtripiscofi IS INITIAL.
itab_it-codregtripiscofi = '1'.
ENDIF.
IF v_dit = 'N'.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_it-qtd_iten = itab_zycit003-qtd_itend.
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-qtd_itenc3 = itab_zycit003-qtd_itendc3.
* << Fim da inclusão
ENDIF.
IF sy-tcode = '/PWS/ZYCI023_C'.
IF itab_it-advalii IS INITIAL.
itab_it-advalii = itab_zycit003-aliqii.
ENDIF.
IF itab_it-advalipi IS INITIAL.
itab_it-advalipi = itab_zycit003-aliqipi.
ENDIF.
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_zycit003-aliqicms.
...
...
itab_it-codmat = '01'.
ENDIF.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
itab_it-inco1 = itab_zycit001-inco1.
itab_it-agente = itab_zycit001-agente.
ENDIF.
IF NOT itab_it-qtd_itencacl IS INITIAL.
IF itab_it-qtd_itencacl > itab_it-qtd_iten.
itab_it-qtd_iten = itab_it-qtd_itencacl - itab_it-qtd_iten.
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-qtd_itenc3 = itab_it-qtd_itencacl - itab_it-qtd_itenc3.
* << Fim da inclusão
itab_it-qtd_itencacl = 0.
itab_it-cacl = 'X'.
ENDIF.
ENDIF.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit006 WITH KEY
...
...
ELSE.
APPEND itab_it.
ENDIF.
IF NOT itab_it-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_it-ntgewd.
ELSE.
v_tntgew = v_tntgew + itab_it-ntgew.
ENDIF.
v_tsegfat = v_tsegfat + itab_it-vlseg_fat.
IF itab_it-qtd_itencacl IS INITIAL.
* >> Início da exclusão: FORM FILL_ITABIT
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
v_tmle = v_tmle + ( ( itab_it-qtd_iten * itab_it-vlreal )
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).
v_tmle = v_tmle + ( ( itab_it-qtd_itenc3 * itab_it-vlreal )
* << Fim da inclusão
* itab_it-dttaxbem ).
ELSE.
v_tval = v_tval + ( itab_it-qtd_itencacl * itab_it-vlreal ).
v_tmle = v_tmle + ( ( itab_it-qtd_itencacl * itab_it-vlreal )
* itab_it-dttaxbem ).
ENDIF.
MOVE-CORRESPONDING itab_zycit003 TO itab_itens_funcao.
APPEND itab_itens_funcao.
ENDLOOP.
v_tmle_d2 = v_tmle.
...
...
READ TABLE itab_inco WITH KEY ebeln = itab_it-ebeln.
IF sy-subrc EQ 0.
itab_it-inco_item = itab_inco-inco1.
ENDIF.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF NOT itab_it-vlfre_fat IS INITIAL AND
NOT itab_zycit003-qtd_iten IS INITIAL.
itab_it-vlreal = itab_it-vlreal +
* >> Início da exclusão: FORM FILL_ITABIT
( itab_it-vlfre_fat / itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
( itab_it-vlfre_fat / itab_zycit003-qtd_itenc3 ).
* << Fim da inclusão
CLEAR itab_it-vlfre_fat.
ENDIF.
IF NOT itab_it-vlseg_fat IS INITIAL AND
NOT itab_zycit003-qtd_iten IS INITIAL.
itab_it-vlreal = itab_it-vlreal +
* >> Início da exclusão: FORM FILL_ITABIT
( itab_it-vlseg_fat / itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
( itab_it-vlseg_fat / itab_zycit003-qtd_itenc3 ).
* << Fim da inclusão
CLEAR itab_it-vlseg_fat.
ENDIF.
ENDIF.
itab_it-vlreal_dest = itab_it-vlreal.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = itab_it-matnr_item
IMPORTING
output = itab_it-matnr_item.
IF sy-subrc <> 0.
...
...
FORM update_item.
CLEAR: itab_zycit003.
REFRESH: itab_zycit003.
IF NOT itab_it[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_it
WHERE nrseq = itab_it-nrseq AND
ebeln = itab_it-ebeln AND
ebelp = itab_it-ebelp.
ENDIF.
* >> Início da inclusão: FORM UPDATE_ITEM
PERFORM decimais_qtd.
* << Fim da inclusão
LOOP AT itab_it.
v_idx = sy-tabix.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
itab_it-j_1bnbm = itab_zycit003-j_1bnbm.
itab_it-mfrpn = itab_zycit003-mfrpn.
itab_it-naladi = itab_zycit003-naladi.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F02
...
ELSE.
SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094
WHERE nrseqce = /pws/zycie085-nrbl.
ENDIF.
IF NOT itab_zycit094[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_zycit094
WHERE nrseq = itab_zycit094-nrseq
AND servico NE 'X'.
ENDIF.
* >> Início da inclusão: FORM LOAD_BLITENS
PERFORM decimais_qtd.
* << Fim da inclusão
e_subrc = '0'.
v_perform = 'FI' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI023'
'DI008'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DI008' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
ebelp = itab_it-ebelp.
IF /pws/zycie085-waersfob NE itab_it-waers.
PERFORM: calc_conv_moeda USING itab_it-waers
/pws/zycie085-waersfob
CHANGING itab_it-vlfre_fat.
v_tfrefat = v_tfrefat + itab_it-vlfre_fat.
ELSE.
v_tfrefat = v_tfrefat + itab_it-vlfre_fat.
ENDIF.
v_calc_seg = v_calc_seg + ( itab_it-vlreal_dest *
* >> Início da exclusão: FORM CALC_INIT
itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
itab_zycit003-qtd_itenc3 ).
* << Fim da inclusão
ENDLOOP.
IF v_dit = 'N'.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
v_sgtofat = /pws/zycie085-vlseg.
IF NOT v_sgtofat IS INITIAL .
PERFORM retorna_decimais USING /pws/zycie085-waersseg
CHANGING v_sgtofat .
ENDIF.
CASE s_inco1_ci.
...
...
v_ntgewd = v_ntgewd + itab_zycit003-ntgewd.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
v_tot_real = v_tot_real +
* >> Início da exclusão: FORM CALC_INIT
( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( itab_zycit003-vlreal * itab_zycit003-qtd_itenc3 ).
* << Fim da inclusão
v_tot_plan = v_tot_plan +
* >> Início da exclusão: FORM CALC_INIT
( itab_zycit003-qtd_iten * itab_zycit003-netpr ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( itab_zycit003-qtd_itenc3 * itab_zycit003-netpr ).
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_it.
READ TABLE itab_zycit003 WITH KEY
...
...
( itab_zycit003-ntgew / v_ntgew ) ).
ENDIF.
ENDIF.
IF NOT itab_zycit003-qtd_iten IS INITIAL.
IF /pws/zycie093-waersfre NE itab_zycit003-waers .
v_diffrete_aux = v_diffrete .
PERFORM calc_conv_moeda USING /pws/zycie093-waersfre
itab_zycit003-waers
CHANGING v_diffrete_aux.
itab_it-vlreald =
* >> Início da exclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_it-vlreal_dest ) -
v_diffrete_aux ) / itab_zycit003-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_itenc3 * itab_it-vlreal_dest ) -
v_diffrete_aux ) / itab_zycit003-qtd_itenc3 ) .
* << Fim da inclusão
ELSE.
itab_it-vlreald =
* >> Início da exclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_iten * itab_it-vlreal_dest ) -
v_diffrete ) / itab_zycit003-qtd_iten ) .
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( ( ( itab_zycit003-qtd_itenc3 * itab_it-vlreal_dest ) -
v_diffrete ) / itab_zycit003-qtd_itenc3 ) .
* << Fim da inclusão
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
IF NOT v_calc_seg IS INITIAL AND
NOT itab_zycit003-qtd_iten IS INITIAL.
itab_it-vlreald =
* >> Início da exclusão: FORM CALC_INIT
( ( itab_zycit003-qtd_iten * itab_it-vlreald ) -
( ( itab_it-vlreal_dest * itab_zycit003-qtd_iten ) * ( v_sgtofat
/ v_calc_seg ) ) )
/ itab_zycit003-qtd_iten .
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
( ( itab_zycit003-qtd_itenc3 * itab_it-vlreald ) -
( ( itab_it-vlreal_dest * itab_zycit003-qtd_itenc3 )
* ( v_sgtofat / v_calc_seg ) ) ) / itab_zycit003-qtd_itenc3.
* << Fim da inclusão
ENDIF.
ENDIF.
MODIFY itab_it.
ENDIF.
ENDLOOP.
LOOP AT itab_it.
IF p_tipo = 'I'.
itab_it-seq = sy-tabix.
ENDIF.
READ TABLE itab_zycit003 WITH KEY
...
...
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF NOT itab_it-vlreald IS INITIAL.
itab_it-vlreal = itab_it-vlreald.
ENDIF.
IF NOT itab_zycit003-ntgewd IS INITIAL.
itab_it-ntgew = itab_zycit003-ntgewd.
ENDIF.
CLEAR: v_tvaln, v_qtd_iten.
IF itab_it-qtd_itend NE ''.
* >> Início da exclusão: FORM CALC_INIT
v_qtd_iten = itab_it-qtd_itend.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_qtd_iten = itab_it-qtd_itendc3.
* << Fim da inclusão
v_tntgew = v_tntgew + itab_it-ntgewd.
ELSE.
* >> Início da exclusão: FORM CALC_INIT
v_qtd_iten = itab_it-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_qtd_iten = itab_it-qtd_itenc3.
* << Fim da inclusão
v_tntgew = v_tntgew + itab_it-ntgew.
ENDIF.
...
...
CHANGING itab_it-vlseg_fat.
v_tsegfat = v_tsegfat + itab_it-vlseg_fat.
ELSE.
v_tsegfat = v_tsegfat + itab_it-vlseg_fat.
ENDIF.
v_rsegfat = v_rsegfat + ( itab_it-vlseg_fat * itab_it-dttaxbem ).
MODIFY itab_it TRANSPORTING seq vlreal ntgew.
IF /pws/zycie085-mdadicao = 'N'.
IF itab_it-waersbem EQ /pws/zycie085-waersfob.
IF NOT itab_it-vlreald IS INITIAL.
* >> Início da exclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itend * itab_it-vlreal ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itendc3 * itab_it-vlreal ).
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).
* << Fim da inclusão
ENDIF.
ELSE.
PERFORM taxa_converte USING itab_it-waersbem
...
...
/pws/zycie085-dttax
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
v_tvaln = v_tvaln / v_taxa.
ENDIF.
v_tval = v_tval + v_tvaln.
/pws/zycie085-ukursfob = v_taxa.
ENDIF.
ELSE.
IF NOT itab_it-vlreald IS INITIAL.
* >> Início da exclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itend * itab_it-vlreal ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itendc3 * itab_it-vlreal ).
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
v_tval = v_tval + ( itab_it-qtd_itenc3 * itab_it-vlreal ).
* << Fim da inclusão
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
IF NOT itab_it-qtd_itend IS INITIAL.
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
* >> Início da exclusão: FORM CALC_INIT
itab_it-qtd_itend )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
itab_it-qtd_itendc3 )
* << Fim da inclusão
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).
ELSE.
v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *
* >> Início da exclusão: FORM CALC_INIT
itab_it-qtd_iten )
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
itab_it-qtd_itenc3 )
* << Fim da inclusão
+ itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).
...
...
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-netpr.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
t_ivdes2 = ( ( itab_zycit003-netpr * itab_zycit003-qtd_iten ) /
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
t_ivdes2 = ( ( itab_zycit003-netpr * itab_zycit003-qtd_itenc3 )
/
* << Fim da inclusão
v_tot_plan ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ELSE.
IF /pws/zycit062-bs_rat_icms EQ 'CIF'.
IF NOT /pws/zycie085-vlfob IS INITIAL.
t_ivdes2 = ( itab_zycit049-vlreal *
( itab_it-vlfob + v_tot_fre + v_tot_seg ) )
/ ( /pws/zycie085-vlfob + v_bltofat + v_sgtofat ) .
ENDIF.
...
...
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085-waersfob NE itab_zycit003-waers.
PERFORM: calc_conv_moeda USING itab_zycit003-waers
/pws/zycie085-waersfob
CHANGING itab_zycit003-vlreal.
ENDIF.
t_ivdes2 = ( itab_zycit003-vlreal *
* >> Início da exclusão: FORM LOAD_IICMS
itab_zycit003-qtd_iten
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_zycit003-qtd_itenc3
* << Fim da inclusão
/ v_tot_real ) * itab_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF p_tipo = 'I'.
itab_zycit049-vldp_aux = itab_zycit049-vldp_aux + t_ivdes2.
MODIFY itab_zycit049 TRANSPORTING vldp_aux.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F05
...
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc <> 0.
EXIT .
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
* >> Início da inclusão:
FORM decimais_qtd.
LOOP AT itab_zycit003.
itab_zycit003-qtd_itendc3 = itab_zycit003-qtd_itend
* 10000.
itab_zycit003-qtd_itenc3 = itab_zycit003-qtd_iten
* 10000.
itab_zycit003-qtd_itendc3 =
trunc( itab_zycit003-qtd_itendc3 ) / 10000.
itab_zycit003-qtd_itenc3 =
trunc( itab_zycit003-qtd_itenc3 ) / 10000.
MODIFY itab_zycit003.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
ad_recolher LIKE /pws/zycie085-vlfob,
vlfobr LIKE /pws/zycie100a-vlfre,
codcambial LIKE /pws/zycie006-codcambial,
inco_item LIKE /pws/zycit001-inco1,
paisfab LIKE /pws/zycit003-paisfab,
vlreal_dest LIKE /pws/zycie003-vlreal,
ntgewd LIKE /pws/zycie003-ntgewd,
mark,
matnr LIKE /pws/zycie003-matnr,
matnr_item LIKE /pws/zycie003-matnr,
* >> Início da inclusão:
qtd_itenc3 TYPE /pws/zycit263-qtd_iten,
qtd_itendc3 TYPE /pws/zycit263-qtd_iten,
* << Fim da inclusão
END OF itab_it.
...
...
DATA: BEGIN OF itab_zycit003 OCCURS 0.
INCLUDE STRUCTURE /pws/zycie003.
DATA: slqtde LIKE /pws/zycie013-slqtde,
uebto LIKE ekpo-uebto,
uebtk LIKE ekpo-uebtk,
noinitial,
* >> Início da inclusão:
qtd_itenc3 TYPE /pws/zycit263-qtd_iten,
qtd_itendc3 TYPE /pws/zycit263-qtd_iten,
* << Fim da inclusão
mark.
DATA: END OF itab_zycit003.
...