att
This commit is contained in:
parent
502b15e1ed
commit
90507471de
@ -2,22 +2,17 @@ import os
|
||||
import sys
|
||||
import requests
|
||||
import pyodbc
|
||||
import subprocess
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
# Detectar sistema operacional
|
||||
IS_WINDOWS = sys.platform.startswith('win')
|
||||
|
||||
# Configurações de rede
|
||||
NETWORK_SHARE = "//10.77.77.11/Contabilidade"
|
||||
MOUNT_POINT = "/mnt/contabilidade"
|
||||
SMB_USERNAME = "andrey.cunha" # ⚠️ ALTERE AQUI (apenas para Linux)
|
||||
SMB_PASSWORD = "88253332Wa@" # ⚠️ ALTERE AQUI (apenas para Linux)
|
||||
|
||||
# Caminho baseado no sistema operacional
|
||||
if IS_WINDOWS:
|
||||
# Windows - caminho UNC direto
|
||||
OUTPUT_DIR_BASE = r"\\10.77.77.11\Contabilidade\AUTOMAÇÃO\NotadeDebito"
|
||||
else:
|
||||
# Linux/Kubernetes - volume montado pelo PV
|
||||
OUTPUT_DIR_BASE = "/mnt/contabilidade/AUTOMAÇÃO/NotadeDebito"
|
||||
|
||||
DB_CONN = (
|
||||
@ -28,60 +23,26 @@ DB_CONN = (
|
||||
"PWD=88253332Wa@;"
|
||||
)
|
||||
|
||||
# 🔧 Montar compartilhamento de rede
|
||||
def mount_network_share():
|
||||
if IS_WINDOWS:
|
||||
# No Windows, o compartilhamento de rede já está acessível diretamente
|
||||
print("📁 Windows detectado - usando caminho UNC diretamente.")
|
||||
# 🔧 Verificar acesso ao compartilhamento
|
||||
def check_storage_access():
|
||||
"""Verifica se o diretório de armazenamento está acessível"""
|
||||
print("📁 Verificando acesso ao armazenamento...")
|
||||
|
||||
# Verificar se o diretório base existe
|
||||
base_dir = OUTPUT_DIR_BASE.rsplit(os.sep, 1)[0] if os.sep in OUTPUT_DIR_BASE else OUTPUT_DIR_BASE
|
||||
|
||||
if os.path.exists(base_dir):
|
||||
print(f"✅ Diretório base acessível: {base_dir}")
|
||||
# Criar diretório de saída se não existir
|
||||
os.makedirs(OUTPUT_DIR_BASE, exist_ok=True)
|
||||
print(f"✅ Diretório de saída pronto: {OUTPUT_DIR_BASE}")
|
||||
return True
|
||||
|
||||
print("📁 Linux detectado - 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}")
|
||||
else:
|
||||
print(f"❌ Diretório não acessível: {base_dir}")
|
||||
if not IS_WINDOWS:
|
||||
print("⚠️ ATENÇÃO: No Kubernetes, certifique-se de que o PersistentVolume está montado em /mnt/contabilidade")
|
||||
return False
|
||||
|
||||
# 🔧 Desmontar compartilhamento de rede
|
||||
def unmount_network_share():
|
||||
if IS_WINDOWS:
|
||||
# No Windows não precisa desmontar
|
||||
print("📁 Windows - nenhuma ação necessária.")
|
||||
return
|
||||
|
||||
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
|
||||
def get_token():
|
||||
print("🔐 Obtendo token...")
|
||||
@ -220,9 +181,9 @@ def download_pdf(token, franchise_id, doc_id, image_name, invoice_date):
|
||||
|
||||
# 🚀 Main
|
||||
def main():
|
||||
# Montar compartilhamento de rede
|
||||
if not mount_network_share():
|
||||
print("❌ Não foi possível montar o compartilhamento. Abortando.")
|
||||
# Verificar acesso ao armazenamento
|
||||
if not check_storage_access():
|
||||
print("❌ Não foi possível acessar o armazenamento. Abortando.")
|
||||
return
|
||||
|
||||
try:
|
||||
@ -230,7 +191,7 @@ def main():
|
||||
conn = pyodbc.connect(DB_CONN)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Filtrar apenas notas do dia 29-10-2025
|
||||
# Filtrar apenas notas do dia 27-10-2025
|
||||
data_especifica = datetime(2025, 10, 27)
|
||||
todos = get_all_documents(token)
|
||||
documentos = filter_documents_by_date(todos, data_especifica, data_especifica)
|
||||
@ -251,10 +212,8 @@ def main():
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Erro durante execução: {e}")
|
||||
|
||||
finally:
|
||||
# Desmontar compartilhamento de rede
|
||||
unmount_network_share()
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user