Tabela de conteúdos
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.