From ae6a26d27e350986ad4695c5d411f34b4f24af7f Mon Sep 17 00:00:00 2001 From: "daniel.rodrigues" Date: Thu, 8 Jan 2026 13:07:05 -0300 Subject: [PATCH] att --- ruptura.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ruptura.py b/ruptura.py index c6106e0..f870ca4 100644 --- a/ruptura.py +++ b/ruptura.py @@ -287,14 +287,16 @@ def get_db_connection(): # 7) Baixar arquivo e inserir no banco # ============================== -def download_and_insert_to_db(token, request_id, file_name): +def download_and_insert_to_db(token, request_id, file_name, business_unit): """ Faz o download do arquivo exportado e insere os dados no banco de dados. + Remove dados existentes para a mesma data e marca antes de inserir. Args: token: Token de autenticação request_id: ID da requisição de exportação file_name: Nome do arquivo (usado apenas para referência) + business_unit: Unidade de negócio (BOT, OUI, QDB) Returns: True se o download e inserção foram bem-sucedidos, False caso contrário @@ -391,12 +393,28 @@ def download_and_insert_to_db(token, request_id, file_name): cursor = conn.cursor() print(f"✓ Conectado ao banco de dados!") - print(f"\nInserindo dados na tabela RupturaG...") # Calcular a data de ruptura (dia anterior) dt_ruptura = (datetime.now() - timedelta(days=1)).date() print(f"Data de ruptura: {dt_ruptura}") + # Deletar dados existentes para a mesma data e marca + print(f"\nVerificando dados existentes para {business_unit} em {dt_ruptura}...") + delete_query = """ + DELETE FROM RupturaG + WHERE dt_ruptura = ? AND Marca = ? + """ + cursor.execute(delete_query, dt_ruptura, business_unit) + rows_deleted = cursor.rowcount + conn.commit() + + if rows_deleted > 0: + print(f"✓ {rows_deleted} registros anteriores removidos para {business_unit} em {dt_ruptura}") + else: + print(f"✓ Nenhum registro anterior encontrado para {business_unit} em {dt_ruptura}") + + print(f"\nInserindo dados na tabela RupturaG...") + # Inserir os dados linha por linha insert_query = """ INSERT INTO RupturaG ( @@ -510,7 +528,7 @@ def processar_marca(token, business_unit, cycle): return False # 3. Fazer o download do arquivo e inserir no banco - download_success = download_and_insert_to_db(token, request_id, file_name) + download_success = download_and_insert_to_db(token, request_id, file_name, business_unit) if download_success: print(f"\n{'='*60}")