From e2ca4675d90fe65df1879500061b5584cb1a2658 Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 9 Apr 2025 17:01:48 +0000 Subject: [PATCH] bugfix --- brancheneinstufung.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/brancheneinstufung.py b/brancheneinstufung.py index 8491f1e2..95273d8f 100644 --- a/brancheneinstufung.py +++ b/brancheneinstufung.py @@ -1584,6 +1584,20 @@ def process_contact_research(): main_sheet = sh.sheet1 data = main_sheet.get_all_values() + # Ermittle die letzte Zeile in Spalte AM (Spalte 39), in der ein Timestamp eingetragen wurde + col_am = main_sheet.col_values(39) # Spalte AM hat den Index 39 (A=1, ..., AM=39) + last_filled_row = 1 # Standardmäßig wird die Header-Zeile angenommen + for idx, cell in enumerate(col_am): + if cell.strip() != "": + last_filled_row = idx + 1 # idx ist 0-basiert, Zeilennummern beginnen bei 1 + start_row = last_filled_row + 1 # Beginne mit der nächsten Zeile + debug_print(f"Letzter Timestamp in Spalte AM wurde in Zeile {last_filled_row} gefunden. Starte Verarbeitung ab Zeile {start_row}.") + + # Falls start_row größer ist als die Anzahl der vorhandenen Zeilen, gibt es nichts weiter zu verarbeiten + if start_row > len(data): + debug_print("Keine neuen Zeilen zu verarbeiten, da Timestamp in Spalte AM bereits bis zum Ende vorhanden ist.") + return + # Versuche, das Kontakte-Tabellenblatt zu öffnen; falls nicht vorhanden, erstelle es try: contacts_sheet = sh.worksheet("Contacts") @@ -1593,8 +1607,9 @@ def process_contact_research(): contacts_sheet.update(values=[header], range_name="A1:H1") debug_print("Neues Blatt 'Contacts' erstellt und Header eingetragen.") - # Verarbeite jede Zeile im Hauptblatt - for i, row in enumerate(data[1:], start=2): + # Verarbeite jede Zeile im Hauptblatt ab der festgelegten Startzeile + for i in range(start_row, len(data) + 1): + row = data[i - 1] # Da data eine 0-basierte Liste ist company_name = row[1] if len(row) > 1 else "" crm_kurzform = row[2] if len(row) > 2 else "" website = row[3] if len(row) > 3 else "" @@ -1623,13 +1638,12 @@ def process_contact_research(): else: debug_print(f"Zeile {i}: Kein passender Kontakt für Position '{pos}' gefunden.") - # Aktualisiere die Hauptblatt-Zeile mit der Summe der Treffer in den Spalten AI, AJ, AK, AL + # Aktualisiere die Hauptblatt-Zeile mit der Summe der Treffer in den Spalten AI, AJ, AK, AL und schreibe den Timestamp in AM try: main_sheet.update(values=[[str(contact_counts.get("Serviceleiter", 0))]], range_name=f"AI{i}") main_sheet.update(values=[[str(contact_counts.get("IT-Leiter", 0))]], range_name=f"AJ{i}") main_sheet.update(values=[[str(contact_counts.get("Geschäftsführer", 0))]], range_name=f"AK{i}") main_sheet.update(values=[[str(contact_counts.get("Disponent", 0))]], range_name=f"AL{i}") - # Aktualisiere den Timestamp in Spalte AM timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") main_sheet.update(values=[[timestamp]], range_name=f"AM{i}") debug_print(f"Zeile {i}: Kontaktzahlen aktualisiert: {contact_counts} – Timestamp in AM gesetzt.") @@ -1639,6 +1653,7 @@ def process_contact_research(): debug_print("Contact Research abgeschlossen.") + # ----------------- DataProcessor-Klasse inklusive neuer SERP-API Website Lookup-Methode ----------------- class DataProcessor: def __init__(self):