This commit is contained in:
2025-05-12 19:03:26 +00:00
parent 9c8799ae84
commit c073561e18

View File

@@ -4750,29 +4750,40 @@ class DataProcessor:
final_umsatz_str_konsolidiert = "k.A." # Default
final_ma_str_konsolidiert = "k.A." # Default
try:
# ... (Ihre Konsolidierungslogik, die final_umsatz_str_konsolidiert und final_ma_str_konsolidiert setzt)
crm_umsatz_val = self._get_cell_value_safe(row_data, "CRM Umsatz")
wiki_umsatz_val = final_wiki_data.get('umsatz', 'k.A.')
crm_ma_val = self._get_cell_value_safe(row_data, "CRM Anzahl Mitarbeiter")
wiki_ma_val = final_wiki_data.get('mitarbeiter', 'k.A.')
num_crm_umsatz = get_numeric_filter_value(crm_umsatz_val, is_umsatz=True) # Globale Funktion
num_wiki_umsatz = get_numeric_filter_value(wiki_umsatz_val, is_umsatz=True) # Globale Funktion
num_crm_ma = get_numeric_filter_value(crm_ma_val, is_umsatz=False) # Globale Funktion
num_wiki_ma = get_numeric_filter_value(wiki_ma_val, is_umsatz=False) # Globale Funktion
# get_numeric_filter_value gibt 0.0 oder 0 zurück, wenn der Input nicht positiv numerisch ist oder leer/k.A.
num_crm_umsatz = get_numeric_filter_value(crm_umsatz_val, is_umsatz=True)
num_wiki_umsatz = get_numeric_filter_value(wiki_umsatz_val, is_umsatz=True)
num_crm_ma = get_numeric_filter_value(crm_ma_val, is_umsatz=False)
num_wiki_ma = get_numeric_filter_value(wiki_ma_val, is_umsatz=False)
# Logge die numerischen Werte VOR der Konsolidierung
self.logger.debug(f" Konsolidierung Input: num_crm_umsatz={num_crm_umsatz}, num_wiki_umsatz={num_wiki_umsatz}, num_crm_ma={num_crm_ma}, num_wiki_ma={num_wiki_ma}")
# Konsolidierung: Wiki > CRM. Wenn Wiki keinen positiven Wert hat, nimm CRM.
# Wenn beide keinen positiven Wert haben, bleibt es bei 0.
final_num_umsatz = num_wiki_umsatz if num_wiki_umsatz > 0 else num_crm_umsatz
final_num_ma = num_wiki_ma if num_wiki_ma > 0 else num_crm_ma
# String-Konvertierung: "0" bedeutet "unbekannt" -> "k.A."
# Nur echt positive Werte werden als Zahl geschrieben.
final_umsatz_str_konsolidiert = str(int(round(final_num_umsatz))) if final_num_umsatz > 0 else 'k.A.'
final_ma_str_konsolidiert = str(int(round(final_num_ma))) if final_num_ma > 0 else 'k.A.'
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Umsatz (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [[final_umsatz_str_konsolidiert]]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Mitarbeiter (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [[final_ma_str_konsolidiert]]})
self.logger.debug(f" -> Konsolidiert: Umsatz={final_umsatz_str_konsolidiert}, MA={final_ma_str_konsolidiert}")
# Das Log hier sollte jetzt die String-Werte ausgeben, die auch geschrieben werden:
self.logger.debug(f" -> Konsolidiert (Sheet-Werte): Umsatz='{final_umsatz_str_konsolidiert}', MA='{final_ma_str_konsolidiert}'")
except Exception as e_consolidate:
self.logger.error(f"FEHLER bei Konsolidierung Umsatz/Mitarbeiter fuer Zeile {row_num_in_sheet}: {e_consolidate}")
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Umsatz (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER KONSO']]})
updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Finaler Mitarbeiter (Wiki>CRM)"] + 1)}{row_num_in_sheet}', 'values': [['FEHLER KONSO']]})
final_umsatz_str_konsolidiert = "FEHLER KONSO" # Wichtig für Plausi-Check
final_ma_str_konsolidiert = "FEHLER KONSO" # Wichtig für Plausi-Check
final_umsatz_str_konsolidiert = "FEHLER KONSO"
final_ma_str_konsolidiert = "FEHLER KONSO"
# --- NEU: 3f. Plausibilitäts-Checks durchführen (BB-BG) ---
self.logger.debug(f" -> Führe Plausibilitäts-Checks für Zeile {row_num_in_sheet} durch...")