Ello - Base de Conhecimentos

Processo de Configuração Tributária de Produtos via Planilha

1. Extração de Dados do Banco de Dados

Primeiramente, no banco de dados do cliente, precisamos acessar o IBExpert e, no executor de SELECT, rodar o comando abaixo para obter as informações corretas dos produtos:

SELECT DISTINCT 
prod.idproduto, 
prod.descricao, 
prod.codncm, 
prod.codcest, 
prod.codbarras,
CASE
    WHEN ncm.idgrupoicms = 600 THEN 5405
    WHEN ncm.idgrupoicms = 605 THEN 5102
    ELSE 5102
END AS CFOP,
CASE
    WHEN ncm.idgrupoicms = 600 THEN 60
    WHEN ncm.idgrupoicms = 605 THEN '00'
    ELSE 40
END AS CST,
pis.entrada_pis_cst,
pis.entrada_cofins_cst,
pis.saida_pis_cst,
pis.saida_cofins_cst,
prod.cclasstrib_ibs_cbs AS cClassTrib
FROM testproduto prod
INNER JOIN testncm ncm                  ON (prod.codncm = ncm.codigo)
INNER JOIN testprodutoempresa proe      ON (prod.idproduto = proe.idproduto
                                        AND prod.empresa = proe.empresa)
INNER JOIN testgrupopiscofins pis       ON (proe.idgrupopiscofins = pis.idgrupopiscofins)
WHERE prod.ativo = 'S'
ORDER BY prod.idproduto

2. Exportação do Resultado para CSV

Após executar o SELECT no IBExpert, é necessário exportar o resultado para arquivo CSV.

Siga os passos abaixo:

  • Clique em SQL Editor na parte superior esquerda.
  • Clique em Export Data.

  • Na tela seguinte, selecione a opção CSV File.
  • No campo Destination File, clique na pastinha amarela.
  • Defina o nome do arquivo e o caminho onde ele será salvo.
  • Confirme a exportação.


3. Conversão do Arquivo CSV para Excel (.XLSX)

Após exportar o arquivo no formato CSV, é necessário convertê-lo para o formato .XLSX, pois é o formato mais utilizado pelas contabilidades.

Procedimento para conversão

  • Abra o arquivo CSV no Excel.
  • Clique em Arquivo.
  • Selecione Exportar.
  • Alterar tipo de arquivo.
  • Escolha Pasta de Trabalho (*.xlsx).
  • Clique em Salvar.

Após esse processo, o arquivo estará no formato adequado para envio à contabilidade.


4. Inserção das Colunas Tributárias Complementares

Antes de alterar os campos para formato Texto, é necessário inserir três novas colunas na planilha.

Procedimento

  • Localize a coluna cClassTrib.
  • Insira três novas colunas antes dela.
  • Nomeie as colunas na seguinte ordem:
  1. **ALIQ. PIS**
  2. **ALIQ. COFINS**
  3. **COD. DA NATUREZA PIS/COFINS**

Após a inserção:

  • A coluna cClassTrib será deslocada para a próxima posição disponível.

⚠️ Certifique-se de que os dados não foram desalinhados após a inserção das novas colunas.


5. Ajuste do Formato das Células para Texto

⚠️ Este passo é obrigatório antes de enviar o arquivo para a contabilidade.

O Excel pode remover automaticamente os zeros à esquerda e alterar formatações, o que compromete códigos e percentuais tributários.

Procedimento

  • Selecione todas as colunas da planilha (Ctrl + Shift + End).
  • Clique com o botão direito e selecione Formatar Células.
  • Escolha a opção Texto.
  • Clique em OK.

Campos mais sensíveis a alteração automática do Excel

  • CST
  • NCM
  • CEST
  • ALIQ. PIS
  • ALIQ. COFINS
  • COD. DA NATUREZA PIS/COFINS
  • cClassTrib

Caso esses campos permaneçam como Geral ou Número, o Excel poderá:

  • Remover zeros à esquerda
  • Alterar percentuais automaticamente
  • Converter códigos em número científico
  • Gerar inconsistências na criação do script
  • Causar erros na atualização do banco de dados

⚠️ Sempre conferir se todas as colunas estão realmente como TEXTO antes de enviar o arquivo.


Após isso, enviar a planilha para a contabilidade conferir e ajustar os dados. Quando a planilha retornar, seguir para as próximas etapas do processo.


6. Procedimentos após retorno da planilha pela Contabilidade

Após a contabilidade devolver a planilha preenchida, seguir os passos abaixo antes de gerar e executar o script de atualização dos produtos.


6.1 Conferência inicial da planilha

Antes de qualquer ajuste no banco, realizar uma conferência rápida:

  • Verificar se as colunas obrigatórias estão preenchidas.
  • Confirmar se os campos continuam no formato Texto (principalmente códigos com zero à esquerda).
  • Validar se não existem linhas duplicadas do mesmo produto (IDPRODUTO) com informações divergentes.

⚠️ Caso o Excel tenha convertido algum campo automaticamente (removendo zeros à esquerda), corrigir antes de prosseguir.


