Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 10/11/2011 00:00:00
Data/Hora Última Alteração: 10/11/2011 13:18:38
Descrição da Nota: TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE REMESSA
Sintoma
Quando a quantidade do item é grande o total da nota fica diferente da base de ICMS.
Não está lançando a linha de II nos impostos da nota fiscal de remessa quando o processo não possui
valor de II.
Solução
Ajustada função de tratamento de arredondamento para utilizar o valor total da mercadoria no ajuste
da base de imposto.
Ajustado programa para criar a linha de II mesmo que o imposto não possua valor para lançamento.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11617 Data: 10/11/2011 Hora: 09:13:50
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11617
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00009
Agrupamento : 00093
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07233 - 00001 - 7.0 - 00006 - DUMP NA NOTA FISCAL GLOBAL COM BASE DE ICMS ZERADA
08151 - 00002 - 7.0 - 00008 - BASE DE IPI E ICMS INCORRETOS NA NF EM PROCESSOS FUNDAP
11600 - 00003 - 8.0 - 00009 - LEVA VALORES ERRADO AO CRIAR NF REMESSA.
----------------------------------------------------------------------------------------------------
TRAT. PARA ARRED. VALOR DA NOTA E PREENCH. LINHA II NA NOTA DE REMESSA
----------------------------------------------------------------------------------------------------
Palavras Chave:
NOTA - FISCAL - LANÇAR - II - REMESSA - ARREDONDAMENTO - VALOR
/PWS/SAPMZYCI016 - MERCADORIA - FUNÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_AJUSTE_IMP_NF
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI016X01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_AJUSTE_IMP_NF
*Modificações da Função:
*Pasta Importação:
*Excluir os campos:
codregtriicms
codregtri
icms_dif
tpdi
*Incluir os campos:
INCO TYPE /PWS/ZYCIT031-INCO1_CI
ZYCIT085 TYPE /PWS/ZYCIT085
ZYCIT093 TYPE /PWS/ZYCIT093
ZYCIT100 TYPE /PWS/ZYCIT100
*Pasta Tabelas:
*Incluir a tabela:
T_ZYCIT003 LIKE /PWS/ZYCIT003
*Codigo fonte:
...
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
DATA: v_valor_i TYPE /pws/zycee007-othbas,
v_valor_i2 TYPE /pws/zycee007-othbas,
v_ternacion TYPE /pws/zycit042-netpr,
v_ntgew_tot TYPE /pws/zycit003-ntgew,
v_moeda TYPE tcurc-/pws/codmo,
v_taxa TYPE /pws/zycit174-txconver.
* << Fim da inclusão
CONSTANTS cent(5) TYPE p DECIMALS 2 VALUE '0.04'.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF zycit062-flag_icms = 'X'.
wa_zycit003 = zycit003.
IF icms_dif = 'X' OR
wa_zycit003-basred IS INITIAL.
wa_zycit003-basred = '100'.
v_basred = '100'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF t001-land1 IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs EQ zycit085-bukrs.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
CLEAR v_advicms.
IF NOT wa_zycit003-advalicms IS INITIAL.
IF zycit062-bs_pis_cof IS INITIAL.
IF NOT wa_zycit003-basred IS INITIAL OR
NOT wa_zycit003-basred EQ '100'.
v_advicms = ( ( wa_zycit003-advalicms / 100 ) *
( wa_zycit003-basred / 100 ) ) .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
LOOP AT t_zycit003.
IF NOT t_zycit003-qtd_itend IS INITIAL.
ADD t_zycit003-ntgewd TO v_ntgew_tot.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_advicms = ( wa_zycit003-advalicms / 100 ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
ADD t_zycit003-ntgew TO v_ntgew_tot.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
ENDLOOP.
IF NOT zycit003-qtd_itend IS INITIAL.
wa_zycit003-qtd_iten = zycit003-qtd_itend.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_advicms = ( wa_zycit003-advalicms / 100 ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
wa_zycit003-qtd_iten = zycit003-qtd_iten.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_basred = ( v_advicms * 10000 / wa_zycit003-advalicms ).
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF /pws/zycit085-ukursfob IS INITIAL.
v_valor_i = ( zycit003-vlreal * wa_zycit003-qtd_iten )
* zycit100-dttaxbem.
v_valor_i = ( zycit003-vlfre_fat * zycit100-dttaxbem )
+ v_valor_i .
v_valor_i = ( zycit003-vlseg_fat * zycit100-dttaxbem )
+ v_valor_i.
ELSE.
IF zycit085-mdadicao EQ 'N'.
v_valor_i = ( zycit003-vlreal * wa_zycit003-qtd_iten )
* zycit100-dttaxbem.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_basred = wa_zycit003-basred.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i = ( zycit003-vlreal * wa_zycit003-qtd_iten )
* zycit085-ukursfob .
ENDIF.
v_valor_i = ( zycit003-vlfre_fat * zycit100-dttaxbem )
+ v_valor_i .
v_valor_i = ( zycit003-vlseg_fat * zycit100-dttaxbem )
+ v_valor_i .
ENDIF.
IF inco = 'C&F' AND
NOT zycit003-qtd_iten IS INITIAL AND
NOT zycit003-qtd_itend IS INITIAL .
IF NOT zycit100-vlfre IS INITIAL.
v_valor_i = v_valor_i -
( zycit100-vlfre - zycit003-vlfre_fat *
zycit100-dttaxbem ) +
( zycit100-vlfre - zycit003-vlfre_fat *
zycit100-dttaxbem ) .
ENDIF.
IF inco = 'C+I' AND
NOT zycit003-qtd_iten IS INITIAL AND
NOT zycit003-qtd_itend IS INITIAL .
IF NOT zycit100-vlseg IS INITIAL.
v_valor_i = v_valor_i -
( zycit100-vlseg - zycit003-vlseg_fat *
zycit100-dttaxbem ) +
( zycit100-vlseg - zycit003-vlseg_fat *
zycit100-dttaxbem ).
ENDIF.
ENDIF.
ELSEIF inco = 'CIF' AND
NOT zycit003-qtd_iten IS INITIAL AND
NOT zycit003-qtd_itend IS INITIAL.
v_valor_i =
( ( zycit100-vlfob * zycit100-dttaxbem ) +
zycit100-vlfre + zycit100-vlseg ) .
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF NOT zycee007-taxval IS INITIAL AND
NOT icms_dif = 'X'.
IF ( tpdi EQ 'N' AND
NOT ' 36' CA codregtriicms ) OR
( tpdi EQ 'S' AND
NOT '56' CA codregtri ) .
IF ( codregtriicms EQ '5' AND
' N' CA zycit062-susp_nf ) OR
codregtriicms NE '5' .
IF NOT zycit062-tred IS INITIAL.
v_vlverif2 =
( ( zycee007-taxval / zycee007-menge )
* 100 ) / v_basred.
v_vlverif4 = ( zycee007-taxval * 100 )
/ v_basred.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF inco EQ 'C&F' OR
inco EQ 'CIF'.
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 = zycit085-dttax.
ENDIF.
IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.
IF NOT v_ntgew_tot IS INITIAL.
IF NOT zycit003-qtd_itend IS INITIAL AND
NOT zycit003-ntgewd IS INITIAL.
CLEAR v_ternacion.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_vlverif2 =
( zycee007-taxval / zycee007-menge ).
v_vlverif4 = zycee007-taxval.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_ternacion = ( v_ternacion * zycit003-ntgew
/ v_ntgew_tot ).
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i = v_valor_i - v_ternacion.
ELSE.
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = zycit093-waersfre.
IF sy-subrc EQ 0.
SELECT SINGLE txconver FROM /pws/zycit174 INTO v_taxa
WHERE codconver = v_moeda
AND vigen_inicio <= zycit085-dttax
AND vigen_fim >= zycit085-dttax
AND land1 = t001-land1.
IF sy-subrc NE 0.
v_taxa = '1'.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF tpdecl EQ 'DSI'
AND codregtri EQ '4'.
IF NOT zycit062-tred IS INITIAL.
v_vlverif2 = ( (
zycee007-taxval / zycee007-menge )
* 100 ) / v_basred.
v_vlverif4 = ( zycee007-taxval * 100 ) / v_basred.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_ternacion = v_ternacion * v_taxa.
IF NOT v_ntgew_tot IS INITIAL.
IF NOT zycit003-qtd_itend IS INITIAL AND
NOT zycit003-ntgewd IS INITIAL.
CLEAR v_ternacion.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_vlverif2 =
( zycee007-taxval / zycee007-menge ).
v_vlverif4 = zycee007-taxval.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_ternacion = ( v_ternacion * zycit003-ntgew
/ v_ntgew_tot ).
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_valor_i = v_valor_i - v_ternacion .
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_vlverif3 = v_vlverif2 * zycee007-menge.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF zycit062-flag_icms = 'X'.
IF NOT zycee007-base2 IS INITIAL.
zycee007-base2 = zycee007-base2 +
( v_vlverif3 - v_vlverif4 ).
ELSEIF NOT zycee007-othbas2 IS INITIAL.
zycee007-othbas2 = zycee007-othbas2 +
( v_vlverif3 - v_vlverif4 ).
ELSEIF NOT zycee007-p_excbas IS INITIAL.
zycee007-p_excbas = zycee007-p_excbas +
( v_vlverif3 - v_vlverif4 ).
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF NOT zycee007-base IS INITIAL.
zycee007-base = zycee007-base +
( v_vlverif3 - v_vlverif4 ).
ELSEIF NOT zycee007-othbas IS INITIAL.
zycee007-othbas = zycee007-othbas +
( v_vlverif3 - v_vlverif4 ) .
ELSEIF NOT zycee007-c_excbas IS INITIAL.
zycee007-c_excbas = zycee007-c_excbas +
( v_vlverif3 - v_vlverif4 ) .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF NOT zycit003-qtd_itend IS INITIAL.
v_valor_i = v_valor_i *
( zycee007-menge / zycit003-qtd_itend ).
ELSE.
v_valor_i = v_valor_i *
( zycee007-menge / zycit003-qtd_iten ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
IF zycit062-flag_icms = 'X'.
ADD zycee007-taxval TO v_valor_i.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_tot_nf = vlunit * zycee007-menge.
v_vlverif = zycee007-netoth + zycee007-netfre +
zycee007-netins + v_tot_nf.
v_tot_nf = zycee007-netpr * zycee007-menge. .
v_vlverif1 = zycee007-netoth + zycee007-netfre +
zycee007-netins + v_tot_nf.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_AJUSTE_IMP_NF
v_tot_nf = zycee007-netpr * zycee007-menge.
v_vlverif1 = v_tot_nf.
v_vlverif = v_valor_i.
* << Fim da inclusão
IF NOT zycee007-base IS INITIAL.
zycee007-base = zycee007-base +
( v_vlverif1 - v_vlverif ).
ELSEIF NOT zycee007-othbas IS INITIAL.
zycee007-othbas =
zycee007-othbas +
( v_vlverif1 - v_vlverif ).
ELSEIF NOT zycee007-c_excbas IS INITIAL.
zycee007-c_excbas =
zycee007-c_excbas +
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
vl_ii = vl_ii + itab_zycit100a-vlii .
vl_ipi = vl_ipi + itab_zycit100a-vlipi .
vl_pis = vl_pis + itab_zycit100a-vlpis .
vl_cofins = vl_cofins + itab_zycit100a-vlcofins.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF /pws/zycit062-arbase EQ 'X'.
* << Fim da inclusão
itab_zycit100a-vlii = vl_ii - vltot_ii .
itab_zycit100a-vlipi = vl_ipi - vltot_ipi .
itab_zycit100a-vlpis = vl_pis - vltot_pis .
itab_zycit100a-vlcofins = vl_cofins - vltot_cofins.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
IF itab_zycit100a-icms_dif IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
IF /pws/zycit062-arbase EQ 'X'.
IF v_fundap EQ 'X'.
v_unitf = itab_zycit480-vl_unit.
ELSE.
v_unitf = itab_zycit042-netpr.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFNEW
IF /pws/zycit031-inco1_ci IS INITIAL.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycit001-inco1
AND land1 EQ t001-land1. "#EC CI_NOFIRST
ENDIF.
IF /pws/zycit093 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
ENDIF.
wa_zycit100 = itab_zycit100.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_AJUSTE_IMP_NF'
EXPORTING
vlunit = v_unitf
zycit003 = itab_zycit003
zycit062 = /pws/zycit062
tpdecl = /pws/zycit001-tpdecl
* >> Início da exclusão: FORM ITENS_NFNEW
codregtriicms = itab_zycit100-codregtriicms
codregtri = itab_zycit100-codregtri
icms_dif = itab_zycit100-icms_dif
tpdi = /pws/zycit085-tpdi
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
inco = /pws/zycit031-inco1_ci
zycit085 = /pws/zycit085
zycit093 = /pws/zycit093
zycit100 = wa_zycit100
TABLES
t_zycit003 = itab_zycit003[]
* << Fim da inclusão
CHANGING
* >> Início da exclusão: FORM ITENS_NFNEW
zycee007 = it_zycee007.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
zycee007 = it_zycee007.
* << Fim da inclusão
ENDIF.
APPEND it_zycee007.
CLEAR it_zycee007.
...
...
ELSE.
it_zycee007-taxval = v_icms.
ENDIF.
v_base = it_zycee007-othbas.
ENDCASE.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
it_zycee007-leipis = itab_zycit398-leipis.
* >> Início da exclusão: FORM ITENS_NFRNEW
ENDIF.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-leicofins = itab_zycit398-leicofins.
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_pis.
* << Fim da inclusão
ENDIF.
itab_zycit100-basepis = itab_zycit100-basecofins =
itab_zycit100-basecofins /
itab_zycit044-menge * itab_zycit044-qtd_item.
IF NOT itab_zycit100-vlpis IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit044-nrseq
ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp
codigo = 'PIS'.
it_zycee007-taxval_pis = itab_zycit036-vlreal /
itab_zycit044-menge * itab_zycit044-qtd_item.
ELSE.
CLEAR it_zycee007-taxval_pis .
ENDIF.
* >> Início da exclusão: FORM ITENS_NFRNEW
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
it_zycee007-taxtyp_pis = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_pis.
ENDIF.
* << Fim da exclusão
IF NOT it_zycee007-taxval_pis IS INITIAL.
it_zycee007-rate_pis = itab_zycit100-advalpis.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
v_montante1 = itab_zycit100-basepis.
it_zycee007-base_pis = v_montante1.
WHEN 2.
v_montante1 = itab_zycit100-basepis.
it_zycee007-pis_excbas = v_montante1.
CLEAR it_zycee007-taxval_pis.
CLEAR it_zycee007-rate_pis.
WHEN 3.
v_montante1 = itab_zycit100-basepis.
it_zycee007-othbas_pis = v_montante1.
ENDCASE.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM ITENS_NFRNEW
it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.
* << Fim da inclusão
it_zycee007-leicofins = itab_zycit398-leicofins.
* >> Início da inclusão: FORM ITENS_NFRNEW
ELSE.
CLEAR it_zycee007-taxtyp_cof.
* << Fim da inclusão
ENDIF.
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit044-nrseq
ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp
codigo = 'COFINS'.
it_zycee007-taxval_cof = itab_zycit036-vlreal /
itab_zycit044-menge * itab_zycit044-qtd_item.
ELSE .
CLEAR it_zycee007-taxval_cof .
ENDIF.
* >> Início da exclusão: FORM ITENS_NFRNEW
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-taxtyp_cof = itab_zycit398-taxtyp.
ELSE.
CLEAR it_zycee007-taxtyp_cof.
ENDIF.
* << Fim da exclusão
IF NOT it_zycee007-taxval_cof IS INITIAL.
it_zycee007-rate_cof = itab_zycit100-advalcofins.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-base_cof = v_montante1.
WHEN 2.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cof_excbas = v_montante1.
CLEAR it_zycee007-taxval_cof.
CLEAR it_zycee007-rate_cof.
WHEN 3.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cof = v_montante1.
ENDCASE.
READ TABLE itab_zycit398 WITH KEY tributos = 'ICMSST'.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM ITENS_NFRNEW
itab_zycit100-baseicms_st = itab_zycit100-baseicms_st /
itab_zycit044-menge * itab_zycit044-qtd_item.
* << Fim da inclusão
IF NOT itab_zycit100-vlicms_st IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit044-nrseq
ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp
codigo = 'ICMSST'.
it_zycee007-taxval_st = itab_zycit036-vlreal /
itab_zycit044-menge * itab_zycit044-qtd_item.
ELSE .
CLEAR it_zycee007-taxval_st .
...
...
CLEAR it_zycee007-rate_st.
WHEN 3.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-othbas_st = v_montante1.
ENDCASE.
ELSE.
CLEAR it_zycee007-taxtyp_st.
ENDIF.
READ TABLE itab_zycit398 WITH KEY tributos = 'II'.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM ITENS_NFRNEW
itab_zycit100-baseii = itab_zycit100-baseii /
itab_zycit044-menge * itab_zycit044-qtd_item.
it_zycee007-taxtyp_ii = itab_zycit398-taxtyp.
* << Fim da inclusão
IF NOT itab_zycit100-vlii IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit044-nrseq
ebeln = itab_zycit044-ebeln
ebelp = itab_zycit044-ebelp
codigo = 'II'.
it_zycee007-taxval_ii = itab_zycit036-vlreal /
itab_zycit044-menge * itab_zycit044-qtd_item.
ELSE .
CLEAR it_zycee007-taxval_ii .
ENDIF.
* >> Início da exclusão: FORM ITENS_NFRNEW
ELSE .
CLEAR it_zycee007-taxval_ii .
ENDIF.
* << Fim da exclusão
IF NOT it_zycee007-taxval_ii IS INITIAL.
* >> Início da exclusão: FORM ITENS_NFRNEW
it_zycee007-taxtyp_ii = itab_zycit398-taxtyp.
* << Fim da exclusão
it_zycee007-rate_ii = itab_zycit003-advalii.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
v_montante1 = itab_zycit100-baseii.
it_zycee007-base_ii = v_montante1.
WHEN 2.
v_montante1 = itab_zycit100-baseii.
it_zycee007-ii_excbas = v_montante1.
CLEAR it_zycee007-taxval_ii.
CLEAR it_zycee007-rate_ii.
WHEN 3.
v_montante1 = itab_zycit100-baseii.
it_zycee007-othbas_ii = v_montante1.
ENDCASE.
* >> Início da inclusão: FORM ITENS_NFRNEW
ELSE .
CLEAR it_zycee007-taxval_ii .
ENDIF.
* << Fim da inclusão
CASE itab_zycit033-tribipi.
WHEN 1.
IF NOT itab_zycit100-baseipi IS INITIAL.
it_zycee007-base2 = itab_zycit100-baseipi /
itab_zycit044-menge * itab_zycit044-qtd_item .
ENDIF.
IF v_basred IS INITIAL.
v_basred = 100.
ENDIF.
it_zycee007-p_excbas = v_outras_ic + v_ipi.
...
...
v_ipi
CHANGING it_zycee007-othbas2
it_zycee007-p_excbas
IF FOUND.
ENDIF.
IF /pws/zycit062-arbase EQ 'X'.
IF v_fundap EQ 'X'.
v_unitf = itab_zycit480r-vl_unit.
ELSE.
v_unitf = itab_zycit044-netpr.
ENDIF.
* >> Início da inclusão: FORM ITENS_NFRNEW
IF /pws/zycit031-inco1_ci IS INITIAL.
SELECT SINGLE * FROM /pws/zycit031
WHERE inco1 = /pws/zycit001-inco1
AND land1 EQ t001-land1. "#EC CI_NOFIRST
ENDIF.
IF /pws/zycit093 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
ENDIF.
wa_zycit100 = itab_zycit100.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_AJUSTE_IMP_NF'
EXPORTING
vlunit = v_unitf
zycit003 = itab_zycit003
zycit062 = /pws/zycit062
tpdecl = /pws/zycit001-tpdecl
* >> Início da exclusão: FORM ITENS_NFRNEW
codregtriicms = itab_zycit100-codregtriicms
codregtri = itab_zycit100-codregtri
icms_dif = itab_zycit100-icms_dif
tpdi = /pws/zycit085-tpdi
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
inco = /pws/zycit031-inco1_ci
zycit085 = /pws/zycit085
zycit093 = /pws/zycit093
zycit100 = wa_zycit100
TABLES
t_zycit003 = itab_zycit003[]
* << Fim da inclusão
CHANGING
zycee007 = it_zycee007.
ENDIF.
APPEND it_zycee007.
CLEAR it_zycee007.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016X01
...
* >> Início da inclusão:
DATA wa_zycit100 TYPE /pws/zycit100.
* << Fim da inclusão
DATA: END OF COMMON PART a.