diff --git a/data_processor.py b/data_processor.py index efe314e7..c3df7d64 100644 --- a/data_processor.py +++ b/data_processor.py @@ -1464,25 +1464,21 @@ class DataProcessor: self.logger.info(f"FSM-Pitch-Generierung abgeschlossen. {processed_count} Zeilen bearbeitet.") def reclassify_all_branches(self, start_sheet_row=None, limit=None, batch_size=20): - """ - Führt für alle relevanten Zeilen eine neue Brancheneinstufung (v2.0) in Batches durch. - """ - self.logger.info(f"Starte Modus 'reclassify_branches' im Batch-Modus (Größe: {batch_size}). Bereich: {start_sheet_row or 'Start'}, Limit: {limit or 'Unbegrenzt'}") - - if not self.sheet_handler.load_data(): - return - - all_data = self.sheet_handler.get_all_data_with_headers() + # ... header_rows = self.sheet_handler._header_rows - effective_start = start_sheet_row if start_sheet_row is not None else header_rows + 1 + # Wichtig: Der Start MUSS nach den Header-Zeilen sein + effective_start = max(header_rows + 1, start_sheet_row or 0) tasks = [] + # Wir starten die Schleife erst NACH den Header-Zeilen for i in range(effective_start - 1, len(all_data)): if limit is not None and len(tasks) >= limit: break + row_data = all_data[i] company_name = self._get_cell_value_safe(row_data, "CRM Name").strip() - if company_name: + # Zusätzlicher Check, um sicherzustellen, dass wir keine Header-Texte verarbeiten + if company_name and "firmennamen" not in company_name.lower(): tasks.append({'row_num': i + 1, 'data': row_data}) if not tasks: