This commit is contained in:
2025-04-09 17:01:48 +00:00
parent d4267a4bdc
commit e2ca4675d9

View File

@@ -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):