Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 05/12/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:18:55
Descrição da Nota: DESENVOLVIMENTO ADMISSÃO TEMPORÁRIA ICMS, PIS E COFINS
Sintoma
Desenvolvimento de admissão temporária para aliquota de ICMS, PIS e cofins
Solução
criar tratamento para cálculo de alíquotas de ICMS, PIS e COFINS quando processo for de admissão
temporária.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05386 Data: 05/12/2007 Hora: 10:06:12
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05386
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00024
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02272 - 00001 - 6.0 - 00025 - AO ZERAR ALIQUOTA PIS/COFINS E ENTRAR NOVAMENTE NA DI, ESTÁ PREEN
04082 - 00002 - 7.0 - 00002 - PAGAMENTO PROPORCIONAL DE IMPOSTOS PARA ADMISSÃO TEMPORARIA.
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO ADMISSÃO TEMPORÁRIA ICMS, PIS E COFINS
----------------------------------------------------------------------------------------------------
Palavras Chave:
TRATAMENTO DE ALÍQUOTAS - PIS - COFINS - ICMS
ADMISSÃO TEMPORÁRIA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI058F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
EXIT.
ENDIF.
itab_zycit003-advalii = itab_zycit003-aliqii *
( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -
/pws/zycie374-tp_perman )
/ ( 12 * /pws/zycie374-tp_vida_util ) ) ).
itab_zycit003-advalipi = itab_zycit003-aliqipi *
( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -
/pws/zycie374-tp_perman )
/ ( 12 * /pws/zycie374-tp_vida_util ) ) ).
* >> Início da inclusão: MODULE MOD_374
itab_zycit003-advalicms = itab_zycit003-aliqicms *
( 1 - ( ( 12 * /pws/zycie374-tp_vida_util -
/pws/zycie374-tp_perman )
/ ( 12 * /pws/zycie374-tp_vida_util ) ) ).
* << Fim da inclusão
ELSE.
SELECT SINGLE nrseq FROM /pws/zycit100
INTO itab_zycit003-nrseq
WHERE nrseq EQ /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
CLEAR: itab_zycit003.
ENDIF.
* >> Início da exclusão: MODULE MOD_374
MODIFY itab_zycit003 TRANSPORTING advalii advalipi
* << Fim da exclusão
* >> Início da inclusão: MODULE MOD_374
MODIFY itab_zycit003 TRANSPORTING advalii advalipi advalicms
* << Fim da inclusão
WHERE ebeln = /pws/zycie374-ebeln
AND ebelp = /pws/zycie374-ebelp.
ENDMODULE.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058F01
...
FORM fill_itabit.
* >> Início da inclusão: FORM FILL_ITABIT
DATA: BEGIN OF itab_zycit374 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit374.
DATA END OF itab_zycit374.
* << Fim da inclusão
...
...
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit013 INTO TABLE itab_zycit013
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
* >> Início da inclusão: FORM FILL_ITABIT
SELECT * FROM /pws/zycit374
INTO TABLE itab_zycit374
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
IF NOT itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263 WHERE
nrseq_pgfat = itab_zycit263-nrseq_pgfat.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq.
...
...
IF NOT itab_itb-advalipi IS INITIAL.
itab_it-advalipi = itab_itb-advalipi.
ELSE.
itab_itb-advalipi = itab_it-advalipi = itab_zycit003-advalipi .
ENDIF.
IF NOT itab_itb-advalicms IS INITIAL.
itab_it-advalicms = itab_itb-advalicms.
ELSE.
itab_itb-advalicms = itab_it-advalicms = itab_zycit003-advalicms
ENDIF.
IF itab_it-pproc IS INITIAL.
itab_it-pproc = itab_it-porigem.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
read table itab_zycit001 with key nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
IF sy-tcode EQ '/PWS/ZYCI058_C'.
IF itab_it-advalii IS INITIAL.
IF /pws/zycie093-meiotransp EQ 'PS'.
itab_it-advalii = '60'.
ELSE.
itab_it-advalii = itab_it-aliqii.
ENDIF.
ENDIF.
IF itab_it-advalipi IS INITIAL.
itab_it-advalipi = itab_it-aliqipi.
ENDIF.
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_it-aliqicms.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da exclusão
SELECT SINGLE matnr FROM ekpo INTO v_matnr
WHERE ebeln EQ itab_it-ebeln
AND ebelp EQ itab_it-ebelp.
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 .
itab_it-advalpis = 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 'PIS'.
IF sy-subrc EQ 0.
itab_it-basredpis = wa_zycit405-basred .
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 .
itab_it-advalpis = wa_zycit407-aliquotas.
ELSE.
itab_it-basredpis = 100.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_zycit001-regime EQ '09' .
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.
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 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'.
IF sy-subrc EQ 0.
itab_it-basredcof = wa_zycit406-basred .
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 .
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 .
itab_it-advalcofins = wa_zycit407-aliquotas.
ELSE.
itab_it-basredcof = 100.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
IF itab_zycit001-regime EQ '09' .
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.
itab_it-advalcofins = itab_it-advalcofins *
( 1 - ( ( 12 * itab_zycit374-tp_vida_util -
itab_zycit374-tp_perman )
/ ( 12 * itab_zycit374-tp_vida_util ) ) ).
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
PERFORM text_item_fill.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
IF NOT /pws/zycie093-brgewd IS INITIAL AND
NOT itab_zycit003 IS INITIAL.
itab_it-ntgew = itab_zycit003-ntgewd.
ENDIF.
ENDIF.
IF v_sub EQ 0.
MODIFY itab_it INDEX v_idx.
ELSE.
APPEND itab_it.
ENDIF.
v_tntgew = v_tntgew + itab_it-ntgew.
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 ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
FORM fill_itabit.
* >> Início da inclusão: FORM FILL_ITABIT
DATA: BEGIN OF itab_zycit374 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit374.
DATA END OF itab_zycit374.
* << Fim da inclusão
...
...
FOR ALL ENTRIES IN itab_zycit003
WHERE land1 = itab_zycit003-porigem.
ENDIF.
SELECT * FROM /pws/zycit122 INTO TABLE itab_zycit122.
SELECT * FROM /pws/zycit123 INTO TABLE itab_zycit123.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM ekpo INTO TABLE itab_ekpo
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
* >> Início da inclusão: FORM FILL_ITABIT
SELECT * FROM /pws/zycit374
INTO TABLE itab_zycit374
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq.
* << Fim da inclusão
ENDIF.
SELECT * FROM /pws/zycit229 INTO TABLE itab_zycit229
WHERE codeven = 'DI'.
IF itab_zycit086[] IS INITIAL.
PERFORM fill_instdesp.
ENDIF.
/pws/zycie085-mdadicao = 'S'.
CLEAR: v_tntgew, v_tval, v_tmle, v_waers, v_tsegfat.
LOOP AT itab_zycit003.
READ TABLE itab_zycit013 WITH KEY
...
...
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 .
itab_it-advalpis = wa_zycit407-aliquotas.
ELSE.
itab_it-basredpis = itab_it-advalpis.
CLEAR : itab_it-advalpis,
itab_it-vlpis .
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_zycit001-regime EQ '05' .
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.
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 inclusão
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da inclusão
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.
...
...
itab_it-basredcof = wa_zycit407-basred .
itab_it-advalcofins = wa_zycit407-aliquotas.
ELSE.
itab_it-basredcof = itab_it-advalcofins.
CLEAR : itab_it-advalcofins,
itab_it-vlcofins .
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
IF itab_zycit001-regime EQ '05' .
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.
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 inclusão
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
ENDIF.
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 .
...