6.2 Identificar combinações de Grupo PIS/COFINS

O primeiro passo após o retorno da planilha é extrair as combinações únicas de Grupo PIS/COFINS, para cadastrar no banco de dados do cliente os grupos que ainda não existirem.

As combinações devem ser formadas com os seguintes campos:

  • ENTRADA_PIS_CST
  • ENTRADA_COFINS_CST
  • SAIDA_PIS_CST
  • SAIDA_COFINS_CST
  • COD. DA NATUREZA PIS/COFINS
  • ALIQ. PIS
  • ALIQ. COFINS

Essa etapa é necessária para que, posteriormente, seja possível vincular corretamente cada produto ao seu respectivo grupo no momento da atualização.

Para auxiliar na identificação das combinações únicas, pode-se utilizar ferramentas de IA (como ChatGPT) ou recursos do próprio Excel, solicitando a extração das combinações distintas com base nos campos acima.


6.3 Cadastro das combinações no banco de dados

Com as combinações identificadas:

  • Conferir no banco do cliente quais grupos já existem.
  • Cadastrar no banco as combinações que estiverem faltando.
  • Somente após isso seguir para a etapa de geração do script de atualização dos produtos.

⚠️ Importante: Não executar atualização de produtos apontando para grupos inexistentes, pois isso pode gerar inconsistência e falha no processo.


7. Geração e Execução do Script de Atualização (Excel → IBExpert)

Com os Grupos de PIS/COFINS já cadastrados no banco de dados do cliente, iremos gerar o script de atualização através do Excel.

⚠️ Importante: Realizar as validações primeiro em um backup do banco do cliente. Após confirmar que os resultados ficaram corretos, executar os scripts no banco de produção.


7.1 Inserir a coluna do Script no Excel

  • Adicionar uma última coluna vazia na planilha.
  • Essa coluna será utilizada para gerar automaticamente os comandos SQL.

7.2 Aplicar a fórmula para gerar o SQL

  • Cole a fórmula abaixo na primeira linha da nova coluna.
  • Replicar a fórmula para todas as demais linhas da planilha.
="UPDATE TESTPRODUTO SET CODNCM = '"&
SE(ARRUMAR(C2)="";"";TEXTO(VALOR(ARRUMAR(C2));"00000000"))&
"', CODCEST = '"&
SE(ARRUMAR(D2)="";"";TEXTO(VALOR(ARRUMAR(D2));"0000000"))&
"', CCLASSTRIB_IBS_CBS = '"&
SE(ARRUMAR(O2)="";"";TEXTO(VALOR(ARRUMAR(O2));"000000"))&
"' WHERE IDPRODUTO = "&VALOR(A2)&"; "&

"UPDATE TESTPRODUTOEMPRESA T SET IDGRUPOPISCOFINS = COALESCE(("&
"SELECT FIRST 1 G.IDGRUPOPISCOFINS FROM TESTGRUPOPISCOFINS G WHERE G.EMPRESA = 1 "&
"AND LPAD(TRIM(G.ENTRADA_PIS_CST),2,'0') = '"&SE(ARRUMAR(H2)="";"99";TEXTO(VALOR(ARRUMAR(H2));"00"))&"' "&
"AND LPAD(TRIM(G.ENTRADA_COFINS_CST),2,'0') = '"&SE(ARRUMAR(I2)="";"99";TEXTO(VALOR(ARRUMAR(I2));"00"))&"' "&
"AND LPAD(TRIM(G.SAIDA_PIS_CST),2,'0') = '"&SE(ARRUMAR(J2)="";"99";TEXTO(VALOR(ARRUMAR(J2));"00"))&"' "&
"AND LPAD(TRIM(G.SAIDA_COFINS_CST),2,'0') = '"&SE(ARRUMAR(K2)="";"99";TEXTO(VALOR(ARRUMAR(K2));"00"))&"'"&

SE(OU(N2="";N2=0);
"";
" ORDER BY CASE WHEN COALESCE(G.SAIDA_NATUREZA_RECEITA_ID,0) = COALESCE(("&
"SELECT FIRST 1 N2.CODIGO FROM TESTNATUREZARECEITA N2 WHERE N2.CODIGONATUREZA = "&N2&
"),0) THEN 0 ELSE 1 END"
)&

"), T.IDGRUPOPISCOFINS) "&
"WHERE T.EMPRESA = 1 AND T.IDPRODUTO = "&VALOR(A2)&";"

⚠️ Atenção: Caso a ordem das colunas da planilha seja alterada, é necessário ajustar as referências de células da fórmula (ex.: C2, D2, H2, I2, J2, K2, N2, O2).


7.3 Copiar e executar o script no IBExpert

  • Após replicar a fórmula, copie todas as células geradas (coluna do script).
  • Cole os comandos no executor de scripts do IBExpert.
  • Execute o script para atualizar os dados no sistema.

7.4 Validação do resultado

  • Conferir cadastros de produtos atualizados (NCM, CEST, cClassTrib e Grupo PIS/COFINS).
  • Validar se não houve produtos sem grupo vinculado.
  • Confirmar se as informações ficaram corretas antes de executar em produção.