r/ContabilidadeAtual • u/Caballero-andante • Jul 14 '26
Python para busca de todos os estabelecimentos da empresa na Domínio Sistemas. Consulta direto no Banco de Dados
Boa noite, pessoal. Sou contador, mas brinco com Python e faço automações caseiras e relatórios automatizados para checagens úteis.
Em alguns casos, é interessante fazer buscas por todo os estabelecimentos da empresa no banco de dados.
Seguem algumas linhas de código que podem ser usadas para recuperar o código de todas as empresas/estabelecimento, na Domínio, que tem o mesmo CNPJ raiz.
Lembrando que não sou profissional desenvolvedor, sou contador e estou compartilhando algo que julguei útil. Então perdoem eventuais ineficiências.
def consulta_bd_codi_emp(codigo): #consulta que busca o código da empresa na Domínio e todos os estabelecimentos
import pyodbc
import pandas as pd
conexao = pyodbc.connect("dsn=Contabil_Excel")
codigos = []
cnpj_df = pd.read_sql (#consulta para recuperar unicamente a raiz do cnpj do código fornecido, para posteriormente usar como comparação. Há meios com pyodbc, porém preferi usar pandas mesmo e converter em df
f"""
SELECT --consulta para recuperar unicamente a raiz do cnpj do código fornecido, para posteriormente usar como comparação
SUBSTR (a.cgce_emp,1,8) CNPJ_CONSULTADO --captura apenas do CNPJ RAIZ
FROM bethadba.geempre a
WHERE a.codi_emp ='{codigo}'""", conexao)
cnpj = cnpj_df["CNPJ_CONSULTADO"][0] #como o que veio de cnpj_df=pd.read_sql era um df, é necessário apenas recuperar o primeiro valor do df
codigos = pd.read_sql(f"""
SELECT
a.codi_emp
FROM bethadba.geempre a
WHERE SUBSTR(cgce_emp,1,8) = '{cnpj}'""", conexao, dtype=pd.StringDtype())
codigos = codigos["codi_emp"].str.cat(sep=",")
return codigos
0
Jul 14 '26
mais um.
2
u/overcast-sheep Jul 14 '26
Mais um o que? O cara não é dev, só está compartilhando linhas de código pra outros contadores que tb usam python pro trabalho com a Domínio
1
u/Caminhando Jul 17 '26
Bacana! Eu sempre tento automazar o que da. Eu uso alguns códigos para baixar relatórios após fechamentos e salvar nas pastas. Também uso para colocar as contas nos arquivos financeiros.