Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 22/10/2008 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:01:19
Descrição da Nota: CÁLCULO DAS ALÍQUOTAS PARA PROCESSO DE ADMISSÃO TEMPORÁRIA
Sintoma
Cálculo das alíquotas para processo de admissão temporária
Solução
Atualização do programa da DI para que o sistema efetue o cálculo de alíquota proporcional para
processos de admissão temporária.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07466 Data: 22/10/2008 Hora: 14:28:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07466
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00007
Agrupamento : 00070
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01194 - 00001 - 6.0 - 00023 - SELEÇÃO DE ALÍQUOTAS DE PIS E COFINS POR REGIME
02067 - 00002 - 6.0 - 00024 - RATEIO DE ICMS NA NF INCORRETO, NÃO CONSIDERANDO SUSPENSÃO DE IMP
03064 - 00003 - 6.0 - 00026 - EM PROCESSOS COM AC ISENÇÃO, DI DEVE PROPOR RECOLHIMENTO INTEGRAL
03303 - 00004 - 7.0 - 00001 - VERIFICAR A TABELA ZYCIT062 PARA TRATAR NÃO INCIDÊNCIA NA DI
03671 - 00005 - 7.0 - 00001 - ERRO NOS CÁLCULOS DA ADIÇÃO DA DI, DEPENDENDO DOS REGIMES TRIBUTÁ
04571 - 00006 - 7.0 - 00003 - BASE DE CÁLCULO DE ICMS COM PIS E COFINS SUSPENSO ALIQ ESPECÌFICA
05131 - 00007 - 7.0 - 00003 - SISTEMA NÃO RESPEITA REDUÇÃO NA BASE DO ICMS, AO INFORMAR A REDUÇ
05335 - 00008 - 7.0 - 00003 - QUANDO PREENCHEMOS PORCENTAGEM DE ACORDO, NÃO RECALCULA IMPOSTOS
05386 - 00009 - 7.0 - 00003 - DESENVOLVIMENTO ADMISSÃO TEMPORÁRIA ICMS, PIS E COFINS
06751 - 00010 - 7.0 - 00005 - ESTÁ COLOCANDO O ICMS ISENTO DENTRO DO TOTAL DA NOTA.
06796 - 00011 - 7.0 - 00006 - REGIME 12 NO EMBARQUE NÃO APARECE A ABA ADIMISSÃO TEMPORÁRIA
07026 - 00012 - 7.0 - 00006 - ARREDONDAMENTO DA NOTA FISCAL VALORES DE IMPOSTOS X BASE DE CÁLCU
07075 - 00013 - 7.0 - 00006 - MELHORIA EM CÓDIGO DA DI, CORRIGINDO ERROS DA VERIFICAÇÃO AMPLIAD
07414 - 00014 - 7.0 - 00007 - ESTÁ RATEANDO A DESPESA ANTIDUMPING POR ITENS SEM O ANTIDUMP.
07509 - 00015 - 7.0 - 00007 - NÃO GRAVA O VALOR DE PIS E COFINS NA TABELA /PWS/ZYCIT100
----------------------------------------------------------------------------------------------------
CÁLCULO DAS ALÍQUOTAS PARA PROCESSO DE ADMISSÃO TEMPORÁRIA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CÁLCULO - ALÍQUOTAS - ADMISSÃO TEMPORÁRIA
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
***********
*A nota 7509 deverá ser aplicada após essa nota.
***********
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
LOOP AT itab_zycit100.
MOVE itab_zycit100 TO itab_zycit100a.
CLEAR itab_zycit100a-vl_sisco.
append itab_zycit100a.
ENDLOOP.
* >> Início da inclusão:
ELSEIF v_programa = 'DI' .
LOOP AT itab_zycit100.
READ TABLE itab_zycit100a WITH KEY nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp .
IF sy-subrc = '0'.
move-corresponding itab_zycit100 to itab_zycit100a.
CLEAR itab_zycit100a-vl_sisco.
MODIFY itab_zycit100a INDEX sy-tabix.
ENDIF.
ENDLOOP.
* << Fim da inclusão
ENDIF.
CLEAR: v_tfrete,
v_ori.
SELECT SINGLE land1 FROM t001 INTO t001-land1
WHERE bukrs EQ /pws/zycbt007-bukrs.
SELECT * FROM /pws/zycit140
INTO TABLE itab_zycit140_aux
WHERE codmod EQ 'D'
AND codigo EQ 'FRETEI'
AND custo EQ 'X'
AND land1 EQ t001-land1.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
MOVE-CORRESPONDING /pws/zycie003 TO itab_it.
MOVE-CORRESPONDING /pws/zycie100a TO itab_it.
ENDIF.
* >> Início da inclusão: FORM SAVE_DATA_ITEM
READ TABLE itab_zycit100_temp WITH KEY
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc = 0 AND NOT itab_zycit100_temp-adicao IS INITIAL.
itab_it-adicao = itab_zycit100_temp-adicao .
ENDIF.
* << Fim da inclusão
IF NOT /pws/zycie003-qtd_itend IS INITIAL.
MOVE /pws/zycie003-qtd_itend TO itab_it-qtd_iten.
ENDIF.
...
...
FORM load_iii USING p_tipo.
IF /pws/zycie093-meiotransp = 'PS'
AND /pws/zycie085-tpdi EQ 'S'
AND /pws/zycie003-advalii IS INITIAL.
/pws/zycie003-advalii = '60'.
ENDIF.
t_iibas = t_ivadu.
* >> Início da inclusão: FORM LOAD_III
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
a_iicalc = ( ( /pws/zycie003-advalii / 100 ) * t_iibas ).
v_iiadm = ( ( /pws/zycie003-aliqii / 100 ) * t_iibas ).
ELSE.
* << Fim da inclusão
a_iicalc = ( ( /pws/zycie003-advalii / 100 ) * t_iibas ).
* >> Início da inclusão: FORM LOAD_III
ENDIF.
* << Fim da inclusão
IF NOT /pws/zycie100a-reduzida IS INITIAL.
a_iiredu = ( ( /pws/zycie100a-reduzida / 100 ) * t_iibas ).
ELSE.
CLEAR: a_iiredu.
ENDIF.
...
...
FORM load_iipi USING p_tipo.
DATA: v_casasd TYPE /pws/zycit036-vlreal.
IF /pws/zycit062-arbase EQ 'X'.
IF '56' CA itab_it-codregtri .
v_casasd = itab_it-ii_calculado.
* >> Início da inclusão: FORM LOAD_IIPI
ELSE.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_casasd = v_iiadm.
* << Fim da inclusão
ELSE.
v_casasd = t_iirec.
* >> Início da inclusão: FORM LOAD_IIPI
ENDIF.
* << Fim da inclusão
ENDIF.
t_ipibas = ( v_ivadud + v_casasd ).
ELSE.
IF '56' CA itab_it-codregtri .
t_ipibas = ( t_ivadu + itab_it-ii_calculado ).
ELSE.
t_ipibas = ( t_ivadu + t_iirec ).
ENDIF.
ENDIF.
* >> Início da inclusão: FORM LOAD_IIPI
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
a_ipidevi = ( ( /pws/zycie003-advalipi / 100 ) * t_ipibas ) .
v_ipiadm = ( ( /pws/zycie003-aliqipi / 100 ) * t_ipibas ).
ELSE.
* << Fim da inclusão
a_ipidevi = ( ( /pws/zycie003-advalipi / 100 ) * t_ipibas ).
* >> Início da inclusão: FORM LOAD_IIPI
ENDIF.
* << Fim da inclusão
IF v_dit = 'N'.
IF /pws/zycie100a-codregtriipi NE '1' AND
/pws/zycie003-advalipi IS INITIAL.
a_ipidevi = ( /pws/zycie100a-unit_valor *
/pws/zycie100a-unit_qtde ).
ENDIF.
...
...
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie085-bukrs.
SELECT SINGLE * FROM /pws/zycit000 INTO /pws/zycit000
WHERE land1 EQ t001-land1.
PERFORM atualiza_peso_desemb.
* >> Início da inclusão: FORM LOADING_ALL
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
IF itab_zycit374[] IS INITIAL AND
NOT itab_it[] IS INITIAL.
SELECT * FROM /pws/zycit374
INTO TABLE itab_zycit374
FOR ALL ENTRIES IN itab_it
WHERE nrseq = itab_it-nrseq
AND ebeln = itab_it-ebeln
AND ebelp = itab_it-ebelp.
ENDIF.
ENDIF.
* << Fim da inclusão
PERFORM lock_record.
v_acto = 'A'.
v_txtdisplay = space.
v_txtsave = 'X'.
...
...
itab_it-adicao = itab_it_aux-adicao = v_adic.
MODIFY itab_it TRANSPORTING adicao
WHERE ebeln EQ itab_it_aux-ebeln
AND ebelp EQ itab_it_aux-ebelp.
* >> Início da exclusão: FORM ADIC_LIST
MODIFY itab_it_aux INDEX sy-tabix TRANSPORTING adicao.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LIST
MODIFY itab_it_aux INDEX v_tabix TRANSPORTING adicao.
* << Fim da inclusão
it_adi-adicao = v_adic.
it_adi-nrseqdi = /pws/zycie085-nrseqdi.
it_adi-nrseq = itab_it_aux-nrseq .
it_adi-ebeln = itab_it_aux-ebeln .
it_adi-ebelp = itab_it_aux-ebelp .
it_adi-nrseqli = itab_it_aux-nrseqli .
it_adi-j_1bnbm = itab_it_aux-j_1bnbm .
it_adi-valor = itab_it_aux-vlreal .
it_adi-nrseqd = itab_it_aux-nrseqd .
CONCATENATE /pws/zycie085-identify '-' it_adi-adicao
INTO it_adi-identify.
APPEND it_adi.
READ TABLE itab_zycit100_temp WITH KEY nrseq = itab_it_aux-nrseq
ebeln = itab_it_aux-ebeln
ebelp = itab_it_aux-ebelp.
IF sy-subrc = 0.
MOVE itab_it_aux-adicao TO itab_zycit100_temp-adicao.
* >> Início da exclusão: FORM ADIC_LIST
MODIFY itab_zycit100_temp INDEX v_tabix TRANSPORTING adicao.
* << Fim da exclusão
* >> Início da inclusão: FORM ADIC_LIST
MODIFY itab_zycit100_temp TRANSPORTING adicao WHERE
nrseq = itab_it_aux-nrseq AND
ebeln = itab_it_aux-ebeln AND
ebelp = itab_it_aux-ebelp.
* << Fim da inclusão
ENDIF.
ENDLOOP.
...
...
FORM fill_itabit.
* >> Início da exclusão: FORM FILL_ITABIT
DATA: BEGIN OF itab_zycit374 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit374.
DATA END OF itab_zycit374.
* << Fim da exclusão
...
...
SELECT SINGLE * FROM /pws/zycit406 INTO wa_zycit406
WHERE pais EQ 'BR'
AND matnr EQ v_matnr
AND tributos EQ 'PIS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit406-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalpis = wa_zycit406-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig = itab_it-advalpis = wa_zycit406-aliquotas.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405
WHERE pais EQ 'BR'
AND ncm EQ itab_it-j_1bnbm
AND tributos EQ 'PIS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit405-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalpis = wa_zycit405-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig = itab_it-advalpis =
wa_zycit405-aliquotas.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407
WHERE pais EQ 'BR'
AND tributos EQ 'PIS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit407-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalpis = wa_zycit407-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig = itab_it-advalpis =
wa_zycit407-aliquotas.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredpis IS INITIAL.
SELECT SINGLE * FROM /pws/zycit406 INTO wa_zycit406
WHERE pais EQ 'BR'
AND matnr EQ v_matnr
AND tributos EQ 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit406-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalpis = wa_zycit406-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig = itab_it-advalpis = wa_zycit406-aliquotas.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405
WHERE pais EQ 'BR'
AND ncm EQ itab_it-j_1bnbm
AND tributos EQ 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit405-basred .
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig =
* << Fim da inclusão
itab_it-advalpis = wa_zycit405-aliquotas.
ELSE.
SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407
WHERE pais EQ 'BR'
AND tributos EQ 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit407-basred .
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-pis_alorig =
* << Fim da inclusão
itab_it-advalpis = wa_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
READ TABLE itab_zycit374 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0
AND NOT itab_zycit374-tp_vida_util IS INITIAL.
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalpis = itab_it-advalpis *
( 1 - ( ( 12 * itab_zycit374-tp_vida_util -
itab_zycit374-tp_perman )
/ ( 12 * itab_zycit374-tp_vida_util ) ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-advalpis =
( ( ( itab_it-advalpis / 100 ) * itab_zycit374-tp_perman *
( 1 + ( itab_it-aliqii / 100 ) + ( itab_it-aliqipi / 100 ) ) ) /
( 12 * itab_zycit374-tp_vida_util +
( ( ( itab_it-aliqii / 100 ) + ( itab_it-aliqipi / 100 ) ) *
itab_zycit374-tp_perman ) ) ) * 100 .
* << Fim da inclusão
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
SELECT SINGLE * FROM /pws/zycit406 INTO wa_zycit406
WHERE pais EQ 'BR'
AND matnr EQ v_matnr
AND tributos EQ 'COFINS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit406-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalcofins = wa_zycit406-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig =
itab_it-advalcofins = wa_zycit406-aliquotas.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405
WHERE pais EQ 'BR'
AND ncm EQ itab_it-j_1bnbm
AND tributos EQ 'COFINS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit405-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalcofins = wa_zycit405-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig = itab_it-advalcofins =
wa_zycit405-aliquotas.
* << Fim da inclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407
WHERE pais EQ 'BR'
AND tributos EQ 'COFINS'
AND regime EQ itab_zycit001-regime.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit407-basred .
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalcofins = wa_zycit407-aliquotas.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig = itab_it-advalcofins =
wa_zycit407-aliquotas.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_it-basredcof IS INITIAL.
SELECT SINGLE * FROM /pws/zycit406 INTO wa_zycit406
WHERE pais EQ 'BR'
AND matnr EQ v_matnr
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit406-basred .
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig =
* << Fim da inclusão
itab_it-advalcofins = wa_zycit406-aliquotas.
ELSE.
SELECT SINGLE * FROM /pws/zycit405 INTO wa_zycit405
WHERE pais EQ 'BR'
AND ncm EQ itab_it-j_1bnbm
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit405-basred .
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig =
* << Fim da inclusão
itab_it-advalcofins = wa_zycit405-aliquotas.
ELSE.
SELECT SINGLE * FROM /pws/zycit407 INTO wa_zycit407
WHERE pais EQ 'BR'
AND tributos EQ 'COFINS'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit407-basred .
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-cof_alorig =
* << Fim da inclusão
itab_it-advalcofins = wa_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
READ TABLE itab_zycit374 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc EQ 0
AND NOT itab_zycit374-tp_vida_util IS INITIAL.
* >> Início da exclusão: FORM FILL_ITABIT
itab_it-advalcofins = itab_it-advalcofins *
( 1 - ( ( 12 * itab_zycit374-tp_vida_util -
itab_zycit374-tp_perman )
/ ( 12 * itab_zycit374-tp_vida_util ) ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
itab_it-advalcofins =
( ( ( itab_it-advalcofins / 100 ) * itab_zycit374-tp_perman *
( 1 + ( itab_it-aliqii / 100 ) + ( itab_it-aliqipi / 100 ) ) ) /
( 12 * itab_zycit374-tp_vida_util +
( ( ( itab_it-aliqii / 100 ) + ( itab_it-aliqipi / 100 ) ) *
itab_zycit374-tp_perman ) ) ) * 100 .
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_it-pis_alorig IS INITIAL.
itab_it-pis_alorig = itab_it-advalpis.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_it-cof_alorig IS INITIAL.
itab_it-cof_alorig = itab_it-advalcofins .
ENDIF.
* << Fim da inclusão
READ TABLE itab_zycit078 WITH KEY
nrseqli = itab_zycit003-nrseqli.
IF sy-subrc EQ 0.
itab_it-codfunleg = itab_zycit078-codfunleg .
itab_it-codregtri = itab_zycit078-codregtri .
ENDIF.
IF sy-tcode = '/PWS/ZYCI023_C'.
IF itab_it-codregtriicms IS INITIAL.
IF itab_it-modalidade NE 'I'.
itab_it-codregtriicms = itab_it-codregtri.
ELSE.
itab_it-codregtriicms = '1'.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF .
PERFORM text_item_fill.
* << Fim da exclusão
IF ( itab_zycit001-regime = '05' OR
itab_zycit001-regime = '12' ) AND
itab_zycit001-tpdecl = 'DI'.
itab_it-codregtri = '5'.
itab_it-codregtripiscofi = '5'.
itab_it-codregtriipi = '5'.
itab_it-codregtriicms = '5'.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF .
PERFORM text_item_fill.
* << Fim da inclusão
IF v_sub EQ 0.
MODIFY itab_it INDEX v_idx.
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.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
IF v_nr_itens GT 1.
t_ivdesp = t_ivdesp + v_desp .
ELSE.
t_ivdesp = t_ivdesp + v_sisco3.
ENDIF.
IF NOT /pws/zycie100a-reduzida IS INITIAL.
v_advii = ( /pws/zycie100a-reduzida / 100 ).
ELSE.
IF NOT /pws/zycie100a-acordo IS INITIAL.
v_advii = ( /pws/zycie100a-acordorate / 100 ).
* >> Início da inclusão: FORM LOAD_IICMS
ELSE.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advii = ( /pws/zycie003-aliqii / 100 ).
* << Fim da inclusão
ELSE.
v_advii = ( /pws/zycie003-advalii / 100 ).
ENDIF.
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
IF NOT /pws/zycie100a-reduzidaipi IS INITIAL.
v_advipi = ( /pws/zycie100a-reduzidaipi / 100 ).
* >> Início da inclusão: FORM LOAD_IICMS
ELSE.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advipi = ( /pws/zycie003-aliqipi / 100 ).
* << Fim da inclusão
ELSE.
v_advipi = ( /pws/zycie003-advalipi / 100 ).
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
IF /pws/zycit062-bs_pis_cof IS INITIAL.
IF NOT /pws/zycie003-basred IS INITIAL AND
NOT /pws/zycie003-basred EQ '100'.
* >> Início da exclusão: FORM LOAD_IICMS
v_advicms = ( ( /pws/zycie003-advalicms / 100 ) *
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advicms = ( ( /pws/zycie003-aliqicms / 100 ) *
( /pws/zycie003-basred / 100 ) ) .
ELSE.
v_advicms = ( ( /pws/zycie003-aliqicms / 100 ) *
* << Fim da inclusão
( /pws/zycie003-basred / 100 ) ) .
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
v_trunc = v_advicms.
v_advicms = v_trunc.
* >> Início da inclusão: FORM LOAD_IICMS
ELSE.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advicms = ( /pws/zycie003-aliqicms / 100 ).
* << Fim da inclusão
ELSE.
v_advicms = ( /pws/zycie003-advalicms / 100 ).
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
ELSE.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advicms = ( /pws/zycie003-aliqicms / 100 ).
* << Fim da inclusão
ELSE.
v_advicms = ( /pws/zycie003-advalicms / 100 ).
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advpis = ( /pws/zycie100a-pis_alorig / 100 ).
v_advcof = ( /pws/zycie100a-cof_alorig / 100 ).
ELSE.
* << Fim da inclusão
v_advpis = ( /pws/zycie100a-advalpis / 100 ).
v_advcof = ( /pws/zycie100a-advalcofins / 100 ).
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
* << Fim da inclusão
...
...
* >> Início da exclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtriipi .
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtriipi.
* << Fim da inclusão
v_vlipirec = a_ipidevi.
* >> Início da exclusão: FORM LOAD_IICMS
ELSE.
v_vlipirec = t_ipirec.
* << Fim da exclusão
ENDIF.
CLEAR: v_vlpisrec , v_vlcofrec.
* >> Início da exclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtripiscofi.
v_vlpisrec = a_pisdevi.
v_vlcofrec = a_cofdevi.
ELSE.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtripiscofi OR
( itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12' ).
* << Fim da inclusão
v_vlpisrec = t_pis .
v_vlcofrec = t_cofins.
ENDIF.
e_subrc = 0.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI023'
'DI007'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DI007' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
ENDIF.
IF e_subrc EQ 0.
* >> Início da inclusão: FORM LOAD_IICMS
IF ( NOT itab_zycit001-regime EQ '05' AND
NOT itab_zycit001-regime EQ '12' ) .
* << Fim da inclusão
IF /pws/zycit062-arbase EQ 'X'.
MOVE: v_vliirec TO v_casasd,
v_vlipirec TO v_casasd2,
t_ivdesp TO v_casasd3,
v_vlcofrec TO v_casasd4,
v_vlpisrec TO v_casasd5.
t_icmsbs_d2 = t_icmsbs = ( v_ivadud + v_casasd + v_casasd2 +
v_casasd3 + v_casasd4 + v_casasd5 ) .
MOVE: a_iicalc TO v_casasd,
a_ipidevi TO v_casasd2,
...
...
ELSE.
IF '3' CA /pws/zycie100a-codregtriicms .
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 .
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
ELSE.
PERFORM calcula_admtemp .
* << Fim da inclusão
ENDIF.
ENDIF.
itab_it-vlicms = t_icms.
IF '356' CA /pws/zycie100a-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms.
ENDIF.
...
...
IF itab_zycit100[] IS INITIAL.
LOOP AT itab_it.
MOVE-CORRESPONDING itab_it TO itab_zycit100.
APPEND itab_zycit100.
ENDLOOP.
* >> Início da inclusão: FORM VISUALIZA_RATEIO
ELSE.
LOOP AT itab_it.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
IF sy-subrc = 0 .
MOVE-CORRESPONDING itab_it TO itab_zycit100.
MODIFY itab_zycit100 INDEX sy-tabix.
ENDIF.
ENDLOOP.
* << Fim da inclusão
ENDIF.
MOVE itab_zycit116[] TO itab_adicao[].
EXPORT itab_adicao TO MEMORY ID 'ADI01'.
CALL FUNCTION '/PWS/ZYCI_RATEIO_CUSTO'
EXPORTING
v_programa = v_programa
v_visualiza = v_visualiza
v_bukrs = /pws/zycie085-bukrs
/pws/zycie085 = /pws/zycie085
IMPORTING
v_resposta = v_resp
TABLES
itab_zycit036 = itab_zycit036
itab_despesa = itab_desp_funcao
itab_zycit003 = itab_itens_funcao
itab_zycit100 = itab_zycit100.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F04
...
itab_it-basepis .
IF /pws/zycie100a-basredpis >= '100'.
/pws/zycie100a-basredpis = '0'.
ENDIF.
IF /pws/zycie100a-basredcof >= '100'.
/pws/zycie100a-basredcof = '0'.
ENDIF.
IF /pws/zycie100a-codregtri EQ '4'.
v_advii = /pws/zycie100a-reduzida / 100 .
IF /pws/zycie100a-reduzida IS INITIAL.
* >> Início da inclusão: FORM MP_NOVA
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advii = /pws/zycie003-aliqii / 100 .
ELSE.
* << Fim da inclusão
v_advii = /pws/zycie003-advalii / 100 .
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ENDIF.
ELSEIF /pws/zycie100a-codregtri EQ '3' .
CLEAR v_advii.
ENDIF.
IF /pws/zycie100a-codregtriipi EQ '2'.
v_advipi = /pws/zycie100a-reduzidaipi / 100.
IF /pws/zycie100a-reduzidaipi IS INITIAL.
* >> Início da inclusão: FORM MP_NOVA
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advipi = /pws/zycie003-aliqipi / 100.
ELSE.
* << Fim da inclusão
v_advipi = /pws/zycie003-advalipi / 100.
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ENDIF.
ELSEIF /pws/zycie100a-codregtriipi EQ '4' AND
/pws/zycie003-advalipi IS INITIAL.
IF NOT itab_it-baseipi IS INITIAL.
v_advipi = itab_it-ipi_recolher / itab_it-baseipi .
ENDIF.
ELSEIF /pws/zycie100a-codregtriipi EQ '1' .
CLEAR v_advipi .
ENDIF.
CASE /pws/zycie100a-codregtripiscofi.
WHEN '4'.
IF /pws/zycie100a-basredpis IS INITIAL OR
/pws/zycie100a-basredpis GT '100' .
* >> Início da inclusão: FORM MP_NOVA
IF ( itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12' ) AND
NOT /pws/zycie100a-pis_alorig IS INITIAL.
v_pisred = ( /pws/zycie100a-pis_alorig / 100 ).
ELSE.
* << Fim da inclusão
v_pisred = ( /pws/zycie100a-advalpis / 100 ).
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ELSE.
v_pisred = ( /pws/zycie100a-basredpis / 100 ).
ENDIF.
IF /pws/zycie100a-basredcof IS INITIAL OR
/pws/zycie100a-basredcof GT '100'.
* >> Início da inclusão: FORM MP_NOVA
IF ( itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12' ) AND
NOT /pws/zycie100a-cof_alorig IS INITIAL.
v_cofred = ( /pws/zycie100a-cof_alorig / 100 ).
ELSE.
* << Fim da inclusão
v_cofred = ( /pws/zycie100a-advalcofins / 100 ).
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ELSE.
v_cofred = ( /pws/zycie100a-basredcof / 100 ).
ENDIF.
WHEN '1' OR '3' OR '5' OR '6' .
IF /pws/zycie100a-aliqpis IS INITIAL.
* >> Início da inclusão: FORM MP_NOVA
IF ( itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12' ) AND
NOT /pws/zycie100a-pis_alorig IS INITIAL.
v_pisred = ( /pws/zycie100a-pis_alorig / 100 ).
ELSE.
* << Fim da inclusão
v_pisred = ( /pws/zycie100a-advalpis / 100 ).
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ELSE.
v_pisred = ( /pws/zycie100a-aliqpis / 100 ).
ENDIF.
IF /pws/zycie100a-aliqcof IS INITIAL.
* >> Início da inclusão: FORM MP_NOVA
IF ( itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12' ) AND
NOT /pws/zycie100a-cof_alorig IS INITIAL.
v_cofred = ( /pws/zycie100a-cof_alorig / 100 ).
ELSE.
* << Fim da inclusão
v_cofred = ( /pws/zycie100a-advalcofins / 100 ).
* >> Início da inclusão: FORM MP_NOVA
ENDIF.
* << Fim da inclusão
ELSE.
v_cofred = ( /pws/zycie100a-aliqcof / 100 ).
ENDIF.
ENDCASE.
IF ( NOT v_pisred IS INITIAL ) OR ( NOT v_cofred IS INITIAL ) .
v_advpis = v_pisred.
...
...
FORM calc_piscofins.
CLEAR: a_piscalc, a_pisredu, a_pisdevi, a_pisrec,
a_cofcalc, a_cofredu, a_cofdevi, a_cofrec.
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
READ TABLE itab_zycit374 WITH KEY
nrseq = itab_it-nrseq
ebeln = itab_it-ebeln
ebelp = itab_it-ebelp.
ENDIF.
* << Fim da inclusão
CASE /pws/zycie100a-codregtripiscofi.
...
...
WHEN '4'.
IF /pws/zycie100a-basredpis IS INITIAL OR
/pws/zycie100a-basredpis GT '100' .
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_pisadm = t_pis = a_pisdevi = a_pisredu =
( /pws/zycie100a-pis_alorig / 100 ) *
/pws/zycie100a-basepis.
ELSE.
* << Fim da inclusão
t_pis = a_pisdevi = a_pisredu =
( /pws/zycie100a-advalpis / 100 ) *
/pws/zycie100a-basepis.
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
* << Fim da inclusão
ELSE.
t_pis = a_pisdevi = a_pisredu =
( /pws/zycie100a-basredpis / 100 ) *
/pws/zycie100a-basepis.
ENDIF.
IF /pws/zycie100a-basredcof IS INITIAL OR
/pws/zycie100a-basredcof GT '100'.
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_cofadm = t_cofins = a_cofredu = a_cofdevi =
( /pws/zycie100a-cof_alorig / 100 ) *
/pws/zycie100a-basecofins.
ELSE.
* << Fim da inclusão
t_cofins = a_cofredu = a_cofdevi =
( /pws/zycie100a-advalcofins / 100 ) *
/pws/zycie100a-basecofins.
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
* << Fim da inclusão
ELSE.
t_cofins = a_cofredu = a_cofdevi =
( /pws/zycie100a-basredcof / 100 ) *
/pws/zycie100a-basecofins.
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
t_pis = ( t_pis * itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ).
t_cofins = ( t_cofins * itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_advpis = /pws/zycie100a-pis_alorig / 100 .
v_advcof = /pws/zycie100a-cof_alorig / 100 .
ELSE.
* << Fim da inclusão
v_advpis = /pws/zycie100a-advalpis / 100 .
v_advcof = /pws/zycie100a-advalcofins / 100 .
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
* << Fim da inclusão
v_calcpc = ( t_ivadu * ( ( 1 + v_advicms * ( v_advii + v_advipi *
( 1 + v_advii ) ) ) / ( ( 1 - v_advpis - v_advcof ) *
( 1 - v_advicms ) ) ) ).
a_piscalc = v_advpis * v_calcpc .
a_cofcalc = v_advcof * v_calcpc.
WHEN '2' .
CLEAR: a_piscalc, a_pisredu, a_pisdevi, a_pisrec,
a_cofcalc, a_cofredu, a_cofdevi, a_cofrec,
t_pis, t_cofins .
WHEN OTHERS.
a_piscalc = ( /pws/zycie100a-advalpis / 100 ) *
/pws/zycie100a-basepis .
a_cofcalc = ( /pws/zycie100a-advalcofins / 100 )
* /pws/zycie100a-basecofins .
IF /pws/zycie100a-aliqpis IS INITIAL.
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_pisadm = t_pis = a_pisdevi =
( ( /pws/zycie100a-pis_alorig / 100 )
* /pws/zycie100a-basepis ) .
ELSE.
* >> Fim da inclusão: FORM CALC_PISCOFINS
t_pis = a_pisdevi =
( ( /pws/zycie100a-advalpis / 100 )
* /pws/zycie100a-basepis ) .
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
* >> Fim da inclusão: FORM CALC_PISCOFINS
ELSE.
t_pis = a_pisdevi =
( ( /pws/zycie100a-aliqpis / 100 )
* /pws/zycie100a-basepis ) .
ENDIF.
IF /pws/zycie100a-aliqcof IS INITIAL.
* >> Início da inclusão: FORM CALC_PISCOFINS
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
v_cofadm = t_cofins = a_cofdevi =
( ( /pws/zycie100a-cof_alorig / 100 )
* /pws/zycie100a-basecofins ) .
ELSE.
* << Fim da inclusão
t_cofins = a_cofdevi =
( ( /pws/zycie100a-advalcofins / 100 )
* /pws/zycie100a-basecofins ) .
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
* << Fim da inclusão
ELSE.
t_cofins = a_cofdevi =
( ( /pws/zycie100a-aliqcof / 100 )
* /pws/zycie100a-basecofins ) .
* >> Início da inclusão: FORM CALC_PISCOFINS
ENDIF.
IF itab_zycit001-regime EQ '05' OR
itab_zycit001-regime EQ '12'.
t_pis = ( t_pis * itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ).
t_cofins = ( t_cofins * itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ).
* << Fim da inclusão
ENDIF.
ENDCASE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F05
...
* >> Início da inclusão
FORM calcula_admtemp.
t_icmsbspro = ( v_ivadud * ( 1 - ( 12 *
itab_zycit374-tp_vida_util - itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ) ) ) + v_vliirec +
v_vlipirec + t_ivdesp + v_vlcofrec + v_vlpisrec .
t_icmsbs_d2 = t_icmsbs = ( v_ivadud + v_iiadm + v_ipiadm +
t_ivdesp + v_pisadm + v_cofadm ) .
t_icmsx = ( 1 - v_advicms ) .
t_icmsbs = ( t_icmsbs / t_icmsx ).
IF NOT t_icmsx IS INITIAL.
t_icms = ( /pws/zycie003-aliqicms / 100 ) *
t_icmsbs.
ENDIF.
IF NOT itab_zycit374-tp_vida_util IS INITIAL.
t_icms_d2 = t_icms = ( t_icms * itab_zycit374-tp_perman ) /
( 12 * itab_zycit374-tp_vida_util ).
ENDIF.
t_icmsbs_d2 = t_icmsbs =
t_icmsbspro = ( t_icmsbspro / t_icmsx ).
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023I01
...
MODULE fill_advl INPUT.
* >> Início da inclusão: MODULE FILL_ADVL INPUT
itab_zycit100-vlantid = itab_it-vlantid =
* << Fim da inclusão
/pws/zycie100a-vlantid = s_advl.
ENDMODULE. " fill_advl INPUT
MODULE fill_adbs INPUT.
* >> Início da inclusão: MODULE FILL_ADBS INPUT
itab_zycit100-baseantid = itab_it-baseantid =
* << Fim da inclusão
/pws/zycie100a-baseantid = s_adbs.
ENDMODULE. " fill_adbs INPUT
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
* >> Início da inclusão:
TABLES /pws/zycit374.
* << Fim da inclusão
DATA: BEGIN OF COMMON PART a.
...
...
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit374 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit374.
DATA END OF itab_zycit374.
DATA: v_iiadm LIKE t_icms,
v_ipiadm LIKE t_icms,
v_icmsadm LIKE t_icms,
v_pisadm LIKE t_icms,
v_cofadm LIKE t_icms,
t_icmsbspro LIKE /pws/zycie085-vlfob.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE100A
*Acrescentados campos no fim da estrutura
Nome de campo Elem.dados Tab.verif. N CtDt Comp. Grupo
PIS_ALORIG J_1BTXRATE DEC 6
COF_ALORIG J_1BTXRATE DEC 6
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT100
*Acrescentados campos no fim da tabela
Nome de campo Elem.dados Tab.verif. N CtDt Comp. Grupo
PIS_ALORIG J_1BTXRATE DEC 6
COF_ALORIG J_1BTXRATE DEC 6