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:


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

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

  1. **ALIQ. PIS**
  2. **ALIQ. COFINS**
  3. **COD. DA NATUREZA PIS/COFINS**

Após a inserção:

⚠️ 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

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

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

⚠️ 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:

⚠️ 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:

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:

⚠️ 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


7.2 Aplicar a fórmula para gerar o SQL

="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


7.4 Validação do resultado