CE PLUS - Nota 011157

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.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

TRATAMENTO PARA QUEBRAR ADIÇÃO DA DI POR INCOTERMS DIFERENTE.

AO CRIAR NF REMESSA COM MONTANTE BASE EXCLUÍDO, RETIRAR VALOR DO ICMS.

DETALHE DAS MENSAGENS DA NF NÃO BATE COM O TOTAL DAS DESPESAS NF

AO REPLICAR ITENS, ALGUNS CAMPOS ESTÃO SENDO APAGADOS

ERRO AO RATEAR DESPESAS POR PESO.

QUEBRA DE ADIÇÕES CONSIDERA QUANTIDADES DE ANTIDUMP DIFERENTES

AO ATUALIZAR DADOS LEVA VALOR DE ANTIDUMP PARA ITENS SEM O SERVIÇÕ

INCLUSÃO DA ITAB_ZYCIT398 NO INCLUDE X

LEI FISCAL REFERENTE PIS/COFINS NA NOTA FISCAL

APAGAR ALIQUOTA DE PIS/COFINS QUANDO PARAMET. MONTANTE EXCL. DA BASE

IMPLEMENTADO NA NOTA FISCAL RATEIO DA TX SISCOMEX NAS MENSAGENS E NR ATO

NÃO ATUALIZA A PASTA DESPESAS APÓS ALTERAR ANTIDUMPING

NA NFR SE ENTRAMOS, SAIRMOS, ENTRARMOS NOVAMENTE ACUMULA OS VALORES

AO CRIAR DI REGIME 12, NÃO DEVERÁ FECHAR CAMPOS COM SUSPENSÃO.

TRATAMENTO DE ADMISSÃO TEMPORÁRIA E CONSUMO NO EMBARQUE

ERRO DE ARREDONDAMENTO AO CALCULAR O VALOR DOS IMPOSTOS DA DI.

AJUSTE RATEIO ICMS,EXIBIÇÃO DETALHE FRETE E DIFERENÇA DE CENTAVOS

AO FAZER CONTABILIZAÇÃO NA PRESTAÇÃO DE CONTAS, LEVA VALOR NEGATIVO.

ESTÁ RATEANDO O VALOR DO ICMS INCORRETAMENTE NA PRESTAÇÃO DE CONTAS.

ESTÁ RATEANDO A DESPESA ANTIDUMPING POR ITENS SEM O ANTIDUMP.

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 .