Incluído Rotina FISA116 para cálculo da base e valor de ICMS para registro H020 SPED FISCAL
Esta rotina terá objetivo de realizar a composição dos valores a serem gerados no registro H020 do SPED Fiscal. Os valores serão compostos basicamente considerando inventário conforme data de fechamento de estoque informada, e as opções de regras pré definidas, já que a forma de obter os valores é diferente em alguns Estados.
Uma vez os valores já calculados, serão gravados em tabela, ficando assim disponíveis para a geração do SPED Fiscal no registro H020.
Para o processamento da rotina, o usuário deverá informar a data de fechamento do estoque, e definir das opções do combo, qual será a regra aplicada para processar os valores de ICMS. Após confirmação destas informações, a rotina deverá processar todos os produtos em estoque que tiverem alteração de tributos, ou seja, que tiver o campo B5_ALTTRIB igual a “1-Sim”, aplicar a regra selecionada e gravar as informações na tabela.
Esta rotina deverá ser processada por cada filial que irá entregar o SPED Fiscal, já que o mesmo produto poderá ser processado com regras diferentes dependendo do Estado do cliente, pois pode ser o caso de possuir filiais em vários Estados, e o cadastro de produto for compartilhado. O processamento é baseado na regra pré definida, que pode ser utilizada para mais de um Estado.
No Configurador (SIGACFG) acesse Ambiente/Cadastros/Menus e inclua no menu do módulo Livros Fiscais (SIGAFIS) a opção para execução do Cadastro, conforme especificação a seguir:
Menu | Atualizações |
---|---|
Submenu | SPED |
Nome da Rotina | Comp. Val. ICMS H020 |
Programa | FISA116 |
Módulo | 09 |
Tipo | 01 |
Tabelas | F0M |
F0M – Composição dos valores de ICMS
Ordem | Chave | Descrição |
---|---|---|
1 | F0M_FILIAL+F0M_DTFECH+F0M_CODIGO+F0M_CST+F0M_SITUA+F0M_CLIFOR+F0M_LOJA+F0M_REGRA | Dt. Fecham.+Codigo+CST+Situacao+Clifor+Loja+Regra |
Criação de Perguntas no arquivo SX1 – Cadastro de Perguntes:
Grupo | FISA116 |
---|---|
Ordem | 01 |
Pergunta | Data de Fechamento Inventario |
Tipo | Data |
Tamanho | 8 |
Grupo | FISA116 |
---|---|
Ordem | 02 |
Pergunta | Regra a ser Aplicada |
Tipo | Caracter |
Tamanho | 1 |
Opções | 1-Md.Pd.ICMS/ST 2-Cust.Méd. MVA 3-Pr+Seg+fret–IPI 4-Legis. Esp. 5-Media Ponderada da Base de ICMS ST Recolhida Anteriormente 6-Média Ponderada da Base de ICMS com Redução |
Para atualização dos campos campo F0M_REGRA e F0M_MOTINV , em clientes que operam nas releases 12.1.2210 ou anteriores, será necessária a execução do compatibilizador UPDDISTR com o pacote diferencial (SDFBRA.txt). Esta correção será disponibilizada na Expedição contínua a partir de e o pacote poderá ser acessado através dos links disponibilizados na documentação Pacotes de Atualização - Fiscal. Informações sobre a Expedição contínua acessar: http://tdn.totvs.com/x/H4uCEw. |
Grupo | FISA116 |
---|---|
Ordem | 03 |
Pergunta | Separa por CST do Documento? |
Tipo | Caracter |
Tamanho | 1 |
Opções | 1-Não 2-Sim |
Grupo | FSR116 |
---|---|
Ordem | 01 |
Pergunta | Data de Fechamento Inventario |
Tipo | Data |
Tamanho | 8 |
Criação do Campo no arquivo SX2
Chave | Nome | Modo | Pyme |
---|---|---|---|
F0M | Composição dos valores de ICMS | Exclusivo | Sim |
Criação do Campo no arquivo SX3 – Campos:
Campo | F0M_FILIAL |
---|---|
Tipo | Caracter |
Tamanho | 2 |
Decimal | 0 |
Formato | @! |
Título | Filial |
Descrição | Filial do Sistema |
Usado | Não |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Grupo de Campos | 033 - Tamanho da Filial |
Campo | F0M_REGRA |
---|---|
Tipo | Caracter |
Tamanho | 1 |
Decimal | 0 |
Formato | @! |
Título | Regra Calc |
Descrição | Regra de Calculo |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Opções | 1=Méd. Pond. Base de ICMS ST; 5=Media Ponderada da Base de ICMS ST Recolhida Anteriormente 6=Média Ponderada da Base de ICMS com Redução |
Val. Sistema | Pertence("123456") |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_SITUA |
---|---|
Tipo | Caracter |
Tamanho | 1 |
Decimal | 0 |
Formato | @! |
Título | Situação |
Descrição | Situação |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Opções | 0=Item em seu poder; |
Val. Sistema | Pertence("012") |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_DTFECH |
---|---|
Tipo | Data |
Tamanho | 8 |
Decimal | 0 |
Formato | 99/99/9999 |
Título | Dt. Fecham. |
Descrição | Dt. Fechamento de estoque |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Val. Sistema | DataValida() |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_CODIGO |
---|---|
Tipo | Caracter |
Tamanho | 15 |
Decimal | 0 |
Formato | @! |
Título | Código |
Descrição | Código do Produto |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Val. Sistema | ExistCpo("SB1") |
Contexto | Real |
Propriedade | Alterar |
Cons. Padrão | SB1 |
Campo | F0M_CST |
---|---|
Tipo | Caracter |
Tamanho | 3 |
Decimal | 0 |
Formato | @! |
Título | Sit.Tribut. |
Descrição | Situação Tributaria |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_BASICM |
---|---|
Tipo | Numérico |
Tamanho | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Base Unit |
Descrição | Base unitária de ICM |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Val. Sistema | Positivo() |
Contexto | Real |
Propriedade | Alterar |
Gatilhos | Sim |
Campo | F0M_ALIQ |
---|---|
Tipo | Numérico |
Tamanho | 6 |
Decimal | 2 |
Formato | @E 999.99 |
Título | Alíq. ICM |
Descrição | Alíquota de ICMS |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_VALICM |
---|---|
Tipo | Numérico |
Tamanho | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Vlr.Unit.ICM |
Descrição | Valor unitário ICMS |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Gatilhos | Sim |
Campo | F0M_MVA |
---|---|
Tipo | Numérico |
Tamanho | 6 |
Decimal | 2 |
Formato | @E 999.99 |
Título | MVA |
Descrição | Margem Vlr. ICMS/ST |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Val. Sistema | Positivo() |
Contexto | Real |
Propriedade | Alterar |
Gatilhos | Sim |
Campo | F0M_QUANT |
---|---|
Tipo | Numérico |
Tamanho | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Quantidade |
Descrição | Quantidade em estoque |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_VALCMD |
---|---|
Tipo | Numérico |
Tamanho | 18 |
Decimal | 4 |
Formato | @E 9,999,999,999,999.9999 |
Título | V. C. Med. |
Descrição | Valor Custo Médio |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_CLIFOR |
---|---|
Tipo | Caracter |
Tamanho | 6 |
Decimal | 0 |
Formato | @! |
Título | Cli/For |
Descrição | Cliente / Fornecedor |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Validação | vazio() .or. (ExistCpo('SA1') .or. ExistCpo('SA2')) |
Propriedade | Alterar |
Grupo de Campos | 001 - Código Cliente/Fornecedor |
Campo | F0M_LOJA |
---|---|
Tipo | Caracter |
Tamanho | 4 |
Decimal | 0 |
Formato | @! |
Título | Loja |
Descrição | Loja Cliente / Fornecedor |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Grupo de Campos | 002 - Loja Cliente/Fornecedor |
Campo | F0M_TOTICM |
---|---|
Tipo | Numérico |
Tamanho | 18 |
Decimal | 4 |
Formato | @E 9,999,999,999,999.9999 |
Título | Total ICMS |
Descrição | Valor total de ICMS |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_DESPRO |
---|---|
Tipo | Caracter |
Tamanho | 50 |
Decimal | 0 |
Formato | @! |
Título | Des. Produto |
Descrição | Descrição Produto |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Virtual |
Propriedade | Visualizar |
Relação | Iif( INCLUI , "" , Posicione ( "SB1" , 1 , xFilial("SB1") + F0M_CODIGO , "B1_DESC" ) ) |
Campo | F0M_UM |
---|---|
Tipo | Caracter |
Tamanho | 15 |
Formato | @! |
Título | Unidade |
Descrição | Unidade de Medida |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Virtual |
Consulta Padrão | SAH |
Propriedade | Visualizar |
Help | Unidade de Medida |
Validação | ExistCpo("SAH") |
Campo | F0M_VUNIT |
---|---|
Tipo | Numérico |
Tamanho | 18 |
Decimal | 6 |
Formato | @E 99,999,999,999.999999 |
Título | Valor Unit. |
Descrição | Valor Unitário |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Real |
Help | Valor Unitário do produto |
Propriedade | Alterar |
Campo | F0M_TPCF |
---|---|
Tipo | Caracter |
Tamanho | 1 |
Formato | @! |
Título | Cli/For |
Descrição | Cliente/Fornecedor |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Virtual |
Opções | C=Cliente;F=Fornecedor |
Propriedade | Visualizar |
Help | Indica se participante é cliente ou fornecedor. |
Validação | Vazio().or. Pertence("CF") |
Campo | F0M_CONTA |
---|---|
Tipo | Caracter |
Tamanho | 20 |
Formato | @! |
Título | Cta Contábil |
Descrição | Conta Contábil |
Usado | Sim |
Obrigatório | Não |
Browse | Sim |
Contexto | Virtual |
Consulta Padrão | CT1 |
Grupo | 033 |
Propriedade | Visualizar |
Help | Indica se participante é cliente ou fornecedor. |
Validação | vazio().or. Ctb105Cta() |
Campo | F0M_QTDCST |
---|---|
Tipo | Numérico |
Tamanho | 14 |
Decimal | 2 |
Formato | @E 999,999,999.99 |
Título | Qtd. por CST |
Descrição | Quantidade por CST |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Campo | F0M_MOTINV |
---|---|
Tipo | Caracter |
Tamanho | 2 |
Decimal | 0 |
Formato | @! |
Título | Mot. Invent. |
Descrição | Motivo de Inventário |
Usado | Sim |
Obrigatório | Sim |
Browse | Sim |
Contexto | Real |
Propriedade | Alterar |
Para criação do campo F0M_QTDCST e da pergunta Separa por CST do Documento criada no Pergunte FISA116 - Ordem 03, em clientes que operam nas releases 12.1.2210 ou anteriores, será necessária a execução do compatibilizador UPDDISTR com o pacote diferencial (SDFBRA.txt). Esta correção será disponibilizada na Expedição contínua a partir de e o pacote poderá ser acessado através dos links disponibilizados na documentação Pacotes de Atualização - Fiscal. Informações sobre a Expedição contínua acessar: http://tdn.totvs.com/x/H4uCEw. |
Criação do parâmetro no arquivo SX6 – parâmetros:
Item/Pastas | Descrição |
---|---|
Nome | MV_TXTH020 |
Tipo | Caracter |
Descrição | Informe texto complementar para compor campo 09-TXT_COMPL do registro H010 quando existir Registro H020 correspondente |
Criação do parâmetro no arquivo SX7 – Gatilhos
Campo | F0M_BASICM |
---|---|
Sequência | 001 |
Cnt. Domínio | F0M_VALICM |
Tipo | P - Primário |
Regra | (M->F0M_BASICM * (M->F0M_ALIQ/100)) |
Campo | F0M_MVA |
---|---|
Sequência | 001 |
Cnt. Domínio | F0M_BASICM |
Tipo | P - Primário |
Regra | ((M->F0M_VALCMD*(1 + M->F0M_MVA))/M->F0M_QUANT) |
Campo | F0M_VALICM |
---|---|
Sequência | 001 |
Cnt. Domínio | F0M_TOTICM |
Tipo | P - Primário |
Regra | (M->F0M_VALICM * M->F0M_QUANT) |
A base de cálculo será calculada em função da regra selecionada pelo usuário, porém a alíquota interna será gerada da mesma forma em todas as regras, considerando alíquota informada no cadastro de produto B1_PICM, ou então a do parâmetro MV_ICMPAD caso o campo B1_PICM estiver zerado.
Esta regra basicamente irá fazer a média ponderada da base de cálculo do ICMS ST das últimas aquisições do produto processado, considerando a quantidade em estoque, ou seja, se houver 100 unidades do produto em estoque, então deverão ser consideradas tantas notas fiscais necessárias para compor a quantidade de 100 unidades, e então fazer a média ponderada:
Base de cálculo unitária = Somatório da Base de Cálculo ICMS ST / Quantidade em estoque
Caso a Pergunta Detalha por CST esteja selecionada com a Opção "Sim", a Base de Cálculo Unitária irá considerar de forma proporcional o somatório da Base de Cálculo ICMS ST por CST do Produto contido no Documento de Entrada.
Nesta regra o cálculo será feito considerando o valor do custo médio já calculado pelo estoque, devendo somente aplicar o MVA. Então ficará da seguinte maneira:
Base de cálculo unitária = Valor do Custo Médio * (1 + (MVA do produto / 100) )
Lembrando que o MVA poderá ser informado nos cadastros de Produto, Exceção Fiscal e UFxUF, porém não conseguimos obter o MVA destes cadastros, por exemplo se o MVA for definido na Exceção Fiscal, não conseguiremos posicionar na linha correta somente com código de produto, não podemos utilizar MVA gravados na nota, pois é o valor utilizado na época, pode ter sido alterado, além do cenário da exclusão do ST, os cadastros não terão mais o MVA preenchido. Por este motivo para esta regra de cálculo o usuário deverá informar manualmente o valor do MVA vigente após o processamento do do inventario.
Já para esta regra, a base de cálculo será obtida pelo somatório do valor do preço + seguro + frete – IPI das últimas aquisições do produto. As notas de aquisições a serem consideradas deverão ser as mais recentes, e as notas deverão ser suficientes para compor a quantidade informada em estoque, ou seja, se houver 100 unidades do produto em estoque, então deverão ser consideradas tantas notas fiscais necessárias para compor a quantidade de 100 unidades, e então fazer a média ponderada, já que a base de cálculo é unitária.
Base de Cálculo unitária = (Somatório do preço de aquisição + seguro + frete – IPI) / Quantidade em estoque
Caso a Pergunta Detalha por CST esteja selecionada com a Opção "Sim", a Base de Cálculo Unitária irá considerar de forma proporcional o somatório do Preço de aquisição + seguro + frete - IPI por CST do Produto contido no Documento de Entrada.
Esta regra será aplicada para as situações onde a base de cálculo unitária deverá ser definida através de valores publicados na legislação que trata deste produto no regime de ST, que podem ser diversas legislações de diversos produtos variando ainda por Estado, além de poderem ser alteradas, ficando assim inviável realizar o mapeamento destas informações no sistema. Por este motivo, quando selecionada esta regra, a rotina irá preencher somente o CST de ICMS e alíquota interna do produto, ficando por conta do usuário informar o valor da base de cálculo unitária da legislação específica.
Esta regra basicamente irá fazer a média ponderada da base de cálculo do ICMS ST das últimas aquisições do produto processado, considerando a quantidade em estoque, ou seja, se houver 100 unidades do produto em estoque, então deverão ser consideradas tantas notas fiscais necessárias para compor a quantidade de 100 unidades, e então fazer a média ponderada:
Base de cálculo unitária = Somatório da Base de Cálculo ICMS ST / Quantidade em estoque
Esta regra basicamente irá fazer a média ponderada da base de cálculo do ICMS Próprio e ICMS ST das últimas aquisições do produto processado que foram configuradas com redução de base e seus valores gravados nos campo FT_BASEICM e FT_BASERET , considerando a quantidade em estoque, ou seja, se houver 100 unidades do produto em estoque, então deverão ser consideradas tantas notas fiscais necessárias para compor a quantidade de 100 unidades, e então fazer a média ponderada:
Base de cálculo unitária = Somatório da Base de Cálculo ICMS ou ICMS ST / Quantidade em estoque
Esta regra considera apenas produtos cujo classificação fiscal de estoque (B1_CLASFIS) seja 60 - Recolhido anteriormente |
No momento que incluo um Motivo de Inventário Tipo 01 - Final do período e realizado a importação do inventário via FISA116 com a regra 6- Redução de Base, atualizo também o campo F0M_MOTINV. |
Essa nova regra, busca na tabela SFT os campos FT_BASEICM onde ocorreu a redução quando configurado com CST 20, e o campo FT_BASERET para obter o valor com redução do ICMS ST quando configurado com CST 70.
Foi criada uma memória de campo para armazenar os valores F0M_BASEICM e F0M_VALICM.
Para exemplificar: consideremos uma operação de aquisição com duas notas:
1ª Nota: 1 unidade no valor total de 1000,00, com uma redução de 50%, o valor com redução é de 500,00.
2ª Nota: 1 unidade no valor total de 1000,00, com uma redução de 60%, o valor com redução é de 400,00.
Realize o cadastro do Motivo de Inventário com fechamento em 31/12/2022, utilizando o motivo 01 - Final do período.
Em seguida, faça o Registro de Inventário P7 (MATR460) com fechamento em 31/12/2022.
Acesse a rotina FISA116 - Composição de Valores do ICMS:
Aplique a nova regra 06 - Média Ponderada da Base de ICMS com Redução.
F0M_BASEICM = (500 + 400) / 2 unidades = 250,00
F0M_VALICM = 900 * 18% (alíquota de ICMS do produto) = 162,00 / 2 = 81,00
F0M_TOTICM = 81 * 2 unidades = 162,00
Esses valores consideram a redução do ICMS Próprio utilizando CST 20, onde é recuperado o valor do campo FT_BASEICM. E para operações com redução de ICMS ST, utilizando CST 70, é recuperado o valor do campo FT_BASERET. |
Geração do Bloco H
No exemplo abaixo onde temos 4 notas com reduções de ICMS Próprio e ICMS ST , seus H020 com CST 20 e 70.
Este relatório irá buscar as informações da nova tabela com a movimentação gerada a partir da rotina de que calcula as informações de ICMS
Atualmente o registro H020 é gerado com o valor do custo médio, gerado pelo inventário, considerando também a opção de alteração de tributação no complemento do produto o B5_ALTTRIB. Porém com esta implementação, teremos mais de uma forma de geração:
1) através de ponto de entrada, o SPEDH020, onde o usuário irá retornar todos os valores do H020.
2) verificar se existe informação gravada para o produto e data de fechamento de estoque, se houver, então H020 deverá ser gerado com informações já processadas pela nova rotina.
Se não houver ponto de entrada e nem informações na nova tabela, então deverá processar como sempre fez com o custo médio.
Lembrando que a data de fechamento do estoque informada no SPED Fiscal deverá ser a mesma data informada no processamento da nota rotina.
Quando um determinado produto é excluído do regime de ST, trata-se de hipótese de crédito para o contribuinte, pois as saídas destes produtos serão agora tributadas, porém ele não tomou crédito quando comprou a mercadoria, já que estava prevista no regime ST, então para compensar o contribuinte ele terá direito aos créditos destes produtos levantados no estoque.
Já quando um determinado produto é incluído no regime de ST, então trata-se de hipótese de débito, pois as saídas não serão mais tributadas, porém o contribuinte tomou crédito na aquisição, e como o produto está no regime de ST não tem direito ao crédito de ICMS.
Cada Estado irá determinar como proceder na utilização dos créditos e pagamento destes débitos, se será através de ajuste, através de nota, parcelado ou integral.
Na nesta implementação, os seguintes estados estavam vinculados: ES, AM, SC, RS, SP e MS.
PE - SPEDH020 - SPEDFISCAL - Registro H020
Verificar se para os produtos movimentados o campo "Alter. Trib" (B5_ALTTRIB) no Complemento de Produto esta preenchido (deve estar = 1) ou produto deve estar cadastrado na rotina de motivo de inventario (FISA120) com mesma data de fechamento de estoque informada na rotina F0M.
Caso campos de Unidade (F0M_UM) ou conta contábil (F0M_CONTA) estejam em branco, no processamento do SPED FISCAL será considerado conteúdo cadastrado no produto (SB1).
Para atender uma legislação específica do estado do Rio Grande do Sul - RS (IN 45/98,), onde é necessário gerar mais de 1 H020 para o mesmo H010 agrupando as informações de acordo com o Código de Situação Tributária - CST. Há a possibilidade de processar a rotina FISA116 para agrupar por CST através do Pergunte "Separa por CST do Documento - 2 = Sim", dessa forma será gerado o H020 de acordo com Produto + CST. Esse mesmo tratamento é possível ser gerado através do PE SPEDH020. |
Ao selecionar opção de processar inventario será processado inventario através da função SPDBlocH que retornará o estoque com base na data de fechamento informada .
Para que os dados contidos na tabela F0M sejam consideradas no arquivo SPED FISCAL devem seguir as seguintes regras:
Quando for necessário informa mais de um fechamento de inventário deve ser utilizada a rotina de Motivo de Inventário (FISA120) SPDFIS - Motivo de Inventário Bloco H Incluído ponto de entrada SPEDALTH para processamento do registro H010 SPED FISCAL. Através desde ponto de entrada é possível enviar tabela temporária que será processada pela rotina SPED FISCAL e Composição do registro H020 (FISA116) sem que seja processado Estoque. |