Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 23/03/2007 00:00:00
Data/Hora Última Alteração: 23/02/2011 09:13:40
Descrição da Nota: NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA DI
Sintoma
Fazer tratamento na Nota Fiscal para verificar a coluna reg_susp.NF da tabela /PWS/zycit062 quando o
regime tributário for não incidência, o mesmo tratamento de como faz com o suspensão.
Solução
tratar regime tributário não incidência como o regime de suspensão.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03302 Data: 23/03/2007 Hora: 09:44:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03302
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00158
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02922 - 00001 - 6.0 - 00026 - CRIADO PARAMETRO PARA LEVAR ICMS REDUZ NO TOTAL DA NF
02972 - 00002 - 6.0 - 00026 - APRESENTAR MENSAGEM NA NOTA FISCAL DE "VALOR ICMS: DIFERIDO"
03178 - 00003 - 6.0 - 00026 - NECESSÁRIO FAZER TRATAMENTO DA DSI E NF GLOBAL COM REGIME SUSPENS
03219 - 00004 - 6.0 - 00026 - NOTA FISCAL COM SUSPENSÃO DE IMPOSTOS
03239 - 00005 - 6.0 - 00026 - ERROS PARA NF DE PROCESSOS ISENÇÃO, SUSPENSÃO E RECOLHIMENTO INTE
----------------------------------------------------------------------------------------------------
NA NOTA FISCAL VERIFICAR TABELA ZYCIT062 PARA NÃO INCIDÊNCIA DA DI
----------------------------------------------------------------------------------------------------
Palavras Chave:
NF - PARÂMETRO /PWS/ZYCIT062 - REGIME SUSPENSO
NÃO INCIDÊNCIA - DI
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI016F01
REPS /PWS/ZYCIR035
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
IF itab_zycit003-qtd_itend IS INITIAL.
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
ELSE.
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_itend ).
ENDIF.
v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
ENDIF.
ENDLOOP.
LOOP AT itab_zycit100a.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF itab_zycit100a-codregtri NE '5' AND
itab_zycit100a-codregtri NE '3'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT '356' CA itab_zycit100a-codregtri .
* << Fim da inclusão
v_tot_ii = itab_zycit100a-vlii + v_tot_ii.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF itab_zycit100a-codregtriipi NE '1' AND
itab_zycit100a-codregtriipi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT '156' CA itab_zycit100a-codregtriipi .
* << Fim da inclusão
v_tot_ipi = itab_zycit100a-vlipi + v_tot_ipi.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF ( itab_zycit100a-codregtripiscofi NE '3' AND
itab_zycit100a-codregtripiscofi NE '5' ) .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT '356' CA itab_zycit100a-codregtripiscofi.
* << Fim da inclusão
v_tot_pis = itab_zycit100a-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit100a-vlcofins + v_tot_cofins.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF ( itab_zycit100a-codregtriicms NE '3' AND
itab_zycit100a-codregtriicms NE '5' ) .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT '356' CA itab_zycit100a-codregtriicms .
* << Fim da inclusão
v_tot_icms = itab_zycit100a-vlicms + v_tot_icms.
endif.
ENDLOOP.
IF NOT itab_zycit100a[] IS INITIAL.
SELECT * FROM /pws/zycit116
INTO TABLE itab_zycit116
FOR ALL ENTRIES IN itab_zycit100a
WHERE nrseqdi = itab_zycit100a-nrseqdi.
IF sy-subrc NE 0 AND v_programa = 'DI'.
IMPORT itab_adicao FROM MEMORY ID 'ADI01'.
...
...
CLEAR itab_zycit039.
READ TABLE itab_zycit039 WITH KEY codigo = itab_despesa-codigo.
IF v_linha = v_index.
IF NOT itab_despesa-waers IS INITIAL.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSE.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
IF ( /pws/zycit019-codigo EQ 'II' OR
/pws/zycit019-codigo EQ 'IPI' OR
/pws/zycit019-codigo EQ 'ICMS' OR
/pws/zycit019-codigo EQ 'COFINS' OR
/pws/zycit019-codigo EQ 'PIS' OR
( /pws/zycit000-cod_sisc EQ itab_despesa-tpdesp AND
NOT /pws/zycit000-flag_txsisc IS INITIAL ) ) AND
NOT itab_zycit100a[] IS INITIAL.
IF /pws/zycit019-codigo = 'ICMS' AND
NOT v_tot_icms IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp
.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'IPI' AND
NOT v_tot_ipi IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtriipi NE '1' AND
itab_zycit100a-codregtriipi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '156' CA itab_zycit100a-codregtriipi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'II' AND
NOT v_tot_ii IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtri NE '3' AND
itab_zycit100a-codregtri NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtri .
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'COFINS'
AND NOT v_tot_cofins IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtripiscofi NE '3' AND
itab_zycit100a-codregtripiscofi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtripiscofi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'PIS'
AND NOT v_tot_pis IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtripiscofi NE '3' AND
itab_zycit100a-codregtripiscofi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtripiscofi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSE.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND NOT v_tot_desp IS INITIAL.
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
...
...
IF ( /pws/zycit019-codigo EQ 'II' OR
/pws/zycit019-codigo EQ 'IPI' OR
/pws/zycit019-codigo EQ 'ICMS' OR
/pws/zycit019-codigo EQ 'COFINS' OR
/pws/zycit019-codigo EQ 'PIS' OR
( /pws/zycit000-cod_sisc EQ itab_despesa-tpdesp AND
NOT /pws/zycit000-flag_txsisc IS INITIAL ) ) AND
NOT itab_zycit100a[] IS INITIAL.
IF /pws/zycit019-codigo = 'ICMS' AND
NOT v_tot_icms IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlicms /
v_tot_icms ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'IPI' AND
NOT v_tot_ipi IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtriipi NE '1' AND
itab_zycit100a-codregtriipi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '156' CA itab_zycit100a-codregtriipi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlipi /
v_tot_ipi ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'II' AND
NOT v_tot_ii IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtri NE '3' AND
itab_zycit100a-codregtri NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtri .
* << Fim da inclusão
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlii /
v_tot_ii ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'COFINS'
AND NOT v_tot_cofins IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtripiscofi NE '3' AND
itab_zycit100a-codregtripiscofi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtripiscofi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlcofins /
v_tot_cofins ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'PIS'
AND NOT v_tot_pis IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit100a-codregtripiscofi NE '3' AND
itab_zycit100a-codregtripiscofi NE '5'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
NOT '356' CA itab_zycit100a-codregtripiscofi .
* << Fim da inclusão
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlpis /
v_tot_pis ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSE.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
itab_zycit036_aux-vlreal = itab_zycit100a-vl_sisco.
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.
itab_zycit036_aux-vlreal = itab_despesa-netpr *
itab_zycit003-ntgew / v_tpeso.
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_despesa-netpr.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ELSE. "IF itab_zycit039-vlreal EQ 'X'.
CLEAR /pws/zycit020.
SELECT SINGLE * FROM /pws/zycit020 WHERE
regio = adrc-region AND
codigo = /pws/zycit019-codigo AND
baseicms EQ 'X' AND
land1 EQ t001-land1.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycit020 WHERE
regio = space AND
codigo = /pws/zycit019-codigo AND
baseicms EQ 'X' AND
land1 EQ t001-land1.
ENDIF.
IF /pws/zycit020-baseicms EQ 'X'.
...
...
READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF v_line_ac <> v_line_rateio.
IF NOT /pws/zycit085-ukursseg IS INITIAL AND
NOT itab_zycit100a-vlseg IS INITIAL.
v_vlseg = itab_zycit100a-vlseg * v_taxa_usd
/ /pws/zycit085-ukursseg.
MOVE v_vlseg TO it_desp-vlseg.
* Ajuste para moeda difernte do padrão de duas casa decimais
" Transforma valor da moeda de acordo com casas decimais
SELECT SINGLE * FROM tcurx
WHERE currkey = /pws/zycit085-waersseg.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
it_desp-vlseg = it_desp-vlseg * ( 10 ** ( tcurx-currdec - 2 ) ).
v_ac_seg = v_ac_seg + it_desp-vlseg.
ENDIF.
IF NOT /pws/zycit085-ukursfre IS INITIAL AND
NOT itab_zycit100a-vlfre IS INITIAL.
WHERE nrseqce = /pws/zycit085-nrbl.
it_desp-vlfre = itab_zycit100a-vlfre / /pws/zycit085-ukursfre.
* Ajuste para moeda difernte do padrão de duas casa decimais
" Transforma valor da moeda de acordo com casas decimais
SELECT SINGLE * FROM tcurx
WHERE currkey = /pws/zycit093-waersfre.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
it_desp-vlfre = it_desp-vlfre * ( 10 ** ( tcurx-currdec - 2 ) ).
v_ac_fre = v_ac_fre + it_desp-vlfre.
ENDIF.
vl_imp = itab_zycit100a-vlii.
vltot_ii = vltot_ii + vl_imp.
vl_ii = vl_ii + itab_zycit100a-vlii.
vl_imp = itab_zycit100a-vlipi.
vltot_ipi = vltot_ipi + vl_imp.
vl_ipi = vl_ipi + itab_zycit100a-vlipi.
IF itab_zycit100a-icms_dif IS INITIAL. "ICMS Diferido não
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF ( /pws/zycit085-tpdi EQ 'N' AND
NOT '356' CA itab_zycit100a-codregtriicms ) OR
( /pws/zycit085-tpdi EQ 'S' AND
NOT '356' CA itab_zycit100a-codregtri ).
* << Fim da inclusão
vl_imp = itab_zycit100a-vlicms.
vltot_icms = vltot_icms + vl_imp.
vl_icms = vl_icms + itab_zycit100a-vlicms.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
endif.
* << Fim da inclusão
vl_imp = itab_zycit100a-vlpis.
vltot_pis = vltot_pis + vl_imp.
vl_pis = vl_pis + itab_zycit100a-vlpis.
vl_imp = itab_zycit100a-vlcofins.
vltot_cofins = vltot_cofins + vl_imp.
vl_cofins = vl_cofins + itab_zycit100a-vlcofins.
ELSE.
IF sy-subrc = 0.
IF NOT /pws/zycit085-vlseg IS INITIAL.
it_desp-vlseg = /pws/zycit085-vlseg - v_ac_seg.
ENDIF.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
IF NOT /pws/zycit093-vlfre IS INITIAL.
it_desp-vlfre = /pws/zycit093-vlfre - v_ac_fre.
ENDIF.
ENDIF.
vl_ii = vl_ii + itab_zycit100a-vlii .
vl_ipi = vl_ipi + itab_zycit100a-vlipi .
* vl_icms = vl_icms + itab_zycit100a-vlicms .
vl_pis = vl_pis + itab_zycit100a-vlpis .
vl_cofins = vl_cofins + itab_zycit100a-vlcofins.
itab_zycit100a-vlii = vl_ii - vltot_ii .
itab_zycit100a-vlipi = vl_ipi - vltot_ipi .
* itab_zycit100a-vlicms = vl_icms - vltot_icms .
itab_zycit100a-vlpis = vl_pis - vltot_pis .
itab_zycit100a-vlcofins = vl_cofins - vltot_cofins.
IF itab_zycit100a-icms_dif IS INITIAL. "ICMS Diferido não
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF not ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
IF ( /pws/zycit085-tpdi EQ 'N' AND
NOT '356' CA itab_zycit100a-codregtriicms ) OR
( /pws/zycit085-tpdi EQ 'S' AND
NOT '356' CA itab_zycit100a-codregtri ).
* << Fim da inclusão
vl_icms = vl_icms + itab_zycit100a-vlicms.
itab_zycit100a-vlicms = vl_icms - vltot_icms.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
endif.
ENDIF.
v_ac_fre = 0.
v_ac_seg = 0.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF sy-subrc NE 0.
MESSAGE e120.
ENDIF.
IF /pws/zycit031-inco1_ci EQ 'C&F' OR
/pws/zycit031-inco1_ci EQ 'CIF'.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
IF sy-subrc EQ 0 .
IF NOT /pws/zycit093-ternacion IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
PERFORM trata_decimais USING /pws/zycit093-waersfre
CHANGING /pws/zycit093-ternacion.
* << Fim da inclusão
v_ternacion = /pws/zycit093-ternacion.
IF /pws/zycie085-dttax IS INITIAL.
/pws/zycie085-dttax = /pws/zycit085-dttax.
ENDIF.
IF sy-subrc = 0 .
IF /pws/zycit093-waersfre = /pws/zycbt007-waersb.
IF NOT v_ntgew_tot IS INITIAL.
v_ternacion = ( v_ternacion * itab_zycit003-ntgew
/ v_ntgew_tot ).
ENDIF.
...
...
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049_a-tpdesp.
IF itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049_a-waers NE /pws/zycbt007-waersb.
* >> Início da inclusão: FORM SELECIONA_DESPESAS
perform trata_decimais using itab_zycit049_A-waers
itab_zycit049_a-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_a-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_a-vldp = itab_zycit049_a-vldp *
v_taxa_desp.
itab_zycit049_a-waers = /pws/zycbt007-waersb.
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.
...
...
ELSE.
p_taxa = '1'.
ENDIF.
ENDIF.
ENDFORM.
FORM atualiza_icms_unitario.
SELECT SINGLE * FROM /pws/zycit100
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
IF sy-subrc EQ 0.
SELECT * UP TO 1 ROWS FROM /pws/zycit085
WHERE nrseqdi = /pws/zycit100-nrseqdi.
ENDSELECT.
ENDIF.
if /pws/zycit085-tpdi eq 'N'.
* << Fim da inclusão
IF NOT /pws/zycit100-vlicms IS INITIAL AND
NOT /pws/zycit100-icms_dif = 'X'
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
AND ( NOT /pws/zycit100-codregtriicms EQ '5' OR
NOT /pws/zycit100-codregtriicms EQ ' ' )
AND NOT /pws/zycit100-codregtri EQ '6'
or ( /pws/zycit100-codregtriicms EQ '4' ).
IF /pws/zycit062-tred IS INITIAL.
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* 100 ) / itab_zycit003-basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
AND NOT ' 5' ca /pws/zycit100-codregtriicms
AND NOT /pws/zycit100-codregtri EQ '6'.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
else.
if /pws/zycit100-codregtri ne '5' and
/pws/zycit100-codregtri ne '6'.
* << Fim da inclusão
IF /pws/zycit062-tred IS INITIAL.
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
itab_zycit042-netpr = itab_zycit042-netpr +
( ( /pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* << Fim da inclusão
* 100 ) / itab_zycit003-basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
* >> Início da inclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
endif.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM ATUALIZA_ICMS_UNITARIO
ENDIF.
* << Fim da exclusão
ENDFORM.
FORM bi_fb08.
CHECK NOT /pws/zycie041a-belnr_f_02_c IS INITIAL.
PERFORM clear_date_batch.
it_zycbe033-tcode = 'FB08'.
it_zycbe033-tabela = text-014.
...
...
it_zycee007-taxval2 = itab_zycit036-vlreal.
ELSE.
CLEAR it_zycee007-taxval2.
ENDIF.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
CASE itab_zycit033-tribipi.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-base2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-base2 = it_zycee007-base2 - itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-base2 = it_zycee007-base2 +
it_zycee007-taxval.
ENDIF.
IF itab_zycit100-codregtriicms EQ '3'.
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-p_excbas = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-p_excbas = it_zycee007-p_excbas -
itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
CLEAR it_zycee007-taxval2.
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-p_excbas = it_zycee007-p_excbas +
it_zycee007-taxval.
IF itab_zycit100-codregtriipi = '1' .
it_zycee007-p_excbas = it_zycee007-p_excbas +
itab_zycit100-vlipi.
ENDIF.
ENDIF.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseipi.
it_zycee007-othbas2 = v_montante1.
* >> Início da exclusão: FORM ITENS_NFNEW
IF ( /pws/zycit001-tpdecl = 'DSI' AND
/pws/zycit001-regime = '09' ).
it_zycee007-othbas2 = it_zycee007-othbas2 - itab_zycit100-vlii.
ENDIF.
* << Fim da exclusão
IF /pws/zycit001-meioemba = 'PS'.
it_zycee007-othbas2 = it_zycee007-othbas2 +
it_zycee007-taxval.
ENDIF.
IF itab_zycit100-codregtriicms EQ '3'.
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
ENDCASE.
DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.
SELECT * FROM /pws/zycit398
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
PERFORM entra_despesa USING it_desp 'FRETEI' it_desp-vlfre
/pws/zycit093-waersfre 0 CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING itab_zycit036-vlreal.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit100-codregtri NE '3' AND
/pws/zycit100-codregtri NE '5' or
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
IF not '356' ca /pws/zycit100-codregtri or
* << Fim da inclusão
( /pws/zycit100-codregtri NE ' ' and
/pws/zycit100-codregtri EQ '1' ).
PERFORM entra_despesa USING it_desp 'II' it_desp-vlii
/pws/zycbt007-waersb
it_desp-advalii CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit100-codregtriipi NE '1' AND
/pws/zycit100-codregtriipi NE '5' or
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
IF not '156' ca /pws/zycit100-codregtriipi or
* << Fim da inclusão
( /pws/zycit100-codregtriipi EQ ' ' and
/pws/zycit100-CODREGTRI EQ '1' ).
PERFORM entra_despesa USING it_desp 'IPI' it_desp-vlipi
/pws/zycbt007-waersb
it_desp-advalipi CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit100-codregtriicms NE '3' AND
/pws/zycit100-codregtriicms NE '5' AND
/pws/zycit100-codregtri NE '6' or
( /pws/zycit100-codregtriicms EQ ' ' and
/pws/zycit100-CODREGTRI EQ '1' ).
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
if ( /pws/zycit085-tpdi eq 'N' and
not '356' ca /pws/zycit100-codregtriicms ) or
( /pws/zycit085-tpdi eq 'S' and
/pws/zycit100-codregtri NE '6' ) .
* << Fim da inclusão
PERFORM entra_despesa USING it_desp 'ICMS' it_desp-vlicms
/pws/zycbt007-waersb
it_desp-aliqicms CHANGING wa_036.
MOVE wa_036 TO itab_zycit036.
itab_zycit036-usernamec = sy-uname.
itab_zycit036-dtuserc = sy-datum.
itab_zycit036-hruserc = sy-uzeit.
APPEND itab_zycit036.
ENDIF.
* >> Início da exclusão: FORM CRIA_DESPESAS
IF /pws/zycit100-codregtripiscofi NE '3' AND
/pws/zycit100-codregtripiscofi NE '5' or
* << Fim da exclusão
* >> Início da inclusão: FORM CRIA_DESPESAS
IF not '356' ca /pws/zycit100-codregtripiscofi or
* << Fim da inclusão
( /pws/zycit100-codregtripiscofi NE ' ' and
/pws/zycit100-codregtripiscofi EQ '1' ).
PERFORM entra_despesa USING it_desp 'PIS' it_desp-vlpis
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
PERFORM entra_despesa USING it_desp 'COFINS' it_desp-vlcofins
/pws/zycbt007-waersb v_aliq CHANGING wa_036.
MOVE wa_036 TO itab_zycit036. APPEND itab_zycit036.
ENDIF.
ENDLOOP.
...