This commit is contained in:
daniel.rodrigues 2026-02-06 16:42:32 -03:00
parent 292bc45582
commit d097d7b5b9

View File

@ -427,6 +427,29 @@ def worker_inserir_banco(fila, conn_string, stats, stop_event):
conn.close() conn.close()
def deletar_dados_existentes(data_venda):
"""Deleta dados existentes para a data especificada antes de inserir novos"""
try:
conn = pyodbc.connect(CONNECTION_STRING)
cursor = conn.cursor()
# Deletar da tabela principal (itens e pagamentos são deletados automaticamente pelo CASCADE)
cursor.execute("DELETE FROM Grgb_sales_receipts WHERE sale_date = ?", data_venda)
deleted_count = cursor.rowcount
conn.commit()
if deleted_count > 0:
print(f" 🗑️ Deletados: {deleted_count} registros existentes")
cursor.close()
conn.close()
return deleted_count
except Exception as e:
print(f" ⚠ Erro ao deletar dados existentes: {e}")
return 0
def processar_dia(data_venda, fila, stats): def processar_dia(data_venda, fila, stats):
"""Processa um dia específico - busca da API e coloca na fila""" """Processa um dia específico - busca da API e coloca na fila"""
@ -437,7 +460,12 @@ def processar_dia(data_venda, fila, stats):
print(f" {data_venda}: Nenhum registro") print(f" {data_venda}: Nenhum registro")
return True # Sucesso, apenas não tem dados return True # Sucesso, apenas não tem dados
print(f" {data_venda}: {total} registros, buscando...") print(f" {data_venda}: {total} registros encontrados na API")
# Deletar dados existentes para esta data antes de inserir os novos
deletar_dados_existentes(data_venda)
print(f" {data_venda}: Buscando dados da API...")
# Calcular páginas # Calcular páginas
paginas = list(range(0, total, PAGE_SIZE)) paginas = list(range(0, total, PAGE_SIZE))
@ -557,9 +585,10 @@ def processar_periodo(data_inicio_str, data_fim_str):
if __name__ == "__main__": if __name__ == "__main__":
# Configuração do período # Configuração do período - sempre pega o dia anterior (ontem)
DATA_INICIO = "2025-09-24" ONTEM = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')
DATA_FIM = datetime.now().strftime('%Y-%m-%d') # Hoje DATA_INICIO = ONTEM
DATA_FIM = ONTEM
# Permite passar datas como argumentos: python script.py 2025-09-24 2025-12-31 # Permite passar datas como argumentos: python script.py 2025-09-24 2025-12-31
if len(sys.argv) >= 3: if len(sys.argv) >= 3: