From 90507471deb64a2d7e4c9916f68b2c5fea88b816 Mon Sep 17 00:00:00 2001 From: "daniel.rodrigues" Date: Fri, 31 Oct 2025 11:03:01 -0300 Subject: [PATCH] att --- extranet_notas_debito.py | 91 +++++++++++----------------------------- 1 file changed, 25 insertions(+), 66 deletions(-) diff --git a/extranet_notas_debito.py b/extranet_notas_debito.py index 4245994..ce041d5 100644 --- a/extranet_notas_debito.py +++ b/extranet_notas_debito.py @@ -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()