Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DSI
Data/Hora da Publicação: 06/11/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:58:25
Descrição da Nota: AJUSTES PARA DSI QUANDO REGIME = NÃO INCIDÊNCIA EM EMBARQUE DE
Sintoma
Sistema esta se perdendo na composição da base de calculo de ICMS, quano o regime é não incidência,
porém ao sair totalmente da DSI e entrar novamente, sistema atualiza esta base corretamente.
Solução
Atualização do programa de DSI para quando o embarque for de Reimportação a DSI vai levar o Regime
Tributário de Não Incidência e fechar o campo,também fechando o campo das alíquotas de II e IPI e
não calculando nenhum valor fiscal para os impostos. Este ajuste está de acordo com o orientador.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05152 Data: 06/11/2007 Hora: 14:43:48
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05152
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00020
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02362 - 00001 - 6.0 - 00025 - DSI VALOR DO SISCOMEX ZERADO
03106 - 00002 - 6.0 - 00026 - VALOR DE ICMS DA DSI ESTÁ MENOR QUE O TOTAL DA NOTA FISCAL
04713 - 00003 - 7.0 - 00002 - MULTIPLAS MOEDAS, RATEIO DE DESPESAS, REGIME TRIBUTÁRIO NA DSI
----------------------------------------------------------------------------------------------------
AJUSTES PARA DSI QUANDO REGIME = NÃO INCIDÊNCIA EM EMBARQUE DE
----------------------------------------------------------------------------------------------------
Palavras Chave:
DSI - AJUSTES - REGIME TRIBUTÁRIO - NÃO INCIDÊNCIA
REIMPORTAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI058 0232
DYNP /PWS/SAPMZYCI058 0233
REPS /PWS/MZYCI058F01
REPS /PWS/MZYCI058F03
REPS /PWS/MZYCI058F04
REPS /PWS/MZYCI058I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI058 0232
*Seguinte alteração na lógica de processamento
process before output.
module: fill_consist,
set_codfun ,
set_screen .
module exit_tela .
process after input.
field: /pws/zycie100a-codregtri module load_regt on request,
/pws/zycie100a-codfunleg module load_fund on request,
/pws/zycie100a-motivo module load_moti on request,
/pws/zycie100a-classific module load_clas on request,
/pws/zycie100a-codtsp module load_tsp on request,
/pws/zycie100a-pproc module load_ppro on request.
chain.
field: /pws/zycie100a-codregtri.
module calc_vii on chain-request.
*<< inicio inclusão
module calc_vicms on chain-request.
*<< Fim inclusão
endchain.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058F01
...
FORM load_iii USING p_tipo.
* >> Início da inclusão: FORM LOAD_III
CLEAR: t_iirec, a_iiredu, a_iiacor, a_iidevi, a_iicalc.
* << Fim da inclusão
...
...
IF /pws/zycie085-ntimp EQ '09' OR /pws/zycie085-ntimp EQ '11'.
CLEAR: t_iirec.
ENDIF.
s_wiireco = s_wiireco + t_iirec.
s_wiicalc = s_wiicalc + a_iicalc.
s_wiiredu = s_wiiredu + a_iiredu.
s_wiidevi = s_wiidevi + a_iidevi.
* >> Início da inclusão: FORM LOAD_III
WHEN '6' .
CLEAR t_iirec.
* << Fim da inclusão
ENDCASE.
* >> Início da exclusão: FORM LOAD_III
IF /pws/zycie100a-codregtri EQ '6'.
CLEAR: t_iirec.
ENDIF.
* << Fim da exclusão
itab_it-ii_calculado = a_iicalc.
itab_it-ii_reduzido = a_iiredu.
itab_it-ii_devido = a_iidevi.
itab_it-ii_recolher = t_iirec .
...
...
* >> Início da inclusão: FORM CALC_ITAB
clear: a_iidevi, a_ipidevi.
* << Fim da inclusão
PERFORM calc_init USING 'I'.
v_bltofat = /pws/zycie093-prepaid +
/pws/zycie093-collect.
v_sgtofat = /pws/zycie085-vlseg.
...
...
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_it-aliqicms.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
PERFORM set_codregtri.
* << 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 .
...
...
/pws/zycie085-waersfob = v_waers.
READ TABLE itab_zycit001 INDEX 1.
s_inco1 = itab_zycit001-inco1.
/pws/zycie085-codreg = itab_zycit001-regime.
IF v_dit = 'S'.
/pws/zycie085-ntimp = itab_zycit001-regime.
ENDIF.
IF /pws/zycie085-j_1bbranch IS INITIAL.
/pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
CLEAR: v_icms_especial, v_base_esp.
* << Fim da exclusão
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycie085-bukrs
AND branch = /pws/zycie085-j_1bbranch.
SELECT SINGLE region FROM adrc INTO v_icms_regio
WHERE addrnumber = j_1bbranch-adrnr.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM FILL_ITABIT
SELECT SINGLE flag_icms base FROM /pws/zycit062
INTO (v_icms_especial,v_base_esp) WHERE
regio = v_icms_regio.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_ITABIT
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = v_icms_regio.
* << Fim da inclusão
ENDIF.
IF itab_zycit031[] IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie085-bukrs.
SELECT * FROM /pws/zycit031 INTO TABLE itab_zycit031
WHERE land1 = t001-land1.
ENDIF.
READ TABLE itab_zycit031 WITH KEY inco1 = itab_zycit001-inco1.
IF sy-subrc EQ 0.
s_inco1_ci = itab_zycit031-inco1_ci.
ELSE.
CLEAR: s_inco1_ci.
MESSAGE i015 WITH text-039 wa_it-inco1.
ENDIF.
* >> Início da inclusão: FORM FILL_ITABIT
CLEAR itab_zycit100_temp.
REFRESH itab_zycit100_temp.
LOOP AT itab_it.
* << Fim da inclusão
IF itab_zycit001-regime EQ '09' .
* >> Início da exclusão: FORM FILL_ITABIT
LOOP AT itab_it.
* << Fim da exclusão
itab_it-codregtri = '5'.
itab_it-codregtriipi = '5'.
itab_it-codregtripiscofi = '5'.
itab_it-codregtriicms = '5'.
* >> Início da inclusão: FORM FILL_ITABIT
ELSEIF itab_zycit001-regime EQ '11'.
CLEAR: itab_it-advalii , itab_it-advalipi,
itab_it-advalpis , itab_it-advalcofins.
itab_it-codregtri = '6'.
itab_it-codregtriipi = '6'.
itab_it-codregtripiscofi = '6'.
itab_it-codregtriicms = '6'.
* << Fim da inclusão
MODIFY itab_it.
* >> Início da inclusão: FORM FILL_ITABIT
ELSE.
PERFORM set_codregtri.
itab_it-codregtriicms = itab_it-codregtriipi = itab_it-codregtri.
ENDIF .
MOVE-CORRESPONDING itab_it TO itab_zycit100_temp.
APPEND itab_zycit100_temp.
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da exclusão
MOVE itab_it[] TO itab_ita[].
/pws/zycie093-ntgew = /pws/zycie085-ntgew = v_tntgew.
IF /pws/zycie093-gewei_l IS INITIAL.
/pws/zycie093-gewei_l = /pws/zycie093-gewei_b.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
CLEAR itab_zycit100_temp.
REFRESH itab_zycit100_temp.
LOOP AT itab_it.
if itab_it-codregtriicms is initial.
itab_it-codregtriicms = itab_it-codregtri.
modify itab_it.
endif.
MOVE-CORRESPONDING itab_it TO itab_zycit100_temp.
APPEND itab_zycit100_temp.
ENDLOOP.
* << Fim da exclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058F03
...
IF '56' CA /pws/zycie100a-codregtripiscofi.
v_vlpisrec = t_pis_calc.
v_vlcofrec = t_cof_calc.
ELSE.
v_vlpisrec = t_pis .
v_vlcofrec = t_cofins.
* >> Início da inclusão: FORM LOAD_IICMS
ENDIF.
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
v_sisco3 = /pws/zycit000-txsis_fix + /pws/zycit000-txsis_0_2 .
* << Fim da inclusão
ENDIF.
IF /pws/zycit000-flag_txsisc IS INITIAL.
t_icmsbs_d2 = t_icmsbs = ( t_iibas + v_vlipirec + v_vliirec +
t_ivdesp + v_desp + v_vlpisrec + v_vlcofrec ) *
( /pws/zycie003-basred / 100 ).
ELSE.
t_icmsbs_d2 = t_icmsbs = ( t_iibas + v_vlipirec + v_vliirec +
v_sisco3 + t_ivdesp + v_vlpisrec + v_vlcofrec ) *
* >> Início da inclusão: FORM LOAD_IICMS
( /pws/zycie003-basred / 100 ).
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S' .
IF '56' CA /pws/zycie100a-codregtri .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
ENDIF.
IF '56' CA /pws/zycie100a-codregtriipi .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
ENDIF.
IF '56' CA /pws/zycie100a-codregtripiscofi .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_pis_calc - t_cof_calc.
ENDIF.
ENDIF.
IF NOT /pws/zycie003-advalicms IS INITIAL AND
NOT /pws/zycie100a-icms_dif EQ 'X'.
t_icmsbs_d2 = t_icmsbs = t_icmsbs *
( v_advicms * 100 / /pws/zycie003-advalicms ).
ELSEIF NOT /pws/zycie100a-icms_dif EQ 'X'.
t_icmsbs_d2 = t_icmsbs = t_icmsbs *
* << Fim da inclusão
( /pws/zycie003-basred / 100 ).
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
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 ).
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF NOT /pws/zycit000-flag_txsisc IS INITIAL.
v_sisco3 = /pws/zycit000-txsis_fix + /pws/zycit000-txsis_0_2 .
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
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.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycit062-susp_nf EQ 'S'.
IF '56' CA /pws/zycie100a-codregtriicms .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
ENDIF.
ENDIF.
ELSEif NOT /pws/zycit062-flag_icms IS INITIAL.
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF NOT v_icms_especial IS INITIAL.
t_icmsx = ( 100 - /pws/zycie003-advalicms ) / 100.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycit062-bs_cheia_dif EQ 'X'.
t_icmsx = 1 - ( /pws/zycie003-advalicms / 100 ) .
* << Fim da inclusão
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
( t_icmsbs / t_icmsx ) .
t_icmsbs_d2 = t_icmsbs = t_icmsbs + t_icms.
* >> Início da exclusão: FORM LOAD_IICMS
itab_it-vlicms = t_icms.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) * t_icmsbs.
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycit062 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit062 WHERE regio EQ v_icms_regio.
ENDIF.
IF /pws/zycit062-susp_nf EQ 'S'.
IF '56' CA /pws/zycie100a-codregtri .
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_iicalc.
ENDIF.
IF '56' CA /pws/zycie100a-codregtri.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - a_ipidevi.
ENDIF.
IF '56' CA /pws/zycie100a-codregtripiscofi.
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_pis_calc - t_cof_calc.
* << Fim da exclusão
ENDIF.
* >> Início da inclusão: FORM LOAD_IICMS
IF /pws/zycit062-susp_nf EQ 'S' AND
NOT /pws/zycit062-flag_icms IS INITIAL.
IF '56' CA /pws/zycie100a-codregtriicms .
* << Fim da inclusão
* >> Início da exclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtri .
* << Fim da exclusão
t_icmsbs_d2 = t_icmsbs =
t_icmsbs - t_icms.
* >> Início da exclusão: FORM LOAD_IICMS
ENDIF.
IF /pws/zycie100a-baseicms LT 0.
CLEAR itab_zycit100-baseicms.
* << Fim da exclusão
ENDIF.
ENDIF.
ELSE.
t_icms_d2 = t_icms = ( /pws/zycie003-advalicms / 100 ) *
* >> Início da exclusão: FORM LOAD_IICMS
t_icmsbs.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
( t_icmsbs ) .
t_icmsbs_d2 = t_icmsbs .
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM LOAD_IICMS
IF /pws/zycie100a-codregtri EQ '6'.
CLEAR: t_icms_d2, t_vlicms.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_IICMS
IF '356' CA /pws/zycie100a-codregtriicms .
CLEAR: t_icmsx, t_icms_d2, t_icms, t_icms_d2, t_vlicms.
* << Fim da inclusão
ENDIF.
itab_it-vlicms = t_icms.
* >> Início da exclusão: FORM LOAD_IICMS
IF '56' CA /pws/zycie100a-codregtri .
CLEAR: t_icms_d2, t_vlicms.
ENDIF.
* << Fim da exclusão
...
...
FORM fill_desp.
* >> Início da inclusão: FORM FILL_DESP
select single * from /pws/zycbt007 into wa_zycbt007
where bukrs eq /pws/zycie085-bukrs.
* << Fim da inclusão
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058F04
...
ELSEIF screen-name EQ '/PWS/ZYCIE100A-ALIQCOF' .
IF NOT /pws/zycie100a-advalcofins IS INITIAL.
CLEAR /pws/zycie100a-aliqcof.
screen-input = '0'.
ELSE.
screen-input = '1'.
ENDIF.
* >> Início da exclusão: FORM SET_SCREEN_0235
ELSEIF screen-name EQ '/PWS/ZYCIE100A-CODREGTRIPISCOFI'
AND /pws/zycie001-regime EQ '09'.
* << Fim da exclusão
* >> Início da inclusão: FORM SET_SCREEN_0235
ELSEIF screen-name EQ '/PWS/ZYCIE100A-CODREGTRIPISCOFI'.
IF /pws/zycie001-regime EQ '09'.
* << Fim da inclusão
/pws/zycie100a-codregtripiscofi = '5' .
screen-input = '0'.
* >> Início da inclusão: FORM SET_SCREEN_0235
ELSEIF /pws/zycie001-regime EQ '11'.
screen-input = '0'.
ENDIF.
* << Fim da inclusão
ENDIF.
...
...
MODIFY SCREEN.
IF sy-tcode EQ '/PWS/ZYCI058_E'
OR v_nf041 EQ 'S'.
screen-input = '0'.
ELSE.
IF screen-name EQ '/PWS/ZYCIE100A-CODREGTRI'
* >> Início da exclusão: FORM SET_SCREEN_0232
AND /pws/zycie001-regime EQ '09'.
* << Fim da exclusão
* >> Início da inclusão: FORM SET_SCREEN_0232
AND ( /pws/zycie001-regime EQ '09' OR
/pws/zycie001-regime EQ '11' ).
* << Fim da inclusão
screen-input = '0'.
ELSEIF screen-name EQ '/PWS/ZYCIE100A-CODFUNLEG' AND
/pws/zycie001-regime EQ '09'.
screen-input = '1'.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI058I01
...
MODULE calc_vii INPUT.
* >> Início da inclusão: MODULE CALC_VII
/pws/zycie100a-codregtriipi = /pws/zycie100a-codregtriicms =
/pws/zycie100a-codregtri.
IF /pws/zycie100a-codregtri EQ '2' OR
/pws/zycie100a-codregtri EQ '6'.
CLEAR: itab_it-advalii, itab_it-advalipi,
/pws/zycie003-advalii , /pws/zycie003-advalipi.
ELSEIF /pws/zycie100a-codregtri EQ '7'.
CLEAR: itab_it-advalipi, /pws/zycie003-advalipi.
else.
IF NOT /pws/zycie003-aliqii IS INITIAL.
itab_it-advalii = /pws/zycie003-advalii = /pws/zycie003-aliqii.
ENDIF.
endif.
MOVE-CORRESPONDING /pws/zycie100a TO itab_it.
* << Fim da inclusão
...
...
CLEAR: /pws/zycie100a-codfunleg, t_fundes.
* >> Início da exclusão: MODULE CALC_VII
IF ' 269' NA /pws/zycie100a-codregtri.
IF NOT /pws/zycie003-aliqii IS INITIAL.
/pws/zycie003-advalii = /pws/zycie003-aliqii.
ENDIF.
ENDIF.
* << Fim da exclusão
ENDIF.
ENDMODULE.
...