Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 14/03/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:52:43
Descrição da Nota: AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF
Sintoma
ajustes para tratamentos de IPI isenção, courier e granel na di e nf
Solução
tratamento para rateio de despesas quando houver granel, dsi courier e tratamento para IPI isenção.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06176 Data: 14/03/2008 Hora: 16:44:29
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06176
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00038
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04895 - 00001 - 7.0 - 00003 - NÃO GERA VARIAÇÃO P/MATERIAIS DE CENTROS DE LUCROS DIFERENTES
05481 - 00002 - 7.0 - 00003 - AJUST. DO RATEIO DAS DESPESAS NA NF E A GRAVAÇÃO DO FRETE NA DSI
05719 - 00003 - 7.0 - 00004 - OPERAÇÃO FUNDAP (PARTE II)
----------------------------------------------------------------------------------------------------
AJUSTES PARA TRATAMENTOS DE IPI ISENÇÃO, COURIER E GRANEL NA DI E NF
----------------------------------------------------------------------------------------------------
Palavras Chave:
IPI ISENÇÃO - COURIER - NF
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
MERG F6DK959024 20080314 163318 PWSCI
MERG F6DK959118 20080314 163306 PWSCI
MERG F6DK959206 20080314 163250 PWSCI
MERG F6DK959212 20080314 163243 PWSCI
MERG F6DK959220 20080314 163234 PWSCI
REPS /PWS/LZYCIGF2F01
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
ENDIF.
LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND
origem = v_ori.
v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tpeso = v_tpeso + itab_zycit003-ntgewd.
ELSE.
* << Fim da inclusão
v_tpeso = v_tpeso + itab_zycit003-ntgew.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
v_valor = itab_zycit003-qtd_iten * itab_zycit003-vlreal.
IF NOT v_valor IS INITIAL AND NOT v_tvalor IS INITIAL.
v_tseg = v_valor / v_tvalor.
ENDIF.
v_seg = v_seg + v_valor.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
IF NOT v_tpeso IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_vlfrete = v_tfrete * ( itab_zycit003-ntgewd / v_tpeso ).
ELSE.
* << Fim da inclusão
v_vlfrete = v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
IF /pws/zycit085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
/pws/zycit085-dttax
t001-land1
CHANGING v_taxa.
...
...
itab_zycit036_aux-vlreal = itab_zycit443-vl_sisco.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSE.
IF itab_zycit039-divabs EQ 'X'.
itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSEIF itab_zycit039-peso EQ 'X'.
IF NOT v_tpeso IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgewd / v_tpeso.
ELSE.
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgew / v_tpeso.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSEIF itab_zycit039-proporplan EQ 'X'.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
...
...
itab_zycit036_aux-vlreal = itab_zycit100a-vl_sisco.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSE.
IF itab_zycit039-divabs EQ 'X'.
itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSEIF itab_zycit039-peso EQ 'X'.
IF NOT v_tpeso IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgewd / v_tpeso.
ELSE .
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgew / v_tpeso.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSEIF itab_zycit039-proporplan EQ 'X'.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
...
...
itab_zycit036-vlreal = v_total.
ENDIF.
IF NOT itab_zycit036-vlreal IS INITIAL.
IF v_waers IS INITIAL.
itab_zycit036-waers_real = /pws/zycbt007-waersb.
ELSE.
itab_zycit036-waers_real = v_waers.
ENDIF.
ENDIF.
ELSE.
MOVE: 'FRETEI' TO itab_zycit036-codigo.
IF NOT v_tpeso IS INITIAL.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036-vlreal = v_total * ( itab_zycit003-ntgew /
v_tpeso ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit036-vlreal = v_total *
( itab_zycit003-ntgewd / v_tpeso ).
ELSE.
itab_zycit036-vlreal = v_total *
( itab_zycit003-ntgew / v_tpeso ).
ENDIF.
* << Fim da inclusão
ENDIF.
IF v_waers IS INITIAL.
itab_zycit036-waers_real = /pws/zycbt007-waersb.
ELSE.
itab_zycit036-waers_real = v_waers.
ENDIF.
ENDIF.
ELSEIF v_parametro(2) EQ '03'.
IF v_linha = v_index.
IF NOT v_tot_desp IS INITIAL.
...
...
ENDLOOP.
LOOP AT itab_zycit036_aux.
MOVE itab_zycit036_aux TO itab_zycit036.
APPEND itab_zycit036.
ENDLOOP.
ELSE.
SELECT SINGLE land1 FROM t001 INTO t001-land1
WHERE bukrs EQ /pws/zycbt007-bukrs.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycit001-inco1 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
land1 EQ t001-land1. "#EC CI_NOFIRST
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
land1 EQ t001-land1. "#EC CI_NOFIRST
* << Fim da inclusão
SELECT SINGLE land1 FROM t001 INTO t001-land1
WHERE bukrs EQ /pws/zycbt007-bukrs.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ v_bukrs.
READ TABLE itab_zycit100a INDEX 1.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = itab_zycit100a-nrseqdi.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
DESCRIBE TABLE itab_zycit003 LINES v_line_rateio.
...
...
ebelp = itab_zycit036_aux-ebelp
codigo = itab_zycit036_aux-codigo.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
IF itab_zycit039-divabs EQ 'X'.
itab_zycit036_aux-vlreal = itab_despesa-netpr / v_linha.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSEIF itab_zycit039-peso EQ 'X'.
IF NOT v_tpeso IS INITIAL.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgew / v_tpeso.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ELSE.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgew / v_tpeso.
ENDIF.
* << Fim da inclusão
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
SELECT SINGLE waers meioemba inco1 embarca j_1bbranch
FROM /pws/zycit001 INTO
(/pws/zycit001-waers, /pws/zycit001-meioemba,
/pws/zycit001-inco1, /pws/zycit001-embarca,
/pws/zycit001-j_1bbranch)
WHERE nrseq = itab_zycit003-nrseq.
ENDIF.
ENDIF.
CLEAR v_ntgew_tot.
LOOP AT itab_zycit003.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_ntgew_tot = v_ntgew_tot + itab_zycit003-ntgewd.
ELSE.
* << Fim da inclusão
v_ntgew_tot = v_ntgew_tot + itab_zycit003-ntgew.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
ENDLOOP.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
LOOP AT itab_zycit003.
READ TABLE itab_zycit042 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
...
...
IF sy-subrc EQ 0 .
IF NOT /pws/zycit093-ternacion IS INITIAL.
PERFORM trata_decimais USING /pws/zycit093-waersfre
CHANGING /pws/zycit093-ternacion.
v_ternacion = /pws/zycit093-ternacion.
IF /pws/zycie085-dttax IS INITIAL.
/pws/zycie085-dttax = /pws/zycit085-dttax.
ENDIF.
IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.
IF NOT v_ntgew_tot IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_ternacion = ( v_ternacion * itab_zycit003-ntgewd
/ v_ntgew_tot ).
ELSE.
* << Fim da inclusão
v_ternacion = ( v_ternacion * itab_zycit003-ntgew
/ v_ntgew_tot ).
ENDIF.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr -
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
( v_ternacion / itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
( v_ternacion / itab_zycit003-qtd_itend ).
* << Fim da inclusão
ELSE.
IF NOT itab_zycit042-qtd_iten IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr -
( v_ternacion / itab_zycit042-qtd_iten ).
ENDIF.
ENDIF.
ELSE.
PERFORM taxa_converte USING /pws/zycit093-waersfre
/pws/zycit085-dttax
CHANGING v_taxa_desp.
v_ternacion = v_ternacion * v_taxa_desp .
IF NOT v_ntgew_tot IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
IF NOT itab_zycit003-qtd_itend IS INITIAL.
* << Fim da inclusão
v_ternacion = ( v_ternacion * itab_zycit003-ntgew
/ v_ntgew_tot ).
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ELSE.
v_ternacion = ( v_ternacion * itab_zycit003-ntgewd
/ v_ntgew_tot ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr -
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
( v_ternacion / itab_zycit003-qtd_iten ).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
( v_ternacion / itab_zycit003-qtd_itend ).
* << Fim da inclusão
ELSE.
IF NOT itab_zycit042-qtd_iten IS INITIAL.
...
...
AND land1 = t001-land1.
SELECT * FROM /pws/zycit039 INTO TABLE itab_zycit039
FOR ALL ENTRIES IN itab_zycit020
WHERE codmod = 'D'
AND codigo = itab_zycit020-codigo
AND land1 EQ t001-land1.
ENDIF.
CLEAR: v_tot_ntgew, v_tot_plan, v_tot_real.
LOOP AT itab_zycit003.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
* >> Início da exclusão: FORM MENSAGENS_NF
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgewd.
* << Fim da inclusão
ELSE.
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.
ENDIF.
IF itab_zycit085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
itab_zycit085-dttax
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal = itab_zycit003-vlreal * v_taxa.
itab_zycit003-netpr = itab_zycit003-netpr * v_taxa.
...
...
INTO TABLE itab_zycit049_a
FOR ALL ENTRIES IN itab_zycit019
WHERE nrseq = /pws/zycie041-nrseq
AND vldp > 0
AND tpdesp = itab_zycit019-tpdesp.
ENDIF.
DESCRIBE TABLE itab_zycit042_d LINES v_lines.
CLEAR: v_tot_ntgew, v_tot_plan, v_tot_real.
READ TABLE itab_zycit085 INDEX 1.
LOOP AT itab_zycit003.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgewd.
ELSE.
* << Fim da inclusão
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
ENDIF.
* << Fim da inclusão
IF itab_zycit085-waersfob NE itab_zycit003-waers.
PERFORM taxa_converte USING itab_zycit003-waers
itab_zycit085-dttax
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
itab_zycit003-vlreal =
...
...
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049_a-vldp - v_tot_vldp.
itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.
CLEAR v_vldp.
ELSE.
IF itab_zycit039-divabs = 'X'.
v_vldp = itab_zycit049_a-vldp / v_lines.
ELSEIF itab_zycit039-peso = 'X'.
IF NOT v_tot_ntgew IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF NOT itab_zycit003-ntgewd IS INITIAL.
v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgewd /
v_tot_ntgew.
ELSE.
* << Fim da inclusão
v_vldp = itab_zycit049_a-vldp * itab_zycit003-ntgew /
v_tot_ntgew.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
ENDIF.
* << Fim da inclusão
ENDIF.
ELSEIF itab_zycit039-proporplan = 'X'.
v_vldp = itab_zycit049_a-vldp *
( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot_plan ).
...
...
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.
CLEAR v_vldp.
ELSE.
IF itab_zycit039-divabs = 'X'.
v_vldp = itab_zycit049-vldp / v_lines.
ELSEIF itab_zycit039-peso = 'X'.
IF NOT v_tot_ntgew IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF NOT itab_zycit003-ntgewd IS INITIAL.
v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /
v_tot_ntgew.
ELSE.
* << Fim da inclusão
v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /
v_tot_ntgew.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit039-proporplan = 'X'.
v_vldp = itab_zycit049-vldp *
( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot_plan ).
...
...
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.
CLEAR v_vldp.
ELSE.
IF itab_zycit039-divabs = 'X'.
v_vldp = itab_zycit049-vldp / v_lines.
ELSEIF itab_zycit039-peso = 'X'.
IF NOT v_tot_ntgew IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
IF NOT itab_zycit003-ntgewd IS INITIAL.
v_vldp = itab_zycit049-vldp * itab_zycit003-ntgewd /
v_tot_ntgew.
ELSE.
* << Fim da inclusão
v_vldp = itab_zycit049-vldp * itab_zycit003-ntgew /
v_tot_ntgew.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
ENDIF.
* << Fim da inclusão
ELSEIF itab_zycit039-proporplan = 'X'.
v_vldp = itab_zycit049-vldp *
( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot_plan ).
...
...
INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_zycit042
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
ENDIF.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_aux
WHERE nrseq = itab_zycit042-nrseq.
CLEAR: v_tot_ntgew, v_tot_plan, v_tot_real.
LOOP AT itab_zycit003_aux.
* >> Início da inclusão: FORM CONGELA_DESPESA
IF NOT itab_zycit003_aux-qtd_itend IS INITIAL .
v_tot_ntgew = v_tot_ntgew + itab_zycit003_aux-ntgewd.
ELSE.
* << Fim da inclusão
v_tot_ntgew = v_tot_ntgew + itab_zycit003_aux-ntgew.
* >> Início da inclusão: FORM CONGELA_DESPESA
ENDIF.
* << Fim da inclusão
v_tot_plan = v_tot_plan +
( itab_zycit003_aux-netpr * itab_zycit003_aux-qtd_iten ).
v_tot_real = v_tot_real +
( itab_zycit003_aux-vlreal * itab_zycit003_aux-qtd_iten ).
ENDLOOP.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie041-bukrs.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
IF itab_zycit001-inco1 EQ 'DDU'.
IF NOT v_dif_frn IS INITIAL.
t_vmle = t_vmle + ( /pws/zycie003-ntgew / v_ntgew ) * v_dif_frn.
ENDIF.
ELSE.
IF NOT v_dif_frn IS INITIAL.
t_vmle = t_vmle + ( /pws/zycie003-ntgew / v_ntgew ) * v_dif_frn.
ENDIF.
t_ivmle2 = t_vmle2 * /pws/zycie100a-dttaxbem.
ENDIF.
* >> Início da exclusão: FORM LOAD_IFRE
IF s_inco1_ci NE 'FOB' AND
v_ntgewd IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IFRE
IF s_inco1_ci NE 'FOB'.
* << Fim da inclusão
IF NOT /pws/zycie093-ternacion IS INITIAL.
v_ternacion = /pws/zycie093-ternacion.
PERFORM trata_decimais USING /pws/zycie085-waersfre
v_ternacion .
IF /pws/zycie085-waersfob NE /pws/zycie093-waersfre .
PERFORM: calc_conv_moeda:
USING /pws/zycie093-waersfre
/pws/zycie085-waersfob
CHANGING v_ternacion.
ENDIF.
* >> Início da inclusão: FORM LOAD_IFRE
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
v_diftern = ( ( /pws/zycie003-ntgewd / v_ntgewd )
* v_ternacion ).
ELSE.
* << Fim da inclusão
v_diftern = ( ( /pws/zycie003-ntgew / v_tntgew )
* v_ternacion ).
* >> Início da inclusão: FORM LOAD_IFRE
ENDIF.
* << Fim da inclusão
t_vmle = t_vmle - v_diftern .
ENDIF.
ENDIF.
IF itab_zycit003-qtd_itend IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + t_vldif.
...
...
PERFORM calc_itab_vals USING 'I'.
s_wadreco = s_waddevi = s_waddevi + ( itab_it-baseantid *
( itab_it-antidrate / 100 ) ) + ( itab_it-vlantid *
itab_it-qtdeantid ).
itab_it-vlfre_me = v_tot_fre.
itab_it-vlseg_me = v_tot_seg.
itab_it-vlfre = t_ivfre.
itab_it-vlseg = t_ivseg.
itab_it-vldiffob = t_vldif.
IF NOT /pws/zycie093-ternacion IS INITIAL.
* >> Início da inclusão: FORM CALC_ITAB
IF NOT itab_it-qtd_itend IS INITIAL.
itab_it-frn = ( /pws/zycie003-ntgewd / v_tntgew ) *
/pws/zycie093-ternacion.
ELSE.
* << Fim da inclusão
itab_it-frn = ( /pws/zycie003-ntgew / v_tntgew ) *
/pws/zycie093-ternacion.
* >> Início da inclusão: FORM CALC_ITAB
ENDIF.
* << Fim da inclusão
ENDIF.
/pws/zycie085-vlpis = /pws/zycie085-vlpis + t_pis .
/pws/zycie085-vlcofins = /pws/zycie085-vlcofins + t_cofins .
MODIFY itab_it INDEX v_idx TRANSPORTING
vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms
...
...
itab_it-codregtripiscofi = '5'.
itab_it-codregtriipi = '5'.
itab_it-codregtriicms = '5'.
ENDIF.
ENDIF.
IF v_sub EQ 0.
MODIFY itab_it INDEX v_idx.
ELSE.
APPEND itab_it.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF NOT itab_it-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_it-ntgewd.
ELSE.
* << Fim da inclusão
v_tntgew = v_tntgew + itab_it-ntgew.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da inclusão
v_tsegfat = v_tsegfat + itab_it-vlseg_fat.
IF itab_it-qtd_itencacl IS INITIAL.
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
v_tmle = v_tmle + ( ( itab_it-qtd_iten * itab_it-vlreal )
* itab_it-dttaxbem ).
ELSE.
...
...
a_iitcalc, a_iitredu, a_iitdevi, a_iitreco,
a_ipitdevi, a_ipitreco, v_tot_seg, v_tseg,
a_pistcalc, a_pistredu, a_pistdevi, a_pistreco,
a_coftcalc, a_coftredu, a_coftdevi, a_coftreco,
v_tfre, v_tot_fre, v_tfrefat,
a_addevi, a_adreco, a_icdevi, a_icreco,
/pws/zycie116-baseii, v_tot_plan,
a_basepc.
.
LOOP AT itab_it.
* >> Início da inclusão: FORM CALC_ITAB_ADIC
IF NOT itab_it-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_it-ntgewd.
ELSE.
* << Fim da inclusão
v_tntgew = v_tntgew + itab_it-ntgew.
* >> Início da inclusão: FORM CALC_ITAB_ADIC
ENDIF.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_itb.
v_idx = itab_itb-seq.
MOVE itab_itb TO wa_it.
MOVE-CORRESPONDING: itab_itb TO /pws/zycie100a,
itab_itb TO /pws/zycie003.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
nrseq = itab_it-nrseq
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.
* >> Início da exclusão: FORM CALC_INIT
IF itab_it-qtd_itend NE '' AND v_dit = 'N'.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
IF itab_it-qtd_itend NE ''.
* << Fim da inclusão
v_qtd_iten = itab_it-qtd_itend.
* >> Início da inclusão: FORM CALC_INIT
v_tntgew = v_tntgew + itab_it-ntgewd.
* << Fim da inclusão
ELSE.
v_qtd_iten = itab_it-qtd_iten.
* >> Início da inclusão: FORM CALC_INIT
v_tntgew = v_tntgew + itab_it-ntgew.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM CALC_INIT
v_tntgew = v_tntgew + itab_it-ntgew.
* << Fim da exclusão
v_tmle = v_tmle + ( ( v_qtd_iten * itab_it-vlreal ) *
itab_it-dttaxbem ).
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.
...
...
IF NOT /pws/zycit062-flag_icms IS INITIAL AND
/pws/zycie100a-icms_dif NE 'X'.
IF /pws/zycit062-base IS INITIAL AND
NOT /pws/zycie003-basred EQ '100' .
t_icmsx = ( 1 - ( /pws/zycie003-advalicms / 100 ) ).
ELSE.
t_icmsx = ( 1 - v_advicms ) .
ENDIF.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ).
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da exclusão
IF NOT /pws/zycie003-basred IS INITIAL AND
NOT /pws/zycie003-basred EQ '100'.
t_icmsbs = ( t_icmsbs / t_icmsx ).
ELSE.
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S'.
IF '356' CA /pws/zycie100a-codregtriicms .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
...
...
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
ENDIF.
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs ) .
t_icmsbs_d2 = t_icmsbs .
ENDIF.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da inclusão
IF '356' CA /pws/zycie100a-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms.
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da exclusão
IF p_tipo = 'I' OR p_tipo = 'T' .
s_wicdevi = s_wicdevi + t_icms .
s_wpisreco = s_wpisreco + t_pis .
s_wcofreco = s_wcofreco + t_cofins.
...
...
wa_matuse_aux-hkont
space
space.
ENDIF.
APPEND itab_matuse_aux.
CLEAR itab_matuse_aux.
ENDIF.
ENDLOOP.
CLEAR v_tntgew.
LOOP AT itab_zycit003.
* >> Início da inclusão: FORM RECLASSIFICACAO_IA
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_zycit003-ntgewd.
ELSE .
* << Fim da inclusão
v_tntgew = v_tntgew + itab_zycit003-ntgew.
* >> Início da inclusão: FORM RECLASSIFICACAO_IA
ENDIF.
* << Fim da inclusão
ENDLOOP.
IF itab_zycit263[] IS INITIAL.
SELECT *
FROM /pws/zycit263
INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit006
...
...
itab_di-vlfob = ( itab_zycit100-dttaxbem * itab_zycit100-vlfob ) .
ELSE.
itab_di-vlfob = itab_zycit100-dttaxbem * itab_zycit100-vlfob.
ENDIF.
IF NOT /pws/zycie093-ternacion IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp .
IF NOT v_tntgew IS INITIAL.
* >> Início da inclusão: FORM RECLASSIFICACAO_IA
IF NOT itab_zycit003-qtd_itend IS INITIAL.
itab_di-vlfren = ( ( itab_zycit003-ntgewd / v_tntgew ) *
/pws/zycie093-ternacion ) * /pws/zycie085-ukursfre .
ELSE.
* << Fim da inclusão
itab_di-vlfren = ( ( itab_zycit003-ntgew / v_tntgew ) *
/pws/zycie093-ternacion ) * /pws/zycie085-ukursfre .
* >> Início da inclusão: FORM RECLASSIFICACAO_IA
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
itab_di-vldi = itab_di-vlfob + itab_di-vlseg +
itab_di-vlfre + itab_di-vlfren.
COLLECT itab_di.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
cof_reduzido LIKE /pws/zycie085-vlfob,
cof_devido LIKE /pws/zycie085-vlfob,
cof_recolher LIKE /pws/zycie085-vlfob,
ad_devido LIKE /pws/zycie085-vlfob,
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,
* >> Início da inclusão:
ntgewd LIKE /pws/zycie003-ntgewd,
* << Fim da inclusão
mark,
END OF itab_it.
DATA: BEGIN OF itab_zycit049 OCCURS 0.
INCLUDE STRUCTURE /pws/zycie049.
DATA: tipo LIKE /pws/zycit019-tipo,
coddesp LIKE /pws/zycit000-cod_sisc,
codigo LIKE /pws/zycit019-codigo,
baseicms LIKE /pws/zycit020-baseicms,
baseii LIKE /pws/zycit020-baseii,
reduz LIKE /pws/zycie122-descricao_reduz,
...