====== 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**. {{:menu:estoque:01_exportanto_planilha_csv.png?nolink&400|}} * 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. {{:menu:estoque:02_seleciona_formato_caminhoarquivo.png?nolink&400|}} ---- ===== 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**. {{:menu:estoque:exporta_csv_xlsx.png?nolink&400|}} 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.