This commit is contained in:
daniel.rodrigues 2025-10-31 10:50:17 -03:00
parent 9118096bee
commit 28909f6727

View File

@ -1,8 +1,15 @@
import os import os
import requests import requests
import pyodbc import pyodbc
import subprocess
from datetime import datetime, timedelta from datetime import datetime, timedelta
# Configurações de rede
NETWORK_SHARE = "//10.77.77.11/Contabilidade"
MOUNT_POINT = "/mnt/contabilidade"
SMB_USERNAME = "andrey.cunha" # ⚠️ ALTERE AQUI
SMB_PASSWORD = "88253332Wa@" # ⚠️ ALTERE AQUI
# Caminho para Linux (compartilhamento de rede montado) # Caminho para Linux (compartilhamento de rede montado)
OUTPUT_DIR_BASE = "/mnt/contabilidade/AUTOMAÇÃO/NotadeDebito" OUTPUT_DIR_BASE = "/mnt/contabilidade/AUTOMAÇÃO/NotadeDebito"
@ -14,6 +21,50 @@ DB_CONN = (
"PWD=88253332Wa@;" "PWD=88253332Wa@;"
) )
# 🔧 Montar compartilhamento de rede
def mount_network_share():
print("📁 Montando compartilhamento de rede...")
try:
# Criar ponto de montagem se não existir
os.makedirs(MOUNT_POINT, exist_ok=True)
# Verificar se já está montado
result = subprocess.run(['mountpoint', '-q', MOUNT_POINT], capture_output=True)
if result.returncode == 0:
print("✅ Compartilhamento já está montado.")
return True
# Montar o compartilhamento
mount_cmd = [
'sudo', 'mount', '-t', 'cifs',
NETWORK_SHARE,
MOUNT_POINT,
'-o', f'username={SMB_USERNAME},password={SMB_PASSWORD},iocharset=utf8'
]
result = subprocess.run(mount_cmd, capture_output=True, text=True)
if result.returncode == 0:
print("✅ Compartilhamento montado com sucesso.")
return True
else:
print(f"❌ Erro ao montar: {result.stderr}")
return False
except Exception as e:
print(f"❌ Erro ao montar compartilhamento: {e}")
return False
# 🔧 Desmontar compartilhamento de rede
def unmount_network_share():
print("📁 Desmontando compartilhamento de rede...")
try:
result = subprocess.run(['sudo', 'umount', MOUNT_POINT], capture_output=True, text=True)
if result.returncode == 0:
print("✅ Compartilhamento desmontado com sucesso.")
else:
print(f"⚠️ Aviso ao desmontar: {result.stderr}")
except Exception as e:
print(f"⚠️ Erro ao desmontar compartilhamento: {e}")
# 1⃣ Token # 1⃣ Token
def get_token(): def get_token():
print("🔐 Obtendo token...") print("🔐 Obtendo token...")
@ -152,28 +203,41 @@ def download_pdf(token, franchise_id, doc_id, image_name, invoice_date):
# 🚀 Main # 🚀 Main
def main(): def main():
token = get_token() # Montar compartilhamento de rede
conn = pyodbc.connect(DB_CONN) if not mount_network_share():
cursor = conn.cursor() print("❌ Não foi possível montar o compartilhamento. Abortando.")
return
# Filtrar apenas notas do dia 29-10-2025 try:
data_especifica = datetime(2025, 10, 29) token = get_token()
todos = get_all_documents(token) conn = pyodbc.connect(DB_CONN)
documentos = filter_documents_by_date(todos, data_especifica, data_especifica) cursor = conn.cursor()
novos, ignorados = 0, 0 # Filtrar apenas notas do dia 29-10-2025
for doc in documentos: data_especifica = datetime(2025, 10, 27)
if record_exists(cursor, doc["id"]): todos = get_all_documents(token)
ignorados += 1 documentos = filter_documents_by_date(todos, data_especifica, data_especifica)
continue
insert_record(cursor, doc)
novos += 1
download_pdf(token, doc["franchiseId"], doc["id"], doc["imageName"], doc["invoiceDate"])
conn.commit() novos, ignorados = 0, 0
conn.close() for doc in documentos:
print(f"\n✅ Finalizado. {novos} novos registros, {ignorados} já existiam.") if record_exists(cursor, doc["id"]):
print(f"🕓 Execução concluída em {datetime.now().strftime('%H:%M:%S')}") ignorados += 1
continue
insert_record(cursor, doc)
novos += 1
download_pdf(token, doc["franchiseId"], doc["id"], doc["imageName"], doc["invoiceDate"])
conn.commit()
conn.close()
print(f"\n✅ Finalizado. {novos} novos registros, {ignorados} já existiam.")
print(f"🕓 Execução concluída em {datetime.now().strftime('%H:%M:%S')}")
except Exception as e:
print(f"❌ Erro durante execução: {e}")
finally:
# Desmontar compartilhamento de rede
unmount_network_share()
if __name__ == "__main__": if __name__ == "__main__":
main() main()