Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 16/05/2011 00:00:00
Data/Hora Última Alteração: 18/11/2011 08:31:32
Descrição da Nota: LEGISLAÇÃO PARA DESENVOLVIMENTO DE ICMS ST NA DI E NF.
Sintoma
Legislação de agosto de 2009 com vigência em setembro 2009, conforme o Artigo 53-C, do Livro III que
trata da Substituição Tributária, Título III, do Regulamento do ICMS do Rio Grande do Sul é
obrigatório o pagamento e escrituração na nota fiscal de entrada do ICMS C/ST para empresa
comercial.
Solução
Desenvolver conforme solicitado para cumprir a legislação.
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11157 Data: 16/05/2011 Hora: 17:04:11
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11157
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00007
Agrupamento : 00071
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03418 - 00001 - 7.0 - 00001 - ERRO DE ARREDONDAMENTO AO CALCULAR O VALOR DOS IMPOSTOS DA DI.
03588 - 00002 - 7.0 - 00001 - LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL
03903 - 00003 - 7.0 - 00001 - ESTÁ RATEANDO O VALOR DO ICMS INCORRETAMENTE NA PRESTAÇÃO DE CONT
03976 - 00004 - 7.0 - 00001 - AJUSTE RATEIO ICMS,EXIBIÇÃO DETALHE FRETE E DIFERENÇA DE CENTAVOS
05214 - 00005 - 7.0 - 00003 - NA NFR SE ENTRAMOS, SAIRMOS, ENTRARMOS NOVAMENTE ACUMULA OS VALOR
07414 - 00006 - 7.0 - 00007 - ESTÁ RATEANDO A DESPESA ANTIDUMPING POR ITENS SEM O ANTIDUMP.
07474 - 00007 - 7.0 - 00007 - NÃO ATUALIZA A PASTA DESPESAS APÓS ALTERAR ANTIDUMPING
07507 - 00008 - 7.0 - 00007 - AO ATUALIZAR DADOS LEVA VALOR DE ANTIDUMP PARA ITENS SEM O SERVIÇ
07524 - 00009 - 7.0 - 00007 - QUEBRA DE ADIÇÕES CONSIDERA QUANTIDADES DE ANTIDUMP DIFERENTES
08569 - 00010 - 7.0 - 00010 - AO CRIAR DI REGIME 12, NÃO DEVERÁ FECHAR CAMPOS COM SUSPENSÃO.
08717 - 00011 - 7.0 - 00010 - TRATAMENTO PARA QUEBRAR ADIÇÃO DA DI POR INCOTERMS DIFERENTE.
08940 - 00012 - 7.0 - 00010 - DETALHE DAS MENSAGENS DA NF NÃO BATE COM O TOTAL DAS DESPESAS NF
09530 - 00013 - 8.0 - 00002 - AO REPLICAR ITENS, ALGUNS CAMPOS ESTÃO SENDO APAGADOS
09734 - 00014 - 8.0 - 00002 - INCLUSÃO DA ITAB_ZYCIT398 NO INCLUDE X
10424 - 00015 - 8.0 - 00004 - IMPLEMENTADO NA NOTA FISCAL RATEIO DA TX SISCOMEX NAS MENSAGENS E
10529 - 00016 - 8.0 - 00004 - AO FAZER CONTABILIZAÇÃO NA PRESTAÇÃO DE CONTAS, LEVA VALOR NEGATI
10532 - 00017 - 8.0 - 00004 - ERRO AO RATEAR DESPESAS POR PESO.
10535 - 00018 - 8.0 - 00004 - TRATAMENTO DE ADMISSÃO TEMPORÁRIA E CONSUMO NO EMBARQUE
10689 - 00019 - 8.0 - 00005 - AO CRIAR NF REMESSA COM MONTANTE BASE EXCLUÍDO, RETIRAR VALOR DO
11031 - 00020 - 8.0 - 00007 - APAGAR ALIQUOTA DE PIS/COFINS QUANDO PARAMET. MONTANTE EXCL. DA B
----------------------------------------------------------------------------------------------------
LEGISLAÇÃO PARA DESENVOLVIMENTO DE ICMS ST NA DI E NF.
----------------------------------------------------------------------------------------------------
Palavras Chave:
LEGISLAÇÃO - ICMS ST - DI - NF - SUBSTITUIÇÃO TRIBUTÁRIA.
----------------------------------------------------------------------------------------------------
Objetos da nota:
DTEL /PWS/ZYCIL888
DYNP /PWS/SAPMZYCI023 0133
DYNP /PWS/SAPMZYCI023 0433
FUNC /PWS/ZYCI_RATEIO_CUSTO
FUNC /PWS/ZYCI_TRANSACAO_J1B1N
FUNC /PWS/ZYCI_VERIFICA_TAXA_ST
REPS /PWS/LZYCIGF2UXX
REPS /PWS/LZYCIGF2X01
REPS /PWS/MZYCI006F01
REPS /PWS/MZYCI007F01
REPS /PWS/MZYCI007X01
REPS /PWS/MZYCI016F01
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F05
REPS /PWS/MZYCI023I01
REPS /PWS/MZYCI023O01
REPS /PWS/MZYCI023X01
REPS /PWS/ZYCIR005
REPS /PWS/ZYCIR035
TABD /PWS/ZYCEE007
TABD /PWS/ZYCIE100A
TABD /PWS/ZYCIT062
TABD /PWS/ZYCIT100
TABU TDDAT
TABU TVDIR
TOBJ /PWS/ZYCIT062S
***Após a aplicação dessa nota, aplicar a nota 11167 para corrigir erros após a aplicação dessa
**11157.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL888
*Criar elemento de dados
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL888
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (12 caracteres), idioma: PT
"CI - ICMS ST"
Categoria de dados: Domínio
Domínio: XFELD
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (7 caracteres), idioma: PT
"ICMS ST"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (7 caracteres), idioma: PT
"ICMS ST"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (7 caracteres), idioma: PT
"ICMS ST"
Comprimento máximo do título: 07
Título incluído (7 caracteres), idioma: PT
"ICMS ST"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCEE007
*Incluir no final da tabela
Nome campo Elem.dados Tab.verif. N CtDt Comp.
...
* >> Início da inclusão:
TAXTYP_ST J_1BTAXTYP CHAR 4
ST_EXCBAS J_1BEXCBAS CURR 15 Referência WAERS
OTHBAS_ST J_1BOTHBAS CURR 15 Referência WAERS
BASE_ST J_1BBASE CURR 15 Referência WAERS
RATE_ST J_1BTXRATE DEC 6
TAXVAL_ST J_1BTAXVAL CURR 15 Referência WAERS
* << Fim da inclusão
*Utilizar o Campo WAERS tabela '/PWS/ZYCIEE007' como referencia de moeda
*para os campos 'ST_EXCBAS', 'OTHBAS_ST', 'BASE_ST' e 'TAXVAL_ST'
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE100A
*Incluir no final da tabela
Nome de campo Elem.dados Tab.verif. N CtDt Comp.
...
* >> Início da inclusão:
BASEICMS_ST /PWS/ZYCIL307 CURR 16
ALIQ_ICMS_ST J_1BTXRATE DEC 6
VLICMS_ST /PWS/ZYCIL307 CURR 16
BASRED_ST /PWS/ZYCIL041 DEC 6
EDITA_ST XFELD CHAR 1
* << Fim da inclusão
*-----------------------------------------------------------
*Utilizar o Campo WAERSREAL tabela '/PWS/ZYCIE100A' como referencia de moeda
*para os campos 'VLICMS_ST' e 'BASEICMS_ST'
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT062
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp.
...
ICMS_BASE_RED_AR /PWS/ZYCIL390 CHAR 1
RATEIO_TX_SISC /PWS/ZYCIL884 CHAR 1
* >> Início da inclusão:
ICMS_ST /PWS/ZYCIL888 CHAR 1
* << Fim da inclusão
USERNAMEC SYUNAME CHAR 12
DTUSERC SYDATUM DATS 8
HRUSERC SYSTTIMLO TIMS 6
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT100
*Incluir no final da tabela
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp.
...
* >> Início da inclusão:
BASEICMS_ST /PWS/ZYCIL307 CURR 16
ALIQ_ICMS_ST J_1BTXRATE DEC 6
VLICMS_ST /PWS/ZYCIL307 CURR 16
BASRED_ST /PWS/ZYCIL041 DEC 6
EDITA_ST XFELD CHAR 1
* << Fim da inclusão
*-----------------------------------------------------------
*Utilizar o Campo WAERSREAL tabela '/PWS/ZYCIT100' como referencia de moeda
*para os campos 'VLICMS_ST' e 'BASEICMS_ST'
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TOBJ /PWS/ZYCIT062S
*Gerar novamente a visão de atualização para a tabela /PWS/ZYCIT062.
Acessar a tabela /PWS/ZYCIT062 através da transação SE11.
Utilizar a opção "Gerador de Atualização de Tabelas" no menu "Utilitários".
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
v_tot_ii = 0.
v_tpeso = 0.
v_seg = 0.
v_tot = 0.
v_tot_vlreal = 0.
vl_icms = 0.
vl_ii = 0.
vl_ipi = 0.
vl_pis = 0.
vl_cofins = 0.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vl_icmsst = 0.
* << Fim da inclusão
clear:
vltot_ii,
vltot_ipi,
vltot_icms,
vltot_pis,
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vltot_cofins.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vltot_cofins,
vltot_icmsst,
v_tot_icmsst.
* << Fim da inclusão
...
...
if not itab_zycit100a-baseantid is initial.
v_vlantid = v_vlantid + ( itab_zycit100a-baseantid *
( itab_zycit100a-antidrate / 100 ) ) .
elseif not itab_zycit100a-qtdeantid is initial.
v_vlantid = v_vlantid + ( itab_zycit100a-vlantid *
itab_zycit100a-qtdeantid ).
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit100a-aliq_icms_st IS INITIAL.
v_tot_icmsst = v_tot_icmsst + itab_zycit100a-vlicms_st.
ENDIF.
* << Fim da inclusão
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'.
loop at itab_adicao.
move: itab_adicao to itab_zycit116.
...
...
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_antidump eq itab_despesa-tpdesp or
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
/pws/zycit019-codigo EQ 'ICMSST' OR
* << Fim da inclusão
( /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
itab_zycit100a-vlicms > 0 and
...
...
not v_vlantid is initial.
read table itab_zycit100a with key
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
if sy-subrc eq 0 and
( not itab_zycit100a-baseantid is initial or
not itab_zycit100a-qtdeantid is initial ) .
itab_zycit036_aux-vlreal =
itab_despesa-netpr - v_tot_desp
.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
ENDIF.
ELSEIF /pws/zycit019-codigo = 'ICMSST'
AND NOT v_tot_icmsst IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
itab_zycit100a-vlicms_st > 0 .
itab_zycit036_aux-vlreal =
itab_despesa-netpr - v_tot_desp.
* << Fim da inclusão
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.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036_aux-vlreal = itab_despesa-netpr - v_tot_desp.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036_aux-vlreal =
itab_despesa-netpr - v_tot_desp.
* << Fim da inclusão
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
else.
itab_zycit036_aux-vlreal = itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
endif.
endif.
else.
itab_zycit036_aux-vlreal = itab_despesa-netpr -
v_tot_desp.
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/zycit019-tpdesp eq /pws/zycit000-cod_antidump or
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
/pws/zycit019-codigo EQ 'ICMSST' OR
* << Fim da inclusão
( /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.
...
...
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
not '356' ca itab_zycit100a-codregtripiscofi .
itab_zycit036_aux-vlreal = ( itab_zycit100a-vlpis /
v_tot_pis ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real = /pws/zycbt007-waersb.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
ELSEIF /pws/zycit019-codigo = 'ICMSST'
AND NOT v_tot_icmsst IS INITIAL.
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 AND
NOT itab_zycit100a-vlicms_st IS INITIAL.
itab_zycit036_aux-vlreal =
( itab_zycit100a-vlicms_st /
v_tot_icmsst ) * itab_despesa-netpr.
itab_zycit036_aux-waers_real =
/pws/zycbt007-waersb.
* << Fim da inclusão
endif.
elseif /pws/zycit019-tpdesp =
/pws/zycit000-cod_antidump and
not v_vlantid is initial.
read table itab_zycit100a with key
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
if sy-subrc eq 0 and
( not itab_zycit100a-baseantid is initial or
not itab_zycit100a-qtdeantid is initial ) .
...
...
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.
vl_imp = itab_zycit100a-vlicms.
vltot_icms = vltot_icms + vl_imp.
vl_icms = vl_icms + itab_zycit100a-vlicms.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vl_imp = itab_zycit100a-vlicms_st.
vltot_icms = vltot_icmsst + vl_imp.
vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.
* << Fim da inclusão
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.
else.
...
...
endif.
endif.
vl_ii = vl_ii + itab_zycit100a-vlii.
vl_ipi = vl_ipi + itab_zycit100a-vlipi.
itab_zycit100a-vlii = vl_ii - vltot_ii.
itab_zycit100a-vlipi = vl_ipi - vltot_ipi.
if itab_zycit100a-icms_dif is initial.
vl_icms = vl_icms + itab_zycit100a-vlicms.
itab_zycit100a-vlicms = vl_icms - vltot_icms.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.
itab_zycit100a-vlicms_st = vl_icmsst - vltot_icmsst.
* << Fim da inclusão
v_ac_fre = 0.
v_ac_seg = 0.
endif.
move: itab_zycit003-nrseq to it_desp-nrseq,
itab_zycit003-ebeln to it_desp-ebeln,
itab_zycit003-ebelp to it_desp-ebelp,
itab_zycit003-netpr to it_desp-netpr,
itab_zycit003-waers to it_desp-waers,
itab_zycit003-menge to it_desp-menge,
itab_zycit003-qtd_iten to it_desp-qtd_iten,
...
...
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 ).
vl_imp = itab_zycit100a-vlicms.
vltot_icms = vltot_icms + vl_imp.
vl_icms = vl_icms + itab_zycit100a-vlicms.
move: itab_zycit100a-vlicms to it_desp-vlicms.
endif.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vl_imp = itab_zycit100a-vlicms_st.
vltot_icmsst = vltot_icmsst + vl_imp.
vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.
* << 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.
...
...
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 ).
vl_icms = vl_icms + itab_zycit100a-vlicms.
itab_zycit100a-vlicms = vl_icms - vltot_icms.
move: itab_zycit100a-vlicms to it_desp-vlicms.
endif.
endif.
endif.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
vl_icmsst = vl_icmsst + itab_zycit100a-vlicms_st.
itab_zycit100a-vlicms_st = vl_icmsst - vltot_icmsst.
* << Fim da inclusão
v_ac_fre = 0.
v_ac_seg = 0.
endif.
move: itab_zycit003-nrseq to it_desp-nrseq,
itab_zycit003-ebeln to it_desp-ebeln,
itab_zycit003-ebelp to it_desp-ebelp,
itab_zycit003-netpr to it_desp-netpr,
itab_zycit003-waers to it_desp-waers,
itab_zycit003-menge to it_desp-menge,
itab_zycit003-qtd_iten to it_desp-qtd_iten,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_J1B1N
...
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
data: v_othbas_st(17),
v_base_st(15),
v_taxval_st(15),
v_stexcbas(20),
v_aliqst(8).
* << Fim da inclusão
CONSTANTS c_x VALUE 'X'.
...
...
t_itens-othbas_pis TO v_othbas_pis CURRENCY t_itens-waers,
t_itens-base_pis TO v_base_pis CURRENCY t_itens-waers,
t_itens-taxval_pis TO v_taxval_pis CURRENCY t_itens-waers,
t_itens-pis_excbas TO v_pisexcbas CURRENCY t_itens-waers,
t_itens-rate_pis TO v_aliqpis CURRENCY t_itens-waers,
t_itens-othbas_cof TO v_othbas_cof CURRENCY t_itens-waers,
t_itens-base_cof TO v_base_cof CURRENCY t_itens-waers,
t_itens-taxval_cof TO v_taxval_cof CURRENCY t_itens-waers,
t_itens-cof_excbas TO v_cofexcbas CURRENCY t_itens-waers,
t_itens-rate_cof TO v_aliqcof CURRENCY t_itens-waers.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
write: t_itens-othbas_st TO v_othbas_st CURRENCY t_itens-waers,
t_itens-base_st TO v_base_st CURRENCY t_itens-waers,
t_itens-taxval_st TO v_taxval_st CURRENCY t_itens-waers,
t_itens-st_excbas TO v_stexcbas CURRENCY t_itens-waers,
t_itens-rate_st TO v_aliqst CURRENCY t_itens-waers.
* << Fim da inclusão
PERFORM bdc_campo USING:
'J_1BDYSTX-TAXTYP(01)' t_itens-taxtyp,
'J_1BDYSTX-BASE(01)' v_base,
'J_1BDYSTX-RATE(01)' v_aliqicms,
'J_1BDYSTX-TAXVAL(01)' v_taxval,
'J_1BDYSTX-EXCBAS(01)' v_cexcbas,
'J_1BDYSTX-OTHBAS(01)' v_othbas,
'J_1BDYSTX-TAXTYP(02)' t_itens-taxtyp2,
'J_1BDYSTX-BASE(02)' v_base2,
'J_1BDYSTX-RATE(02)' v_aliqipi,
...
...
'J_1BDYSTX-RATE(03)' v_aliqpis,
'J_1BDYSTX-TAXVAL(03)' v_taxval_pis,
'J_1BDYSTX-EXCBAS(03)' v_pisexcbas,
'J_1BDYSTX-OTHBAS(03)' v_othbas_pis,
'J_1BDYSTX-TAXTYP(04)' t_itens-taxtyp_cof,
'J_1BDYSTX-BASE(04)' v_base_cof,
'J_1BDYSTX-RATE(04)' v_aliqcof,
'J_1BDYSTX-TAXVAL(04)' v_taxval_cof,
'J_1BDYSTX-EXCBAS(04)' v_cofexcbas,
'J_1BDYSTX-OTHBAS(04)' v_othbas_cof,
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_J1B1N
'J_1BDYSTX-TAXTYP(05)' t_itens-taxtyp_st,
'J_1BDYSTX-BASE(05)' v_base_st,
'J_1BDYSTX-RATE(05)' v_aliqst,
'J_1BDYSTX-TAXVAL(05)' v_taxval_st,
'J_1BDYSTX-EXCBAS(05)' v_stexcbas,
'J_1BDYSTX-OTHBAS(05)' v_othbas_st,
* << Fim da inclusão
v_linesel 'X',
'BDC_OKCODE' '=ITEM'.
IF NOT v_lines = v_tabix.
PERFORM bdc_tela USING 'SAPLJ1BB2' '3000'.
PERFORM bdc_campo USING:
'BDC_OKCODE' '=ADIT'.
ENDIF.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_VERIFICA_TAXA_ST
*Criar a Função /PWS/ZYCI_VERIFICA_TAXA_ST
*Caracteristicas:
Grupo de funções: /PWS/ZYCIGF2
Texto breve: CI - Verifica Taxa de Imposto
Tipo de Execução: Módulo de função normal->Início imediato
*Código Fonte
* >> Início da inclusão:
FUNCTION /pws/zyci_verifica_taxa_st.
*"----------------------------------------------------------------------
*"*"Interface local:
*" IMPORTING
*" REFERENCE(DATA_DI) LIKE SY-DATUM
*" REFERENCE(BRANCH) LIKE /PWS/ZYCIE001-J_1BBRANCH
*" REFERENCE(BUKRS) LIKE /PWS/ZYCIE001-BUKRS
*" REFERENCE(REGIO) TYPE /PWS/ZYCIT062-REGIO
*" TABLES
*" ITAB_IMPOSTOS STRUCTURE /PWS/ZYCIE110
*"----------------------------------------------------------------------
TABLES : j_1btxst1.
DATA: v_land1 TYPE t001-land1.
DATA: wa_j_1btxst1 TYPE j_1btxst1 ,
wa_j_1btxst2 TYPE j_1btxst2 .
DATA: itab_j_1btxst1 TYPE j_1btxst1 OCCURS 0 WITH HEADER LINE,
itab_j_1btxst2 TYPE j_1btxst2 OCCURS 0 WITH HEADER LINE.
SELECT SINGLE land1
FROM t001
INTO v_land1
WHERE bukrs EQ bukrs.
CONVERT DATE data_di INTO INVERTED-DATE v_validfrom.
LOOP AT itab_impostos.
MOVE sy-tabix TO v_tabix.
CLEAR: wa_j_1btxst1.
PERFORM f_preenche_work_areas USING itab_impostos-ebeln
itab_impostos-ebelp
CHANGING wa_ekko
wa_ekpo
v_j_1bnbm
v_matnr.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM j_1btxst1
INTO wa_j_1btxst1
WHERE land1 = v_land1 AND
shipto = regio AND
matnr = v_matnr AND
validfrom = v_validfrom AND
sur_type = '1'.
IF sy-subrc NE 0 .
SELECT * FROM j_1btxst1
INTO TABLE itab_j_1btxst1
WHERE land1 = v_land1 AND
shipto = regio AND
matnr = v_matnr AND
validfrom >= v_validfrom AND
validto <= v_validfrom AND "#EC PORTABLE
sur_type = '1'.
IF sy-subrc EQ 0.
CLEAR aux_validfrom.
CLEAR v_data.
LOOP AT itab_j_1btxst1.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
input = itab_j_1btxst1-validfrom
IMPORTING
output = v_datum
EXCEPTIONS
OTHERS = 1.
PERFORM concatena_data USING v_datum CHANGING v_data.
IF NOT v_data > data_di AND
itab_j_1btxst1-validto <= v_validfrom. "#EC PORTABLE
IF v_data > aux_validfrom .
aux_validfrom = v_data.
wa_j_1btxst1-rate = itab_j_1btxst1-rate.
wa_j_1btxst1-basered1 = itab_j_1btxst1-basered1.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
SELECT SINGLE * FROM j_1btxst2
INTO wa_j_1btxst2
WHERE land1 = v_land1 AND
shipto = regio AND
validfrom = v_validfrom AND
sur_type = '1'.
IF sy-subrc NE 0 .
SELECT * FROM j_1btxst2
INTO TABLE itab_j_1btxst2
WHERE land1 = v_land1 AND
shipto = regio AND
validfrom >= v_validfrom AND
validto <= v_validfrom AND "#EC PORTABLE
sur_type = '1'.
IF sy-subrc EQ 0.
CLEAR aux_validfrom.
CLEAR v_data.
LOOP AT itab_j_1btxst2.
CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
EXPORTING
input = itab_j_1btxst2-validfrom
IMPORTING
output = v_datum
EXCEPTIONS
OTHERS = 1.
PERFORM concatena_data USING v_datum CHANGING v_data.
IF NOT v_data > data_di AND
itab_j_1btxst2-validto <= v_validfrom. "#EC PORTABLE
IF v_data > aux_validfrom .
aux_validfrom = v_data.
wa_j_1btxst2-rate = itab_j_1btxst2-rate.
wa_j_1btxst2-basered1 = itab_j_1btxst2-basered1.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT wa_j_1btxst1-rate IS INITIAL.
itab_impostos-rate1 = wa_j_1btxst1-rate.
itab_impostos-basred = wa_j_1btxst1-basered1.
ELSE.
itab_impostos-rate1 = wa_j_1btxst2-rate.
itab_impostos-basred = wa_j_1btxst2-basered1.
ENDIF.
MODIFY itab_impostos INDEX v_tabix.
ENDIF.
ENDLOOP.
ENDFUNCTION.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2X01
...
* >> Início da inclusão:
data: v_tot_icmsst type /pws/zycit100-vlicms,
vl_icmsst type /pws/zycit100-vlicms_st,
vltot_icmsst type /pws/zycit036-vlreal.
* << Fim da inclusão
end of common part.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI006F01
...
FORM select_tables.
* >> Início da exclusão: FORM SELECT_TABLES
TABLES: /pws/zycit085.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECT_TABLES
DATA: v_regio LIKE adrc-region.
TABLES: /pws/zycit085, /pws/zycit062.
* << Fim da inclusão
IF /pws/zycit000 IS INITIAL.
SELECT SINGLE *
FROM t001
INTO t001
WHERE bukrs EQ /pws/zycie008-bukrs.
SELECT SINGLE *
FROM /pws/zycit000
WHERE land1 EQ t001-land1.
ENDIF.
* >> Início da inclusão: FORM SELECT_TABLES
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycie008-bukrs
AND branch = /pws/zycie008-j_1bbranch.
SELECT SINGLE region FROM adrc INTO v_regio
WHERE addrnumber = j_1bbranch-adrnr.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = v_regio
AND icms_st = 'X' .
ENDIF.
SELECT SINGLE * FROM /pws/zycit019
WHERE land1 = t001-land1
AND regio = v_regio
AND codigo = 'ICMSST'.
* << Fim da inclusão
SELECT * FROM /pws/zycit046
INTO TABLE it_despesa
WHERE j_1bbranch = /pws/zycie008-j_1bbranch
AND bukrs = /pws/zycie008-bukrs.
IF sy-subrc NE 0.
...
...
* >> Início da inclusão: FORM DESPESAS_DI
DATA: v_dpicmsst TYPE /pws/zycit085-vlicms,
v_vlicmsst TYPE /pws/zycit016-vldp.
* << Fim da inclusão
...
...
v_dppis = v_dppis + itab_zycit100-vlpis .
v_dpcofins = v_dpcofins + itab_zycit100-vlcofins.
ENDIF.
IF NOT itab_zycit100-baseantid IS INITIAL.
v_dpantidump = v_dpantidump +
( itab_zycit100-baseantid * ( itab_zycit100-antidrate / 100 ) ).
ELSEIF NOT itab_zycit100-qtdeantid IS INITIAL.
v_dpantidump = v_dpantidump +
( itab_zycit100-qtdeantid * itab_zycit100-vlantid ).
ENDIF.
* >> Início da inclusão: FORM DESPESAS_DI
v_dpicmsst = v_dpicmsst + itab_zycit100-vlicms_st.
* << Fim da inclusão
ENDLOOP.
ENDIF.
v_vlicms = v_dpicms .
v_vlipi = v_dpipi .
v_vlii = v_dpii .
v_vlpis = v_dppis .
v_vlcofins = v_dpcofins .
v_vlantidump = v_dpantidump.
* >> Início da inclusão: FORM DESPESAS_DI
v_vlicmsst = v_dpicmsst .
* << Fim da inclusão
CHECK sy-subrc EQ 0.
...
...
ELSEIF it_zycit016_aux-tpdesp EQ /pws/zycit000-cod_cofins.
MOVE v_vlcofins TO it_zycit016_aux-vldp.
* >> Início da inclusão: FORM DESPESAS_DI
ELSEIF it_zycit016_aux-tpdesp EQ /pws/zycit019-tpdesp.
MOVE v_vlicmsst TO it_zycit016_aux-vldp.
* << Fim da inclusão
ENDIF.
MODIFY it_zycit016_aux INDEX sy-tabix.
ENDLOOP.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI007F01
...
FORM verifica_itens.
* >> Início da inclusão: FORM VERIFICA_ITENS
DATA: BEGIN OF wa_last,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
END OF wa_last.
* << Fim da inclusão
...
...
INTO TABLE it_despesa
WHERE regio EQ adrc-region AND
land1 EQ t001-land1.
IF sy-subrc NE 0.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie026-bukrs.
SELECT * FROM /pws/zycit019
INTO TABLE it_despesa
WHERE regio EQ space AND
land1 EQ t001-land1.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS
CLEAR v_tot_vlicms_st.
LOOP AT it_despesa WHERE codigo EQ 'ICMSST'.
v_tp_icms_st = it_despesa-tpdesp.
EXIT.
ENDLOOP.
* << Fim da inclusão
...
...
LOOP AT it_zycit027_aux
WHERE ( tpdesp = '001' OR tpdesp = '002' OR
tpdesp = '003' OR tpdesp = /pws/zycit000-cod_sisc
OR tpdesp = /pws/zycit000-cod_antidump
* >> Início da inclusão: FORM VERIFICA_ITENS
or tpdesp = v_tp_icms_st
* << Fim da inclusão
OR tpdesp = /pws/zycit000-cod_pis
OR tpdesp = /pws/zycit000-cod_cofins ) AND vldp > 0.
ENDLOOP.
IF sy-subrc = 0.
IF /pws/zycie001-regime = '04' AND /pws/zycie001-tpdecl = 'DI'.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseq = /pws/zycie026-nrseq. "#EC CI_NOFIRST
IF sy-subrc NE 0.
MESSAGE e015 WITH text-083 text-084.
ELSE.
...
...
IF NOT '156' CA itab_zycit100-codregtriipi .
v_tot_ipi = itab_zycit100-vlipi + v_tot_ipi.
ENDIF.
IF NOT '356' CA itab_zycit100-codregtripiscofi.
v_tot_pis = itab_zycit100-vlpis + v_tot_pis.
v_tot_cofins = itab_zycit100-vlcofins + v_tot_cofins.
ENDIF.
IF NOT '356' CA itab_zycit100-codregtriicms .
v_tot_icms = itab_zycit100-vlicms + v_tot_icms.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS
ADD itab_zycit100-vlicms_st TO v_tot_vlicms_st .
* << Fim da inclusão
IF NOT itab_zycit100-baseantid IS INITIAL.
v_vlantid = v_vlantid + ( itab_zycit100-baseantid *
( itab_zycit100-antidrate / 100 ) ) .
ELSEIF NOT itab_zycit100-qtdeantid IS INITIAL.
v_vlantid = v_vlantid + ( itab_zycit100-vlantid *
itab_zycit100-qtdeantid ).
ENDIF.
ENDLOOP.
IF NOT itab_zycit100[] IS INITIAL.
SELECT * FROM /pws/zycit116 INTO TABLE itab_zycit116
...
...
it_lanca-lancamento = v_vldp_rat.
ELSEIF NOT itab_zycit100-vlantid IS INITIAL.
vl_imp = ( itab_zycit100-vlantid *
itab_zycit100-qtdeantid ) /
v_vlantid.
it_lanca-porcent = vl_imp.
v_vldp_rat = it_zycit027_aux-vldp *
( ( itab_zycit100-vlantid *
itab_zycit100-qtdeantid ) / v_vlantid ).
it_lanca-lancamento = v_vldp_rat.
* >> Início da inclusão: FORM VERIFICA_ITENS
ENDIF.
v_total = v_total + it_lanca-lancamento.
ELSEIF it_zycit027_aux-tpdesp = v_tp_icms_st.
IF v_index = v_lines.
IF v_total LE it_zycit027_aux-vldp.
IF itab_zycit100-vlicms_st > 0 OR
wa_last-ebeln IS INITIAL.
it_lanca-lancamento = it_zycit027_aux-vldp - v_total.
CLEAR v_total.
ELSE.
READ TABLE it_lanca WITH KEY
ebeln = wa_last-ebeln
ebelp = wa_last-ebelp
tpdesp = it_zycit027_aux-tpdesp.
it_lanca-lancamento =
it_lanca-lancamento + it_zycit027_aux-vldp - v_total.
MODIFY it_lanca TRANSPORTING lancamento
WHERE ebeln = wa_last-ebeln
AND ebelp = wa_last-ebelp
AND tpdesp = it_zycit027_aux-tpdesp.
CLEAR v_total.
CONTINUE.
ENDIF.
ENDIF.
ELSEIF itab_zycit100-vlicms_st > 0.
IF v_tot_vlicms_st IS INITIAL.
CLEAR it_lanca-lancamento.
CONTINUE.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS
vl_imp = itab_zycit100-vlicms_st / v_tot_vlicms_st.
it_lanca-porcent = vl_imp.
v_vldp_rat = ( it_zycit027_aux-vldp *
itab_zycit100-vlicms_st / v_tot_vlicms_st ).
it_lanca-lancamento = v_vldp_rat.
* << Fim da inclusão
v_total = v_total + it_lanca-lancamento.
* >> Início da inclusão: FORM VERIFICA_ITENS
wa_last-ebeln = it_lanca-ebeln.
wa_last-ebelp = it_lanca-ebelp.
ENDIF.
* << Fim da inclusão
ELSE.
IF t001-land1 EQ 'AR'.
it_zycit027_aux-vldp = it_zycit027_aux-vldpiva.
it_lanca-iva = it_zycit027_aux-iva .
ENDIF.
IF t001-land1 EQ 'AR'.
it_zycit027_aux-vldp = it_zycit027_aux-vldp
* /pws/zycie026-taxamu.
ENDIF.
CLEAR it_despesa.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI007X01
...
* >> Início da inclusão:
DATA: v_tot_vlicms_st TYPE /pws/zycit100-vlicms_st,
v_tp_icms_st TYPE /pws/zycit019-tpdesp.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
FORM mensagens_nf.
* >> Início da inclusão: FORM MENSAGENS_NF
DATA: v_vlst_aux TYPE /pws/zycit036-vlreal ,
v_vlst TYPE /pws/zycit100-vlpis .
* << Fim da inclusão
...
...
ENDIF.
CLEAR v_vldp.
ENDLOOP.
CLEAR: v_vlpis, v_vlcofins.
LOOP AT itab_zycit042_mark.
CLEAR: v_vlpis_aux, v_vlcofins_aux.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
* >> Início da exclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0
AND NOT itab_zycit100-codregtripiscofi EQ '5'.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
IF sy-subrc EQ 0.
IF NOT itab_zycit100-codregtripiscofi EQ '5'.
* << Fim da inclusão
v_vlpis_aux = v_vlpis_aux + itab_zycit100-vlpis.
v_vlcofins_aux = v_vlcofins_aux + itab_zycit100-vlcofins.
v_vlpis = v_vlpis + v_vlpis_aux.
v_vlcofins = v_vlcofins + v_vlcofins_aux.
* >> Início da inclusão: FORM MENSAGENS_NF
ENDIF .
v_vlst_aux = v_vlst_aux + itab_zycit100-vlicms_st.
* << Fim da inclusão
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM MENSAGENS_NF
v_vlst = v_vlst_aux.
* << Fim da inclusão
v_tamanho = '...............................'.
CLEAR v_vldp_x.
IF NOT v_vlpis IS INITIAL.
MOVE : v_vlpis TO itab_zycit049_aux_r-vldp,
itab_zycit049_aux_r-vldp TO v_vldp_x.
WRITE itab_zycit049_aux_r-vldp TO v_vldp_x
CURRENCY /pws/zycbt007-waersb.
CONCATENATE 'PIS' v_tamanho v_vldp_x
INTO it_zycee006-msg SEPARATED BY space.
APPEND it_zycee006.
ENDIF.
v_tamanho = '............................'.
CLEAR v_vldp_x.
IF NOT v_vlcofins IS INITIAL.
MOVE: v_vlcofins TO itab_zycit049_aux_r-vldp,
itab_zycit049_aux_r-vldp TO v_vldp_x.
WRITE itab_zycit049_aux_r-vldp TO v_vldp_x
CURRENCY /pws/zycbt007-waersb.
CONCATENATE 'COFINS' v_tamanho v_vldp_x
INTO it_zycee006-msg SEPARATED BY space.
APPEND it_zycee006.
ENDIF.
* >> Início da inclusão: FORM MENSAGENS_NF
v_tamanho = '...........................'.
CLEAR v_vldp_x.
IF NOT v_vlst IS INITIAL.
MOVE : v_vlst TO itab_zycit049_aux_r-vldp,
itab_zycit049_aux_r-vldp TO v_vldp_x.
WRITE itab_zycit049_aux_r-vldp TO v_vldp_x
CURRENCY /pws/zycbt007-waersb.
CONCATENATE 'ICMS ST' v_tamanho v_vldp_x
INTO it_zycee006-msg SEPARATED BY space.
APPEND it_zycee006.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit042_mark.
IF v_fundap NE 'X'.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit042_mark-nrseq
ebeln = itab_zycit042_mark-ebeln
ebelp = itab_zycit042_mark-ebelp .
IF sy-subrc EQ 0 AND
...
...
it_zycee007-p_excbas = itab_zycit100-vlicms.
ENDIF.
ENDCASE.
ENDIF.
SELECT * FROM /pws/zycit398
INTO TABLE itab_zycit398
WHERE bukrs EQ /pws/zycie041-bukrs
AND clnf EQ itab_zycit033-clnf
AND tpnf EQ itab_zycit033-tpnf
AND ( tributos EQ 'PIS' OR
* >> Início da exclusão: FORM ITENS_NFNEW
tributos EQ 'COFINS' ).
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFNEW
tributos EQ 'COFINS' OR
tributos EQ 'ICMSST' ).
* << Fim da inclusão
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
it_zycee007-leipis = itab_zycit398-leipis.
ENDIF.
IF NOT itab_zycit100-vlpis IS INITIAL.
...
...
it_zycee007-base_cof = v_montante1.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-cof_excbas = v_montante1.
CLEAR it_zycee007-taxval_cof.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-basecofins.
it_zycee007-othbas_cof = v_montante1.
ENDCASE.
* >> Início da inclusão: FORM ITENS_NFNEW
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-leicofins = itab_zycit398-leicofins.
ENDIF.
READ TABLE itab_zycit398 WITH KEY tributos = 'ICMSST'.
IF sy-subrc EQ 0.
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'ICMSST'.
it_zycee007-taxval_st = itab_zycit036-vlreal.
ELSE .
CLEAR it_zycee007-taxval_st .
ENDIF.
it_zycee007-taxtyp_st = itab_zycit398-taxtyp.
IF NOT it_zycee007-taxval_st IS INITIAL.
it_zycee007-rate_st = itab_zycit100-aliq_icms_st.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-base_st = v_montante1.
WHEN 2.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-st_excbas = v_montante1.
CLEAR it_zycee007-taxval_st.
WHEN 3.
PERFORM verifica_montante.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-othbas_st = v_montante1.
ENDCASE.
ELSE.
CLEAR it_zycee007-taxtyp_st.
ENDIF.
* << Fim da inclusão
IF ( NOT /pws/zycie001-modalidade EQ '05' AND
NOT /pws/zycie001-tpdecl EQ 'DI' ) OR
itab_zycit480[] IS INITIAL.
IF /pws/zycit062-flag_icms = 'X' AND /pws/zycit001-meioemba NE 'PS'.
...
...
v_base = it_zycee007-othbas.
ENDCASE.
it_zycee007-taxtyp = itab_zycit033-taxtyp.
it_zycee007-taxtyp2 = itab_zycit033-taxtyp2.
SELECT * FROM /pws/zycit398
INTO TABLE itab_zycit398
WHERE bukrs EQ /pws/zycie041-bukrs
AND clnf EQ itab_zycit033-clnf
AND tpnf EQ itab_zycit033-tpnf
AND ( tributos EQ 'PIS' OR
* >> Início da exclusão: FORM ITENS_NFRNEW
tributos EQ 'COFINS' ).
* << Fim da exclusão
* >> Início da inclusão: FORM ITENS_NFRNEW
tributos EQ 'COFINS' OR
tributos EQ 'ICMSST' ).
* << Fim da inclusão
READ TABLE itab_zycit398 WITH KEY tributos = 'PIS'.
IF sy-subrc EQ 0.
it_zycee007-leipis = itab_zycit398-leipis.
ENDIF.
READ TABLE itab_zycit398 WITH KEY tributos = 'COFINS'.
IF sy-subrc EQ 0.
it_zycee007-leicofins = itab_zycit398-leicofins.
ENDIF.
itab_zycit100-basepis = itab_zycit100-basecofins =
itab_zycit100-basecofins /
...
...
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.
* >> Início da inclusão: FORM ITENS_NFRNEW
READ TABLE itab_zycit398 WITH KEY tributos = 'ICMSST'.
IF sy-subrc EQ 0.
IF NOT itab_zycit100-vlicms_st IS INITIAL.
CLEAR itab_zycit036.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit042-nrseq
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp
codigo = 'ICMSST'.
it_zycee007-taxval_st = itab_zycit036-vlreal /
itab_zycit044-menge * itab_zycit044-qtd_item.
ELSE .
CLEAR it_zycee007-taxval_st .
ENDIF.
it_zycee007-taxtyp_st = itab_zycit398-taxtyp.
IF NOT it_zycee007-taxval_st IS INITIAL.
it_zycee007-rate_st = itab_zycit100-aliq_icms_st.
ENDIF.
CASE itab_zycit398-tribpiscof.
WHEN 1.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-base_st = v_montante1.
WHEN 2.
v_montante1 = itab_zycit100-baseicms_st.
it_zycee007-st_excbas = v_montante1.
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_cof.
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_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
IF NOT itab_zycit100-vlcofins IS INITIAL.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'COFINS'.
itab_zycbt035_aux-imposto = 'COFI'.
itab_zycbt035_aux-debcred = itab_zycit398-creditar.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-vlcofins ).
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
IF NOT itab_zycit100-vlicms_st IS INITIAL.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'ICMSST'.
itab_zycbt035_aux-imposto = 'ICST'.
itab_zycbt035_aux-debcred = itab_zycit398-creditar.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-vlicms_st ).
* << Fim da inclusão
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'PIS'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlpis IS INITIAL.
...
...
APPEND itab_zycbt035_aux.
ENDIF.
ENDIF.
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'COFINS'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlcofins IS INITIAL.
itab_zycbt035_aux-imposto = 'BCOF'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-basecofins ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
CLEAR itab_zycit398.
READ TABLE itab_zycit398 WITH KEY tpnf = itab_global-tpnf
tributos = 'ICMSST'.
IF sy-subrc EQ 0 AND itab_zycit398-creditar EQ 'S'.
IF NOT itab_zycit100-vlicms_st IS INITIAL.
itab_zycbt035_aux-imposto = 'BST'.
itab_zycbt035_aux-wrbtr = abs( itab_zycit100-baseicms_st ).
itab_zycbt035_aux-bschl = '40'.
APPEND itab_zycbt035_aux.
itab_zycbt035_aux-bschl = '50'.
APPEND itab_zycbt035_aux.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'PIS'.
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
...
...
space.
READ TABLE itab_cta INDEX 1.
PERFORM verify_null_field USING itab_cta-konts 'D_NEWKO' text-016.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
ELSEIF itab_zycbt035_aux-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'COP'
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
itab_zycbt035_aux-werks
space
itab_zycbt035_aux-matuse
itab_zycbt035_aux-debcred
space.
READ TABLE itab_cta INDEX 1.
PERFORM verify_null_field USING itab_cta-konts 'D_NEWKO' text-069.
itab_zycbt035_aux2-d_newko = itab_cta-konth.
ENDIF.
COLLECT itab_zycbt035_aux2.
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'ICST'.
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
itab_zycbt035_aux-imposto TO itab_zycbt035_aux2-imposto,
itab_zycbt035_aux-matuse TO itab_zycbt035_aux2-matuse ,
itab_zycbt035_aux-d_gsber TO itab_zycbt035_aux2-d_gsber,
itab_zycbt035_aux-wrbtr TO itab_zycbt035_aux2-wrbtr ,
itab_zycbt035_aux-d_prctr TO itab_zycbt035_aux2-d_prctr,
itab_zycbt035_aux-c_prctr TO itab_zycbt035_aux2-c_prctr,
itab_zycbt035_aux-werks TO itab_zycbt035_aux2-werks .
CLEAR itab_zycbt012.
IF itab_zycbt035_aux-bschl EQ '40'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'STR'
itab_zycbt035_aux-werks
space
itab_zycbt035_aux-matuse
itab_zycbt035_aux-debcred
space.
READ TABLE itab_cta INDEX 1.
PERFORM verify_null_field USING itab_cta-konts 'D_NEWKO' text-016.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
ELSEIF itab_zycbt035_aux-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'STP'
* << Fim da inclusão
itab_zycbt035_aux-werks
space
itab_zycbt035_aux-matuse
itab_zycbt035_aux-debcred
space.
READ TABLE itab_cta INDEX 1.
PERFORM verify_null_field USING itab_cta-konts 'D_NEWKO' text-069.
itab_zycbt035_aux2-d_newko = itab_cta-konth.
ENDIF.
COLLECT itab_zycbt035_aux2.
...
...
ENDIF.
ELSEIF itab_zycbt035_aux-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'BTR'
itab_zycbt035_aux-werks
space
'COFINS'
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS
itab_zycbt035_aux-matuse
space.
READ TABLE itab_cta INDEX 1.
IF NOT itab_cta-konth IS INITIAL.
itab_zycbt035_aux2-d_newko = itab_cta-konth.
COLLECT itab_zycbt035_aux2.
ELSE.
DELETE itab_zycbt035_aux.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux WHERE imposto EQ 'BST'.
CLEAR itab_zycbt035_aux2.
MOVE: itab_zycbt035_aux-bschl TO itab_zycbt035_aux2-bschl ,
itab_zycbt035_aux-imposto TO itab_zycbt035_aux2-imposto,
itab_zycbt035_aux-matuse TO itab_zycbt035_aux2-matuse ,
itab_zycbt035_aux-d_gsber TO itab_zycbt035_aux2-d_gsber,
itab_zycbt035_aux-wrbtr TO itab_zycbt035_aux2-wrbtr ,
itab_zycbt035_aux-werks TO itab_zycbt035_aux2-werks ,
itab_zycbt035_aux-d_prctr TO itab_zycbt035_aux2-d_prctr,
itab_zycbt035_aux-c_prctr TO itab_zycbt035_aux2-c_prctr.
CLEAR itab_zycbt012.
IF itab_zycbt035_aux-bschl EQ '40'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'BTR'
itab_zycbt035_aux-werks
space
'ICMSST'
itab_zycbt035_aux-matuse
space.
READ TABLE itab_cta INDEX 1.
IF NOT itab_cta-konts IS INITIAL.
itab_zycbt035_aux2-d_newko = itab_cta-konts.
COLLECT itab_zycbt035_aux2.
ELSE.
DELETE itab_zycbt035_aux.
ENDIF.
ELSEIF itab_zycbt035_aux-bschl EQ '50'.
CLEAR itab_cta. REFRESH itab_cta.
PERFORM seek_account_number
TABLES itab_cta
USING /pws/zycie041-bukrs
'BTR'
itab_zycbt035_aux-werks
space
'ICMSST'
* << Fim da inclusão
itab_zycbt035_aux-matuse
space.
READ TABLE itab_cta INDEX 1.
IF NOT itab_cta-konth IS INITIAL.
itab_zycbt035_aux2-d_newko = itab_cta-konth.
COLLECT itab_zycbt035_aux2.
ELSE.
DELETE itab_zycbt035_aux.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
/pws/zycie085-vlpis ,
/pws/zycie085-vlcofins.
CLEAR: /pws/zycie085-vlfob, s_fbvr, s_frvr_aux, s_frvr_aux1,
s_stvr_aux, s_stvr_aux1,
v_tntgew, v_tval, v_tvaln, v_tval2, v_tval3,
v_tmle, v_tdif, v_tdif_aux,
v_tsegfat, v_tfrefat, v_rsegfat, v_rfrefat,
s_wiicalc, s_wiiredu, s_wiidevi, s_wiireco,
s_wipicalc, s_wipiredu, s_wipidevi, s_wipireco,
s_wicdevi, s_wicreco, s_waddevi, s_wadreco, v_aux_rateio,
* >> Início da exclusão: FORM CALC_ITAB
v_tot_plan, s_wpisreco, s_wcofreco.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
v_tot_plan, s_wpisreco, s_wcofreco, t_icmsbs_st, s_wstreco.
* << Fim da inclusão
CLEAR itab_memoria.
REFRESH itab_memoria.
v_tipop = 'I' .
e_subrc = '0'.
v_perform = 'CI' .
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI023'
'DI008'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DI008' BINARY SEARCH.
...
...
itab_it-frn = ( /pws/zycie003-ntgew / v_tntgew ) *
/pws/zycie093-ternacion.
ENDIF.
ENDIF.
ENDIF.
/pws/zycie085-vlpis = /pws/zycie085-vlpis + t_pis .
/pws/zycie085-vlcofins = /pws/zycie085-vlcofins + t_cofins .
/pws/zycie085-vlii = /pws/zycie085-vlii + t_iirec .
/pws/zycie085-vlipi = /pws/zycie085-vlipi + t_ipirec .
/pws/zycie085-vlicms = /pws/zycie085-vlicms + t_icms .
* >> Início da exclusão: FORM CALC_ITAB
MODIFY itab_it INDEX v_idx TRANSPORTING
vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms
vlfre_me vlseg_me vldiffob frn vlmerc_ad vlpis basepis
vlcofins basecofins ii_calculado ii_reduzido ii_devido
ii_recolher ipi_devido ipi_recolher
pis_reduzido pis_calculado pis_devido pis_recolher
cof_reduzido cof_calculado cof_devido cof_recolher
ad_devido ad_recolher vlfobr.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_ITAB
MODIFY itab_it INDEX v_idx .
* << Fim da inclusão
ENDLOOP.
/pws/zycie085-vlfre = /pws/zycie093-prepaid +
/pws/zycie093-collect - /pws/zycie093-ternacion.
/pws/zycie085-waersfre = /pws/zycie093-waersfre.
PERFORM trata_decimais USING /pws/zycie085-waersfre
CHANGING /pws/zycie085-vlfre.
/pws/zycie085-vlfobr = s_fbvr.
IF /pws/zycie085-vlfobr LT 0 .
CLEAR: /pws/zycie085-vlfobr, s_fbvr.
ENDIF.
...
...
IF NOT itab_it[] IS INITIAL.
SELECT ebeln inco1 FROM ekko INTO TABLE itab_inco
FOR ALL ENTRIES IN itab_it
WHERE ebeln EQ itab_it-ebeln.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
* >> Início da inclusão: FORM FILL_ITABIT
SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq = itab_zycit003-nrseq.
SELECT * FROM /pws/zycit107 INTO TABLE itab_zycit107
FOR ALL ENTRIES IN itab_zycit003
WHERE land1 = itab_zycit003-porigem.
READ TABLE ITAB_ZYCIT003 INDEX 1.
IF SY-SUBRC EQ 0.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
ENDIF.
/pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.
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.
CLEAR /pws/zycit062.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = v_icms_regio.
ENDIF.
* << Fim da inclusão
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.
SELECT * FROM /pws/zycit078 INTO TABLE itab_zycit078
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseqli = itab_zycit003-nrseqli.
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. "#EC CI_NOFIELD
* >> Início da exclusão: FORM FILL_ITABIT
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.
SELECT * FROM /pws/zycit107 INTO TABLE itab_zycit107
FOR ALL ENTRIES IN itab_zycit003
WHERE land1 = itab_zycit003-porigem.
* << Fim da exclusão
ENDIF.
SELECT * FROM /pws/zycit122 INTO TABLE itab_zycit122. "#EC CI_NOWHERE
SELECT * FROM /pws/zycit123 INTO TABLE itab_zycit123. "#EC CI_NOWHERE
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.
SELECT * FROM /pws/zycit374
INTO TABLE itab_zycit374
...
...
IF itab_zycit086[] IS INITIAL.
PERFORM fill_instdesp.
ENDIF.
IF sy-tcode EQ '/PWS/ZYCI023_C' .
SELECT * FROM /pws/zycit406 INTO TABLE itab_zycit406
WHERE pais EQ 'BR'.
SELECT * FROM /pws/zycit405 INTO TABLE itab_zycit405
WHERE pais EQ 'BR'.
SELECT * FROM /pws/zycit407 INTO TABLE itab_zycit407
WHERE pais EQ 'BR'.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
IF /pws/zycie085-j_1bbranch IS INITIAL.
READ TABLE itab_zycit001 INDEX 1.
/pws/zycie085-j_1bbranch = itab_zycit001-j_1bbranch.
* << Fim da exclusão
ENDIF.
PERFORM find_region.
/pws/zycie085-mdadicao = 'S'.
CLEAR: v_tntgew, v_tval, v_tmle, v_waers, v_tsegfat.
LOOP AT itab_zycit003.
v_decim1 = itab_zycit003-qtd_itend * 10000.
v_decim2 = itab_zycit003-qtd_iten * 10000.
itab_zycit003-qtd_itendc3 = trunc( v_decim1 ) / 10000.
itab_zycit003-qtd_itenc3 = trunc( v_decim2 ) / 10000.
MODIFY itab_zycit003 .
...
...
IF itab_it-advalipi IS INITIAL.
itab_it-advalipi = itab_zycit003-aliqipi.
ENDIF.
IF itab_it-advalicms IS INITIAL.
itab_it-advalicms = itab_zycit003-aliqicms.
ENDIF.
ENDIF.
IF itab_it-codmat IS INITIAL.
itab_it-codmat = '01'.
ENDIF.
* >> Início da exclusão: FORM FILL_ITABIT
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.
IF sy-subrc EQ 0.
* << Fim da exclusão
itab_it-agente = itab_zycit001-agente.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
* << Fim da exclusão
IF NOT itab_it-qtd_itencacl IS INITIAL.
IF itab_it-qtd_itencacl > itab_it-qtd_iten.
itab_it-qtd_iten = itab_it-qtd_itencacl - itab_it-qtd_iten.
itab_it-qtd_itenc3 = itab_it-qtd_itencacl - itab_it-qtd_itenc3.
itab_it-qtd_itencacl = 0.
itab_it-cacl = 'X'.
...
...
itab_it-codregtriipi = '5'.
itab_it-codregtriicms = '5'.
ELSEIF itab_zycit001-regime = '12'.
itab_it-codregtri = '1'.
itab_it-codregtripiscofi = '1'.
itab_it-codregtriipi = '3'.
itab_it-codregtriicms = '1'.
ENDIF.
ENDIF .
PERFORM text_item_fill.
* >> Início da inclusão: FORM FILL_ITABIT
IF /pws/zycit062-icms_st EQ 'X'.
PERFORM verifica_taxa_st.
ENDIF.
* << 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.
...
...
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.
IF v_difora EQ 'X'.
PERFORM fill_desp.
* >> Início da exclusão: FORM FILL_ITABIT
ENDIF.
CLEAR /pws/zycit062.
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.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = v_icms_regio.
* << Fim da exclusão
ENDIF.
IF itab_zycit031[] IS INITIAL.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie085-bukrs.
SELECT * FROM /pws/zycit031 INTO TABLE itab_zycit031
WHERE land1 EQ t001-land1. "#EC CI_NOFIRST
ENDIF.
READ TABLE itab_zycit031 WITH KEY inco1 = itab_zycit001-inco1.
IF sy-subrc EQ 0.
s_inco1_ci = itab_zycit031-inco1_ci.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
...
* >> Início da inclusão: FORM LOAD_IICMS
PERFORM load_iicms_st.
* << Fim da inclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F05
...
* >> Início da inclusão:
FORM verifica_taxa_st.
CHECK sy-tcode EQ '/PWS/ZYCI023_C' .
CHECK itab_it-aliq_icms_st IS INITIAL.
IF /pws/zycie085-dtuserc IS INITIAL.
/pws/zycie085-dtuserc = sy-datlo.
ENDIF.
REFRESH itab_imposto.
CLEAR itab_imposto.
itab_imposto-nrseq = itab_it-nrseq.
itab_imposto-ebeln = itab_it-ebeln.
itab_imposto-ebelp = itab_it-ebelp.
APPEND itab_imposto.
e_subrc = '0'.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI023'
'DI018'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DI018' 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 = '0'.
CALL FUNCTION '/PWS/ZYCI_VERIFICA_TAXA_ST'
EXPORTING
data_di = /pws/zycie085-dtuserc
branch = /pws/zycie085-j_1bbranch
bukrs = /pws/zycie085-bukrs
regio = /pws/zycit062-regio
TABLES
itab_impostos = itab_imposto.
IF itab_imposto-rate1 IS INITIAL.
itab_it-edita_st = 'X'.
ENDIF.
itab_it-aliq_icms_st = itab_imposto-rate1.
itab_it-basred_st = itab_imposto-basred.
ENDIF.
ENDFORM.
FORM load_iicms_st.
t_icmsbs_st = itab_it-baseicms_st.
IF /pws/zycit062-icms_st EQ 'X'.
IF itab_it-edita_st NE 'X' .
t_icmsbs_st = itab_it-baseicms *
( 1 + itab_it-aliq_icms_st ).
IF NOT itab_it-basred_st IS INITIAL.
t_icmsbs_st = t_icmsbs_st *
( itab_it-basred_st / 100 ).
ENDIF.
ENDIF.
itab_it-vlicms_st = t_icms_st =
t_icmsbs_st * ( itab_it-aliq_icms_st / 100 ) .
itab_it-baseicms_st = t_icmsbs_st.
s_wstreco = s_wstreco + t_icms_st.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023I01
...
MODULE calc_vicms INPUT.
MOVE-CORRESPONDING /pws/zycie003 TO itab_it.
MOVE-CORRESPONDING /pws/zycie100a TO itab_it.
itab_it-basepis = t_pisbs .
itab_it-basecofins = t_cofinsbs .
* >> Início da inclusão: MODULE CALC_VICMS
itab_it-baseicms_st = t_icmsbs_st .
* << Fim da inclusão
PERFORM set_codregtri.
PERFORM: load_regt USING /pws/zycie100a-codregtriicms
/pws/zycie085-ntimp '4' CHANGING t_regde3.
PERFORM load_fun_icms.
IF /pws/zycie003-advalicms >= '100'.
/pws/zycie003-advalicms = '0'.
ENDIF.
v_tipop = 'T' .
PERFORM calcula_impostos USING v_tipop.
itab_it-basred = /pws/zycie003-basred.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023O01
...
NOT /pws/zycie085-belnr_2 IS INITIAL OR
NOT /pws/zycie085-belnr_3 IS INITIAL OR
NOT /pws/zycie085-belnr_0_f05 IS INITIAL OR
NOT /pws/zycie085-belnr_1_f05 IS INITIAL OR
NOT /pws/zycie085-belnr_2_f05 IS INITIAL OR
NOT /pws/zycie085-belnr_3_f05 IS INITIAL .
screen-input = 0.
MODIFY SCREEN.
ENDIF.
WHEN '0133'.
* >> Início da inclusão: MODULE SET_SCREEN_PADRAO
IF screen-name EQ 'S_WSTRECO' OR
screen-name EQ 'TXTST' .
IF /pws/zycit062-icms_st EQ space.
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDIF.
* << Fim da inclusão
WHEN '0141'.
IF itab_zycit001-meioemba EQ 'PS'.
screen-input = 0.
ENDIF.
WHEN '0221'.
IF itab_zycit001-meioemba EQ 'PS'.
IF screen-name EQ '/PWS/ZYCIE085-RECALF' OR
screen-name EQ '/PWS/ZYCIE085-SETOR'.
screen-input = 1.
ENDIF.
...
...
IF screen-name EQ '/PWS/ZYCIE095A-LIFNR' OR
screen-name EQ 'T_VLICMS'.
screen-input = 0.
ENDIF.
ENDIF.
WHEN '0433'.
IF screen-name EQ '/PWS/ZYCIE100A-CODREGTRIICMS'.
IF itab_zycit001-regime EQ '12' AND
/pws/zycie003-adm_temp EQ 'X'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN_PADRAO
IF /pws/zycit062-icms_st EQ 'X'.
IF ( screen-name EQ 'T_ICMSBS_ST' OR
screen-name EQ '/PWS/ZYCIE100A-ALIQ_ICMS_ST' ) .
IF ( /pws/zycie100a-edita_st EQ 'X' OR
/pws/zycie100a-aliq_icms_st IS INITIAL ).
screen-input = '1'.
MODIFY SCREEN .
ENDIF.
ENDIF.
ELSE.
IF ( screen-name = 'T_ICMS_ST' OR
screen-name = '/PWS/ZYCIE100A-ALIQ_ICMS_ST' OR
screen-name = 'T_ICMSBS_ST' OR
screen-name = '/PWS/ZYCIE100A-EDITA_ST' OR
screen-name = 'ICMS_ST' ).
screen-invisible = '1'.
MODIFY SCREEN.
ENDIF.
ENDIF.
* << Fim da inclusão
WHEN '0435'.
IF screen-name EQ '/PWS/ZYCIE100A-CODREGTRIPISCOFI'.
IF itab_zycit001-regime EQ '12' AND
/pws/zycie003-adm_temp EQ 'X'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023X01
...
s_wiiredu LIKE s_fbvr,
s_wiidevi LIKE s_fbvr,
s_wiireco LIKE s_fbvr,
s_wipidevi LIKE s_fbvr,
s_wipireco LIKE s_fbvr,
s_wpisreco LIKE s_fbvr,
s_wcofreco LIKE s_fbvr,
s_wicdevi LIKE s_fbvr,
s_wicreco LIKE s_fbvr,
s_wsisco LIKE s_fbvr,
* >> Início da inclusão:
* << Fim da inclusão
t_iibas LIKE t_icms,
t_icmsbs LIKE /pws/zycie085-vlfob,
t_pis LIKE t_icms ,
t_pisbs LIKE t_icms ,
t_cofins LIKE t_icms,
t_cofinsbs LIKE t_icms,
t_vmle LIKE /pws/zycie085-vlfob,
t_vmle2 LIKE /pws/zycie085-vlfob,
t_ivmle LIKE t_icms,
t_ivmle2 LIKE t_icms,
...
...
* >> Início da inclusão:
DATA : BEGIN OF itab_imposto OCCURS 0.
INCLUDE STRUCTURE /pws/zycie110.
DATA : END OF itab_imposto.
data: T_ICMSBS_st type /pws/zycie085-vlfob,
t_icms_st type /pws/zycie085-vlfob,
s_wstreco type /pws/zycit085-vlfob.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR005
REPORT /pws/zycir005 MESSAGE-ID /pws/zycim
LINE-SIZE 182
NO STANDARD PAGE HEADING.
INCLUDE /pws/zycii000.
* >> Início da inclusão:
tables: /pws/zycit042,
/pws/zycit044.
* << Fim da inclusão
...
...
ENDIF.
LOOP AT itab_j_1bnflin.
MOVE-CORRESPONDING itab_j_1bnflin TO itab_j_1bnflin_aux.
APPEND itab_j_1bnflin_aux.
ENDLOOP.
CLEAR itab_1bnfstx.
FREE itab_1bnfstx.
REFRESH itab_1bnfstx.
SELECT * FROM j_1baj
INTO TABLE itab_j_1baj
* >> Início da exclusão: FORM SELECIONA_DADOS
WHERE ( taxgrp = 'ICMS' OR taxgrp = 'IPI' ).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE ( taxgrp = 'ICMS' OR
taxgrp = 'IPI' or
taxgrp = 'ICST' ).
* << Fim da inclusão
LOOP AT itab_j_1baj.
itab_tpimp-sign = 'I'.
itab_tpimp-option = 'EQ'.
itab_tpimp-low = itab_j_1baj-taxtyp.
APPEND itab_tpimp.
ENDLOOP.
IF NOT itab_j_1bnflin[] IS INITIAL.
SELECT * FROM j_1bnfstx
INTO TABLE itab_1bnfstx
FOR ALL ENTRIES IN itab_j_1bnflin
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR035
...
IF NOT '356' CA /pws/zycit100-codregtripiscofi OR
( /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.
* >> Início da inclusão: FORM CRIA_DESPESAS
PERFORM entra_despesa USING it_desp 'ICMSST'
itab_zycit100-vlicms_st
/pws/zycbt007-waersb
itab_zycit100-aliq_icms_st 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.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycit036.
IF itab_zycit036-vlreal < '0'.
CLEAR itab_zycit036-vlreal.
MODIFY itab_zycit036.
ENDIF.
ENDLOOP.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI023 0133
INCLUIR CAMPO TEXTO "S_WSTRECO"
Comprimento Visível 20
Linha 12
Coluna 62
Formato DEC
Texto ____________________
Campo de Saída 'X'
Alinhamento direita 'X'
INCLUIR TEXTO "TXTST"
Comprimento Visível 13
Linha 11
Coluna 62
Formato CHAR
Texto Valor ICMS ST
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI023 0433
INCLUIR CAMPO TEXTO "/PWS/ZYCIE100A-ALIQ_ICMS_ST"
Comprimento Visível 8
Linha 7
Coluna 58
Formato DEC
Linhas mínimas 6
Colunas mínimas 2
Texto ____,__V
Campo de Saída 'X'
Do dict. 'X'
Fonte equidistante 'X'
INCLUIR TEXTO "/PWS/ZYCIE100A-ALIQ_ICMS_ST"
Comprimento Visível 11
Linha 7
Coluna 40
Formato CHAR
Texto Alíquota ST
Código função
INCLUIR TEXTO "/PWS/ZYCIE100A-BASEICMS_ST"
Comprimento Visível 12
Linha 6
Coluna 40
Formato CHAR
Texto Base ICMS ST
Código função
INCLUIR CAIXA DE VERIFICAÇÃO "/PWS/ZYCIE100A-EDITA_ST"
Comprimento Visível 1
Linha 5
Coluna 40
Formato CHAR
Grupo 1 AC
Linhas mínimas 1
Texto _
Código função EDIT
Campo de Entrada 'X'
Campo de Saída 'X'
Entrs.Possíveis 'X'
INCLUIR CHTXT "/PWS/ZYCIE100A-EDITA_ST"
Comprimento Visível 15
Linha 5
Coluna 42
Formato CHAR
Grupo 1 AC
Texto Edição de dados
INCLUIR TEXTO "/PWS/ZYCIE100A-VLICMS_ST"
Comprimento Visível 14
Linha 8
Coluna 40
Formato CHAR
Texto Vl.Recolher ST
Código função
INCLUIR FRAME "ICMS_ST"
Altura 6
Comprimento Visível 57
Linha 4
Coluna 36
Formato CHAR
Texto ICMS ST
INCLUIR CAMPO TEXTO "T_ICMSBS_ST"
Comprimento Visível 20
Linha 6
Coluna 58
Formato DEC
Texto ____________________
Campo de Saída 'X'
INCLUIR CAMPO TEXTO "T_ICMS_ST"
Comprimento Visível 20
Linha 8
Coluna 58
Formato DEC
Texto ____________________
Campo de Saída 'X'
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0433
process before output.
module: set_screen_padrao.
process after input.
field : /pws/zycie100a-codregtriicms,
/pws/zycie100a-codfunlegicms
module load_fun_icms .
chain.
field: /pws/zycie003-advalicms,
/pws/zycie003-basred ,
/pws/zycie100a-icms_dif,
* >> Início da exclusão:
/pws/zycie100a-codregtriicms
* << Fim da exclusão
* >> Início da inclusão:
/pws/zycie100a-codregtriicms,
t_icmsbs_st,
/pws/zycie100a-aliq_icms_st
* << Fim da inclusão
module calc_vicms on chain-request.
endchain.
module load_fun_icms .